diff --git a/.github/workflows/change.yml b/.github/workflows/change.yml new file mode 100644 index 00000000..79442f87 --- /dev/null +++ b/.github/workflows/change.yml @@ -0,0 +1,22 @@ +name: Verify Changes + +on: + pull_request: + +jobs: + verify: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + name: Checkout + with: + fetch-depth: 2 + + - uses: actions/setup-node@v4 + name: Install Node.js + with: + cache-dependency-path: '**/config/rush/pnpm-lock.yaml' + registry-url: https://npm.pkg.github.com/ + + - name: Verify Changes + run: node common/scripts/install-run-rush.js change --verify diff --git a/.github/workflows/lint.yaml b/.github/workflows/lint.yml similarity index 60% rename from .github/workflows/lint.yaml rename to .github/workflows/lint.yml index 87f3fbbd..547a552d 100644 --- a/.github/workflows/lint.yaml +++ b/.github/workflows/lint.yml @@ -28,4 +28,23 @@ jobs: shell: bash run: | echo "The following files are not formatted:" - echo "${{steps.prettier-run.outputs.prettier_output}}" \ No newline at end of file + echo "${{steps.prettier-run.outputs.prettier_output}}" + + sort-package-json: + name: Sort package.json + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + name: Checkout + + - uses: actions/setup-node@v4 + name: Install Node.js + with: + cache-dependency-path: '**/config/rush/pnpm-lock.yaml' + registry-url: https://npm.pkg.github.com/ + + - name: Install Rush + run: node common/scripts/install-run-rush.js install + + - name: Sort package.json + run: node common/scripts/install-run-rush.js sort-package-json diff --git a/.github/workflows/release-package.yml b/.github/workflows/release-package.yml index 31c81239..a62a0f5f 100644 --- a/.github/workflows/release-package.yml +++ b/.github/workflows/release-package.yml @@ -13,26 +13,27 @@ jobs: contents: write packages: write steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 name: Checkout - - uses: actions/setup-node@v3 + - uses: actions/setup-node@v4 name: Install Node.js with: cache-dependency-path: '**/config/rush/pnpm-lock.yaml' - registry-url: https://npm.pkg.github.com/ + registry-url: https://registry.npmjs.org/ - - name: Configure Git User + - name: Set Git User run: | - git config user.name github-actions - git config user.email github-actions@github.com + git config user.email "github-actions[bot]@users.noreply.github.com" + git config user.name "github-actions[bot]" - name: Install Rush run: node common/scripts/install-run-rush.js install + - name: Bump Version for Packages + run: node common/scripts/install-run-rush.js version --bump + - name: Publish Packages via Rush - run: | - git fetch origin development:refs/remotes/origin/development -a - node common/scripts/install-run-rush.js publish --apply --publish --target-branch development --add-commit-details --set-access-level=public + run: node common/scripts/install-run-rush.js publish --apply --publish --include-all --version-policy stonecrop --target-branch development --add-commit-details --set-access-level=public env: - NODE_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }} \ No newline at end of file + NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} \ No newline at end of file diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index b8e91578..0b011065 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -14,7 +14,6 @@ jobs: outputs: aform: ${{ steps.filter.outputs.aform }} atable: ${{ steps.filter.outputs.atable }} - graphql_client: ${{ steps.filter.outputs.graphql_client }} steps: - uses: dorny/paths-filter@v2 id: filter @@ -22,7 +21,6 @@ jobs: filters: | aform: aform/** atable: atable/** - graphql_client: graphql_client/** aform: name: AForm @@ -36,14 +34,14 @@ jobs: strategy: matrix: - node: [16.x] + node: [20.x] steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Install Node ${{ matrix.node }} - uses: actions/setup-node@v3 + uses: actions/setup-node@v4 with: cache-dependency-path: '**/config/rush/pnpm-lock.yaml' registry-url: https://npm.pkg.github.com/ @@ -57,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: @@ -74,14 +73,14 @@ jobs: strategy: matrix: - node: [16.x] + node: [20.x] steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Install Node ${{ matrix.node }} - uses: actions/setup-node@v3 + uses: actions/setup-node@v4 with: cache-dependency-path: '**/config/rush/pnpm-lock.yaml' registry-url: https://npm.pkg.github.com/ @@ -95,45 +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 - vite-config-path: './vite.config.ts' - - graphql-client: - name: GraphQL Client - needs: changes - if: ${{ needs.changes.outputs.graphql_client == 'true' }} - runs-on: ubuntu-latest - - permissions: - contents: read - pull-requests: write - - strategy: - matrix: - node: [16.x] - - steps: - - name: Checkout - uses: actions/checkout@v3 - - - name: Install Node ${{ matrix.node }} - uses: actions/setup-node@v3 - with: - cache-dependency-path: '**/config/rush/pnpm-lock.yaml' - registry-url: https://npm.pkg.github.com/ - - - name: Install Rush - run: node common/scripts/install-run-rush.js install - - - name: Run Tests - working-directory: ./graphql_client - run: node ../common/scripts/install-run-rushx.js test:coverage - - - name: Coverage Report - if: always() # Also generate the report if tests are failing - uses: davelosert/vitest-coverage-report-action@v1 - with: - working-directory: ./graphql_client + file-coverage-mode: 'all' vite-config-path: './vite.config.ts' diff --git a/.gitignore b/.gitignore index eebda10b..215af065 100644 --- a/.gitignore +++ b/.gitignore @@ -30,9 +30,6 @@ bower_components # Compiled binary addons (https://nodejs.org/api/addons.html) build/Release -# Build outputs -dist/ - # Dependency directories node_modules/ jspm_packages/ diff --git a/.nvmrc b/.nvmrc index 8b3ed1b2..8b0beab1 100644 --- a/.nvmrc +++ b/.nvmrc @@ -1 +1 @@ -16.19.1 +20.11.0 diff --git a/README.md b/README.md index 8f327928..3789d8f3 100644 --- a/README.md +++ b/README.md @@ -12,7 +12,7 @@ This project has the following system dependencies: - [`pnpm`](https://pnpm.io/) (using yarn or npm will break packages) - [`rush`](https://rushjs.io/) -- `nvm` and `node v16`: `nvm install --lts && nvm use --lts` +- `nvm` and `node v20`: `nvm install 20 --lts && nvm use 20 --lts` ```bash git clone stonecrop 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 new file mode 100644 index 00000000..d84e61d8 --- /dev/null +++ b/aform/dist/aform.js @@ -0,0 +1,933 @@ +import { defineComponent as C, computed as M, openBlock as p, createElementBlock as v, createElementVNode as i, withDirectives as _, vModelCheckbox as _e, toDisplayString as w, vShow as S, resolveComponent as be, createBlock as B, withCtx as we, onMounted as ae, onBeforeUnmount as Ce, ref as g, watch as U, unref as O, getCurrentScope as ke, onScopeDispose as Ae, inject as re, nextTick as De, Fragment as L, renderList as q, normalizeStyle as Ee, withModifiers as Ie, normalizeClass as x, createCommentVNode as H, withKeys as F, vModelText as P, resolveDynamicComponent as Me, mergeProps as ie, createTextVNode as Te, renderSlot as $e, createVNode as Se, resolveDirective as Oe } from "vue"; +const Ve = { id: "checkbox-container" }, Le = ["id", "readonly", "required"], qe = { id: "custom-checkbox" }, xe = ["for"], Be = ["innerHTML"], He = /* @__PURE__ */ C({ + __name: "ACheckbox", + props: { + label: {}, + value: {}, + required: { type: Boolean }, + readOnly: { type: Boolean }, + uuid: {}, + validation: { default: () => ({ errorMessage: " " }) } + }, + emits: ["update:value"], + setup(e, { emit: t }) { + const n = e, o = t, s = M({ + get() { + return n.value; + }, + set(l) { + o("update:value", l); + } + }); + return (l, a) => (p(), v("div", null, [ + i("label", Ve, [ + _(i("input", { + "onUpdate:modelValue": a[0] || (a[0] = (r) => s.value = r), + type: "checkbox", + id: l.uuid, + class: "checkbox", + readonly: l.readOnly, + required: l.required + }, null, 8, Le), [ + [_e, s.value] + ]), + i("span", qe, w(s.value), 1) + ]), + i("label", { + for: l.uuid, + id: "checkbox-label" + }, w(l.label), 9, xe), + _(i("p", { + innerHTML: l.validation.errorMessage + }, null, 8, Be), [ + [S, l.validation.errorMessage] + ]) + ])); + } +}); +const A = (e, t) => { + const n = e.__vccOpts || e; + for (const [o, s] of t) + n[o] = s; + return n; +}, Pe = /* @__PURE__ */ A(He, [["__scopeId", "data-v-743cd4db"]]), Fe = /* @__PURE__ */ i("div", null, [ + /* @__PURE__ */ i("input", { type: "text" }), + /* @__PURE__ */ i("input", { type: "text" }), + /* @__PURE__ */ i("input", { type: "text" }) +], -1), Re = /* @__PURE__ */ C({ + __name: "AComboBox", + props: ["event", "cellData", "tableID"], + setup(e) { + return (t, n) => { + const o = be("ATableModal"); + return p(), B(o, { + event: e.event, + cellData: e.cellData, + class: "amodal" + }, { + default: we(() => [ + Fe + ]), + _: 1 + }, 8, ["event", "cellData"]); + }; + } +}); +var W; +const ue = typeof window < "u", Ue = (e) => typeof e == "string", Qe = () => { +}; +ue && (W = window == null ? void 0 : window.navigator) != null && W.userAgent && /iP(ad|hone|od)/.test(window.navigator.userAgent); +function de(e) { + return typeof e == "function" ? e() : O(e); +} +function Ye(e) { + return e; +} +function je(e) { + return ke() ? (Ae(e), !0) : !1; +} +function R(e) { + var t; + const n = de(e); + return (t = n == null ? void 0 : n.$el) != null ? t : n; +} +const ce = ue ? window : void 0; +function Ne(...e) { + let t, n, o, s; + if (Ue(e[0]) || Array.isArray(e[0]) ? ([n, o, s] = e, t = ce) : [t, n, o, s] = e, !t) + return Qe; + Array.isArray(n) || (n = [n]), Array.isArray(o) || (o = [o]); + const l = [], a = () => { + l.forEach((d) => d()), l.length = 0; + }, r = (d, y, b, m) => (d.addEventListener(y, b, m), () => d.removeEventListener(y, b, m)), f = U(() => [R(t), de(s)], ([d, y]) => { + a(), d && l.push(...n.flatMap((b) => o.map((m) => r(d, b, m, y)))); + }, { immediate: !0, flush: "post" }), u = () => { + f(), a(); + }; + return je(u), u; +} +const z = typeof globalThis < "u" ? globalThis : typeof window < "u" ? window : typeof global < "u" ? global : typeof self < "u" ? self : {}, G = "__vueuse_ssr_handlers__"; +z[G] = z[G] || {}; +function We(e, { window: t = ce, scrollTarget: n } = {}) { + const o = g(!1), s = () => { + if (!t) + return; + const l = t.document, a = R(e); + if (!a) + o.value = !1; + else { + const r = a.getBoundingClientRect(); + o.value = r.top <= (t.innerHeight || l.documentElement.clientHeight) && r.left <= (t.innerWidth || l.documentElement.clientWidth) && r.bottom >= 0 && r.right >= 0; + } + }; + return U(() => R(e), () => s(), { immediate: !0, flush: "post" }), t && Ne(n || t, "scroll", s, { + capture: !1, + passive: !0 + }), o; +} +var K; +(function(e) { + e.UP = "UP", e.RIGHT = "RIGHT", e.DOWN = "DOWN", e.LEFT = "LEFT", e.NONE = "NONE"; +})(K || (K = {})); +var ze = Object.defineProperty, J = Object.getOwnPropertySymbols, Ge = Object.prototype.hasOwnProperty, Ke = Object.prototype.propertyIsEnumerable, X = (e, t, n) => t in e ? ze(e, t, { enumerable: !0, configurable: !0, writable: !0, value: n }) : e[t] = n, Je = (e, t) => { + for (var n in t || (t = {})) + Ge.call(t, n) && X(e, n, t[n]); + if (J) + for (var n of J(t)) + Ke.call(t, n) && X(e, n, t[n]); + return e; +}; +const Xe = { + easeInSine: [0.12, 0, 0.39, 0], + easeOutSine: [0.61, 1, 0.88, 1], + easeInOutSine: [0.37, 0, 0.63, 1], + easeInQuad: [0.11, 0, 0.5, 0], + easeOutQuad: [0.5, 1, 0.89, 1], + easeInOutQuad: [0.45, 0, 0.55, 1], + easeInCubic: [0.32, 0, 0.67, 0], + easeOutCubic: [0.33, 1, 0.68, 1], + easeInOutCubic: [0.65, 0, 0.35, 1], + easeInQuart: [0.5, 0, 0.75, 0], + easeOutQuart: [0.25, 1, 0.5, 1], + easeInOutQuart: [0.76, 0, 0.24, 1], + easeInQuint: [0.64, 0, 0.78, 0], + easeOutQuint: [0.22, 1, 0.36, 1], + easeInOutQuint: [0.83, 0, 0.17, 1], + easeInExpo: [0.7, 0, 0.84, 0], + easeOutExpo: [0.16, 1, 0.3, 1], + easeInOutExpo: [0.87, 0, 0.13, 1], + easeInCirc: [0.55, 0, 1, 0.45], + easeOutCirc: [0, 0.55, 0.45, 1], + easeInOutCirc: [0.85, 0, 0.15, 1], + easeInBack: [0.36, 0, 0.66, -0.56], + easeOutBack: [0.34, 1.56, 0.64, 1], + easeInOutBack: [0.68, -0.6, 0.32, 1.6] +}; +Je({ + linear: Ye +}, Xe); +const D = (e) => { + let t = We(e).value; + return t = t && e.offsetHeight > 0, t; +}, E = (e) => e.tabIndex >= 0, Z = (e) => { + const t = e.target; + return Q(t); +}, Q = (e) => { + var t; + let n; + if (e instanceof HTMLTableCellElement) { + const o = (t = e.parentElement) == null ? void 0 : t.previousElementSibling; + if (o) { + const s = Array.from(o.children)[e.cellIndex]; + s && (n = s); + } + } else if (e instanceof HTMLTableRowElement) { + const o = e.previousElementSibling; + o && (n = o); + } + return n && (!E(n) || !D(n)) ? Q(n) : n; +}, Ze = (e) => { + var t; + const n = e.target; + let o; + if (n instanceof HTMLTableCellElement) { + const s = (t = n.parentElement) == null ? void 0 : t.parentElement; + if (s) { + const l = s.firstElementChild.children[n.cellIndex]; + l && (o = l); + } + } else if (n instanceof HTMLTableRowElement) { + const s = n.parentElement; + if (s) { + const l = s.firstElementChild; + l && (o = l); + } + } + return o && (!E(o) || !D(o)) ? Y(o) : o; +}, ee = (e) => { + const t = e.target; + return Y(t); +}, Y = (e) => { + var t; + let n; + if (e instanceof HTMLTableCellElement) { + const o = (t = e.parentElement) == null ? void 0 : t.nextElementSibling; + if (o) { + const s = Array.from(o.children)[e.cellIndex]; + s && (n = s); + } + } else if (e instanceof HTMLTableRowElement) { + const o = e.nextElementSibling; + o && (n = o); + } + return n && (!E(n) || !D(n)) ? Y(n) : n; +}, et = (e) => { + var t; + const n = e.target; + let o; + if (n instanceof HTMLTableCellElement) { + const s = (t = n.parentElement) == null ? void 0 : t.parentElement; + if (s) { + const l = s.lastElementChild.children[n.cellIndex]; + l && (o = l); + } + } else if (n instanceof HTMLTableRowElement) { + const s = n.parentElement; + if (s) { + const l = s.lastElementChild; + l && (o = l); + } + } + return o && (!E(o) || !D(o)) ? Q(o) : o; +}, te = (e) => { + const t = e.target; + return j(t); +}, j = (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 && (!E(n) || !D(n)) ? j(n) : n; +}, ne = (e) => { + const t = e.target; + return N(t); +}, N = (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 && (!E(n) || !D(n)) ? N(n) : n; +}, oe = (e) => { + const t = e.target.parentElement.firstElementChild; + return t && (!E(t) || !D(t)) ? N(t) : t; +}, le = (e) => { + const t = e.target.parentElement.lastElementChild; + return t && (!E(t) || !D(t)) ? j(t) : t; +}, V = ["alt", "control", "shift", "meta"], tt = { + ArrowUp: "up", + ArrowDown: "down", + ArrowLeft: "left", + ArrowRight: "right" +}, pe = { + "keydown.up": (e) => { + const t = Z(e); + t && (e.preventDefault(), e.stopPropagation(), t.focus()); + }, + "keydown.down": (e) => { + const t = ee(e); + t && (e.preventDefault(), e.stopPropagation(), t.focus()); + }, + "keydown.left": (e) => { + const t = te(e); + e.preventDefault(), e.stopPropagation(), t && t.focus(); + }, + "keydown.right": (e) => { + const t = ne(e); + e.preventDefault(), e.stopPropagation(), t && t.focus(); + }, + "keydown.control.up": (e) => { + const t = Ze(e); + t && (e.preventDefault(), e.stopPropagation(), t.focus()); + }, + "keydown.control.down": (e) => { + const t = et(e); + t && (e.preventDefault(), e.stopPropagation(), t.focus()); + }, + "keydown.control.left": (e) => { + const t = oe(e); + t && (e.preventDefault(), e.stopPropagation(), t.focus()); + }, + "keydown.control.right": (e) => { + const t = le(e); + t && (e.preventDefault(), e.stopPropagation(), t.focus()); + }, + "keydown.end": (e) => { + const t = le(e); + t && (e.preventDefault(), e.stopPropagation(), t.focus()); + }, + "keydown.enter": (e) => { + if (e.target instanceof HTMLTableCellElement) { + e.preventDefault(), e.stopPropagation(); + const t = ee(e); + t && t.focus(); + } + }, + "keydown.shift.enter": (e) => { + if (e.target instanceof HTMLTableCellElement) { + e.preventDefault(), e.stopPropagation(); + const t = Z(e); + t && t.focus(); + } + }, + "keydown.home": (e) => { + const t = oe(e); + t && (e.preventDefault(), e.stopPropagation(), t.focus()); + }, + "keydown.tab": (e) => { + const t = ne(e); + t && (e.preventDefault(), e.stopPropagation(), t.focus()); + }, + "keydown.shift.tab": (e) => { + const t = te(e); + t && (e.preventDefault(), e.stopPropagation(), t.focus()); + } +}; +function nt(e) { + const t = (o) => { + let s = null; + o.parent && (typeof o.parent == "string" ? s = document.querySelector(o.parent) : o.parent instanceof Element ? s = o.parent : s = o.parent.value); + let l = []; + if (o.selectors) + if (typeof o.selectors == "string") + l = s ? Array.from(s.querySelectorAll(o.selectors)) : Array.from(document.querySelectorAll(o.selectors)); + else if (o.selectors instanceof Element) + l.push(o.selectors); + else if (Array.isArray(o.selectors.value)) + for (const a of o.selectors.value) + a instanceof Element ? l.push(a) : l.push(a.$el); + else + l.push(o.selectors.value); + else + l = Array.from(s.children).filter((a) => E(a) && D(a)); + return l; + }, n = (o) => (s) => { + const l = tt[s.key] || s.key.toLowerCase(); + if (V.includes(l)) + return; + const a = o.handlers || pe; + for (const r of Object.keys(a)) { + const [f, ...u] = r.split("."); + if (f === "keydown" && u.includes(l)) { + const d = a[r], y = u.filter((m) => V.includes(m)), b = V.some((m) => { + const $ = m.charAt(0).toUpperCase() + m.slice(1); + return s.getModifierState($); + }); + if (y.length > 0) { + if (b) { + for (const m of V) + if (u.includes(m)) { + const $ = m.charAt(0).toUpperCase() + m.slice(1); + s.getModifierState($) && d(s); + } + } + } else + b || d(s); + } + } + }; + ae(() => { + for (const o of e) { + const s = t(o); + for (const l of s) + l.addEventListener("keydown", n(o)); + } + }), Ce(() => { + for (const o of e) { + const s = t(o); + for (const l of s) + l.removeEventListener("keydown", n(o)); + } + }); +} +const ot = ["event", "colIndex", "rowIndex", "tableid"], lt = { colspan: "5" }, st = ["onClick"], at = 6, I = 7, rt = /* @__PURE__ */ C({ + __name: "ADate", + props: { + colIndex: {}, + rowIndex: {}, + tableid: {}, + event: {}, + indent: {}, + readonly: { type: Boolean } + }, + setup(e) { + const t = e, n = re(t.tableid), o = /* @__PURE__ */ new Date(), s = g(), l = g(), a = g(), r = g([]); + ae(async () => { + let c = n.cellData(t.colIndex, t.rowIndex); + c ? (c instanceof Date || (c = new Date(c)), s.value = c, l.value = s.value.getMonth(), a.value = s.value.getFullYear()) : (l.value = o.getMonth(), a.value = o.getFullYear()), f(), await De(); + const T = document.getElementsByClassName("selecteddate"); + if (T.length > 0) + T[0].focus(); + else { + const h = document.getElementsByClassName("todaysdate"); + h.length > 0 && h[0].focus(); + } + }), U([l, a], () => { + f(); + }); + const f = () => { + r.value = []; + const c = new Date(a.value, l.value, 1), T = c.getDay(), h = c.setDate(c.getDate() - T); + for (let k of Array(43).keys()) + r.value.push(h + k * 864e5); + }, u = () => { + a.value -= 1; + }, d = () => { + a.value += 1; + }, y = () => { + l.value == 0 ? (l.value = 11, u()) : l.value -= 1; + }, b = () => { + l.value == 11 ? (l.value = 0, d()) : l.value += 1; + }, m = (c) => { + if (l.value === o.getMonth()) + return o.toDateString() === new Date(c).toDateString(); + }, $ = (c) => new Date(c).toDateString() === new Date(s.value).toDateString(), ve = (c, T) => { + s.value = new Date(r.value[T]), he(); + }, he = () => { + n.setCellData(t.rowIndex, t.colIndex, s.value.getTime()); + }, ye = M(() => new Date(a.value, l.value, 1).toLocaleDateString(void 0, { + year: "numeric", + month: "long" + })); + return nt([ + { + parent: "table.adate", + selectors: "td", + handlers: { + ...pe, + "keydown.pageup": y, + "keydown.shift.pageup": u, + "keydown.pagedown": b, + "keydown.shift.pagedown": d + } + } + ]), (c, T) => c.readonly ? H("", !0) : (p(), v("div", { + key: 0, + event: c.event, + colIndex: c.colIndex, + rowIndex: c.rowIndex, + tableid: c.tableid, + class: "adate", + tabindex: "0", + ref: "adatepicker" + }, [ + i("table", null, [ + i("tr", null, [ + i("td", { + onClick: y, + tabindex: -1 + }, "<"), + i("th", lt, w(ye.value), 1), + i("td", { + onClick: b, + tabindex: -1 + }, ">") + ]), + (p(), v(L, null, q(at, (h) => i("tr", { key: h }, [ + (p(), v(L, null, q(I, (k) => i("td", { + key: (h - 1) * I + k, + contenteditable: !1, + spellcheck: !1, + tabindex: 0, + style: Ee({ + border: $(r.value[(h - 1) * I + k]) ? "2px solid var(--focus-cell-outline)" : "none", + borderBottomColor: m(r.value[(h - 1) * I + k]) ? "var(--focus-cell-outline)" : "none" + }), + onClick: Ie((ge) => ve(ge, (h - 1) * I + k), ["prevent", "stop"]), + class: x({ + todaysdate: m(r.value[(h - 1) * I + k]), + selecteddate: $(r.value[(h - 1) * I + k]) + }) + }, w(new Date(r.value[(h - 1) * I + k]).getDate()), 15, st)), 64)) + ])), 64)) + ]) + ], 8, ot)); + } +}); +const it = /* @__PURE__ */ A(rt, [["__scopeId", "data-v-169f1184"]]), ut = C({ + 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.arrowCounter < this.results.length && (this.arrowCounter = this.arrowCounter + 1); + }, + onArrowUp() { + this.arrowCounter > 0 && (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 dt = { class: "input-wrapper" }, ct = { + id: "autocomplete-results", + class: "autocomplete-results" +}, pt = { + key: 0, + class: "loading autocomplete-result" +}, ft = ["onClick"], mt = { key: 0 }; +function vt(e, t, n, o, s, l) { + return p(), v("div", { + class: x(["autocomplete", { isOpen: e.isOpen }]) + }, [ + i("div", dt, [ + _(i("input", { + ref: "mopInput", + type: "text", + onInput: t[0] || (t[0] = (...a) => e.onChange && e.onChange(...a)), + onFocus: t[1] || (t[1] = (...a) => e.onChange && e.onChange(...a)), + "onUpdate:modelValue": t[2] || (t[2] = (a) => e.search = a), + onKeydown: [ + t[3] || (t[3] = F((...a) => e.onArrowDown && e.onArrowDown(...a), ["down"])), + t[4] || (t[4] = F((...a) => e.onArrowUp && e.onArrowUp(...a), ["up"])), + t[5] || (t[5] = F((...a) => e.onEnter && e.onEnter(...a), ["enter"])) + ] + }, null, 544), [ + [P, e.search] + ]), + _(i("ul", ct, [ + e.isLoading ? (p(), v("li", pt, "Loading results...")) : (p(!0), v(L, { key: 1 }, q(e.results, (a, r) => (p(), v("li", { + key: r, + onClick: (f) => e.setResult(a), + class: x(["autocomplete-result", { "is-active": r === e.arrowCounter }]) + }, w(a), 11, ft))), 128)) + ], 512), [ + [S, e.isOpen] + ]), + e.label ? (p(), v("label", mt, w(e.label), 1)) : H("", !0) + ]) + ], 2); +} +const fe = /* @__PURE__ */ A(ut, [["render", vt], ["__scopeId", "data-v-35e27f15"]]), ht = /* @__PURE__ */ C({ + __name: "CollapseButton", + props: { + collapsed: { type: Boolean } + }, + setup(e) { + return (t, n) => (p(), v("button", { + class: x(["collapse-button", t.collapsed ? "rotated" : "unrotated"]) + }, "×", 2)); + } +}); +const yt = /* @__PURE__ */ A(ht, [["__scopeId", "data-v-6f1c1b45"]]), gt = /* @__PURE__ */ C({ + __name: "AForm", + props: { + modelValue: {}, + data: {}, + readonly: { type: Boolean } + }, + emits: ["update:modelValue"], + setup(e, { emit: t }) { + const n = e, o = t, s = g(n.data || {}), l = (r) => { + let f = {}; + for (const [u, d] of Object.entries(r)) + ["component", "fieldtype"].includes(u) || (f[u] = d), u === "rows" && d && d.length === 0 && (f.rows = s.value[r.fieldname]); + return f; + }, a = M({ + get: () => n.modelValue.map((r, f) => M({ + get() { + return r.value; + }, + set: (u) => { + n.modelValue[f].value = u, o("update:modelValue", n.modelValue); + } + })), + set: () => { + } + }); + return (r, f) => (p(), v("form", null, [ + (p(!0), v(L, null, q(r.modelValue, (u, d) => (p(), B(Me(u.component), ie({ + key: d, + schema: u, + modelValue: a.value[d].value, + "onUpdate:modelValue": (y) => a.value[d].value = y, + data: s.value[u.fieldname], + readonly: r.readonly + }, l(u)), null, 16, ["schema", "modelValue", "onUpdate:modelValue", "data", "readonly"]))), 128)) + ])); + } +}); +const me = /* @__PURE__ */ A(gt, [["__scopeId", "data-v-82492bb4"]]), _t = /* @__PURE__ */ C({ + __name: "AFieldset", + props: { + schema: {}, + label: {}, + collapsible: { type: Boolean }, + data: {} + }, + setup(e) { + const t = e, n = g(t.data || []); + let o = g(!1), s = g(t.collapsible); + const l = g(t.schema); + function a(r) { + r.preventDefault(), s.value && (o.value = !o.value); + } + return (r, f) => (p(), v("fieldset", null, [ + i("legend", { + onClick: a, + onSubmit: a + }, [ + Te(w(r.label) + " ", 1), + O(s) ? (p(), B(yt, { + key: 0, + collapsed: O(o) + }, null, 8, ["collapsed"])) : H("", !0) + ], 32), + $e(r.$slots, "default", { collapsed: O(o) }, () => [ + _(Se(me, { + modelValue: l.value, + "onUpdate:modelValue": f[0] || (f[0] = (u) => l.value = u), + data: n.value + }, null, 8, ["modelValue", "data"]), [ + [S, !O(o)] + ]) + ], !0) + ])); + } +}); +const bt = /* @__PURE__ */ A(_t, [["__scopeId", "data-v-cad9b578"]]), wt = ["id", "disabled", "required"], Ct = ["for"], kt = ["innerHTML"], At = /* @__PURE__ */ C({ + __name: "ANumericInput", + props: { + label: {}, + modelValue: {}, + required: { type: Boolean }, + readonly: { type: Boolean }, + uuid: {}, + validation: { default: () => ({ errorMessage: " " }) } + }, + emits: ["update:modelValue"], + setup(e, { emit: t }) { + const n = e, o = t, s = M({ + get: () => n.modelValue, + set: (l) => { + o("update:modelValue", l); + } + }); + return (l, a) => (p(), v("div", null, [ + _(i("input", { + "onUpdate:modelValue": a[0] || (a[0] = (r) => s.value = r), + type: "number", + id: l.uuid, + disabled: l.readonly, + required: l.required + }, null, 8, wt), [ + [P, s.value] + ]), + i("label", { for: l.uuid }, w(l.label), 9, Ct), + _(i("p", { + innerHTML: l.validation.errorMessage + }, null, 8, kt), [ + [S, l.validation.errorMessage] + ]) + ])); + } +}); +const Dt = /* @__PURE__ */ A(At, [["__scopeId", "data-v-be33e6c4"]]), Et = { class: "input-group" }, It = ["for"], Mt = ["id", "disabled", "required"], Tt = ["innerHTML"], $t = /* @__PURE__ */ C({ + __name: "AQuantity", + props: { + label: {}, + modelValue: { default: () => ({ quantity: 0 }) }, + required: { type: Boolean }, + readonly: { type: Boolean }, + uuid: {}, + validation: { default: () => ({ errorMessage: "" }) } + }, + emits: ["update:modelValue"], + setup(e, { emit: t }) { + const n = e, o = t; + M(() => n.modelValue.quantity * n.modelValue.conversionFactor); + const s = M({ + get: () => n.modelValue, + set: (l) => { + o("update:modelValue", l); + } + }); + return (l, a) => (p(), v("div", Et, [ + i("label", { for: l.uuid }, w(l.label), 9, It), + _(i("input", ie({ + "onUpdate:modelValue": a[0] || (a[0] = (r) => s.value.quantity = r), + type: "number", + id: l.uuid, + disabled: l.readonly, + required: l.required + }, s.value), null, 16, Mt), [ + [P, s.value.quantity] + ]), + s.value.uom ? (p(), B(fe, { + key: 0, + modelValue: s.value.uom, + "onUpdate:modelValue": a[1] || (a[1] = (r) => s.value.uom = r), + label: "", + items: s.value.uoms, + class: "input-group-append" + }, null, 8, ["modelValue", "items"])) : H("", !0), + _(i("p", { + innerHTML: l.validation.errorMessage + }, null, 8, Tt), [ + [S, l.validation.errorMessage] + ]) + ])); + } +}); +const St = /* @__PURE__ */ A($t, [["__scopeId", "data-v-45134904"]]), se = { + date: "##/##/####", + datetime: "####/##/## ##:##", + time: "##:##", + fulltime: "##:##:##", + phone: "(###) ### - ####", + card: "#### #### #### ####" +}; +function Ot(e) { + try { + return Function(`"use strict";return (${e})`)(); + } catch { + } +} +function Vt(e) { + var n; + let t = e.value; + if (t) { + const o = Ot(t); + if (o) { + const s = e.instance.locale; + t = o(s); + } + } else { + const s = (n = e.instance.schema.fieldtype) == null ? void 0 : n.toLowerCase(); + s && se[s] && (t = se[s]); + } + return t; +} +function Lt(e, t) { + t || (t = "#"); + let n = e; + const o = [t, "/", "-", "(", ")", " "]; + for (const s of o) + n = n.replaceAll(s, ""); + return n; +} +function qt(e, t, n) { + n || (n = "#"); + let o = t; + for (const s of e) { + const l = o.indexOf(n); + if (l !== -1) { + const a = o.substring(0, l), r = o.substring(l + 1); + o = a + s + r; + } + } + return o.slice(0, t.length); +} +function xt(e, t) { + const n = Vt(t); + if (!n) + return; + const o = "#", s = e.value, l = Lt(s, o); + if (l) { + const a = qt(l, n, o); + t.instance.maskFilled && (t.instance.maskFilled = !a.includes(o)), e.value = a; + } else + e.value = n; +} +const Bt = C({ + 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 = g(!1), o = re("locale", ""); + return { inputText: M({ + get() { + return e.modelValue; + }, + set(l) { + t.emit("update:modelValue", l); + } + }), locale: o, maskFilled: n }; + }, + directives: { + mask: xt + } +}); +const Ht = ["id", "disabled", "maxlength", "required"], Pt = ["for"], Ft = ["innerHTML"]; +function Rt(e, t, n, o, s, l) { + const a = Oe("mask"); + return p(), v("div", null, [ + _(i("input", { + "onUpdate:modelValue": t[0] || (t[0] = (r) => e.inputText = r), + id: e.uuid, + disabled: e.readonly, + maxlength: e.mask ? e.maskFilled && e.mask.length : void 0, + required: e.required + }, null, 8, Ht), [ + [P, e.inputText], + [a, e.mask] + ]), + i("label", { for: e.uuid }, w(e.label), 9, Pt), + _(i("p", { + innerHTML: e.validation.errorMessage + }, null, 8, Ft), [ + [S, e.validation.errorMessage] + ]) + ]); +} +const Ut = /* @__PURE__ */ A(Bt, [["render", Rt], ["__scopeId", "data-v-76dba9b8"]]); +function Yt(e) { + e.component("ACheckbox", Pe), e.component("ACombobox", Re), e.component("ADate", it), e.component("ADropdown", fe), e.component("AFieldset", bt), e.component("AForm", me), e.component("ANumericInput", Dt), e.component("AQuantity", St), e.component("ATextInput", Ut); +} +export { + Pe as ACheckbox, + Re as AComboBox, + it as ADate, + fe as ADropdown, + bt as AFieldset, + me as AForm, + Dt as ANumericInput, + St as AQuantity, + Ut as ATextInput, + Yt as install +}; +//# sourceMappingURL=aform.js.map diff --git a/aform/dist/aform.js.map b/aform/dist/aform.js.map new file mode 100644 index 00000000..c58a811b --- /dev/null +++ b/aform/dist/aform.js.map @@ -0,0 +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/components/form/AQuantity.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","\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 AQuantity from '@/components/form/AQuantity.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('AQuantity', AQuantity)\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, AQuantity, 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","n","o","s","c","a","g","p","i","C","D","d","O","T","J","B","P","X","I","Y","Z","_","ee","te","f","u","A","E","t","l","ne","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$6","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","label","_vShow","_hoisted_5","_toDisplayString","_createCommentVNode","formData","componentProps","componentObj","propsToPass","key","childModels","val","newValue","collapsed","collapsible","formSchema","toggleCollapse","inputNumber","values","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","install","app","ACheckbox","AComboBox","ADate","ADropdown","AFieldset","AForm","ANumericInput","AQuantity","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 new file mode 100644 index 00000000..ac7c7a64 --- /dev/null +++ b/aform/dist/aform.umd.cjs @@ -0,0 +1,2 @@ +(function(m,t){typeof exports=="object"&&typeof module<"u"?t(exports,require("vue")):typeof define=="function"&&define.amd?define(["exports","vue"],t):(m=typeof globalThis<"u"?globalThis:m||self,t(m["@stonecrop/aform"]={},m.Vue))})(this,function(m,t){"use strict";const oe={id:"checkbox-container"},le=["id","readonly","required"],ae={id:"custom-checkbox"},re=["for"],se=["innerHTML"],ie=t.defineComponent({__name:"ACheckbox",props:{label:{},value:{},required:{type:Boolean},readOnly:{type:Boolean},uuid:{},validation:{default:()=>({errorMessage:" "})}},emits:["update:value"],setup(e,{emit:n}){const o=e,l=n,r=t.computed({get(){return o.value},set(a){l("update:value",a)}});return(a,s)=>(t.openBlock(),t.createElementBlock("div",null,[t.createElementVNode("label",oe,[t.withDirectives(t.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,le),[[t.vModelCheckbox,r.value]]),t.createElementVNode("span",ae,t.toDisplayString(r.value),1)]),t.createElementVNode("label",{for:a.uuid,id:"checkbox-label"},t.toDisplayString(a.label),9,re),t.withDirectives(t.createElementVNode("p",{innerHTML:a.validation.errorMessage},null,8,se),[[t.vShow,a.validation.errorMessage]])]))}}),dt="",_=(e,n)=>{const o=e.__vccOpts||e;for(const[l,r]of n)o[l]=r;return o},$=_(ie,[["__scopeId","data-v-743cd4db"]]),ce=t.createElementVNode("div",null,[t.createElementVNode("input",{type:"text"}),t.createElementVNode("input",{type:"text"}),t.createElementVNode("input",{type:"text"})],-1),O=t.defineComponent({__name:"AComboBox",props:["event","cellData","tableID"],setup(e){return(n,o)=>{const l=t.resolveComponent("ATableModal");return t.openBlock(),t.createBlock(l,{event:e.event,cellData:e.cellData,class:"amodal"},{default:t.withCtx(()=>[ce]),_:1},8,["event","cellData"])}}});var L;const N=typeof window<"u",de=e=>typeof e=="string",ue=()=>{};N&&(L=window==null?void 0:window.navigator)!=null&&L.userAgent&&/iP(ad|hone|od)/.test(window.navigator.userAgent);function q(e){return typeof e=="function"?e():t.unref(e)}function pe(e){return e}function me(e){return t.getCurrentScope()?(t.onScopeDispose(e),!0):!1}function V(e){var n;const o=q(e);return(n=o==null?void 0:o.$el)!=null?n:o}const F=N?window:void 0;function fe(...e){let n,o,l,r;if(de(e[0])||Array.isArray(e[0])?([o,l,r]=e,n=F):[n,o,l,r]=e,!n)return ue;Array.isArray(o)||(o=[o]),Array.isArray(l)||(l=[l]);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=t.watch(()=>[V(n),q(r)],([d,y])=>{s(),d&&a.push(...o.flatMap(g=>l.map(f=>i(d,g,f,y))))},{immediate:!0,flush:"post"}),c=()=>{p(),s()};return me(c),c}const x=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},P="__vueuse_ssr_handlers__";x[P]=x[P]||{};function he(e,{window:n=F,scrollTarget:o}={}){const l=t.ref(!1),r=()=>{if(!n)return;const a=n.document,s=V(e);if(!s)l.value=!1;else{const i=s.getBoundingClientRect();l.value=i.top<=(n.innerHeight||a.documentElement.clientHeight)&&i.left<=(n.innerWidth||a.documentElement.clientWidth)&&i.bottom>=0&&i.right>=0}};return t.watch(()=>V(e),()=>r(),{immediate:!0,flush:"post"}),n&&fe(o||n,"scroll",r,{capture:!1,passive:!0}),l}var H;(function(e){e.UP="UP",e.RIGHT="RIGHT",e.DOWN="DOWN",e.LEFT="LEFT",e.NONE="NONE"})(H||(H={}));var ye=Object.defineProperty,R=Object.getOwnPropertySymbols,ge=Object.prototype.hasOwnProperty,_e=Object.prototype.propertyIsEnumerable,U=(e,n,o)=>n in e?ye(e,n,{enumerable:!0,configurable:!0,writable:!0,value:o}):e[n]=o,be=(e,n)=>{for(var o in n||(n={}))ge.call(n,o)&&U(e,o,n[o]);if(R)for(var o of R(n))_e.call(n,o)&&U(e,o,n[o]);return e};be({linear:pe},{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 b=e=>{let n=he(e).value;return n=n&&e.offsetHeight>0,n},w=e=>e.tabIndex>=0,Q=e=>{const n=e.target;return B(n)},B=e=>{var n;let o;if(e instanceof HTMLTableCellElement){const l=(n=e.parentElement)==null?void 0:n.previousElementSibling;if(l){const r=Array.from(l.children)[e.cellIndex];r&&(o=r)}}else if(e instanceof HTMLTableRowElement){const l=e.previousElementSibling;l&&(o=l)}return o&&(!w(o)||!b(o))?B(o):o},we=e=>{var n;const o=e.target;let l;if(o instanceof HTMLTableCellElement){const r=(n=o.parentElement)==null?void 0:n.parentElement;if(r){const a=r.firstElementChild.children[o.cellIndex];a&&(l=a)}}else if(o instanceof HTMLTableRowElement){const r=o.parentElement;if(r){const a=r.firstElementChild;a&&(l=a)}}return l&&(!w(l)||!b(l))?I(l):l},j=e=>{const n=e.target;return I(n)},I=e=>{var n;let o;if(e instanceof HTMLTableCellElement){const l=(n=e.parentElement)==null?void 0:n.nextElementSibling;if(l){const r=Array.from(l.children)[e.cellIndex];r&&(o=r)}}else if(e instanceof HTMLTableRowElement){const l=e.nextElementSibling;l&&(o=l)}return o&&(!w(o)||!b(o))?I(o):o},ke=e=>{var n;const o=e.target;let l;if(o instanceof HTMLTableCellElement){const r=(n=o.parentElement)==null?void 0:n.parentElement;if(r){const a=r.lastElementChild.children[o.cellIndex];a&&(l=a)}}else if(o instanceof HTMLTableRowElement){const r=o.parentElement;if(r){const a=r.lastElementChild;a&&(l=a)}}return l&&(!w(l)||!b(l))?B(l):l},Y=e=>{const n=e.target;return S(n)},S=e=>{var n;let o;if(e.previousElementSibling)o=e.previousElementSibling;else{const l=(n=e.parentElement)==null?void 0:n.previousElementSibling;o=l==null?void 0:l.lastElementChild}return o&&(!w(o)||!b(o))?S(o):o},z=e=>{const n=e.target;return M(n)},M=e=>{var n;let o;if(e.nextElementSibling)o=e.nextElementSibling;else{const l=(n=e.parentElement)==null?void 0:n.nextElementSibling;o=l==null?void 0:l.firstElementChild}return o&&(!w(o)||!b(o))?M(o):o},W=e=>{const n=e.target.parentElement.firstElementChild;return n&&(!w(n)||!b(n))?M(n):n},K=e=>{const n=e.target.parentElement.lastElementChild;return n&&(!w(n)||!b(n))?S(n):n},A=["alt","control","shift","meta"],Ee={ArrowUp:"up",ArrowDown:"down",ArrowLeft:"left",ArrowRight:"right"},G={"keydown.up":e=>{const n=Q(e);n&&(e.preventDefault(),e.stopPropagation(),n.focus())},"keydown.down":e=>{const n=j(e);n&&(e.preventDefault(),e.stopPropagation(),n.focus())},"keydown.left":e=>{const n=Y(e);e.preventDefault(),e.stopPropagation(),n&&n.focus()},"keydown.right":e=>{const n=z(e);e.preventDefault(),e.stopPropagation(),n&&n.focus()},"keydown.control.up":e=>{const n=we(e);n&&(e.preventDefault(),e.stopPropagation(),n.focus())},"keydown.control.down":e=>{const n=ke(e);n&&(e.preventDefault(),e.stopPropagation(),n.focus())},"keydown.control.left":e=>{const n=W(e);n&&(e.preventDefault(),e.stopPropagation(),n.focus())},"keydown.control.right":e=>{const n=K(e);n&&(e.preventDefault(),e.stopPropagation(),n.focus())},"keydown.end":e=>{const n=K(e);n&&(e.preventDefault(),e.stopPropagation(),n.focus())},"keydown.enter":e=>{if(e.target instanceof HTMLTableCellElement){e.preventDefault(),e.stopPropagation();const n=j(e);n&&n.focus()}},"keydown.shift.enter":e=>{if(e.target instanceof HTMLTableCellElement){e.preventDefault(),e.stopPropagation();const n=Q(e);n&&n.focus()}},"keydown.home":e=>{const n=W(e);n&&(e.preventDefault(),e.stopPropagation(),n.focus())},"keydown.tab":e=>{const n=z(e);n&&(e.preventDefault(),e.stopPropagation(),n.focus())},"keydown.shift.tab":e=>{const n=Y(e);n&&(e.preventDefault(),e.stopPropagation(),n.focus())}};function Ce(e){const n=l=>{let r=null;l.parent&&(typeof l.parent=="string"?r=document.querySelector(l.parent):l.parent instanceof Element?r=l.parent:r=l.parent.value);let a=[];if(l.selectors)if(typeof l.selectors=="string")a=r?Array.from(r.querySelectorAll(l.selectors)):Array.from(document.querySelectorAll(l.selectors));else if(l.selectors instanceof Element)a.push(l.selectors);else if(Array.isArray(l.selectors.value))for(const s of l.selectors.value)s instanceof Element?a.push(s):a.push(s.$el);else a.push(l.selectors.value);else a=Array.from(r.children).filter(s=>w(s)&&b(s));return a},o=l=>r=>{const a=Ee[r.key]||r.key.toLowerCase();if(A.includes(a))return;const s=l.handlers||G;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=>A.includes(f)),g=A.some(f=>{const D=f.charAt(0).toUpperCase()+f.slice(1);return r.getModifierState(D)});if(y.length>0){if(g){for(const f of A)if(c.includes(f)){const D=f.charAt(0).toUpperCase()+f.slice(1);r.getModifierState(D)&&d(r)}}}else g||d(r)}}};t.onMounted(()=>{for(const l of e){const r=n(l);for(const a of r)a.addEventListener("keydown",o(l))}}),t.onBeforeUnmount(()=>{for(const l of e){const r=n(l);for(const a of r)a.removeEventListener("keydown",o(l))}})}const De=["event","colIndex","rowIndex","tableid"],Ae={colspan:"5"},Ve=["onClick"],Be=6,E=7,Ie=t.defineComponent({__name:"ADate",props:{colIndex:{},rowIndex:{},tableid:{},event:{},indent:{},readonly:{type:Boolean}},setup(e){const n=e,o=t.inject(n.tableid),l=new Date,r=t.ref(),a=t.ref(),s=t.ref(),i=t.ref([]);t.onMounted(async()=>{let u=o.cellData(n.colIndex,n.rowIndex);u?(u instanceof Date||(u=new Date(u)),r.value=u,a.value=r.value.getMonth(),s.value=r.value.getFullYear()):(a.value=l.getMonth(),s.value=l.getFullYear()),p(),await t.nextTick();const C=document.getElementsByClassName("selecteddate");if(C.length>0)C[0].focus();else{const h=document.getElementsByClassName("todaysdate");h.length>0&&h[0].focus()}}),t.watch([a,s],()=>{p()});const p=()=>{i.value=[];const u=new Date(s.value,a.value,1),C=u.getDay(),h=u.setDate(u.getDate()-C);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===l.getMonth())return l.toDateString()===new Date(u).toDateString()},D=u=>new Date(u).toDateString()===new Date(r.value).toDateString(),rt=(u,C)=>{r.value=new Date(i.value[C]),st()},st=()=>{o.setCellData(n.rowIndex,n.colIndex,r.value.getTime())},it=t.computed(()=>new Date(s.value,a.value,1).toLocaleDateString(void 0,{year:"numeric",month:"long"}));return Ce([{parent:"table.adate",selectors:"td",handlers:{...G,"keydown.pageup":y,"keydown.shift.pageup":c,"keydown.pagedown":g,"keydown.shift.pagedown":d}}]),(u,C)=>u.readonly?t.createCommentVNode("",!0):(t.openBlock(),t.createElementBlock("div",{key:0,event:u.event,colIndex:u.colIndex,rowIndex:u.rowIndex,tableid:u.tableid,class:"adate",tabindex:"0",ref:"adatepicker"},[t.createElementVNode("table",null,[t.createElementVNode("tr",null,[t.createElementVNode("td",{onClick:y,tabindex:-1},"<"),t.createElementVNode("th",Ae,t.toDisplayString(it.value),1),t.createElementVNode("td",{onClick:g,tabindex:-1},">")]),(t.openBlock(),t.createElementBlock(t.Fragment,null,t.renderList(Be,h=>t.createElementVNode("tr",{key:h},[(t.openBlock(),t.createElementBlock(t.Fragment,null,t.renderList(E,k=>t.createElementVNode("td",{key:(h-1)*E+k,contenteditable:!1,spellcheck:!1,tabindex:0,style:t.normalizeStyle({border:D(i.value[(h-1)*E+k])?"2px solid var(--focus-cell-outline)":"none",borderBottomColor:f(i.value[(h-1)*E+k])?"var(--focus-cell-outline)":"none"}),onClick:t.withModifiers(ct=>rt(ct,(h-1)*E+k),["prevent","stop"]),class:t.normalizeClass({todaysdate:f(i.value[(h-1)*E+k]),selecteddate:D(i.value[(h-1)*E+k])})},t.toDisplayString(new Date(i.value[(h-1)*E+k]).getDate()),15,Ve)),64))])),64))])],8,De))}}),pt="",J=_(Ie,[["__scopeId","data-v-169f1184"]]),Se=t.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,n){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()}}}),mt="",Me={class:"input-wrapper"},ve={id:"autocomplete-results",class:"autocomplete-results"},Te={key:0,class:"loading autocomplete-result"},$e=["onClick"],Oe={key:0};function Le(e,n,o,l,r,a){return t.openBlock(),t.createElementBlock("div",{class:t.normalizeClass(["autocomplete",{isOpen:e.isOpen}])},[t.createElementVNode("div",Me,[t.withDirectives(t.createElementVNode("input",{ref:"mopInput",type:"text",onInput:n[0]||(n[0]=(...s)=>e.onChange&&e.onChange(...s)),onFocus:n[1]||(n[1]=(...s)=>e.onChange&&e.onChange(...s)),"onUpdate:modelValue":n[2]||(n[2]=s=>e.search=s),onKeydown:[n[3]||(n[3]=t.withKeys((...s)=>e.onArrowDown&&e.onArrowDown(...s),["down"])),n[4]||(n[4]=t.withKeys((...s)=>e.onArrowUp&&e.onArrowUp(...s),["up"])),n[5]||(n[5]=t.withKeys((...s)=>e.onEnter&&e.onEnter(...s),["enter"]))]},null,544),[[t.vModelText,e.search]]),t.withDirectives(t.createElementVNode("ul",ve,[e.isLoading?(t.openBlock(),t.createElementBlock("li",Te,"Loading results...")):(t.openBlock(!0),t.createElementBlock(t.Fragment,{key:1},t.renderList(e.results,(s,i)=>(t.openBlock(),t.createElementBlock("li",{key:i,onClick:p=>e.setResult(s),class:t.normalizeClass(["autocomplete-result",{"is-active":i===e.arrowCounter}])},t.toDisplayString(s),11,$e))),128))],512),[[t.vShow,e.isOpen]]),e.label?(t.openBlock(),t.createElementBlock("label",Oe,t.toDisplayString(e.label),1)):t.createCommentVNode("",!0)])],2)}const v=_(Se,[["render",Le],["__scopeId","data-v-35e27f15"]]),Ne=t.defineComponent({__name:"CollapseButton",props:{collapsed:{type:Boolean}},setup(e){return(n,o)=>(t.openBlock(),t.createElementBlock("button",{class:t.normalizeClass(["collapse-button",n.collapsed?"rotated":"unrotated"])},"×",2))}}),ft="",qe=_(Ne,[["__scopeId","data-v-6f1c1b45"]]),Fe=t.defineComponent({__name:"AForm",props:{modelValue:{},data:{},readonly:{type:Boolean}},emits:["update:modelValue"],setup(e,{emit:n}){const o=e,l=n,r=t.ref(o.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=t.computed({get:()=>o.modelValue.map((i,p)=>t.computed({get(){return i.value},set:c=>{o.modelValue[p].value=c,l("update:modelValue",o.modelValue)}})),set:()=>{}});return(i,p)=>(t.openBlock(),t.createElementBlock("form",null,[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(i.modelValue,(c,d)=>(t.openBlock(),t.createBlock(t.resolveDynamicComponent(c.component),t.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))]))}}),ht="",T=_(Fe,[["__scopeId","data-v-82492bb4"]]),xe=t.defineComponent({__name:"AFieldset",props:{schema:{},label:{},collapsible:{type:Boolean},data:{}},setup(e){const n=e,o=t.ref(n.data||[]);let l=t.ref(!1),r=t.ref(n.collapsible);const a=t.ref(n.schema);function s(i){i.preventDefault(),r.value&&(l.value=!l.value)}return(i,p)=>(t.openBlock(),t.createElementBlock("fieldset",null,[t.createElementVNode("legend",{onClick:s,onSubmit:s},[t.createTextVNode(t.toDisplayString(i.label)+" ",1),t.unref(r)?(t.openBlock(),t.createBlock(qe,{key:0,collapsed:t.unref(l)},null,8,["collapsed"])):t.createCommentVNode("",!0)],32),t.renderSlot(i.$slots,"default",{collapsed:t.unref(l)},()=>[t.withDirectives(t.createVNode(T,{modelValue:a.value,"onUpdate:modelValue":p[0]||(p[0]=c=>a.value=c),data:o.value},null,8,["modelValue","data"]),[[t.vShow,!t.unref(l)]])],!0)]))}}),yt="",X=_(xe,[["__scopeId","data-v-cad9b578"]]),Pe=["id","disabled","required"],He=["for"],Re=["innerHTML"],Ue=t.defineComponent({__name:"ANumericInput",props:{label:{},modelValue:{},required:{type:Boolean},readonly:{type:Boolean},uuid:{},validation:{default:()=>({errorMessage:" "})}},emits:["update:modelValue"],setup(e,{emit:n}){const o=e,l=n,r=t.computed({get:()=>o.modelValue,set:a=>{l("update:modelValue",a)}});return(a,s)=>(t.openBlock(),t.createElementBlock("div",null,[t.withDirectives(t.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,Pe),[[t.vModelText,r.value]]),t.createElementVNode("label",{for:a.uuid},t.toDisplayString(a.label),9,He),t.withDirectives(t.createElementVNode("p",{innerHTML:a.validation.errorMessage},null,8,Re),[[t.vShow,a.validation.errorMessage]])]))}}),gt="",Z=_(Ue,[["__scopeId","data-v-be33e6c4"]]),Qe={class:"input-group"},je=["for"],Ye=["id","disabled","required"],ze=["innerHTML"],We=t.defineComponent({__name:"AQuantity",props:{label:{},modelValue:{default:()=>({quantity:0})},required:{type:Boolean},readonly:{type:Boolean},uuid:{},validation:{default:()=>({errorMessage:""})}},emits:["update:modelValue"],setup(e,{emit:n}){const o=e,l=n;t.computed(()=>o.modelValue.quantity*o.modelValue.conversionFactor);const r=t.computed({get:()=>o.modelValue,set:a=>{l("update:modelValue",a)}});return(a,s)=>(t.openBlock(),t.createElementBlock("div",Qe,[t.createElementVNode("label",{for:a.uuid},t.toDisplayString(a.label),9,je),t.withDirectives(t.createElementVNode("input",t.mergeProps({"onUpdate:modelValue":s[0]||(s[0]=i=>r.value.quantity=i),type:"number",id:a.uuid,disabled:a.readonly,required:a.required},r.value),null,16,Ye),[[t.vModelText,r.value.quantity]]),r.value.uom?(t.openBlock(),t.createBlock(v,{key:0,modelValue:r.value.uom,"onUpdate:modelValue":s[1]||(s[1]=i=>r.value.uom=i),label:"",items:r.value.uoms,class:"input-group-append"},null,8,["modelValue","items"])):t.createCommentVNode("",!0),t.withDirectives(t.createElementVNode("p",{innerHTML:a.validation.errorMessage},null,8,ze),[[t.vShow,a.validation.errorMessage]])]))}}),_t="",ee=_(We,[["__scopeId","data-v-45134904"]]),te={date:"##/##/####",datetime:"####/##/## ##:##",time:"##:##",fulltime:"##:##:##",phone:"(###) ### - ####",card:"#### #### #### ####"};function Ke(e){try{return Function(`"use strict";return (${e})`)()}catch{}}function Ge(e){var o;let n=e.value;if(n){const l=Ke(n);if(l){const r=e.instance.locale;n=l(r)}}else{const r=(o=e.instance.schema.fieldtype)==null?void 0:o.toLowerCase();r&&te[r]&&(n=te[r])}return n}function Je(e,n){n||(n="#");let o=e;const l=[n,"/","-","(",")"," "];for(const r of l)o=o.replaceAll(r,"");return o}function Xe(e,n,o){o||(o="#");let l=n;for(const r of e){const a=l.indexOf(o);if(a!==-1){const s=l.substring(0,a),i=l.substring(a+1);l=s+r+i}}return l.slice(0,n.length)}function Ze(e,n){const o=Ge(n);if(!o)return;const l="#",r=e.value,a=Je(r,l);if(a){const s=Xe(a,o,l);n.instance.maskFilled&&(n.instance.maskFilled=!s.includes(l)),e.value=s}else e.value=o}const et=t.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,n){const o=t.ref(!1),l=t.inject("locale","");return{inputText:t.computed({get(){return e.modelValue},set(a){n.emit("update:modelValue",a)}}),locale:l,maskFilled:o}},directives:{mask:Ze}}),bt="",tt=["id","disabled","maxlength","required"],nt=["for"],ot=["innerHTML"];function lt(e,n,o,l,r,a){const s=t.resolveDirective("mask");return t.openBlock(),t.createElementBlock("div",null,[t.withDirectives(t.createElementVNode("input",{"onUpdate:modelValue":n[0]||(n[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,tt),[[t.vModelText,e.inputText],[s,e.mask]]),t.createElementVNode("label",{for:e.uuid},t.toDisplayString(e.label),9,nt),t.withDirectives(t.createElementVNode("p",{innerHTML:e.validation.errorMessage},null,8,ot),[[t.vShow,e.validation.errorMessage]])])}const ne=_(et,[["render",lt],["__scopeId","data-v-76dba9b8"]]);function at(e){e.component("ACheckbox",$),e.component("ACombobox",O),e.component("ADate",J),e.component("ADropdown",v),e.component("AFieldset",X),e.component("AForm",T),e.component("ANumericInput",Z),e.component("AQuantity",ee),e.component("ATextInput",ne)}m.ACheckbox=$,m.AComboBox=O,m.ADate=J,m.ADropdown=v,m.AFieldset=X,m.AForm=T,m.ANumericInput=Z,m.AQuantity=ee,m.ATextInput=ne,m.install=at,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 new file mode 100644 index 00000000..e62734e1 --- /dev/null +++ b/aform/dist/aform.umd.cjs.map @@ -0,0 +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/components/form/AQuantity.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","\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 AQuantity from '@/components/form/AQuantity.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('AQuantity', AQuantity)\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, AQuantity, ATextInput, install }\n"],"names":["props","__props","emit","__emit","checkbox","computed","value","v","M","F","j","H","Q","q","G","U","K","y","t","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","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$6","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","label","_vShow","_hoisted_5","_toDisplayString","_createCommentVNode","formData","componentProps","componentObj","propsToPass","key","childModels","val","newValue","collapsed","collapsible","formSchema","toggleCollapse","inputNumber","values","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","install","app","ACheckbox","AComboBox","ADate","ADropdown","AFieldset","AForm","ANumericInput","AQuantity","ATextInput"],"mappings":"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"} \ No newline at end of file diff --git a/aform/dist/style.css b/aform/dist/style.css new file mode 100644 index 00000000..b19a944c --- /dev/null +++ b/aform/dist/style.css @@ -0,0 +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:white;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[data-v-35e27f15]{position:relative}.input-wrapper[data-v-35e27f15]{min-width:40ch;border:1px solid transparent;padding:0rem;margin:0rem;margin-right:1ch}input[data-v-35e27f15]{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[data-v-35e27f15]:focus{border:1px solid var(--input-active-border-color);border-radius:.25rem .25rem 0 0;border-bottom:none}label[data-v-35e27f15]{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:white;margin:-2.575rem 0 0 1ch;padding:0 .25ch}.autocomplete-results[data-v-35e27f15]{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[data-v-35e27f15]{list-style:none;text-align:left;padding:4px 6px;cursor:pointer}.autocomplete-result.is-active[data-v-35e27f15],.autocomplete-result[data-v-35e27f15]: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:white;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)}.input-group[data-v-45134904]{display:flex;flex-direction:row;align-items:baseline}div[data-v-45134904]{min-width:40ch;border:1px solid transparent;padding:0rem;margin:0rem;margin-right:1ch}input[data-v-45134904]{width:100%;outline:1px solid transparent;border:1px solid var(--input-border-color);padding:1ch .5ch .5ch 1ch;margin:.575rem 0 0;min-height:1.15rem}p[data-v-45134904],label[data-v-45134904]{color:var(--input-label-color);display:block;min-height:1.15rem;padding:0rem;margin:0rem 0rem .25rem;border:1px solid transparent}p[data-v-45134904]{width:100%;color:red;font-size:85%}label[data-v-45134904]{z-index:2;font-size:80%;position:absolute;background:white;margin-left:1ch;padding:0 .25ch}input[data-v-45134904]:focus{border:1px solid var(--input-active-border-color)}input:focus+label[data-v-45134904]{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:white;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/package.json b/aform/package.json index dfef2811..d220244b 100644 --- a/aform/package.json +++ b/aform/package.json @@ -1,66 +1,66 @@ { - "name": "@agritheory/aform", - "version": "0.1.2", + "name": "@stonecrop/aform", + "version": "0.2.2", + "license": "MIT", "type": "module", + "exports": { + ".": { + "import": "./dist/aform.js", + "require": "./dist/aform.umd.cjs" + }, + "./styles": "./dist/style.css" + }, "main": "dist/aform.js", "module": "dist/aform.js", - "umd": "dist/aform.umd.cjs", "types": "src/index", "files": [ "dist/*", "src/**/*.vue" ], - "license": "MIT", "scripts": { - "dev": "vite", "build": "tsc -b && vite build", + "dev": "vite", + "lint": "eslint . --ext .ts,.vue", "preview": "vite preview", - "story:dev": "histoire dev", "story:build": "histoire build", + "story:dev": "histoire dev", "story:preview": "histoire preview", "test": "vitest", "test:coverage": "vitest run --coverage", - "test:ui": "vitest --ui", - "lint": "eslint . --ext .ts,.vue" + "test:ui": "vitest --ui" }, "dependencies": { - "@agritheory/themes": "workspace:*", - "@agritheory/utilities": "workspace:*", + "@stonecrop/themes": "workspace:*", + "@stonecrop/utilities": "workspace:*", "uuid": "^9.0.0", "vue": "^3.2.47" }, - "peerDependencies": { - "@agritheory/atable": "workspace:*" - }, "devDependencies": { - "@agritheory/atable": "workspace:*", - "@histoire/plugin-vue": "^0.14.2", + "@histoire/plugin-vue": "^0.16.1", + "@stonecrop/atable": "workspace:*", "@types/uuid": "^9.0.0", - "@typescript-eslint/eslint-plugin": "^5.33.0", - "@typescript-eslint/parser": "^5.33.0", - "@vitejs/plugin-vue": "^4.0.0", - "@vitest/coverage-c8": "^0.28.4", - "@vitest/ui": "^0.28.4", - "@vue/test-utils": "^2.2.10", - "cypress": "^12.2.0", - "eslint-config-prettier": "^8.5.0", - "eslint-plugin-vue": "^9.3.0", - "eslint": "^8.22.0", - "histoire": "^0.14.2", - "jsdom": "^21.1.0", - "typescript": "^4.9.4", - "vite": "^4.1.1", - "vitest": "^0.28.4", + "@typescript-eslint/eslint-plugin": "^5.59.5", + "@typescript-eslint/parser": "^5.59.5", + "@vitejs/plugin-vue": "^4.2.1", + "@vitest/coverage-v8": "^1.5.0", + "@vitest/ui": "^1.5.0", + "@vue/test-utils": "^2.3.2", + "cypress": "^12.11.0", + "eslint": "^8.40.0", + "eslint-config-prettier": "^8.8.0", + "eslint-plugin-vue": "^9.11.1", + "histoire": "^0.16.1", + "jsdom": "^22.0.0", + "typescript": "^5.0.4", + "vite": "^4.3.5", + "vitest": "^1.5.0", "vue-router": "^4" }, + "peerDependencies": { + "@stonecrop/atable": "workspace:*" + }, "engines": { - "node": ">=16.19.1" + "node": ">=20.11.0" }, - "exports": { - ".": { - "import": "./dist/aform.js", - "require": "./dist/aform.umd.cjs" - }, - "./styles": "./dist/style.css" - } + "umd": "dist/aform.umd.cjs" } 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/src/components/form/ADate.vue b/aform/src/components/form/ADate.vue index d46bc5d3..c045b50a 100644 --- a/aform/src/components/form/ADate.vue +++ b/aform/src/components/form/ADate.vue @@ -45,8 +45,8 @@ \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 new file mode 100644 index 00000000..716f3fad --- /dev/null +++ b/atable/dist/atable.umd.cjs @@ -0,0 +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 C(t){var e;const o=L(t);return(e=o==null?void 0:o.$el)!=null?e:o}const M=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=M):[e,o,l,a]=t,!e)return oe;Array.isArray(o)||(o=[o]),Array.isArray(l)||(l=[l]);const r=[],i=()=>{r.forEach(u=>u()),r.length=0},s=(u,c,b,w)=>(u.addEventListener(c,b,w),()=>u.removeEventListener(c,b,w)),d=n.watch(()=>[C(e),L(a)],([u,c])=>{i(),u&&r.push(...o.flatMap(b=>l.map(w=>s(u,b,w,c))))},{immediate:!0,flush:"post"}),f=()=>{d(),i()};return re(f),f}const V=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},j="__vueuse_ssr_handlers__";V[j]=V[j]||{};function ie(t,{window:e=M,scrollTarget:o}={}){const l=n.ref(!1),a=()=>{if(!e)return;const r=e.document,i=C(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(()=>C(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,pe=(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};pe({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 A(e)},A=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))?A(o):o},fe=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))?S(l):l},z=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.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))?S(o):o},ue=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))?A(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 D(e)},D=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))?D(o):o},J=t=>{const e=t.target.parentElement.firstElementChild;return e&&(!x(e)||!y(e))?D(e):e},X=t=>{const e=t.target.parentElement.lastElementChild;return e&&(!x(e)||!y(e))?T(e):e},E=["alt","control","shift","meta"],me={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=fe(t);e&&(t.preventDefault(),t.stopPropagation(),e.focus())},"keydown.control.down":t=>{const e=ue(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 $(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=me[a.key]||a.key.toLowerCase();if(E.includes(r))return;const i=l.handlers||Y;for(const s of Object.keys(i)){const[d,...f]=s.split(".");if(d==="keydown"&&f.includes(r)){const u=i[s],c=f.filter(w=>E.includes(w)),b=E.some(w=>{const I=w.charAt(0).toUpperCase()+w.slice(1);return a.getModifierState(I)});if(c.length>0){if(b){for(const w of E)if(f.includes(w)){const I=w.charAt(0).toUpperCase()+w.slice(1);a.getModifierState(I)&&u(a)}}}else b||u(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 I;const e=t,o=n.inject(e.tableid),l=n.ref(null);let a=n.ref(!1);const r=n.computed(()=>{const p=o.cellData(e.colIndex,e.rowIndex);if(o.columns[e.colIndex].format){const g=o.columns[e.colIndex].format;return typeof g=="function"?g(p):typeof g=="string"?Function(`"use strict";return (${g})`)()(p):p}else return p}),i=p=>{if(e.clickHandler){e.clickHandler(p);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 p={...Y,"keydown.f2":i,"keydown.alt.up":i,"keydown.alt.down":i,"keydown.alt.left":i,"keydown.alt.right":i};typeof e.addNavigation=="object"&&(p={...p,...e.addNavigation}),$([{selectors:l,handlers:p}])}const s=n.computed(()=>o.columns[e.colIndex].align||"center"),d=n.computed(()=>o.columns[e.colIndex].width||"40ch");let f="";const u=()=>{l.value&&(f=l.value.innerText)},c=()=>{l.value&&l.value.innerHTML!==f&&(f=l.value.innerText,l.value.dispatchEvent(new Event("change")),a.value=!0,o.columns[e.colIndex].format||o.setCellData(e.rowIndex,e.colIndex,f))},b=(p,g)=>g&&p===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,(I=o.display[e.rowIndex])==null?void 0:I.indent)};return(p,g)=>(n.openBlock(),n.createElementBlock("td",{ref_key:"cell",ref:l,"data-colindex":p.colIndex,"data-rowindex":p.rowIndex,"data-editable":n.unref(o).columns[p.colIndex].edit,contenteditable:n.unref(o).columns[p.colIndex].edit,tabindex:p.tabIndex,spellcheck:!1,style:w,onFocus:u,onPaste:c,onBlur:c,onInput:c,onClick:i,onMousedown:i},[n.unref(o).columns[p.colIndex].cellComponent?(n.openBlock(),n.createBlock(n.resolveDynamicComponent(n.unref(o).columns[p.colIndex].cellComponent),n.mergeProps({key:0,value:r.value},n.unref(o).columns[p.colIndex].cellComponentProps),null,16,["value"])):(n.openBlock(),n.createElementBlock("span",he,n.toDisplayString(r.value),1))],40,we))}}),He="",_=(t,e)=>{const o=t.__vccOpts||t;for(const[l,a]of e)o[l]=a;return o},B=_(ge,[["__scopeId","data-v-07dfe445"]]),be=["tabindex"],ye=["tabindex"],xe=["colspan"],_e=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)},$([{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))}}),Le="",Z=_(_e,[["__scopeId","data-v-b2e2ed2d"]]),Ie=["tabindex"],Ee={key:0,tabIndex:-1,class:"list-index"},ke=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&&$([{selectors:l,handlers:e.addNavigation}]),(d,f)=>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:f[0]||(f[0]=u=>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()]])}}),Me="",O=_(ke,[["__scopeId","data-v-4c71a067"]]);let k;const Ce=new Uint8Array(16);function Ae(){if(!k&&(k=typeof crypto<"u"&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto),!k))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return k(Ce)}const m=[];for(let t=0;t<256;++t)m.push((t+256).toString(16).slice(1));function Se(t,e=0){return m[t[e+0]]+m[t[e+1]]+m[t[e+2]]+m[t[e+3]]+"-"+m[t[e+4]]+m[t[e+5]]+"-"+m[t[e+6]]+m[t[e+7]]+"-"+m[t[e+8]]+m[t[e+9]]+"-"+m[t[e+10]]+m[t[e+11]]+m[t[e+12]]+m[t[e+13]]+m[t[e+14]]+m[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||Ae)();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 Se(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 Te={key:0},De={class:"atable-header-row",tabindex:"-1"},$e={key:0,id:"header-index"},Be=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",Te,[n.createElementVNode("tr",De,[n.unref(o).zeroColumn?(n.openBlock(),n.createElementBlock("th",$e)):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)}}),je="",R=_(Be,[["__scopeId","data-v-16e66636"]]),Oe=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))}}),Ue="",P=_(Oe,[["__scopeId","data-v-10a48b2a"]]),Re=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 f=d.dataset.rowindex,u=d.dataset.colindex,c=document.querySelectorAll(`[data-rowindex='${f}'][data-colindex='${u}']`);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,(f,u)=>(n.openBlock(),n.createBlock(O,{key:f.id||n.unref(v)(),row:f,rowIndex:u,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}:${u}`,tableid:n.unref(r).id,col:c,spellcheck:"false",rowIndex:u,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))}}),We="",te=_(Re,[["__scopeId","data-v-55d8ba05"]]);function Pe(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=Pe,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 new file mode 100644 index 00000000..35f63571 --- /dev/null +++ b/atable/dist/atable.umd.cjs.map @@ -0,0 +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","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/style.css b/atable/dist/style.css new file mode 100644 index 00000000..efc1bfc3 --- /dev/null +++ b/atable/dist/style.css @@ -0,0 +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-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/package.json b/atable/package.json index 4180838f..d0c9149d 100644 --- a/atable/package.json +++ b/atable/package.json @@ -1,66 +1,66 @@ { - "name": "@agritheory/atable", - "version": "0.2.0", + "name": "@stonecrop/atable", + "version": "0.2.2", + "license": "MIT", "type": "module", + "exports": { + ".": { + "import": "./dist/atable.js", + "require": "./dist/atable.umd.cjs" + }, + "./styles": "./dist/style.css" + }, "main": "dist/atable.js", "module": "dist/atable.js", - "umd": "dist/atable.umd.cjs", "types": "src/index", "files": [ "dist/*", "src/**/*.vue" ], - "license": "MIT", "scripts": { - "dev": "vite", "build": "tsc -b && vite build", + "dev": "vite", + "lint": "eslint . --ext .ts,.vue", "preview": "vite preview", - "story:dev": "histoire dev", "story:build": "histoire build", + "story:dev": "histoire dev", "story:preview": "histoire preview", "test": "vitest", "test:coverage": "vitest run --coverage", - "test:ui": "vitest --ui", - "lint": "eslint . --ext .ts,.vue" + "test:ui": "vitest --ui" }, "dependencies": { - "@agritheory/themes": "workspace:*", - "@agritheory/utilities": "workspace:*", + "@stonecrop/themes": "workspace:*", + "@stonecrop/utilities": "workspace:*", "uuid": "^9.0.0", "vue": "^3.2.47" }, - "peerDependencies": { - "@agritheory/aform": "workspace:*" - }, "devDependencies": { - "@agritheory/aform": "workspace:*", - "@histoire/plugin-vue": "^0.14.2", + "@histoire/plugin-vue": "^0.16.1", + "@stonecrop/aform": "workspace:*", "@types/uuid": "^9.0.0", - "@typescript-eslint/eslint-plugin": "^5.33.0", - "@typescript-eslint/parser": "^5.33.0", - "@vitejs/plugin-vue": "^4.0.0", - "@vitest/coverage-c8": "^0.28.4", - "@vitest/ui": "^0.28.4", - "@vue/test-utils": "^2.2.10", - "cypress": "^12.2.0", - "eslint-config-prettier": "^8.5.0", - "eslint-plugin-vue": "^9.3.0", - "eslint": "^8.22.0", - "histoire": "^0.14.2", - "jsdom": "^21.1.0", - "typescript": "^4.9.4", - "vite": "^4.1.1", - "vitest": "^0.28.4", + "@typescript-eslint/eslint-plugin": "^5.59.5", + "@typescript-eslint/parser": "^5.59.5", + "@vitejs/plugin-vue": "^4.2.1", + "@vitest/coverage-v8": "^1.5.0", + "@vitest/ui": "^1.5.0", + "@vue/test-utils": "^2.3.2", + "cypress": "^12.11.0", + "eslint": "^8.40.0", + "eslint-config-prettier": "^8.8.0", + "eslint-plugin-vue": "^9.11.1", + "histoire": "^0.16.1", + "jsdom": "^22.0.0", + "typescript": "^5.0.4", + "vite": "^4.3.5", + "vitest": "^1.5.0", "vue-router": "^4" }, + "peerDependencies": { + "@stonecrop/aform": "workspace:*" + }, "engines": { - "node": ">=16.19.1" + "node": ">=20.11.0" }, - "exports": { - ".": { - "import": "./dist/atable.js", - "require": "./dist/atable.umd.cjs" - }, - "./styles": "./dist/style.css" - } + "umd": "dist/atable.umd.cjs" } diff --git a/atable/src/components/ACell.vue b/atable/src/components/ACell.vue index 7648dd05..0743e154 100644 --- a/atable/src/components/ACell.vue +++ b/atable/src/components/ACell.vue @@ -27,7 +27,7 @@ diff --git a/atable/stories/list.story.vue b/atable/stories/list.story.vue index 2db662db..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 => { @@ -277,7 +277,7 @@ rowNav['keydown.enter'] = rowNav['keydown.down'] diff --git a/atable/vite.config.ts b/atable/vite.config.ts index c88c404e..6aeb4534 100644 --- a/atable/vite.config.ts +++ b/atable/vite.config.ts @@ -23,7 +23,7 @@ export default defineConfig({ sourcemap: true, lib: { entry: resolve(projectRootDir, 'src/index.ts'), - name: '@agritheory/atable', + name: '@stonecrop/atable', }, rollupOptions: { external: ['vue'], @@ -43,10 +43,13 @@ export default defineConfig({ globals: true, environment: 'jsdom', coverage: { - lines: 10, - branches: 10, - functions: 10, - statements: 10, + provider: 'v8', + thresholds: { + lines: 70, + branches: 70, + functions: 70, + statements: 70, + }, // required for Github Actions CI reporter: ['text', 'json-summary', 'json'], reportsDirectory: './coverage', @@ -67,7 +70,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/beam/dev/vite.config.js b/beam/dev/vite.config.js index 876b026e..16e498ff 100644 --- a/beam/dev/vite.config.js +++ b/beam/dev/vite.config.js @@ -19,7 +19,7 @@ module.exports = { build: { lib: { entry: resolve(__dirname, '../src/index.js'), - name: '@agritheory/beam', + name: '@stonecrop/beam', }, rollupOptions: { external: ['vue'], diff --git a/beam/package-lock.json b/beam/package-lock.json index f1134ae2..7d0733a0 100644 --- a/beam/package-lock.json +++ b/beam/package-lock.json @@ -17,7 +17,7 @@ "@cypress/vue": "^3.0.0-beta.4", "@vitejs/plugin-vue": "^3.0.1", "cypress": "^8.1.0", - "vite": "^4.1.1", + "vite": "^4.3.5", "vue-router": "^4" }, "engines": { diff --git a/beam/package.json b/beam/package.json index eed42ce3..f6a5b2bd 100644 --- a/beam/package.json +++ b/beam/package.json @@ -1,6 +1,6 @@ { - "name": "@agritheory/beam", - "version": "0.1.0", + "name": "@stonecrop/beam", + "version": "0.2.2", "license": "MIT", "scripts": { "dev": "vite serve dev/ -c dev/vite.config.js -d", @@ -15,11 +15,11 @@ "@vitejs/plugin-vue": "^4.0.0", "cypress": "^12.2.0", "portal-vue": "^3.0.0", - "vite": "^4.1.1", + "vite": "^4.3.5", "vue-router": "^4" }, "engines": { - "node": ">=16.19.1" + "node": ">=20.11.0" }, "files": [ "dist" diff --git a/code_editor/dist/code-editor.js b/code_editor/dist/code-editor.js new file mode 100644 index 00000000..a73e79bc --- /dev/null +++ b/code_editor/dist/code-editor.js @@ -0,0 +1,779 @@ +import { defineComponent as _, ref as C, onMounted as $, openBlock as x, createElementBlock as q, createElementVNode as D } from "vue"; +function B(e, n, r) { + return n in e ? Object.defineProperty(e, n, { + value: r, + enumerable: !0, + configurable: !0, + writable: !0 + }) : e[n] = r, e; +} +function k(e, n) { + var r = Object.keys(e); + if (Object.getOwnPropertySymbols) { + var t = Object.getOwnPropertySymbols(e); + n && (t = t.filter(function(o) { + return Object.getOwnPropertyDescriptor(e, o).enumerable; + })), r.push.apply(r, t); + } + return r; +} +function y(e) { + for (var n = 1; n < arguments.length; n++) { + var r = arguments[n] != null ? arguments[n] : {}; + n % 2 ? k(Object(r), !0).forEach(function(t) { + B(e, t, r[t]); + }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(r)) : k(Object(r)).forEach(function(t) { + Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(r, t)); + }); + } + return e; +} +function L(e, n) { + if (e == null) + return {}; + var r = {}, t = Object.keys(e), o, i; + for (i = 0; i < t.length; i++) + o = t[i], !(n.indexOf(o) >= 0) && (r[o] = e[o]); + return r; +} +function H(e, n) { + if (e == null) + return {}; + var r = L(e, n), t, o; + if (Object.getOwnPropertySymbols) { + var i = Object.getOwnPropertySymbols(e); + for (o = 0; o < i.length; o++) + t = i[o], !(n.indexOf(t) >= 0) && Object.prototype.propertyIsEnumerable.call(e, t) && (r[t] = e[t]); + } + return r; +} +function M(e, n) { + return R(e) || z(e, n) || F(e, n) || W(); +} +function R(e) { + if (Array.isArray(e)) + return e; +} +function z(e, n) { + if (!(typeof Symbol > "u" || !(Symbol.iterator in Object(e)))) { + var r = [], t = !0, o = !1, i = void 0; + try { + for (var a = e[Symbol.iterator](), u; !(t = (u = a.next()).done) && (r.push(u.value), !(n && r.length === n)); t = !0) + ; + } catch (c) { + o = !0, i = c; + } finally { + try { + !t && a.return != null && a.return(); + } finally { + if (o) + throw i; + } + } + return r; + } +} +function F(e, n) { + if (e) { + if (typeof e == "string") + return O(e, n); + var r = Object.prototype.toString.call(e).slice(8, -1); + if (r === "Object" && e.constructor && (r = e.constructor.name), r === "Map" || r === "Set") + return Array.from(e); + if (r === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)) + return O(e, n); + } +} +function O(e, n) { + (n == null || n > e.length) && (n = e.length); + for (var r = 0, t = new Array(n); r < n; r++) + t[r] = e[r]; + return t; +} +function W() { + throw new TypeError(`Invalid attempt to destructure non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`); +} +function G(e, n, r) { + return n in e ? Object.defineProperty(e, n, { + value: r, + enumerable: !0, + configurable: !0, + writable: !0 + }) : e[n] = r, e; +} +function w(e, n) { + var r = Object.keys(e); + if (Object.getOwnPropertySymbols) { + var t = Object.getOwnPropertySymbols(e); + n && (t = t.filter(function(o) { + return Object.getOwnPropertyDescriptor(e, o).enumerable; + })), r.push.apply(r, t); + } + return r; +} +function j(e) { + for (var n = 1; n < arguments.length; n++) { + var r = arguments[n] != null ? arguments[n] : {}; + n % 2 ? w(Object(r), !0).forEach(function(t) { + G(e, t, r[t]); + }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(r)) : w(Object(r)).forEach(function(t) { + Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(r, t)); + }); + } + return e; +} +function N() { + for (var e = arguments.length, n = new Array(e), r = 0; r < e; r++) + n[r] = arguments[r]; + return function(t) { + return n.reduceRight(function(o, i) { + return i(o); + }, t); + }; +} +function d(e) { + return function n() { + for (var r = this, t = arguments.length, o = new Array(t), i = 0; i < t; i++) + o[i] = arguments[i]; + return o.length >= e.length ? e.apply(this, o) : function() { + for (var a = arguments.length, u = new Array(a), c = 0; c < a; c++) + u[c] = arguments[c]; + return n.apply(r, [].concat(o, u)); + }; + }; +} +function m(e) { + return {}.toString.call(e).includes("Object"); +} +function U(e) { + return !Object.keys(e).length; +} +function l(e) { + return typeof e == "function"; +} +function K(e, n) { + return Object.prototype.hasOwnProperty.call(e, n); +} +function V(e, n) { + return m(n) || f("changeType"), Object.keys(n).some(function(r) { + return !K(e, r); + }) && f("changeField"), n; +} +function Y(e) { + l(e) || f("selectorType"); +} +function J(e) { + l(e) || m(e) || f("handlerType"), m(e) && Object.values(e).some(function(n) { + return !l(n); + }) && f("handlersType"); +} +function Q(e) { + e || f("initialIsRequired"), m(e) || f("initialType"), U(e) && f("initialContent"); +} +function X(e, n) { + throw new Error(e[n] || e.default); +} +var Z = { + initialIsRequired: "initial state is required", + initialType: "initial state should be an object", + initialContent: "initial state shouldn't be an empty object", + handlerType: "handler should be an object or a function", + handlersType: "all handlers should be a functions", + selectorType: "selector should be a function", + changeType: "provided value of changes should be an object", + changeField: 'it seams you want to change a field in the state which is not specified in the "initial" state', + default: "an unknown error accured in `state-local` package" +}, f = d(X)(Z), p = { + changes: V, + selector: Y, + handler: J, + initial: Q +}; +function ee(e) { + var n = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}; + p.initial(e), p.handler(n); + var r = { + current: e + }, t = d(te)(r, n), o = d(re)(r), i = d(p.changes)(e), a = d(ne)(r); + function u() { + var s = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : function(T) { + return T; + }; + return p.selector(s), s(r.current); + } + function c(s) { + N(t, o, i, a)(s); + } + return [u, c]; +} +function ne(e, n) { + return l(n) ? n(e.current) : n; +} +function re(e, n) { + return e.current = j(j({}, e.current), n), n; +} +function te(e, n, r) { + return l(n) ? n(e.current) : Object.keys(r).forEach(function(t) { + var o; + return (o = n[t]) === null || o === void 0 ? void 0 : o.call(n, e.current[t]); + }), r; +} +var oe = { + create: ee +}, ie = { + paths: { + vs: "https://cdn.jsdelivr.net/npm/monaco-editor@0.36.1/min/vs" + } +}; +function ae(e) { + return function n() { + for (var r = this, t = arguments.length, o = new Array(t), i = 0; i < t; i++) + o[i] = arguments[i]; + return o.length >= e.length ? e.apply(this, o) : function() { + for (var a = arguments.length, u = new Array(a), c = 0; c < a; c++) + u[c] = arguments[c]; + return n.apply(r, [].concat(o, u)); + }; + }; +} +function ce(e) { + return {}.toString.call(e).includes("Object"); +} +function ue(e) { + return e || S("configIsRequired"), ce(e) || S("configType"), e.urls ? (fe(), { + paths: { + vs: e.urls.monacoBase + } + }) : e; +} +function fe() { + console.warn(P.deprecation); +} +function de(e, n) { + throw new Error(e[n] || e.default); +} +var P = { + configIsRequired: "the configuration object is required", + configType: "the configuration object should be an object", + default: "an unknown error accured in `@monaco-editor/loader` package", + deprecation: `Deprecation warning! + You are using deprecated way of configuration. + + Instead of using + monaco.config({ urls: { monacoBase: '...' } }) + use + monaco.config({ paths: { vs: '...' } }) + + For more please check the link https://github.com/suren-atoyan/monaco-loader#config + ` +}, S = ae(de)(P), le = { + config: ue +}, ge = function() { + for (var n = arguments.length, r = new Array(n), t = 0; t < n; t++) + r[t] = arguments[t]; + return function(o) { + return r.reduceRight(function(i, a) { + return a(i); + }, o); + }; +}; +function I(e, n) { + return Object.keys(n).forEach(function(r) { + n[r] instanceof Object && e[r] && Object.assign(n[r], I(e[r], n[r])); + }), y(y({}, e), n); +} +var se = { + type: "cancelation", + msg: "operation is manually canceled" +}; +function h(e) { + var n = !1, r = new Promise(function(t, o) { + e.then(function(i) { + return n ? o(se) : t(i); + }), e.catch(o); + }); + return r.cancel = function() { + return n = !0; + }, r; +} +var pe = oe.create({ + config: ie, + isInitialized: !1, + resolve: null, + reject: null, + monaco: null +}), E = M(pe, 2), g = E[0], b = E[1]; +function me(e) { + var n = le.config(e), r = n.monaco, t = H(n, ["monaco"]); + b(function(o) { + return { + config: I(o.config, t), + monaco: r + }; + }); +} +function be() { + var e = g(function(n) { + var r = n.monaco, t = n.isInitialized, o = n.resolve; + return { + monaco: r, + isInitialized: t, + resolve: o + }; + }); + if (!e.isInitialized) { + if (b({ + isInitialized: !0 + }), e.monaco) + return e.resolve(e.monaco), h(v); + if (window.monaco && window.monaco.editor) + return A(window.monaco), e.resolve(window.monaco), h(v); + ge(he, ke)(ye); + } + return h(v); +} +function he(e) { + return document.body.appendChild(e); +} +function ve(e) { + var n = document.createElement("script"); + return e && (n.src = e), n; +} +function ke(e) { + var n = g(function(t) { + var o = t.config, i = t.reject; + return { + config: o, + reject: i + }; + }), r = ve("".concat(n.config.paths.vs, "/loader.js")); + return r.onload = function() { + return e(); + }, r.onerror = n.reject, r; +} +function ye() { + var e = g(function(r) { + var t = r.config, o = r.resolve, i = r.reject; + return { + config: t, + resolve: o, + reject: i + }; + }), n = window.require; + n.config(e.config), n(["vs/editor/editor.main"], function(r) { + A(r), e.resolve(r); + }, function(r) { + e.reject(r); + }); +} +function A(e) { + g().monaco || b({ + monaco: e + }); +} +function Oe() { + return g(function(e) { + var n = e.monaco; + return n; + }); +} +var v = new Promise(function(e, n) { + return b({ + resolve: e, + reject: n + }); +}), we = { + config: me, + init: be, + __getMonacoInstance: Oe +}; +const je = { + base: "vs", + inherit: !0, + colors: { + "editor.foreground": "#24292e", + "editor.background": "#ffffff", + "editor.selectionBackground": "#c8c8fa", + "editor.inactiveSelectionBackground": "#fafbfc", + "editor.lineHighlightBackground": "#fafbfc", + "editorCursor.foreground": "#24292e", + "editorWhitespace.foreground": "#959da5", + "editorIndentGuide.background": "#959da5", + "editorIndentGuide.activeBackground": "#24292e", + "editor.selectionHighlightBorder": "#fafbfc" + }, + rules: [ + { + background: "ffffff", + token: "" + }, + { + foreground: "6a737d", + token: "comment" + }, + { + foreground: "6a737d", + token: "punctuation.definition.comment" + }, + { + foreground: "6a737d", + token: "string.comment" + }, + { + foreground: "005cc5", + token: "constant" + }, + { + foreground: "005cc5", + token: "entity.name.constant" + }, + { + foreground: "005cc5", + token: "variable.other.constant" + }, + { + foreground: "005cc5", + token: "variable.language" + }, + { + foreground: "6f42c1", + token: "entity" + }, + { + foreground: "6f42c1", + token: "entity.name" + }, + { + foreground: "24292e", + token: "variable.parameter.function" + }, + { + foreground: "22863a", + token: "entity.name.tag" + }, + { + foreground: "d73a49", + token: "keyword" + }, + { + foreground: "d73a49", + token: "storage" + }, + { + foreground: "d73a49", + token: "storage.type" + }, + { + foreground: "24292e", + token: "storage.modifier.package" + }, + { + foreground: "24292e", + token: "storage.modifier.import" + }, + { + foreground: "24292e", + token: "storage.type.java" + }, + { + foreground: "032f62", + token: "string" + }, + { + foreground: "032f62", + token: "punctuation.definition.string" + }, + { + foreground: "032f62", + token: "string punctuation.section.embedded source" + }, + { + foreground: "005cc5", + token: "support" + }, + { + foreground: "005cc5", + token: "meta.property-name" + }, + { + foreground: "e36209", + token: "variable" + }, + { + foreground: "24292e", + token: "variable.other" + }, + { + foreground: "b31d28", + fontStyle: "bold italic underline", + token: "invalid.broken" + }, + { + foreground: "b31d28", + fontStyle: "bold italic underline", + token: "invalid.deprecated" + }, + { + foreground: "fafbfc", + background: "b31d28", + fontStyle: "italic underline", + token: "invalid.illegal" + }, + { + foreground: "fafbfc", + background: "d73a49", + fontStyle: "italic underline", + token: "carriage-return" + }, + { + foreground: "b31d28", + fontStyle: "bold italic underline", + token: "invalid.unimplemented" + }, + { + foreground: "b31d28", + token: "message.error" + }, + { + foreground: "24292e", + token: "string source" + }, + { + foreground: "005cc5", + token: "string variable" + }, + { + foreground: "032f62", + token: "source.regexp" + }, + { + foreground: "032f62", + token: "string.regexp" + }, + { + foreground: "032f62", + token: "string.regexp.character-class" + }, + { + foreground: "032f62", + token: "string.regexp constant.character.escape" + }, + { + foreground: "032f62", + token: "string.regexp source.ruby.embedded" + }, + { + foreground: "032f62", + token: "string.regexp string.regexp.arbitrary-repitition" + }, + { + foreground: "22863a", + fontStyle: "bold", + token: "string.regexp constant.character.escape" + }, + { + foreground: "005cc5", + token: "support.constant" + }, + { + foreground: "005cc5", + token: "support.variable" + }, + { + foreground: "005cc5", + token: "meta.module-reference" + }, + { + foreground: "735c0f", + token: "markup.list" + }, + { + foreground: "005cc5", + fontStyle: "bold", + token: "markup.heading" + }, + { + foreground: "005cc5", + fontStyle: "bold", + token: "markup.heading entity.name" + }, + { + foreground: "22863a", + token: "markup.quote" + }, + { + foreground: "24292e", + fontStyle: "italic", + token: "markup.italic" + }, + { + foreground: "24292e", + fontStyle: "bold", + token: "markup.bold" + }, + { + foreground: "005cc5", + token: "markup.raw" + }, + { + foreground: "b31d28", + background: "ffeef0", + token: "markup.deleted" + }, + { + foreground: "b31d28", + background: "ffeef0", + token: "meta.diff.header.from-file" + }, + { + foreground: "b31d28", + background: "ffeef0", + token: "punctuation.definition.deleted" + }, + { + foreground: "22863a", + background: "f0fff4", + token: "markup.inserted" + }, + { + foreground: "22863a", + background: "f0fff4", + token: "meta.diff.header.to-file" + }, + { + foreground: "22863a", + background: "f0fff4", + token: "punctuation.definition.inserted" + }, + { + foreground: "e36209", + background: "ffebda", + token: "markup.changed" + }, + { + foreground: "e36209", + background: "ffebda", + token: "punctuation.definition.changed" + }, + { + foreground: "f6f8fa", + background: "005cc5", + token: "markup.ignored" + }, + { + foreground: "f6f8fa", + background: "005cc5", + token: "markup.untracked" + }, + { + foreground: "6f42c1", + fontStyle: "bold", + token: "meta.diff.range" + }, + { + foreground: "005cc5", + token: "meta.diff.header" + }, + { + foreground: "005cc5", + fontStyle: "bold", + token: "meta.separator" + }, + { + foreground: "005cc5", + token: "meta.output" + }, + { + foreground: "586069", + token: "brackethighlighter.tag" + }, + { + foreground: "586069", + token: "brackethighlighter.curly" + }, + { + foreground: "586069", + token: "brackethighlighter.round" + }, + { + foreground: "586069", + token: "brackethighlighter.square" + }, + { + foreground: "586069", + token: "brackethighlighter.angle" + }, + { + foreground: "586069", + token: "brackethighlighter.quote" + }, + { + foreground: "b31d28", + token: "brackethighlighter.unmatched" + }, + { + foreground: "b31d28", + token: "sublimelinter.mark.error" + }, + { + foreground: "e36209", + token: "sublimelinter.mark.warning" + }, + { + foreground: "959da5", + token: "sublimelinter.gutter-mark" + }, + { + foreground: "032f62", + fontStyle: "underline", + token: "constant.other.reference.link" + }, + { + foreground: "032f62", + fontStyle: "underline", + token: "string.other.link" + } + ] +}, Se = { + ref: "editorContainer", + id: "editor-container" +}, Pe = /* @__PURE__ */ _({ + __name: "ACodeEditor", + props: { + options: {} + }, + setup(e) { + const n = e, r = C(null), t = { + ...n.options, + automaticLayout: !0, + colorDecorators: !0, + lineHeight: 24, + scrollBeyondLastLine: !1 + }; + return $(async () => { + const i = (await we.init()).editor; + i.defineTheme("agritheory", je), i.setTheme("agritheory"), i.create(r.value, t); + }), (o, i) => (x(), q("div", Se, [ + D("div", { + ref_key: "aCodeEditor", + ref: r, + id: "editor-area" + }, null, 512) + ], 512)); + } +}); +const Ie = (e, n) => { + const r = e.__vccOpts || e; + for (const [t, o] of n) + r[t] = o; + return r; +}, Ee = /* @__PURE__ */ Ie(Pe, [["__scopeId", "data-v-28cc715a"]]); +function Te(e) { + e.component("ACodeEditor", Ee); +} +export { + Ee as ACodeEditor, + Te as install +}; +//# sourceMappingURL=code-editor.js.map diff --git a/code_editor/dist/code-editor.js.map b/code_editor/dist/code-editor.js.map new file mode 100644 index 00000000..c28618e4 --- /dev/null +++ b/code_editor/dist/code-editor.js.map @@ -0,0 +1 @@ +{"version":3,"file":"code-editor.js","sources":["../../common/temp/node_modules/.pnpm/@monaco-editor+loader@1.3.3_monaco-editor@0.34.1/node_modules/@monaco-editor/loader/lib/es/_virtual/_rollupPluginBabelHelpers.js","../../common/temp/node_modules/.pnpm/state-local@1.0.7/node_modules/state-local/lib/es/state-local.js","../../common/temp/node_modules/.pnpm/@monaco-editor+loader@1.3.3_monaco-editor@0.34.1/node_modules/@monaco-editor/loader/lib/es/config/index.js","../../common/temp/node_modules/.pnpm/@monaco-editor+loader@1.3.3_monaco-editor@0.34.1/node_modules/@monaco-editor/loader/lib/es/utils/curry.js","../../common/temp/node_modules/.pnpm/@monaco-editor+loader@1.3.3_monaco-editor@0.34.1/node_modules/@monaco-editor/loader/lib/es/utils/isObject.js","../../common/temp/node_modules/.pnpm/@monaco-editor+loader@1.3.3_monaco-editor@0.34.1/node_modules/@monaco-editor/loader/lib/es/validators/index.js","../../common/temp/node_modules/.pnpm/@monaco-editor+loader@1.3.3_monaco-editor@0.34.1/node_modules/@monaco-editor/loader/lib/es/utils/compose.js","../../common/temp/node_modules/.pnpm/@monaco-editor+loader@1.3.3_monaco-editor@0.34.1/node_modules/@monaco-editor/loader/lib/es/utils/deepMerge.js","../../common/temp/node_modules/.pnpm/@monaco-editor+loader@1.3.3_monaco-editor@0.34.1/node_modules/@monaco-editor/loader/lib/es/utils/makeCancelable.js","../../common/temp/node_modules/.pnpm/@monaco-editor+loader@1.3.3_monaco-editor@0.34.1/node_modules/@monaco-editor/loader/lib/es/loader/index.js","../src/theme/code_editor/agritheory.ts","../src/components/ACodeEditor.vue","../src/index.ts"],"sourcesContent":["function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n\n var target = _objectWithoutPropertiesLoose(source, excluded);\n\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\nfunction _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n}\n\nfunction _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nfunction _iterableToArrayLimit(arr, i) {\n if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n\n return arr2;\n}\n\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nexport { _arrayLikeToArray as arrayLikeToArray, _arrayWithHoles as arrayWithHoles, _defineProperty as defineProperty, _iterableToArrayLimit as iterableToArrayLimit, _nonIterableRest as nonIterableRest, _objectSpread2 as objectSpread2, _objectWithoutProperties as objectWithoutProperties, _objectWithoutPropertiesLoose as objectWithoutPropertiesLoose, _slicedToArray as slicedToArray, _unsupportedIterableToArray as unsupportedIterableToArray };\n","function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction compose() {\n for (var _len = arguments.length, fns = new Array(_len), _key = 0; _key < _len; _key++) {\n fns[_key] = arguments[_key];\n }\n\n return function (x) {\n return fns.reduceRight(function (y, f) {\n return f(y);\n }, x);\n };\n}\n\nfunction curry(fn) {\n return function curried() {\n var _this = this;\n\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return args.length >= fn.length ? fn.apply(this, args) : function () {\n for (var _len3 = arguments.length, nextArgs = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n nextArgs[_key3] = arguments[_key3];\n }\n\n return curried.apply(_this, [].concat(args, nextArgs));\n };\n };\n}\n\nfunction isObject(value) {\n return {}.toString.call(value).includes('Object');\n}\n\nfunction isEmpty(obj) {\n return !Object.keys(obj).length;\n}\n\nfunction isFunction(value) {\n return typeof value === 'function';\n}\n\nfunction hasOwnProperty(object, property) {\n return Object.prototype.hasOwnProperty.call(object, property);\n}\n\nfunction validateChanges(initial, changes) {\n if (!isObject(changes)) errorHandler('changeType');\n if (Object.keys(changes).some(function (field) {\n return !hasOwnProperty(initial, field);\n })) errorHandler('changeField');\n return changes;\n}\n\nfunction validateSelector(selector) {\n if (!isFunction(selector)) errorHandler('selectorType');\n}\n\nfunction validateHandler(handler) {\n if (!(isFunction(handler) || isObject(handler))) errorHandler('handlerType');\n if (isObject(handler) && Object.values(handler).some(function (_handler) {\n return !isFunction(_handler);\n })) errorHandler('handlersType');\n}\n\nfunction validateInitial(initial) {\n if (!initial) errorHandler('initialIsRequired');\n if (!isObject(initial)) errorHandler('initialType');\n if (isEmpty(initial)) errorHandler('initialContent');\n}\n\nfunction throwError(errorMessages, type) {\n throw new Error(errorMessages[type] || errorMessages[\"default\"]);\n}\n\nvar errorMessages = {\n initialIsRequired: 'initial state is required',\n initialType: 'initial state should be an object',\n initialContent: 'initial state shouldn\\'t be an empty object',\n handlerType: 'handler should be an object or a function',\n handlersType: 'all handlers should be a functions',\n selectorType: 'selector should be a function',\n changeType: 'provided value of changes should be an object',\n changeField: 'it seams you want to change a field in the state which is not specified in the \"initial\" state',\n \"default\": 'an unknown error accured in `state-local` package'\n};\nvar errorHandler = curry(throwError)(errorMessages);\nvar validators = {\n changes: validateChanges,\n selector: validateSelector,\n handler: validateHandler,\n initial: validateInitial\n};\n\nfunction create(initial) {\n var handler = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n validators.initial(initial);\n validators.handler(handler);\n var state = {\n current: initial\n };\n var didUpdate = curry(didStateUpdate)(state, handler);\n var update = curry(updateState)(state);\n var validate = curry(validators.changes)(initial);\n var getChanges = curry(extractChanges)(state);\n\n function getState() {\n var selector = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : function (state) {\n return state;\n };\n validators.selector(selector);\n return selector(state.current);\n }\n\n function setState(causedChanges) {\n compose(didUpdate, update, validate, getChanges)(causedChanges);\n }\n\n return [getState, setState];\n}\n\nfunction extractChanges(state, causedChanges) {\n return isFunction(causedChanges) ? causedChanges(state.current) : causedChanges;\n}\n\nfunction updateState(state, changes) {\n state.current = _objectSpread2(_objectSpread2({}, state.current), changes);\n return changes;\n}\n\nfunction didStateUpdate(state, handler, changes) {\n isFunction(handler) ? handler(state.current) : Object.keys(changes).forEach(function (field) {\n var _handler$field;\n\n return (_handler$field = handler[field]) === null || _handler$field === void 0 ? void 0 : _handler$field.call(handler, state.current[field]);\n });\n return changes;\n}\n\nvar index = {\n create: create\n};\n\nexport default index;\n","var config = {\n paths: {\n vs: 'https://cdn.jsdelivr.net/npm/monaco-editor@0.36.1/min/vs'\n }\n};\n\nexport default config;\n","function curry(fn) {\n return function curried() {\n var _this = this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return args.length >= fn.length ? fn.apply(this, args) : function () {\n for (var _len2 = arguments.length, nextArgs = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n nextArgs[_key2] = arguments[_key2];\n }\n\n return curried.apply(_this, [].concat(args, nextArgs));\n };\n };\n}\n\nexport default curry;\n","function isObject(value) {\n return {}.toString.call(value).includes('Object');\n}\n\nexport default isObject;\n","import curry from '../utils/curry.js';\nimport isObject from '../utils/isObject.js';\n\n/**\n * validates the configuration object and informs about deprecation\n * @param {Object} config - the configuration object \n * @return {Object} config - the validated configuration object\n */\n\nfunction validateConfig(config) {\n if (!config) errorHandler('configIsRequired');\n if (!isObject(config)) errorHandler('configType');\n\n if (config.urls) {\n informAboutDeprecation();\n return {\n paths: {\n vs: config.urls.monacoBase\n }\n };\n }\n\n return config;\n}\n/**\n * logs deprecation message\n */\n\n\nfunction informAboutDeprecation() {\n console.warn(errorMessages.deprecation);\n}\n\nfunction throwError(errorMessages, type) {\n throw new Error(errorMessages[type] || errorMessages[\"default\"]);\n}\n\nvar errorMessages = {\n configIsRequired: 'the configuration object is required',\n configType: 'the configuration object should be an object',\n \"default\": 'an unknown error accured in `@monaco-editor/loader` package',\n deprecation: \"Deprecation warning!\\n You are using deprecated way of configuration.\\n\\n Instead of using\\n monaco.config({ urls: { monacoBase: '...' } })\\n use\\n monaco.config({ paths: { vs: '...' } })\\n\\n For more please check the link https://github.com/suren-atoyan/monaco-loader#config\\n \"\n};\nvar errorHandler = curry(throwError)(errorMessages);\nvar validators = {\n config: validateConfig\n};\n\nexport default validators;\nexport { errorHandler, errorMessages };\n","var compose = function compose() {\n for (var _len = arguments.length, fns = new Array(_len), _key = 0; _key < _len; _key++) {\n fns[_key] = arguments[_key];\n }\n\n return function (x) {\n return fns.reduceRight(function (y, f) {\n return f(y);\n }, x);\n };\n};\n\nexport default compose;\n","import { objectSpread2 as _objectSpread2 } from '../_virtual/_rollupPluginBabelHelpers.js';\n\nfunction merge(target, source) {\n Object.keys(source).forEach(function (key) {\n if (source[key] instanceof Object) {\n if (target[key]) {\n Object.assign(source[key], merge(target[key], source[key]));\n }\n }\n });\n return _objectSpread2(_objectSpread2({}, target), source);\n}\n\nexport default merge;\n","// The source (has been changed) is https://github.com/facebook/react/issues/5465#issuecomment-157888325\nvar CANCELATION_MESSAGE = {\n type: 'cancelation',\n msg: 'operation is manually canceled'\n};\n\nfunction makeCancelable(promise) {\n var hasCanceled_ = false;\n var wrappedPromise = new Promise(function (resolve, reject) {\n promise.then(function (val) {\n return hasCanceled_ ? reject(CANCELATION_MESSAGE) : resolve(val);\n });\n promise[\"catch\"](reject);\n });\n return wrappedPromise.cancel = function () {\n return hasCanceled_ = true;\n }, wrappedPromise;\n}\n\nexport default makeCancelable;\nexport { CANCELATION_MESSAGE };\n","import { slicedToArray as _slicedToArray, objectWithoutProperties as _objectWithoutProperties } from '../_virtual/_rollupPluginBabelHelpers.js';\nimport state from 'state-local';\nimport config$1 from '../config/index.js';\nimport validators from '../validators/index.js';\nimport compose from '../utils/compose.js';\nimport merge from '../utils/deepMerge.js';\nimport makeCancelable from '../utils/makeCancelable.js';\n\n/** the local state of the module */\n\nvar _state$create = state.create({\n config: config$1,\n isInitialized: false,\n resolve: null,\n reject: null,\n monaco: null\n}),\n _state$create2 = _slicedToArray(_state$create, 2),\n getState = _state$create2[0],\n setState = _state$create2[1];\n/**\n * set the loader configuration\n * @param {Object} config - the configuration object\n */\n\n\nfunction config(globalConfig) {\n var _validators$config = validators.config(globalConfig),\n monaco = _validators$config.monaco,\n config = _objectWithoutProperties(_validators$config, [\"monaco\"]);\n\n setState(function (state) {\n return {\n config: merge(state.config, config),\n monaco: monaco\n };\n });\n}\n/**\n * handles the initialization of the monaco-editor\n * @return {Promise} - returns an instance of monaco (with a cancelable promise)\n */\n\n\nfunction init() {\n var state = getState(function (_ref) {\n var monaco = _ref.monaco,\n isInitialized = _ref.isInitialized,\n resolve = _ref.resolve;\n return {\n monaco: monaco,\n isInitialized: isInitialized,\n resolve: resolve\n };\n });\n\n if (!state.isInitialized) {\n setState({\n isInitialized: true\n });\n\n if (state.monaco) {\n state.resolve(state.monaco);\n return makeCancelable(wrapperPromise);\n }\n\n if (window.monaco && window.monaco.editor) {\n storeMonacoInstance(window.monaco);\n state.resolve(window.monaco);\n return makeCancelable(wrapperPromise);\n }\n\n compose(injectScripts, getMonacoLoaderScript)(configureLoader);\n }\n\n return makeCancelable(wrapperPromise);\n}\n/**\n * injects provided scripts into the document.body\n * @param {Object} script - an HTML script element\n * @return {Object} - the injected HTML script element\n */\n\n\nfunction injectScripts(script) {\n return document.body.appendChild(script);\n}\n/**\n * creates an HTML script element with/without provided src\n * @param {string} [src] - the source path of the script\n * @return {Object} - the created HTML script element\n */\n\n\nfunction createScript(src) {\n var script = document.createElement('script');\n return src && (script.src = src), script;\n}\n/**\n * creates an HTML script element with the monaco loader src\n * @return {Object} - the created HTML script element\n */\n\n\nfunction getMonacoLoaderScript(configureLoader) {\n var state = getState(function (_ref2) {\n var config = _ref2.config,\n reject = _ref2.reject;\n return {\n config: config,\n reject: reject\n };\n });\n var loaderScript = createScript(\"\".concat(state.config.paths.vs, \"/loader.js\"));\n\n loaderScript.onload = function () {\n return configureLoader();\n };\n\n loaderScript.onerror = state.reject;\n return loaderScript;\n}\n/**\n * configures the monaco loader\n */\n\n\nfunction configureLoader() {\n var state = getState(function (_ref3) {\n var config = _ref3.config,\n resolve = _ref3.resolve,\n reject = _ref3.reject;\n return {\n config: config,\n resolve: resolve,\n reject: reject\n };\n });\n var require = window.require;\n\n require.config(state.config);\n\n require(['vs/editor/editor.main'], function (monaco) {\n storeMonacoInstance(monaco);\n state.resolve(monaco);\n }, function (error) {\n state.reject(error);\n });\n}\n/**\n * store monaco instance in local state\n */\n\n\nfunction storeMonacoInstance(monaco) {\n if (!getState().monaco) {\n setState({\n monaco: monaco\n });\n }\n}\n/**\n * internal helper function\n * extracts stored monaco instance\n * @return {Object|null} - the monaco instance\n */\n\n\nfunction __getMonacoInstance() {\n return getState(function (_ref4) {\n var monaco = _ref4.monaco;\n return monaco;\n });\n}\n\nvar wrapperPromise = new Promise(function (resolve, reject) {\n return setState({\n resolve: resolve,\n reject: reject\n });\n});\nvar loader = {\n config: config,\n init: init,\n __getMonacoInstance: __getMonacoInstance\n};\n\nexport default loader;\n","import { editor } from 'monaco-editor'\n\n// picked from https://bitwiser.in/monaco-themes/\n// currently set to: Github Light\nexport const theme: editor.IStandaloneThemeData = {\n\tbase: 'vs',\n\tinherit: true,\n\tcolors: {\n\t\t'editor.foreground': '#24292e',\n\t\t'editor.background': '#ffffff',\n\t\t'editor.selectionBackground': '#c8c8fa',\n\t\t'editor.inactiveSelectionBackground': '#fafbfc',\n\t\t'editor.lineHighlightBackground': '#fafbfc',\n\t\t'editorCursor.foreground': '#24292e',\n\t\t'editorWhitespace.foreground': '#959da5',\n\t\t'editorIndentGuide.background': '#959da5',\n\t\t'editorIndentGuide.activeBackground': '#24292e',\n\t\t'editor.selectionHighlightBorder': '#fafbfc',\n\t},\n\trules: [\n\t\t{\n\t\t\tbackground: 'ffffff',\n\t\t\ttoken: '',\n\t\t},\n\t\t{\n\t\t\tforeground: '6a737d',\n\t\t\ttoken: 'comment',\n\t\t},\n\t\t{\n\t\t\tforeground: '6a737d',\n\t\t\ttoken: 'punctuation.definition.comment',\n\t\t},\n\t\t{\n\t\t\tforeground: '6a737d',\n\t\t\ttoken: 'string.comment',\n\t\t},\n\t\t{\n\t\t\tforeground: '005cc5',\n\t\t\ttoken: 'constant',\n\t\t},\n\t\t{\n\t\t\tforeground: '005cc5',\n\t\t\ttoken: 'entity.name.constant',\n\t\t},\n\t\t{\n\t\t\tforeground: '005cc5',\n\t\t\ttoken: 'variable.other.constant',\n\t\t},\n\t\t{\n\t\t\tforeground: '005cc5',\n\t\t\ttoken: 'variable.language',\n\t\t},\n\t\t{\n\t\t\tforeground: '6f42c1',\n\t\t\ttoken: 'entity',\n\t\t},\n\t\t{\n\t\t\tforeground: '6f42c1',\n\t\t\ttoken: 'entity.name',\n\t\t},\n\t\t{\n\t\t\tforeground: '24292e',\n\t\t\ttoken: 'variable.parameter.function',\n\t\t},\n\t\t{\n\t\t\tforeground: '22863a',\n\t\t\ttoken: 'entity.name.tag',\n\t\t},\n\t\t{\n\t\t\tforeground: 'd73a49',\n\t\t\ttoken: 'keyword',\n\t\t},\n\t\t{\n\t\t\tforeground: 'd73a49',\n\t\t\ttoken: 'storage',\n\t\t},\n\t\t{\n\t\t\tforeground: 'd73a49',\n\t\t\ttoken: 'storage.type',\n\t\t},\n\t\t{\n\t\t\tforeground: '24292e',\n\t\t\ttoken: 'storage.modifier.package',\n\t\t},\n\t\t{\n\t\t\tforeground: '24292e',\n\t\t\ttoken: 'storage.modifier.import',\n\t\t},\n\t\t{\n\t\t\tforeground: '24292e',\n\t\t\ttoken: 'storage.type.java',\n\t\t},\n\t\t{\n\t\t\tforeground: '032f62',\n\t\t\ttoken: 'string',\n\t\t},\n\t\t{\n\t\t\tforeground: '032f62',\n\t\t\ttoken: 'punctuation.definition.string',\n\t\t},\n\t\t{\n\t\t\tforeground: '032f62',\n\t\t\ttoken: 'string punctuation.section.embedded source',\n\t\t},\n\t\t{\n\t\t\tforeground: '005cc5',\n\t\t\ttoken: 'support',\n\t\t},\n\t\t{\n\t\t\tforeground: '005cc5',\n\t\t\ttoken: 'meta.property-name',\n\t\t},\n\t\t{\n\t\t\tforeground: 'e36209',\n\t\t\ttoken: 'variable',\n\t\t},\n\t\t{\n\t\t\tforeground: '24292e',\n\t\t\ttoken: 'variable.other',\n\t\t},\n\t\t{\n\t\t\tforeground: 'b31d28',\n\t\t\tfontStyle: 'bold italic underline',\n\t\t\ttoken: 'invalid.broken',\n\t\t},\n\t\t{\n\t\t\tforeground: 'b31d28',\n\t\t\tfontStyle: 'bold italic underline',\n\t\t\ttoken: 'invalid.deprecated',\n\t\t},\n\t\t{\n\t\t\tforeground: 'fafbfc',\n\t\t\tbackground: 'b31d28',\n\t\t\tfontStyle: 'italic underline',\n\t\t\ttoken: 'invalid.illegal',\n\t\t},\n\t\t{\n\t\t\tforeground: 'fafbfc',\n\t\t\tbackground: 'd73a49',\n\t\t\tfontStyle: 'italic underline',\n\t\t\ttoken: 'carriage-return',\n\t\t},\n\t\t{\n\t\t\tforeground: 'b31d28',\n\t\t\tfontStyle: 'bold italic underline',\n\t\t\ttoken: 'invalid.unimplemented',\n\t\t},\n\t\t{\n\t\t\tforeground: 'b31d28',\n\t\t\ttoken: 'message.error',\n\t\t},\n\t\t{\n\t\t\tforeground: '24292e',\n\t\t\ttoken: 'string source',\n\t\t},\n\t\t{\n\t\t\tforeground: '005cc5',\n\t\t\ttoken: 'string variable',\n\t\t},\n\t\t{\n\t\t\tforeground: '032f62',\n\t\t\ttoken: 'source.regexp',\n\t\t},\n\t\t{\n\t\t\tforeground: '032f62',\n\t\t\ttoken: 'string.regexp',\n\t\t},\n\t\t{\n\t\t\tforeground: '032f62',\n\t\t\ttoken: 'string.regexp.character-class',\n\t\t},\n\t\t{\n\t\t\tforeground: '032f62',\n\t\t\ttoken: 'string.regexp constant.character.escape',\n\t\t},\n\t\t{\n\t\t\tforeground: '032f62',\n\t\t\ttoken: 'string.regexp source.ruby.embedded',\n\t\t},\n\t\t{\n\t\t\tforeground: '032f62',\n\t\t\ttoken: 'string.regexp string.regexp.arbitrary-repitition',\n\t\t},\n\t\t{\n\t\t\tforeground: '22863a',\n\t\t\tfontStyle: 'bold',\n\t\t\ttoken: 'string.regexp constant.character.escape',\n\t\t},\n\t\t{\n\t\t\tforeground: '005cc5',\n\t\t\ttoken: 'support.constant',\n\t\t},\n\t\t{\n\t\t\tforeground: '005cc5',\n\t\t\ttoken: 'support.variable',\n\t\t},\n\t\t{\n\t\t\tforeground: '005cc5',\n\t\t\ttoken: 'meta.module-reference',\n\t\t},\n\t\t{\n\t\t\tforeground: '735c0f',\n\t\t\ttoken: 'markup.list',\n\t\t},\n\t\t{\n\t\t\tforeground: '005cc5',\n\t\t\tfontStyle: 'bold',\n\t\t\ttoken: 'markup.heading',\n\t\t},\n\t\t{\n\t\t\tforeground: '005cc5',\n\t\t\tfontStyle: 'bold',\n\t\t\ttoken: 'markup.heading entity.name',\n\t\t},\n\t\t{\n\t\t\tforeground: '22863a',\n\t\t\ttoken: 'markup.quote',\n\t\t},\n\t\t{\n\t\t\tforeground: '24292e',\n\t\t\tfontStyle: 'italic',\n\t\t\ttoken: 'markup.italic',\n\t\t},\n\t\t{\n\t\t\tforeground: '24292e',\n\t\t\tfontStyle: 'bold',\n\t\t\ttoken: 'markup.bold',\n\t\t},\n\t\t{\n\t\t\tforeground: '005cc5',\n\t\t\ttoken: 'markup.raw',\n\t\t},\n\t\t{\n\t\t\tforeground: 'b31d28',\n\t\t\tbackground: 'ffeef0',\n\t\t\ttoken: 'markup.deleted',\n\t\t},\n\t\t{\n\t\t\tforeground: 'b31d28',\n\t\t\tbackground: 'ffeef0',\n\t\t\ttoken: 'meta.diff.header.from-file',\n\t\t},\n\t\t{\n\t\t\tforeground: 'b31d28',\n\t\t\tbackground: 'ffeef0',\n\t\t\ttoken: 'punctuation.definition.deleted',\n\t\t},\n\t\t{\n\t\t\tforeground: '22863a',\n\t\t\tbackground: 'f0fff4',\n\t\t\ttoken: 'markup.inserted',\n\t\t},\n\t\t{\n\t\t\tforeground: '22863a',\n\t\t\tbackground: 'f0fff4',\n\t\t\ttoken: 'meta.diff.header.to-file',\n\t\t},\n\t\t{\n\t\t\tforeground: '22863a',\n\t\t\tbackground: 'f0fff4',\n\t\t\ttoken: 'punctuation.definition.inserted',\n\t\t},\n\t\t{\n\t\t\tforeground: 'e36209',\n\t\t\tbackground: 'ffebda',\n\t\t\ttoken: 'markup.changed',\n\t\t},\n\t\t{\n\t\t\tforeground: 'e36209',\n\t\t\tbackground: 'ffebda',\n\t\t\ttoken: 'punctuation.definition.changed',\n\t\t},\n\t\t{\n\t\t\tforeground: 'f6f8fa',\n\t\t\tbackground: '005cc5',\n\t\t\ttoken: 'markup.ignored',\n\t\t},\n\t\t{\n\t\t\tforeground: 'f6f8fa',\n\t\t\tbackground: '005cc5',\n\t\t\ttoken: 'markup.untracked',\n\t\t},\n\t\t{\n\t\t\tforeground: '6f42c1',\n\t\t\tfontStyle: 'bold',\n\t\t\ttoken: 'meta.diff.range',\n\t\t},\n\t\t{\n\t\t\tforeground: '005cc5',\n\t\t\ttoken: 'meta.diff.header',\n\t\t},\n\t\t{\n\t\t\tforeground: '005cc5',\n\t\t\tfontStyle: 'bold',\n\t\t\ttoken: 'meta.separator',\n\t\t},\n\t\t{\n\t\t\tforeground: '005cc5',\n\t\t\ttoken: 'meta.output',\n\t\t},\n\t\t{\n\t\t\tforeground: '586069',\n\t\t\ttoken: 'brackethighlighter.tag',\n\t\t},\n\t\t{\n\t\t\tforeground: '586069',\n\t\t\ttoken: 'brackethighlighter.curly',\n\t\t},\n\t\t{\n\t\t\tforeground: '586069',\n\t\t\ttoken: 'brackethighlighter.round',\n\t\t},\n\t\t{\n\t\t\tforeground: '586069',\n\t\t\ttoken: 'brackethighlighter.square',\n\t\t},\n\t\t{\n\t\t\tforeground: '586069',\n\t\t\ttoken: 'brackethighlighter.angle',\n\t\t},\n\t\t{\n\t\t\tforeground: '586069',\n\t\t\ttoken: 'brackethighlighter.quote',\n\t\t},\n\t\t{\n\t\t\tforeground: 'b31d28',\n\t\t\ttoken: 'brackethighlighter.unmatched',\n\t\t},\n\t\t{\n\t\t\tforeground: 'b31d28',\n\t\t\ttoken: 'sublimelinter.mark.error',\n\t\t},\n\t\t{\n\t\t\tforeground: 'e36209',\n\t\t\ttoken: 'sublimelinter.mark.warning',\n\t\t},\n\t\t{\n\t\t\tforeground: '959da5',\n\t\t\ttoken: 'sublimelinter.gutter-mark',\n\t\t},\n\t\t{\n\t\t\tforeground: '032f62',\n\t\t\tfontStyle: 'underline',\n\t\t\ttoken: 'constant.other.reference.link',\n\t\t},\n\t\t{\n\t\t\tforeground: '032f62',\n\t\t\tfontStyle: 'underline',\n\t\t\ttoken: 'string.other.link',\n\t\t},\n\t],\n}\n","\n\n\n\n\n","import { App } from 'vue'\n\nimport ACodeEditor from '@/components/ACodeEditor.vue'\n\nfunction install(app: App /* options */) {\n\tapp.component('ACodeEditor', ACodeEditor)\n}\n\nexport { install, ACodeEditor }\n"],"names":["_defineProperty","obj","key","value","ownKeys","object","enumerableOnly","keys","symbols","sym","_objectSpread2","target","i","source","_objectWithoutPropertiesLoose","excluded","sourceKeys","_objectWithoutProperties","sourceSymbolKeys","_slicedToArray","arr","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","_arr","_n","_d","_e","_i","_s","err","o","minLen","_arrayLikeToArray","n","len","arr2","compose","_len","fns","_key","x","y","f","curry","fn","curried","_this","_len2","args","_key2","_len3","nextArgs","_key3","isObject","isEmpty","isFunction","hasOwnProperty","property","validateChanges","initial","changes","errorHandler","field","validateSelector","selector","validateHandler","handler","_handler","validateInitial","throwError","errorMessages","type","validators","create","state","didUpdate","didStateUpdate","update","updateState","validate","getChanges","extractChanges","getState","setState","causedChanges","_handler$field","index","config","validateConfig","informAboutDeprecation","merge","CANCELATION_MESSAGE","makeCancelable","promise","hasCanceled_","wrappedPromise","resolve","reject","val","_state$create","config$1","_state$create2","globalConfig","_validators$config","monaco","init","_ref","isInitialized","wrapperPromise","storeMonacoInstance","injectScripts","getMonacoLoaderScript","configureLoader","script","createScript","src","_ref2","loaderScript","_ref3","require","error","__getMonacoInstance","_ref4","loader","theme","props","__props","aCodeEditor","ref","editorOptions","onMounted","editor","install","app","ACodeEditor"],"mappings":"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CR;AAAA,IACA;AAAA,MACC,YAAY;AAAA,MACZ,OAAO;AAAA,IACR;AAAA,IACA;AAAA,MACC,YAAY;AAAA,MACZ,OAAO;AAAA,IACR;AAAA,IACA;AAAA,MACC,YAAY;AAAA,MACZ,OAAO;AAAA,IACR;AAAA,IACA;AAAA,MACC,YAAY;AAAA,MACZ,OAAO;AAAA,IACR;AAAA,IACA;AAAA,MACC,YAAY;AAAA,MACZ,OAAO;AAAA,IACR;AAAA,IACA;AAAA,MACC,YAAY;AAAA,MACZ,OAAO;AAAA,IACR;AAAA,IACA;AAAA,MACC,YAAY;AAAA,MACZ,OAAO;AAAA,IACR;AAAA,IACA;AAAA,MACC,YAAY;AAAA,MACZ,OAAO;AAAA,IACR;AAAA,IACA;AAAA,MACC,YAAY;AAAA,MACZ,OAAO;AAAA,IACR;AAAA,IACA;AAAA,MACC,YAAY;AAAA,MACZ,OAAO;AAAA,IACR;AAAA,IACA;AAAA,MACC,YAAY;AAAA,MACZ,OAAO;AAAA,IACR;AAAA,IACA;AAAA,MACC,YAAY;AAAA,MACZ,OAAO;AAAA,IACR;AAAA,IACA;AAAA,MACC,YAAY;AAAA,MACZ,WAAW;AAAA,MACX,OAAO;AAAA,IACR;AAAA,IACA;AAAA,MACC,YAAY;AAAA,MACZ,WAAW;AAAA,MACX,OAAO;AAAA,IACR;AAAA,IACA;AAAA,MACC,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,WAAW;AAAA,MACX,OAAO;AAAA,IACR;AAAA,IACA;AAAA,MACC,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,WAAW;AAAA,MACX,OAAO;AAAA,IACR;AAAA,IACA;AAAA,MACC,YAAY;AAAA,MACZ,WAAW;AAAA,MACX,OAAO;AAAA,IACR;AAAA,IACA;AAAA,MACC,YAAY;AAAA,MACZ,OAAO;AAAA,IACR;AAAA,IACA;AAAA,MACC,YAAY;AAAA,MACZ,OAAO;AAAA,IACR;AAAA,IACA;AAAA,MACC,YAAY;AAAA,MACZ,OAAO;AAAA,IACR;AAAA,IACA;AAAA,MACC,YAAY;AAAA,MACZ,OAAO;AAAA,IACR;AAAA,IACA;AAAA,MACC,YAAY;AAAA,MACZ,OAAO;AAAA,IACR;AAAA,IACA;AAAA,MACC,YAAY;AAAA,MACZ,OAAO;AAAA,IACR;AAAA,IACA;AAAA,MACC,YAAY;AAAA,MACZ,OAAO;AAAA,IACR;AAAA,IACA;AAAA,MACC,YAAY;AAAA,MACZ,OAAO;AAAA,IACR;AAAA,IACA;AAAA,MACC,YAAY;AAAA,MACZ,OAAO;AAAA,IACR;AAAA,IACA;AAAA,MACC,YAAY;AAAA,MACZ,WAAW;AAAA,MACX,OAAO;AAAA,IACR;AAAA,IACA;AAAA,MACC,YAAY;AAAA,MACZ,OAAO;AAAA,IACR;AAAA,IACA;AAAA,MACC,YAAY;AAAA,MACZ,OAAO;AAAA,IACR;AAAA,IACA;AAAA,MACC,YAAY;AAAA,MACZ,OAAO;AAAA,IACR;AAAA,IACA;AAAA,MACC,YAAY;AAAA,MACZ,OAAO;AAAA,IACR;AAAA,IACA;AAAA,MACC,YAAY;AAAA,MACZ,WAAW;AAAA,MACX,OAAO;AAAA,IACR;AAAA,IACA;AAAA,MACC,YAAY;AAAA,MACZ,WAAW;AAAA,MACX,OAAO;AAAA,IACR;AAAA,IACA;AAAA,MACC,YAAY;AAAA,MACZ,OAAO;AAAA,IACR;AAAA,IACA;AAAA,MACC,YAAY;AAAA,MACZ,WAAW;AAAA,MACX,OAAO;AAAA,IACR;AAAA,IACA;AAAA,MACC,YAAY;AAAA,MACZ,WAAW;AAAA,MACX,OAAO;AAAA,IACR;AAAA,IACA;AAAA,MACC,YAAY;AAAA,MACZ,OAAO;AAAA,IACR;AAAA,IACA;AAAA,MACC,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,OAAO;AAAA,IACR;AAAA,IACA;AAAA,MACC,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,OAAO;AAAA,IACR;AAAA,IACA;AAAA,MACC,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,OAAO;AAAA,IACR;AAAA,IACA;AAAA,MACC,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,OAAO;AAAA,IACR;AAAA,IACA;AAAA,MACC,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,OAAO;AAAA,IACR;AAAA,IACA;AAAA,MACC,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,OAAO;AAAA,IACR;AAAA,IACA;AAAA,MACC,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,OAAO;AAAA,IACR;AAAA,IACA;AAAA,MACC,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,OAAO;AAAA,IACR;AAAA,IACA;AAAA,MACC,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,OAAO;AAAA,IACR;AAAA,IACA;AAAA,MACC,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,OAAO;AAAA,IACR;AAAA,IACA;AAAA,MACC,YAAY;AAAA,MACZ,WAAW;AAAA,MACX,OAAO;AAAA,IACR;AAAA,IACA;AAAA,MACC,YAAY;AAAA,MACZ,OAAO;AAAA,IACR;AAAA,IACA;AAAA,MACC,YAAY;AAAA,MACZ,WAAW;AAAA,MACX,OAAO;AAAA,IACR;AAAA,IACA;AAAA,MACC,YAAY;AAAA,MACZ,OAAO;AAAA,IACR;AAAA,IACA;AAAA,MACC,YAAY;AAAA,MACZ,OAAO;AAAA,IACR;AAAA,IACA;AAAA,MACC,YAAY;AAAA,MACZ,OAAO;AAAA,IACR;AAAA,IACA;AAAA,MACC,YAAY;AAAA,MACZ,OAAO;AAAA,IACR;AAAA,IACA;AAAA,MACC,YAAY;AAAA,MACZ,OAAO;AAAA,IACR;AAAA,IACA;AAAA,MACC,YAAY;AAAA,MACZ,OAAO;AAAA,IACR;AAAA,IACA;AAAA,MACC,YAAY;AAAA,MACZ,OAAO;AAAA,IACR;AAAA,IACA;AAAA,MACC,YAAY;AAAA,MACZ,OAAO;AAAA,IACR;AAAA,IACA;AAAA,MACC,YAAY;AAAA,MACZ,OAAO;AAAA,IACR;AAAA,IACA;AAAA,MACC,YAAY;AAAA,MACZ,OAAO;AAAA,IACR;AAAA,IACA;AAAA,MACC,YAAY;AAAA,MACZ,OAAO;AAAA,IACR;AAAA,IACA;AAAA,MACC,YAAY;AAAA,MACZ,WAAW;AAAA,MACX,OAAO;AAAA,IACR;AAAA,IACA;AAAA,MACC,YAAY;AAAA,MACZ,WAAW;AAAA,MACX,OAAO;AAAA,IACR;AAAA,EACD;AACD;;;;;;;;;AClVA,UAAMC,IAAQC,GAIRC,IAAcC,EAAI,IAAI,GACtBC,IAAyC;AAAA,MAC9C,GAAGJ,EAAM;AAAA,MACT,iBAAiB;AAAA,MACjB,iBAAiB;AAAA,MACjB,YAAY;AAAA,MACZ,sBAAsB;AAAA,IAAA;AAGvB,WAAAK,EAAU,YAAY;AAErB,YAAMC,KADiB,MAAMR,GAAO,QACN;AAE9BQ,MAAAA,EAAO,YAAY,cAAcP,EAAK,GACtCO,EAAO,SAAS,YAAY,GAG5BA,EAAO,OAAOJ,EAAY,OAAsBE,CAAa;AAAA,IAAA,CAC7D;;;;;;;;;;;;;;;AC/BD,SAASG,GAAQC,GAAwB;AACpC,EAAAA,EAAA,UAAU,eAAeC,EAAW;AACzC;","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9]} \ No newline at end of file diff --git a/code_editor/dist/code-editor.umd.cjs b/code_editor/dist/code-editor.umd.cjs new file mode 100644 index 00000000..06ec5ae3 --- /dev/null +++ b/code_editor/dist/code-editor.umd.cjs @@ -0,0 +1,12 @@ +(function(d,u){typeof exports=="object"&&typeof module<"u"?u(exports,require("vue")):typeof define=="function"&&define.amd?define(["exports","vue"],u):(d=typeof globalThis<"u"?globalThis:d||self,u(d["@stonecrop/code-editor"]={},d.Vue))})(this,function(d,u){"use strict";function $(e,n,r){return n in e?Object.defineProperty(e,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[n]=r,e}function O(e,n){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(e);n&&(t=t.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),r.push.apply(r,t)}return r}function w(e){for(var n=1;n=0)&&(r[o]=e[o]);return r}function q(e,n){if(e==null)return{};var r=x(e,n),t,o;if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(o=0;o=0)&&Object.prototype.propertyIsEnumerable.call(e,t)&&(r[t]=e[t])}return r}function D(e,n){return B(e)||L(e,n)||M(e,n)||H()}function B(e){if(Array.isArray(e))return e}function L(e,n){if(!(typeof Symbol>"u"||!(Symbol.iterator in Object(e)))){var r=[],t=!0,o=!1,i=void 0;try{for(var a=e[Symbol.iterator](),f;!(t=(f=a.next()).done)&&(r.push(f.value),!(n&&r.length===n));t=!0);}catch(c){o=!0,i=c}finally{try{!t&&a.return!=null&&a.return()}finally{if(o)throw i}}return r}}function M(e,n){if(e){if(typeof e=="string")return j(e,n);var r=Object.prototype.toString.call(e).slice(8,-1);if(r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set")return Array.from(e);if(r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return j(e,n)}}function j(e,n){(n==null||n>e.length)&&(n=e.length);for(var r=0,t=new Array(n);r=e.length?e.apply(this,o):function(){for(var a=arguments.length,f=new Array(a),c=0;c1&&arguments[1]!==void 0?arguments[1]:{};b.initial(e),b.handler(n);var r={current:e},t=s(Z)(r,n),o=s(X)(r),i=s(b.changes)(e),a=s(Q)(r);function f(){var v=arguments.length>0&&arguments[0]!==void 0?arguments[0]:function(je){return je};return b.selector(v),v(r.current)}function c(v){z(t,o,i,a)(v)}return[f,c]}function Q(e,n){return g(n)?n(e.current):n}function X(e,n){return e.current=P(P({},e.current),n),n}function Z(e,n,r){return g(n)?n(e.current):Object.keys(r).forEach(function(t){var o;return(o=n[t])===null||o===void 0?void 0:o.call(n,e.current[t])}),r}var ee={create:J},ne={paths:{vs:"https://cdn.jsdelivr.net/npm/monaco-editor@0.36.1/min/vs"}};function re(e){return function n(){for(var r=this,t=arguments.length,o=new Array(t),i=0;i=e.length?e.apply(this,o):function(){for(var a=arguments.length,f=new Array(a),c=0;c{const i=(await ve.init()).editor;i.defineTheme("agritheory",ke),i.setTheme("agritheory"),i.create(r.value,t)}),(o,i)=>(u.openBlock(),u.createElementBlock("div",ye,[u.createElementVNode("div",{ref_key:"aCodeEditor",ref:r,id:"editor-area"},null,512)],512))}}),Se="",C=((e,n)=>{const r=e.__vccOpts||e;for(const[t,o]of n)r[t]=o;return r})(Oe,[["__scopeId","data-v-28cc715a"]]);function we(e){e.component("ACodeEditor",C)}d.ACodeEditor=C,d.install=we,Object.defineProperty(d,Symbol.toStringTag,{value:"Module"})}); +//# sourceMappingURL=code-editor.umd.cjs.map diff --git a/code_editor/dist/code-editor.umd.cjs.map b/code_editor/dist/code-editor.umd.cjs.map new file mode 100644 index 00000000..bb4efbd3 --- /dev/null +++ b/code_editor/dist/code-editor.umd.cjs.map @@ -0,0 +1 @@ +{"version":3,"file":"code-editor.umd.cjs","sources":["../../common/temp/node_modules/.pnpm/@monaco-editor+loader@1.3.3_monaco-editor@0.34.1/node_modules/@monaco-editor/loader/lib/es/_virtual/_rollupPluginBabelHelpers.js","../../common/temp/node_modules/.pnpm/state-local@1.0.7/node_modules/state-local/lib/es/state-local.js","../../common/temp/node_modules/.pnpm/@monaco-editor+loader@1.3.3_monaco-editor@0.34.1/node_modules/@monaco-editor/loader/lib/es/config/index.js","../../common/temp/node_modules/.pnpm/@monaco-editor+loader@1.3.3_monaco-editor@0.34.1/node_modules/@monaco-editor/loader/lib/es/utils/curry.js","../../common/temp/node_modules/.pnpm/@monaco-editor+loader@1.3.3_monaco-editor@0.34.1/node_modules/@monaco-editor/loader/lib/es/utils/isObject.js","../../common/temp/node_modules/.pnpm/@monaco-editor+loader@1.3.3_monaco-editor@0.34.1/node_modules/@monaco-editor/loader/lib/es/validators/index.js","../../common/temp/node_modules/.pnpm/@monaco-editor+loader@1.3.3_monaco-editor@0.34.1/node_modules/@monaco-editor/loader/lib/es/utils/compose.js","../../common/temp/node_modules/.pnpm/@monaco-editor+loader@1.3.3_monaco-editor@0.34.1/node_modules/@monaco-editor/loader/lib/es/utils/deepMerge.js","../../common/temp/node_modules/.pnpm/@monaco-editor+loader@1.3.3_monaco-editor@0.34.1/node_modules/@monaco-editor/loader/lib/es/utils/makeCancelable.js","../../common/temp/node_modules/.pnpm/@monaco-editor+loader@1.3.3_monaco-editor@0.34.1/node_modules/@monaco-editor/loader/lib/es/loader/index.js","../src/theme/code_editor/agritheory.ts","../src/components/ACodeEditor.vue","../src/index.ts"],"sourcesContent":["function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n\n var target = _objectWithoutPropertiesLoose(source, excluded);\n\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\nfunction _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n}\n\nfunction _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nfunction _iterableToArrayLimit(arr, i) {\n if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n\n return arr2;\n}\n\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nexport { _arrayLikeToArray as arrayLikeToArray, _arrayWithHoles as arrayWithHoles, _defineProperty as defineProperty, _iterableToArrayLimit as iterableToArrayLimit, _nonIterableRest as nonIterableRest, _objectSpread2 as objectSpread2, _objectWithoutProperties as objectWithoutProperties, _objectWithoutPropertiesLoose as objectWithoutPropertiesLoose, _slicedToArray as slicedToArray, _unsupportedIterableToArray as unsupportedIterableToArray };\n","function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction compose() {\n for (var _len = arguments.length, fns = new Array(_len), _key = 0; _key < _len; _key++) {\n fns[_key] = arguments[_key];\n }\n\n return function (x) {\n return fns.reduceRight(function (y, f) {\n return f(y);\n }, x);\n };\n}\n\nfunction curry(fn) {\n return function curried() {\n var _this = this;\n\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return args.length >= fn.length ? fn.apply(this, args) : function () {\n for (var _len3 = arguments.length, nextArgs = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n nextArgs[_key3] = arguments[_key3];\n }\n\n return curried.apply(_this, [].concat(args, nextArgs));\n };\n };\n}\n\nfunction isObject(value) {\n return {}.toString.call(value).includes('Object');\n}\n\nfunction isEmpty(obj) {\n return !Object.keys(obj).length;\n}\n\nfunction isFunction(value) {\n return typeof value === 'function';\n}\n\nfunction hasOwnProperty(object, property) {\n return Object.prototype.hasOwnProperty.call(object, property);\n}\n\nfunction validateChanges(initial, changes) {\n if (!isObject(changes)) errorHandler('changeType');\n if (Object.keys(changes).some(function (field) {\n return !hasOwnProperty(initial, field);\n })) errorHandler('changeField');\n return changes;\n}\n\nfunction validateSelector(selector) {\n if (!isFunction(selector)) errorHandler('selectorType');\n}\n\nfunction validateHandler(handler) {\n if (!(isFunction(handler) || isObject(handler))) errorHandler('handlerType');\n if (isObject(handler) && Object.values(handler).some(function (_handler) {\n return !isFunction(_handler);\n })) errorHandler('handlersType');\n}\n\nfunction validateInitial(initial) {\n if (!initial) errorHandler('initialIsRequired');\n if (!isObject(initial)) errorHandler('initialType');\n if (isEmpty(initial)) errorHandler('initialContent');\n}\n\nfunction throwError(errorMessages, type) {\n throw new Error(errorMessages[type] || errorMessages[\"default\"]);\n}\n\nvar errorMessages = {\n initialIsRequired: 'initial state is required',\n initialType: 'initial state should be an object',\n initialContent: 'initial state shouldn\\'t be an empty object',\n handlerType: 'handler should be an object or a function',\n handlersType: 'all handlers should be a functions',\n selectorType: 'selector should be a function',\n changeType: 'provided value of changes should be an object',\n changeField: 'it seams you want to change a field in the state which is not specified in the \"initial\" state',\n \"default\": 'an unknown error accured in `state-local` package'\n};\nvar errorHandler = curry(throwError)(errorMessages);\nvar validators = {\n changes: validateChanges,\n selector: validateSelector,\n handler: validateHandler,\n initial: validateInitial\n};\n\nfunction create(initial) {\n var handler = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n validators.initial(initial);\n validators.handler(handler);\n var state = {\n current: initial\n };\n var didUpdate = curry(didStateUpdate)(state, handler);\n var update = curry(updateState)(state);\n var validate = curry(validators.changes)(initial);\n var getChanges = curry(extractChanges)(state);\n\n function getState() {\n var selector = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : function (state) {\n return state;\n };\n validators.selector(selector);\n return selector(state.current);\n }\n\n function setState(causedChanges) {\n compose(didUpdate, update, validate, getChanges)(causedChanges);\n }\n\n return [getState, setState];\n}\n\nfunction extractChanges(state, causedChanges) {\n return isFunction(causedChanges) ? causedChanges(state.current) : causedChanges;\n}\n\nfunction updateState(state, changes) {\n state.current = _objectSpread2(_objectSpread2({}, state.current), changes);\n return changes;\n}\n\nfunction didStateUpdate(state, handler, changes) {\n isFunction(handler) ? handler(state.current) : Object.keys(changes).forEach(function (field) {\n var _handler$field;\n\n return (_handler$field = handler[field]) === null || _handler$field === void 0 ? void 0 : _handler$field.call(handler, state.current[field]);\n });\n return changes;\n}\n\nvar index = {\n create: create\n};\n\nexport default index;\n","var config = {\n paths: {\n vs: 'https://cdn.jsdelivr.net/npm/monaco-editor@0.36.1/min/vs'\n }\n};\n\nexport default config;\n","function curry(fn) {\n return function curried() {\n var _this = this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return args.length >= fn.length ? fn.apply(this, args) : function () {\n for (var _len2 = arguments.length, nextArgs = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n nextArgs[_key2] = arguments[_key2];\n }\n\n return curried.apply(_this, [].concat(args, nextArgs));\n };\n };\n}\n\nexport default curry;\n","function isObject(value) {\n return {}.toString.call(value).includes('Object');\n}\n\nexport default isObject;\n","import curry from '../utils/curry.js';\nimport isObject from '../utils/isObject.js';\n\n/**\n * validates the configuration object and informs about deprecation\n * @param {Object} config - the configuration object \n * @return {Object} config - the validated configuration object\n */\n\nfunction validateConfig(config) {\n if (!config) errorHandler('configIsRequired');\n if (!isObject(config)) errorHandler('configType');\n\n if (config.urls) {\n informAboutDeprecation();\n return {\n paths: {\n vs: config.urls.monacoBase\n }\n };\n }\n\n return config;\n}\n/**\n * logs deprecation message\n */\n\n\nfunction informAboutDeprecation() {\n console.warn(errorMessages.deprecation);\n}\n\nfunction throwError(errorMessages, type) {\n throw new Error(errorMessages[type] || errorMessages[\"default\"]);\n}\n\nvar errorMessages = {\n configIsRequired: 'the configuration object is required',\n configType: 'the configuration object should be an object',\n \"default\": 'an unknown error accured in `@monaco-editor/loader` package',\n deprecation: \"Deprecation warning!\\n You are using deprecated way of configuration.\\n\\n Instead of using\\n monaco.config({ urls: { monacoBase: '...' } })\\n use\\n monaco.config({ paths: { vs: '...' } })\\n\\n For more please check the link https://github.com/suren-atoyan/monaco-loader#config\\n \"\n};\nvar errorHandler = curry(throwError)(errorMessages);\nvar validators = {\n config: validateConfig\n};\n\nexport default validators;\nexport { errorHandler, errorMessages };\n","var compose = function compose() {\n for (var _len = arguments.length, fns = new Array(_len), _key = 0; _key < _len; _key++) {\n fns[_key] = arguments[_key];\n }\n\n return function (x) {\n return fns.reduceRight(function (y, f) {\n return f(y);\n }, x);\n };\n};\n\nexport default compose;\n","import { objectSpread2 as _objectSpread2 } from '../_virtual/_rollupPluginBabelHelpers.js';\n\nfunction merge(target, source) {\n Object.keys(source).forEach(function (key) {\n if (source[key] instanceof Object) {\n if (target[key]) {\n Object.assign(source[key], merge(target[key], source[key]));\n }\n }\n });\n return _objectSpread2(_objectSpread2({}, target), source);\n}\n\nexport default merge;\n","// The source (has been changed) is https://github.com/facebook/react/issues/5465#issuecomment-157888325\nvar CANCELATION_MESSAGE = {\n type: 'cancelation',\n msg: 'operation is manually canceled'\n};\n\nfunction makeCancelable(promise) {\n var hasCanceled_ = false;\n var wrappedPromise = new Promise(function (resolve, reject) {\n promise.then(function (val) {\n return hasCanceled_ ? reject(CANCELATION_MESSAGE) : resolve(val);\n });\n promise[\"catch\"](reject);\n });\n return wrappedPromise.cancel = function () {\n return hasCanceled_ = true;\n }, wrappedPromise;\n}\n\nexport default makeCancelable;\nexport { CANCELATION_MESSAGE };\n","import { slicedToArray as _slicedToArray, objectWithoutProperties as _objectWithoutProperties } from '../_virtual/_rollupPluginBabelHelpers.js';\nimport state from 'state-local';\nimport config$1 from '../config/index.js';\nimport validators from '../validators/index.js';\nimport compose from '../utils/compose.js';\nimport merge from '../utils/deepMerge.js';\nimport makeCancelable from '../utils/makeCancelable.js';\n\n/** the local state of the module */\n\nvar _state$create = state.create({\n config: config$1,\n isInitialized: false,\n resolve: null,\n reject: null,\n monaco: null\n}),\n _state$create2 = _slicedToArray(_state$create, 2),\n getState = _state$create2[0],\n setState = _state$create2[1];\n/**\n * set the loader configuration\n * @param {Object} config - the configuration object\n */\n\n\nfunction config(globalConfig) {\n var _validators$config = validators.config(globalConfig),\n monaco = _validators$config.monaco,\n config = _objectWithoutProperties(_validators$config, [\"monaco\"]);\n\n setState(function (state) {\n return {\n config: merge(state.config, config),\n monaco: monaco\n };\n });\n}\n/**\n * handles the initialization of the monaco-editor\n * @return {Promise} - returns an instance of monaco (with a cancelable promise)\n */\n\n\nfunction init() {\n var state = getState(function (_ref) {\n var monaco = _ref.monaco,\n isInitialized = _ref.isInitialized,\n resolve = _ref.resolve;\n return {\n monaco: monaco,\n isInitialized: isInitialized,\n resolve: resolve\n };\n });\n\n if (!state.isInitialized) {\n setState({\n isInitialized: true\n });\n\n if (state.monaco) {\n state.resolve(state.monaco);\n return makeCancelable(wrapperPromise);\n }\n\n if (window.monaco && window.monaco.editor) {\n storeMonacoInstance(window.monaco);\n state.resolve(window.monaco);\n return makeCancelable(wrapperPromise);\n }\n\n compose(injectScripts, getMonacoLoaderScript)(configureLoader);\n }\n\n return makeCancelable(wrapperPromise);\n}\n/**\n * injects provided scripts into the document.body\n * @param {Object} script - an HTML script element\n * @return {Object} - the injected HTML script element\n */\n\n\nfunction injectScripts(script) {\n return document.body.appendChild(script);\n}\n/**\n * creates an HTML script element with/without provided src\n * @param {string} [src] - the source path of the script\n * @return {Object} - the created HTML script element\n */\n\n\nfunction createScript(src) {\n var script = document.createElement('script');\n return src && (script.src = src), script;\n}\n/**\n * creates an HTML script element with the monaco loader src\n * @return {Object} - the created HTML script element\n */\n\n\nfunction getMonacoLoaderScript(configureLoader) {\n var state = getState(function (_ref2) {\n var config = _ref2.config,\n reject = _ref2.reject;\n return {\n config: config,\n reject: reject\n };\n });\n var loaderScript = createScript(\"\".concat(state.config.paths.vs, \"/loader.js\"));\n\n loaderScript.onload = function () {\n return configureLoader();\n };\n\n loaderScript.onerror = state.reject;\n return loaderScript;\n}\n/**\n * configures the monaco loader\n */\n\n\nfunction configureLoader() {\n var state = getState(function (_ref3) {\n var config = _ref3.config,\n resolve = _ref3.resolve,\n reject = _ref3.reject;\n return {\n config: config,\n resolve: resolve,\n reject: reject\n };\n });\n var require = window.require;\n\n require.config(state.config);\n\n require(['vs/editor/editor.main'], function (monaco) {\n storeMonacoInstance(monaco);\n state.resolve(monaco);\n }, function (error) {\n state.reject(error);\n });\n}\n/**\n * store monaco instance in local state\n */\n\n\nfunction storeMonacoInstance(monaco) {\n if (!getState().monaco) {\n setState({\n monaco: monaco\n });\n }\n}\n/**\n * internal helper function\n * extracts stored monaco instance\n * @return {Object|null} - the monaco instance\n */\n\n\nfunction __getMonacoInstance() {\n return getState(function (_ref4) {\n var monaco = _ref4.monaco;\n return monaco;\n });\n}\n\nvar wrapperPromise = new Promise(function (resolve, reject) {\n return setState({\n resolve: resolve,\n reject: reject\n });\n});\nvar loader = {\n config: config,\n init: init,\n __getMonacoInstance: __getMonacoInstance\n};\n\nexport default loader;\n","import { editor } from 'monaco-editor'\n\n// picked from https://bitwiser.in/monaco-themes/\n// currently set to: Github Light\nexport const theme: editor.IStandaloneThemeData = {\n\tbase: 'vs',\n\tinherit: true,\n\tcolors: {\n\t\t'editor.foreground': '#24292e',\n\t\t'editor.background': '#ffffff',\n\t\t'editor.selectionBackground': '#c8c8fa',\n\t\t'editor.inactiveSelectionBackground': '#fafbfc',\n\t\t'editor.lineHighlightBackground': '#fafbfc',\n\t\t'editorCursor.foreground': '#24292e',\n\t\t'editorWhitespace.foreground': '#959da5',\n\t\t'editorIndentGuide.background': '#959da5',\n\t\t'editorIndentGuide.activeBackground': '#24292e',\n\t\t'editor.selectionHighlightBorder': '#fafbfc',\n\t},\n\trules: [\n\t\t{\n\t\t\tbackground: 'ffffff',\n\t\t\ttoken: '',\n\t\t},\n\t\t{\n\t\t\tforeground: '6a737d',\n\t\t\ttoken: 'comment',\n\t\t},\n\t\t{\n\t\t\tforeground: '6a737d',\n\t\t\ttoken: 'punctuation.definition.comment',\n\t\t},\n\t\t{\n\t\t\tforeground: '6a737d',\n\t\t\ttoken: 'string.comment',\n\t\t},\n\t\t{\n\t\t\tforeground: '005cc5',\n\t\t\ttoken: 'constant',\n\t\t},\n\t\t{\n\t\t\tforeground: '005cc5',\n\t\t\ttoken: 'entity.name.constant',\n\t\t},\n\t\t{\n\t\t\tforeground: '005cc5',\n\t\t\ttoken: 'variable.other.constant',\n\t\t},\n\t\t{\n\t\t\tforeground: '005cc5',\n\t\t\ttoken: 'variable.language',\n\t\t},\n\t\t{\n\t\t\tforeground: '6f42c1',\n\t\t\ttoken: 'entity',\n\t\t},\n\t\t{\n\t\t\tforeground: '6f42c1',\n\t\t\ttoken: 'entity.name',\n\t\t},\n\t\t{\n\t\t\tforeground: '24292e',\n\t\t\ttoken: 'variable.parameter.function',\n\t\t},\n\t\t{\n\t\t\tforeground: '22863a',\n\t\t\ttoken: 'entity.name.tag',\n\t\t},\n\t\t{\n\t\t\tforeground: 'd73a49',\n\t\t\ttoken: 'keyword',\n\t\t},\n\t\t{\n\t\t\tforeground: 'd73a49',\n\t\t\ttoken: 'storage',\n\t\t},\n\t\t{\n\t\t\tforeground: 'd73a49',\n\t\t\ttoken: 'storage.type',\n\t\t},\n\t\t{\n\t\t\tforeground: '24292e',\n\t\t\ttoken: 'storage.modifier.package',\n\t\t},\n\t\t{\n\t\t\tforeground: '24292e',\n\t\t\ttoken: 'storage.modifier.import',\n\t\t},\n\t\t{\n\t\t\tforeground: '24292e',\n\t\t\ttoken: 'storage.type.java',\n\t\t},\n\t\t{\n\t\t\tforeground: '032f62',\n\t\t\ttoken: 'string',\n\t\t},\n\t\t{\n\t\t\tforeground: '032f62',\n\t\t\ttoken: 'punctuation.definition.string',\n\t\t},\n\t\t{\n\t\t\tforeground: '032f62',\n\t\t\ttoken: 'string punctuation.section.embedded source',\n\t\t},\n\t\t{\n\t\t\tforeground: '005cc5',\n\t\t\ttoken: 'support',\n\t\t},\n\t\t{\n\t\t\tforeground: '005cc5',\n\t\t\ttoken: 'meta.property-name',\n\t\t},\n\t\t{\n\t\t\tforeground: 'e36209',\n\t\t\ttoken: 'variable',\n\t\t},\n\t\t{\n\t\t\tforeground: '24292e',\n\t\t\ttoken: 'variable.other',\n\t\t},\n\t\t{\n\t\t\tforeground: 'b31d28',\n\t\t\tfontStyle: 'bold italic underline',\n\t\t\ttoken: 'invalid.broken',\n\t\t},\n\t\t{\n\t\t\tforeground: 'b31d28',\n\t\t\tfontStyle: 'bold italic underline',\n\t\t\ttoken: 'invalid.deprecated',\n\t\t},\n\t\t{\n\t\t\tforeground: 'fafbfc',\n\t\t\tbackground: 'b31d28',\n\t\t\tfontStyle: 'italic underline',\n\t\t\ttoken: 'invalid.illegal',\n\t\t},\n\t\t{\n\t\t\tforeground: 'fafbfc',\n\t\t\tbackground: 'd73a49',\n\t\t\tfontStyle: 'italic underline',\n\t\t\ttoken: 'carriage-return',\n\t\t},\n\t\t{\n\t\t\tforeground: 'b31d28',\n\t\t\tfontStyle: 'bold italic underline',\n\t\t\ttoken: 'invalid.unimplemented',\n\t\t},\n\t\t{\n\t\t\tforeground: 'b31d28',\n\t\t\ttoken: 'message.error',\n\t\t},\n\t\t{\n\t\t\tforeground: '24292e',\n\t\t\ttoken: 'string source',\n\t\t},\n\t\t{\n\t\t\tforeground: '005cc5',\n\t\t\ttoken: 'string variable',\n\t\t},\n\t\t{\n\t\t\tforeground: '032f62',\n\t\t\ttoken: 'source.regexp',\n\t\t},\n\t\t{\n\t\t\tforeground: '032f62',\n\t\t\ttoken: 'string.regexp',\n\t\t},\n\t\t{\n\t\t\tforeground: '032f62',\n\t\t\ttoken: 'string.regexp.character-class',\n\t\t},\n\t\t{\n\t\t\tforeground: '032f62',\n\t\t\ttoken: 'string.regexp constant.character.escape',\n\t\t},\n\t\t{\n\t\t\tforeground: '032f62',\n\t\t\ttoken: 'string.regexp source.ruby.embedded',\n\t\t},\n\t\t{\n\t\t\tforeground: '032f62',\n\t\t\ttoken: 'string.regexp string.regexp.arbitrary-repitition',\n\t\t},\n\t\t{\n\t\t\tforeground: '22863a',\n\t\t\tfontStyle: 'bold',\n\t\t\ttoken: 'string.regexp constant.character.escape',\n\t\t},\n\t\t{\n\t\t\tforeground: '005cc5',\n\t\t\ttoken: 'support.constant',\n\t\t},\n\t\t{\n\t\t\tforeground: '005cc5',\n\t\t\ttoken: 'support.variable',\n\t\t},\n\t\t{\n\t\t\tforeground: '005cc5',\n\t\t\ttoken: 'meta.module-reference',\n\t\t},\n\t\t{\n\t\t\tforeground: '735c0f',\n\t\t\ttoken: 'markup.list',\n\t\t},\n\t\t{\n\t\t\tforeground: '005cc5',\n\t\t\tfontStyle: 'bold',\n\t\t\ttoken: 'markup.heading',\n\t\t},\n\t\t{\n\t\t\tforeground: '005cc5',\n\t\t\tfontStyle: 'bold',\n\t\t\ttoken: 'markup.heading entity.name',\n\t\t},\n\t\t{\n\t\t\tforeground: '22863a',\n\t\t\ttoken: 'markup.quote',\n\t\t},\n\t\t{\n\t\t\tforeground: '24292e',\n\t\t\tfontStyle: 'italic',\n\t\t\ttoken: 'markup.italic',\n\t\t},\n\t\t{\n\t\t\tforeground: '24292e',\n\t\t\tfontStyle: 'bold',\n\t\t\ttoken: 'markup.bold',\n\t\t},\n\t\t{\n\t\t\tforeground: '005cc5',\n\t\t\ttoken: 'markup.raw',\n\t\t},\n\t\t{\n\t\t\tforeground: 'b31d28',\n\t\t\tbackground: 'ffeef0',\n\t\t\ttoken: 'markup.deleted',\n\t\t},\n\t\t{\n\t\t\tforeground: 'b31d28',\n\t\t\tbackground: 'ffeef0',\n\t\t\ttoken: 'meta.diff.header.from-file',\n\t\t},\n\t\t{\n\t\t\tforeground: 'b31d28',\n\t\t\tbackground: 'ffeef0',\n\t\t\ttoken: 'punctuation.definition.deleted',\n\t\t},\n\t\t{\n\t\t\tforeground: '22863a',\n\t\t\tbackground: 'f0fff4',\n\t\t\ttoken: 'markup.inserted',\n\t\t},\n\t\t{\n\t\t\tforeground: '22863a',\n\t\t\tbackground: 'f0fff4',\n\t\t\ttoken: 'meta.diff.header.to-file',\n\t\t},\n\t\t{\n\t\t\tforeground: '22863a',\n\t\t\tbackground: 'f0fff4',\n\t\t\ttoken: 'punctuation.definition.inserted',\n\t\t},\n\t\t{\n\t\t\tforeground: 'e36209',\n\t\t\tbackground: 'ffebda',\n\t\t\ttoken: 'markup.changed',\n\t\t},\n\t\t{\n\t\t\tforeground: 'e36209',\n\t\t\tbackground: 'ffebda',\n\t\t\ttoken: 'punctuation.definition.changed',\n\t\t},\n\t\t{\n\t\t\tforeground: 'f6f8fa',\n\t\t\tbackground: '005cc5',\n\t\t\ttoken: 'markup.ignored',\n\t\t},\n\t\t{\n\t\t\tforeground: 'f6f8fa',\n\t\t\tbackground: '005cc5',\n\t\t\ttoken: 'markup.untracked',\n\t\t},\n\t\t{\n\t\t\tforeground: '6f42c1',\n\t\t\tfontStyle: 'bold',\n\t\t\ttoken: 'meta.diff.range',\n\t\t},\n\t\t{\n\t\t\tforeground: '005cc5',\n\t\t\ttoken: 'meta.diff.header',\n\t\t},\n\t\t{\n\t\t\tforeground: '005cc5',\n\t\t\tfontStyle: 'bold',\n\t\t\ttoken: 'meta.separator',\n\t\t},\n\t\t{\n\t\t\tforeground: '005cc5',\n\t\t\ttoken: 'meta.output',\n\t\t},\n\t\t{\n\t\t\tforeground: '586069',\n\t\t\ttoken: 'brackethighlighter.tag',\n\t\t},\n\t\t{\n\t\t\tforeground: '586069',\n\t\t\ttoken: 'brackethighlighter.curly',\n\t\t},\n\t\t{\n\t\t\tforeground: '586069',\n\t\t\ttoken: 'brackethighlighter.round',\n\t\t},\n\t\t{\n\t\t\tforeground: '586069',\n\t\t\ttoken: 'brackethighlighter.square',\n\t\t},\n\t\t{\n\t\t\tforeground: '586069',\n\t\t\ttoken: 'brackethighlighter.angle',\n\t\t},\n\t\t{\n\t\t\tforeground: '586069',\n\t\t\ttoken: 'brackethighlighter.quote',\n\t\t},\n\t\t{\n\t\t\tforeground: 'b31d28',\n\t\t\ttoken: 'brackethighlighter.unmatched',\n\t\t},\n\t\t{\n\t\t\tforeground: 'b31d28',\n\t\t\ttoken: 'sublimelinter.mark.error',\n\t\t},\n\t\t{\n\t\t\tforeground: 'e36209',\n\t\t\ttoken: 'sublimelinter.mark.warning',\n\t\t},\n\t\t{\n\t\t\tforeground: '959da5',\n\t\t\ttoken: 'sublimelinter.gutter-mark',\n\t\t},\n\t\t{\n\t\t\tforeground: '032f62',\n\t\t\tfontStyle: 'underline',\n\t\t\ttoken: 'constant.other.reference.link',\n\t\t},\n\t\t{\n\t\t\tforeground: '032f62',\n\t\t\tfontStyle: 'underline',\n\t\t\ttoken: 'string.other.link',\n\t\t},\n\t],\n}\n","\n\n\n\n\n","import { App } from 'vue'\n\nimport ACodeEditor from '@/components/ACodeEditor.vue'\n\nfunction install(app: App /* options */) {\n\tapp.component('ACodeEditor', ACodeEditor)\n}\n\nexport { install, ACodeEditor }\n"],"names":["_defineProperty","obj","key","value","ownKeys","object","enumerableOnly","keys","symbols","sym","_objectSpread2","target","i","source","_objectWithoutPropertiesLoose","excluded","sourceKeys","_objectWithoutProperties","sourceSymbolKeys","_slicedToArray","arr","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","_arr","_n","_d","_e","_i","_s","err","o","minLen","_arrayLikeToArray","n","len","arr2","compose","_len","fns","_key","x","y","f","curry","fn","curried","_this","_len2","args","_key2","_len3","nextArgs","_key3","isObject","isEmpty","isFunction","hasOwnProperty","property","validateChanges","initial","changes","errorHandler","field","validateSelector","selector","validateHandler","handler","_handler","validateInitial","throwError","errorMessages","type","validators","create","state","didUpdate","didStateUpdate","update","updateState","validate","getChanges","extractChanges","getState","setState","causedChanges","_handler$field","index","config","validateConfig","informAboutDeprecation","merge","CANCELATION_MESSAGE","makeCancelable","promise","hasCanceled_","wrappedPromise","resolve","reject","val","_state$create","config$1","_state$create2","globalConfig","_validators$config","monaco","init","_ref","isInitialized","wrapperPromise","storeMonacoInstance","injectScripts","getMonacoLoaderScript","configureLoader","script","createScript","src","_ref2","loaderScript","_ref3","require","error","__getMonacoInstance","_ref4","loader","theme","props","__props","aCodeEditor","ref","editorOptions","onMounted","editor","install","app","ACodeEditor"],"mappings":"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EACA,CACC,WAAY,SACZ,MAAO,QACR,EACA,CACC,WAAY,SACZ,MAAO,aACR,EACA,CACC,WAAY,SACZ,MAAO,6BACR,EACA,CACC,WAAY,SACZ,MAAO,iBACR,EACA,CACC,WAAY,SACZ,MAAO,SACR,EACA,CACC,WAAY,SACZ,MAAO,SACR,EACA,CACC,WAAY,SACZ,MAAO,cACR,EACA,CACC,WAAY,SACZ,MAAO,0BACR,EACA,CACC,WAAY,SACZ,MAAO,yBACR,EACA,CACC,WAAY,SACZ,MAAO,mBACR,EACA,CACC,WAAY,SACZ,MAAO,QACR,EACA,CACC,WAAY,SACZ,MAAO,+BACR,EACA,CACC,WAAY,SACZ,MAAO,4CACR,EACA,CACC,WAAY,SACZ,MAAO,SACR,EACA,CACC,WAAY,SACZ,MAAO,oBACR,EACA,CACC,WAAY,SACZ,MAAO,UACR,EACA,CACC,WAAY,SACZ,MAAO,gBACR,EACA,CACC,WAAY,SACZ,UAAW,wBACX,MAAO,gBACR,EACA,CACC,WAAY,SACZ,UAAW,wBACX,MAAO,oBACR,EACA,CACC,WAAY,SACZ,WAAY,SACZ,UAAW,mBACX,MAAO,iBACR,EACA,CACC,WAAY,SACZ,WAAY,SACZ,UAAW,mBACX,MAAO,iBACR,EACA,CACC,WAAY,SACZ,UAAW,wBACX,MAAO,uBACR,EACA,CACC,WAAY,SACZ,MAAO,eACR,EACA,CACC,WAAY,SACZ,MAAO,eACR,EACA,CACC,WAAY,SACZ,MAAO,iBACR,EACA,CACC,WAAY,SACZ,MAAO,eACR,EACA,CACC,WAAY,SACZ,MAAO,eACR,EACA,CACC,WAAY,SACZ,MAAO,+BACR,EACA,CACC,WAAY,SACZ,MAAO,yCACR,EACA,CACC,WAAY,SACZ,MAAO,oCACR,EACA,CACC,WAAY,SACZ,MAAO,kDACR,EACA,CACC,WAAY,SACZ,UAAW,OACX,MAAO,yCACR,EACA,CACC,WAAY,SACZ,MAAO,kBACR,EACA,CACC,WAAY,SACZ,MAAO,kBACR,EACA,CACC,WAAY,SACZ,MAAO,uBACR,EACA,CACC,WAAY,SACZ,MAAO,aACR,EACA,CACC,WAAY,SACZ,UAAW,OACX,MAAO,gBACR,EACA,CACC,WAAY,SACZ,UAAW,OACX,MAAO,4BACR,EACA,CACC,WAAY,SACZ,MAAO,cACR,EACA,CACC,WAAY,SACZ,UAAW,SACX,MAAO,eACR,EACA,CACC,WAAY,SACZ,UAAW,OACX,MAAO,aACR,EACA,CACC,WAAY,SACZ,MAAO,YACR,EACA,CACC,WAAY,SACZ,WAAY,SACZ,MAAO,gBACR,EACA,CACC,WAAY,SACZ,WAAY,SACZ,MAAO,4BACR,EACA,CACC,WAAY,SACZ,WAAY,SACZ,MAAO,gCACR,EACA,CACC,WAAY,SACZ,WAAY,SACZ,MAAO,iBACR,EACA,CACC,WAAY,SACZ,WAAY,SACZ,MAAO,0BACR,EACA,CACC,WAAY,SACZ,WAAY,SACZ,MAAO,iCACR,EACA,CACC,WAAY,SACZ,WAAY,SACZ,MAAO,gBACR,EACA,CACC,WAAY,SACZ,WAAY,SACZ,MAAO,gCACR,EACA,CACC,WAAY,SACZ,WAAY,SACZ,MAAO,gBACR,EACA,CACC,WAAY,SACZ,WAAY,SACZ,MAAO,kBACR,EACA,CACC,WAAY,SACZ,UAAW,OACX,MAAO,iBACR,EACA,CACC,WAAY,SACZ,MAAO,kBACR,EACA,CACC,WAAY,SACZ,UAAW,OACX,MAAO,gBACR,EACA,CACC,WAAY,SACZ,MAAO,aACR,EACA,CACC,WAAY,SACZ,MAAO,wBACR,EACA,CACC,WAAY,SACZ,MAAO,0BACR,EACA,CACC,WAAY,SACZ,MAAO,0BACR,EACA,CACC,WAAY,SACZ,MAAO,2BACR,EACA,CACC,WAAY,SACZ,MAAO,0BACR,EACA,CACC,WAAY,SACZ,MAAO,0BACR,EACA,CACC,WAAY,SACZ,MAAO,8BACR,EACA,CACC,WAAY,SACZ,MAAO,0BACR,EACA,CACC,WAAY,SACZ,MAAO,4BACR,EACA,CACC,WAAY,SACZ,MAAO,2BACR,EACA,CACC,WAAY,SACZ,UAAW,YACX,MAAO,+BACR,EACA,CACC,WAAY,SACZ,UAAW,YACX,MAAO,mBACR,CACD,CACD,0HClVA,MAAMC,EAAQC,EAIRC,EAAcC,MAAI,IAAI,EACtBC,EAAyC,CAC9C,GAAGJ,EAAM,QACT,gBAAiB,GACjB,gBAAiB,GACjB,WAAY,GACZ,qBAAsB,EAAA,EAGvBK,OAAAA,EAAAA,UAAU,SAAY,CAErB,MAAMC,GADiB,MAAMR,GAAO,QACN,OAE9BQ,EAAO,YAAY,aAAcP,EAAK,EACtCO,EAAO,SAAS,YAAY,EAG5BA,EAAO,OAAOJ,EAAY,MAAsBE,CAAa,CAAA,CAC7D,wQC/BD,SAASG,GAAQC,EAAwB,CACpCA,EAAA,UAAU,cAAeC,CAAW,CACzC","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9]} \ No newline at end of file diff --git a/code_editor/dist/style.css b/code_editor/dist/style.css new file mode 100644 index 00000000..cd635116 --- /dev/null +++ b/code_editor/dist/style.css @@ -0,0 +1 @@ +#editor-area[data-v-28cc715a]{width:100%;height:100%} diff --git a/code_editor/package.json b/code_editor/package.json index 6d781faf..7995d7ef 100644 --- a/code_editor/package.json +++ b/code_editor/package.json @@ -1,55 +1,55 @@ { - "name": "@agritheory/code-editor", - "version": "0.1.2", + "name": "@stonecrop/code-editor", + "version": "0.2.2", + "license": "MIT", "type": "module", + "exports": { + ".": { + "import": "./dist/code-editor.js", + "require": "./dist/code-editor.umd.cjs" + } + }, "main": "dist/code-editor.js", "module": "dist/code-editor.js", - "umd": "dist/code-editor.umd.cjs", "types": "src/index", "files": [ "dist/*", "src/**/*.vue" ], - "license": "MIT", "scripts": { - "dev": "vite", "build": "tsc -b && vite build", + "dev": "vite", + "lint": "eslint . --ext .ts,.vue", "preview": "vite preview", - "story:dev": "histoire dev", "story:build": "histoire build", - "story:preview": "histoire preview", - "lint": "eslint . --ext .ts,.vue" + "story:dev": "histoire dev", + "story:preview": "histoire preview" }, "dependencies": { - "@agritheory/themes": "workspace:*", - "@agritheory/utilities": "workspace:*", + "@stonecrop/themes": "workspace:*", + "@stonecrop/utilities": "workspace:*", "@monaco-editor/loader": "~1.3.2", "monaco-editor": "~0.34.1", "vue": "^3.2.47" }, "devDependencies": { - "@agritheory/atable": "workspace:^0.2.0", - "@histoire/plugin-vue": "^0.14.2", + "@stonecrop/atable": "workspace:*", + "@histoire/plugin-vue": "^0.16.1", "@types/uuid": "^9.0.0", - "@typescript-eslint/eslint-plugin": "^5.33.0", - "@typescript-eslint/parser": "^5.33.0", - "@vitejs/plugin-vue": "^4.0.0", - "cypress": "^12.2.0", - "eslint-config-prettier": "^8.5.0", - "eslint-plugin-vue": "^9.3.0", - "eslint": "^8.22.0", - "histoire": "^0.14.2", - "typescript": "^4.9.4", - "vite": "^4.1.1", + "@typescript-eslint/eslint-plugin": "^5.59.5", + "@typescript-eslint/parser": "^5.59.5", + "@vitejs/plugin-vue": "^4.2.1", + "cypress": "^12.11.0", + "eslint": "^8.40.0", + "eslint-config-prettier": "^8.8.0", + "eslint-plugin-vue": "^9.11.1", + "histoire": "^0.16.1", + "typescript": "^5.0.4", + "vite": "^4.3.5", "vue-router": "^4" }, "engines": { - "node": ">=16.19.1" + "node": ">=20.11.0" }, - "exports": { - ".": { - "import": "./dist/code-editor.js", - "require": "./dist/code-editor.umd.cjs" - } - } + "umd": "dist/code-editor.umd.cjs" } diff --git a/code_editor/vite.config.ts b/code_editor/vite.config.ts index f214f687..e30e096c 100644 --- a/code_editor/vite.config.ts +++ b/code_editor/vite.config.ts @@ -18,7 +18,7 @@ export default defineConfig({ sourcemap: true, lib: { entry: resolve(projectRootDir, 'src/index.ts'), - name: '@agritheory/code-editor', + name: '@stonecrop/code-editor', }, rollupOptions: { external: ['vue'], diff --git a/common/autoinstallers/rush-plugins/package.json b/common/autoinstallers/rush-plugins/package.json new file mode 100644 index 00000000..d4a5005e --- /dev/null +++ b/common/autoinstallers/rush-plugins/package.json @@ -0,0 +1,8 @@ +{ + "name": "rush-plugins", + "version": "1.0.0", + "private": true, + "dependencies": { + "rush-sort-package-json": "^0.0.4" + } +} diff --git a/common/autoinstallers/rush-plugins/pnpm-lock.yaml b/common/autoinstallers/rush-plugins/pnpm-lock.yaml new file mode 100644 index 00000000..5bf1194f --- /dev/null +++ b/common/autoinstallers/rush-plugins/pnpm-lock.yaml @@ -0,0 +1,471 @@ +lockfileVersion: '6.0' + +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false + +dependencies: + rush-sort-package-json: + specifier: ^0.0.4 + version: 0.0.4 + +packages: + + /@nodelib/fs.scandir@2.1.5: + resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} + engines: {node: '>= 8'} + dependencies: + '@nodelib/fs.stat': 2.0.5 + run-parallel: 1.2.0 + dev: false + + /@nodelib/fs.stat@2.0.5: + resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} + engines: {node: '>= 8'} + dev: false + + /@nodelib/fs.walk@1.2.8: + resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} + engines: {node: '>= 8'} + dependencies: + '@nodelib/fs.scandir': 2.1.5 + fastq: 1.17.1 + dev: false + + /@rushstack/node-core-library@3.44.1: + resolution: {integrity: sha512-qK2BKuRoy6Vh83qjXxilafsUJ1soXzEX0rtkxmAC+GsKOdEVav74Df5859bvY2Ap0JNnYfGfXukX/8o3vqODyw==} + dependencies: + '@types/node': 12.20.24 + colors: 1.2.5 + fs-extra: 7.0.1 + import-lazy: 4.0.0 + jju: 1.4.0 + resolve: 1.17.0 + semver: 7.3.8 + timsort: 0.3.0 + z-schema: 3.18.4 + dev: false + + /@rushstack/node-core-library@3.45.0: + resolution: {integrity: sha512-YMuIJl19vQT1+g/OU9mLY6T5ZBT9uDlmeXExDQACpGuxTJW+LHNbk/lRX+eCApQI2eLBlaL4U68r3kZlqwbdmw==} + dependencies: + '@types/node': 12.20.24 + colors: 1.2.5 + fs-extra: 7.0.1 + import-lazy: 4.0.0 + jju: 1.4.0 + resolve: 1.17.0 + semver: 7.3.8 + timsort: 0.3.0 + z-schema: 5.0.5 + dev: false + + /@rushstack/rush-sdk@5.62.4: + resolution: {integrity: sha512-4dBir//6Vk260DMYNg8g/F8SDa/O5KkoQBGAnz3rleyD8mWt448cRaQvyGSScvXngLkDtsxFMb1bIBpIjOx0Ww==} + dependencies: + '@rushstack/node-core-library': 3.45.0 + '@types/node-fetch': 1.6.9 + tapable: 2.2.1 + dev: false + + /@types/glob@7.2.0: + resolution: {integrity: sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==} + dependencies: + '@types/minimatch': 5.1.2 + '@types/node': 20.11.17 + dev: false + + /@types/minimatch@5.1.2: + resolution: {integrity: sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==} + dev: false + + /@types/node-fetch@1.6.9: + resolution: {integrity: sha512-n2r6WLoY7+uuPT7pnEtKJCmPUGyJ+cbyBR8Avnu4+m1nzz7DwBVuyIvvlBzCZ/nrpC7rIgb3D6pNavL7rFEa9g==} + dependencies: + '@types/node': 20.11.17 + dev: false + + /@types/node@12.20.24: + resolution: {integrity: sha512-yxDeaQIAJlMav7fH5AQqPH1u8YIuhYJXYBzxaQ4PifsU0GDO38MSdmEDeRlIxrKbC6NbEaaEHDanWb+y30U8SQ==} + dev: false + + /@types/node@20.11.17: + resolution: {integrity: sha512-QmgQZGWu1Yw9TDyAP9ZzpFJKynYNeOvwMJmaxABfieQoVoiVOS6MN1WSpqpRcbeA5+RW82kraAVxCCJg+780Qw==} + dependencies: + undici-types: 5.26.5 + dev: false + + /array-union@2.1.0: + resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} + engines: {node: '>=8'} + dev: false + + /balanced-match@1.0.2: + resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + dev: false + + /brace-expansion@1.1.11: + resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} + dependencies: + balanced-match: 1.0.2 + concat-map: 0.0.1 + dev: false + + /braces@3.0.2: + resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} + engines: {node: '>=8'} + dependencies: + fill-range: 7.0.1 + dev: false + + /colors@1.2.5: + resolution: {integrity: sha512-erNRLao/Y3Fv54qUa0LBB+//Uf3YwMUmdJinN20yMXm9zdKKqH9wt7R9IIVZ+K7ShzfpLV/Zg8+VyrBJYB4lpg==} + engines: {node: '>=0.1.90'} + dev: false + + /commander@2.20.3: + resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} + requiresBuild: true + dev: false + optional: true + + /commander@9.5.0: + resolution: {integrity: sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==} + engines: {node: ^12.20.0 || >=14} + requiresBuild: true + dev: false + optional: true + + /concat-map@0.0.1: + resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} + dev: false + + /detect-indent@6.1.0: + resolution: {integrity: sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==} + engines: {node: '>=8'} + dev: false + + /detect-newline@3.1.0: + resolution: {integrity: sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==} + engines: {node: '>=8'} + dev: false + + /dir-glob@3.0.1: + resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} + engines: {node: '>=8'} + dependencies: + path-type: 4.0.0 + dev: false + + /fast-glob@3.3.2: + resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} + engines: {node: '>=8.6.0'} + dependencies: + '@nodelib/fs.stat': 2.0.5 + '@nodelib/fs.walk': 1.2.8 + glob-parent: 5.1.2 + merge2: 1.4.1 + micromatch: 4.0.5 + dev: false + + /fastq@1.17.1: + resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==} + dependencies: + reusify: 1.0.4 + dev: false + + /fill-range@7.0.1: + resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} + engines: {node: '>=8'} + dependencies: + to-regex-range: 5.0.1 + dev: false + + /fs-extra@7.0.1: + resolution: {integrity: sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==} + engines: {node: '>=6 <7 || >=8'} + dependencies: + graceful-fs: 4.2.11 + jsonfile: 4.0.0 + universalify: 0.1.2 + dev: false + + /fs.realpath@1.0.0: + resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} + dev: false + + /git-hooks-list@1.0.3: + resolution: {integrity: sha512-Y7wLWcrLUXwk2noSka166byGCvhMtDRpgHdzCno1UQv/n/Hegp++a2xBWJL1lJarnKD3SWaljD+0z1ztqxuKyQ==} + dev: false + + /glob-parent@5.1.2: + resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} + engines: {node: '>= 6'} + dependencies: + is-glob: 4.0.3 + dev: false + + /glob@7.2.3: + resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 3.1.2 + once: 1.4.0 + path-is-absolute: 1.0.1 + dev: false + + /globby@10.0.0: + resolution: {integrity: sha512-3LifW9M4joGZasyYPz2A1U74zbC/45fvpXUvO/9KbSa+VV0aGZarWkfdgKyR9sExNP0t0x0ss/UMJpNpcaTspw==} + engines: {node: '>=8'} + dependencies: + '@types/glob': 7.2.0 + array-union: 2.1.0 + dir-glob: 3.0.1 + fast-glob: 3.3.2 + glob: 7.2.3 + ignore: 5.3.1 + merge2: 1.4.1 + slash: 3.0.0 + dev: false + + /graceful-fs@4.2.11: + resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} + dev: false + + /ignore@5.3.1: + resolution: {integrity: sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==} + engines: {node: '>= 4'} + dev: false + + /import-lazy@4.0.0: + resolution: {integrity: sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==} + engines: {node: '>=8'} + dev: false + + /inflight@1.0.6: + resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} + dependencies: + once: 1.4.0 + wrappy: 1.0.2 + dev: false + + /inherits@2.0.4: + resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + dev: false + + /is-extglob@2.1.1: + resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} + engines: {node: '>=0.10.0'} + dev: false + + /is-glob@4.0.3: + resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} + engines: {node: '>=0.10.0'} + dependencies: + is-extglob: 2.1.1 + dev: false + + /is-number@7.0.0: + resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} + engines: {node: '>=0.12.0'} + dev: false + + /is-plain-obj@2.1.0: + resolution: {integrity: sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==} + engines: {node: '>=8'} + dev: false + + /jju@1.4.0: + resolution: {integrity: sha512-8wb9Yw966OSxApiCt0K3yNJL8pnNeIv+OEq2YMidz4FKP6nonSRoOXc80iXY4JaN2FC11B9qsNmDsm+ZOfMROA==} + dev: false + + /jsonfile@4.0.0: + resolution: {integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==} + optionalDependencies: + graceful-fs: 4.2.11 + dev: false + + /lodash.get@4.4.2: + resolution: {integrity: sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==} + dev: false + + /lodash.isequal@4.5.0: + resolution: {integrity: sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==} + dev: false + + /lru-cache@6.0.0: + resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} + engines: {node: '>=10'} + dependencies: + yallist: 4.0.0 + dev: false + + /merge2@1.4.1: + resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} + engines: {node: '>= 8'} + dev: false + + /micromatch@4.0.5: + resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} + engines: {node: '>=8.6'} + dependencies: + braces: 3.0.2 + picomatch: 2.3.1 + dev: false + + /minimatch@3.1.2: + resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} + dependencies: + brace-expansion: 1.1.11 + dev: false + + /once@1.4.0: + resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} + dependencies: + wrappy: 1.0.2 + dev: false + + /path-is-absolute@1.0.1: + resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} + engines: {node: '>=0.10.0'} + dev: false + + /path-parse@1.0.7: + resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} + dev: false + + /path-type@4.0.0: + resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} + engines: {node: '>=8'} + dev: false + + /picomatch@2.3.1: + resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} + engines: {node: '>=8.6'} + dev: false + + /queue-microtask@1.2.3: + resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + dev: false + + /resolve@1.17.0: + resolution: {integrity: sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==} + dependencies: + path-parse: 1.0.7 + dev: false + + /reusify@1.0.4: + resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} + engines: {iojs: '>=1.0.0', node: '>=0.10.0'} + dev: false + + /run-parallel@1.2.0: + resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} + dependencies: + queue-microtask: 1.2.3 + dev: false + + /rush-sort-package-json@0.0.4: + resolution: {integrity: sha512-WAtoFzvAcCeB9XDq0JIt+DGPnPckZG3dOdmP1/Gbd5wmorg1oJJQPli6+M55bnOc0cEVuEsbsAeU6Oqsq/cFDw==} + dependencies: + '@rushstack/node-core-library': 3.44.1 + '@rushstack/rush-sdk': 5.62.4 + sort-package-json: 1.54.0 + dev: false + + /semver@7.3.8: + resolution: {integrity: sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==} + engines: {node: '>=10'} + hasBin: true + dependencies: + lru-cache: 6.0.0 + dev: false + + /slash@3.0.0: + resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} + engines: {node: '>=8'} + dev: false + + /sort-object-keys@1.1.3: + resolution: {integrity: sha512-855pvK+VkU7PaKYPc+Jjnmt4EzejQHyhhF33q31qG8x7maDzkeFhAAThdCYay11CISO+qAMwjOBP+fPZe0IPyg==} + dev: false + + /sort-package-json@1.54.0: + resolution: {integrity: sha512-MA0nRiSfZ4/CNM/9rz70Hwq4PpvtBc3v532tzQSmoaLSdeBB3cCd488xmNruLL0fb/ZdbKlcaDDudwnrObbjBw==} + hasBin: true + dependencies: + detect-indent: 6.1.0 + detect-newline: 3.1.0 + git-hooks-list: 1.0.3 + globby: 10.0.0 + is-plain-obj: 2.1.0 + sort-object-keys: 1.1.3 + dev: false + + /tapable@2.2.1: + resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} + engines: {node: '>=6'} + dev: false + + /timsort@0.3.0: + resolution: {integrity: sha512-qsdtZH+vMoCARQtyod4imc2nIJwg9Cc7lPRrw9CzF8ZKR0khdr8+2nX80PBhET3tcyTtJDxAffGh2rXH4tyU8A==} + dev: false + + /to-regex-range@5.0.1: + resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} + engines: {node: '>=8.0'} + dependencies: + is-number: 7.0.0 + dev: false + + /undici-types@5.26.5: + resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} + dev: false + + /universalify@0.1.2: + resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==} + engines: {node: '>= 4.0.0'} + dev: false + + /validator@13.11.0: + resolution: {integrity: sha512-Ii+sehpSfZy+At5nPdnyMhx78fEoPDkR2XW/zimHEL3MyGJQOCQ7WeP20jPYRz7ZCpcKLB21NxuXHF3bxjStBQ==} + engines: {node: '>= 0.10'} + dev: false + + /validator@8.2.0: + resolution: {integrity: sha512-Yw5wW34fSv5spzTXNkokD6S6/Oq92d8q/t14TqsS3fAiA1RYnxSFSIZ+CY3n6PGGRCq5HhJTSepQvFUS2QUDxA==} + engines: {node: '>= 0.10'} + dev: false + + /wrappy@1.0.2: + resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} + dev: false + + /yallist@4.0.0: + resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} + dev: false + + /z-schema@3.18.4: + resolution: {integrity: sha512-DUOKC/IhbkdLKKiV89gw9DUauTV8U/8yJl1sjf6MtDmzevLKOF2duNJ495S3MFVjqZarr+qNGCPbkg4mu4PpLw==} + hasBin: true + dependencies: + lodash.get: 4.4.2 + lodash.isequal: 4.5.0 + validator: 8.2.0 + optionalDependencies: + commander: 2.20.3 + dev: false + + /z-schema@5.0.5: + resolution: {integrity: sha512-D7eujBWkLa3p2sIpJA0d1pr7es+a7m0vFAnZLlCEKq/Ij2k0MLi9Br2UPxoxdYystm5K1yeBGzub0FlYUEWj2Q==} + engines: {node: '>=8.0.0'} + hasBin: true + dependencies: + lodash.get: 4.4.2 + lodash.isequal: 4.5.0 + validator: 13.11.0 + optionalDependencies: + commander: 9.5.0 + dev: false diff --git a/common/autoinstallers/rush-plugins/rush-plugins/rush-sort-package-json/rush-plugin-manifest.json b/common/autoinstallers/rush-plugins/rush-plugins/rush-sort-package-json/rush-plugin-manifest.json new file mode 100644 index 00000000..1f1d17df --- /dev/null +++ b/common/autoinstallers/rush-plugins/rush-plugins/rush-sort-package-json/rush-plugin-manifest.json @@ -0,0 +1,10 @@ +{ + "$schema": "https://developer.microsoft.com/json-schemas/rush/v5/rush-plugin-manifest.schema.json", + "plugins": [ + { + "pluginName": "rush-sort-package-json", + "description": "Rush plugin for sort package.json file in the project", + "commandLineJsonFilePath": "command-line.json" + } + ] +} diff --git a/common/autoinstallers/rush-plugins/rush-plugins/rush-sort-package-json/rush-sort-package-json/command-line.json b/common/autoinstallers/rush-plugins/rush-plugins/rush-sort-package-json/rush-sort-package-json/command-line.json new file mode 100644 index 00000000..21ce6dae --- /dev/null +++ b/common/autoinstallers/rush-plugins/rush-plugins/rush-sort-package-json/rush-sort-package-json/command-line.json @@ -0,0 +1,12 @@ +{ + "$schema": "https://developer.microsoft.com/json-schemas/rush/v5/command-line.schema.json", + "commands": [ + { + "name": "sort-package-json", + "commandKind": "global", + "summary": "Rush plugin for sort package.json file in the project", + "shellCommand": "node /lib/index.js", + "safeForSimultaneousRushProcesses": true + } + ] +} diff --git a/common/autoinstallers/rush-prettier/pnpm-lock.yaml b/common/autoinstallers/rush-prettier/pnpm-lock.yaml index 9652ccdd..30d586eb 100644 --- a/common/autoinstallers/rush-prettier/pnpm-lock.yaml +++ b/common/autoinstallers/rush-prettier/pnpm-lock.yaml @@ -1,53 +1,57 @@ -lockfileVersion: 5.4 +lockfileVersion: '6.0' -specifiers: - prettier: ^2.7.1 - pretty-quick: ^3.1.3 +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false dependencies: - prettier: 2.7.1 - pretty-quick: 3.1.3_prettier@2.7.1 + prettier: + specifier: ^2.7.1 + version: 2.7.1 + pretty-quick: + specifier: ^3.1.3 + version: 3.1.3(prettier@2.7.1) packages: - /@types/minimatch/3.0.5: + /@types/minimatch@3.0.5: resolution: {integrity: sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==} dev: false - /ansi-styles/4.3.0: + /ansi-styles@4.3.0: resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} engines: {node: '>=8'} dependencies: color-convert: 2.0.1 dev: false - /array-differ/3.0.0: + /array-differ@3.0.0: resolution: {integrity: sha512-THtfYS6KtME/yIAhKjZ2ul7XI96lQGHRputJQHO80LAWQnuGP4iCIN8vdMRboGbIEYBwU33q8Tch1os2+X0kMg==} engines: {node: '>=8'} dev: false - /array-union/2.1.0: + /array-union@2.1.0: resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} engines: {node: '>=8'} dev: false - /arrify/2.0.1: + /arrify@2.0.1: resolution: {integrity: sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==} engines: {node: '>=8'} dev: false - /balanced-match/1.0.2: + /balanced-match@1.0.2: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} dev: false - /brace-expansion/1.1.11: + /brace-expansion@1.1.11: resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} dependencies: balanced-match: 1.0.2 concat-map: 0.0.1 dev: false - /chalk/3.0.0: + /chalk@3.0.0: resolution: {integrity: sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==} engines: {node: '>=8'} dependencies: @@ -55,22 +59,22 @@ packages: supports-color: 7.2.0 dev: false - /color-convert/2.0.1: + /color-convert@2.0.1: resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} engines: {node: '>=7.0.0'} dependencies: color-name: 1.1.4 dev: false - /color-name/1.1.4: + /color-name@1.1.4: resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} dev: false - /concat-map/0.0.1: + /concat-map@0.0.1: resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} dev: false - /cross-spawn/7.0.3: + /cross-spawn@7.0.3: resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} engines: {node: '>= 8'} dependencies: @@ -79,13 +83,13 @@ packages: which: 2.0.2 dev: false - /end-of-stream/1.4.4: + /end-of-stream@1.4.4: resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} dependencies: once: 1.4.0 dev: false - /execa/4.1.0: + /execa@4.1.0: resolution: {integrity: sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==} engines: {node: '>=10'} dependencies: @@ -100,7 +104,7 @@ packages: strip-final-newline: 2.0.0 dev: false - /find-up/4.1.0: + /find-up@4.1.0: resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} engines: {node: '>=8'} dependencies: @@ -108,65 +112,65 @@ packages: path-exists: 4.0.0 dev: false - /get-stream/5.2.0: + /get-stream@5.2.0: resolution: {integrity: sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==} engines: {node: '>=8'} dependencies: pump: 3.0.0 dev: false - /has-flag/4.0.0: + /has-flag@4.0.0: resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} engines: {node: '>=8'} dev: false - /human-signals/1.1.1: + /human-signals@1.1.1: resolution: {integrity: sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==} engines: {node: '>=8.12.0'} dev: false - /ignore/5.2.0: + /ignore@5.2.0: resolution: {integrity: sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==} engines: {node: '>= 4'} dev: false - /is-stream/2.0.1: + /is-stream@2.0.1: resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} engines: {node: '>=8'} dev: false - /isexe/2.0.0: + /isexe@2.0.0: resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} dev: false - /locate-path/5.0.0: + /locate-path@5.0.0: resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} engines: {node: '>=8'} dependencies: p-locate: 4.1.0 dev: false - /merge-stream/2.0.0: + /merge-stream@2.0.0: resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} dev: false - /mimic-fn/2.1.0: + /mimic-fn@2.1.0: resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} engines: {node: '>=6'} dev: false - /minimatch/3.1.2: + /minimatch@3.1.2: resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} dependencies: brace-expansion: 1.1.11 dev: false - /mri/1.2.0: + /mri@1.2.0: resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} engines: {node: '>=4'} dev: false - /multimatch/4.0.0: + /multimatch@4.0.0: resolution: {integrity: sha512-lDmx79y1z6i7RNx0ZGCPq1bzJ6ZoDDKbvh7jxr9SJcWLkShMzXrHbYVpTdnhNM5MXpDUxCQ4DgqVttVXlBgiBQ==} engines: {node: '>=8'} dependencies: @@ -177,62 +181,62 @@ packages: minimatch: 3.1.2 dev: false - /npm-run-path/4.0.1: + /npm-run-path@4.0.1: resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} engines: {node: '>=8'} dependencies: path-key: 3.1.1 dev: false - /once/1.4.0: + /once@1.4.0: resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} dependencies: wrappy: 1.0.2 dev: false - /onetime/5.1.2: + /onetime@5.1.2: resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} engines: {node: '>=6'} dependencies: mimic-fn: 2.1.0 dev: false - /p-limit/2.3.0: + /p-limit@2.3.0: resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} engines: {node: '>=6'} dependencies: p-try: 2.2.0 dev: false - /p-locate/4.1.0: + /p-locate@4.1.0: resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} engines: {node: '>=8'} dependencies: p-limit: 2.3.0 dev: false - /p-try/2.2.0: + /p-try@2.2.0: resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} engines: {node: '>=6'} dev: false - /path-exists/4.0.0: + /path-exists@4.0.0: resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} engines: {node: '>=8'} dev: false - /path-key/3.1.1: + /path-key@3.1.1: resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} engines: {node: '>=8'} dev: false - /prettier/2.7.1: + /prettier@2.7.1: resolution: {integrity: sha512-ujppO+MkdPqoVINuDFDRLClm7D78qbDt0/NR+wp5FqEZOoTNAjPHWj17QRhu7geIHJfcNhRk1XVQmF8Bp3ye+g==} engines: {node: '>=10.13.0'} hasBin: true dev: false - /pretty-quick/3.1.3_prettier@2.7.1: + /pretty-quick@3.1.3(prettier@2.7.1): resolution: {integrity: sha512-kOCi2FJabvuh1as9enxYmrnBC6tVMoVOenMaBqRfsvBHB0cbpYHjdQEpSglpASDFEXVwplpcGR4CLEaisYAFcA==} engines: {node: '>=10.13'} hasBin: true @@ -248,42 +252,42 @@ packages: prettier: 2.7.1 dev: false - /pump/3.0.0: + /pump@3.0.0: resolution: {integrity: sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==} dependencies: end-of-stream: 1.4.4 once: 1.4.0 dev: false - /shebang-command/2.0.0: + /shebang-command@2.0.0: resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} engines: {node: '>=8'} dependencies: shebang-regex: 3.0.0 dev: false - /shebang-regex/3.0.0: + /shebang-regex@3.0.0: resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} engines: {node: '>=8'} dev: false - /signal-exit/3.0.7: + /signal-exit@3.0.7: resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} dev: false - /strip-final-newline/2.0.0: + /strip-final-newline@2.0.0: resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} engines: {node: '>=6'} dev: false - /supports-color/7.2.0: + /supports-color@7.2.0: resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} engines: {node: '>=8'} dependencies: has-flag: 4.0.0 dev: false - /which/2.0.2: + /which@2.0.2: resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} engines: {node: '>= 8'} hasBin: true @@ -291,6 +295,6 @@ packages: isexe: 2.0.0 dev: false - /wrappy/1.0.2: + /wrappy@1.0.2: resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} dev: false diff --git a/common/changes/@agritheory/aform/development_2023-07-11-06-27.json b/common/changes/@agritheory/aform/development_2023-07-11-06-27.json new file mode 100644 index 00000000..12b420de --- /dev/null +++ b/common/changes/@agritheory/aform/development_2023-07-11-06-27.json @@ -0,0 +1,10 @@ +{ + "changes": [ + { + "packageName": "@agritheory/aform", + "comment": "Include ADropdown in components", + "type": "none" + } + ], + "packageName": "@agritheory/aform" +} \ No newline at end of file diff --git a/common/changes/@agritheory/aform/fix-docbuilder-issue_2023-05-09-06-13.json b/common/changes/@agritheory/aform/fix-docbuilder-issue_2023-05-09-06-13.json new file mode 100644 index 00000000..e354cae1 --- /dev/null +++ b/common/changes/@agritheory/aform/fix-docbuilder-issue_2023-05-09-06-13.json @@ -0,0 +1,10 @@ +{ + "changes": [ + { + "packageName": "@agritheory/aform", + "comment": "Update dependencies", + "type": "patch" + } + ], + "packageName": "@agritheory/aform" +} \ No newline at end of file diff --git a/common/changes/@agritheory/aform/fix-doctype-meta_2023-04-27-05-50.json b/common/changes/@agritheory/aform/fix-doctype-meta_2023-04-27-05-50.json new file mode 100644 index 00000000..33c06f12 --- /dev/null +++ b/common/changes/@agritheory/aform/fix-doctype-meta_2023-04-27-05-50.json @@ -0,0 +1,10 @@ +{ + "changes": [ + { + "packageName": "@agritheory/aform", + "comment": "Version bump", + "type": "patch" + } + ], + "packageName": "@agritheory/aform" +} \ No newline at end of file diff --git a/common/changes/@agritheory/aform/fix-graphql-stonecrop_2023-05-02-06-18.json b/common/changes/@agritheory/aform/fix-graphql-stonecrop_2023-05-02-06-18.json new file mode 100644 index 00000000..33c06f12 --- /dev/null +++ b/common/changes/@agritheory/aform/fix-graphql-stonecrop_2023-05-02-06-18.json @@ -0,0 +1,10 @@ +{ + "changes": [ + { + "packageName": "@agritheory/aform", + "comment": "Version bump", + "type": "patch" + } + ], + "packageName": "@agritheory/aform" +} \ No newline at end of file diff --git a/common/changes/@agritheory/aform/fix-setup-issues_2023-05-05-06-59.json b/common/changes/@agritheory/aform/fix-setup-issues_2023-05-05-06-59.json new file mode 100644 index 00000000..33c06f12 --- /dev/null +++ b/common/changes/@agritheory/aform/fix-setup-issues_2023-05-05-06-59.json @@ -0,0 +1,10 @@ +{ + "changes": [ + { + "packageName": "@agritheory/aform", + "comment": "Version bump", + "type": "patch" + } + ], + "packageName": "@agritheory/aform" +} \ No newline at end of file diff --git a/common/changes/@agritheory/aform/update_versions_2024-02-13-19-52.json b/common/changes/@agritheory/aform/update_versions_2024-02-13-19-52.json new file mode 100644 index 00000000..321f0316 --- /dev/null +++ b/common/changes/@agritheory/aform/update_versions_2024-02-13-19-52.json @@ -0,0 +1,10 @@ +{ + "changes": [ + { + "packageName": "@agritheory/aform", + "comment": "update node version", + "type": "none" + } + ], + "packageName": "@agritheory/aform" +} \ No newline at end of file diff --git a/common/changes/@agritheory/atable/fix-docbuilder-issue_2023-05-09-06-13.json b/common/changes/@agritheory/atable/fix-docbuilder-issue_2023-05-09-06-13.json new file mode 100644 index 00000000..e3992003 --- /dev/null +++ b/common/changes/@agritheory/atable/fix-docbuilder-issue_2023-05-09-06-13.json @@ -0,0 +1,10 @@ +{ + "changes": [ + { + "packageName": "@agritheory/atable", + "comment": "Update dependencies", + "type": "patch" + } + ], + "packageName": "@agritheory/atable" +} \ No newline at end of file diff --git a/common/changes/@agritheory/atable/fix-doctype-meta_2023-04-27-05-50.json b/common/changes/@agritheory/atable/fix-doctype-meta_2023-04-27-05-50.json new file mode 100644 index 00000000..600ee668 --- /dev/null +++ b/common/changes/@agritheory/atable/fix-doctype-meta_2023-04-27-05-50.json @@ -0,0 +1,10 @@ +{ + "changes": [ + { + "packageName": "@agritheory/atable", + "comment": "Version bump", + "type": "patch" + } + ], + "packageName": "@agritheory/atable" +} \ No newline at end of file diff --git a/common/changes/@agritheory/atable/fix-graphql-stonecrop_2023-05-02-06-18.json b/common/changes/@agritheory/atable/fix-graphql-stonecrop_2023-05-02-06-18.json new file mode 100644 index 00000000..600ee668 --- /dev/null +++ b/common/changes/@agritheory/atable/fix-graphql-stonecrop_2023-05-02-06-18.json @@ -0,0 +1,10 @@ +{ + "changes": [ + { + "packageName": "@agritheory/atable", + "comment": "Version bump", + "type": "patch" + } + ], + "packageName": "@agritheory/atable" +} \ No newline at end of file diff --git a/common/changes/@agritheory/atable/fix-setup-issues_2023-05-05-06-59.json b/common/changes/@agritheory/atable/fix-setup-issues_2023-05-05-06-59.json new file mode 100644 index 00000000..600ee668 --- /dev/null +++ b/common/changes/@agritheory/atable/fix-setup-issues_2023-05-05-06-59.json @@ -0,0 +1,10 @@ +{ + "changes": [ + { + "packageName": "@agritheory/atable", + "comment": "Version bump", + "type": "patch" + } + ], + "packageName": "@agritheory/atable" +} \ No newline at end of file diff --git a/common/changes/@agritheory/atable/update_versions_2024-02-13-19-52.json b/common/changes/@agritheory/atable/update_versions_2024-02-13-19-52.json new file mode 100644 index 00000000..cbb07e02 --- /dev/null +++ b/common/changes/@agritheory/atable/update_versions_2024-02-13-19-52.json @@ -0,0 +1,10 @@ +{ + "changes": [ + { + "packageName": "@agritheory/atable", + "comment": "update node version", + "type": "none" + } + ], + "packageName": "@agritheory/atable" +} \ No newline at end of file diff --git a/common/changes/@agritheory/code-editor/fix-docbuilder-issue_2023-05-09-06-13.json b/common/changes/@agritheory/code-editor/fix-docbuilder-issue_2023-05-09-06-13.json new file mode 100644 index 00000000..a3c0b7a1 --- /dev/null +++ b/common/changes/@agritheory/code-editor/fix-docbuilder-issue_2023-05-09-06-13.json @@ -0,0 +1,10 @@ +{ + "changes": [ + { + "packageName": "@agritheory/code-editor", + "comment": "Update dependencies", + "type": "patch" + } + ], + "packageName": "@agritheory/code-editor" +} \ No newline at end of file diff --git a/common/changes/@agritheory/code-editor/fix-doctype-meta_2023-04-27-05-50.json b/common/changes/@agritheory/code-editor/fix-doctype-meta_2023-04-27-05-50.json new file mode 100644 index 00000000..87221735 --- /dev/null +++ b/common/changes/@agritheory/code-editor/fix-doctype-meta_2023-04-27-05-50.json @@ -0,0 +1,10 @@ +{ + "changes": [ + { + "packageName": "@agritheory/code-editor", + "comment": "Version bump", + "type": "patch" + } + ], + "packageName": "@agritheory/code-editor" +} \ No newline at end of file diff --git a/common/changes/@agritheory/code-editor/fix-graphql-stonecrop_2023-05-02-06-18.json b/common/changes/@agritheory/code-editor/fix-graphql-stonecrop_2023-05-02-06-18.json new file mode 100644 index 00000000..87221735 --- /dev/null +++ b/common/changes/@agritheory/code-editor/fix-graphql-stonecrop_2023-05-02-06-18.json @@ -0,0 +1,10 @@ +{ + "changes": [ + { + "packageName": "@agritheory/code-editor", + "comment": "Version bump", + "type": "patch" + } + ], + "packageName": "@agritheory/code-editor" +} \ No newline at end of file diff --git a/common/changes/@agritheory/code-editor/fix-setup-issues_2023-05-05-06-59.json b/common/changes/@agritheory/code-editor/fix-setup-issues_2023-05-05-06-59.json new file mode 100644 index 00000000..87221735 --- /dev/null +++ b/common/changes/@agritheory/code-editor/fix-setup-issues_2023-05-05-06-59.json @@ -0,0 +1,10 @@ +{ + "changes": [ + { + "packageName": "@agritheory/code-editor", + "comment": "Version bump", + "type": "patch" + } + ], + "packageName": "@agritheory/code-editor" +} \ No newline at end of file diff --git a/common/changes/@agritheory/code-editor/update_versions_2024-02-13-19-52.json b/common/changes/@agritheory/code-editor/update_versions_2024-02-13-19-52.json new file mode 100644 index 00000000..67c6121f --- /dev/null +++ b/common/changes/@agritheory/code-editor/update_versions_2024-02-13-19-52.json @@ -0,0 +1,10 @@ +{ + "changes": [ + { + "packageName": "@agritheory/code-editor", + "comment": "update node version", + "type": "none" + } + ], + "packageName": "@agritheory/code-editor" +} \ No newline at end of file diff --git a/common/changes/@agritheory/desktop/development_2023-07-11-06-27.json b/common/changes/@agritheory/desktop/development_2023-07-11-06-27.json new file mode 100644 index 00000000..09c61b51 --- /dev/null +++ b/common/changes/@agritheory/desktop/development_2023-07-11-06-27.json @@ -0,0 +1,10 @@ +{ + "changes": [ + { + "packageName": "@agritheory/desktop", + "comment": "Update stonecrop API", + "type": "none" + } + ], + "packageName": "@agritheory/desktop" +} \ No newline at end of file diff --git a/common/changes/@agritheory/desktop/fix-docbuilder-issue_2023-05-09-06-13.json b/common/changes/@agritheory/desktop/fix-docbuilder-issue_2023-05-09-06-13.json new file mode 100644 index 00000000..98c0ccca --- /dev/null +++ b/common/changes/@agritheory/desktop/fix-docbuilder-issue_2023-05-09-06-13.json @@ -0,0 +1,10 @@ +{ + "changes": [ + { + "packageName": "@agritheory/desktop", + "comment": "Update dependencies", + "type": "patch" + } + ], + "packageName": "@agritheory/desktop" +} \ No newline at end of file diff --git a/common/changes/@agritheory/desktop/fix-doctype-meta_2023-04-27-05-48.json b/common/changes/@agritheory/desktop/fix-doctype-meta_2023-04-27-05-48.json new file mode 100644 index 00000000..4f4392a7 --- /dev/null +++ b/common/changes/@agritheory/desktop/fix-doctype-meta_2023-04-27-05-48.json @@ -0,0 +1,10 @@ +{ + "changes": [ + { + "packageName": "@agritheory/desktop", + "comment": "Export components for list and form view", + "type": "patch" + } + ], + "packageName": "@agritheory/desktop" +} \ No newline at end of file diff --git a/common/changes/@agritheory/desktop/development_2023-01-23-06-22.json b/common/changes/@agritheory/desktop/fix-graphql-stonecrop_2023-05-02-06-18.json similarity index 79% rename from common/changes/@agritheory/desktop/development_2023-01-23-06-22.json rename to common/changes/@agritheory/desktop/fix-graphql-stonecrop_2023-05-02-06-18.json index ba509153..f430e728 100644 --- a/common/changes/@agritheory/desktop/development_2023-01-23-06-22.json +++ b/common/changes/@agritheory/desktop/fix-graphql-stonecrop_2023-05-02-06-18.json @@ -2,7 +2,7 @@ "changes": [ { "packageName": "@agritheory/desktop", - "comment": "Publish package", + "comment": "Version bump", "type": "patch" } ], diff --git a/common/changes/@agritheory/desktop/fix-setup-issues_2023-05-05-06-54.json b/common/changes/@agritheory/desktop/fix-setup-issues_2023-05-05-06-54.json new file mode 100644 index 00000000..736066d5 --- /dev/null +++ b/common/changes/@agritheory/desktop/fix-setup-issues_2023-05-05-06-54.json @@ -0,0 +1,10 @@ +{ + "changes": [ + { + "packageName": "@agritheory/desktop", + "comment": "Add Vue plugin to install", + "type": "patch" + } + ], + "packageName": "@agritheory/desktop" +} \ No newline at end of file diff --git a/common/changes/@agritheory/desktop/update_versions_2024-02-13-19-52.json b/common/changes/@agritheory/desktop/update_versions_2024-02-13-19-52.json new file mode 100644 index 00000000..f4562d4e --- /dev/null +++ b/common/changes/@agritheory/desktop/update_versions_2024-02-13-19-52.json @@ -0,0 +1,10 @@ +{ + "changes": [ + { + "packageName": "@agritheory/desktop", + "comment": "update node version", + "type": "none" + } + ], + "packageName": "@agritheory/desktop" +} \ No newline at end of file diff --git a/common/changes/@agritheory/graphql-client/development_2023-07-11-06-27.json b/common/changes/@agritheory/graphql-client/development_2023-07-11-06-27.json new file mode 100644 index 00000000..b0f7f807 --- /dev/null +++ b/common/changes/@agritheory/graphql-client/development_2023-07-11-06-27.json @@ -0,0 +1,10 @@ +{ + "changes": [ + { + "packageName": "@agritheory/graphql-client", + "comment": "Export query methods instead of installing them at runtime", + "type": "none" + } + ], + "packageName": "@agritheory/graphql-client" +} \ No newline at end of file diff --git a/common/changes/@agritheory/graphql-client/fix-docbuilder-issue_2023-05-09-06-13.json b/common/changes/@agritheory/graphql-client/fix-docbuilder-issue_2023-05-09-06-13.json new file mode 100644 index 00000000..0eff6a48 --- /dev/null +++ b/common/changes/@agritheory/graphql-client/fix-docbuilder-issue_2023-05-09-06-13.json @@ -0,0 +1,10 @@ +{ + "changes": [ + { + "packageName": "@agritheory/graphql-client", + "comment": "Update dependencies", + "type": "patch" + } + ], + "packageName": "@agritheory/graphql-client" +} \ No newline at end of file diff --git a/common/changes/@agritheory/graphql-client/fix-doctype-meta_2023-04-27-05-50.json b/common/changes/@agritheory/graphql-client/fix-doctype-meta_2023-04-27-05-50.json new file mode 100644 index 00000000..a1defa61 --- /dev/null +++ b/common/changes/@agritheory/graphql-client/fix-doctype-meta_2023-04-27-05-50.json @@ -0,0 +1,10 @@ +{ + "changes": [ + { + "packageName": "@agritheory/graphql-client", + "comment": "Version bump", + "type": "patch" + } + ], + "packageName": "@agritheory/graphql-client" +} \ No newline at end of file diff --git a/common/changes/@agritheory/graphql-client/fix-graphql-stonecrop_2023-05-02-06-18.json b/common/changes/@agritheory/graphql-client/fix-graphql-stonecrop_2023-05-02-06-18.json new file mode 100644 index 00000000..d02bf194 --- /dev/null +++ b/common/changes/@agritheory/graphql-client/fix-graphql-stonecrop_2023-05-02-06-18.json @@ -0,0 +1,10 @@ +{ + "changes": [ + { + "packageName": "@agritheory/graphql-client", + "comment": "Setup GraphQL plugin for Stonecrop", + "type": "patch" + } + ], + "packageName": "@agritheory/graphql-client" +} \ No newline at end of file diff --git a/common/changes/@agritheory/graphql-client/fix-setup-issues_2023-05-05-06-54.json b/common/changes/@agritheory/graphql-client/fix-setup-issues_2023-05-05-06-54.json new file mode 100644 index 00000000..0cb78f57 --- /dev/null +++ b/common/changes/@agritheory/graphql-client/fix-setup-issues_2023-05-05-06-54.json @@ -0,0 +1,10 @@ +{ + "changes": [ + { + "packageName": "@agritheory/graphql-client", + "comment": "Add Vue plugin to install", + "type": "patch" + } + ], + "packageName": "@agritheory/graphql-client" +} \ No newline at end of file diff --git a/common/changes/@agritheory/graphql-client/update_versions_2024-02-13-19-52.json b/common/changes/@agritheory/graphql-client/update_versions_2024-02-13-19-52.json new file mode 100644 index 00000000..63adca2f --- /dev/null +++ b/common/changes/@agritheory/graphql-client/update_versions_2024-02-13-19-52.json @@ -0,0 +1,10 @@ +{ + "changes": [ + { + "packageName": "@agritheory/graphql-client", + "comment": "update node version", + "type": "none" + } + ], + "packageName": "@agritheory/graphql-client" +} \ No newline at end of file diff --git a/common/changes/@agritheory/node-editor/fix-docbuilder-issue_2023-05-09-06-13.json b/common/changes/@agritheory/node-editor/fix-docbuilder-issue_2023-05-09-06-13.json new file mode 100644 index 00000000..97dd1deb --- /dev/null +++ b/common/changes/@agritheory/node-editor/fix-docbuilder-issue_2023-05-09-06-13.json @@ -0,0 +1,10 @@ +{ + "changes": [ + { + "packageName": "@agritheory/node-editor", + "comment": "Update dependencies", + "type": "patch" + } + ], + "packageName": "@agritheory/node-editor" +} \ No newline at end of file diff --git a/common/changes/@agritheory/node-editor/fix-doctype-meta_2023-04-27-05-50.json b/common/changes/@agritheory/node-editor/fix-doctype-meta_2023-04-27-05-50.json new file mode 100644 index 00000000..c569860b --- /dev/null +++ b/common/changes/@agritheory/node-editor/fix-doctype-meta_2023-04-27-05-50.json @@ -0,0 +1,10 @@ +{ + "changes": [ + { + "packageName": "@agritheory/node-editor", + "comment": "Version bump", + "type": "patch" + } + ], + "packageName": "@agritheory/node-editor" +} \ No newline at end of file diff --git a/common/changes/@agritheory/node-editor/fix-graphql-stonecrop_2023-05-02-06-18.json b/common/changes/@agritheory/node-editor/fix-graphql-stonecrop_2023-05-02-06-18.json new file mode 100644 index 00000000..c569860b --- /dev/null +++ b/common/changes/@agritheory/node-editor/fix-graphql-stonecrop_2023-05-02-06-18.json @@ -0,0 +1,10 @@ +{ + "changes": [ + { + "packageName": "@agritheory/node-editor", + "comment": "Version bump", + "type": "patch" + } + ], + "packageName": "@agritheory/node-editor" +} \ No newline at end of file diff --git a/common/changes/@agritheory/node-editor/fix-setup-issues_2023-05-05-06-54.json b/common/changes/@agritheory/node-editor/fix-setup-issues_2023-05-05-06-54.json new file mode 100644 index 00000000..c569860b --- /dev/null +++ b/common/changes/@agritheory/node-editor/fix-setup-issues_2023-05-05-06-54.json @@ -0,0 +1,10 @@ +{ + "changes": [ + { + "packageName": "@agritheory/node-editor", + "comment": "Version bump", + "type": "patch" + } + ], + "packageName": "@agritheory/node-editor" +} \ No newline at end of file diff --git a/common/changes/@agritheory/node-editor/update_versions_2024-02-13-19-52.json b/common/changes/@agritheory/node-editor/update_versions_2024-02-13-19-52.json new file mode 100644 index 00000000..8153add9 --- /dev/null +++ b/common/changes/@agritheory/node-editor/update_versions_2024-02-13-19-52.json @@ -0,0 +1,10 @@ +{ + "changes": [ + { + "packageName": "@agritheory/node-editor", + "comment": "update node version", + "type": "none" + } + ], + "packageName": "@agritheory/node-editor" +} \ No newline at end of file diff --git a/common/changes/@agritheory/stonecrop/development_2023-07-11-06-27.json b/common/changes/@agritheory/stonecrop/development_2023-07-11-06-27.json new file mode 100644 index 00000000..f38b671b --- /dev/null +++ b/common/changes/@agritheory/stonecrop/development_2023-07-11-06-27.json @@ -0,0 +1,10 @@ +{ + "changes": [ + { + "packageName": "@agritheory/stonecrop", + "comment": "Allow overriding metadata fetch call", + "type": "none" + } + ], + "packageName": "@agritheory/stonecrop" +} \ No newline at end of file diff --git a/common/changes/@agritheory/stonecrop/fix-docbuilder-issue_2023-05-09-06-13.json b/common/changes/@agritheory/stonecrop/fix-docbuilder-issue_2023-05-09-06-13.json new file mode 100644 index 00000000..612cccd8 --- /dev/null +++ b/common/changes/@agritheory/stonecrop/fix-docbuilder-issue_2023-05-09-06-13.json @@ -0,0 +1,10 @@ +{ + "changes": [ + { + "packageName": "@agritheory/stonecrop", + "comment": "Update dependencies", + "type": "patch" + } + ], + "packageName": "@agritheory/stonecrop" +} \ No newline at end of file diff --git a/common/changes/@agritheory/stonecrop/fix-doctype-meta_2023-04-27-05-48.json b/common/changes/@agritheory/stonecrop/fix-doctype-meta_2023-04-27-05-48.json new file mode 100644 index 00000000..21bef7c5 --- /dev/null +++ b/common/changes/@agritheory/stonecrop/fix-doctype-meta_2023-04-27-05-48.json @@ -0,0 +1,10 @@ +{ + "changes": [ + { + "packageName": "@agritheory/stonecrop", + "comment": "Update class name and export", + "type": "patch" + } + ], + "packageName": "@agritheory/stonecrop" +} \ No newline at end of file diff --git a/common/changes/@agritheory/stonecrop/development_2023-01-23-06-22.json b/common/changes/@agritheory/stonecrop/fix-graphql-stonecrop_2023-05-02-06-18.json similarity index 80% rename from common/changes/@agritheory/stonecrop/development_2023-01-23-06-22.json rename to common/changes/@agritheory/stonecrop/fix-graphql-stonecrop_2023-05-02-06-18.json index 0666a79a..07732f0f 100644 --- a/common/changes/@agritheory/stonecrop/development_2023-01-23-06-22.json +++ b/common/changes/@agritheory/stonecrop/fix-graphql-stonecrop_2023-05-02-06-18.json @@ -2,7 +2,7 @@ "changes": [ { "packageName": "@agritheory/stonecrop", - "comment": "Publish package", + "comment": "Version bump", "type": "patch" } ], diff --git a/common/changes/@agritheory/stonecrop/fix-setup-issues_2023-05-05-06-54.json b/common/changes/@agritheory/stonecrop/fix-setup-issues_2023-05-05-06-54.json new file mode 100644 index 00000000..bfafcf01 --- /dev/null +++ b/common/changes/@agritheory/stonecrop/fix-setup-issues_2023-05-05-06-54.json @@ -0,0 +1,10 @@ +{ + "changes": [ + { + "packageName": "@agritheory/stonecrop", + "comment": "Add Vue plugin to install", + "type": "patch" + } + ], + "packageName": "@agritheory/stonecrop" +} \ No newline at end of file diff --git a/common/changes/@agritheory/stonecrop/update_versions_2024-02-13-19-52.json b/common/changes/@agritheory/stonecrop/update_versions_2024-02-13-19-52.json new file mode 100644 index 00000000..355525f0 --- /dev/null +++ b/common/changes/@agritheory/stonecrop/update_versions_2024-02-13-19-52.json @@ -0,0 +1,10 @@ +{ + "changes": [ + { + "packageName": "@agritheory/stonecrop", + "comment": "update node version", + "type": "none" + } + ], + "packageName": "@agritheory/stonecrop" +} \ No newline at end of file diff --git a/common/changes/@agritheory/themes/fix-docbuilder-issue_2023-05-09-06-13.json b/common/changes/@agritheory/themes/fix-docbuilder-issue_2023-05-09-06-13.json new file mode 100644 index 00000000..573f3a7f --- /dev/null +++ b/common/changes/@agritheory/themes/fix-docbuilder-issue_2023-05-09-06-13.json @@ -0,0 +1,10 @@ +{ + "changes": [ + { + "packageName": "@agritheory/themes", + "comment": "Update dependencies", + "type": "patch" + } + ], + "packageName": "@agritheory/themes" +} \ No newline at end of file diff --git a/common/changes/@agritheory/themes/update_versions_2024-02-13-19-52.json b/common/changes/@agritheory/themes/update_versions_2024-02-13-19-52.json new file mode 100644 index 00000000..ddc6a6b7 --- /dev/null +++ b/common/changes/@agritheory/themes/update_versions_2024-02-13-19-52.json @@ -0,0 +1,10 @@ +{ + "changes": [ + { + "packageName": "@agritheory/themes", + "comment": "update node version", + "type": "none" + } + ], + "packageName": "@agritheory/themes" +} \ No newline at end of file diff --git a/common/changes/@agritheory/utilities/fix-docbuilder-issue_2023-05-09-06-13.json b/common/changes/@agritheory/utilities/fix-docbuilder-issue_2023-05-09-06-13.json new file mode 100644 index 00000000..8f70efcf --- /dev/null +++ b/common/changes/@agritheory/utilities/fix-docbuilder-issue_2023-05-09-06-13.json @@ -0,0 +1,10 @@ +{ + "changes": [ + { + "packageName": "@agritheory/utilities", + "comment": "Update dependencies", + "type": "patch" + } + ], + "packageName": "@agritheory/utilities" +} \ No newline at end of file diff --git a/common/changes/@agritheory/utilities/fix-doctype-meta_2023-04-27-05-50.json b/common/changes/@agritheory/utilities/fix-doctype-meta_2023-04-27-05-50.json new file mode 100644 index 00000000..3484ef00 --- /dev/null +++ b/common/changes/@agritheory/utilities/fix-doctype-meta_2023-04-27-05-50.json @@ -0,0 +1,10 @@ +{ + "changes": [ + { + "packageName": "@agritheory/utilities", + "comment": "Version bump", + "type": "patch" + } + ], + "packageName": "@agritheory/utilities" +} \ No newline at end of file diff --git a/common/changes/@agritheory/utilities/fix-graphql-stonecrop_2023-05-02-06-18.json b/common/changes/@agritheory/utilities/fix-graphql-stonecrop_2023-05-02-06-18.json new file mode 100644 index 00000000..3484ef00 --- /dev/null +++ b/common/changes/@agritheory/utilities/fix-graphql-stonecrop_2023-05-02-06-18.json @@ -0,0 +1,10 @@ +{ + "changes": [ + { + "packageName": "@agritheory/utilities", + "comment": "Version bump", + "type": "patch" + } + ], + "packageName": "@agritheory/utilities" +} \ No newline at end of file diff --git a/common/changes/@agritheory/utilities/fix-setup-issues_2023-05-05-06-59.json b/common/changes/@agritheory/utilities/fix-setup-issues_2023-05-05-06-59.json new file mode 100644 index 00000000..3484ef00 --- /dev/null +++ b/common/changes/@agritheory/utilities/fix-setup-issues_2023-05-05-06-59.json @@ -0,0 +1,10 @@ +{ + "changes": [ + { + "packageName": "@agritheory/utilities", + "comment": "Version bump", + "type": "patch" + } + ], + "packageName": "@agritheory/utilities" +} \ No newline at end of file diff --git a/common/changes/@agritheory/utilities/update_versions_2024-02-13-19-52.json b/common/changes/@agritheory/utilities/update_versions_2024-02-13-19-52.json new file mode 100644 index 00000000..8f195cd5 --- /dev/null +++ b/common/changes/@agritheory/utilities/update_versions_2024-02-13-19-52.json @@ -0,0 +1,10 @@ +{ + "changes": [ + { + "packageName": "@agritheory/utilities", + "comment": "update node version", + "type": "none" + } + ], + "packageName": "@agritheory/utilities" +} \ No newline at end of file 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/aform/fix-publish-npm_2024-04-16-06-45.json b/common/changes/@stonecrop/aform/fix-publish-npm_2024-04-16-06-45.json new file mode 100644 index 00000000..3c0f5971 --- /dev/null +++ b/common/changes/@stonecrop/aform/fix-publish-npm_2024-04-16-06-45.json @@ -0,0 +1,10 @@ +{ + "changes": [ + { + "packageName": "@stonecrop/aform", + "comment": "Update package name", + "type": "none" + } + ], + "packageName": "@stonecrop/aform" +} \ 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/atable/fix-publish-npm_2024-04-16-06-45.json b/common/changes/@stonecrop/atable/fix-publish-npm_2024-04-16-06-45.json new file mode 100644 index 00000000..e1192bfc --- /dev/null +++ b/common/changes/@stonecrop/atable/fix-publish-npm_2024-04-16-06-45.json @@ -0,0 +1,10 @@ +{ + "changes": [ + { + "packageName": "@stonecrop/atable", + "comment": "Update package name", + "type": "none" + } + ], + "packageName": "@stonecrop/atable" +} \ 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/code-editor/fix-publish-npm_2024-04-16-06-45.json b/common/changes/@stonecrop/code-editor/fix-publish-npm_2024-04-16-06-45.json new file mode 100644 index 00000000..82d699ef --- /dev/null +++ b/common/changes/@stonecrop/code-editor/fix-publish-npm_2024-04-16-06-45.json @@ -0,0 +1,10 @@ +{ + "changes": [ + { + "packageName": "@stonecrop/code-editor", + "comment": "Update package name", + "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/desktop/fix-publish-npm_2024-04-16-06-45.json b/common/changes/@stonecrop/desktop/fix-publish-npm_2024-04-16-06-45.json new file mode 100644 index 00000000..57b2df8d --- /dev/null +++ b/common/changes/@stonecrop/desktop/fix-publish-npm_2024-04-16-06-45.json @@ -0,0 +1,10 @@ +{ + "changes": [ + { + "packageName": "@stonecrop/desktop", + "comment": "Update package name", + "type": "none" + } + ], + "packageName": "@stonecrop/desktop" +} \ No newline at end of file diff --git a/common/changes/@stonecrop/graphql-client/fix-publish-npm_2024-04-16-06-45.json b/common/changes/@stonecrop/graphql-client/fix-publish-npm_2024-04-16-06-45.json new file mode 100644 index 00000000..311ec0a0 --- /dev/null +++ b/common/changes/@stonecrop/graphql-client/fix-publish-npm_2024-04-16-06-45.json @@ -0,0 +1,10 @@ +{ + "changes": [ + { + "packageName": "@stonecrop/graphql-client", + "comment": "Update package name", + "type": "none" + } + ], + "packageName": "@stonecrop/graphql-client" +} \ 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/node-editor/fix-publish-npm_2024-04-16-06-45.json b/common/changes/@stonecrop/node-editor/fix-publish-npm_2024-04-16-06-45.json new file mode 100644 index 00000000..ce4d47f3 --- /dev/null +++ b/common/changes/@stonecrop/node-editor/fix-publish-npm_2024-04-16-06-45.json @@ -0,0 +1,10 @@ +{ + "changes": [ + { + "packageName": "@stonecrop/node-editor", + "comment": "Update package name", + "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/stonecrop/fix-publish-npm_2024-04-16-06-45.json b/common/changes/@stonecrop/stonecrop/fix-publish-npm_2024-04-16-06-45.json new file mode 100644 index 00000000..62482627 --- /dev/null +++ b/common/changes/@stonecrop/stonecrop/fix-publish-npm_2024-04-16-06-45.json @@ -0,0 +1,10 @@ +{ + "changes": [ + { + "packageName": "@stonecrop/stonecrop", + "comment": "Update package name", + "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/themes/fix-publish-npm_2024-04-16-06-45.json b/common/changes/@stonecrop/themes/fix-publish-npm_2024-04-16-06-45.json new file mode 100644 index 00000000..5dfac6ed --- /dev/null +++ b/common/changes/@stonecrop/themes/fix-publish-npm_2024-04-16-06-45.json @@ -0,0 +1,10 @@ +{ + "changes": [ + { + "packageName": "@stonecrop/themes", + "comment": "Update package name", + "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/changes/@stonecrop/utilities/fix-publish-npm_2024-04-16-06-45.json b/common/changes/@stonecrop/utilities/fix-publish-npm_2024-04-16-06-45.json new file mode 100644 index 00000000..f26c5e03 --- /dev/null +++ b/common/changes/@stonecrop/utilities/fix-publish-npm_2024-04-16-06-45.json @@ -0,0 +1,10 @@ +{ + "changes": [ + { + "packageName": "@stonecrop/utilities", + "comment": "Update package name", + "type": "none" + } + ], + "packageName": "@stonecrop/utilities" +} \ No newline at end of file diff --git a/common/config/rush/.npmrc b/common/config/rush/.npmrc index e43e66ed..61fa0cd9 100644 --- a/common/config/rush/.npmrc +++ b/common/config/rush/.npmrc @@ -18,8 +18,8 @@ # # //registry.npmjs.org/:_authToken=${NPM_AUTH_TOKEN} # -@agritheory:registry=https://npm.pkg.github.com/ -//npm.pkg.github.com/:_authToken=${NODE_AUTH_TOKEN} +@stonecrop:registry=https://registry.npmjs.org/ +//registry.npmjs.org/:_authToken=${NODE_AUTH_TOKEN} registry=https://registry.npmjs.org/ always-auth=false diff --git a/common/config/rush/.npmrc-publish b/common/config/rush/.npmrc-publish index 62a01ca7..c64c2cc5 100644 --- a/common/config/rush/.npmrc-publish +++ b/common/config/rush/.npmrc-publish @@ -18,5 +18,5 @@ # # //registry.npmjs.org/:_authToken=${NPM_AUTH_TOKEN} # -@agritheory:registry=https://npm.pkg.github.com/ -//npm.pkg.github.com/:_authToken=${NODE_AUTH_TOKEN} +@stonecrop:registry=https://registry.npmjs.org/ +//registry.npmjs.org/:_authToken=${NODE_AUTH_TOKEN} diff --git a/common/config/rush/browser-approved-packages.json b/common/config/rush/browser-approved-packages.json index ab69e249..a5d78d06 100644 --- a/common/config/rush/browser-approved-packages.json +++ b/common/config/rush/browser-approved-packages.json @@ -3,47 +3,43 @@ "$schema": "https://developer.microsoft.com/json-schemas/rush/v5/approved-packages.schema.json", "packages": [ { - "name": "@agritheory/aform", - "allowedCategories": [ "prototype" ] - }, - { - "name": "@agritheory/atable", - "allowedCategories": [ "prototype" ] + "name": "@histoire/plugin-vue", + "allowedCategories": [ "prototype", "utilities" ] }, { - "name": "@agritheory/desktop", - "allowedCategories": [ "prototype" ] + "name": "@miragejs/graphql", + "allowedCategories": [ "prototype", "utilities" ] }, { - "name": "@agritheory/node_editor", + "name": "@monaco-editor/loader", "allowedCategories": [ "prototype" ] }, { - "name": "@agritheory/node-editor", + "name": "@stonecrop/aform", "allowedCategories": [ "prototype" ] }, { - "name": "@agritheory/stonecrop", + "name": "@stonecrop/atable", "allowedCategories": [ "prototype" ] }, { - "name": "@agritheory/themes", + "name": "@stonecrop/desktop", "allowedCategories": [ "prototype" ] }, { - "name": "@agritheory/utilities", + "name": "@stonecrop/node-editor", "allowedCategories": [ "prototype" ] }, { - "name": "@histoire/plugin-vue", + "name": "@stonecrop/stonecrop", "allowedCategories": [ "prototype", "utilities" ] }, { - "name": "@miragejs/graphql", - "allowedCategories": [ "prototype", "utilities" ] + "name": "@stonecrop/themes", + "allowedCategories": [ "prototype" ] }, { - "name": "@monaco-editor/loader", + "name": "@stonecrop/utilities", "allowedCategories": [ "prototype" ] }, { @@ -62,6 +58,10 @@ "name": "@vitest/coverage-c8", "allowedCategories": [ "prototype", "utilities" ] }, + { + "name": "@vitest/coverage-v8", + "allowedCategories": [ "prototype" ] + }, { "name": "@vitest/ui", "allowedCategories": [ "prototype", "utilities" ] diff --git a/common/config/rush/pnpm-config.json b/common/config/rush/pnpm-config.json new file mode 100644 index 00000000..6287dddc --- /dev/null +++ b/common/config/rush/pnpm-config.json @@ -0,0 +1,205 @@ +/** + * This configuration file provides settings specific to the PNPM package manager. + * More documentation is available on the Rush website: https://rushjs.io + */ +{ + "$schema": "https://developer.microsoft.com/json-schemas/rush/v5/pnpm-config.schema.json", + + /** + * If true, then `rush install` and `rush update` will use the PNPM workspaces feature + * to perform the install, instead of the old model where Rush generated the symlinks + * for each projects's node_modules folder. + * + * When using workspaces, Rush will generate a `common/temp/pnpm-workspace.yaml` file referencing + * all local projects to install. Rush will also generate a `.pnpmfile.cjs` shim which implements + * Rush-specific features such as preferred versions. The user's `common/config/rush/.pnpmfile.cjs` + * is invoked by the shim. + * + * This option is strongly recommended. The default value is false. + */ + "useWorkspaces": true, + + /** + * If true, then Rush will add the `--strict-peer-dependencies` command-line parameter when + * invoking PNPM. This causes `rush update` to fail if there are unsatisfied peer dependencies, + * which is an invalid state that can cause build failures or incompatible dependency versions. + * (For historical reasons, JavaScript package managers generally do not treat this invalid + * state as an error.) + * + * PNPM documentation: https://pnpm.io/npmrc#strict-peer-dependencies + * + * The default value is false to avoid legacy compatibility issues. + * It is strongly recommended to set `strictPeerDependencies=true`. + */ + // "strictPeerDependencies": true, + + /** + * Environment variables that will be provided to PNPM. + */ + // "environmentVariables": { + // "NODE_OPTIONS": { + // "value": "--max-old-space-size=4096", + // "override": false + // } + // }, + + /** + * Specifies the location of the PNPM store. There are two possible values: + * + * - `local` - use the `pnpm-store` folder in the current configured temp folder: + * `common/temp/pnpm-store` by default. + * - `global` - use PNPM's global store, which has the benefit of being shared + * across multiple repo folders, but the disadvantage of less isolation for builds + * (for example, bugs or incompatibilities when two repos use different releases of PNPM) + * + * In both cases, the store path can be overridden by the environment variable `RUSH_PNPM_STORE_PATH`. + * + * The default value is `local`. + */ + // "pnpmStore": "global", + + /** + * If true, then `rush install` will report an error if manual modifications + * were made to the PNPM shrinkwrap file without running `rush update` afterwards. + * + * This feature protects against accidental inconsistencies that may be introduced + * if the PNPM shrinkwrap file (`pnpm-lock.yaml`) is manually edited. When this + * feature is enabled, `rush update` will append a hash to the file as a YAML comment, + * and then `rush update` and `rush install` will validate the hash. Note that this + * does not prohibit manual modifications, but merely requires `rush update` be run + * afterwards, ensuring that PNPM can report or repair any potential inconsistencies. + * + * To temporarily disable this validation when invoking `rush install`, use the + * `--bypass-policy` command-line parameter. + * + * The default value is false. + */ + // "preventManualShrinkwrapChanges": true, + + /** + * The "globalOverrides" setting provides a simple mechanism for overriding version selections + * for all dependencies of all projects in the monorepo workspace. The settings are copied + * into the `pnpm.overrides` field of the `common/temp/package.json` file that is generated + * by Rush during installation. + * + * Order of precedence: `.pnpmfile.cjs` has the highest precedence, followed by + * `unsupportedPackageJsonSettings`, `globalPeerDependencyRules`, `globalPackageExtensions`, + * and `globalOverrides` has lowest precedence. + * + * PNPM documentation: https://pnpm.io/package_json#pnpmoverrides + */ + "globalOverrides": { + // "example1": "^1.0.0", + // "example2": "npm:@company/example2@^1.0.0" + }, + + /** + * The `globalPeerDependencyRules` setting provides various settings for suppressing validation errors + * that are reported during installation with `strictPeerDependencies=true`. The settings are copied + * into the `pnpm.peerDependencyRules` field of the `common/temp/package.json` file that is generated + * by Rush during installation. + * + * Order of precedence: `.pnpmfile.cjs` has the highest precedence, followed by + * `unsupportedPackageJsonSettings`, `globalPeerDependencyRules`, `globalPackageExtensions`, + * and `globalOverrides` has lowest precedence. + * + * https://pnpm.io/package_json#pnpmpeerdependencyrules + */ + "globalPeerDependencyRules": { + // "ignoreMissing": ["@eslint/*"], + // "allowedVersions": { "react": "17" }, + // "allowAny": ["@babel/*"] + }, + + /** + * The `globalPackageExtension` setting provides a way to patch arbitrary package.json fields + * for any PNPM dependency of the monorepo. The settings are copied into the `pnpm.packageExtensions` + * field of the `common/temp/package.json` file that is generated by Rush during installation. + * The `globalPackageExtension` setting has similar capabilities as `.pnpmfile.cjs` but without + * the downsides of an executable script (nondeterminism, unreliable caching, performance concerns). + * + * Order of precedence: `.pnpmfile.cjs` has the highest precedence, followed by + * `unsupportedPackageJsonSettings`, `globalPeerDependencyRules`, `globalPackageExtensions`, + * and `globalOverrides` has lowest precedence. + * + * PNPM documentation: https://pnpm.io/package_json#pnpmpackageextensions + */ + "globalPackageExtensions": { + // "fork-ts-checker-webpack-plugin": { + // "dependencies": { + // "@babel/core": "1" + // }, + // "peerDependencies": { + // "eslint": ">= 6" + // }, + // "peerDependenciesMeta": { + // "eslint": { + // "optional": true + // } + // } + // } + }, + + /** + * The `globalNeverBuiltDependencies` setting suppresses the `preinstall`, `install`, and `postinstall` + * lifecycle events for the specified NPM dependencies. This is useful for scripts with poor practices + * such as downloading large binaries without retries or attempting to invoke OS tools such as + * a C++ compiler. (PNPM's terminology refers to these lifecycle events as "building" a package; + * it has nothing to do with build system operations such as `rush build` or `rushx build`.) + * The settings are copied into the `pnpm.neverBuiltDependencies` field of the `common/temp/package.json` + * file that is generated by Rush during installation. + * + * PNPM documentation: https://pnpm.io/package_json#pnpmneverbuiltdependencies + */ + "globalNeverBuiltDependencies": [ + // "fsevents" + ], + + /** + * The `globalAllowedDeprecatedVersions` setting suppresses installation warnings for package + * versions that the NPM registry reports as being deprecated. This is useful if the + * deprecated package is an indirect dependency of an external package that has not released a fix. + * The settings are copied into the `pnpm.allowedDeprecatedVersions` field of the `common/temp/package.json` + * file that is generated by Rush during installation. + * + * PNPM documentation: https://pnpm.io/package_json#pnpmalloweddeprecatedversions + * + * If you are working to eliminate a deprecated version, it's better to specify `allowedDeprecatedVersions` + * in the package.json file for individual Rush projects. + */ + "globalAllowedDeprecatedVersions": { + // "request": "*" + }, + + + /** + * (THIS FIELD IS MACHINE GENERATED) The "globalPatchedDependencies" field is updated automatically + * by the `rush-pnpm patch-commit` command. It is a dictionary, where the key is an NPM package name + * and exact version, and the value is a relative path to the associated patch file. + * + * PNPM documentation: https://pnpm.io/package_json#pnpmpatcheddependencies + */ + "globalPatchedDependencies": { }, + + /** + * (USE AT YOUR OWN RISK) This is a free-form property bag that will be copied into + * the `common/temp/package.json` file that is generated by Rush during installation. + * This provides a way to experiment with new PNPM features. These settings will override + * any other Rush configuration associated with a given JSON field except for `.pnpmfile.cjs`. + * + * USAGE OF THIS SETTING IS NOT SUPPORTED BY THE RUSH MAINTAINERS AND MAY CAUSE RUSH + * TO MALFUNCTION. If you encounter a missing PNPM setting that you believe should + * be supported, please create a GitHub issue or PR. Note that Rush does not aim to + * support every possible PNPM setting, but rather to promote a battle-tested installation + * strategy that is known to provide a good experience for large teams with lots of projects. + */ + "unsupportedPackageJsonSettings": { + // "dependencies": { + // "not-a-good-practice": "*" + // }, + // "scripts": { + // "do-something": "echo Also not a good practice" + // }, + // "pnpm": { "futurePnpmFeature": true } + } +} \ No newline at end of file diff --git a/common/config/rush/pnpm-lock.yaml b/common/config/rush/pnpm-lock.yaml index 9147d4e8..69708ce3 100644 --- a/common/config/rush/pnpm-lock.yaml +++ b/common/config/rush/pnpm-lock.yaml @@ -1,480 +1,677 @@ -lockfileVersion: 5.4 +lockfileVersion: '6.0' + +settings: + autoInstallPeers: false + excludeLinksFromLockfile: false importers: - .: - specifiers: {} + .: {} ../../aform: - specifiers: - '@agritheory/atable': workspace:* - '@agritheory/themes': workspace:* - '@agritheory/utilities': workspace:* - '@histoire/plugin-vue': ^0.14.2 - '@types/uuid': ^9.0.0 - '@typescript-eslint/eslint-plugin': ^5.33.0 - '@typescript-eslint/parser': ^5.33.0 - '@vitejs/plugin-vue': ^4.0.0 - '@vitest/coverage-c8': ^0.28.4 - '@vitest/ui': ^0.28.4 - '@vue/test-utils': ^2.2.10 - cypress: ^12.2.0 - eslint: ^8.22.0 - eslint-config-prettier: ^8.5.0 - eslint-plugin-vue: ^9.3.0 - histoire: ^0.14.2 - jsdom: ^21.1.0 - typescript: ^4.9.4 - uuid: ^9.0.0 - vite: ^4.1.1 - vitest: ^0.28.4 - vue: ^3.2.47 - vue-router: ^4 dependencies: - '@agritheory/themes': link:../themes - '@agritheory/utilities': link:../utilities - uuid: 9.0.0 - vue: 3.2.47 + '@stonecrop/themes': + specifier: workspace:* + version: link:../themes + '@stonecrop/utilities': + specifier: workspace:* + version: link:../utilities + uuid: + specifier: ^9.0.0 + version: 9.0.1 + vue: + specifier: ^3.2.47 + version: 3.4.19(typescript@5.3.3) devDependencies: - '@agritheory/atable': link:../atable - '@histoire/plugin-vue': 0.14.2_izdcwy4z5nvkkqrxf5i2hzuchi - '@types/uuid': 9.0.0 - '@typescript-eslint/eslint-plugin': 5.47.0_ncmi6noazr3nzas7jxykisekym - '@typescript-eslint/parser': 5.47.0_lzzuuodtsqwxnvqeq4g4likcqa - '@vitejs/plugin-vue': 4.0.0_vite@4.1.4+vue@3.2.47 - '@vitest/coverage-c8': 0.28.4_vun5xzxu3tkrssf3erdbijyyki - '@vitest/ui': 0.28.4 - '@vue/test-utils': 2.2.10_vue@3.2.47 - cypress: 12.2.0 - eslint: 8.30.0 - eslint-config-prettier: 8.5.0_eslint@8.30.0 - eslint-plugin-vue: 9.8.0_eslint@8.30.0 - histoire: 0.14.2_vite@4.1.4 - jsdom: 21.1.0 - typescript: 4.9.4 - vite: 4.1.4 - vitest: 0.28.4_vun5xzxu3tkrssf3erdbijyyki - vue-router: 4.1.6_vue@3.2.47 + '@histoire/plugin-vue': + specifier: ^0.16.1 + version: 0.16.5(histoire@0.16.5)(vite@4.5.2)(vue@3.4.19) + '@stonecrop/atable': + specifier: workspace:* + version: link:../atable + '@types/uuid': + specifier: ^9.0.0 + version: 9.0.8 + '@typescript-eslint/eslint-plugin': + specifier: ^5.59.5 + version: 5.62.0(@typescript-eslint/parser@5.62.0)(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/parser': + specifier: ^5.59.5 + version: 5.62.0(eslint@8.56.0)(typescript@5.3.3) + '@vitejs/plugin-vue': + specifier: ^4.2.1 + version: 4.6.2(vite@4.5.2)(vue@3.4.19) + '@vitest/coverage-v8': + specifier: ^1.5.0 + version: 1.5.0(vitest@1.5.0) + '@vitest/ui': + specifier: ^1.5.0 + version: 1.5.0(vitest@1.5.0) + '@vue/test-utils': + specifier: ^2.3.2 + version: 2.4.4(vue@3.4.19) + cypress: + specifier: ^12.11.0 + version: 12.17.4 + eslint: + specifier: ^8.40.0 + version: 8.56.0 + eslint-config-prettier: + specifier: ^8.8.0 + version: 8.10.0(eslint@8.56.0) + eslint-plugin-vue: + specifier: ^9.11.1 + version: 9.21.1(eslint@8.56.0) + histoire: + specifier: ^0.16.1 + version: 0.16.5(vite@4.5.2) + jsdom: + specifier: ^22.0.0 + version: 22.1.0 + typescript: + specifier: ^5.0.4 + version: 5.3.3 + vite: + specifier: ^4.3.5 + version: 4.5.2 + vitest: + specifier: ^1.5.0 + version: 1.5.0(@vitest/ui@1.5.0)(jsdom@22.1.0) + vue-router: + specifier: ^4 + version: 4.2.5(vue@3.4.19) ../../atable: - specifiers: - '@agritheory/aform': workspace:* - '@agritheory/themes': workspace:* - '@agritheory/utilities': workspace:* - '@histoire/plugin-vue': ^0.14.2 - '@types/uuid': ^9.0.0 - '@typescript-eslint/eslint-plugin': ^5.33.0 - '@typescript-eslint/parser': ^5.33.0 - '@vitejs/plugin-vue': ^4.0.0 - '@vitest/coverage-c8': ^0.28.4 - '@vitest/ui': ^0.28.4 - '@vue/test-utils': ^2.2.10 - cypress: ^12.2.0 - eslint: ^8.22.0 - eslint-config-prettier: ^8.5.0 - eslint-plugin-vue: ^9.3.0 - histoire: ^0.14.2 - jsdom: ^21.1.0 - typescript: ^4.9.4 - uuid: ^9.0.0 - vite: ^4.1.1 - vitest: ^0.28.4 - vue: ^3.2.47 - vue-router: ^4 dependencies: - '@agritheory/themes': link:../themes - '@agritheory/utilities': link:../utilities - uuid: 9.0.0 - vue: 3.2.47 + '@stonecrop/themes': + specifier: workspace:* + version: link:../themes + '@stonecrop/utilities': + specifier: workspace:* + version: link:../utilities + uuid: + specifier: ^9.0.0 + version: 9.0.1 + vue: + specifier: ^3.2.47 + version: 3.4.19(typescript@5.3.3) devDependencies: - '@agritheory/aform': link:../aform - '@histoire/plugin-vue': 0.14.2_izdcwy4z5nvkkqrxf5i2hzuchi - '@types/uuid': 9.0.0 - '@typescript-eslint/eslint-plugin': 5.47.0_ncmi6noazr3nzas7jxykisekym - '@typescript-eslint/parser': 5.47.0_lzzuuodtsqwxnvqeq4g4likcqa - '@vitejs/plugin-vue': 4.0.0_vite@4.1.4+vue@3.2.47 - '@vitest/coverage-c8': 0.28.4_vun5xzxu3tkrssf3erdbijyyki - '@vitest/ui': 0.28.4 - '@vue/test-utils': 2.2.10_vue@3.2.47 - cypress: 12.2.0 - eslint: 8.30.0 - eslint-config-prettier: 8.5.0_eslint@8.30.0 - eslint-plugin-vue: 9.8.0_eslint@8.30.0 - histoire: 0.14.2_vite@4.1.4 - jsdom: 21.1.0 - typescript: 4.9.4 - vite: 4.1.4 - vitest: 0.28.4_vun5xzxu3tkrssf3erdbijyyki - vue-router: 4.1.6_vue@3.2.47 + '@histoire/plugin-vue': + specifier: ^0.16.1 + version: 0.16.5(histoire@0.16.5)(vite@4.5.2)(vue@3.4.19) + '@stonecrop/aform': + specifier: workspace:* + version: link:../aform + '@types/uuid': + specifier: ^9.0.0 + version: 9.0.8 + '@typescript-eslint/eslint-plugin': + specifier: ^5.59.5 + version: 5.62.0(@typescript-eslint/parser@5.62.0)(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/parser': + specifier: ^5.59.5 + version: 5.62.0(eslint@8.56.0)(typescript@5.3.3) + '@vitejs/plugin-vue': + specifier: ^4.2.1 + version: 4.6.2(vite@4.5.2)(vue@3.4.19) + '@vitest/coverage-v8': + specifier: ^1.5.0 + version: 1.5.0(vitest@1.5.0) + '@vitest/ui': + specifier: ^1.5.0 + version: 1.5.0(vitest@1.5.0) + '@vue/test-utils': + specifier: ^2.3.2 + version: 2.4.4(vue@3.4.19) + cypress: + specifier: ^12.11.0 + version: 12.17.4 + eslint: + specifier: ^8.40.0 + version: 8.56.0 + eslint-config-prettier: + specifier: ^8.8.0 + version: 8.10.0(eslint@8.56.0) + eslint-plugin-vue: + specifier: ^9.11.1 + version: 9.21.1(eslint@8.56.0) + histoire: + specifier: ^0.16.1 + version: 0.16.5(vite@4.5.2) + jsdom: + specifier: ^22.0.0 + version: 22.1.0 + typescript: + specifier: ^5.0.4 + version: 5.3.3 + vite: + specifier: ^4.3.5 + version: 4.5.2 + vitest: + specifier: ^1.5.0 + version: 1.5.0(@vitest/ui@1.5.0)(jsdom@22.1.0) + vue-router: + specifier: ^4 + version: 4.2.5(vue@3.4.19) ../../code_editor: - specifiers: - '@agritheory/atable': workspace:^0.2.0 - '@agritheory/themes': workspace:* - '@agritheory/utilities': workspace:* - '@histoire/plugin-vue': ^0.14.2 - '@monaco-editor/loader': ~1.3.2 - '@types/uuid': ^9.0.0 - '@typescript-eslint/eslint-plugin': ^5.33.0 - '@typescript-eslint/parser': ^5.33.0 - '@vitejs/plugin-vue': ^4.0.0 - cypress: ^12.2.0 - eslint: ^8.22.0 - eslint-config-prettier: ^8.5.0 - eslint-plugin-vue: ^9.3.0 - histoire: ^0.14.2 - monaco-editor: ~0.34.1 - typescript: ^4.9.4 - vite: ^4.1.1 - vue: ^3.2.47 - vue-router: ^4 dependencies: - '@agritheory/themes': link:../themes - '@agritheory/utilities': link:../utilities - '@monaco-editor/loader': 1.3.2_monaco-editor@0.34.1 - monaco-editor: 0.34.1 - vue: 3.2.47 + '@monaco-editor/loader': + specifier: ~1.3.2 + version: 1.3.3(monaco-editor@0.34.1) + '@stonecrop/themes': + specifier: workspace:* + version: link:../themes + '@stonecrop/utilities': + specifier: workspace:* + version: link:../utilities + monaco-editor: + specifier: ~0.34.1 + version: 0.34.1 + vue: + specifier: ^3.2.47 + version: 3.4.19(typescript@5.3.3) devDependencies: - '@agritheory/atable': link:../atable - '@histoire/plugin-vue': 0.14.2_izdcwy4z5nvkkqrxf5i2hzuchi - '@types/uuid': 9.0.0 - '@typescript-eslint/eslint-plugin': 5.47.0_ncmi6noazr3nzas7jxykisekym - '@typescript-eslint/parser': 5.47.0_lzzuuodtsqwxnvqeq4g4likcqa - '@vitejs/plugin-vue': 4.0.0_vite@4.1.4+vue@3.2.47 - cypress: 12.2.0 - eslint: 8.30.0 - eslint-config-prettier: 8.5.0_eslint@8.30.0 - eslint-plugin-vue: 9.8.0_eslint@8.30.0 - histoire: 0.14.2_vite@4.1.4 - typescript: 4.9.4 - vite: 4.1.4 - vue-router: 4.1.6_vue@3.2.47 + '@histoire/plugin-vue': + specifier: ^0.16.1 + version: 0.16.5(histoire@0.16.5)(vite@4.5.2)(vue@3.4.19) + '@stonecrop/atable': + specifier: workspace:* + version: link:../atable + '@types/uuid': + specifier: ^9.0.0 + version: 9.0.8 + '@typescript-eslint/eslint-plugin': + specifier: ^5.59.5 + version: 5.62.0(@typescript-eslint/parser@5.62.0)(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/parser': + specifier: ^5.59.5 + version: 5.62.0(eslint@8.56.0)(typescript@5.3.3) + '@vitejs/plugin-vue': + specifier: ^4.2.1 + version: 4.6.2(vite@4.5.2)(vue@3.4.19) + cypress: + specifier: ^12.11.0 + version: 12.17.4 + eslint: + specifier: ^8.40.0 + version: 8.56.0 + eslint-config-prettier: + specifier: ^8.8.0 + version: 8.10.0(eslint@8.56.0) + eslint-plugin-vue: + specifier: ^9.11.1 + version: 9.21.1(eslint@8.56.0) + histoire: + specifier: ^0.16.1 + version: 0.16.5(vite@4.5.2) + typescript: + specifier: ^5.0.4 + version: 5.3.3 + vite: + specifier: ^4.3.5 + version: 4.5.2 + vue-router: + specifier: ^4 + version: 4.2.5(vue@3.4.19) ../../desktop: - specifiers: - '@agritheory/aform': workspace:^0.1.2 - '@agritheory/atable': workspace:^0.2.0 - '@agritheory/stonecrop': workspace:^0.1.0 - '@agritheory/themes': workspace:* - '@miragejs/graphql': ^0.1.13 - '@typescript-eslint/eslint-plugin': ^5.33.0 - '@typescript-eslint/parser': ^5.33.0 - '@vitejs/plugin-vue': ^4.0.0 - eslint: ^8.22.0 - eslint-config-prettier: ^8.5.0 - eslint-plugin-vue: ^9.3.0 - immutable: ^4.2.2 - miragejs: ^0.1.47 - typescript: ^4.9.4 - vite: ^4.1.1 - vue: ^3.2.47 - vue-router: ^4 - xstate: ~4.33.6 - dependencies: - '@agritheory/aform': link:../aform - '@agritheory/atable': link:../atable - '@agritheory/stonecrop': link:../stonecrop - '@agritheory/themes': link:../themes - immutable: 4.2.4 - vue: 3.2.47 - xstate: 4.33.6 + dependencies: + '@stonecrop/aform': + specifier: workspace:* + version: link:../aform + '@stonecrop/atable': + specifier: workspace:* + version: link:../atable + '@stonecrop/stonecrop': + specifier: workspace:* + version: link:../stonecrop + '@stonecrop/themes': + specifier: workspace:* + version: link:../themes + immutable: + specifier: ^4.3.0 + version: 4.3.5 + vue: + specifier: ^3.2.47 + version: 3.4.19(typescript@5.3.3) + xstate: + specifier: ~4.37.2 + version: 4.37.2 devDependencies: - '@miragejs/graphql': 0.1.13 - '@typescript-eslint/eslint-plugin': 5.47.0_ncmi6noazr3nzas7jxykisekym - '@typescript-eslint/parser': 5.47.0_lzzuuodtsqwxnvqeq4g4likcqa - '@vitejs/plugin-vue': 4.0.0_vite@4.1.4+vue@3.2.47 - eslint: 8.30.0 - eslint-config-prettier: 8.5.0_eslint@8.30.0 - eslint-plugin-vue: 9.8.0_eslint@8.30.0 - miragejs: 0.1.47 - typescript: 4.9.4 - vite: 4.1.4 - vue-router: 4.1.6_vue@3.2.47 + '@miragejs/graphql': + specifier: ^0.1.13 + version: 0.1.13 + '@typescript-eslint/eslint-plugin': + specifier: ^5.59.5 + version: 5.62.0(@typescript-eslint/parser@5.62.0)(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/parser': + specifier: ^5.59.5 + version: 5.62.0(eslint@8.56.0)(typescript@5.3.3) + '@vitejs/plugin-vue': + specifier: ^4.2.1 + version: 4.6.2(vite@4.5.2)(vue@3.4.19) + eslint: + specifier: ^8.40.0 + version: 8.56.0 + eslint-config-prettier: + specifier: ^8.8.0 + version: 8.10.0(eslint@8.56.0) + eslint-plugin-vue: + specifier: ^9.11.1 + version: 9.21.1(eslint@8.56.0) + miragejs: + specifier: ^0.1.47 + version: 0.1.48 + typescript: + specifier: ^5.0.4 + version: 5.3.3 + vite: + specifier: ^4.3.5 + version: 4.5.2 + vue-router: + specifier: ^4 + version: 4.2.5(vue@3.4.19) ../../examples: - specifiers: - '@agritheory/aform': workspace:^0.1.2 - '@agritheory/atable': workspace:^0.2.0 - '@agritheory/desktop': workspace:^0.1.0 - '@agritheory/node-editor': workspace:^0.1.0 - '@agritheory/stonecrop': workspace:^0.1.0 - '@agritheory/themes': workspace:* - '@miragejs/graphql': ^0.1.13 - '@types/uuid': ^9.0.0 - '@typescript-eslint/eslint-plugin': ^5.33.0 - '@typescript-eslint/parser': ^5.33.0 - '@vitejs/plugin-vue': ^4.0.0 - cypress: ^12.2.0 - eslint: ^8.22.0 - eslint-plugin-vue: ^9.3.0 - miragejs: ^0.1.47 - typescript: ^4.9.4 - uuid: ^9.0.0 - vite: ^4.1.1 - vue: ^3.2.47 - vue-router: ^4 - xstate: ~4.33.6 - dependencies: - '@agritheory/aform': link:../aform - '@agritheory/atable': link:../atable - '@agritheory/desktop': link:../desktop - '@agritheory/node-editor': link:../node_editor - '@agritheory/stonecrop': link:../stonecrop - '@agritheory/themes': link:../themes - '@miragejs/graphql': 0.1.13 - '@vitejs/plugin-vue': 4.0.0_vite@4.1.4+vue@3.2.47 - miragejs: 0.1.47 - uuid: 9.0.0 - vite: 4.1.4 - vue: 3.2.47 - xstate: 4.33.6 + dependencies: + '@miragejs/graphql': + specifier: ^0.1.13 + version: 0.1.13 + '@stonecrop/aform': + specifier: workspace:* + version: link:../aform + '@stonecrop/atable': + specifier: workspace:* + version: link:../atable + '@stonecrop/desktop': + specifier: workspace:* + version: link:../desktop + '@stonecrop/node-editor': + specifier: workspace:* + version: link:../node_editor + '@stonecrop/stonecrop': + specifier: workspace:* + version: link:../stonecrop + '@stonecrop/themes': + specifier: workspace:* + version: link:../themes + '@vitejs/plugin-vue': + specifier: ^4.2.1 + version: 4.6.2(vite@4.5.2)(vue@3.4.19) + miragejs: + specifier: ^0.1.47 + version: 0.1.48 + uuid: + specifier: ^9.0.0 + version: 9.0.1 + vite: + specifier: ^4.3.5 + version: 4.5.2 + vue: + specifier: ^3.2.47 + version: 3.4.19(typescript@5.3.3) + xstate: + specifier: ~4.37.2 + version: 4.37.2 devDependencies: - '@types/uuid': 9.0.0 - '@typescript-eslint/eslint-plugin': 5.47.0_ncmi6noazr3nzas7jxykisekym - '@typescript-eslint/parser': 5.47.0_lzzuuodtsqwxnvqeq4g4likcqa - cypress: 12.2.0 - eslint: 8.30.0 - eslint-plugin-vue: 9.8.0_eslint@8.30.0 - typescript: 4.9.4 - vue-router: 4.1.6_vue@3.2.47 + '@types/uuid': + specifier: ^9.0.0 + version: 9.0.8 + '@typescript-eslint/eslint-plugin': + specifier: ^5.59.5 + version: 5.62.0(@typescript-eslint/parser@5.62.0)(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/parser': + specifier: ^5.59.5 + version: 5.62.0(eslint@8.56.0)(typescript@5.3.3) + cypress: + specifier: ^12.11.0 + version: 12.17.4 + eslint: + specifier: ^8.40.0 + version: 8.56.0 + eslint-plugin-vue: + specifier: ^9.11.1 + version: 9.21.1(eslint@8.56.0) + typescript: + specifier: ^5.0.4 + version: 5.3.3 + vue-router: + specifier: ^4 + version: 4.2.5(vue@3.4.19) ../../graphql_client: - specifiers: - '@miragejs/graphql': ^0.1.13 - '@types/graphql': ~14.5.0 - '@typescript-eslint/eslint-plugin': ^5.33.0 - '@typescript-eslint/parser': ^5.33.0 - '@vitejs/plugin-vue': ^4.0.0 - '@vitest/coverage-c8': ^0.28.4 - '@vitest/ui': ^0.28.4 - cypress: ^12.2.0 - eslint: ^8.22.0 - eslint-config-prettier: ^8.5.0 - eslint-plugin-vue: ^9.3.0 - graphql: ~16.6.0 - graphql-request: ~5.2.0 - miragejs: ^0.1.47 - typescript: ^4.9.4 - vite: ^4.1.1 - vitest: ^0.28.4 - vue: ^3.2.47 - vue-router: ^4 dependencies: - graphql: 16.6.0 - graphql-request: 5.2.0_graphql@16.6.0 + '@stonecrop/stonecrop': + specifier: workspace:* + version: link:../stonecrop + graphql: + specifier: ~16.6.0 + version: 16.6.0 + graphql-request: + specifier: ~6.0.0 + version: 6.0.0(graphql@16.6.0) devDependencies: - '@miragejs/graphql': 0.1.13 - '@types/graphql': 14.5.0 - '@typescript-eslint/eslint-plugin': 5.47.0_ncmi6noazr3nzas7jxykisekym - '@typescript-eslint/parser': 5.47.0_lzzuuodtsqwxnvqeq4g4likcqa - '@vitejs/plugin-vue': 4.0.0_vite@4.1.4+vue@3.2.47 - '@vitest/coverage-c8': 0.28.4_@vitest+ui@0.28.4 - '@vitest/ui': 0.28.4 - cypress: 12.2.0 - eslint: 8.30.0 - eslint-config-prettier: 8.5.0_eslint@8.30.0 - eslint-plugin-vue: 9.8.0_eslint@8.30.0 - miragejs: 0.1.47 - typescript: 4.9.4 - vite: 4.1.4 - vitest: 0.28.4_@vitest+ui@0.28.4 - vue: 3.2.47 - vue-router: 4.1.6_vue@3.2.47 + '@miragejs/graphql': + specifier: ^0.1.13 + version: 0.1.13 + '@types/graphql': + specifier: ~14.5.0 + version: 14.5.0 + '@typescript-eslint/eslint-plugin': + specifier: ^5.59.5 + version: 5.62.0(@typescript-eslint/parser@5.62.0)(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/parser': + specifier: ^5.59.5 + version: 5.62.0(eslint@8.56.0)(typescript@5.3.3) + '@vitejs/plugin-vue': + specifier: ^4.2.1 + version: 4.6.2(vite@4.5.2)(vue@3.4.19) + cypress: + specifier: ^12.11.0 + version: 12.17.4 + eslint: + specifier: ^8.40.0 + version: 8.56.0 + eslint-config-prettier: + specifier: ^8.8.0 + version: 8.10.0(eslint@8.56.0) + eslint-plugin-vue: + specifier: ^9.11.1 + version: 9.21.1(eslint@8.56.0) + miragejs: + specifier: ^0.1.47 + version: 0.1.48 + typescript: + specifier: ^5.0.4 + version: 5.3.3 + vite: + specifier: ^4.3.5 + version: 4.5.2 + vue: + specifier: ^3.2.47 + version: 3.4.19(typescript@5.3.3) + vue-router: + specifier: ^4 + version: 4.2.5(vue@3.4.19) ../../node_editor: - specifiers: - '@histoire/plugin-vue': ^0.14.2 - '@vitejs/plugin-vue': ^4.0.0 - '@vue-flow/core': ~1.5.1 - histoire: ^0.14.2 - vite: ^4.1.1 - vue: ^3.2.47 - vue-router: ^4 - xstate: ~4.33.6 dependencies: - '@vue-flow/core': 1.5.11_vue@3.2.47 - vue: 3.2.47 - vue-router: 4.1.6_vue@3.2.47 - xstate: 4.33.6 + '@vue-flow/core': + specifier: ~1.19.3 + version: 1.19.4(vue@3.4.19) + vue: + specifier: ^3.2.47 + version: 3.4.19(typescript@5.3.3) + vue-router: + specifier: ^4 + version: 4.2.5(vue@3.4.19) + xstate: + specifier: ~4.37.2 + version: 4.37.2 devDependencies: - '@histoire/plugin-vue': 0.14.2_izdcwy4z5nvkkqrxf5i2hzuchi - '@vitejs/plugin-vue': 4.0.0_vite@4.1.4+vue@3.2.47 - histoire: 0.14.2_vite@4.1.4 - vite: 4.1.4 + '@histoire/plugin-vue': + specifier: ^0.16.1 + version: 0.16.5(histoire@0.16.5)(vite@4.5.2)(vue@3.4.19) + '@vitejs/plugin-vue': + specifier: ^4.2.1 + version: 4.6.2(vite@4.5.2)(vue@3.4.19) + histoire: + specifier: ^0.16.1 + version: 0.16.5(vite@4.5.2) + vite: + specifier: ^4.3.5 + version: 4.5.2 ../../stonecrop: - specifiers: - '@agritheory/aform': workspace:^0.1.2 - '@agritheory/atable': workspace:^0.2.0 - '@typescript-eslint/eslint-plugin': ^5.33.0 - '@typescript-eslint/parser': ^5.33.0 - '@vitejs/plugin-vue': ^4.0.0 - '@vueuse/core': ^9.13.0 - eslint: ^8.22.0 - eslint-config-prettier: ^8.5.0 - eslint-plugin-vue: ^9.3.0 - immutable: ^4.2.2 - pinia: ^2.0.32 - pinia-shared-state: ^0.3.0 - pinia-undo: ^0.1.9 - pinia-xstate: ^1.0.9 - typescript: ^4.9.4 - vite: ^4.1.1 - vue: ^3.2.47 - vue-router: ^4 - xstate: ~4.33.6 - dependencies: - '@vueuse/core': 9.13.0_vue@3.2.47 - immutable: 4.2.4 - pinia: 2.0.33_yq2pyqi2yjztetnx45sawcgrle - pinia-shared-state: 0.3.0_pinia@2.0.33+vue@3.2.47 - pinia-undo: 0.1.9_pinia@2.0.33 - pinia-xstate: 1.0.9_pinia@2.0.33+xstate@4.33.6 - vue: 3.2.47 - vue-router: 4.1.6_vue@3.2.47 - xstate: 4.33.6 + dependencies: + '@vueuse/core': + specifier: ^9.13.0 + version: 9.13.0(vue@3.4.19) + immutable: + specifier: ^4.3.0 + version: 4.3.5 + pinia: + specifier: ^2.0.32 + version: 2.1.7(typescript@5.3.3)(vue@3.4.19) + pinia-shared-state: + specifier: ^0.3.0 + version: 0.3.0(pinia@2.1.7)(vue@3.4.19) + pinia-undo: + specifier: ^0.1.9 + version: 0.1.9(pinia@2.1.7) + pinia-xstate: + specifier: ^1.0.9 + version: 1.0.9(pinia@2.1.7)(typescript@5.3.3)(xstate@4.37.2) + vue: + specifier: ^3.2.47 + version: 3.4.19(typescript@5.3.3) + vue-router: + specifier: ^4 + version: 4.2.5(vue@3.4.19) + xstate: + specifier: ~4.37.2 + version: 4.37.2 devDependencies: - '@agritheory/aform': link:../aform - '@agritheory/atable': link:../atable - '@typescript-eslint/eslint-plugin': 5.47.0_ncmi6noazr3nzas7jxykisekym - '@typescript-eslint/parser': 5.47.0_lzzuuodtsqwxnvqeq4g4likcqa - '@vitejs/plugin-vue': 4.0.0_vite@4.1.4+vue@3.2.47 - eslint: 8.30.0 - eslint-config-prettier: 8.5.0_eslint@8.30.0 - eslint-plugin-vue: 9.8.0_eslint@8.30.0 - typescript: 4.9.4 - vite: 4.1.4 + '@stonecrop/aform': + specifier: workspace:* + version: link:../aform + '@stonecrop/atable': + specifier: workspace:* + version: link:../atable + '@typescript-eslint/eslint-plugin': + specifier: ^5.59.5 + version: 5.62.0(@typescript-eslint/parser@5.62.0)(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/parser': + specifier: ^5.59.5 + version: 5.62.0(eslint@8.56.0)(typescript@5.3.3) + '@vitejs/plugin-vue': + specifier: ^4.2.1 + version: 4.6.2(vite@4.5.2)(vue@3.4.19) + eslint: + specifier: ^8.40.0 + version: 8.56.0 + eslint-config-prettier: + specifier: ^8.8.0 + version: 8.10.0(eslint@8.56.0) + eslint-plugin-vue: + specifier: ^9.11.1 + version: 9.21.1(eslint@8.56.0) + typescript: + specifier: ^5.0.4 + version: 5.3.3 + vite: + specifier: ^4.3.5 + version: 4.5.2 ../../themes: - specifiers: - '@vitejs/plugin-vue': ^4.0.0 - vite: ^4.1.1 - vue: ^3.2.47 devDependencies: - '@vitejs/plugin-vue': 4.0.0_vite@4.1.4+vue@3.2.47 - vite: 4.1.4 - vue: 3.2.47 + '@vitejs/plugin-vue': + specifier: ^4.2.1 + version: 4.6.2(vite@4.5.2)(vue@3.4.19) + vite: + specifier: ^4.3.5 + version: 4.5.2 + vue: + specifier: ^3.2.47 + version: 3.4.19(typescript@5.3.3) ../../utilities: - specifiers: - '@histoire/plugin-vue': ^0.14.2 - '@typescript-eslint/eslint-plugin': ^5.33.0 - '@typescript-eslint/parser': ^5.33.0 - '@vitejs/plugin-vue': ^4.0.0 - '@vueuse/core': ^9.13.0 - cypress: ^12.2.0 - eslint: ^8.22.0 - eslint-config-prettier: ^8.5.0 - eslint-plugin-vue: ^9.3.0 - histoire: ^0.14.2 - typescript: ^4.9.4 - vite: ^4.1.1 - vue: ^3.2.47 - vue-router: ^4 dependencies: - vue: 3.2.47 + vue: + specifier: ^3.2.47 + version: 3.4.19(typescript@5.3.3) devDependencies: - '@histoire/plugin-vue': 0.14.2_izdcwy4z5nvkkqrxf5i2hzuchi - '@typescript-eslint/eslint-plugin': 5.47.0_ncmi6noazr3nzas7jxykisekym - '@typescript-eslint/parser': 5.47.0_lzzuuodtsqwxnvqeq4g4likcqa - '@vitejs/plugin-vue': 4.0.0_vite@4.1.4+vue@3.2.47 - '@vueuse/core': 9.13.0_vue@3.2.47 - cypress: 12.2.0 - eslint: 8.30.0 - eslint-config-prettier: 8.5.0_eslint@8.30.0 - eslint-plugin-vue: 9.8.0_eslint@8.30.0 - histoire: 0.14.2_vite@4.1.4 - typescript: 4.9.4 - vite: 4.1.4 - vue-router: 4.1.6_vue@3.2.47 + '@histoire/plugin-vue': + specifier: ^0.16.1 + version: 0.16.5(histoire@0.16.5)(vite@4.5.2)(vue@3.4.19) + '@typescript-eslint/eslint-plugin': + specifier: ^5.59.5 + version: 5.62.0(@typescript-eslint/parser@5.62.0)(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/parser': + specifier: ^5.59.5 + version: 5.62.0(eslint@8.56.0)(typescript@5.3.3) + '@vitejs/plugin-vue': + specifier: ^4.2.1 + version: 4.6.2(vite@4.5.2)(vue@3.4.19) + '@vueuse/core': + specifier: ^9.13.0 + version: 9.13.0(vue@3.4.19) + cypress: + specifier: ^12.11.0 + version: 12.17.4 + eslint: + specifier: ^8.40.0 + version: 8.56.0 + eslint-config-prettier: + specifier: ^8.8.0 + version: 8.10.0(eslint@8.56.0) + eslint-plugin-vue: + specifier: ^9.11.1 + version: 9.21.1(eslint@8.56.0) + histoire: + specifier: ^0.16.1 + version: 0.16.5(vite@4.5.2) + typescript: + specifier: ^5.0.4 + version: 5.3.3 + vite: + specifier: ^4.3.5 + version: 4.5.2 + vue-router: + specifier: ^4 + version: 4.2.5(vue@3.4.19) packages: - /@babel/parser/7.20.7: - resolution: {integrity: sha512-T3Z9oHybU+0vZlY9CiDSJQTD5ZapcW18ZctFMi0MOAl/4BjFF4ul7NVSARLdbGO5vDqy9eQiGTV0LtKfvCYvcg==} + /@aashutoshrathi/word-wrap@1.2.6: + resolution: {integrity: sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==} + engines: {node: '>=0.10.0'} + dev: true + + /@akryum/tinypool@0.3.1: + resolution: {integrity: sha512-nznEC1ZA/m3hQDEnrGQ4c5gkaa9pcaVnw4LFJyzBAaR7E3nfiAPEHS3otnSafpZouVnoKeITl5D+2LsnwlnK8g==} + engines: {node: '>=14.0.0'} + dev: true + + /@ampproject/remapping@2.2.1: + resolution: {integrity: sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==} + engines: {node: '>=6.0.0'} + dependencies: + '@jridgewell/gen-mapping': 0.3.3 + '@jridgewell/trace-mapping': 0.3.22 + dev: true + + /@babel/helper-string-parser@7.24.1: + resolution: {integrity: sha512-2ofRCjnnA9y+wk8b9IAREroeUP02KHp431N2mhKniy2yKIDKpbrHv9eXwm8cBeWQYcJmzv5qKCu65P47eCF7CQ==} + engines: {node: '>=6.9.0'} + dev: true + + /@babel/helper-validator-identifier@7.22.20: + resolution: {integrity: sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==} + engines: {node: '>=6.9.0'} + dev: true + + /@babel/parser@7.23.9: + resolution: {integrity: sha512-9tcKgqKbs3xGJ+NtKF2ndOBBLVwPjl1SHxPQkd36r3Dlirw3xWUeGaTbqr7uGZcTaxkVNwc+03SVP7aCdWrTlA==} + engines: {node: '>=6.0.0'} + hasBin: true + + /@babel/parser@7.24.4: + resolution: {integrity: sha512-zTvEBcghmeBma9QIGunWevvBAp4/Qu9Bdq+2k0Ot4fVMD6v3dsC9WOcRSKk7tRRyBM/53yKMJko9xOatGQAwSg==} engines: {node: '>=6.0.0'} hasBin: true + dev: true - /@babel/runtime/7.20.7: + /@babel/runtime@7.20.7: resolution: {integrity: sha512-UF0tvkUtxwAgZ5W/KrkHf0Rn0fdnLDU9ScxBrEVNUprE/MzirjK4MJUX1/BVDv00Sv8cljtukVK1aky++X1SjQ==} engines: {node: '>=6.9.0'} dependencies: regenerator-runtime: 0.13.11 dev: false - /@bcoe/v8-coverage/0.2.3: + /@babel/types@7.24.0: + resolution: {integrity: sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-string-parser': 7.24.1 + '@babel/helper-validator-identifier': 7.22.20 + to-fast-properties: 2.0.0 + dev: true + + /@bcoe/v8-coverage@0.2.3: resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} dev: true - /@codemirror/commands/6.1.2: - resolution: {integrity: sha512-sO3jdX1s0pam6lIdeSJLMN3DQ6mPEbM4yLvyKkdqtmd/UDwhXA5+AwFJ89rRXm6vTeOXBsE5cAmlos/t7MJdgg==} + /@codemirror/commands@6.3.3: + resolution: {integrity: sha512-dO4hcF0fGT9tu1Pj1D2PvGvxjeGkbC6RGcZw6Qs74TH+Ed1gw98jmUgd2axWvIZEqTeTuFrg1lEB1KV6cK9h1A==} dependencies: - '@codemirror/language': 6.3.2 - '@codemirror/state': 6.1.4 - '@codemirror/view': 6.7.1 - '@lezer/common': 1.0.2 + '@codemirror/language': 6.10.1 + '@codemirror/state': 6.4.0 + '@codemirror/view': 6.24.0 + '@lezer/common': 1.2.1 dev: true - /@codemirror/lang-json/6.0.1: + /@codemirror/lang-json@6.0.1: resolution: {integrity: sha512-+T1flHdgpqDDlJZ2Lkil/rLiRy684WMLc74xUnjJH48GQdfJo/pudlTRreZmKwzP8/tGdKf83wlbAdOCzlJOGQ==} dependencies: - '@codemirror/language': 6.3.2 - '@lezer/json': 1.0.0 + '@codemirror/language': 6.10.1 + '@lezer/json': 1.0.2 dev: true - /@codemirror/language/6.3.2: - resolution: {integrity: sha512-g42uHhOcEMAXjmozGG+rdom5UsbyfMxQFh7AbkeoaNImddL6Xt4cQDL0+JxmG7+as18rUAvZaqzP/TjsciVIrA==} + /@codemirror/language@6.10.1: + resolution: {integrity: sha512-5GrXzrhq6k+gL5fjkAwt90nYDmjlzTIJV8THnxNFtNKWotMIlzzN+CpqxqwXOECnUdOndmSeWntVrVcv5axWRQ==} dependencies: - '@codemirror/state': 6.1.4 - '@codemirror/view': 6.7.1 - '@lezer/common': 1.0.2 - '@lezer/highlight': 1.1.3 - '@lezer/lr': 1.2.5 - style-mod: 4.0.0 + '@codemirror/state': 6.4.0 + '@codemirror/view': 6.24.0 + '@lezer/common': 1.2.1 + '@lezer/highlight': 1.2.0 + '@lezer/lr': 1.4.0 + style-mod: 4.1.0 dev: true - /@codemirror/lint/6.1.0: - resolution: {integrity: sha512-mdvDQrjRmYPvQ3WrzF6Ewaao+NWERYtpthJvoQ3tK3t/44Ynhk8ZGjTSL9jMEv8CgSMogmt75X8ceOZRDSXHtQ==} + /@codemirror/lint@6.5.0: + resolution: {integrity: sha512-+5YyicIaaAZKU8K43IQi8TBy6mF6giGeWAH7N96Z5LC30Wm5JMjqxOYIE9mxwMG1NbhT2mA3l9hA4uuKUM3E5g==} dependencies: - '@codemirror/state': 6.1.4 - '@codemirror/view': 6.7.1 - crelt: 1.0.5 + '@codemirror/state': 6.4.0 + '@codemirror/view': 6.24.0 + crelt: 1.0.6 dev: true - /@codemirror/state/6.1.4: - resolution: {integrity: sha512-g+3OJuRylV5qsXuuhrc6Cvs1NQluNioepYMM2fhnpYkNk7NgX+j0AFuevKSVKzTDmDyt9+Puju+zPdHNECzCNQ==} + /@codemirror/state@6.4.0: + resolution: {integrity: sha512-hm8XshYj5Fo30Bb922QX9hXB/bxOAVH+qaqHBzw5TKa72vOeslyGwd4X8M0c1dJ9JqxlaMceOQ8RsL9tC7gU0A==} dev: true - /@codemirror/theme-one-dark/6.1.0: - resolution: {integrity: sha512-AiTHtFRu8+vWT9wWUWDM+cog6ZwgivJogB1Tm/g40NIpLwph7AnmxrSzWfvJN5fBVufsuwBxecQCNmdcR5D7Aw==} + /@codemirror/theme-one-dark@6.1.2: + resolution: {integrity: sha512-F+sH0X16j/qFLMAfbciKTxVOwkdAS336b7AXTKOZhy8BR3eH/RelsnLgLFINrpST63mmN2OuwUt0W2ndUgYwUA==} dependencies: - '@codemirror/language': 6.3.2 - '@codemirror/state': 6.1.4 - '@codemirror/view': 6.7.1 - '@lezer/highlight': 1.1.3 + '@codemirror/language': 6.10.1 + '@codemirror/state': 6.4.0 + '@codemirror/view': 6.24.0 + '@lezer/highlight': 1.2.0 dev: true - /@codemirror/view/6.7.1: - resolution: {integrity: sha512-kYtS+uqYw/q/0ytYxpkqE1JVuK5NsbmBklWYhwLFTKO9gVuTdh/kDEeZPKorbqHcJ+P+ucrhcsS1czVweOpT2g==} + /@codemirror/view@6.24.0: + resolution: {integrity: sha512-zK6m5pNkdhdJl8idPP1gA4N8JKTiSsOz8U/Iw+C1ChMwyLG7+MLiNXnH/wFuAk6KeGEe33/adOiAh5jMqee03w==} dependencies: - '@codemirror/state': 6.1.4 - style-mod: 4.0.0 - w3c-keyname: 2.2.6 + '@codemirror/state': 6.4.0 + style-mod: 4.1.0 + w3c-keyname: 2.2.8 dev: true - /@colors/colors/1.5.0: + /@colors/colors@1.5.0: resolution: {integrity: sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==} engines: {node: '>=0.1.90'} requiresBuild: true dev: true optional: true - /@cypress/request/2.88.10: - resolution: {integrity: sha512-Zp7F+R93N0yZyG34GutyTNr+okam7s/Fzc1+i3kcqOP8vk6OuajuE9qZJ6Rs+10/1JFtXFYMdyarnU1rZuJesg==} + /@cypress/request@2.88.12: + resolution: {integrity: sha512-tOn+0mDZxASFM+cuAP9szGUGPI1HwWVSvdzm7V4cCsPdFTx6qMj29CwaQmRAMIEhORIUBFBsYROYJcveK4uOjA==} engines: {node: '>= 6'} dependencies: aws-sign2: 0.7.0 - aws4: 1.11.0 + aws4: 1.12.0 caseless: 0.12.0 combined-stream: 1.0.8 extend: 3.0.2 @@ -486,205 +683,427 @@ packages: json-stringify-safe: 5.0.1 mime-types: 2.1.35 performance-now: 2.1.0 - qs: 6.5.3 + qs: 6.10.4 safe-buffer: 5.2.1 - tough-cookie: 2.5.0 + tough-cookie: 4.1.3 tunnel-agent: 0.6.0 uuid: 8.3.2 dev: true - /@cypress/xvfb/1.2.4: + /@cypress/xvfb@1.2.4: resolution: {integrity: sha512-skbBzPggOVYCbnGgV+0dmBdW/s77ZkAOXIC1knS8NagwDjBrNC1LuXtQJeiN6l+m7lzmHtaoUw/ctJKdqkG57Q==} dependencies: debug: 3.2.7 lodash.once: 4.1.1 dev: true - /@esbuild/android-arm/0.16.17: - resolution: {integrity: sha512-N9x1CMXVhtWEAMS7pNNONyA14f71VPQN9Cnavj1XQh6T7bskqiLLrSca4O0Vr8Wdcga943eThxnVp3JLnBMYtw==} + /@esbuild/aix-ppc64@0.20.2: + resolution: {integrity: sha512-D+EBOJHXdNZcLJRBkhENNG8Wji2kgc9AZ9KiPr1JuZjsNtyHzrsfLRrY0tk2H2aoFu6RANO1y1iPPUCDYWkb5g==} engines: {node: '>=12'} - cpu: [arm] + cpu: [ppc64] + os: [aix] + requiresBuild: true + dev: true + optional: true + + /@esbuild/android-arm64@0.18.20: + resolution: {integrity: sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==} + engines: {node: '>=12'} + cpu: [arm64] os: [android] requiresBuild: true optional: true - /@esbuild/android-arm64/0.16.17: - resolution: {integrity: sha512-MIGl6p5sc3RDTLLkYL1MyL8BMRN4tLMRCn+yRJJmEDvYZ2M7tmAf80hx1kbNEUX2KJ50RRtxZ4JHLvCfuB6kBg==} + /@esbuild/android-arm64@0.20.2: + resolution: {integrity: sha512-mRzjLacRtl/tWU0SvD8lUEwb61yP9cqQo6noDZP/O8VkwafSYwZ4yWy24kan8jE/IMERpYncRt2dw438LP3Xmg==} engines: {node: '>=12'} cpu: [arm64] os: [android] requiresBuild: true + dev: true optional: true - /@esbuild/android-x64/0.16.17: - resolution: {integrity: sha512-a3kTv3m0Ghh4z1DaFEuEDfz3OLONKuFvI4Xqczqx4BqLyuFaFkuaG4j2MtA6fuWEFeC5x9IvqnX7drmRq/fyAQ==} + /@esbuild/android-arm@0.18.20: + resolution: {integrity: sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==} + engines: {node: '>=12'} + cpu: [arm] + os: [android] + requiresBuild: true + optional: true + + /@esbuild/android-arm@0.20.2: + resolution: {integrity: sha512-t98Ra6pw2VaDhqNWO2Oph2LXbz/EJcnLmKLGBJwEwXX/JAN83Fym1rU8l0JUWK6HkIbWONCSSatf4sf2NBRx/w==} + engines: {node: '>=12'} + cpu: [arm] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@esbuild/android-x64@0.18.20: + resolution: {integrity: sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==} engines: {node: '>=12'} cpu: [x64] os: [android] requiresBuild: true optional: true - /@esbuild/darwin-arm64/0.16.17: - resolution: {integrity: sha512-/2agbUEfmxWHi9ARTX6OQ/KgXnOWfsNlTeLcoV7HSuSTv63E4DqtAc+2XqGw1KHxKMHGZgbVCZge7HXWX9Vn+w==} + /@esbuild/android-x64@0.20.2: + resolution: {integrity: sha512-btzExgV+/lMGDDa194CcUQm53ncxzeBrWJcncOBxuC6ndBkKxnHdFJn86mCIgTELsooUmwUm9FkhSp5HYu00Rg==} + engines: {node: '>=12'} + cpu: [x64] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@esbuild/darwin-arm64@0.18.20: + resolution: {integrity: sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==} engines: {node: '>=12'} cpu: [arm64] os: [darwin] requiresBuild: true optional: true - /@esbuild/darwin-x64/0.16.17: - resolution: {integrity: sha512-2By45OBHulkd9Svy5IOCZt376Aa2oOkiE9QWUK9fe6Tb+WDr8hXL3dpqi+DeLiMed8tVXspzsTAvd0jUl96wmg==} + /@esbuild/darwin-arm64@0.20.2: + resolution: {integrity: sha512-4J6IRT+10J3aJH3l1yzEg9y3wkTDgDk7TSDFX+wKFiWjqWp/iCfLIYzGyasx9l0SAFPT1HwSCR+0w/h1ES/MjA==} + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@esbuild/darwin-x64@0.18.20: + resolution: {integrity: sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==} engines: {node: '>=12'} cpu: [x64] os: [darwin] requiresBuild: true optional: true - /@esbuild/freebsd-arm64/0.16.17: - resolution: {integrity: sha512-mt+cxZe1tVx489VTb4mBAOo2aKSnJ33L9fr25JXpqQqzbUIw/yzIzi+NHwAXK2qYV1lEFp4OoVeThGjUbmWmdw==} + /@esbuild/darwin-x64@0.20.2: + resolution: {integrity: sha512-tBcXp9KNphnNH0dfhv8KYkZhjc+H3XBkF5DKtswJblV7KlT9EI2+jeA8DgBjp908WEuYll6pF+UStUCfEpdysA==} + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@esbuild/freebsd-arm64@0.18.20: + resolution: {integrity: sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==} + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + requiresBuild: true + optional: true + + /@esbuild/freebsd-arm64@0.20.2: + resolution: {integrity: sha512-d3qI41G4SuLiCGCFGUrKsSeTXyWG6yem1KcGZVS+3FYlYhtNoNgYrWcvkOoaqMhwXSMrZRl69ArHsGJ9mYdbbw==} engines: {node: '>=12'} cpu: [arm64] os: [freebsd] requiresBuild: true + dev: true optional: true - /@esbuild/freebsd-x64/0.16.17: - resolution: {integrity: sha512-8ScTdNJl5idAKjH8zGAsN7RuWcyHG3BAvMNpKOBaqqR7EbUhhVHOqXRdL7oZvz8WNHL2pr5+eIT5c65kA6NHug==} + /@esbuild/freebsd-x64@0.18.20: + resolution: {integrity: sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==} engines: {node: '>=12'} cpu: [x64] os: [freebsd] requiresBuild: true optional: true - /@esbuild/linux-arm/0.16.17: - resolution: {integrity: sha512-iihzrWbD4gIT7j3caMzKb/RsFFHCwqqbrbH9SqUSRrdXkXaygSZCZg1FybsZz57Ju7N/SHEgPyaR0LZ8Zbe9gQ==} + /@esbuild/freebsd-x64@0.20.2: + resolution: {integrity: sha512-d+DipyvHRuqEeM5zDivKV1KuXn9WeRX6vqSqIDgwIfPQtwMP4jaDsQsDncjTDDsExT4lR/91OLjRo8bmC1e+Cw==} engines: {node: '>=12'} - cpu: [arm] + cpu: [x64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-arm64@0.18.20: + resolution: {integrity: sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==} + engines: {node: '>=12'} + cpu: [arm64] os: [linux] requiresBuild: true optional: true - /@esbuild/linux-arm64/0.16.17: - resolution: {integrity: sha512-7S8gJnSlqKGVJunnMCrXHU9Q8Q/tQIxk/xL8BqAP64wchPCTzuM6W3Ra8cIa1HIflAvDnNOt2jaL17vaW+1V0g==} + /@esbuild/linux-arm64@0.20.2: + resolution: {integrity: sha512-9pb6rBjGvTFNira2FLIWqDk/uaf42sSyLE8j1rnUpuzsODBq7FvpwHYZxQ/It/8b+QOS1RYfqgGFNLRI+qlq2A==} engines: {node: '>=12'} cpu: [arm64] os: [linux] requiresBuild: true + dev: true optional: true - /@esbuild/linux-ia32/0.16.17: - resolution: {integrity: sha512-kiX69+wcPAdgl3Lonh1VI7MBr16nktEvOfViszBSxygRQqSpzv7BffMKRPMFwzeJGPxcio0pdD3kYQGpqQ2SSg==} + /@esbuild/linux-arm@0.18.20: + resolution: {integrity: sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==} + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + requiresBuild: true + optional: true + + /@esbuild/linux-arm@0.20.2: + resolution: {integrity: sha512-VhLPeR8HTMPccbuWWcEUD1Az68TqaTYyj6nfE4QByZIQEQVWBB8vup8PpR7y1QHL3CpcF6xd5WVBU/+SBEvGTg==} + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-ia32@0.18.20: + resolution: {integrity: sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==} engines: {node: '>=12'} cpu: [ia32] os: [linux] requiresBuild: true optional: true - /@esbuild/linux-loong64/0.16.17: - resolution: {integrity: sha512-dTzNnQwembNDhd654cA4QhbS9uDdXC3TKqMJjgOWsC0yNCbpzfWoXdZvp0mY7HU6nzk5E0zpRGGx3qoQg8T2DQ==} + /@esbuild/linux-ia32@0.20.2: + resolution: {integrity: sha512-o10utieEkNPFDZFQm9CoP7Tvb33UutoJqg3qKf1PWVeeJhJw0Q347PxMvBgVVFgouYLGIhFYG0UGdBumROyiig==} + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-loong64@0.18.20: + resolution: {integrity: sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==} engines: {node: '>=12'} cpu: [loong64] os: [linux] requiresBuild: true optional: true - /@esbuild/linux-mips64el/0.16.17: - resolution: {integrity: sha512-ezbDkp2nDl0PfIUn0CsQ30kxfcLTlcx4Foz2kYv8qdC6ia2oX5Q3E/8m6lq84Dj/6b0FrkgD582fJMIfHhJfSw==} + /@esbuild/linux-loong64@0.20.2: + resolution: {integrity: sha512-PR7sp6R/UC4CFVomVINKJ80pMFlfDfMQMYynX7t1tNTeivQ6XdX5r2XovMmha/VjR1YN/HgHWsVcTRIMkymrgQ==} + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-mips64el@0.18.20: + resolution: {integrity: sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==} engines: {node: '>=12'} cpu: [mips64el] os: [linux] requiresBuild: true optional: true - /@esbuild/linux-ppc64/0.16.17: - resolution: {integrity: sha512-dzS678gYD1lJsW73zrFhDApLVdM3cUF2MvAa1D8K8KtcSKdLBPP4zZSLy6LFZ0jYqQdQ29bjAHJDgz0rVbLB3g==} + /@esbuild/linux-mips64el@0.20.2: + resolution: {integrity: sha512-4BlTqeutE/KnOiTG5Y6Sb/Hw6hsBOZapOVF6njAESHInhlQAghVVZL1ZpIctBOoTFbQyGW+LsVYZ8lSSB3wkjA==} + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-ppc64@0.18.20: + resolution: {integrity: sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + requiresBuild: true + optional: true + + /@esbuild/linux-ppc64@0.20.2: + resolution: {integrity: sha512-rD3KsaDprDcfajSKdn25ooz5J5/fWBylaaXkuotBDGnMnDP1Uv5DLAN/45qfnf3JDYyJv/ytGHQaziHUdyzaAg==} engines: {node: '>=12'} cpu: [ppc64] os: [linux] requiresBuild: true + dev: true optional: true - /@esbuild/linux-riscv64/0.16.17: - resolution: {integrity: sha512-ylNlVsxuFjZK8DQtNUwiMskh6nT0vI7kYl/4fZgV1llP5d6+HIeL/vmmm3jpuoo8+NuXjQVZxmKuhDApK0/cKw==} + /@esbuild/linux-riscv64@0.18.20: + resolution: {integrity: sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==} engines: {node: '>=12'} cpu: [riscv64] os: [linux] requiresBuild: true optional: true - /@esbuild/linux-s390x/0.16.17: - resolution: {integrity: sha512-gzy7nUTO4UA4oZ2wAMXPNBGTzZFP7mss3aKR2hH+/4UUkCOyqmjXiKpzGrY2TlEUhbbejzXVKKGazYcQTZWA/w==} + /@esbuild/linux-riscv64@0.20.2: + resolution: {integrity: sha512-snwmBKacKmwTMmhLlz/3aH1Q9T8v45bKYGE3j26TsaOVtjIag4wLfWSiZykXzXuE1kbCE+zJRmwp+ZbIHinnVg==} + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-s390x@0.18.20: + resolution: {integrity: sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==} engines: {node: '>=12'} cpu: [s390x] os: [linux] requiresBuild: true optional: true - /@esbuild/linux-x64/0.16.17: - resolution: {integrity: sha512-mdPjPxfnmoqhgpiEArqi4egmBAMYvaObgn4poorpUaqmvzzbvqbowRllQ+ZgzGVMGKaPkqUmPDOOFQRUFDmeUw==} + /@esbuild/linux-s390x@0.20.2: + resolution: {integrity: sha512-wcWISOobRWNm3cezm5HOZcYz1sKoHLd8VL1dl309DiixxVFoFe/o8HnwuIwn6sXre88Nwj+VwZUvJf4AFxkyrQ==} + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-x64@0.18.20: + resolution: {integrity: sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==} + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + requiresBuild: true + optional: true + + /@esbuild/linux-x64@0.20.2: + resolution: {integrity: sha512-1MdwI6OOTsfQfek8sLwgyjOXAu+wKhLEoaOLTjbijk6E2WONYpH9ZU2mNtR+lZ2B4uwr+usqGuVfFT9tMtGvGw==} engines: {node: '>=12'} cpu: [x64] os: [linux] requiresBuild: true + dev: true optional: true - /@esbuild/netbsd-x64/0.16.17: - resolution: {integrity: sha512-/PzmzD/zyAeTUsduZa32bn0ORug+Jd1EGGAUJvqfeixoEISYpGnAezN6lnJoskauoai0Jrs+XSyvDhppCPoKOA==} + /@esbuild/netbsd-x64@0.18.20: + resolution: {integrity: sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==} engines: {node: '>=12'} cpu: [x64] os: [netbsd] requiresBuild: true optional: true - /@esbuild/openbsd-x64/0.16.17: - resolution: {integrity: sha512-2yaWJhvxGEz2RiftSk0UObqJa/b+rIAjnODJgv2GbGGpRwAfpgzyrg1WLK8rqA24mfZa9GvpjLcBBg8JHkoodg==} + /@esbuild/netbsd-x64@0.20.2: + resolution: {integrity: sha512-K8/DhBxcVQkzYc43yJXDSyjlFeHQJBiowJ0uVL6Tor3jGQfSGHNNJcWxNbOI8v5k82prYqzPuwkzHt3J1T1iZQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/openbsd-x64@0.18.20: + resolution: {integrity: sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==} + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + requiresBuild: true + optional: true + + /@esbuild/openbsd-x64@0.20.2: + resolution: {integrity: sha512-eMpKlV0SThJmmJgiVyN9jTPJ2VBPquf6Kt/nAoo6DgHAoN57K15ZghiHaMvqjCye/uU4X5u3YSMgVBI1h3vKrQ==} engines: {node: '>=12'} cpu: [x64] os: [openbsd] requiresBuild: true + dev: true optional: true - /@esbuild/sunos-x64/0.16.17: - resolution: {integrity: sha512-xtVUiev38tN0R3g8VhRfN7Zl42YCJvyBhRKw1RJjwE1d2emWTVToPLNEQj/5Qxc6lVFATDiy6LjVHYhIPrLxzw==} + /@esbuild/sunos-x64@0.18.20: + resolution: {integrity: sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==} engines: {node: '>=12'} cpu: [x64] os: [sunos] requiresBuild: true optional: true - /@esbuild/win32-arm64/0.16.17: - resolution: {integrity: sha512-ga8+JqBDHY4b6fQAmOgtJJue36scANy4l/rL97W+0wYmijhxKetzZdKOJI7olaBaMhWt8Pac2McJdZLxXWUEQw==} + /@esbuild/sunos-x64@0.20.2: + resolution: {integrity: sha512-2UyFtRC6cXLyejf/YEld4Hajo7UHILetzE1vsRcGL3earZEW77JxrFjH4Ez2qaTiEfMgAXxfAZCm1fvM/G/o8w==} + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + requiresBuild: true + dev: true + optional: true + + /@esbuild/win32-arm64@0.18.20: + resolution: {integrity: sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==} engines: {node: '>=12'} cpu: [arm64] os: [win32] requiresBuild: true optional: true - /@esbuild/win32-ia32/0.16.17: - resolution: {integrity: sha512-WnsKaf46uSSF/sZhwnqE4L/F89AYNMiD4YtEcYekBt9Q7nj0DiId2XH2Ng2PHM54qi5oPrQ8luuzGszqi/veig==} + /@esbuild/win32-arm64@0.20.2: + resolution: {integrity: sha512-GRibxoawM9ZCnDxnP3usoUDO9vUkpAxIIZ6GQI+IlVmr5kP3zUq+l17xELTHMWTWzjxa2guPNyrpq1GWmPvcGQ==} + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@esbuild/win32-ia32@0.18.20: + resolution: {integrity: sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==} engines: {node: '>=12'} cpu: [ia32] os: [win32] requiresBuild: true optional: true - /@esbuild/win32-x64/0.16.17: - resolution: {integrity: sha512-y+EHuSchhL7FjHgvQL/0fnnFmO4T1bhvWANX6gcnqTjtnKWbTvUMCpGnv2+t+31d7RzyEAYAd4u2fnIhHL6N/Q==} + /@esbuild/win32-ia32@0.20.2: + resolution: {integrity: sha512-HfLOfn9YWmkSKRQqovpnITazdtquEW8/SoHW7pWpuEeguaZI4QnCRW6b+oZTztdBnZOS2hqJ6im/D5cPzBTTlQ==} + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@esbuild/win32-x64@0.18.20: + resolution: {integrity: sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + requiresBuild: true + optional: true + + /@esbuild/win32-x64@0.20.2: + resolution: {integrity: sha512-N49X4lJX27+l9jbLKSqZ6bKNjzQvHaT8IIFUy+YIqmXQdjYCToGWwOItDrfby14c78aDd5NHQl29xingXfCdLQ==} engines: {node: '>=12'} cpu: [x64] os: [win32] requiresBuild: true + dev: true optional: true - /@eslint/eslintrc/1.4.0: - resolution: {integrity: sha512-7yfvXy6MWLgWSFsLhz5yH3iQ52St8cdUY6FoGieKkRDVxuxmrNuUetIuu6cmjNWwniUHiWXjxCr5tTXDrbYS5A==} + /@eslint-community/eslint-utils@4.4.0(eslint@8.56.0): + resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 + dependencies: + eslint: 8.56.0 + eslint-visitor-keys: 3.4.3 + dev: true + + /@eslint-community/regexpp@4.10.0: + resolution: {integrity: sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==} + engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} + dev: true + + /@eslint/eslintrc@2.1.4: + resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: ajv: 6.12.6 - debug: 4.3.4 - espree: 9.4.1 - globals: 13.19.0 - ignore: 5.2.4 + debug: 4.3.4(supports-color@8.1.1) + espree: 9.6.1 + globals: 13.24.0 + ignore: 5.3.1 import-fresh: 3.3.0 js-yaml: 4.1.0 minimatch: 3.1.2 @@ -693,277 +1112,460 @@ packages: - supports-color dev: true - /@graphql-typed-document-node/core/3.1.1_graphql@16.6.0: - resolution: {integrity: sha512-NQ17ii0rK1b34VZonlmT2QMJFI70m0TRwbknO/ihlbatXyaktDhN/98vBiUU6kNBPljqGqyIrl2T4nY2RpFANg==} + /@eslint/js@8.56.0: + resolution: {integrity: sha512-gMsVel9D7f2HLkBma9VbtzZRehRogVRfbr++f06nL2vnCGCNlzOD+/MUov/F4p8myyAHspEhVobgjpX64q5m6A==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dev: true + + /@graphql-typed-document-node/core@3.2.0(graphql@16.6.0): + resolution: {integrity: sha512-mB9oAsNCm9aM3/SOv4YtBMqZbYj10R7dkq8byBqxGY/ncFwhf2oQzMV+LCRlWoDSEBJ3COiR1yeDvMtsoOsuFQ==} peerDependencies: - graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 + graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 dependencies: graphql: 16.6.0 dev: false - /@histoire/app/0.14.2_vite@4.1.4: - resolution: {integrity: sha512-mY91jH8UPFWYGLnTLbv5ntmly+Yd5etHDKV0+l+q/bRHaKrhGLOtJjr60wyqfxbZ6rDN2sjJAwNDEc6dozFqFw==} + /@histoire/app@0.16.5(vite@4.5.2): + resolution: {integrity: sha512-m+rCZnz6lnaIbVK1R9UBZFgU91/V1RnZqVaMq6KjUuatuxUUS1M4HgsFT5Y74Utltq0U3i0RuIb5h20z6M7nHg==} dependencies: - '@histoire/controls': 0.14.2 - '@histoire/shared': 0.14.2_vite@4.1.4 - '@histoire/vendors': 0.14.2 - '@types/flexsearch': 0.7.3 + '@histoire/controls': 0.16.5(vite@4.5.2) + '@histoire/shared': 0.16.5(vite@4.5.2) + '@histoire/vendors': 0.16.5 + '@types/flexsearch': 0.7.6 flexsearch: 0.7.21 shiki-es: 0.2.0 transitivePeerDependencies: - vite dev: true - /@histoire/controls/0.14.2: - resolution: {integrity: sha512-6pVyjwVxFLqsUb4stvXJ6BmXjr82tfWA4Gv0oipZcDB8zDxDhhx6ckuy+9l94W3BsQfH2ZaRruCv6dJUtqiFZQ==} + /@histoire/controls@0.16.5(vite@4.5.2): + resolution: {integrity: sha512-2Yng6fPbBOz9EMPb4arZfvnK4/SDoxA0jYaqjtuby/WDFXk/Lvp3je8xs8PbPAzXralDDSqCu02cfBQy4bUQqg==} dependencies: - '@codemirror/commands': 6.1.2 + '@codemirror/commands': 6.3.3 '@codemirror/lang-json': 6.0.1 - '@codemirror/language': 6.3.2 - '@codemirror/lint': 6.1.0 - '@codemirror/state': 6.1.4 - '@codemirror/theme-one-dark': 6.1.0 - '@codemirror/view': 6.7.1 - '@histoire/vendors': 0.14.2 + '@codemirror/language': 6.10.1 + '@codemirror/lint': 6.5.0 + '@codemirror/state': 6.4.0 + '@codemirror/theme-one-dark': 6.1.2 + '@codemirror/view': 6.24.0 + '@histoire/shared': 0.16.5(vite@4.5.2) + '@histoire/vendors': 0.16.5 + transitivePeerDependencies: + - vite dev: true - /@histoire/plugin-vue/0.14.2_izdcwy4z5nvkkqrxf5i2hzuchi: - resolution: {integrity: sha512-pa56RTkNkVXKNnXEeQWEbAO0Yh7mHZRtfcPjHjZYvP0DLThD1WjO+WGspGbsK5Liaog3n3AOZYcqEmw6mSOmmw==} + /@histoire/plugin-vue@0.16.5(histoire@0.16.5)(vite@4.5.2)(vue@3.4.19): + resolution: {integrity: sha512-MT11ncSwjsnTCABcmwAdrlKbgisZv2Mh4LFfqZlN3I5LyaYOcqN/2jwEERWpZ+oZYYx3SwLnB0wTWoubRpOKjA==} peerDependencies: - histoire: ^0.14.2 + histoire: ^0.16.5 vue: ^3.2.47 dependencies: - '@histoire/controls': 0.14.2 - '@histoire/shared': 0.14.2_vite@4.1.4 - '@histoire/vendors': 0.14.2 + '@histoire/controls': 0.16.5(vite@4.5.2) + '@histoire/shared': 0.16.5(vite@4.5.2) + '@histoire/vendors': 0.16.5 change-case: 4.1.2 - globby: 13.1.3 - histoire: 0.14.2_vite@4.1.4 - launch-editor: 2.6.0 + globby: 13.2.2 + histoire: 0.16.5(vite@4.5.2) + launch-editor: 2.6.1 pathe: 0.2.0 - vue: 3.2.47 + vue: 3.4.19(typescript@5.3.3) transitivePeerDependencies: - vite dev: true - /@histoire/shared/0.14.2_vite@4.1.4: - resolution: {integrity: sha512-Q7g8Yr8F2lb+/fnQExJYn5fLEqHgHtK47QqsiAWf6xX+v10r/JYLZUnI28jwEga5tLQTVTl6HEJ+yHqvJNFIiw==} + /@histoire/shared@0.16.5(vite@4.5.2): + resolution: {integrity: sha512-iLz/y5SiKERZGK4Ux2xXaYi89w2+ecyYTPHi62YitzfHMp7YXYi8Bk48T2NfU1HbZIi1NzbHoY8c4F6fiUG2Ag==} peerDependencies: vite: ^2.9.0 || ^3.0.0 || ^4.0.0 dependencies: - '@histoire/vendors': 0.14.2 + '@histoire/vendors': 0.16.5 '@types/fs-extra': 9.0.13 '@types/markdown-it': 12.2.3 - chokidar: 3.5.3 + chokidar: 3.6.0 pathe: 0.2.0 picocolors: 1.0.0 - vite: 4.1.4 + vite: 4.5.2 dev: true - /@histoire/vendors/0.14.2: - resolution: {integrity: sha512-x8B8KxHXSC8YdMAHJtJBBGQYXHP0jcxDxnytwrZOxoCtzwOYghHJNJ8wPfwboKNE0E3ot6vJSilZahwGVLX+nw==} + /@histoire/vendors@0.16.5: + resolution: {integrity: sha512-25a90vugBz3KH3VzuddxuKeAjBQ1+osXQy2QICQO0kUXAtGHNj4u8T4iG5AgQD9CQXf6dc5+pnPoFZADHlW9VQ==} dev: true - /@humanwhocodes/config-array/0.11.8: - resolution: {integrity: sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==} + /@humanwhocodes/config-array@0.11.14: + resolution: {integrity: sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==} engines: {node: '>=10.10.0'} dependencies: - '@humanwhocodes/object-schema': 1.2.1 - debug: 4.3.4 + '@humanwhocodes/object-schema': 2.0.2 + debug: 4.3.4(supports-color@8.1.1) minimatch: 3.1.2 transitivePeerDependencies: - supports-color dev: true - /@humanwhocodes/module-importer/1.0.1: + /@humanwhocodes/module-importer@1.0.1: resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} engines: {node: '>=12.22'} dev: true - /@humanwhocodes/object-schema/1.2.1: - resolution: {integrity: sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==} + /@humanwhocodes/object-schema@2.0.2: + resolution: {integrity: sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw==} dev: true - /@istanbuljs/schema/0.1.3: + /@isaacs/cliui@8.0.2: + resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} + engines: {node: '>=12'} + dependencies: + string-width: 5.1.2 + string-width-cjs: /string-width@4.2.3 + strip-ansi: 7.1.0 + strip-ansi-cjs: /strip-ansi@6.0.1 + wrap-ansi: 8.1.0 + wrap-ansi-cjs: /wrap-ansi@7.0.0 + dev: true + + /@istanbuljs/schema@0.1.3: resolution: {integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==} engines: {node: '>=8'} dev: true - /@jridgewell/resolve-uri/3.1.0: - resolution: {integrity: sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==} + /@jest/schemas@29.6.3: + resolution: {integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@sinclair/typebox': 0.27.8 + dev: true + + /@jridgewell/gen-mapping@0.3.3: + resolution: {integrity: sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==} engines: {node: '>=6.0.0'} + dependencies: + '@jridgewell/set-array': 1.1.2 + '@jridgewell/sourcemap-codec': 1.4.15 + '@jridgewell/trace-mapping': 0.3.22 + dev: true + + /@jridgewell/resolve-uri@3.1.1: + resolution: {integrity: sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==} + engines: {node: '>=6.0.0'} + dev: true + + /@jridgewell/set-array@1.1.2: + resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==} + engines: {node: '>=6.0.0'} + dev: true + + /@jridgewell/sourcemap-codec@1.4.15: + resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} + + /@jridgewell/trace-mapping@0.3.22: + resolution: {integrity: sha512-Wf963MzWtA2sjrNt+g18IAln9lKnlRp+K2eH4jjIoF1wYeq3aMREpG09xhlhdzS0EjwU7qmUJYangWa+151vZw==} + dependencies: + '@jridgewell/resolve-uri': 3.1.1 + '@jridgewell/sourcemap-codec': 1.4.15 + dev: true + + /@jridgewell/trace-mapping@0.3.25: + resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} + dependencies: + '@jridgewell/resolve-uri': 3.1.1 + '@jridgewell/sourcemap-codec': 1.4.15 + dev: true + + /@lezer/common@1.2.1: + resolution: {integrity: sha512-yemX0ZD2xS/73llMZIK6KplkjIjf2EvAHcinDi/TfJ9hS25G0388+ClHt6/3but0oOxinTcQHJLDXh6w1crzFQ==} + dev: true + + /@lezer/highlight@1.2.0: + resolution: {integrity: sha512-WrS5Mw51sGrpqjlh3d4/fOwpEV2Hd3YOkp9DBt4k8XZQcoTHZFB7sx030A6OcahF4J1nDQAa3jXlTVVYH50IFA==} + dependencies: + '@lezer/common': 1.2.1 + dev: true + + /@lezer/json@1.0.2: + resolution: {integrity: sha512-xHT2P4S5eeCYECyKNPhr4cbEL9tc8w83SPwRC373o9uEdrvGKTZoJVAGxpOsZckMlEh9W23Pc72ew918RWQOBQ==} + dependencies: + '@lezer/common': 1.2.1 + '@lezer/highlight': 1.2.0 + '@lezer/lr': 1.4.0 + dev: true + + /@lezer/lr@1.4.0: + resolution: {integrity: sha512-Wst46p51km8gH0ZUmeNrtpRYmdlRHUpN1DQd3GFAyKANi8WVz8c2jHYTf1CVScFaCjQw1iO3ZZdqGDxQPRErTg==} + dependencies: + '@lezer/common': 1.2.1 + dev: true + + /@miragejs/graphql@0.1.13: + resolution: {integrity: sha512-R5V/MMHDPcVMW0CmCVgY5FDsMMklEjJ+mk34o8VGAJSDpkcz5/QS+dUk9xQbFV2XLgyZgVenC46xkPLmLN97Yg==} + engines: {node: 6.* || 8.* || >= 10.*} + dependencies: + graphql: 15.8.0 + miragejs: 0.1.48 + + /@miragejs/pretender-node-polyfill@0.1.2: + resolution: {integrity: sha512-M/BexG/p05C5lFfMunxo/QcgIJnMT2vDVCd00wNqK2ImZONIlEETZwWJu1QtLxtmYlSHlCFl3JNzp0tLe7OJ5g==} + + /@monaco-editor/loader@1.3.3(monaco-editor@0.34.1): + resolution: {integrity: sha512-6KKF4CTzcJiS8BJwtxtfyYt9shBiEv32ateQ9T4UVogwn4HM/uPo9iJd2Dmbkpz8CM6Y0PDUpjnZzCwC+eYo2Q==} + peerDependencies: + monaco-editor: '>= 0.21.0 < 1' + dependencies: + monaco-editor: 0.34.1 + state-local: 1.0.7 + dev: false + + /@nodelib/fs.scandir@2.1.5: + resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} + engines: {node: '>= 8'} + dependencies: + '@nodelib/fs.stat': 2.0.5 + run-parallel: 1.2.0 + dev: true + + /@nodelib/fs.stat@2.0.5: + resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} + engines: {node: '>= 8'} + dev: true + + /@nodelib/fs.walk@1.2.8: + resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} + engines: {node: '>= 8'} + dependencies: + '@nodelib/fs.scandir': 2.1.5 + fastq: 1.17.1 + dev: true + + /@one-ini/wasm@0.1.1: + resolution: {integrity: sha512-XuySG1E38YScSJoMlqovLru4KTUNSjgVTIjyh7qMX6aNN5HY5Ct5LhRJdxO79JtTzKfzV/bnWpz+zquYrISsvw==} + dev: true + + /@pkgjs/parseargs@0.11.0: + resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} + engines: {node: '>=14'} + requiresBuild: true + dev: true + optional: true + + /@polka/url@1.0.0-next.24: + resolution: {integrity: sha512-2LuNTFBIO0m7kKIQvvPHN6UE63VjpmL9rnEEaOOaiSPbZK+zUOYIzBAWcED+3XYzhYsd/0mD57VdxAEqqV52CQ==} + dev: true + + /@rollup/rollup-android-arm-eabi@4.14.3: + resolution: {integrity: sha512-X9alQ3XM6I9IlSlmC8ddAvMSyG1WuHk5oUnXGw+yUBs3BFoTizmG1La/Gr8fVJvDWAq+zlYTZ9DBgrlKRVY06g==} + cpu: [arm] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-android-arm64@4.14.3: + resolution: {integrity: sha512-eQK5JIi+POhFpzk+LnjKIy4Ks+pwJ+NXmPxOCSvOKSNRPONzKuUvWE+P9JxGZVxrtzm6BAYMaL50FFuPe0oWMQ==} + cpu: [arm64] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-darwin-arm64@4.14.3: + resolution: {integrity: sha512-Od4vE6f6CTT53yM1jgcLqNfItTsLt5zE46fdPaEmeFHvPs5SjZYlLpHrSiHEKR1+HdRfxuzXHjDOIxQyC3ptBA==} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-darwin-x64@4.14.3: + resolution: {integrity: sha512-0IMAO21axJeNIrvS9lSe/PGthc8ZUS+zC53O0VhF5gMxfmcKAP4ESkKOCwEi6u2asUrt4mQv2rjY8QseIEb1aw==} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-linux-arm-gnueabihf@4.14.3: + resolution: {integrity: sha512-ge2DC7tHRHa3caVEoSbPRJpq7azhG+xYsd6u2MEnJ6XzPSzQsTKyXvh6iWjXRf7Rt9ykIUWHtl0Uz3T6yXPpKw==} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-linux-arm-musleabihf@4.14.3: + resolution: {integrity: sha512-ljcuiDI4V3ySuc7eSk4lQ9wU8J8r8KrOUvB2U+TtK0TiW6OFDmJ+DdIjjwZHIw9CNxzbmXY39wwpzYuFDwNXuw==} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-linux-arm64-gnu@4.14.3: + resolution: {integrity: sha512-Eci2us9VTHm1eSyn5/eEpaC7eP/mp5n46gTRB3Aar3BgSvDQGJZuicyq6TsH4HngNBgVqC5sDYxOzTExSU+NjA==} + cpu: [arm64] + os: [linux] + requiresBuild: true dev: true + optional: true - /@jridgewell/sourcemap-codec/1.4.14: - resolution: {integrity: sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==} + /@rollup/rollup-linux-arm64-musl@4.14.3: + resolution: {integrity: sha512-UrBoMLCq4E92/LCqlh+blpqMz5h1tJttPIniwUgOFJyjWI1qrtrDhhpHPuFxULlUmjFHfloWdixtDhSxJt5iKw==} + cpu: [arm64] + os: [linux] + requiresBuild: true dev: true + optional: true - /@jridgewell/trace-mapping/0.3.17: - resolution: {integrity: sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==} - dependencies: - '@jridgewell/resolve-uri': 3.1.0 - '@jridgewell/sourcemap-codec': 1.4.14 + /@rollup/rollup-linux-powerpc64le-gnu@4.14.3: + resolution: {integrity: sha512-5aRjvsS8q1nWN8AoRfrq5+9IflC3P1leMoy4r2WjXyFqf3qcqsxRCfxtZIV58tCxd+Yv7WELPcO9mY9aeQyAmw==} + cpu: [ppc64] + os: [linux] + requiresBuild: true dev: true + optional: true - /@lezer/common/1.0.2: - resolution: {integrity: sha512-SVgiGtMnMnW3ActR8SXgsDhw7a0w0ChHSYAyAUxxrOiJ1OqYWEKk/xJd84tTSPo1mo6DXLObAJALNnd0Hrv7Ng==} + /@rollup/rollup-linux-riscv64-gnu@4.14.3: + resolution: {integrity: sha512-sk/Qh1j2/RJSX7FhEpJn8n0ndxy/uf0kI/9Zc4b1ELhqULVdTfN6HL31CDaTChiBAOgLcsJ1sgVZjWv8XNEsAQ==} + cpu: [riscv64] + os: [linux] + requiresBuild: true dev: true + optional: true - /@lezer/highlight/1.1.3: - resolution: {integrity: sha512-3vLKLPThO4td43lYRBygmMY18JN3CPh9w+XS2j8WC30vR4yZeFG4z1iFe4jXE43NtGqe//zHW5q8ENLlHvz9gw==} - dependencies: - '@lezer/common': 1.0.2 + /@rollup/rollup-linux-s390x-gnu@4.14.3: + resolution: {integrity: sha512-jOO/PEaDitOmY9TgkxF/TQIjXySQe5KVYB57H/8LRP/ux0ZoO8cSHCX17asMSv3ruwslXW/TLBcxyaUzGRHcqg==} + cpu: [s390x] + os: [linux] + requiresBuild: true dev: true + optional: true - /@lezer/json/1.0.0: - resolution: {integrity: sha512-zbAuUY09RBzCoCA3lJ1+ypKw5WSNvLqGMtasdW6HvVOqZoCpPr8eWrsGnOVWGKGn8Rh21FnrKRVlJXrGAVUqRw==} - dependencies: - '@lezer/highlight': 1.1.3 - '@lezer/lr': 1.2.5 + /@rollup/rollup-linux-x64-gnu@4.14.3: + resolution: {integrity: sha512-8ybV4Xjy59xLMyWo3GCfEGqtKV5M5gCSrZlxkPGvEPCGDLNla7v48S662HSGwRd6/2cSneMQWiv+QzcttLrrOA==} + cpu: [x64] + os: [linux] + requiresBuild: true dev: true + optional: true - /@lezer/lr/1.2.5: - resolution: {integrity: sha512-f9319YG1A/3ysgUE3bqCHEd7g+3ZZ71MWlwEc42mpnLVYXgfJJgtu1XAyBB4Kz8FmqmnFe9caopDqKeMMMAU6g==} - dependencies: - '@lezer/common': 1.0.2 + /@rollup/rollup-linux-x64-musl@4.14.3: + resolution: {integrity: sha512-s+xf1I46trOY10OqAtZ5Rm6lzHre/UiLA1J2uOhCFXWkbZrJRkYBPO6FhvGfHmdtQ3Bx793MNa7LvoWFAm93bg==} + cpu: [x64] + os: [linux] + requiresBuild: true dev: true + optional: true - /@miragejs/graphql/0.1.13: - resolution: {integrity: sha512-R5V/MMHDPcVMW0CmCVgY5FDsMMklEjJ+mk34o8VGAJSDpkcz5/QS+dUk9xQbFV2XLgyZgVenC46xkPLmLN97Yg==} - engines: {node: 6.* || 8.* || >= 10.*} - dependencies: - graphql: 15.8.0 - miragejs: 0.1.47 - - /@miragejs/pretender-node-polyfill/0.1.2: - resolution: {integrity: sha512-M/BexG/p05C5lFfMunxo/QcgIJnMT2vDVCd00wNqK2ImZONIlEETZwWJu1QtLxtmYlSHlCFl3JNzp0tLe7OJ5g==} - - /@monaco-editor/loader/1.3.2_monaco-editor@0.34.1: - resolution: {integrity: sha512-BTDbpHl3e47r3AAtpfVFTlAi7WXv4UQ/xZmz8atKl4q7epQV5e7+JbigFDViWF71VBi4IIBdcWP57Hj+OWuc9g==} - peerDependencies: - monaco-editor: '>= 0.21.0 < 1' - dependencies: - monaco-editor: 0.34.1 - state-local: 1.0.7 - dev: false - - /@nodelib/fs.scandir/2.1.5: - resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} - engines: {node: '>= 8'} - dependencies: - '@nodelib/fs.stat': 2.0.5 - run-parallel: 1.2.0 + /@rollup/rollup-win32-arm64-msvc@4.14.3: + resolution: {integrity: sha512-+4h2WrGOYsOumDQ5S2sYNyhVfrue+9tc9XcLWLh+Kw3UOxAvrfOrSMFon60KspcDdytkNDh7K2Vs6eMaYImAZg==} + cpu: [arm64] + os: [win32] + requiresBuild: true dev: true + optional: true - /@nodelib/fs.stat/2.0.5: - resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} - engines: {node: '>= 8'} + /@rollup/rollup-win32-ia32-msvc@4.14.3: + resolution: {integrity: sha512-T1l7y/bCeL/kUwh9OD4PQT4aM7Bq43vX05htPJJ46RTI4r5KNt6qJRzAfNfM+OYMNEVBWQzR2Gyk+FXLZfogGw==} + cpu: [ia32] + os: [win32] + requiresBuild: true dev: true + optional: true - /@nodelib/fs.walk/1.2.8: - resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} - engines: {node: '>= 8'} - dependencies: - '@nodelib/fs.scandir': 2.1.5 - fastq: 1.14.0 + /@rollup/rollup-win32-x64-msvc@4.14.3: + resolution: {integrity: sha512-/BypzV0H1y1HzgYpxqRaXGBRqfodgoBBCcsrujT6QRcakDQdfU+Lq9PENPh5jB4I44YWq+0C2eHsHya+nZY1sA==} + cpu: [x64] + os: [win32] + requiresBuild: true dev: true + optional: true - /@polka/url/1.0.0-next.21: - resolution: {integrity: sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g==} + /@sinclair/typebox@0.27.8: + resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} dev: true - /@tootallnate/once/2.0.0: + /@tootallnate/once@2.0.0: resolution: {integrity: sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==} engines: {node: '>= 10'} dev: true - /@types/chai-subset/1.3.3: - resolution: {integrity: sha512-frBecisrNGz+F4T6bcc+NLeolfiojh5FxW2klu669+8BARtyQv2C/GkNW6FUodVe4BroGMP/wER/YDGc7rEllw==} - dependencies: - '@types/chai': 4.3.4 - dev: true - - /@types/chai/4.3.4: - resolution: {integrity: sha512-KnRanxnpfpjUTqTCXslZSEdLfXExwgNxYPdiO2WGUj8+HDjFi8R3k5RVKPeSCzLjCcshCAtVO2QBbVuAV4kTnw==} + /@types/estree@1.0.5: + resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} dev: true - /@types/flexsearch/0.7.3: - resolution: {integrity: sha512-HXwADeHEP4exXkCIwy2n1+i0f1ilP1ETQOH5KDOugjkTFZPntWo0Gr8stZOaebkxsdx+k0X/K6obU/+it07ocg==} + /@types/flexsearch@0.7.6: + resolution: {integrity: sha512-H5IXcRn96/gaDmo+rDl2aJuIJsob8dgOXDqf8K0t8rWZd1AFNaaspmRsElESiU+EWE33qfbFPgI0OC/B1g9FCA==} dev: true - /@types/fs-extra/9.0.13: + /@types/fs-extra@9.0.13: resolution: {integrity: sha512-nEnwB++1u5lVDM2UI4c1+5R+FYaKfaAzS4OococimjVm3nQw3TuzH5UNsocrcTBbhnerblyHj4A49qXbIiZdpA==} dependencies: - '@types/node': 18.11.17 + '@types/node': 20.11.17 dev: true - /@types/graphql/14.5.0: + /@types/graphql@14.5.0: resolution: {integrity: sha512-MOkzsEp1Jk5bXuAsHsUi6BVv0zCO+7/2PTiZMXWDSsMXvNU6w/PLMQT2vHn8hy2i0JqojPz1Sz6rsFjHtsU0lA==} deprecated: This is a stub types definition. graphql provides its own type definitions, so you do not need this installed. dependencies: graphql: 16.6.0 dev: true - /@types/istanbul-lib-coverage/2.0.4: - resolution: {integrity: sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==} - dev: true - - /@types/json-schema/7.0.11: - resolution: {integrity: sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==} + /@types/json-schema@7.0.15: + resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} dev: true - /@types/linkify-it/3.0.2: - resolution: {integrity: sha512-HZQYqbiFVWufzCwexrvh694SOim8z2d+xJl5UNamcvQFejLY/2YUtzXHYi3cHdI7PMlS8ejH2slRAOJQ32aNbA==} + /@types/linkify-it@3.0.5: + resolution: {integrity: sha512-yg6E+u0/+Zjva+buc3EIb+29XEg4wltq7cSmd4Uc2EE/1nUVmxyzpX6gUXD0V8jIrG0r7YeOGVIbYRkxeooCtw==} dev: true - /@types/markdown-it/12.2.3: + /@types/markdown-it@12.2.3: resolution: {integrity: sha512-GKMHFfv3458yYy+v/N8gjufHO6MSZKCOXpZc5GXIWWy8uldwfmPn98vp81gZ5f9SVw8YYBctgfJ22a2d7AOMeQ==} dependencies: - '@types/linkify-it': 3.0.2 - '@types/mdurl': 1.0.2 + '@types/linkify-it': 3.0.5 + '@types/mdurl': 1.0.5 dev: true - /@types/mdurl/1.0.2: - resolution: {integrity: sha512-eC4U9MlIcu2q0KQmXszyn5Akca/0jrQmwDRgpAMJai7qBWq4amIQhZyNau4VYGtCeALvW1/NtjzJJ567aZxfKA==} + /@types/mdurl@1.0.5: + resolution: {integrity: sha512-6L6VymKTzYSrEf4Nev4Xa1LCHKrlTlYCBMTlQKFuddo1CvQcE52I0mwfOJayueUC7MJuXOeHTcIU683lzd0cUA==} dev: true - /@types/node/14.18.35: - resolution: {integrity: sha512-2ATO8pfhG1kDvw4Lc4C0GXIMSQFFJBCo/R1fSgTwmUlq5oy95LXyjDQinsRVgQY6gp6ghh3H91wk9ES5/5C+Tw==} + /@types/node@16.18.80: + resolution: {integrity: sha512-vFxJ1Iyl7A0+xB0uW1r1v504yItKZLdqg/VZELUZ4H02U0bXAgBisSQ8Erf0DMruNFz9ggoiEv6T8Ll9bTg8Jw==} dev: true - /@types/node/18.11.17: - resolution: {integrity: sha512-HJSUJmni4BeDHhfzn6nF0sVmd1SMezP7/4F0Lq+aXzmp2xm9O7WXrUtHW/CHlYVtZUbByEvWidHqRtcJXGF2Ng==} + /@types/node@20.11.17: + resolution: {integrity: sha512-QmgQZGWu1Yw9TDyAP9ZzpFJKynYNeOvwMJmaxABfieQoVoiVOS6MN1WSpqpRcbeA5+RW82kraAVxCCJg+780Qw==} + dependencies: + undici-types: 5.26.5 dev: true - /@types/semver/7.3.13: - resolution: {integrity: sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw==} + /@types/semver@7.5.7: + resolution: {integrity: sha512-/wdoPq1QqkSj9/QOeKkFquEuPzQbHTWAMPH/PaUMB+JuR31lXhlWXRZ52IpfDYVlDOUBvX09uBrPwxGT1hjNBg==} dev: true - /@types/sinonjs__fake-timers/8.1.1: + /@types/sinonjs__fake-timers@8.1.1: resolution: {integrity: sha512-0kSuKjAS0TrGLJ0M/+8MaFkGsQhZpB6pxOmvS3K8FYI72K//YmdfoW9X2qPsAKh1mkwxGD5zib9s1FIFed6E8g==} dev: true - /@types/sizzle/2.3.3: - resolution: {integrity: sha512-JYM8x9EGF163bEyhdJBpR2QX1R5naCJHC8ucJylJ3w9/CVBaskdQ8WqBf8MmQrd1kRvp/a4TS8HJ+bxzR7ZJYQ==} + /@types/sizzle@2.3.8: + resolution: {integrity: sha512-0vWLNK2D5MT9dg0iOo8GlKguPAU02QjmZitPEsXRuJXU/OGIOt9vT9Fc26wtYuavLxtO45v9PGleoL9Z0k1LHg==} dev: true - /@types/uuid/9.0.0: - resolution: {integrity: sha512-kr90f+ERiQtKWMz5rP32ltJ/BtULDI5RVO0uavn1HQUOwjx0R1h0rnDYNL0CepF1zL5bSY6FISAfd9tOdDhU5Q==} + /@types/uuid@9.0.8: + resolution: {integrity: sha512-jg+97EGIcY9AGHJJRaaPVgetKDsrTgbRjQ5Msgjh/DQKEFl0DtyRr/VCOyD1T2R1MNeWPK/u7JoGhlDZnKBAfA==} dev: true - /@types/web-bluetooth/0.0.16: + /@types/web-bluetooth@0.0.16: resolution: {integrity: sha512-oh8q2Zc32S6gd/j50GowEjKLoOVOwHP/bWVjKJInBwQqdOYMdPrf1oVlelTlyfFK3CKxL1uahMDAr+vy8T7yMQ==} - /@types/yauzl/2.10.0: - resolution: {integrity: sha512-Cn6WYCm0tXv8p6k+A8PvbDG763EDpBoTzHdA+Q/MF6H3sapGjCm9NzoaJncJS9tUKSuCoDs9XHxYYsQDgxR6kw==} + /@types/yauzl@2.10.3: + resolution: {integrity: sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==} requiresBuild: true dependencies: - '@types/node': 18.11.17 + '@types/node': 16.18.80 dev: true optional: true - /@typescript-eslint/eslint-plugin/5.47.0_ncmi6noazr3nzas7jxykisekym: - resolution: {integrity: sha512-AHZtlXAMGkDmyLuLZsRpH3p4G/1iARIwc/T0vIem2YB+xW6pZaXYXzCBnZSF/5fdM97R9QqZWZ+h3iW10XgevQ==} + /@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0)(eslint@8.56.0)(typescript@5.3.3): + resolution: {integrity: sha512-TiZzBSJja/LbhNPvk6yc0JrX9XqhQ0hdh6M2svYfsHGejaKFIAGd9MQ+ERIMzLGlN/kZoYIgdxFV0PuljTKXag==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: '@typescript-eslint/parser': ^5.0.0 @@ -973,24 +1575,25 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/parser': 5.47.0_lzzuuodtsqwxnvqeq4g4likcqa - '@typescript-eslint/scope-manager': 5.47.0 - '@typescript-eslint/type-utils': 5.47.0_lzzuuodtsqwxnvqeq4g4likcqa - '@typescript-eslint/utils': 5.47.0_lzzuuodtsqwxnvqeq4g4likcqa - debug: 4.3.4 - eslint: 8.30.0 - ignore: 5.2.4 + '@eslint-community/regexpp': 4.10.0 + '@typescript-eslint/parser': 5.62.0(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/scope-manager': 5.62.0 + '@typescript-eslint/type-utils': 5.62.0(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/utils': 5.62.0(eslint@8.56.0)(typescript@5.3.3) + debug: 4.3.4(supports-color@8.1.1) + eslint: 8.56.0 + graphemer: 1.4.0 + ignore: 5.3.1 natural-compare-lite: 1.4.0 - regexpp: 3.2.0 - semver: 7.3.8 - tsutils: 3.21.0_typescript@4.9.4 - typescript: 4.9.4 + semver: 7.6.0 + tsutils: 3.21.0(typescript@5.3.3) + typescript: 5.3.3 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/parser/5.47.0_lzzuuodtsqwxnvqeq4g4likcqa: - resolution: {integrity: sha512-udPU4ckK+R1JWCGdQC4Qa27NtBg7w020ffHqGyAK8pAgOVuNw7YaKXGChk+udh+iiGIJf6/E/0xhVXyPAbsczw==} + /@typescript-eslint/parser@5.62.0(eslint@8.56.0)(typescript@5.3.3): + resolution: {integrity: sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 @@ -999,26 +1602,26 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/scope-manager': 5.47.0 - '@typescript-eslint/types': 5.47.0 - '@typescript-eslint/typescript-estree': 5.47.0_typescript@4.9.4 - debug: 4.3.4 - eslint: 8.30.0 - typescript: 4.9.4 + '@typescript-eslint/scope-manager': 5.62.0 + '@typescript-eslint/types': 5.62.0 + '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.3.3) + debug: 4.3.4(supports-color@8.1.1) + eslint: 8.56.0 + typescript: 5.3.3 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/scope-manager/5.47.0: - resolution: {integrity: sha512-dvJab4bFf7JVvjPuh3sfBUWsiD73aiftKBpWSfi3sUkysDQ4W8x+ZcFpNp7Kgv0weldhpmMOZBjx1wKN8uWvAw==} + /@typescript-eslint/scope-manager@5.62.0: + resolution: {integrity: sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: - '@typescript-eslint/types': 5.47.0 - '@typescript-eslint/visitor-keys': 5.47.0 + '@typescript-eslint/types': 5.62.0 + '@typescript-eslint/visitor-keys': 5.62.0 dev: true - /@typescript-eslint/type-utils/5.47.0_lzzuuodtsqwxnvqeq4g4likcqa: - resolution: {integrity: sha512-1J+DFFrYoDUXQE1b7QjrNGARZE6uVhBqIvdaXTe5IN+NmEyD68qXR1qX1g2u4voA+nCaelQyG8w30SAOihhEYg==} + /@typescript-eslint/type-utils@5.62.0(eslint@8.56.0)(typescript@5.3.3): + resolution: {integrity: sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: '*' @@ -1027,23 +1630,23 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/typescript-estree': 5.47.0_typescript@4.9.4 - '@typescript-eslint/utils': 5.47.0_lzzuuodtsqwxnvqeq4g4likcqa - debug: 4.3.4 - eslint: 8.30.0 - tsutils: 3.21.0_typescript@4.9.4 - typescript: 4.9.4 + '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.3.3) + '@typescript-eslint/utils': 5.62.0(eslint@8.56.0)(typescript@5.3.3) + debug: 4.3.4(supports-color@8.1.1) + eslint: 8.56.0 + tsutils: 3.21.0(typescript@5.3.3) + typescript: 5.3.3 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/types/5.47.0: - resolution: {integrity: sha512-eslFG0Qy8wpGzDdYKu58CEr3WLkjwC5Usa6XbuV89ce/yN5RITLe1O8e+WFEuxnfftHiJImkkOBADj58ahRxSg==} + /@typescript-eslint/types@5.62.0: + resolution: {integrity: sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /@typescript-eslint/typescript-estree/5.47.0_typescript@4.9.4: - resolution: {integrity: sha512-LxfKCG4bsRGq60Sqqu+34QT5qT2TEAHvSCCJ321uBWywgE2dS0LKcu5u+3sMGo+Vy9UmLOhdTw5JHzePV/1y4Q==} + /@typescript-eslint/typescript-estree@5.62.0(typescript@5.3.3): + resolution: {integrity: sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: typescript: '*' @@ -1051,316 +1654,299 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/types': 5.47.0 - '@typescript-eslint/visitor-keys': 5.47.0 - debug: 4.3.4 + '@typescript-eslint/types': 5.62.0 + '@typescript-eslint/visitor-keys': 5.62.0 + debug: 4.3.4(supports-color@8.1.1) globby: 11.1.0 is-glob: 4.0.3 - semver: 7.3.8 - tsutils: 3.21.0_typescript@4.9.4 - typescript: 4.9.4 + semver: 7.6.0 + tsutils: 3.21.0(typescript@5.3.3) + typescript: 5.3.3 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/utils/5.47.0_lzzuuodtsqwxnvqeq4g4likcqa: - resolution: {integrity: sha512-U9xcc0N7xINrCdGVPwABjbAKqx4GK67xuMV87toI+HUqgXj26m6RBp9UshEXcTrgCkdGYFzgKLt8kxu49RilDw==} + /@typescript-eslint/utils@5.62.0(eslint@8.56.0)(typescript@5.3.3): + resolution: {integrity: sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: - '@types/json-schema': 7.0.11 - '@types/semver': 7.3.13 - '@typescript-eslint/scope-manager': 5.47.0 - '@typescript-eslint/types': 5.47.0 - '@typescript-eslint/typescript-estree': 5.47.0_typescript@4.9.4 - eslint: 8.30.0 + '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0) + '@types/json-schema': 7.0.15 + '@types/semver': 7.5.7 + '@typescript-eslint/scope-manager': 5.62.0 + '@typescript-eslint/types': 5.62.0 + '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.3.3) + eslint: 8.56.0 eslint-scope: 5.1.1 - eslint-utils: 3.0.0_eslint@8.30.0 - semver: 7.3.8 + semver: 7.6.0 transitivePeerDependencies: - supports-color - typescript dev: true - /@typescript-eslint/visitor-keys/5.47.0: - resolution: {integrity: sha512-ByPi5iMa6QqDXe/GmT/hR6MZtVPi0SqMQPDx15FczCBXJo/7M8T88xReOALAfpBLm+zxpPfmhuEvPb577JRAEg==} + /@typescript-eslint/visitor-keys@5.62.0: + resolution: {integrity: sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: - '@typescript-eslint/types': 5.47.0 - eslint-visitor-keys: 3.3.0 + '@typescript-eslint/types': 5.62.0 + eslint-visitor-keys: 3.4.3 dev: true - /@ungap/structured-clone/1.0.2: - resolution: {integrity: sha512-06PHwE0K24Wi8FBmC8MuMi/+nQ3DTpcXYL3y/IaZz2ScY2GOJXOe8fyMykVXyLOKxpL2Y0frAnJZmm65OxzMLQ==} - dev: false + /@ungap/structured-clone@1.2.0: + resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} - /@vitejs/plugin-vue/4.0.0_vite@4.1.4+vue@3.2.47: - resolution: {integrity: sha512-e0X4jErIxAB5oLtDqbHvHpJe/uWNkdpYV83AOG2xo2tEVSzCzewgJMtREZM30wXnM5ls90hxiOtAuVU6H5JgbA==} + /@vitejs/plugin-vue@4.6.2(vite@4.5.2)(vue@3.4.19): + resolution: {integrity: sha512-kqf7SGFoG+80aZG6Pf+gsZIVvGSCKE98JbiWqcCV9cThtg91Jav0yvYFC9Zb+jKetNGF6ZKeoaxgZfND21fWKw==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: - vite: ^4.0.0 + vite: ^4.0.0 || ^5.0.0 vue: ^3.2.25 dependencies: - vite: 4.1.4 - vue: 3.2.47 + vite: 4.5.2 + vue: 3.4.19(typescript@5.3.3) - /@vitest/coverage-c8/0.28.4_@vitest+ui@0.28.4: - resolution: {integrity: sha512-btelLBxaWhHnywXRQxDlrvPhGdnuIaD3XulsxcZRIcnpLPbFu39dNTT0IYu2QWP2ZZrV0AmNtdLIfD4c77zMAg==} + /@vitest/coverage-v8@1.5.0(vitest@1.5.0): + resolution: {integrity: sha512-1igVwlcqw1QUMdfcMlzzY4coikSIBN944pkueGi0pawrX5I5Z+9hxdTR+w3Sg6Q3eZhvdMAs8ZaF9JuTG1uYOQ==} + peerDependencies: + vitest: 1.5.0 dependencies: - c8: 7.12.0 + '@ampproject/remapping': 2.2.1 + '@bcoe/v8-coverage': 0.2.3 + debug: 4.3.4(supports-color@8.1.1) + istanbul-lib-coverage: 3.2.2 + istanbul-lib-report: 3.0.1 + istanbul-lib-source-maps: 5.0.4 + istanbul-reports: 3.1.6 + magic-string: 0.30.7 + magicast: 0.3.4 picocolors: 1.0.0 - std-env: 3.3.2 - vitest: 0.28.4_@vitest+ui@0.28.4 + std-env: 3.7.0 + strip-literal: 2.1.0 + test-exclude: 6.0.0 + vitest: 1.5.0(@vitest/ui@1.5.0)(jsdom@22.1.0) transitivePeerDependencies: - - '@edge-runtime/vm' - - '@vitest/browser' - - '@vitest/ui' - - happy-dom - - jsdom - - less - - sass - - stylus - - sugarss - supports-color - - terser dev: true - /@vitest/coverage-c8/0.28.4_vun5xzxu3tkrssf3erdbijyyki: - resolution: {integrity: sha512-btelLBxaWhHnywXRQxDlrvPhGdnuIaD3XulsxcZRIcnpLPbFu39dNTT0IYu2QWP2ZZrV0AmNtdLIfD4c77zMAg==} + /@vitest/expect@1.5.0: + resolution: {integrity: sha512-0pzuCI6KYi2SIC3LQezmxujU9RK/vwC1U9R0rLuGlNGcOuDWxqWKu6nUdFsX9tH1WU0SXtAxToOsEjeUn1s3hA==} dependencies: - c8: 7.12.0 - picocolors: 1.0.0 - std-env: 3.3.2 - vitest: 0.28.4_vun5xzxu3tkrssf3erdbijyyki - transitivePeerDependencies: - - '@edge-runtime/vm' - - '@vitest/browser' - - '@vitest/ui' - - happy-dom - - jsdom - - less - - sass - - stylus - - sugarss - - supports-color - - terser + '@vitest/spy': 1.5.0 + '@vitest/utils': 1.5.0 + chai: 4.4.1 dev: true - /@vitest/expect/0.28.4: - resolution: {integrity: sha512-JqK0NZ4brjvOSL8hXAnIsfi+jxDF7rH/ZWCGCt0FAqRnVFc1hXsfwXksQvEnKqD84avRt3gmeXoK4tNbmkoVsQ==} + /@vitest/runner@1.5.0: + resolution: {integrity: sha512-7HWwdxXP5yDoe7DTpbif9l6ZmDwCzcSIK38kTSIt6CFEpMjX4EpCgT6wUmS0xTXqMI6E/ONmfgRKmaujpabjZQ==} dependencies: - '@vitest/spy': 0.28.4 - '@vitest/utils': 0.28.4 - chai: 4.3.7 + '@vitest/utils': 1.5.0 + p-limit: 5.0.0 + pathe: 1.1.2 dev: true - /@vitest/runner/0.28.4: - resolution: {integrity: sha512-Q8UV6GjDvBSTfUoq0QXVCNpNOUrWu4P2qvRq7ssJWzn0+S0ojbVOxEjMt+8a32X6SdkhF8ak+2nkppsqV0JyNQ==} + /@vitest/snapshot@1.5.0: + resolution: {integrity: sha512-qpv3fSEuNrhAO3FpH6YYRdaECnnRjg9VxbhdtPwPRnzSfHVXnNzzrpX4cJxqiwgRMo7uRMWDFBlsBq4Cr+rO3A==} dependencies: - '@vitest/utils': 0.28.4 - p-limit: 4.0.0 - pathe: 1.1.0 + magic-string: 0.30.7 + pathe: 1.1.2 + pretty-format: 29.7.0 dev: true - /@vitest/spy/0.28.4: - resolution: {integrity: sha512-8WuhfXLlvCXpNXEGJW6Gc+IKWI32435fQJLh43u70HnZ1otJOa2Cmg2Wy2Aym47ZnNCP4NolF+8cUPwd0MigKQ==} + /@vitest/spy@1.5.0: + resolution: {integrity: sha512-vu6vi6ew5N5MMHJjD5PoakMRKYdmIrNJmyfkhRpQt5d9Ewhw9nZ5Aqynbi3N61bvk9UvZ5UysMT6ayIrZ8GA9w==} dependencies: - tinyspy: 1.1.1 + tinyspy: 2.2.1 dev: true - /@vitest/ui/0.28.4: - resolution: {integrity: sha512-LQfCCFc17n49mwtraV9/NAWl2DUqJS/9ZEa3fqJjoYO+HowdseQ5jvWflpzliCyfrIAh6cXVo1bNzHnDXe0cbw==} + /@vitest/ui@1.5.0(vitest@1.5.0): + resolution: {integrity: sha512-ETcToK2TzICf/Oartvt19IH7yR4oCs8GrQk5hRhZ5oZFaSdDHTh6o3EdzyxOaY24NZ20cXYYNGjj1se/5vHfFg==} + peerDependencies: + vitest: 1.5.0 dependencies: - fast-glob: 3.2.12 - flatted: 3.2.7 - pathe: 1.1.0 + '@vitest/utils': 1.5.0 + fast-glob: 3.3.2 + fflate: 0.8.2 + flatted: 3.2.9 + pathe: 1.1.2 picocolors: 1.0.0 - sirv: 2.0.2 + sirv: 2.0.4 + vitest: 1.5.0(@vitest/ui@1.5.0)(jsdom@22.1.0) dev: true - /@vitest/utils/0.28.4: - resolution: {integrity: sha512-l2QztOLdc2LkR+w/lP52RGh8hW+Ul4KESmCAgVE8q737I7e7bQoAfkARKpkPJ4JQtGpwW4deqlj1732VZD7TFw==} + /@vitest/utils@1.5.0: + resolution: {integrity: sha512-BDU0GNL8MWkRkSRdNFvCUCAVOeHaUlVJ9Tx0TYBZyXaaOTmGtUFObzchCivIBrIwKzvZA7A9sCejVhXM2aY98A==} dependencies: - cli-truncate: 3.1.0 - diff: 5.1.0 - loupe: 2.3.6 - picocolors: 1.0.0 - pretty-format: 27.5.1 + diff-sequences: 29.6.3 + estree-walker: 3.0.3 + loupe: 2.3.7 + pretty-format: 29.7.0 dev: true - /@vue-flow/core/1.5.11_vue@3.2.47: - resolution: {integrity: sha512-y2qTlCcQbcFSJcP7mQJpplG+MTJYE35uOZe9gU+JfF/ytHMmEC2UQlrBYhLbaU4FCi5waelShp2ohLU1ocvPjA==} + /@vue-flow/core@1.19.4(vue@3.4.19): + resolution: {integrity: sha512-m+7MjFmt38Oj4/6LtMqV2CPDLIHQbcqSOy4sDD+jOZCyQJ7j8gJbGJo7iXU+xEbPKNagxCWryB2/HGgpMAaSzQ==} peerDependencies: vue: ^3.2.25 dependencies: - '@vueuse/core': 9.13.0_vue@3.2.47 + '@vueuse/core': 9.13.0(vue@3.4.19) d3-drag: 3.0.0 d3-selection: 3.0.0 d3-zoom: 3.0.0 - vue: 3.2.47 + vue: 3.4.19(typescript@5.3.3) transitivePeerDependencies: - '@vue/composition-api' dev: false - /@vue/compiler-core/3.2.47: - resolution: {integrity: sha512-p4D7FDnQb7+YJmO2iPEv0SQNeNzcbHdGByJDsT4lynf63AFkOTFN07HsiRSvjGo0QrxR/o3d0hUyNCUnBU2Tig==} + /@vue/compiler-core@3.4.19: + resolution: {integrity: sha512-gj81785z0JNzRcU0Mq98E56e4ltO1yf8k5PQ+tV/7YHnbZkrM0fyFyuttnN8ngJZjbpofWE/m4qjKBiLl8Ju4w==} dependencies: - '@babel/parser': 7.20.7 - '@vue/shared': 3.2.47 + '@babel/parser': 7.23.9 + '@vue/shared': 3.4.19 + entities: 4.5.0 estree-walker: 2.0.2 - source-map: 0.6.1 + source-map-js: 1.0.2 - /@vue/compiler-dom/3.2.47: - resolution: {integrity: sha512-dBBnEHEPoftUiS03a4ggEig74J2YBZ2UIeyfpcRM2tavgMWo4bsEfgCGsu+uJIL/vax9S+JztH8NmQerUo7shQ==} - requiresBuild: true + /@vue/compiler-dom@3.4.19: + resolution: {integrity: sha512-vm6+cogWrshjqEHTzIDCp72DKtea8Ry/QVpQRYoyTIg9k7QZDX6D8+HGURjtmatfgM8xgCFtJJaOlCaRYRK3QA==} dependencies: - '@vue/compiler-core': 3.2.47 - '@vue/shared': 3.2.47 + '@vue/compiler-core': 3.4.19 + '@vue/shared': 3.4.19 - /@vue/compiler-sfc/3.2.47: - resolution: {integrity: sha512-rog05W+2IFfxjMcFw10tM9+f7i/+FFpZJJ5XHX72NP9eC2uRD+42M3pYcQqDXVYoj74kHMSEdQ/WmCjt8JFksQ==} + /@vue/compiler-sfc@3.4.19: + resolution: {integrity: sha512-LQ3U4SN0DlvV0xhr1lUsgLCYlwQfUfetyPxkKYu7dkfvx7g3ojrGAkw0AERLOKYXuAGnqFsEuytkdcComei3Yg==} dependencies: - '@babel/parser': 7.20.7 - '@vue/compiler-core': 3.2.47 - '@vue/compiler-dom': 3.2.47 - '@vue/compiler-ssr': 3.2.47 - '@vue/reactivity-transform': 3.2.47 - '@vue/shared': 3.2.47 + '@babel/parser': 7.23.9 + '@vue/compiler-core': 3.4.19 + '@vue/compiler-dom': 3.4.19 + '@vue/compiler-ssr': 3.4.19 + '@vue/shared': 3.4.19 estree-walker: 2.0.2 - magic-string: 0.25.9 - postcss: 8.4.21 - source-map: 0.6.1 + magic-string: 0.30.7 + postcss: 8.4.35 + source-map-js: 1.0.2 - /@vue/compiler-ssr/3.2.47: - resolution: {integrity: sha512-wVXC+gszhulcMD8wpxMsqSOpvDZ6xKXSVWkf50Guf/S+28hTAXPDYRTbLQ3EDkOP5Xz/+SY37YiwDquKbJOgZw==} + /@vue/compiler-ssr@3.4.19: + resolution: {integrity: sha512-P0PLKC4+u4OMJ8sinba/5Z/iDT84uMRRlrWzadgLA69opCpI1gG4N55qDSC+dedwq2fJtzmGald05LWR5TFfLw==} dependencies: - '@vue/compiler-dom': 3.2.47 - '@vue/shared': 3.2.47 + '@vue/compiler-dom': 3.4.19 + '@vue/shared': 3.4.19 - /@vue/devtools-api/6.4.5: - resolution: {integrity: sha512-JD5fcdIuFxU4fQyXUu3w2KpAJHzTVdN+p4iOX2lMWSHMOoQdMAcpFLZzm9Z/2nmsoZ1a96QEhZ26e50xLBsgOQ==} + /@vue/devtools-api@6.5.1: + resolution: {integrity: sha512-+KpckaAQyfbvshdDW5xQylLni1asvNSGme1JFs8I1+/H5pHEhqUKMEQD/qn3Nx5+/nycBq11qAEi8lk+LXI2dA==} - /@vue/devtools-api/6.5.0: - resolution: {integrity: sha512-o9KfBeaBmCKl10usN4crU53fYtC1r7jJwdGKjPT24t348rHxgfpZ0xL3Xm/gLUYnc0oTp8LAmrxOeLyu6tbk2Q==} - dev: false - - /@vue/reactivity-transform/3.2.47: - resolution: {integrity: sha512-m8lGXw8rdnPVVIdIFhf0LeQ/ixyHkH5plYuS83yop5n7ggVJU+z5v0zecwEnX7fa7HNLBhh2qngJJkxpwEEmYA==} - dependencies: - '@babel/parser': 7.20.7 - '@vue/compiler-core': 3.2.47 - '@vue/shared': 3.2.47 - estree-walker: 2.0.2 - magic-string: 0.25.9 - - /@vue/reactivity/3.2.47: - resolution: {integrity: sha512-7khqQ/75oyyg+N/e+iwV6lpy1f5wq759NdlS1fpAhFXa8VeAIKGgk2E/C4VF59lx5b+Ezs5fpp/5WsRYXQiKxQ==} + /@vue/reactivity@3.4.19: + resolution: {integrity: sha512-+VcwrQvLZgEclGZRHx4O2XhyEEcKaBi50WbxdVItEezUf4fqRh838Ix6amWTdX0CNb/b6t3Gkz3eOebfcSt+UA==} dependencies: - '@vue/shared': 3.2.47 + '@vue/shared': 3.4.19 - /@vue/runtime-core/3.2.47: - resolution: {integrity: sha512-RZxbLQIRB/K0ev0K9FXhNbBzT32H9iRtYbaXb0ZIz2usLms/D55dJR2t6cIEUn6vyhS3ALNvNthI+Q95C+NOpA==} + /@vue/runtime-core@3.4.19: + resolution: {integrity: sha512-/Z3tFwOrerJB/oyutmJGoYbuoadphDcJAd5jOuJE86THNZji9pYjZroQ2NFsZkTxOq0GJbb+s2kxTYToDiyZzw==} dependencies: - '@vue/reactivity': 3.2.47 - '@vue/shared': 3.2.47 + '@vue/reactivity': 3.4.19 + '@vue/shared': 3.4.19 - /@vue/runtime-dom/3.2.47: - resolution: {integrity: sha512-ArXrFTjS6TsDei4qwNvgrdmHtD930KgSKGhS5M+j8QxXrDJYLqYw4RRcDy1bz1m1wMmb6j+zGLifdVHtkXA7gA==} + /@vue/runtime-dom@3.4.19: + resolution: {integrity: sha512-IyZzIDqfNCF0OyZOauL+F4yzjMPN2rPd8nhqPP2N1lBn3kYqJpPHHru+83Rkvo2lHz5mW+rEeIMEF9qY3PB94g==} dependencies: - '@vue/runtime-core': 3.2.47 - '@vue/shared': 3.2.47 - csstype: 2.6.21 + '@vue/runtime-core': 3.4.19 + '@vue/shared': 3.4.19 + csstype: 3.1.3 - /@vue/server-renderer/3.2.47_vue@3.2.47: - resolution: {integrity: sha512-dN9gc1i8EvmP9RCzvneONXsKfBRgqFeFZLurmHOveL7oH6HiFXJw5OGu294n1nHc/HMgTy6LulU/tv5/A7f/LA==} + /@vue/server-renderer@3.4.19(vue@3.4.19): + resolution: {integrity: sha512-eAj2p0c429RZyyhtMRnttjcSToch+kTWxFPHlzGMkR28ZbF1PDlTcmGmlDxccBuqNd9iOQ7xPRPAGgPVj+YpQw==} peerDependencies: - vue: 3.2.47 + vue: 3.4.19 dependencies: - '@vue/compiler-ssr': 3.2.47 - '@vue/shared': 3.2.47 - vue: 3.2.47 + '@vue/compiler-ssr': 3.4.19 + '@vue/shared': 3.4.19 + vue: 3.4.19(typescript@5.3.3) - /@vue/shared/3.2.47: - resolution: {integrity: sha512-BHGyyGN3Q97EZx0taMQ+OLNuZcW3d37ZEVmEAyeoA9ERdGvm9Irc/0Fua8SNyOtV1w6BS4q25wbMzJujO9HIfQ==} + /@vue/shared@3.4.19: + resolution: {integrity: sha512-/KliRRHMF6LoiThEy+4c1Z4KB/gbPrGjWwJR+crg2otgrf/egKzRaCPvJ51S5oetgsgXLfc4Rm5ZgrKHZrtMSw==} - /@vue/test-utils/2.2.10_vue@3.2.47: - resolution: {integrity: sha512-UPY+VdWST5vYZ/Qhl+sLuJAv596e6kTbrOPgdGY82qd9kGN/MfjzLT5KXlmpChkiCbPP3abZ8XT25u1n5h+mRg==} + /@vue/test-utils@2.4.4(vue@3.4.19): + resolution: {integrity: sha512-8jkRxz8pNhClAf4Co4ZrpAoFISdvT3nuSkUlY6Ys6rmTpw3DMWG/X3mw3gQ7QJzgCZO9f+zuE2kW57fi09MW7Q==} peerDependencies: + '@vue/server-renderer': ^3.0.1 vue: ^3.0.1 + peerDependenciesMeta: + '@vue/server-renderer': + optional: true dependencies: - js-beautify: 1.14.6 - vue: 3.2.47 - optionalDependencies: - '@vue/compiler-dom': 3.2.47 + js-beautify: 1.14.11 + vue: 3.4.19(typescript@5.3.3) + vue-component-type-helpers: 1.8.27 dev: true - /@vueuse/core/9.13.0_vue@3.2.47: + /@vueuse/core@9.13.0(vue@3.4.19): resolution: {integrity: sha512-pujnclbeHWxxPRqXWmdkKV5OX4Wk4YeK7wusHqRwU0Q7EFusHoqNA/aPhB6KCh9hEqJkLAJo7bb0Lh9b+OIVzw==} dependencies: '@types/web-bluetooth': 0.0.16 '@vueuse/metadata': 9.13.0 - '@vueuse/shared': 9.13.0_vue@3.2.47 - vue-demi: 0.13.11_vue@3.2.47 + '@vueuse/shared': 9.13.0(vue@3.4.19) + vue-demi: 0.14.7(vue@3.4.19) transitivePeerDependencies: - '@vue/composition-api' - vue - /@vueuse/metadata/9.13.0: + /@vueuse/metadata@9.13.0: resolution: {integrity: sha512-gdU7TKNAUVlXXLbaF+ZCfte8BjRJQWPCa2J55+7/h+yDtzw3vOoGQDRXzI6pyKyo6bXFT5/QoPE4hAknExjRLQ==} - /@vueuse/shared/9.13.0_vue@3.2.47: + /@vueuse/shared@9.13.0(vue@3.4.19): resolution: {integrity: sha512-UrnhU+Cnufu4S6JLCPZnkWh0WwZGUp72ktOF2DFptMlOs3TOdVv8xJN53zhHGARmVOsz5KqOls09+J1NR6sBKw==} dependencies: - vue-demi: 0.13.11_vue@3.2.47 + vue-demi: 0.14.7(vue@3.4.19) transitivePeerDependencies: - '@vue/composition-api' - vue - /abab/2.0.6: + /abab@2.0.6: resolution: {integrity: sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==} + deprecated: Use your platform's native atob() and btoa() methods instead dev: true - /abbrev/1.1.1: - resolution: {integrity: sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==} + /abbrev@2.0.0: + resolution: {integrity: sha512-6/mh1E2u2YgEsCHdY0Yx5oW+61gZU+1vXaoiHHrpKeuRNNgFvS+/jrwHiQhB5apAf5oB7UB7E19ol2R2LKH8hQ==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dev: true - /acorn-globals/7.0.1: + /acorn-globals@7.0.1: resolution: {integrity: sha512-umOSDSDrfHbTNPuNpC2NSnnA3LUrqpevPb4T9jRx4MagXNS0rs+gwiTcAvqCRmsD6utzsrzNt+ebm00SNWiC3Q==} dependencies: - acorn: 8.8.2 - acorn-walk: 8.2.0 + acorn: 8.11.3 + acorn-walk: 8.3.2 dev: true - /acorn-jsx/5.3.2_acorn@8.8.2: + /acorn-jsx@5.3.2(acorn@8.11.3): resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} peerDependencies: acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: - acorn: 8.8.2 + acorn: 8.11.3 dev: true - /acorn-walk/8.2.0: - resolution: {integrity: sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==} + /acorn-walk@8.3.2: + resolution: {integrity: sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==} engines: {node: '>=0.4.0'} dev: true - /acorn/8.8.2: - resolution: {integrity: sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==} + /acorn@8.11.3: + resolution: {integrity: sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==} engines: {node: '>=0.4.0'} hasBin: true dev: true - /agent-base/6.0.2: + /agent-base@6.0.2: resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} engines: {node: '>= 6.0.0'} dependencies: - debug: 4.3.4 + debug: 4.3.4(supports-color@8.1.1) transitivePeerDependencies: - supports-color dev: true - /aggregate-error/3.1.0: + /aggregate-error@3.1.0: resolution: {integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==} engines: {node: '>=8'} dependencies: @@ -1368,7 +1954,7 @@ packages: indent-string: 4.0.0 dev: true - /ajv/6.12.6: + /ajv@6.12.6: resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} dependencies: fast-deep-equal: 3.1.3 @@ -1377,46 +1963,46 @@ packages: uri-js: 4.4.1 dev: true - /ansi-colors/4.1.3: + /ansi-colors@4.1.3: resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==} engines: {node: '>=6'} dev: true - /ansi-escapes/4.3.2: + /ansi-escapes@4.3.2: resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} engines: {node: '>=8'} dependencies: type-fest: 0.21.3 dev: true - /ansi-regex/5.0.1: + /ansi-regex@5.0.1: resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} engines: {node: '>=8'} dev: true - /ansi-regex/6.0.1: + /ansi-regex@6.0.1: resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==} engines: {node: '>=12'} dev: true - /ansi-styles/4.3.0: + /ansi-styles@4.3.0: resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} engines: {node: '>=8'} dependencies: color-convert: 2.0.1 dev: true - /ansi-styles/5.2.0: + /ansi-styles@5.2.0: resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==} engines: {node: '>=10'} dev: true - /ansi-styles/6.2.1: + /ansi-styles@6.2.1: resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} engines: {node: '>=12'} dev: true - /anymatch/3.1.3: + /anymatch@3.1.3: resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} engines: {node: '>= 8'} dependencies: @@ -1424,119 +2010,120 @@ packages: picomatch: 2.3.1 dev: true - /arch/2.2.0: + /arch@2.2.0: resolution: {integrity: sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ==} dev: true - /argparse/1.0.10: + /argparse@1.0.10: resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} dependencies: sprintf-js: 1.0.3 dev: true - /argparse/2.0.1: + /argparse@2.0.1: resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} dev: true - /array-union/2.1.0: + /array-union@2.1.0: resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} engines: {node: '>=8'} dev: true - /asn1/0.2.6: + /asn1@0.2.6: resolution: {integrity: sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==} dependencies: safer-buffer: 2.1.2 dev: true - /assert-plus/1.0.0: + /assert-plus@1.0.0: resolution: {integrity: sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==} engines: {node: '>=0.8'} dev: true - /assertion-error/1.1.0: + /assertion-error@1.1.0: resolution: {integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==} dev: true - /astral-regex/2.0.0: + /astral-regex@2.0.0: resolution: {integrity: sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==} engines: {node: '>=8'} dev: true - /async/3.2.4: - resolution: {integrity: sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==} + /async@3.2.5: + resolution: {integrity: sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==} dev: true - /asynckit/0.4.0: + /asynckit@0.4.0: resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} + dev: true - /at-least-node/1.0.0: + /at-least-node@1.0.0: resolution: {integrity: sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==} engines: {node: '>= 4.0.0'} dev: true - /aws-sign2/0.7.0: + /aws-sign2@0.7.0: resolution: {integrity: sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==} dev: true - /aws4/1.11.0: - resolution: {integrity: sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==} + /aws4@1.12.0: + resolution: {integrity: sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg==} dev: true - /balanced-match/1.0.2: + /balanced-match@1.0.2: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} - /base64-js/1.5.1: + /base64-js@1.5.1: resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} dev: true - /bcrypt-pbkdf/1.0.2: + /bcrypt-pbkdf@1.0.2: resolution: {integrity: sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==} dependencies: tweetnacl: 0.14.5 dev: true - /binary-extensions/2.2.0: + /binary-extensions@2.2.0: resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} engines: {node: '>=8'} dev: true - /birpc/0.1.1: + /birpc@0.1.1: resolution: {integrity: sha512-B64AGL4ug2IS2jvV/zjTYDD1L+2gOJTT7Rv+VaK7KVQtQOo/xZbCDsh7g727ipckmU+QJYRqo5RcifVr0Kgcmg==} dev: true - /blob-util/2.0.2: + /blob-util@2.0.2: resolution: {integrity: sha512-T7JQa+zsXXEa6/8ZhHcQEW1UFfVM49Ts65uBkFL6fz2QmrElqmbajIDJvuA0tEhRe5eIjpV9ZF+0RfZR9voJFQ==} dev: true - /bluebird/3.7.2: + /bluebird@3.7.2: resolution: {integrity: sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==} dev: true - /boolbase/1.0.0: + /boolbase@1.0.0: resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} dev: true - /brace-expansion/1.1.11: + /brace-expansion@1.1.11: resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} dependencies: balanced-match: 1.0.2 concat-map: 0.0.1 - /brace-expansion/2.0.1: + /brace-expansion@2.0.1: resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} dependencies: balanced-match: 1.0.2 dev: true - /braces/3.0.2: + /braces@3.0.2: resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} engines: {node: '>=8'} dependencies: fill-range: 7.0.1 dev: true - /broadcast-channel/4.20.2: + /broadcast-channel@4.20.2: resolution: {integrity: sha512-v0lJgMzC+MX4e2KCFWYXChZ2mKTqm5mnJGId6tqJp3NfylggbNd8c2uKeP4MQxD2ucKOesY68aN98zwl9d6Tvg==} dependencies: '@babel/runtime': 7.20.7 @@ -1546,88 +2133,80 @@ packages: unload: 2.4.1 dev: false - /buffer-crc32/0.2.13: + /buffer-crc32@0.2.13: resolution: {integrity: sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==} dev: true - /buffer-from/1.1.2: + /buffer-from@1.1.2: resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} dev: true - /buffer/5.7.1: + /buffer@5.7.1: resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} dependencies: base64-js: 1.5.1 ieee754: 1.2.1 dev: true - /c8/7.12.0: - resolution: {integrity: sha512-CtgQrHOkyxr5koX1wEUmN/5cfDa2ckbHRA4Gy5LAL0zaCFtVWJS5++n+w4/sr2GWGerBxgTjpKeDclk/Qk6W/A==} - engines: {node: '>=10.12.0'} - hasBin: true - dependencies: - '@bcoe/v8-coverage': 0.2.3 - '@istanbuljs/schema': 0.1.3 - find-up: 5.0.0 - foreground-child: 2.0.0 - istanbul-lib-coverage: 3.2.0 - istanbul-lib-report: 3.0.0 - istanbul-reports: 3.1.5 - rimraf: 3.0.2 - test-exclude: 6.0.0 - v8-to-istanbul: 9.0.1 - yargs: 16.2.0 - yargs-parser: 20.2.9 - dev: true - - /cac/6.7.14: + /cac@6.7.14: resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} engines: {node: '>=8'} dev: true - /cachedir/2.3.0: - resolution: {integrity: sha512-A+Fezp4zxnit6FanDmv9EqXNAi3vt9DWp51/71UEhXukb7QUuvtv9344h91dyAxuTLoSYJFU299qzR3tzwPAhw==} + /cachedir@2.4.0: + resolution: {integrity: sha512-9EtFOZR8g22CL7BWjJ9BUx1+A/djkofnyW3aOXZORNW2kxoUpx2h+uN2cOqwPmFhnpVmxg+KW2OjOSgChTEvsQ==} engines: {node: '>=6'} dev: true - /callsites/3.1.0: + /call-bind@1.0.7: + resolution: {integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==} + engines: {node: '>= 0.4'} + dependencies: + es-define-property: 1.0.0 + es-errors: 1.3.0 + function-bind: 1.1.2 + get-intrinsic: 1.2.4 + set-function-length: 1.2.1 + dev: true + + /callsites@3.1.0: resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} engines: {node: '>=6'} dev: true - /camel-case/4.1.2: + /camel-case@4.1.2: resolution: {integrity: sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==} dependencies: pascal-case: 3.1.2 - tslib: 2.4.1 + tslib: 2.6.2 dev: true - /capital-case/1.0.4: + /capital-case@1.0.4: resolution: {integrity: sha512-ds37W8CytHgwnhGGTi88pcPyR15qoNkOpYwmMMfnWqqWgESapLqvDx6huFjQ5vqWSn2Z06173XNA7LtMOeUh1A==} dependencies: no-case: 3.0.4 - tslib: 2.4.1 + tslib: 2.6.2 upper-case-first: 2.0.2 dev: true - /caseless/0.12.0: + /caseless@0.12.0: resolution: {integrity: sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==} dev: true - /chai/4.3.7: - resolution: {integrity: sha512-HLnAzZ2iupm25PlN0xFreAlBA5zaBSv3og0DdeGA4Ar6h6rJ3A0rolRUKJhSF2V10GZKDgWF/VmAEsNWjCRB+A==} + /chai@4.4.1: + resolution: {integrity: sha512-13sOfMv2+DWduEU+/xbun3LScLoqN17nBeTLUsmDfKdoiC1fr0n9PU4guu4AhRcOVFk/sW8LyZWHuhWtQZiF+g==} engines: {node: '>=4'} dependencies: assertion-error: 1.1.0 - check-error: 1.0.2 + check-error: 1.0.3 deep-eql: 4.1.3 - get-func-name: 2.0.0 - loupe: 2.3.6 + get-func-name: 2.0.2 + loupe: 2.3.7 pathval: 1.1.1 type-detect: 4.0.8 dev: true - /chalk/4.1.2: + /chalk@4.1.2: resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} engines: {node: '>=10'} dependencies: @@ -1635,7 +2214,7 @@ packages: supports-color: 7.2.0 dev: true - /change-case/4.1.2: + /change-case@4.1.2: resolution: {integrity: sha512-bSxY2ws9OtviILG1EiY5K7NNxkqg/JnRnFxLtKQ96JaviiIxi7djMrSd0ECT9AC+lttClmYwKw53BWpOMblo7A==} dependencies: camel-case: 4.1.2 @@ -1649,20 +2228,22 @@ packages: path-case: 3.0.4 sentence-case: 3.0.4 snake-case: 3.0.4 - tslib: 2.4.1 + tslib: 2.6.2 dev: true - /check-error/1.0.2: - resolution: {integrity: sha512-BrgHpW9NURQgzoNyjfq0Wu6VFO6D7IZEmJNdtgNqpzGG8RuNFHt2jQxWlAs4HMe119chBnv+34syEZtc6IhLtA==} + /check-error@1.0.3: + resolution: {integrity: sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==} + dependencies: + get-func-name: 2.0.2 dev: true - /check-more-types/2.24.0: + /check-more-types@2.24.0: resolution: {integrity: sha512-Pj779qHxV2tuapviy1bSZNEL1maXr13bPYpsvSDB68HlYcYuhlDrmGd63i0JHMCLKzc7rUSNIrpdJlhVlNwrxA==} engines: {node: '>= 0.8.0'} dev: true - /chokidar/3.5.3: - resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==} + /chokidar@3.6.0: + resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} engines: {node: '>= 8.10.0'} dependencies: anymatch: 3.1.3 @@ -1673,27 +2254,27 @@ packages: normalize-path: 3.0.0 readdirp: 3.6.0 optionalDependencies: - fsevents: 2.3.2 + fsevents: 2.3.3 dev: true - /ci-info/3.7.0: - resolution: {integrity: sha512-2CpRNYmImPx+RXKLq6jko/L07phmS9I02TyqkcNU20GCF/GgaWvc58hPtjxDX8lPpkdwc9sNh72V9k00S7ezog==} + /ci-info@3.9.0: + resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==} engines: {node: '>=8'} dev: true - /clean-stack/2.2.0: + /clean-stack@2.2.0: resolution: {integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==} engines: {node: '>=6'} dev: true - /cli-cursor/3.1.0: + /cli-cursor@3.1.0: resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==} engines: {node: '>=8'} dependencies: restore-cursor: 3.1.0 dev: true - /cli-table3/0.6.3: + /cli-table3@0.6.3: resolution: {integrity: sha512-w5Jac5SykAeZJKntOxJCrm63Eg5/4dhMWIcuTbo9rpE+brgaSZo0RuNJZeOyMgsUdhDeojvgyQLmjI+K50ZGyg==} engines: {node: 10.* || >= 12.*} dependencies: @@ -1702,7 +2283,7 @@ packages: '@colors/colors': 1.5.0 dev: true - /cli-truncate/2.1.0: + /cli-truncate@2.1.0: resolution: {integrity: sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==} engines: {node: '>=8'} dependencies: @@ -1710,68 +2291,54 @@ packages: string-width: 4.2.3 dev: true - /cli-truncate/3.1.0: - resolution: {integrity: sha512-wfOBkjXteqSnI59oPcJkcPl/ZmwvMMOj340qUIY1SKZCv0B9Cf4D4fAucRkIKQmsIuYK3x1rrgU7MeGRruiuiA==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - dependencies: - slice-ansi: 5.0.0 - string-width: 5.1.2 - dev: true - - /cliui/7.0.4: - resolution: {integrity: sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==} - dependencies: - string-width: 4.2.3 - strip-ansi: 6.0.1 - wrap-ansi: 7.0.0 - dev: true - - /color-convert/2.0.1: + /color-convert@2.0.1: resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} engines: {node: '>=7.0.0'} dependencies: color-name: 1.1.4 dev: true - /color-name/1.1.4: + /color-name@1.1.4: resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} dev: true - /colorette/2.0.19: - resolution: {integrity: sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ==} + /colorette@2.0.20: + resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==} dev: true - /combined-stream/1.0.8: + /combined-stream@1.0.8: resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} engines: {node: '>= 0.8'} dependencies: delayed-stream: 1.0.0 + dev: true - /commander/2.20.3: - resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} + /commander@10.0.1: + resolution: {integrity: sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==} + engines: {node: '>=14'} dev: true - /commander/5.1.0: - resolution: {integrity: sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==} + /commander@6.2.1: + resolution: {integrity: sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==} engines: {node: '>= 6'} dev: true - /common-tags/1.8.2: + /common-tags@1.8.2: resolution: {integrity: sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA==} engines: {node: '>=4.0.0'} dev: true - /concat-map/0.0.1: + /concat-map@0.0.1: resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} - /config-chain/1.1.13: + /config-chain@1.1.13: resolution: {integrity: sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==} dependencies: ini: 1.3.8 proto-list: 1.2.4 dev: true - /connect/3.7.0: + /connect@3.7.0: resolution: {integrity: sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ==} engines: {node: '>= 0.10.0'} dependencies: @@ -1781,35 +2348,31 @@ packages: utils-merge: 1.0.1 dev: true - /constant-case/3.0.4: + /constant-case@3.0.4: resolution: {integrity: sha512-I2hSBi7Vvs7BEuJDr5dDHfzb/Ruj3FyvFyh7KLilAjNQw3Be+xgqUBA2W6scVEcL0hL1dwPRtIqEPVUCKkSsyQ==} dependencies: no-case: 3.0.4 - tslib: 2.4.1 + tslib: 2.6.2 upper-case: 2.0.2 dev: true - /convert-source-map/1.9.0: - resolution: {integrity: sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==} - dev: true - - /core-util-is/1.0.2: + /core-util-is@1.0.2: resolution: {integrity: sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==} dev: true - /crelt/1.0.5: - resolution: {integrity: sha512-+BO9wPPi+DWTDcNYhr/W90myha8ptzftZT+LwcmUbbok0rcP/fequmFYCw8NMoH7pkAZQzU78b3kYrlua5a9eA==} + /crelt@1.0.6: + resolution: {integrity: sha512-VQ2MBenTq1fWZUH9DJNGti7kKv6EeAuYr3cLwxUWhIu1baTaXh4Ib5W2CqHVqib4/MqbYGJqiL3Zb8GJZr3l4g==} dev: true - /cross-fetch/3.1.5: - resolution: {integrity: sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==} + /cross-fetch@3.1.8: + resolution: {integrity: sha512-cvA+JwZoU0Xq+h6WkMvAUqPEYy92Obet6UdKLfW60qn99ftItKjB5T+BkyWOFWe2pUyfQ+IJHmpOTznqk1M6Kg==} dependencies: - node-fetch: 2.6.7 + node-fetch: 2.7.0 transitivePeerDependencies: - encoding dev: false - /cross-spawn/7.0.3: + /cross-spawn@7.0.3: resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} engines: {node: '>= 8'} dependencies: @@ -1818,91 +2381,99 @@ packages: which: 2.0.2 dev: true - /cssesc/3.0.0: + /cssesc@3.0.0: resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} engines: {node: '>=4'} hasBin: true dev: true - /cssom/0.3.8: + /cssom@0.3.8: resolution: {integrity: sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==} dev: true - /cssom/0.5.0: + /cssom@0.5.0: resolution: {integrity: sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw==} dev: true - /cssstyle/2.3.0: + /cssstyle@2.3.0: resolution: {integrity: sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==} engines: {node: '>=8'} dependencies: cssom: 0.3.8 dev: true - /csstype/2.6.21: - resolution: {integrity: sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w==} + /cssstyle@3.0.0: + resolution: {integrity: sha512-N4u2ABATi3Qplzf0hWbVCdjenim8F3ojEXpBDF5hBpjzW182MjNGLqfmQ0SkSPeQ+V86ZXgeH8aXj6kayd4jgg==} + engines: {node: '>=14'} + dependencies: + rrweb-cssom: 0.6.0 + dev: true + + /csstype@3.1.3: + resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} - /cypress/12.2.0: - resolution: {integrity: sha512-kvl95ri95KK8mAy++tEU/wUgzAOMiIciZSL97LQvnOinb532m7dGvwN0mDSIGbOd71RREtmT9o4h088RjK5pKw==} + /cypress@12.17.4: + resolution: {integrity: sha512-gAN8Pmns9MA5eCDFSDJXWKUpaL3IDd89N9TtIupjYnzLSmlpVr+ZR+vb4U/qaMp+lB6tBvAmt7504c3Z4RU5KQ==} engines: {node: ^14.0.0 || ^16.0.0 || >=18.0.0} hasBin: true requiresBuild: true dependencies: - '@cypress/request': 2.88.10 + '@cypress/request': 2.88.12 '@cypress/xvfb': 1.2.4 - '@types/node': 14.18.35 + '@types/node': 16.18.80 '@types/sinonjs__fake-timers': 8.1.1 - '@types/sizzle': 2.3.3 + '@types/sizzle': 2.3.8 arch: 2.2.0 blob-util: 2.0.2 bluebird: 3.7.2 buffer: 5.7.1 - cachedir: 2.3.0 + cachedir: 2.4.0 chalk: 4.1.2 check-more-types: 2.24.0 cli-cursor: 3.1.0 cli-table3: 0.6.3 - commander: 5.1.0 + commander: 6.2.1 common-tags: 1.8.2 - dayjs: 1.11.7 - debug: 4.3.4_supports-color@8.1.1 - enquirer: 2.3.6 + dayjs: 1.11.10 + debug: 4.3.4(supports-color@8.1.1) + enquirer: 2.4.1 eventemitter2: 6.4.7 execa: 4.1.0 executable: 4.1.1 - extract-zip: 2.0.1_supports-color@8.1.1 + extract-zip: 2.0.1(supports-color@8.1.1) figures: 3.2.0 fs-extra: 9.1.0 getos: 3.2.1 is-ci: 3.0.1 is-installed-globally: 0.4.0 lazy-ass: 1.6.0 - listr2: 3.14.0_enquirer@2.3.6 + listr2: 3.14.0(enquirer@2.4.1) lodash: 4.17.21 log-symbols: 4.1.0 - minimist: 1.2.7 + minimist: 1.2.8 ospath: 1.2.2 pretty-bytes: 5.6.0 + process: 0.11.10 proxy-from-env: 1.0.0 request-progress: 3.0.0 - semver: 7.3.8 + semver: 7.6.0 supports-color: 8.1.1 tmp: 0.2.1 untildify: 4.0.0 yauzl: 2.10.0 dev: true - /d3-color/3.1.0: + /d3-color@3.1.0: resolution: {integrity: sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==} engines: {node: '>=12'} dev: false - /d3-dispatch/3.0.1: + /d3-dispatch@3.0.1: resolution: {integrity: sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg==} engines: {node: '>=12'} dev: false - /d3-drag/3.0.0: + /d3-drag@3.0.0: resolution: {integrity: sha512-pWbUJLdETVA8lQNJecMxoXfH6x+mO2UQo8rSmZ+QqxcbyA3hfeprFgIT//HW2nlHChWeIIMwS2Fq+gEARkhTkg==} engines: {node: '>=12'} dependencies: @@ -1910,29 +2481,29 @@ packages: d3-selection: 3.0.0 dev: false - /d3-ease/3.0.1: + /d3-ease@3.0.1: resolution: {integrity: sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w==} engines: {node: '>=12'} dev: false - /d3-interpolate/3.0.1: + /d3-interpolate@3.0.1: resolution: {integrity: sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==} engines: {node: '>=12'} dependencies: d3-color: 3.1.0 dev: false - /d3-selection/3.0.0: + /d3-selection@3.0.0: resolution: {integrity: sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ==} engines: {node: '>=12'} dev: false - /d3-timer/3.0.1: + /d3-timer@3.0.1: resolution: {integrity: sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==} engines: {node: '>=12'} dev: false - /d3-transition/3.0.1_d3-selection@3.0.0: + /d3-transition@3.0.1(d3-selection@3.0.0): resolution: {integrity: sha512-ApKvfjsSR6tg06xrL434C0WydLr7JewBB3V+/39RMHsaXTOG0zmt/OAXeng5M5LBm0ojmxJrpomQVZ1aPvBL4w==} engines: {node: '>=12'} peerDependencies: @@ -1946,7 +2517,7 @@ packages: d3-timer: 3.0.1 dev: false - /d3-zoom/3.0.0: + /d3-zoom@3.0.0: resolution: {integrity: sha512-b8AmV3kfQaqWAuacbPuNbL6vahnOJflOhexLzMMNLga62+/nh0JzvJ0aO/5a5MVgUFGS7Hu1P9P03o3fJkDCyw==} engines: {node: '>=12'} dependencies: @@ -1954,17 +2525,17 @@ packages: d3-drag: 3.0.0 d3-interpolate: 3.0.1 d3-selection: 3.0.0 - d3-transition: 3.0.1_d3-selection@3.0.0 + d3-transition: 3.0.1(d3-selection@3.0.0) dev: false - /dashdash/1.14.1: + /dashdash@1.14.1: resolution: {integrity: sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==} engines: {node: '>=0.10'} dependencies: assert-plus: 1.0.0 dev: true - /data-urls/3.0.2: + /data-urls@3.0.2: resolution: {integrity: sha512-Jy/tj3ldjZJo63sVAvg6LHt2mHvl4V6AgRAmNDtLdm7faqtsx+aJG42rsyCo9JCoRVKwPFzKlIPx3DIibwSIaQ==} engines: {node: '>=12'} dependencies: @@ -1973,35 +2544,32 @@ packages: whatwg-url: 11.0.0 dev: true - /dayjs/1.11.7: - resolution: {integrity: sha512-+Yw9U6YO5TQohxLcIkrXBeY73WP3ejHWVvx8XCk3gxvQDCTEmS48ZrSZCKciI7Bhl/uCMyxYtE9UqRILmFphkQ==} + /data-urls@4.0.0: + resolution: {integrity: sha512-/mMTei/JXPqvFqQtfyTowxmJVwr2PVAeCcDxyFf6LhoOu/09TX2OX3kb2wzi4DMXcfj4OItwDOnhl5oziPnT6g==} + engines: {node: '>=14'} + dependencies: + abab: 2.0.6 + whatwg-mimetype: 3.0.0 + whatwg-url: 12.0.1 + dev: true + + /dayjs@1.11.10: + resolution: {integrity: sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ==} dev: true - /debug/2.6.9: + /debug@2.6.9: resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} dependencies: ms: 2.0.0 dev: true - /debug/3.2.7: + /debug@3.2.7: resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} dependencies: ms: 2.1.3 dev: true - /debug/4.3.4: - resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} - engines: {node: '>=6.0'} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true - dependencies: - ms: 2.1.2 - dev: true - - /debug/4.3.4_supports-color@8.1.1: + /debug@4.3.4(supports-color@8.1.1): resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} engines: {node: '>=6.0'} peerDependencies: @@ -2014,219 +2582,268 @@ packages: supports-color: 8.1.1 dev: true - /decimal.js/10.4.3: + /decimal.js@10.4.3: resolution: {integrity: sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==} dev: true - /deep-eql/4.1.3: + /deep-eql@4.1.3: resolution: {integrity: sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==} engines: {node: '>=6'} dependencies: type-detect: 4.0.8 dev: true - /deep-is/0.1.4: + /deep-is@0.1.4: resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} dev: true - /defu/6.1.1: - resolution: {integrity: sha512-aA964RUCsBt0FGoNIlA3uFgo2hO+WWC0fiC6DBps/0SFzkKcYoM/3CzVLIa5xSsrFjdioMdYgAIbwo80qp2MoA==} + /define-data-property@1.1.4: + resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} + engines: {node: '>= 0.4'} + dependencies: + es-define-property: 1.0.0 + es-errors: 1.3.0 + gopd: 1.0.1 + dev: true + + /defu@6.1.4: + resolution: {integrity: sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==} dev: true - /delayed-stream/1.0.0: + /delayed-stream@1.0.0: resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} engines: {node: '>=0.4.0'} + dev: true - /devalue/4.3.0: - resolution: {integrity: sha512-n94yQo4LI3w7erwf84mhRUkUJfhLoCZiLyoOZ/QFsDbcWNZePrLwbQpvZBUG2TNxwV3VjCKPxkiiQA6pe3TrTA==} + /devalue@4.3.2: + resolution: {integrity: sha512-KqFl6pOgOW+Y6wJgu80rHpo2/3H07vr8ntR9rkkFIRETewbf5GaYYcakYfiKz89K+sLsuPkQIZaXDMjUObZwWg==} dev: false - /diacritics/1.3.0: + /diacritics@1.3.0: resolution: {integrity: sha512-wlwEkqcsaxvPJML+rDh/2iS824jbREk6DUMUKkEaSlxdYHeS43cClJtsWglvw2RfeXGm6ohKDqsXteJ5sP5enA==} dev: true - /diff/5.1.0: - resolution: {integrity: sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw==} - engines: {node: '>=0.3.1'} + /diff-sequences@29.6.3: + resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dev: true - /dir-glob/3.0.1: + /dir-glob@3.0.1: resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} engines: {node: '>=8'} dependencies: path-type: 4.0.0 dev: true - /doctrine/3.0.0: + /doctrine@3.0.0: resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} engines: {node: '>=6.0.0'} dependencies: esutils: 2.0.3 dev: true - /domexception/4.0.0: + /domexception@4.0.0: resolution: {integrity: sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw==} engines: {node: '>=12'} + deprecated: Use your platform's native DOMException instead dependencies: webidl-conversions: 7.0.0 dev: true - /dot-case/3.0.4: + /dot-case@3.0.4: resolution: {integrity: sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==} dependencies: no-case: 3.0.4 - tslib: 2.4.1 + tslib: 2.6.2 dev: true - /eastasianwidth/0.2.0: + /eastasianwidth@0.2.0: resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} dev: true - /ecc-jsbn/0.1.2: + /ecc-jsbn@0.1.2: resolution: {integrity: sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==} dependencies: jsbn: 0.1.1 safer-buffer: 2.1.2 dev: true - /editorconfig/0.15.3: - resolution: {integrity: sha512-M9wIMFx96vq0R4F+gRpY3o2exzb8hEj/n9S8unZtHSvYjibBp/iMufSzvmOcV/laG0ZtuTVGtiJggPOSW2r93g==} + /editorconfig@1.0.4: + resolution: {integrity: sha512-L9Qe08KWTlqYMVvMcTIvMAdl1cDUubzRNYL+WfA4bLDMHe4nemKkpmYzkznE1FwLKu0EEmy6obgQKzMJrg4x9Q==} + engines: {node: '>=14'} hasBin: true dependencies: - commander: 2.20.3 - lru-cache: 4.1.5 - semver: 5.7.1 - sigmund: 1.0.1 + '@one-ini/wasm': 0.1.1 + commander: 10.0.1 + minimatch: 9.0.1 + semver: 7.6.0 dev: true - /ee-first/1.1.1: + /ee-first@1.1.1: resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} dev: true - /emoji-regex/8.0.0: + /emoji-regex@8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} dev: true - /emoji-regex/9.2.2: + /emoji-regex@9.2.2: resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} dev: true - /encodeurl/1.0.2: + /encodeurl@1.0.2: resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==} engines: {node: '>= 0.8'} dev: true - /end-of-stream/1.4.4: + /end-of-stream@1.4.4: resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} dependencies: once: 1.4.0 dev: true - /enquirer/2.3.6: - resolution: {integrity: sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==} + /enquirer@2.4.1: + resolution: {integrity: sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==} engines: {node: '>=8.6'} dependencies: ansi-colors: 4.1.3 + strip-ansi: 6.0.1 dev: true - /entities/2.1.0: + /entities@2.1.0: resolution: {integrity: sha512-hCx1oky9PFrJ611mf0ifBLBRW8lUUVRlFolb5gWRfIELabBlbp9xZvrqZLZAs+NxFnbfQoeGd8wDkygjg7U85w==} dev: true - /entities/4.4.0: - resolution: {integrity: sha512-oYp7156SP8LkeGD0GF85ad1X9Ai79WtRsZ2gxJqtBuzH+98YUV6jkHEKlZkMbcrjJjIVJNIDP/3WL9wQkoPbWA==} + /entities@4.5.0: + resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} engines: {node: '>=0.12'} + + /es-define-property@1.0.0: + resolution: {integrity: sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==} + engines: {node: '>= 0.4'} + dependencies: + get-intrinsic: 1.2.4 + dev: true + + /es-errors@1.3.0: + resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} + engines: {node: '>= 0.4'} dev: true - /esbuild/0.16.17: - resolution: {integrity: sha512-G8LEkV0XzDMNwXKgM0Jwu3nY3lSTwSGY6XbxM9cr9+s0T/qSV1q1JVPBGzm3dcjhCic9+emZDmMffkwgPeOeLg==} + /esbuild@0.18.20: + resolution: {integrity: sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==} engines: {node: '>=12'} hasBin: true requiresBuild: true optionalDependencies: - '@esbuild/android-arm': 0.16.17 - '@esbuild/android-arm64': 0.16.17 - '@esbuild/android-x64': 0.16.17 - '@esbuild/darwin-arm64': 0.16.17 - '@esbuild/darwin-x64': 0.16.17 - '@esbuild/freebsd-arm64': 0.16.17 - '@esbuild/freebsd-x64': 0.16.17 - '@esbuild/linux-arm': 0.16.17 - '@esbuild/linux-arm64': 0.16.17 - '@esbuild/linux-ia32': 0.16.17 - '@esbuild/linux-loong64': 0.16.17 - '@esbuild/linux-mips64el': 0.16.17 - '@esbuild/linux-ppc64': 0.16.17 - '@esbuild/linux-riscv64': 0.16.17 - '@esbuild/linux-s390x': 0.16.17 - '@esbuild/linux-x64': 0.16.17 - '@esbuild/netbsd-x64': 0.16.17 - '@esbuild/openbsd-x64': 0.16.17 - '@esbuild/sunos-x64': 0.16.17 - '@esbuild/win32-arm64': 0.16.17 - '@esbuild/win32-ia32': 0.16.17 - '@esbuild/win32-x64': 0.16.17 - - /escalade/3.1.1: - resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} - engines: {node: '>=6'} - dev: true - - /escape-html/1.0.3: + '@esbuild/android-arm': 0.18.20 + '@esbuild/android-arm64': 0.18.20 + '@esbuild/android-x64': 0.18.20 + '@esbuild/darwin-arm64': 0.18.20 + '@esbuild/darwin-x64': 0.18.20 + '@esbuild/freebsd-arm64': 0.18.20 + '@esbuild/freebsd-x64': 0.18.20 + '@esbuild/linux-arm': 0.18.20 + '@esbuild/linux-arm64': 0.18.20 + '@esbuild/linux-ia32': 0.18.20 + '@esbuild/linux-loong64': 0.18.20 + '@esbuild/linux-mips64el': 0.18.20 + '@esbuild/linux-ppc64': 0.18.20 + '@esbuild/linux-riscv64': 0.18.20 + '@esbuild/linux-s390x': 0.18.20 + '@esbuild/linux-x64': 0.18.20 + '@esbuild/netbsd-x64': 0.18.20 + '@esbuild/openbsd-x64': 0.18.20 + '@esbuild/sunos-x64': 0.18.20 + '@esbuild/win32-arm64': 0.18.20 + '@esbuild/win32-ia32': 0.18.20 + '@esbuild/win32-x64': 0.18.20 + + /esbuild@0.20.2: + resolution: {integrity: sha512-WdOOppmUNU+IbZ0PaDiTst80zjnrOkyJNHoKupIcVyU8Lvla3Ugx94VzkQ32Ijqd7UhHJy75gNWDMUekcrSJ6g==} + engines: {node: '>=12'} + hasBin: true + requiresBuild: true + optionalDependencies: + '@esbuild/aix-ppc64': 0.20.2 + '@esbuild/android-arm': 0.20.2 + '@esbuild/android-arm64': 0.20.2 + '@esbuild/android-x64': 0.20.2 + '@esbuild/darwin-arm64': 0.20.2 + '@esbuild/darwin-x64': 0.20.2 + '@esbuild/freebsd-arm64': 0.20.2 + '@esbuild/freebsd-x64': 0.20.2 + '@esbuild/linux-arm': 0.20.2 + '@esbuild/linux-arm64': 0.20.2 + '@esbuild/linux-ia32': 0.20.2 + '@esbuild/linux-loong64': 0.20.2 + '@esbuild/linux-mips64el': 0.20.2 + '@esbuild/linux-ppc64': 0.20.2 + '@esbuild/linux-riscv64': 0.20.2 + '@esbuild/linux-s390x': 0.20.2 + '@esbuild/linux-x64': 0.20.2 + '@esbuild/netbsd-x64': 0.20.2 + '@esbuild/openbsd-x64': 0.20.2 + '@esbuild/sunos-x64': 0.20.2 + '@esbuild/win32-arm64': 0.20.2 + '@esbuild/win32-ia32': 0.20.2 + '@esbuild/win32-x64': 0.20.2 + dev: true + + /escape-html@1.0.3: resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==} dev: true - /escape-string-regexp/1.0.5: + /escape-string-regexp@1.0.5: resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} engines: {node: '>=0.8.0'} dev: true - /escape-string-regexp/4.0.0: + /escape-string-regexp@4.0.0: resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} engines: {node: '>=10'} dev: true - /escodegen/2.0.0: - resolution: {integrity: sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw==} + /escodegen@2.1.0: + resolution: {integrity: sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==} engines: {node: '>=6.0'} hasBin: true dependencies: esprima: 4.0.1 estraverse: 5.3.0 esutils: 2.0.3 - optionator: 0.8.3 optionalDependencies: source-map: 0.6.1 dev: true - /eslint-config-prettier/8.5.0_eslint@8.30.0: - resolution: {integrity: sha512-obmWKLUNCnhtQRKc+tmnYuQl0pFU1ibYJQ5BGhTVB08bHe9wC8qUeG7c08dj9XX+AuPj1YSGSQIHl1pnDHZR0Q==} + /eslint-config-prettier@8.10.0(eslint@8.56.0): + resolution: {integrity: sha512-SM8AMJdeQqRYT9O9zguiruQZaN7+z+E4eAP9oiLNGKMtomwaB1E9dcgUD6ZAn/eQAb52USbvezbiljfZUhbJcg==} hasBin: true peerDependencies: eslint: '>=7.0.0' dependencies: - eslint: 8.30.0 + eslint: 8.56.0 dev: true - /eslint-plugin-vue/9.8.0_eslint@8.30.0: - resolution: {integrity: sha512-E/AXwcTzunyzM83C2QqDHxepMzvI2y6x+mmeYHbVDQlKFqmKYvRrhaVixEeeG27uI44p9oKDFiyCRw4XxgtfHA==} + /eslint-plugin-vue@9.21.1(eslint@8.56.0): + resolution: {integrity: sha512-XVtI7z39yOVBFJyi8Ljbn7kY9yHzznKXL02qQYn+ta63Iy4A9JFBw6o4OSB9hyD2++tVT+su9kQqetUyCCwhjw==} engines: {node: ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.2.0 || ^7.0.0 || ^8.0.0 dependencies: - eslint: 8.30.0 - eslint-utils: 3.0.0_eslint@8.30.0 + '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0) + eslint: 8.56.0 natural-compare: 1.4.0 nth-check: 2.1.1 - postcss-selector-parser: 6.0.11 - semver: 7.3.8 - vue-eslint-parser: 9.1.0_eslint@8.30.0 + postcss-selector-parser: 6.0.15 + semver: 7.6.0 + vue-eslint-parser: 9.4.2(eslint@8.56.0) xml-name-validator: 4.0.0 transitivePeerDependencies: - supports-color dev: true - /eslint-scope/5.1.1: + /eslint-scope@5.1.1: resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} engines: {node: '>=8.0.0'} dependencies: @@ -2234,138 +2851,128 @@ packages: estraverse: 4.3.0 dev: true - /eslint-scope/7.1.1: - resolution: {integrity: sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==} + /eslint-scope@7.2.2: + resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: esrecurse: 4.3.0 estraverse: 5.3.0 dev: true - /eslint-utils/3.0.0_eslint@8.30.0: - resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==} - engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0} - peerDependencies: - eslint: '>=5' - dependencies: - eslint: 8.30.0 - eslint-visitor-keys: 2.1.0 - dev: true - - /eslint-visitor-keys/2.1.0: - resolution: {integrity: sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==} - engines: {node: '>=10'} - dev: true - - /eslint-visitor-keys/3.3.0: - resolution: {integrity: sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==} + /eslint-visitor-keys@3.4.3: + resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /eslint/8.30.0: - resolution: {integrity: sha512-MGADB39QqYuzEGov+F/qb18r4i7DohCDOfatHaxI2iGlPuC65bwG2gxgO+7DkyL38dRFaRH7RaRAgU6JKL9rMQ==} + /eslint@8.56.0: + resolution: {integrity: sha512-Go19xM6T9puCOWntie1/P997aXxFsOi37JIHRWI514Hc6ZnaHGKY9xFhrU65RT6CcBEzZoGG1e6Nq+DT04ZtZQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} hasBin: true dependencies: - '@eslint/eslintrc': 1.4.0 - '@humanwhocodes/config-array': 0.11.8 + '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0) + '@eslint-community/regexpp': 4.10.0 + '@eslint/eslintrc': 2.1.4 + '@eslint/js': 8.56.0 + '@humanwhocodes/config-array': 0.11.14 '@humanwhocodes/module-importer': 1.0.1 '@nodelib/fs.walk': 1.2.8 + '@ungap/structured-clone': 1.2.0 ajv: 6.12.6 chalk: 4.1.2 cross-spawn: 7.0.3 - debug: 4.3.4 + debug: 4.3.4(supports-color@8.1.1) doctrine: 3.0.0 escape-string-regexp: 4.0.0 - eslint-scope: 7.1.1 - eslint-utils: 3.0.0_eslint@8.30.0 - eslint-visitor-keys: 3.3.0 - espree: 9.4.1 - esquery: 1.4.0 + eslint-scope: 7.2.2 + eslint-visitor-keys: 3.4.3 + espree: 9.6.1 + esquery: 1.5.0 esutils: 2.0.3 fast-deep-equal: 3.1.3 file-entry-cache: 6.0.1 find-up: 5.0.0 glob-parent: 6.0.2 - globals: 13.19.0 - grapheme-splitter: 1.0.4 - ignore: 5.2.4 - import-fresh: 3.3.0 + globals: 13.24.0 + graphemer: 1.4.0 + ignore: 5.3.1 imurmurhash: 0.1.4 is-glob: 4.0.3 is-path-inside: 3.0.3 - js-sdsl: 4.2.0 js-yaml: 4.1.0 json-stable-stringify-without-jsonify: 1.0.1 levn: 0.4.1 lodash.merge: 4.6.2 minimatch: 3.1.2 natural-compare: 1.4.0 - optionator: 0.9.1 - regexpp: 3.2.0 + optionator: 0.9.3 strip-ansi: 6.0.1 - strip-json-comments: 3.1.1 text-table: 0.2.0 transitivePeerDependencies: - supports-color dev: true - /espree/9.4.1: - resolution: {integrity: sha512-XwctdmTO6SIvCzd9810yyNzIrOrqNYV9Koizx4C/mRhf9uq0o4yHoCEU/670pOxOL/MSraektvSAji79kX90Vg==} + /espree@9.6.1: + resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: - acorn: 8.8.2 - acorn-jsx: 5.3.2_acorn@8.8.2 - eslint-visitor-keys: 3.3.0 + acorn: 8.11.3 + acorn-jsx: 5.3.2(acorn@8.11.3) + eslint-visitor-keys: 3.4.3 dev: true - /esprima/4.0.1: + /esprima@4.0.1: resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} engines: {node: '>=4'} hasBin: true dev: true - /esquery/1.4.0: - resolution: {integrity: sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==} + /esquery@1.5.0: + resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==} engines: {node: '>=0.10'} dependencies: estraverse: 5.3.0 dev: true - /esrecurse/4.3.0: + /esrecurse@4.3.0: resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} engines: {node: '>=4.0'} dependencies: estraverse: 5.3.0 dev: true - /estraverse/4.3.0: + /estraverse@4.3.0: resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==} engines: {node: '>=4.0'} dev: true - /estraverse/5.3.0: + /estraverse@5.3.0: resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} engines: {node: '>=4.0'} dev: true - /estree-walker/2.0.2: + /estree-walker@2.0.2: resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} - /esutils/2.0.3: + /estree-walker@3.0.3: + resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} + dependencies: + '@types/estree': 1.0.5 + dev: true + + /esutils@2.0.3: resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} engines: {node: '>=0.10.0'} dev: true - /eventemitter2/6.4.7: + /eventemitter2@6.4.7: resolution: {integrity: sha512-tYUSVOGeQPKt/eC1ABfhHy5Xd96N3oIijJvN3O9+TsC28T5V9yX9oEfEK5faP0EFSNVOG97qtAS68GBrQB2hDg==} dev: true - /eventemitter3/4.0.7: + /eventemitter3@4.0.7: resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==} dev: false - /execa/4.1.0: + /execa@4.1.0: resolution: {integrity: sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==} engines: {node: '>=10'} dependencies: @@ -2380,57 +2987,67 @@ packages: strip-final-newline: 2.0.0 dev: true - /executable/4.1.1: + /execa@8.0.1: + resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==} + engines: {node: '>=16.17'} + dependencies: + cross-spawn: 7.0.3 + get-stream: 8.0.1 + human-signals: 5.0.0 + is-stream: 3.0.0 + merge-stream: 2.0.0 + npm-run-path: 5.3.0 + onetime: 6.0.0 + signal-exit: 4.1.0 + strip-final-newline: 3.0.0 + dev: true + + /executable@4.1.1: resolution: {integrity: sha512-8iA79xD3uAch729dUG8xaaBBFGaEa0wdD2VkYLFHwlqosEj/jT66AzcreRDSgV7ehnNLBW2WR5jIXwGKjVdTLg==} engines: {node: '>=4'} dependencies: pify: 2.3.0 dev: true - /extend-shallow/2.0.1: + /extend-shallow@2.0.1: resolution: {integrity: sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==} engines: {node: '>=0.10.0'} dependencies: is-extendable: 0.1.1 dev: true - /extend/3.0.2: + /extend@3.0.2: resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} dev: true - /extract-files/9.0.0: - resolution: {integrity: sha512-CvdFfHkC95B4bBBk36hcEmvdR2awOdhhVUYH6S/zrVj3477zven/fJMYg7121h4T1xHZC+tetUpubpAhxwI7hQ==} - engines: {node: ^10.17.0 || ^12.0.0 || >= 13.7.0} - dev: false - - /extract-zip/2.0.1_supports-color@8.1.1: + /extract-zip@2.0.1(supports-color@8.1.1): resolution: {integrity: sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==} engines: {node: '>= 10.17.0'} hasBin: true dependencies: - debug: 4.3.4_supports-color@8.1.1 + debug: 4.3.4(supports-color@8.1.1) get-stream: 5.2.0 yauzl: 2.10.0 optionalDependencies: - '@types/yauzl': 2.10.0 + '@types/yauzl': 2.10.3 transitivePeerDependencies: - supports-color dev: true - /extsprintf/1.3.0: + /extsprintf@1.3.0: resolution: {integrity: sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==} engines: {'0': node >=0.6.0} dev: true - /fake-xml-http-request/2.1.2: + /fake-xml-http-request@2.1.2: resolution: {integrity: sha512-HaFMBi7r+oEC9iJNpc3bvcW7Z7iLmM26hPDmlb0mFwyANSsOQAtJxbdWsXITKOzZUyMYK0zYCv3h5yDj9TsiXg==} - /fast-deep-equal/3.1.3: + /fast-deep-equal@3.1.3: resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} dev: true - /fast-glob/3.2.12: - resolution: {integrity: sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==} + /fast-glob@3.3.2: + resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} engines: {node: '>=8.6.0'} dependencies: '@nodelib/fs.stat': 2.0.5 @@ -2440,48 +3057,52 @@ packages: micromatch: 4.0.5 dev: true - /fast-json-stable-stringify/2.1.0: + /fast-json-stable-stringify@2.1.0: resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} dev: true - /fast-levenshtein/2.0.6: + /fast-levenshtein@2.0.6: resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} dev: true - /fastq/1.14.0: - resolution: {integrity: sha512-eR2D+V9/ExcbF9ls441yIuN6TI2ED1Y2ZcA5BmMtJsOkWOFRJQ0Jt0g1UwqXJJVAb+V+umH5Dfr8oh4EVP7VVg==} + /fastq@1.17.1: + resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==} dependencies: reusify: 1.0.4 dev: true - /fd-slicer/1.1.0: + /fd-slicer@1.1.0: resolution: {integrity: sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==} dependencies: pend: 1.2.0 dev: true - /figures/3.2.0: + /fflate@0.8.2: + resolution: {integrity: sha512-cPJU47OaAoCbg0pBvzsgpTPhmhqI5eJjh/JIu8tPj5q+T7iLvW/JAYUqmE7KOB4R1ZyEhzBaIQpQpardBF5z8A==} + dev: true + + /figures@3.2.0: resolution: {integrity: sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==} engines: {node: '>=8'} dependencies: escape-string-regexp: 1.0.5 dev: true - /file-entry-cache/6.0.1: + /file-entry-cache@6.0.1: resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} engines: {node: ^10.12.0 || >=12.0.0} dependencies: - flat-cache: 3.0.4 + flat-cache: 3.2.0 dev: true - /fill-range/7.0.1: + /fill-range@7.0.1: resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} engines: {node: '>=8'} dependencies: to-regex-range: 5.0.1 dev: true - /finalhandler/1.1.2: + /finalhandler@1.1.2: resolution: {integrity: sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==} engines: {node: '>= 0.8'} dependencies: @@ -2494,7 +3115,7 @@ packages: unpipe: 1.0.0 dev: true - /find-up/5.0.0: + /find-up@5.0.0: resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} engines: {node: '>=10'} dependencies: @@ -2502,35 +3123,36 @@ packages: path-exists: 4.0.0 dev: true - /flat-cache/3.0.4: - resolution: {integrity: sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==} + /flat-cache@3.2.0: + resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==} engines: {node: ^10.12.0 || >=12.0.0} dependencies: - flatted: 3.2.7 + flatted: 3.2.9 + keyv: 4.5.4 rimraf: 3.0.2 dev: true - /flatted/3.2.7: - resolution: {integrity: sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==} + /flatted@3.2.9: + resolution: {integrity: sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==} dev: true - /flexsearch/0.7.21: + /flexsearch@0.7.21: resolution: {integrity: sha512-W7cHV7Hrwjid6lWmy0IhsWDFQboWSng25U3VVywpHOTJnnAZNPScog67G+cVpeX9f7yDD21ih0WDrMMT+JoaYg==} dev: true - /foreground-child/2.0.0: - resolution: {integrity: sha512-dCIq9FpEcyQyXKCkyzmlPTFNgrCzPudOe+mhvJU5zAtlBnGVy2yKxtfsxK2tQBThwq225jcvBjpw1Gr40uzZCA==} - engines: {node: '>=8.0.0'} + /foreground-child@3.1.1: + resolution: {integrity: sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==} + engines: {node: '>=14'} dependencies: cross-spawn: 7.0.3 - signal-exit: 3.0.7 + signal-exit: 4.1.0 dev: true - /forever-agent/0.6.1: + /forever-agent@0.6.1: resolution: {integrity: sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==} dev: true - /form-data/2.3.3: + /form-data@2.3.3: resolution: {integrity: sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==} engines: {node: '>= 0.12'} dependencies: @@ -2539,16 +3161,7 @@ packages: mime-types: 2.1.35 dev: true - /form-data/3.0.1: - resolution: {integrity: sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==} - engines: {node: '>= 6'} - dependencies: - asynckit: 0.4.0 - combined-stream: 1.0.8 - mime-types: 2.1.35 - dev: false - - /form-data/4.0.0: + /form-data@4.0.0: resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==} engines: {node: '>= 6'} dependencies: @@ -2557,81 +3170,105 @@ packages: mime-types: 2.1.35 dev: true - /fs-extra/10.1.0: + /fs-extra@10.1.0: resolution: {integrity: sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==} engines: {node: '>=12'} dependencies: - graceful-fs: 4.2.10 + graceful-fs: 4.2.11 jsonfile: 6.1.0 - universalify: 2.0.0 + universalify: 2.0.1 dev: true - /fs-extra/9.1.0: + /fs-extra@9.1.0: resolution: {integrity: sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==} engines: {node: '>=10'} dependencies: at-least-node: 1.0.0 - graceful-fs: 4.2.10 + graceful-fs: 4.2.11 jsonfile: 6.1.0 - universalify: 2.0.0 + universalify: 2.0.1 dev: true - /fs.realpath/1.0.0: + /fs.realpath@1.0.0: resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} - /fsevents/2.3.2: - resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==} + /fsevents@2.3.3: + resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} os: [darwin] requiresBuild: true optional: true - /function-bind/1.1.1: - resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==} + /function-bind@1.1.2: + resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} + dev: true - /get-caller-file/2.0.5: - resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} - engines: {node: 6.* || 8.* || >= 10.*} + /get-func-name@2.0.2: + resolution: {integrity: sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==} dev: true - /get-func-name/2.0.0: - resolution: {integrity: sha512-Hm0ixYtaSZ/V7C8FJrtZIuBBI+iSgL+1Aq82zSu8VQNB4S3Gk8e7Qs3VwBDJAhmRZcFqkl3tQu36g/Foh5I5ig==} + /get-intrinsic@1.2.4: + resolution: {integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==} + engines: {node: '>= 0.4'} + dependencies: + es-errors: 1.3.0 + function-bind: 1.1.2 + has-proto: 1.0.1 + has-symbols: 1.0.3 + hasown: 2.0.1 dev: true - /get-stream/5.2.0: + /get-stream@5.2.0: resolution: {integrity: sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==} engines: {node: '>=8'} dependencies: pump: 3.0.0 dev: true - /getos/3.2.1: + /get-stream@8.0.1: + resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==} + engines: {node: '>=16'} + dev: true + + /getos@3.2.1: resolution: {integrity: sha512-U56CfOK17OKgTVqozZjUKNdkfEv6jk5WISBJ8SHoagjE6L69zOwl3Z+O8myjY9MEW3i2HPWQBt/LTbCgcC973Q==} dependencies: - async: 3.2.4 + async: 3.2.5 dev: true - /getpass/0.1.7: + /getpass@0.1.7: resolution: {integrity: sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==} dependencies: assert-plus: 1.0.0 dev: true - /glob-parent/5.1.2: + /glob-parent@5.1.2: resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} engines: {node: '>= 6'} dependencies: is-glob: 4.0.3 dev: true - /glob-parent/6.0.2: + /glob-parent@6.0.2: resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} engines: {node: '>=10.13.0'} dependencies: is-glob: 4.0.3 dev: true - /glob/7.2.3: + /glob@10.3.10: + resolution: {integrity: sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==} + engines: {node: '>=16 || 14 >=14.17'} + hasBin: true + dependencies: + foreground-child: 3.1.1 + jackspeak: 2.3.6 + minimatch: 9.0.3 + minipass: 7.0.4 + path-scurry: 1.10.1 + dev: true + + /glob@7.2.3: resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} dependencies: fs.realpath: 1.0.0 @@ -2641,85 +3278,78 @@ packages: once: 1.4.0 path-is-absolute: 1.0.1 - /glob/8.1.0: - resolution: {integrity: sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==} - engines: {node: '>=12'} - dependencies: - fs.realpath: 1.0.0 - inflight: 1.0.6 - inherits: 2.0.4 - minimatch: 5.1.6 - once: 1.4.0 - dev: true - - /global-dirs/3.0.1: + /global-dirs@3.0.1: resolution: {integrity: sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA==} engines: {node: '>=10'} dependencies: ini: 2.0.0 dev: true - /globals/13.19.0: - resolution: {integrity: sha512-dkQ957uSRWHw7CFXLUtUHQI3g3aWApYhfNR2O6jn/907riyTYKVBmxYVROkBcY614FSSeSJh7Xm7SrUWCxvJMQ==} + /globals@13.24.0: + resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==} engines: {node: '>=8'} dependencies: type-fest: 0.20.2 dev: true - /globby/11.1.0: + /globby@11.1.0: resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} engines: {node: '>=10'} dependencies: array-union: 2.1.0 dir-glob: 3.0.1 - fast-glob: 3.2.12 - ignore: 5.2.4 + fast-glob: 3.3.2 + ignore: 5.3.1 merge2: 1.4.1 slash: 3.0.0 dev: true - /globby/13.1.3: - resolution: {integrity: sha512-8krCNHXvlCgHDpegPzleMq07yMYTO2sXKASmZmquEYWEmCx6J5UTRbp5RwMJkTJGtcQ44YpiUYUiN0b9mzy8Bw==} + /globby@13.2.2: + resolution: {integrity: sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dependencies: dir-glob: 3.0.1 - fast-glob: 3.2.12 - ignore: 5.2.4 + fast-glob: 3.3.2 + ignore: 5.3.1 merge2: 1.4.1 slash: 4.0.0 dev: true - /graceful-fs/4.2.10: - resolution: {integrity: sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==} + /gopd@1.0.1: + resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} + dependencies: + get-intrinsic: 1.2.4 + dev: true + + /graceful-fs@4.2.11: + resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} dev: true - /grapheme-splitter/1.0.4: - resolution: {integrity: sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==} + /graphemer@1.4.0: + resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} dev: true - /graphql-request/5.2.0_graphql@16.6.0: - resolution: {integrity: sha512-pLhKIvnMyBERL0dtFI3medKqWOz/RhHdcgbZ+hMMIb32mEPa5MJSzS4AuXxfI4sRAu6JVVk5tvXuGfCWl9JYWQ==} + /graphql-request@6.0.0(graphql@16.6.0): + resolution: {integrity: sha512-2BmHTuglonjZvmNVw6ZzCfFlW/qkIPds0f+Qdi/Lvjsl3whJg2uvHmSvHnLWhUTEw6zcxPYAHiZoPvSVKOZ7Jw==} peerDependencies: graphql: 14 - 16 dependencies: - '@graphql-typed-document-node/core': 3.1.1_graphql@16.6.0 - cross-fetch: 3.1.5 - extract-files: 9.0.0 - form-data: 3.0.1 + '@graphql-typed-document-node/core': 3.2.0(graphql@16.6.0) + cross-fetch: 3.1.8 graphql: 16.6.0 transitivePeerDependencies: - encoding dev: false - /graphql/15.8.0: + /graphql@15.8.0: resolution: {integrity: sha512-5gghUc24tP9HRznNpV2+FIoq3xKkj5dTQqf4v0CpdPbFVwFkWoxOM+o+2OC9ZSvjEMTjfmG9QT+gcvggTwW1zw==} engines: {node: '>= 10.x'} - /graphql/16.6.0: + /graphql@16.6.0: resolution: {integrity: sha512-KPIBPDlW7NxrbT/eh4qPXz5FiFdL5UbaA0XUNz2Rp3Z3hqBSkbj0GVjwFDztsWVauZUWsbKHgMg++sk8UX0bkw==} engines: {node: ^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0} - /gray-matter/4.0.3: + /gray-matter@4.0.3: resolution: {integrity: sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q==} engines: {node: '>=6.0'} dependencies: @@ -2729,51 +3359,69 @@ packages: strip-bom-string: 1.0.0 dev: true - /has-flag/4.0.0: + /has-flag@4.0.0: resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} engines: {node: '>=8'} dev: true - /has/1.0.3: - resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==} - engines: {node: '>= 0.4.0'} + /has-property-descriptors@1.0.2: + resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} + dependencies: + es-define-property: 1.0.0 + dev: true + + /has-proto@1.0.1: + resolution: {integrity: sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==} + engines: {node: '>= 0.4'} + dev: true + + /has-symbols@1.0.3: + resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} + engines: {node: '>= 0.4'} + dev: true + + /hasown@2.0.1: + resolution: {integrity: sha512-1/th4MHjnwncwXsIW6QMzlvYL9kG5e/CpVvLRZe4XPa8TOUNbCELqmvhDmnkNsAjwaG4+I8gJJL0JBvTTLO9qA==} + engines: {node: '>= 0.4'} dependencies: - function-bind: 1.1.1 + function-bind: 1.1.2 + dev: true - /header-case/2.0.4: + /header-case@2.0.4: resolution: {integrity: sha512-H/vuk5TEEVZwrR0lp2zed9OCo1uAILMlx0JEMgC26rzyJJ3N1v6XkwHHXJQdR2doSjcGPM6OKPYoJgf0plJ11Q==} dependencies: capital-case: 1.0.4 - tslib: 2.4.1 + tslib: 2.6.2 dev: true - /histoire/0.14.2_vite@4.1.4: - resolution: {integrity: sha512-nY9O5sIbtlUsGsLQqMGi601I09OKH7aZamYPcDlW7g1fmkf7IMb15xiREboMunQEIpDrpAH+9aWBxGIN+iQ5eA==} + /histoire@0.16.5(vite@4.5.2): + resolution: {integrity: sha512-zrysBjiQjrwpPGTnPEQ+mYRa7yyls6shcRo8q0AIg49FW95egg1Atq3iwrjK+p09OJu7vWiX+hKEboePMDRAJA==} hasBin: true peerDependencies: vite: ^2.9.0 || ^3.0.0 || ^4.0.0 dependencies: - '@histoire/app': 0.14.2_vite@4.1.4 - '@histoire/controls': 0.14.2 - '@histoire/shared': 0.14.2_vite@4.1.4 - '@histoire/vendors': 0.14.2 - '@types/flexsearch': 0.7.3 + '@akryum/tinypool': 0.3.1 + '@histoire/app': 0.16.5(vite@4.5.2) + '@histoire/controls': 0.16.5(vite@4.5.2) + '@histoire/shared': 0.16.5(vite@4.5.2) + '@histoire/vendors': 0.16.5 + '@types/flexsearch': 0.7.6 '@types/markdown-it': 12.2.3 birpc: 0.1.1 change-case: 4.1.2 - chokidar: 3.5.3 + chokidar: 3.6.0 connect: 3.7.0 - defu: 6.1.1 + defu: 6.1.4 diacritics: 1.3.0 flexsearch: 0.7.21 fs-extra: 10.1.0 - globby: 13.1.3 + globby: 13.2.2 gray-matter: 4.0.3 - jiti: 1.16.0 + jiti: 1.21.0 jsdom: 20.0.3 markdown-it: 12.3.2 - markdown-it-anchor: 8.6.6_2zb4u3vubltivolgu556vv4aom - markdown-it-attrs: 4.1.6_markdown-it@12.3.2 + markdown-it-anchor: 8.6.7(@types/markdown-it@12.2.3)(markdown-it@12.3.2) + markdown-it-attrs: 4.1.6(markdown-it@12.3.2) markdown-it-emoji: 2.0.2 micromatch: 4.0.5 mrmime: 1.0.1 @@ -2781,15 +3429,15 @@ packages: picocolors: 1.0.0 sade: 1.8.1 shiki-es: 0.2.0 - sirv: 2.0.2 - tinypool: 0.1.3 - vite: 4.1.4 + sirv: 2.0.4 + vite: 4.5.2 vite-node: 0.28.4 transitivePeerDependencies: - '@types/node' - bufferutil - canvas - less + - lightningcss - sass - stylus - sugarss @@ -2798,73 +3446,78 @@ packages: - utf-8-validate dev: true - /html-encoding-sniffer/3.0.0: + /html-encoding-sniffer@3.0.0: resolution: {integrity: sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==} engines: {node: '>=12'} dependencies: whatwg-encoding: 2.0.0 dev: true - /html-escaper/2.0.2: + /html-escaper@2.0.2: resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==} dev: true - /http-proxy-agent/5.0.0: + /http-proxy-agent@5.0.0: resolution: {integrity: sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==} engines: {node: '>= 6'} dependencies: '@tootallnate/once': 2.0.0 agent-base: 6.0.2 - debug: 4.3.4 + debug: 4.3.4(supports-color@8.1.1) transitivePeerDependencies: - supports-color dev: true - /http-signature/1.3.6: + /http-signature@1.3.6: resolution: {integrity: sha512-3adrsD6zqo4GsTqtO7FyrejHNv+NgiIfAfv68+jVlFmSr9OGy7zrxONceFRLKvnnZA5jbxQBX1u9PpB6Wi32Gw==} engines: {node: '>=0.10'} dependencies: assert-plus: 1.0.0 jsprim: 2.0.2 - sshpk: 1.17.0 + sshpk: 1.18.0 dev: true - /https-proxy-agent/5.0.1: + /https-proxy-agent@5.0.1: resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==} engines: {node: '>= 6'} dependencies: agent-base: 6.0.2 - debug: 4.3.4 + debug: 4.3.4(supports-color@8.1.1) transitivePeerDependencies: - supports-color dev: true - /human-signals/1.1.1: + /human-signals@1.1.1: resolution: {integrity: sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==} engines: {node: '>=8.12.0'} dev: true - /iconv-lite/0.6.3: + /human-signals@5.0.0: + resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==} + engines: {node: '>=16.17.0'} + dev: true + + /iconv-lite@0.6.3: resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} engines: {node: '>=0.10.0'} dependencies: safer-buffer: 2.1.2 dev: true - /ieee754/1.2.1: + /ieee754@1.2.1: resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} dev: true - /ignore/5.2.4: - resolution: {integrity: sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==} + /ignore@5.3.1: + resolution: {integrity: sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==} engines: {node: '>= 4'} dev: true - /immutable/4.2.4: - resolution: {integrity: sha512-WDxL3Hheb1JkRN3sQkyujNlL/xRjAo3rJtaU5xeufUauG66JdMr32bLj4gF+vWl84DIA3Zxw7tiAjneYzRRw+w==} + /immutable@4.3.5: + resolution: {integrity: sha512-8eabxkth9gZatlwl5TBuJnCsoTADlL6ftEr7A4qgdaTsPyreilDSnUk57SO+jfKcNtxPa22U5KK6DSeAYhpBJw==} dev: false - /import-fresh/3.3.0: + /import-fresh@3.3.0: resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} engines: {node: '>=6'} dependencies: @@ -2872,84 +3525,74 @@ packages: resolve-from: 4.0.0 dev: true - /imurmurhash/0.1.4: + /imurmurhash@0.1.4: resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} engines: {node: '>=0.8.19'} dev: true - /indent-string/4.0.0: + /indent-string@4.0.0: resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==} engines: {node: '>=8'} dev: true - /inflected/2.1.0: + /inflected@2.1.0: resolution: {integrity: sha512-hAEKNxvHf2Iq3H60oMBHkB4wl5jn3TPF3+fXek/sRwAB5gP9xWs4r7aweSF95f99HFoz69pnZTcu8f0SIHV18w==} - /inflight/1.0.6: + /inflight@1.0.6: resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} dependencies: once: 1.4.0 wrappy: 1.0.2 - /inherits/2.0.4: + /inherits@2.0.4: resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} - /ini/1.3.8: + /ini@1.3.8: resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} dev: true - /ini/2.0.0: + /ini@2.0.0: resolution: {integrity: sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==} engines: {node: '>=10'} dev: true - /is-binary-path/2.1.0: + /is-binary-path@2.1.0: resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} engines: {node: '>=8'} dependencies: binary-extensions: 2.2.0 dev: true - /is-ci/3.0.1: + /is-ci@3.0.1: resolution: {integrity: sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==} hasBin: true dependencies: - ci-info: 3.7.0 + ci-info: 3.9.0 dev: true - /is-core-module/2.11.0: - resolution: {integrity: sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==} - dependencies: - has: 1.0.3 - - /is-extendable/0.1.1: + /is-extendable@0.1.1: resolution: {integrity: sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==} engines: {node: '>=0.10.0'} dev: true - /is-extglob/2.1.1: + /is-extglob@2.1.1: resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} engines: {node: '>=0.10.0'} dev: true - /is-fullwidth-code-point/3.0.0: + /is-fullwidth-code-point@3.0.0: resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} engines: {node: '>=8'} dev: true - /is-fullwidth-code-point/4.0.0: - resolution: {integrity: sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==} - engines: {node: '>=12'} - dev: true - - /is-glob/4.0.3: + /is-glob@4.0.3: resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} engines: {node: '>=0.10.0'} dependencies: is-extglob: 2.1.1 dev: true - /is-installed-globally/0.4.0: + /is-installed-globally@0.4.0: resolution: {integrity: sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==} engines: {node: '>=10'} dependencies: @@ -2957,85 +3600,110 @@ packages: is-path-inside: 3.0.3 dev: true - /is-number/7.0.0: + /is-number@7.0.0: resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} engines: {node: '>=0.12.0'} dev: true - /is-path-inside/3.0.3: + /is-path-inside@3.0.3: resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} engines: {node: '>=8'} dev: true - /is-potential-custom-element-name/1.0.1: + /is-potential-custom-element-name@1.0.1: resolution: {integrity: sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==} dev: true - /is-stream/2.0.1: + /is-stream@2.0.1: resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} engines: {node: '>=8'} dev: true - /is-typedarray/1.0.0: + /is-stream@3.0.0: + resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dev: true + + /is-typedarray@1.0.0: resolution: {integrity: sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==} dev: true - /is-unicode-supported/0.1.0: + /is-unicode-supported@0.1.0: resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==} engines: {node: '>=10'} dev: true - /isexe/2.0.0: + /isexe@2.0.0: resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} dev: true - /isstream/0.1.2: + /isstream@0.1.2: resolution: {integrity: sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==} dev: true - /istanbul-lib-coverage/3.2.0: - resolution: {integrity: sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==} - engines: {node: '>=8'} + /istanbul-lib-coverage@3.2.2: + resolution: {integrity: sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==} + engines: {node: '>=8'} + dev: true + + /istanbul-lib-report@3.0.1: + resolution: {integrity: sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==} + engines: {node: '>=10'} + dependencies: + istanbul-lib-coverage: 3.2.2 + make-dir: 4.0.0 + supports-color: 7.2.0 + dev: true + + /istanbul-lib-source-maps@5.0.4: + resolution: {integrity: sha512-wHOoEsNJTVltaJp8eVkm8w+GVkVNHT2YDYo53YdzQEL2gWm1hBX5cGFR9hQJtuGLebidVX7et3+dmDZrmclduw==} + engines: {node: '>=10'} + dependencies: + '@jridgewell/trace-mapping': 0.3.25 + debug: 4.3.4(supports-color@8.1.1) + istanbul-lib-coverage: 3.2.2 + transitivePeerDependencies: + - supports-color dev: true - /istanbul-lib-report/3.0.0: - resolution: {integrity: sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==} + /istanbul-reports@3.1.6: + resolution: {integrity: sha512-TLgnMkKg3iTDsQ9PbPTdpfAK2DzjF9mqUG7RMgcQl8oFjad8ob4laGxv5XV5U9MAfx8D6tSJiUyuAwzLicaxlg==} engines: {node: '>=8'} dependencies: - istanbul-lib-coverage: 3.2.0 - make-dir: 3.1.0 - supports-color: 7.2.0 + html-escaper: 2.0.2 + istanbul-lib-report: 3.0.1 dev: true - /istanbul-reports/3.1.5: - resolution: {integrity: sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w==} - engines: {node: '>=8'} + /jackspeak@2.3.6: + resolution: {integrity: sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==} + engines: {node: '>=14'} dependencies: - html-escaper: 2.0.2 - istanbul-lib-report: 3.0.0 + '@isaacs/cliui': 8.0.2 + optionalDependencies: + '@pkgjs/parseargs': 0.11.0 dev: true - /jiti/1.16.0: - resolution: {integrity: sha512-L3BJStEf5NAqNuzrpfbN71dp43mYIcBUlCRea/vdyv5dW/AYa1d4bpelko4SHdY3I6eN9Wzyasxirj1/vv5kmg==} + /jiti@1.21.0: + resolution: {integrity: sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==} hasBin: true dev: true - /js-beautify/1.14.6: - resolution: {integrity: sha512-GfofQY5zDp+cuHc+gsEXKPpNw2KbPddreEo35O6jT6i0RVK6LhsoYBhq5TvK4/n74wnA0QbK8gGd+jUZwTMKJw==} - engines: {node: '>=10'} + /js-beautify@1.14.11: + resolution: {integrity: sha512-rPogWqAfoYh1Ryqqh2agUpVfbxAhbjuN1SmU86dskQUKouRiggUTCO4+2ym9UPXllc2WAp0J+T5qxn7Um3lCdw==} + engines: {node: '>=14'} hasBin: true dependencies: config-chain: 1.1.13 - editorconfig: 0.15.3 - glob: 8.1.0 - nopt: 6.0.0 + editorconfig: 1.0.4 + glob: 10.3.10 + nopt: 7.2.0 dev: true - /js-sdsl/4.2.0: - resolution: {integrity: sha512-dyBIzQBDkCqCu+0upx25Y2jGdbTGxE9fshMsCdK0ViOongpV+n5tXRcZY9v7CaVQ79AGS9KA1KHtojxiM7aXSQ==} + /js-tokens@9.0.0: + resolution: {integrity: sha512-WriZw1luRMlmV3LGJaR6QOJjWwgLUTf89OwT2lUOyjX2dJGBwgmIkbcz+7WFZjrZM635JOIR517++e/67CP9dQ==} dev: true - /js-yaml/3.14.1: + /js-yaml@3.14.1: resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} hasBin: true dependencies: @@ -3043,18 +3711,18 @@ packages: esprima: 4.0.1 dev: true - /js-yaml/4.1.0: + /js-yaml@4.1.0: resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} hasBin: true dependencies: argparse: 2.0.1 dev: true - /jsbn/0.1.1: + /jsbn@0.1.1: resolution: {integrity: sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==} dev: true - /jsdom/20.0.3: + /jsdom@20.0.3: resolution: {integrity: sha512-SYhBvTh89tTfCD/CRdSOm13mOBa42iTaTyfyEWBdKcGdPxPtLFBXuHR8XHb33YNYaP+lLbmSvBTsnoesCNJEsQ==} engines: {node: '>=14'} peerDependencies: @@ -3064,30 +3732,30 @@ packages: optional: true dependencies: abab: 2.0.6 - acorn: 8.8.2 + acorn: 8.11.3 acorn-globals: 7.0.1 cssom: 0.5.0 cssstyle: 2.3.0 data-urls: 3.0.2 decimal.js: 10.4.3 domexception: 4.0.0 - escodegen: 2.0.0 + escodegen: 2.1.0 form-data: 4.0.0 html-encoding-sniffer: 3.0.0 http-proxy-agent: 5.0.0 https-proxy-agent: 5.0.1 is-potential-custom-element-name: 1.0.1 - nwsapi: 2.2.2 + nwsapi: 2.2.7 parse5: 7.1.2 saxes: 6.0.0 symbol-tree: 3.2.4 - tough-cookie: 4.1.2 + tough-cookie: 4.1.3 w3c-xmlserializer: 4.0.0 webidl-conversions: 7.0.0 whatwg-encoding: 2.0.0 whatwg-mimetype: 3.0.0 whatwg-url: 11.0.0 - ws: 8.11.0 + ws: 8.16.0 xml-name-validator: 4.0.0 transitivePeerDependencies: - bufferutil @@ -3095,9 +3763,9 @@ packages: - utf-8-validate dev: true - /jsdom/21.1.0: - resolution: {integrity: sha512-m0lzlP7qOtthD918nenK3hdItSd2I+V3W9IrBcB36sqDwG+KnUs66IF5GY7laGWUnlM9vTsD0W1QwSEBYWWcJg==} - engines: {node: '>=14'} + /jsdom@22.1.0: + resolution: {integrity: sha512-/9AVW7xNbsBv6GfWho4TTNjEo9fe6Zhf9O7s0Fhhr3u+awPwAJMKwAMXnkk5vBxflqLW9hTHX/0cs+P3gW+cQw==} + engines: {node: '>=16'} peerDependencies: canvas: ^2.5.0 peerDependenciesMeta: @@ -3105,30 +3773,27 @@ packages: optional: true dependencies: abab: 2.0.6 - acorn: 8.8.2 - acorn-globals: 7.0.1 - cssom: 0.5.0 - cssstyle: 2.3.0 - data-urls: 3.0.2 + cssstyle: 3.0.0 + data-urls: 4.0.0 decimal.js: 10.4.3 domexception: 4.0.0 - escodegen: 2.0.0 form-data: 4.0.0 html-encoding-sniffer: 3.0.0 http-proxy-agent: 5.0.0 https-proxy-agent: 5.0.1 is-potential-custom-element-name: 1.0.1 - nwsapi: 2.2.2 + nwsapi: 2.2.7 parse5: 7.1.2 + rrweb-cssom: 0.6.0 saxes: 6.0.0 symbol-tree: 3.2.4 - tough-cookie: 4.1.2 + tough-cookie: 4.1.3 w3c-xmlserializer: 4.0.0 webidl-conversions: 7.0.0 whatwg-encoding: 2.0.0 whatwg-mimetype: 3.0.0 - whatwg-url: 11.0.0 - ws: 8.11.0 + whatwg-url: 12.0.1 + ws: 8.16.0 xml-name-validator: 4.0.0 transitivePeerDependencies: - bufferutil @@ -3136,35 +3801,39 @@ packages: - utf-8-validate dev: true - /json-schema-traverse/0.4.1: + /json-buffer@3.0.1: + resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} + dev: true + + /json-schema-traverse@0.4.1: resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} dev: true - /json-schema/0.4.0: + /json-schema@0.4.0: resolution: {integrity: sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==} dev: true - /json-stable-stringify-without-jsonify/1.0.1: + /json-stable-stringify-without-jsonify@1.0.1: resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} dev: true - /json-stringify-safe/5.0.1: + /json-stringify-safe@5.0.1: resolution: {integrity: sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==} dev: true - /jsonc-parser/3.2.0: - resolution: {integrity: sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==} + /jsonc-parser@3.2.1: + resolution: {integrity: sha512-AilxAyFOAcK5wA1+LeaySVBrHsGQvUFCDWXKpZjzaL0PqW+xfBOttn8GNtWKFWqneyMZj41MWF9Kl6iPWLwgOA==} dev: true - /jsonfile/6.1.0: + /jsonfile@6.1.0: resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} dependencies: - universalify: 2.0.0 + universalify: 2.0.1 optionalDependencies: - graceful-fs: 4.2.10 + graceful-fs: 4.2.11 dev: true - /jsprim/2.0.2: + /jsprim@2.0.2: resolution: {integrity: sha512-gqXddjPqQ6G40VdnI6T6yObEC+pDNvyP95wdQhkWkg7crHH3km5qP1FsOXEkzEQwnz6gz5qGTn1c2Y52wP3OyQ==} engines: {'0': node >=0.6.0} dependencies: @@ -3174,32 +3843,30 @@ packages: verror: 1.10.0 dev: true - /kind-of/6.0.3: + /keyv@4.5.4: + resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} + dependencies: + json-buffer: 3.0.1 + dev: true + + /kind-of@6.0.3: resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} engines: {node: '>=0.10.0'} dev: true - /launch-editor/2.6.0: - resolution: {integrity: sha512-JpDCcQnyAAzZZaZ7vEiSqL690w7dAEyLao+KC96zBplnYbJS7TYNjvM3M7y3dGz+v7aIsJk3hllWuc0kWAjyRQ==} + /launch-editor@2.6.1: + resolution: {integrity: sha512-eB/uXmFVpY4zezmGp5XtU21kwo7GBbKB+EQ+UZeWtGb9yAM5xt/Evk+lYH3eRNAtId+ej4u7TYPFZ07w4s7rRw==} dependencies: picocolors: 1.0.0 - shell-quote: 1.8.0 + shell-quote: 1.8.1 dev: true - /lazy-ass/1.6.0: + /lazy-ass@1.6.0: resolution: {integrity: sha512-cc8oEVoctTvsFZ/Oje/kGnHbpWHYBe8IAJe4C0QNc3t8uM/0Y8+erSz/7Y1ALuXTEZTMvxXwO6YbX1ey3ujiZw==} engines: {node: '> 0.8'} dev: true - /levn/0.3.0: - resolution: {integrity: sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==} - engines: {node: '>= 0.8.0'} - dependencies: - prelude-ls: 1.1.2 - type-check: 0.3.2 - dev: true - - /levn/0.4.1: + /levn@0.4.1: resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} engines: {node: '>= 0.8.0'} dependencies: @@ -3207,13 +3874,13 @@ packages: type-check: 0.4.0 dev: true - /linkify-it/3.0.3: + /linkify-it@3.0.3: resolution: {integrity: sha512-ynTsyrFSdE5oZ/O9GEf00kPngmOfVwazR5GKDq6EYfhlpFug3J2zybX56a2PRRpc9P+FuSoGNAwjlbDs9jJBPQ==} dependencies: uc.micro: 1.0.6 dev: true - /listr2/3.14.0_enquirer@2.3.6: + /listr2@3.14.0(enquirer@2.4.1): resolution: {integrity: sha512-TyWI8G99GX9GjE54cJ+RrNMcIFBfwMPxc3XTFiAYGN4s10hWROGtOg7+O6u6LE3mNkyld7RSLE6nrKBvTfcs3g==} engines: {node: '>=10.0.0'} peerDependencies: @@ -3223,110 +3890,43 @@ packages: optional: true dependencies: cli-truncate: 2.1.0 - colorette: 2.0.19 - enquirer: 2.3.6 + colorette: 2.0.20 + enquirer: 2.4.1 log-update: 4.0.0 p-map: 4.0.0 - rfdc: 1.3.0 - rxjs: 7.8.0 + rfdc: 1.3.1 + rxjs: 7.8.1 through: 2.3.8 wrap-ansi: 7.0.0 dev: true - /local-pkg/0.4.3: - resolution: {integrity: sha512-SFppqq5p42fe2qcZQqqEOiVRXl+WCP1MdT6k7BDEW1j++sp5fIY+/fdRQitvKgB5BrBcmrs5m/L0v2FrU5MY1g==} + /local-pkg@0.5.0: + resolution: {integrity: sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg==} engines: {node: '>=14'} + dependencies: + mlly: 1.5.0 + pkg-types: 1.0.3 dev: true - /locate-path/6.0.0: + /locate-path@6.0.0: resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} engines: {node: '>=10'} dependencies: p-locate: 5.0.0 dev: true - /lodash.assign/4.2.0: - resolution: {integrity: sha512-hFuH8TY+Yji7Eja3mGiuAxBqLagejScbG8GbG0j6o9vzn0YL14My+ktnqtZgFTosKymC9/44wP6s7xyuLfnClw==} - - /lodash.camelcase/4.3.0: - resolution: {integrity: sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==} - - /lodash.clonedeep/4.5.0: - resolution: {integrity: sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ==} - - /lodash.compact/3.0.1: - resolution: {integrity: sha512-2ozeiPi+5eBXW1CLtzjk8XQFhQOEMwwfxblqeq6EGyTxZJ1bPATqilY0e6g2SLQpP4KuMeuioBhEnWz5Pr7ICQ==} - - /lodash.find/4.6.0: - resolution: {integrity: sha512-yaRZoAV3Xq28F1iafWN1+a0rflOej93l1DQUejs3SZ41h2O9UJBoS9aueGjPDgAl4B6tPC0NuuchLKaDQQ3Isg==} - - /lodash.flatten/4.4.0: - resolution: {integrity: sha512-C5N2Z3DgnnKr0LOpv/hKCgKdb7ZZwafIrsesve6lmzvZIRZRGaZ/l6Q8+2W7NaT+ZwO3fFlSCzCzrDCFdJfZ4g==} - - /lodash.forin/4.4.0: - resolution: {integrity: sha512-APldePP4yvGhMcplVxv9L+exdLHMRHRhH1Q9O70zRJMm9HbTm6zxaihXtNl+ICOBApeFWoH7jNmFr/L4XfWeiQ==} - - /lodash.get/4.4.2: - resolution: {integrity: sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==} - - /lodash.has/4.5.2: - resolution: {integrity: sha512-rnYUdIo6xRCJnQmbVFEwcxF144erlD+M3YcJUVesflU9paQaE8p+fJDcIQrlMYbxoANFL+AB9hZrzSBBk5PL+g==} - - /lodash.invokemap/4.6.0: - resolution: {integrity: sha512-CfkycNtMqgUlfjfdh2BhKO/ZXrP8ePOX5lEU/g0R3ItJcnuxWDwokMGKx1hWcfOikmyOVx6X9IwWnDGlgKl61w==} - - /lodash.isempty/4.4.0: - resolution: {integrity: sha512-oKMuF3xEeqDltrGMfDxAPGIVMSSRv8tbRSODbrs4KGsRRLEhrW8N8Rd4DRgB2+621hY8A8XwwrTVhXWpxFvMzg==} - - /lodash.isequal/4.5.0: - resolution: {integrity: sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==} - - /lodash.isfunction/3.0.9: - resolution: {integrity: sha512-AirXNj15uRIMMPihnkInB4i3NHeb4iBtNg9WRWuK2o31S+ePwwNmDPaTL3o7dTJ+VXNZim7rFs4rxN4YU1oUJw==} - - /lodash.isinteger/4.0.4: - resolution: {integrity: sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA==} - - /lodash.isplainobject/4.0.6: - resolution: {integrity: sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==} - - /lodash.lowerfirst/4.3.1: - resolution: {integrity: sha512-UUKX7VhP1/JL54NXg2aq/E1Sfnjjes8fNYTNkPU8ZmsaVeBvPHKdbNaN79Re5XRL01u6wbq3j0cbYZj71Fcu5w==} - - /lodash.map/4.6.0: - resolution: {integrity: sha512-worNHGKLDetmcEYDvh2stPCrrQRkP20E4l0iIS7F8EvzMqBBi7ltvFN5m1HvTf1P7Jk1txKhvFcmYsCr8O2F1Q==} - - /lodash.mapvalues/4.6.0: - resolution: {integrity: sha512-JPFqXFeZQ7BfS00H58kClY7SPVeHertPE0lNuCyZ26/XlN8TvakYD7b9bGyNmXbT/D3BbtPAAmq90gPWqLkxlQ==} - - /lodash.merge/4.6.2: + /lodash.merge@4.6.2: resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} dev: true - /lodash.once/4.1.1: + /lodash.once@4.1.1: resolution: {integrity: sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==} dev: true - /lodash.pick/4.4.0: - resolution: {integrity: sha512-hXt6Ul/5yWjfklSGvLQl8vM//l3FtyHZeuelpzK6mm99pNvN9yTDruNZPEJZD1oWrqo+izBmB7oUfWgcCX7s4Q==} - - /lodash.snakecase/4.1.1: - resolution: {integrity: sha512-QZ1d4xoBHYUeuouhEq3lk3Uq7ldgyFXGBhg04+oRLnIz8o9T65Eh+8YdroUwn846zchkA9yDsDl5CVVaV2nqYw==} - - /lodash.uniq/4.5.0: - resolution: {integrity: sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==} - - /lodash.uniqby/4.7.0: - resolution: {integrity: sha512-e/zcLx6CSbmaEgFHCA7BnoQKyCtKMxnuWrJygbwPs/AIn+IMKl66L8/s+wBUn5LRw2pZx3bUHibiV1b6aTWIww==} - - /lodash.values/4.3.0: - resolution: {integrity: sha512-r0RwvdCv8id9TUblb/O7rYPwVy6lerCbcawrfdo9iC/1t1wsNMJknO79WNBgwkH0hIeJ08jmvvESbFpNb4jH0Q==} - - /lodash/4.17.21: + /lodash@4.17.21: resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} - dev: true - /log-symbols/4.1.0: + /log-symbols@4.1.0: resolution: {integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==} engines: {node: '>=10'} dependencies: @@ -3334,7 +3934,7 @@ packages: is-unicode-supported: 0.1.0 dev: true - /log-update/4.0.0: + /log-update@4.0.0: resolution: {integrity: sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==} engines: {node: '>=10'} dependencies: @@ -3344,46 +3944,53 @@ packages: wrap-ansi: 6.2.0 dev: true - /loupe/2.3.6: - resolution: {integrity: sha512-RaPMZKiMy8/JruncMU5Bt6na1eftNoo++R4Y+N2FrxkDVTrGvcyzFTsaGif4QTeKESheMGegbhw6iUAq+5A8zA==} + /loupe@2.3.7: + resolution: {integrity: sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==} dependencies: - get-func-name: 2.0.0 + get-func-name: 2.0.2 dev: true - /lower-case/2.0.2: + /lower-case@2.0.2: resolution: {integrity: sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==} dependencies: - tslib: 2.4.1 + tslib: 2.6.2 dev: true - /lru-cache/4.1.5: - resolution: {integrity: sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==} - dependencies: - pseudomap: 1.0.2 - yallist: 2.1.2 + /lru-cache@10.2.0: + resolution: {integrity: sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==} + engines: {node: 14 || >=16.14} dev: true - /lru-cache/6.0.0: + /lru-cache@6.0.0: resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} engines: {node: '>=10'} dependencies: yallist: 4.0.0 dev: true - /magic-string/0.25.9: - resolution: {integrity: sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==} + /magic-string@0.30.7: + resolution: {integrity: sha512-8vBuFF/I/+OSLRmdf2wwFCJCz+nSn0m6DPvGH1fS/KiQoSaR+sETbov0eIk9KhEKy8CYqIkIAnbohxT/4H0kuA==} + engines: {node: '>=12'} + dependencies: + '@jridgewell/sourcemap-codec': 1.4.15 + + /magicast@0.3.4: + resolution: {integrity: sha512-TyDF/Pn36bBji9rWKHlZe+PZb6Mx5V8IHCSxk7X4aljM4e/vyDvZZYwHewdVaqiA0nb3ghfHU/6AUpDxWoER2Q==} dependencies: - sourcemap-codec: 1.4.8 + '@babel/parser': 7.24.4 + '@babel/types': 7.24.0 + source-map-js: 1.2.0 + dev: true - /make-dir/3.1.0: - resolution: {integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==} - engines: {node: '>=8'} + /make-dir@4.0.0: + resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==} + engines: {node: '>=10'} dependencies: - semver: 6.3.0 + semver: 7.6.0 dev: true - /markdown-it-anchor/8.6.6_2zb4u3vubltivolgu556vv4aom: - resolution: {integrity: sha512-jRW30YGywD2ESXDc+l17AiritL0uVaSnWsb26f+68qaW9zgbIIr1f4v2Nsvc0+s0Z2N3uX6t/yAw7BwCQ1wMsA==} + /markdown-it-anchor@8.6.7(@types/markdown-it@12.2.3)(markdown-it@12.3.2): + resolution: {integrity: sha512-FlCHFwNnutLgVTflOYHPW2pPcl2AACqVzExlkGQNsi4CJgqOHN7YTgDd4LuhgN1BFO3TS0vLAruV1Td6dwWPJA==} peerDependencies: '@types/markdown-it': '*' markdown-it: '*' @@ -3392,7 +3999,7 @@ packages: markdown-it: 12.3.2 dev: true - /markdown-it-attrs/4.1.6_markdown-it@12.3.2: + /markdown-it-attrs@4.1.6(markdown-it@12.3.2): resolution: {integrity: sha512-O7PDKZlN8RFMyDX13JnctQompwrrILuz2y43pW2GagcwpIIElkAdfeek+erHfxUOlXWPsjFeWmZ8ch1xtRLWpA==} engines: {node: '>=6'} peerDependencies: @@ -3401,11 +4008,11 @@ packages: markdown-it: 12.3.2 dev: true - /markdown-it-emoji/2.0.2: + /markdown-it-emoji@2.0.2: resolution: {integrity: sha512-zLftSaNrKuYl0kR5zm4gxXjHaOI3FAOEaloKmRA5hijmJZvSjmxcokOLlzycb/HXlUFWzXqpIEoyEMCE4i9MvQ==} dev: true - /markdown-it/12.3.2: + /markdown-it@12.3.2: resolution: {integrity: sha512-TchMembfxfNVpHkbtriWltGWc+m3xszaRD0CZup7GFFhzIgQqxIfn3eGj1yZpfuflzPvfkt611B2Q/Bsk1YnGg==} hasBin: true dependencies: @@ -3416,20 +4023,20 @@ packages: uc.micro: 1.0.6 dev: true - /mdurl/1.0.1: + /mdurl@1.0.1: resolution: {integrity: sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g==} dev: true - /merge-stream/2.0.0: + /merge-stream@2.0.0: resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} dev: true - /merge2/1.4.1: + /merge2@1.4.1: resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} engines: {node: '>= 8'} dev: true - /micromatch/4.0.5: + /micromatch@4.0.5: resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} engines: {node: '>=8.6'} dependencies: @@ -3437,125 +4044,127 @@ packages: picomatch: 2.3.1 dev: true - /mime-db/1.52.0: + /mime-db@1.52.0: resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} engines: {node: '>= 0.6'} + dev: true - /mime-types/2.1.35: + /mime-types@2.1.35: resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} engines: {node: '>= 0.6'} dependencies: mime-db: 1.52.0 + dev: true - /mimic-fn/2.1.0: + /mimic-fn@2.1.0: resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} engines: {node: '>=6'} dev: true - /minimatch/3.1.2: + /mimic-fn@4.0.0: + resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} + engines: {node: '>=12'} + dev: true + + /minimatch@3.1.2: resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} dependencies: brace-expansion: 1.1.11 - /minimatch/5.1.6: - resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==} - engines: {node: '>=10'} + /minimatch@9.0.1: + resolution: {integrity: sha512-0jWhJpD/MdhPXwPuiRkCbfYfSKp2qnn2eOc279qI7f+osl/l+prKSrvhg157zSYvx/1nmgn2NqdT6k2Z7zSH9w==} + engines: {node: '>=16 || 14 >=14.17'} + dependencies: + brace-expansion: 2.0.1 + dev: true + + /minimatch@9.0.3: + resolution: {integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==} + engines: {node: '>=16 || 14 >=14.17'} dependencies: brace-expansion: 2.0.1 dev: true - /minimist/1.2.7: - resolution: {integrity: sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==} + /minimist@1.2.8: + resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} + dev: true + + /minipass@7.0.4: + resolution: {integrity: sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==} + engines: {node: '>=16 || 14 >=14.17'} dev: true - /miragejs/0.1.47: - resolution: {integrity: sha512-99tuCbIAlMhNhyF3s5d3+5/FdJ7O4jSq/5e3e+sDv7L8dZdwJuwutXe0pobJ7hm6yRChTDjK+Nn8dZZd175wbg==} + /miragejs@0.1.48: + resolution: {integrity: sha512-MGZAq0Q3OuRYgZKvlB69z4gLN4G3PvgC4A2zhkCXCXrLD5wm2cCnwNB59xOBVA+srZ0zEes6u+VylcPIkB4SqA==} engines: {node: 6.* || 8.* || >= 10.*} dependencies: '@miragejs/pretender-node-polyfill': 0.1.2 inflected: 2.1.0 - lodash.assign: 4.2.0 - lodash.camelcase: 4.3.0 - lodash.clonedeep: 4.5.0 - lodash.compact: 3.0.1 - lodash.find: 4.6.0 - lodash.flatten: 4.4.0 - lodash.forin: 4.4.0 - lodash.get: 4.4.2 - lodash.has: 4.5.2 - lodash.invokemap: 4.6.0 - lodash.isempty: 4.4.0 - lodash.isequal: 4.5.0 - lodash.isfunction: 3.0.9 - lodash.isinteger: 4.0.4 - lodash.isplainobject: 4.0.6 - lodash.lowerfirst: 4.3.1 - lodash.map: 4.6.0 - lodash.mapvalues: 4.6.0 - lodash.pick: 4.4.0 - lodash.snakecase: 4.1.1 - lodash.uniq: 4.5.0 - lodash.uniqby: 4.7.0 - lodash.values: 4.3.0 + lodash: 4.17.21 pretender: 3.4.7 - /mlly/1.1.0: - resolution: {integrity: sha512-cwzBrBfwGC1gYJyfcy8TcZU1f+dbH/T+TuOhtYP2wLv/Fb51/uV7HJQfBPtEupZ2ORLRU1EKFS/QfS3eo9+kBQ==} + /mlly@1.5.0: + resolution: {integrity: sha512-NPVQvAY1xr1QoVeG0cy8yUYC7FQcOx6evl/RjT1wL5FvzPnzOysoqB/jmx/DhssT2dYa8nxECLAaFI/+gVLhDQ==} dependencies: - acorn: 8.8.2 - pathe: 1.1.0 - pkg-types: 1.0.1 - ufo: 1.0.1 + acorn: 8.11.3 + pathe: 1.1.2 + pkg-types: 1.0.3 + ufo: 1.4.0 dev: true - /monaco-editor/0.34.1: + /monaco-editor@0.34.1: resolution: {integrity: sha512-FKc80TyiMaruhJKKPz5SpJPIjL+dflGvz4CpuThaPMc94AyN7SeC9HQ8hrvaxX7EyHdJcUY5i4D0gNyJj1vSZQ==} dev: false - /mri/1.2.0: + /mri@1.2.0: resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} engines: {node: '>=4'} dev: true - /mrmime/1.0.1: + /mrmime@1.0.1: resolution: {integrity: sha512-hzzEagAgDyoU1Q6yg5uI+AorQgdvMCur3FcKf7NhMKWsaYg+RnbTyHRa/9IlLF9rf455MOCtcqqrQQ83pPP7Uw==} engines: {node: '>=10'} dev: true - /ms/2.0.0: + /mrmime@2.0.0: + resolution: {integrity: sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw==} + engines: {node: '>=10'} + dev: true + + /ms@2.0.0: resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} dev: true - /ms/2.1.2: + /ms@2.1.2: resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} dev: true - /ms/2.1.3: + /ms@2.1.3: resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} dev: true - /nanoid/3.3.4: - resolution: {integrity: sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==} + /nanoid@3.3.7: + resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true - /natural-compare-lite/1.4.0: + /natural-compare-lite@1.4.0: resolution: {integrity: sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==} dev: true - /natural-compare/1.4.0: + /natural-compare@1.4.0: resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} dev: true - /no-case/3.0.4: + /no-case@3.0.4: resolution: {integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==} dependencies: lower-case: 2.0.2 - tslib: 2.4.1 + tslib: 2.6.2 dev: true - /node-fetch/2.6.7: - resolution: {integrity: sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==} + /node-fetch@2.7.0: + resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==} engines: {node: 4.x || >=6.0.0} peerDependencies: encoding: ^0.1.0 @@ -3566,121 +4175,127 @@ packages: whatwg-url: 5.0.0 dev: false - /nopt/6.0.0: - resolution: {integrity: sha512-ZwLpbTgdhuZUnZzjd7nb1ZV+4DoiC6/sfiVKok72ym/4Tlf+DFdlHYmT2JPmcNNWV6Pi3SDf1kT+A4r9RTuT9g==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + /nopt@7.2.0: + resolution: {integrity: sha512-CVDtwCdhYIvnAzFoJ6NJ6dX3oga9/HyciQDnG1vQDjSLMeKLJ4A93ZqYKDrgYSr1FBY5/hMYC+2VCi24pgpkGA==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} hasBin: true dependencies: - abbrev: 1.1.1 + abbrev: 2.0.0 dev: true - /normalize-path/3.0.0: + /normalize-path@3.0.0: resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} engines: {node: '>=0.10.0'} dev: true - /npm-run-path/4.0.1: + /npm-run-path@4.0.1: resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} engines: {node: '>=8'} dependencies: path-key: 3.1.1 dev: true - /nth-check/2.1.1: + /npm-run-path@5.3.0: + resolution: {integrity: sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + path-key: 4.0.0 + dev: true + + /nth-check@2.1.1: resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} dependencies: boolbase: 1.0.0 dev: true - /nwsapi/2.2.2: - resolution: {integrity: sha512-90yv+6538zuvUMnN+zCr8LuV6bPFdq50304114vJYJ8RDyK8D5O9Phpbd6SZWgI7PwzmmfN1upeOJlvybDSgCw==} + /nwsapi@2.2.7: + resolution: {integrity: sha512-ub5E4+FBPKwAZx0UwIQOjYWGHTEq5sPqHQNRN8Z9e4A7u3Tj1weLJsL59yH9vmvqEtBHaOmT6cYQKIZOxp35FQ==} + dev: true + + /object-inspect@1.13.1: + resolution: {integrity: sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==} dev: true - /oblivious-set/1.1.1: + /oblivious-set@1.1.1: resolution: {integrity: sha512-Oh+8fK09mgGmAshFdH6hSVco6KZmd1tTwNFWj35OvzdmJTMZtAkbn05zar2iG3v6sDs1JLEtOiBGNb6BHwkb2w==} dev: false - /on-finished/2.3.0: + /on-finished@2.3.0: resolution: {integrity: sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==} engines: {node: '>= 0.8'} dependencies: ee-first: 1.1.1 dev: true - /once/1.4.0: + /once@1.4.0: resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} dependencies: wrappy: 1.0.2 - /onetime/5.1.2: + /onetime@5.1.2: resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} engines: {node: '>=6'} dependencies: mimic-fn: 2.1.0 dev: true - /optionator/0.8.3: - resolution: {integrity: sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==} - engines: {node: '>= 0.8.0'} + /onetime@6.0.0: + resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==} + engines: {node: '>=12'} dependencies: - deep-is: 0.1.4 - fast-levenshtein: 2.0.6 - levn: 0.3.0 - prelude-ls: 1.1.2 - type-check: 0.3.2 - word-wrap: 1.2.3 + mimic-fn: 4.0.0 dev: true - /optionator/0.9.1: - resolution: {integrity: sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==} + /optionator@0.9.3: + resolution: {integrity: sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==} engines: {node: '>= 0.8.0'} dependencies: + '@aashutoshrathi/word-wrap': 1.2.6 deep-is: 0.1.4 fast-levenshtein: 2.0.6 levn: 0.4.1 prelude-ls: 1.2.1 type-check: 0.4.0 - word-wrap: 1.2.3 dev: true - /ospath/1.2.2: + /ospath@1.2.2: resolution: {integrity: sha512-o6E5qJV5zkAbIDNhGSIlyOhScKXgQrSRMilfph0clDfM0nEnBOlKlH4sWDmG95BW/CvwNz0vmm7dJVtU2KlMiA==} dev: true - /p-finally/1.0.0: + /p-finally@1.0.0: resolution: {integrity: sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==} engines: {node: '>=4'} dev: false - /p-limit/3.1.0: + /p-limit@3.1.0: resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} engines: {node: '>=10'} dependencies: yocto-queue: 0.1.0 dev: true - /p-limit/4.0.0: - resolution: {integrity: sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + /p-limit@5.0.0: + resolution: {integrity: sha512-/Eaoq+QyLSiXQ4lyYV23f14mZRQcXnxfHrN0vCai+ak9G0pp9iEQukIIZq5NccEvwRB8PUnZT0KsOoDCINS1qQ==} + engines: {node: '>=18'} dependencies: yocto-queue: 1.0.0 dev: true - /p-locate/5.0.0: + /p-locate@5.0.0: resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} engines: {node: '>=10'} dependencies: p-limit: 3.1.0 dev: true - /p-map/4.0.0: + /p-map@4.0.0: resolution: {integrity: sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==} engines: {node: '>=10'} dependencies: aggregate-error: 3.1.0 dev: true - /p-queue/6.6.2: + /p-queue@6.6.2: resolution: {integrity: sha512-RwFpb72c/BhQLEXIZ5K2e+AhgNVmIejGlTgiB9MzZ0e93GRvqZ7uSi0dvRF7/XIXDeNkra2fNHBxTyPDGySpjQ==} engines: {node: '>=8'} dependencies: @@ -3688,304 +4303,305 @@ packages: p-timeout: 3.2.0 dev: false - /p-timeout/3.2.0: + /p-timeout@3.2.0: resolution: {integrity: sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==} engines: {node: '>=8'} dependencies: p-finally: 1.0.0 dev: false - /param-case/3.0.4: + /param-case@3.0.4: resolution: {integrity: sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==} dependencies: dot-case: 3.0.4 - tslib: 2.4.1 + tslib: 2.6.2 dev: true - /parent-module/1.0.1: + /parent-module@1.0.1: resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} engines: {node: '>=6'} dependencies: callsites: 3.1.0 dev: true - /parse5/7.1.2: + /parse5@7.1.2: resolution: {integrity: sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==} dependencies: - entities: 4.4.0 + entities: 4.5.0 dev: true - /parseurl/1.3.3: + /parseurl@1.3.3: resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==} engines: {node: '>= 0.8'} dev: true - /pascal-case/3.1.2: + /pascal-case@3.1.2: resolution: {integrity: sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==} dependencies: no-case: 3.0.4 - tslib: 2.4.1 + tslib: 2.6.2 dev: true - /path-case/3.0.4: + /path-case@3.0.4: resolution: {integrity: sha512-qO4qCFjXqVTrcbPt/hQfhTQ+VhFsqNKOPtytgNKkKxSoEp3XPUQ8ObFuePylOIok5gjn69ry8XiULxCwot3Wfg==} dependencies: dot-case: 3.0.4 - tslib: 2.4.1 + tslib: 2.6.2 dev: true - /path-exists/4.0.0: + /path-exists@4.0.0: resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} engines: {node: '>=8'} dev: true - /path-is-absolute/1.0.1: + /path-is-absolute@1.0.1: resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} engines: {node: '>=0.10.0'} - /path-key/3.1.1: + /path-key@3.1.1: resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} engines: {node: '>=8'} dev: true - /path-parse/1.0.7: - resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} + /path-key@4.0.0: + resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==} + engines: {node: '>=12'} + dev: true + + /path-scurry@1.10.1: + resolution: {integrity: sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==} + engines: {node: '>=16 || 14 >=14.17'} + dependencies: + lru-cache: 10.2.0 + minipass: 7.0.4 + dev: true - /path-type/4.0.0: + /path-type@4.0.0: resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} engines: {node: '>=8'} dev: true - /pathe/0.2.0: + /pathe@0.2.0: resolution: {integrity: sha512-sTitTPYnn23esFR3RlqYBWn4c45WGeLcsKzQiUpXJAyfcWkolvlYpV8FLo7JishK946oQwMFUCHXQ9AjGPKExw==} dev: true - /pathe/1.1.0: - resolution: {integrity: sha512-ODbEPR0KKHqECXW1GoxdDb+AZvULmXjVPy4rt+pGo2+TnjJTIPJQSVS6N63n8T2Ip+syHhbn52OewKicV0373w==} + /pathe@1.1.2: + resolution: {integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==} dev: true - /pathval/1.1.1: + /pathval@1.1.1: resolution: {integrity: sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==} dev: true - /pend/1.2.0: + /pend@1.2.0: resolution: {integrity: sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==} dev: true - /performance-now/2.1.0: + /performance-now@2.1.0: resolution: {integrity: sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==} dev: true - /picocolors/1.0.0: + /picocolors@1.0.0: resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} - /picomatch/2.3.1: + /picomatch@2.3.1: resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} engines: {node: '>=8.6'} dev: true - /pify/2.3.0: + /pify@2.3.0: resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} engines: {node: '>=0.10.0'} dev: true - /pinia-shared-state/0.3.0_pinia@2.0.33+vue@3.2.47: + /pinia-shared-state@0.3.0(pinia@2.1.7)(vue@3.4.19): resolution: {integrity: sha512-0E0P043XuRnPbmOov1m7o+GR0AcgNArgrZzAgBet6e3pXLR8dmPd4CchrD8wQZKtDNk6K6NyW0QFkxlbgRiW6w==} peerDependencies: pinia: '>=2.0.14' dependencies: broadcast-channel: 4.20.2 - devalue: 4.3.0 - pinia: 2.0.33_yq2pyqi2yjztetnx45sawcgrle - vue-demi: 0.13.11_vue@3.2.47 + devalue: 4.3.2 + pinia: 2.1.7(typescript@5.3.3)(vue@3.4.19) + vue-demi: 0.13.11(vue@3.4.19) transitivePeerDependencies: - '@vue/composition-api' - vue dev: false - /pinia-undo/0.1.9_pinia@2.0.33: + /pinia-undo@0.1.9(pinia@2.1.7): resolution: {integrity: sha512-/yk+FNR/NBXDGoSe/sMcFJE2x/dBSmwQaUwBybbbHKXDvRp6rV0fhohYE0o4j+LtqL+xT/LympLpop8lvWL6fQ==} peerDependencies: pinia: ^2.0.0 dependencies: - '@ungap/structured-clone': 1.0.2 - pinia: 2.0.33_yq2pyqi2yjztetnx45sawcgrle + '@ungap/structured-clone': 1.2.0 + pinia: 2.1.7(typescript@5.3.3)(vue@3.4.19) undo-stacker: 0.1.3 dev: false - /pinia-xstate/1.0.9_pinia@2.0.33+xstate@4.33.6: + /pinia-xstate@1.0.9(pinia@2.1.7)(typescript@5.3.3)(xstate@4.37.2): resolution: {integrity: sha512-fvoA3p7S5l+96Lczl9JTCeXxK0qP2YWRiZqINH2ei9kMbwqP184czYTAD4HjqjUN7fpEVgDAZFeBIIykmnYV1A==} peerDependencies: pinia: ^2.0.0 xstate: ^4.30.0 dependencies: - pinia: 2.0.33_yq2pyqi2yjztetnx45sawcgrle - vue: 3.2.47 - xstate: 4.33.6 + pinia: 2.1.7(typescript@5.3.3)(vue@3.4.19) + vue: 3.4.19(typescript@5.3.3) + xstate: 4.37.2 + transitivePeerDependencies: + - typescript dev: false - /pinia/2.0.33_yq2pyqi2yjztetnx45sawcgrle: - resolution: {integrity: sha512-HOj1yVV2itw6rNIrR2f7+MirGNxhORjrULL8GWgRwXsGSvEqIQ+SE0MYt6cwtpegzCda3i+rVTZM+AM7CG+kRg==} + /pinia@2.1.7(typescript@5.3.3)(vue@3.4.19): + resolution: {integrity: sha512-+C2AHFtcFqjPih0zpYuvof37SFxMQ7OEG2zV9jRI12i9BOy3YQVAHwdKtyyc8pDcDyIc33WCIsZaCFWU7WWxGQ==} peerDependencies: '@vue/composition-api': ^1.4.0 typescript: '>=4.4.4' - vue: ^2.6.14 || ^3.2.0 + vue: ^2.6.14 || ^3.3.0 peerDependenciesMeta: '@vue/composition-api': optional: true typescript: optional: true dependencies: - '@vue/devtools-api': 6.5.0 - typescript: 4.9.4 - vue: 3.2.47 - vue-demi: 0.13.11_vue@3.2.47 + '@vue/devtools-api': 6.5.1 + typescript: 5.3.3 + vue: 3.4.19(typescript@5.3.3) + vue-demi: 0.14.7(vue@3.4.19) dev: false - /pkg-types/1.0.1: - resolution: {integrity: sha512-jHv9HB+Ho7dj6ItwppRDDl0iZRYBD0jsakHXtFgoLr+cHSF6xC+QL54sJmWxyGxOLYSHm0afhXhXcQDQqH9z8g==} + /pkg-types@1.0.3: + resolution: {integrity: sha512-nN7pYi0AQqJnoLPC9eHFQ8AcyaixBUOwvqc5TDnIKCMEE6I0y8P7OKA7fPexsXGCGxQDl/cmrLAp26LhcwxZ4A==} dependencies: - jsonc-parser: 3.2.0 - mlly: 1.1.0 - pathe: 1.1.0 + jsonc-parser: 3.2.1 + mlly: 1.5.0 + pathe: 1.1.2 dev: true - /postcss-selector-parser/6.0.11: - resolution: {integrity: sha512-zbARubNdogI9j7WY4nQJBiNqQf3sLS3wCP4WfOidu+p28LofJqDH1tcXypGrcmMHhDk2t9wGhCsYe/+szLTy1g==} + /postcss-selector-parser@6.0.15: + resolution: {integrity: sha512-rEYkQOMUCEMhsKbK66tbEU9QVIxbhN18YiniAwA7XQYTVBqrBy+P2p5JcdqsHgKM2zWylp8d7J6eszocfds5Sw==} engines: {node: '>=4'} dependencies: cssesc: 3.0.0 util-deprecate: 1.0.2 dev: true - /postcss/8.4.21: - resolution: {integrity: sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg==} + /postcss@8.4.35: + resolution: {integrity: sha512-u5U8qYpBCpN13BsiEB0CbR1Hhh4Gc0zLFuedrHJKMctHCHAGrMdG0PRM/KErzAL3CU6/eckEtmHNB3x6e3c0vA==} engines: {node: ^10 || ^12 || >=14} dependencies: - nanoid: 3.3.4 + nanoid: 3.3.7 picocolors: 1.0.0 source-map-js: 1.0.2 - /prelude-ls/1.1.2: - resolution: {integrity: sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==} - engines: {node: '>= 0.8.0'} + /postcss@8.4.38: + resolution: {integrity: sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==} + engines: {node: ^10 || ^12 || >=14} + dependencies: + nanoid: 3.3.7 + picocolors: 1.0.0 + source-map-js: 1.2.0 dev: true - /prelude-ls/1.2.1: + /prelude-ls@1.2.1: resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} engines: {node: '>= 0.8.0'} dev: true - /pretender/3.4.7: + /pretender@3.4.7: resolution: {integrity: sha512-jkPAvt1BfRi0RKamweJdEcnjkeu7Es8yix3bJ+KgBC5VpG/Ln4JE3hYN6vJym4qprm8Xo5adhWpm3HCoft1dOw==} dependencies: fake-xml-http-request: 2.1.2 route-recognizer: 0.3.4 - /pretty-bytes/5.6.0: + /pretty-bytes@5.6.0: resolution: {integrity: sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==} engines: {node: '>=6'} dev: true - /pretty-format/27.5.1: - resolution: {integrity: sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + /pretty-format@29.7.0: + resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - ansi-regex: 5.0.1 + '@jest/schemas': 29.6.3 ansi-styles: 5.2.0 - react-is: 17.0.2 + react-is: 18.2.0 dev: true - /proto-list/1.2.4: - resolution: {integrity: sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==} + /process@0.11.10: + resolution: {integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==} + engines: {node: '>= 0.6.0'} dev: true - /proxy-from-env/1.0.0: - resolution: {integrity: sha512-F2JHgJQ1iqwnHDcQjVBsq3n/uoaFL+iPW/eAeL7kVxy/2RrWaN4WroKjjvbsoRtv0ftelNyC01bjRhn/bhcf4A==} + /proto-list@1.2.4: + resolution: {integrity: sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==} dev: true - /pseudomap/1.0.2: - resolution: {integrity: sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==} + /proxy-from-env@1.0.0: + resolution: {integrity: sha512-F2JHgJQ1iqwnHDcQjVBsq3n/uoaFL+iPW/eAeL7kVxy/2RrWaN4WroKjjvbsoRtv0ftelNyC01bjRhn/bhcf4A==} dev: true - /psl/1.9.0: + /psl@1.9.0: resolution: {integrity: sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==} dev: true - /pump/3.0.0: + /pump@3.0.0: resolution: {integrity: sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==} dependencies: end-of-stream: 1.4.4 once: 1.4.0 dev: true - /punycode/2.1.1: - resolution: {integrity: sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==} + /punycode@2.3.1: + resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} engines: {node: '>=6'} dev: true - /qs/6.5.3: - resolution: {integrity: sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==} + /qs@6.10.4: + resolution: {integrity: sha512-OQiU+C+Ds5qiH91qh/mg0w+8nwQuLjM4F4M/PbmhDOoYehPh+Fb0bDjtR1sOvy7YKxvj28Y/M0PhP5uVX0kB+g==} engines: {node: '>=0.6'} + dependencies: + side-channel: 1.0.5 dev: true - /querystringify/2.2.0: + /querystringify@2.2.0: resolution: {integrity: sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==} dev: true - /queue-microtask/1.2.3: + /queue-microtask@1.2.3: resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} dev: true - /react-is/17.0.2: - resolution: {integrity: sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==} + /react-is@18.2.0: + resolution: {integrity: sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==} dev: true - /readdirp/3.6.0: + /readdirp@3.6.0: resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} engines: {node: '>=8.10.0'} dependencies: picomatch: 2.3.1 dev: true - /regenerator-runtime/0.13.11: + /regenerator-runtime@0.13.11: resolution: {integrity: sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==} dev: false - /regexpp/3.2.0: - resolution: {integrity: sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==} - engines: {node: '>=8'} - dev: true - - /request-progress/3.0.0: + /request-progress@3.0.0: resolution: {integrity: sha512-MnWzEHHaxHO2iWiQuHrUPBi/1WeBf5PkxQqNyNvLl9VAYSdXkP8tQ3pBSeCPD+yw0v0Aq1zosWLz0BdeXpWwZg==} dependencies: - throttleit: 1.0.0 + throttleit: 1.0.1 dev: true - /require-directory/2.1.1: - resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} - engines: {node: '>=0.10.0'} - dev: true - - /requires-port/1.0.0: + /requires-port@1.0.0: resolution: {integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==} dev: true - /resolve-from/4.0.0: + /resolve-from@4.0.0: resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} engines: {node: '>=4'} dev: true - /resolve/1.22.1: - resolution: {integrity: sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==} - hasBin: true - dependencies: - is-core-module: 2.11.0 - path-parse: 1.0.7 - supports-preserve-symlinks-flag: 1.0.0 - - /restore-cursor/3.1.0: + /restore-cursor@3.1.0: resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==} engines: {node: '>=8'} dependencies: @@ -3993,66 +4609,96 @@ packages: signal-exit: 3.0.7 dev: true - /reusify/1.0.4: + /reusify@1.0.4: resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} engines: {iojs: '>=1.0.0', node: '>=0.10.0'} dev: true - /rfdc/1.3.0: - resolution: {integrity: sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==} + /rfdc@1.3.1: + resolution: {integrity: sha512-r5a3l5HzYlIC68TpmYKlxWjmOP6wiPJ1vWv2HeLhNsRZMrCkxeqxiHlQ21oXmQ4F3SiryXBHhAD7JZqvOJjFmg==} dev: true - /rimraf/3.0.2: + /rimraf@3.0.2: resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} hasBin: true dependencies: glob: 7.2.3 - /rollup/3.18.0: - resolution: {integrity: sha512-J8C6VfEBjkvYPESMQYxKHxNOh4A5a3FlP+0BETGo34HEcE4eTlgCrO2+eWzlu2a/sHs2QUkZco+wscH7jhhgWg==} + /rollup@3.29.4: + resolution: {integrity: sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw==} engines: {node: '>=14.18.0', npm: '>=8.0.0'} hasBin: true optionalDependencies: - fsevents: 2.3.2 + fsevents: 2.3.3 - /route-recognizer/0.3.4: + /rollup@4.14.3: + resolution: {integrity: sha512-ag5tTQKYsj1bhrFC9+OEWqb5O6VYgtQDO9hPDBMmIbePwhfSr+ExlcU741t8Dhw5DkPCQf6noz0jb36D6W9/hw==} + engines: {node: '>=18.0.0', npm: '>=8.0.0'} + hasBin: true + dependencies: + '@types/estree': 1.0.5 + optionalDependencies: + '@rollup/rollup-android-arm-eabi': 4.14.3 + '@rollup/rollup-android-arm64': 4.14.3 + '@rollup/rollup-darwin-arm64': 4.14.3 + '@rollup/rollup-darwin-x64': 4.14.3 + '@rollup/rollup-linux-arm-gnueabihf': 4.14.3 + '@rollup/rollup-linux-arm-musleabihf': 4.14.3 + '@rollup/rollup-linux-arm64-gnu': 4.14.3 + '@rollup/rollup-linux-arm64-musl': 4.14.3 + '@rollup/rollup-linux-powerpc64le-gnu': 4.14.3 + '@rollup/rollup-linux-riscv64-gnu': 4.14.3 + '@rollup/rollup-linux-s390x-gnu': 4.14.3 + '@rollup/rollup-linux-x64-gnu': 4.14.3 + '@rollup/rollup-linux-x64-musl': 4.14.3 + '@rollup/rollup-win32-arm64-msvc': 4.14.3 + '@rollup/rollup-win32-ia32-msvc': 4.14.3 + '@rollup/rollup-win32-x64-msvc': 4.14.3 + fsevents: 2.3.3 + dev: true + + /route-recognizer@0.3.4: resolution: {integrity: sha512-2+MhsfPhvauN1O8KaXpXAOfR/fwe8dnUXVM+xw7yt40lJRfPVQxV6yryZm0cgRvAj5fMF/mdRZbL2ptwbs5i2g==} - /run-parallel/1.2.0: + /rrweb-cssom@0.6.0: + resolution: {integrity: sha512-APM0Gt1KoXBz0iIkkdB/kfvGOwC4UuJFeG/c+yV7wSc7q96cG/kJ0HiYCnzivD9SB53cLV1MlHFNfOuPaadYSw==} + dev: true + + /run-parallel@1.2.0: resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} dependencies: queue-microtask: 1.2.3 dev: true - /rxjs/7.8.0: - resolution: {integrity: sha512-F2+gxDshqmIub1KdvZkaEfGDwLNpPvk9Fs6LD/MyQxNgMds/WH9OdDDXOmxUZpME+iSK3rQCctkL0DYyytUqMg==} + /rxjs@7.8.1: + resolution: {integrity: sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==} dependencies: - tslib: 2.4.1 + tslib: 2.6.2 dev: true - /sade/1.8.1: + /sade@1.8.1: resolution: {integrity: sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==} engines: {node: '>=6'} dependencies: mri: 1.2.0 dev: true - /safe-buffer/5.2.1: + /safe-buffer@5.2.1: resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} dev: true - /safer-buffer/2.1.2: + /safer-buffer@2.1.2: resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} dev: true - /saxes/6.0.0: + /saxes@6.0.0: resolution: {integrity: sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==} engines: {node: '>=v12.22.7'} dependencies: xmlchars: 2.2.0 dev: true - /section-matter/1.0.0: + /section-matter@1.0.0: resolution: {integrity: sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==} engines: {node: '>=4'} dependencies: @@ -4060,84 +4706,98 @@ packages: kind-of: 6.0.3 dev: true - /semver/5.7.1: - resolution: {integrity: sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==} - hasBin: true - dev: true - - /semver/6.3.0: - resolution: {integrity: sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==} - hasBin: true - dev: true - - /semver/7.3.8: - resolution: {integrity: sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==} + /semver@7.6.0: + resolution: {integrity: sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==} engines: {node: '>=10'} hasBin: true dependencies: lru-cache: 6.0.0 dev: true - /sentence-case/3.0.4: + /sentence-case@3.0.4: resolution: {integrity: sha512-8LS0JInaQMCRoQ7YUytAo/xUu5W2XnQxV2HI/6uM6U7CITS1RqPElr30V6uIqyMKM9lJGRVFy5/4CuzcixNYSg==} dependencies: no-case: 3.0.4 - tslib: 2.4.1 + tslib: 2.6.2 upper-case-first: 2.0.2 dev: true - /shebang-command/2.0.0: + /set-function-length@1.2.1: + resolution: {integrity: sha512-j4t6ccc+VsKwYHso+kElc5neZpjtq9EnRICFZtWyBsLojhmeF/ZBd/elqm22WJh/BziDe/SBiOeAt0m2mfLD0g==} + engines: {node: '>= 0.4'} + dependencies: + define-data-property: 1.1.4 + es-errors: 1.3.0 + function-bind: 1.1.2 + get-intrinsic: 1.2.4 + gopd: 1.0.1 + has-property-descriptors: 1.0.2 + dev: true + + /shebang-command@2.0.0: resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} engines: {node: '>=8'} dependencies: shebang-regex: 3.0.0 dev: true - /shebang-regex/3.0.0: + /shebang-regex@3.0.0: resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} engines: {node: '>=8'} dev: true - /shell-quote/1.8.0: - resolution: {integrity: sha512-QHsz8GgQIGKlRi24yFc6a6lN69Idnx634w49ay6+jA5yFh7a1UY+4Rp6HPx/L/1zcEDPEij8cIsiqR6bQsE5VQ==} + /shell-quote@1.8.1: + resolution: {integrity: sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==} dev: true - /shiki-es/0.2.0: + /shiki-es@0.2.0: resolution: {integrity: sha512-RbRMD+IuJJseSZljDdne9ThrUYrwBwJR04FvN4VXpfsU3MNID5VJGHLAD5je/HGThCyEKNgH+nEkSFEWKD7C3Q==} + deprecated: Please migrate to https://github.com/antfu/shikiji dev: true - /siginfo/2.0.0: - resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==} + /side-channel@1.0.5: + resolution: {integrity: sha512-QcgiIWV4WV7qWExbN5llt6frQB/lBven9pqliLXfGPB+K9ZYXxDozp0wLkHS24kWCm+6YXH/f0HhnObZnZOBnQ==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + es-errors: 1.3.0 + get-intrinsic: 1.2.4 + object-inspect: 1.13.1 dev: true - /sigmund/1.0.1: - resolution: {integrity: sha512-fCvEXfh6NWpm+YSuY2bpXb/VIihqWA6hLsgboC+0nl71Q7N7o2eaCW8mJa/NLvQhs6jpd3VZV4UiUQlV6+lc8g==} + /siginfo@2.0.0: + resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==} dev: true - /signal-exit/3.0.7: + /signal-exit@3.0.7: resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} dev: true - /sirv/2.0.2: - resolution: {integrity: sha512-4Qog6aE29nIjAOKe/wowFTxOdmbEZKb+3tsLljaBRzJwtqto0BChD2zzH0LhgCSXiI+V7X+Y45v14wBZQ1TK3w==} + /signal-exit@4.1.0: + resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} + engines: {node: '>=14'} + dev: true + + /sirv@2.0.4: + resolution: {integrity: sha512-94Bdh3cC2PKrbgSOUqTiGPWVZeSiXfKOVZNJniWoqrWrRkB1CJzBU3NEbiTsPcYy1lDsANA/THzS+9WBiy5nfQ==} engines: {node: '>= 10'} dependencies: - '@polka/url': 1.0.0-next.21 - mrmime: 1.0.1 - totalist: 3.0.0 + '@polka/url': 1.0.0-next.24 + mrmime: 2.0.0 + totalist: 3.0.1 dev: true - /slash/3.0.0: + /slash@3.0.0: resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} engines: {node: '>=8'} dev: true - /slash/4.0.0: + /slash@4.0.0: resolution: {integrity: sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==} engines: {node: '>=12'} dev: true - /slice-ansi/3.0.0: + /slice-ansi@3.0.0: resolution: {integrity: sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==} engines: {node: '>=8'} dependencies: @@ -4146,7 +4806,7 @@ packages: is-fullwidth-code-point: 3.0.0 dev: true - /slice-ansi/4.0.0: + /slice-ansi@4.0.0: resolution: {integrity: sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==} engines: {node: '>=10'} dependencies: @@ -4155,46 +4815,40 @@ packages: is-fullwidth-code-point: 3.0.0 dev: true - /slice-ansi/5.0.0: - resolution: {integrity: sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==} - engines: {node: '>=12'} - dependencies: - ansi-styles: 6.2.1 - is-fullwidth-code-point: 4.0.0 - dev: true - - /snake-case/3.0.4: + /snake-case@3.0.4: resolution: {integrity: sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==} dependencies: dot-case: 3.0.4 - tslib: 2.4.1 + tslib: 2.6.2 dev: true - /source-map-js/1.0.2: + /source-map-js@1.0.2: resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} engines: {node: '>=0.10.0'} - /source-map-support/0.5.21: + /source-map-js@1.2.0: + resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==} + engines: {node: '>=0.10.0'} + dev: true + + /source-map-support@0.5.21: resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} dependencies: buffer-from: 1.1.2 source-map: 0.6.1 dev: true - /source-map/0.6.1: + /source-map@0.6.1: resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} engines: {node: '>=0.10.0'} + dev: true - /sourcemap-codec/1.4.8: - resolution: {integrity: sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==} - deprecated: Please use @jridgewell/sourcemap-codec instead - - /sprintf-js/1.0.3: + /sprintf-js@1.0.3: resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} dev: true - /sshpk/1.17.0: - resolution: {integrity: sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ==} + /sshpk@1.18.0: + resolution: {integrity: sha512-2p2KJZTSqQ/I3+HX42EpYOa2l3f8Erv8MWKsy2I9uf4wA7yFIkXRffYdsx86y6z4vHtV8u7g+pPlr8/4ouAxsQ==} engines: {node: '>=0.10.0'} hasBin: true dependencies: @@ -4209,24 +4863,24 @@ packages: tweetnacl: 0.14.5 dev: true - /stackback/0.0.2: + /stackback@0.0.2: resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==} dev: true - /state-local/1.0.7: + /state-local@1.0.7: resolution: {integrity: sha512-HTEHMNieakEnoe33shBYcZ7NX83ACUjCu8c40iOGEZsngj9zRnkqS9j1pqQPXwobB0ZcVTk27REb7COQ0UR59w==} dev: false - /statuses/1.5.0: + /statuses@1.5.0: resolution: {integrity: sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==} engines: {node: '>= 0.6'} dev: true - /std-env/3.3.2: - resolution: {integrity: sha512-uUZI65yrV2Qva5gqE0+A7uVAvO40iPo6jGhs7s8keRfHCmtg+uB2X6EiLGCI9IgL1J17xGhvoOqSz79lzICPTA==} + /std-env@3.7.0: + resolution: {integrity: sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==} dev: true - /string-width/4.2.3: + /string-width@4.2.3: resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} engines: {node: '>=8'} dependencies: @@ -4235,77 +4889,78 @@ packages: strip-ansi: 6.0.1 dev: true - /string-width/5.1.2: + /string-width@5.1.2: resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} engines: {node: '>=12'} dependencies: eastasianwidth: 0.2.0 emoji-regex: 9.2.2 - strip-ansi: 7.0.1 + strip-ansi: 7.1.0 dev: true - /strip-ansi/6.0.1: + /strip-ansi@6.0.1: resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} engines: {node: '>=8'} dependencies: ansi-regex: 5.0.1 dev: true - /strip-ansi/7.0.1: - resolution: {integrity: sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==} + /strip-ansi@7.1.0: + resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} engines: {node: '>=12'} dependencies: ansi-regex: 6.0.1 dev: true - /strip-bom-string/1.0.0: + /strip-bom-string@1.0.0: resolution: {integrity: sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g==} engines: {node: '>=0.10.0'} dev: true - /strip-final-newline/2.0.0: + /strip-final-newline@2.0.0: resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} engines: {node: '>=6'} dev: true - /strip-json-comments/3.1.1: + /strip-final-newline@3.0.0: + resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==} + engines: {node: '>=12'} + dev: true + + /strip-json-comments@3.1.1: resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} engines: {node: '>=8'} dev: true - /strip-literal/1.0.1: - resolution: {integrity: sha512-QZTsipNpa2Ppr6v1AmJHESqJ3Uz247MUS0OjrnnZjFAvEoWqxuyFuXn2xLgMtRnijJShAa1HL0gtJyUs7u7n3Q==} + /strip-literal@2.1.0: + resolution: {integrity: sha512-Op+UycaUt/8FbN/Z2TWPBLge3jWrP3xj10f3fnYxf052bKuS3EKs1ZQcVGjnEMdsNVAM+plXRdmjrZ/KgG3Skw==} dependencies: - acorn: 8.8.2 + js-tokens: 9.0.0 dev: true - /style-mod/4.0.0: - resolution: {integrity: sha512-OPhtyEjyyN9x3nhPsu76f52yUGXiZcgvsrFVtvTkyGRQJ0XK+GPc6ov1z+lRpbeabka+MYEQxOYRnt5nF30aMw==} + /style-mod@4.1.0: + resolution: {integrity: sha512-Ca5ib8HrFn+f+0n4N4ScTIA9iTOQ7MaGS1ylHcoVqW9J7w2w8PzN6g9gKmTYgGEBH8e120+RCmhpje6jC5uGWA==} dev: true - /supports-color/7.2.0: + /supports-color@7.2.0: resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} engines: {node: '>=8'} dependencies: has-flag: 4.0.0 dev: true - /supports-color/8.1.1: + /supports-color@8.1.1: resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} engines: {node: '>=10'} dependencies: has-flag: 4.0.0 dev: true - /supports-preserve-symlinks-flag/1.0.0: - resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} - engines: {node: '>= 0.4'} - - /symbol-tree/3.2.4: + /symbol-tree@3.2.4: resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==} dev: true - /test-exclude/6.0.0: + /test-exclude@6.0.0: resolution: {integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==} engines: {node: '>=8'} dependencies: @@ -4314,237 +4969,224 @@ packages: minimatch: 3.1.2 dev: true - /text-table/0.2.0: + /text-table@0.2.0: resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} dev: true - /throttleit/1.0.0: - resolution: {integrity: sha512-rkTVqu6IjfQ/6+uNuuc3sZek4CEYxTJom3IktzgdSxcZqdARuebbA/f4QmAxMQIxqq9ZLEUkSYqvuk1I6VKq4g==} + /throttleit@1.0.1: + resolution: {integrity: sha512-vDZpf9Chs9mAdfY046mcPt8fg5QSZr37hEH4TXYBnDF+izxgrbRGUAAaBvIk/fJm9aOFCGFd1EsNg5AZCbnQCQ==} dev: true - /through/2.3.8: + /through@2.3.8: resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} dev: true - /tinybench/2.3.1: - resolution: {integrity: sha512-hGYWYBMPr7p4g5IarQE7XhlyWveh1EKhy4wUBS1LrHXCKYgvz+4/jCqgmJqZxxldesn05vccrtME2RLLZNW7iA==} + /tinybench@2.6.0: + resolution: {integrity: sha512-N8hW3PG/3aOoZAN5V/NSAEDz0ZixDSSt5b/a05iqtpgfLWMSVuCo7w0k2vVvEjdrIoeGqZzweX2WlyioNIHchA==} dev: true - /tinypool/0.1.3: - resolution: {integrity: sha512-2IfcQh7CP46XGWGGbdyO4pjcKqsmVqFAPcXfPxcPXmOWt9cYkTP9HcDmGgsfijYoAEc4z9qcpM/BaBz46Y9/CQ==} + /tinypool@0.8.4: + resolution: {integrity: sha512-i11VH5gS6IFeLY3gMBQ00/MmLncVP7JLXOw1vlgkytLmJK7QnEr7NXf0LBdxfmNPAeyetukOk0bOYrJrFGjYJQ==} engines: {node: '>=14.0.0'} dev: true - /tinypool/0.3.1: - resolution: {integrity: sha512-zLA1ZXlstbU2rlpA4CIeVaqvWq41MTWqLY3FfsAXgC8+f7Pk7zroaJQxDgxn1xNudKW6Kmj4808rPFShUlIRmQ==} + /tinyspy@2.2.1: + resolution: {integrity: sha512-KYad6Vy5VDWV4GH3fjpseMQ/XU2BhIYP7Vzd0LG44qRWm/Yt2WCOTicFdvmgo6gWaqooMQCawTtILVQJupKu7A==} engines: {node: '>=14.0.0'} dev: true - /tinyspy/1.1.1: - resolution: {integrity: sha512-UVq5AXt/gQlti7oxoIg5oi/9r0WpF7DGEVwXgqWSMmyN16+e3tl5lIvTaOpJ3TAtu5xFzWccFRM4R5NaWHF+4g==} - engines: {node: '>=14.0.0'} - dev: true - - /tmp/0.2.1: + /tmp@0.2.1: resolution: {integrity: sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==} engines: {node: '>=8.17.0'} dependencies: rimraf: 3.0.2 dev: true - /to-regex-range/5.0.1: + /to-fast-properties@2.0.0: + resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} + engines: {node: '>=4'} + dev: true + + /to-regex-range@5.0.1: resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} engines: {node: '>=8.0'} dependencies: is-number: 7.0.0 dev: true - /totalist/3.0.0: - resolution: {integrity: sha512-eM+pCBxXO/njtF7vdFsHuqb+ElbxqtI4r5EAvk6grfAFyJ6IvWlSkfZ5T9ozC6xWw3Fj1fGoSmrl0gUs46JVIw==} + /totalist@3.0.1: + resolution: {integrity: sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==} engines: {node: '>=6'} dev: true - /tough-cookie/2.5.0: - resolution: {integrity: sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==} - engines: {node: '>=0.8'} - dependencies: - psl: 1.9.0 - punycode: 2.1.1 - dev: true - - /tough-cookie/4.1.2: - resolution: {integrity: sha512-G9fqXWoYFZgTc2z8Q5zaHy/vJMjm+WV0AkAeHxVCQiEB1b+dGvWzFW6QV07cY5jQ5gRkeid2qIkzkxUnmoQZUQ==} + /tough-cookie@4.1.3: + resolution: {integrity: sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw==} engines: {node: '>=6'} dependencies: psl: 1.9.0 - punycode: 2.1.1 + punycode: 2.3.1 universalify: 0.2.0 url-parse: 1.5.10 dev: true - /tr46/0.0.3: + /tr46@0.0.3: resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} dev: false - /tr46/3.0.0: + /tr46@3.0.0: resolution: {integrity: sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==} engines: {node: '>=12'} dependencies: - punycode: 2.1.1 + punycode: 2.3.1 + dev: true + + /tr46@4.1.1: + resolution: {integrity: sha512-2lv/66T7e5yNyhAAC4NaKe5nVavzuGJQVVtRYLyQ2OI8tsJ61PMLlelehb0wi2Hx6+hT/OJUWZcw8MjlSRnxvw==} + engines: {node: '>=14'} + dependencies: + punycode: 2.3.1 dev: true - /tslib/1.14.1: + /tslib@1.14.1: resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} dev: true - /tslib/2.4.1: - resolution: {integrity: sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==} + /tslib@2.6.2: + resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} dev: true - /tsutils/3.21.0_typescript@4.9.4: + /tsutils@3.21.0(typescript@5.3.3): resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} engines: {node: '>= 6'} peerDependencies: typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta' dependencies: tslib: 1.14.1 - typescript: 4.9.4 + typescript: 5.3.3 dev: true - /tunnel-agent/0.6.0: + /tunnel-agent@0.6.0: resolution: {integrity: sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==} dependencies: safe-buffer: 5.2.1 dev: true - /tweetnacl/0.14.5: + /tweetnacl@0.14.5: resolution: {integrity: sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==} dev: true - /type-check/0.3.2: - resolution: {integrity: sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==} - engines: {node: '>= 0.8.0'} - dependencies: - prelude-ls: 1.1.2 - dev: true - - /type-check/0.4.0: + /type-check@0.4.0: resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} engines: {node: '>= 0.8.0'} dependencies: prelude-ls: 1.2.1 dev: true - /type-detect/4.0.8: + /type-detect@4.0.8: resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==} engines: {node: '>=4'} dev: true - /type-fest/0.20.2: + /type-fest@0.20.2: resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} engines: {node: '>=10'} dev: true - /type-fest/0.21.3: + /type-fest@0.21.3: resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} engines: {node: '>=10'} dev: true - /typescript/4.9.4: - resolution: {integrity: sha512-Uz+dTXYzxXXbsFpM86Wh3dKCxrQqUcVMxwU54orwlJjOpO3ao8L7j5lH+dWfTwgCwIuM9GQ2kvVotzYJMXTBZg==} - engines: {node: '>=4.2.0'} + /typescript@5.3.3: + resolution: {integrity: sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==} + engines: {node: '>=14.17'} hasBin: true - /uc.micro/1.0.6: + /uc.micro@1.0.6: resolution: {integrity: sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==} dev: true - /ufo/1.0.1: - resolution: {integrity: sha512-boAm74ubXHY7KJQZLlXrtMz52qFvpsbOxDcZOnw/Wf+LS4Mmyu7JxmzD4tDLtUQtmZECypJ0FrCz4QIe6dvKRA==} + /ufo@1.4.0: + resolution: {integrity: sha512-Hhy+BhRBleFjpJ2vchUNN40qgkh0366FWJGqVLYBHev0vpHTrXSA0ryT+74UiW6KWsldNurQMKGqCm1M2zBciQ==} + dev: true + + /undici-types@5.26.5: + resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} dev: true - /undo-stacker/0.1.3: + /undo-stacker@0.1.3: resolution: {integrity: sha512-7cttFLMKJhLgWJtLUTz6wSOrJepFVaHKIrXahwJCiNnFIqQKxJlW5ixI5lHY6xACLftMsw19SBAlLn6qzIexMA==} dev: false - /universalify/0.2.0: + /universalify@0.2.0: resolution: {integrity: sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==} engines: {node: '>= 4.0.0'} dev: true - /universalify/2.0.0: - resolution: {integrity: sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==} + /universalify@2.0.1: + resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} engines: {node: '>= 10.0.0'} dev: true - /unload/2.4.1: + /unload@2.4.1: resolution: {integrity: sha512-IViSAm8Z3sRBYA+9wc0fLQmU9Nrxb16rcDmIiR6Y9LJSZzI7QY5QsDhqPpKOjAn0O9/kfK1TfNEMMAGPTIraPw==} dev: false - /unpipe/1.0.0: + /unpipe@1.0.0: resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} engines: {node: '>= 0.8'} dev: true - /untildify/4.0.0: + /untildify@4.0.0: resolution: {integrity: sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==} engines: {node: '>=8'} dev: true - /upper-case-first/2.0.2: + /upper-case-first@2.0.2: resolution: {integrity: sha512-514ppYHBaKwfJRK/pNC6c/OxfGa0obSnAl106u97Ed0I625Nin96KAjttZF6ZL3e1XLtphxnqrOi9iWgm+u+bg==} dependencies: - tslib: 2.4.1 + tslib: 2.6.2 dev: true - /upper-case/2.0.2: + /upper-case@2.0.2: resolution: {integrity: sha512-KgdgDGJt2TpuwBUIjgG6lzw2GWFRCW9Qkfkiv0DxqHHLYJHmtmdUIKcZd8rHgFSjopVTlw6ggzCm1b8MFQwikg==} dependencies: - tslib: 2.4.1 + tslib: 2.6.2 dev: true - /uri-js/4.4.1: + /uri-js@4.4.1: resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} dependencies: - punycode: 2.1.1 + punycode: 2.3.1 dev: true - /url-parse/1.5.10: + /url-parse@1.5.10: resolution: {integrity: sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==} dependencies: querystringify: 2.2.0 requires-port: 1.0.0 dev: true - /util-deprecate/1.0.2: + /util-deprecate@1.0.2: resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} dev: true - /utils-merge/1.0.1: + /utils-merge@1.0.1: resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==} engines: {node: '>= 0.4.0'} dev: true - /uuid/8.3.2: + /uuid@8.3.2: resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==} hasBin: true dev: true - /uuid/9.0.0: - resolution: {integrity: sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg==} + /uuid@9.0.1: + resolution: {integrity: sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==} hasBin: true dev: false - /v8-to-istanbul/9.0.1: - resolution: {integrity: sha512-74Y4LqY74kLE6IFyIjPtkSTWzUZmj8tdHT9Ii/26dvQ6K9Dl2NbEfj0XgU2sHCtKgt5VupqhlO/5aWuqS+IY1w==} - engines: {node: '>=10.12.0'} - dependencies: - '@jridgewell/trace-mapping': 0.3.17 - '@types/istanbul-lib-coverage': 2.0.4 - convert-source-map: 1.9.0 - dev: true - - /verror/1.10.0: + /verror@1.10.0: resolution: {integrity: sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==} engines: {'0': node >=0.6.0} dependencies: @@ -4553,22 +5195,23 @@ packages: extsprintf: 1.3.0 dev: true - /vite-node/0.28.4: + /vite-node@0.28.4: resolution: {integrity: sha512-KM0Q0uSG/xHHKOJvVHc5xDBabgt0l70y7/lWTR7Q0pR5/MrYxadT+y32cJOE65FfjGmJgxpVEEY+69btJgcXOQ==} engines: {node: '>=v14.16.0'} hasBin: true dependencies: cac: 6.7.14 - debug: 4.3.4 - mlly: 1.1.0 - pathe: 1.1.0 + debug: 4.3.4(supports-color@8.1.1) + mlly: 1.5.0 + pathe: 1.1.2 picocolors: 1.0.0 source-map: 0.6.1 source-map-support: 0.5.21 - vite: 4.1.4 + vite: 4.5.2 transitivePeerDependencies: - '@types/node' - less + - lightningcss - sass - stylus - sugarss @@ -4576,22 +5219,20 @@ packages: - terser dev: true - /vite-node/0.28.4_@types+node@18.11.17: - resolution: {integrity: sha512-KM0Q0uSG/xHHKOJvVHc5xDBabgt0l70y7/lWTR7Q0pR5/MrYxadT+y32cJOE65FfjGmJgxpVEEY+69btJgcXOQ==} - engines: {node: '>=v14.16.0'} + /vite-node@1.5.0: + resolution: {integrity: sha512-tV8h6gMj6vPzVCa7l+VGq9lwoJjW8Y79vst8QZZGiuRAfijU+EEWuc0kFpmndQrWhMMhet1jdSF+40KSZUqIIw==} + engines: {node: ^18.0.0 || >=20.0.0} hasBin: true dependencies: cac: 6.7.14 - debug: 4.3.4 - mlly: 1.1.0 - pathe: 1.1.0 + debug: 4.3.4(supports-color@8.1.1) + pathe: 1.1.2 picocolors: 1.0.0 - source-map: 0.6.1 - source-map-support: 0.5.21 - vite: 4.1.4_@types+node@18.11.17 + vite: 5.2.9 transitivePeerDependencies: - '@types/node' - less + - lightningcss - sass - stylus - sugarss @@ -4599,13 +5240,14 @@ packages: - terser dev: true - /vite/4.1.4: - resolution: {integrity: sha512-3knk/HsbSTKEin43zHu7jTwYWv81f8kgAL99G5NWBcA1LKvtvcVAC4JjBH1arBunO9kQka+1oGbrMKOjk4ZrBg==} + /vite@4.5.2: + resolution: {integrity: sha512-tBCZBNSBbHQkaGyhGCDUGqeo2ph8Fstyp6FMSvTtsXeZSPpSMGlviAOav2hxVTqFcx8Hj/twtWKsMJXNY0xI8w==} engines: {node: ^14.18.0 || >=16.0.0} hasBin: true peerDependencies: '@types/node': '>= 14' less: '*' + lightningcss: ^1.21.0 sass: '*' stylus: '*' sugarss: '*' @@ -4615,6 +5257,8 @@ packages: optional: true less: optional: true + lightningcss: + optional: true sass: optional: true stylus: @@ -4624,20 +5268,20 @@ packages: terser: optional: true dependencies: - esbuild: 0.16.17 - postcss: 8.4.21 - resolve: 1.22.1 - rollup: 3.18.0 + esbuild: 0.18.20 + postcss: 8.4.35 + rollup: 3.29.4 optionalDependencies: - fsevents: 2.3.2 + fsevents: 2.3.3 - /vite/4.1.4_@types+node@18.11.17: - resolution: {integrity: sha512-3knk/HsbSTKEin43zHu7jTwYWv81f8kgAL99G5NWBcA1LKvtvcVAC4JjBH1arBunO9kQka+1oGbrMKOjk4ZrBg==} - engines: {node: ^14.18.0 || >=16.0.0} + /vite@5.2.9: + resolution: {integrity: sha512-uOQWfuZBlc6Y3W/DTuQ1Sr+oIXWvqljLvS881SVmAj00d5RdgShLcuXWxseWPd4HXwiYBFW/vXHfKFeqj9uQnw==} + engines: {node: ^18.0.0 || >=20.0.0} hasBin: true peerDependencies: - '@types/node': '>= 14' + '@types/node': ^18.0.0 || >=20.0.0 less: '*' + lightningcss: ^1.21.0 sass: '*' stylus: '*' sugarss: '*' @@ -4647,6 +5291,8 @@ packages: optional: true less: optional: true + lightningcss: + optional: true sass: optional: true stylus: @@ -4656,28 +5302,29 @@ packages: terser: optional: true dependencies: - '@types/node': 18.11.17 - esbuild: 0.16.17 - postcss: 8.4.21 - resolve: 1.22.1 - rollup: 3.18.0 + esbuild: 0.20.2 + postcss: 8.4.38 + rollup: 4.14.3 optionalDependencies: - fsevents: 2.3.2 + fsevents: 2.3.3 dev: true - /vitest/0.28.4_@vitest+ui@0.28.4: - resolution: {integrity: sha512-sfWIy0AdlbyGRhunm+TLQEJrFH9XuRPdApfubsyLcDbCRrUX717BRQKInTgzEfyl2Ipi1HWoHB84Nqtcwxogcg==} - engines: {node: '>=v14.16.0'} + /vitest@1.5.0(@vitest/ui@1.5.0)(jsdom@22.1.0): + resolution: {integrity: sha512-d8UKgR0m2kjdxDWX6911uwxout6GHS0XaGH1cksSIVVG8kRlE7G7aBw7myKQCvDI5dT4j7ZMa+l706BIORMDLw==} + engines: {node: ^18.0.0 || >=20.0.0} hasBin: true peerDependencies: '@edge-runtime/vm': '*' - '@vitest/browser': '*' - '@vitest/ui': '*' + '@types/node': ^18.0.0 || >=20.0.0 + '@vitest/browser': 1.5.0 + '@vitest/ui': 1.5.0 happy-dom: '*' jsdom: '*' peerDependenciesMeta: '@edge-runtime/vm': optional: true + '@types/node': + optional: true '@vitest/browser': optional: true '@vitest/ui': @@ -4687,33 +5334,31 @@ packages: jsdom: optional: true dependencies: - '@types/chai': 4.3.4 - '@types/chai-subset': 1.3.3 - '@types/node': 18.11.17 - '@vitest/expect': 0.28.4 - '@vitest/runner': 0.28.4 - '@vitest/spy': 0.28.4 - '@vitest/ui': 0.28.4 - '@vitest/utils': 0.28.4 - acorn: 8.8.2 - acorn-walk: 8.2.0 - cac: 6.7.14 - chai: 4.3.7 - debug: 4.3.4 - local-pkg: 0.4.3 - pathe: 1.1.0 + '@vitest/expect': 1.5.0 + '@vitest/runner': 1.5.0 + '@vitest/snapshot': 1.5.0 + '@vitest/spy': 1.5.0 + '@vitest/ui': 1.5.0(vitest@1.5.0) + '@vitest/utils': 1.5.0 + acorn-walk: 8.3.2 + chai: 4.4.1 + debug: 4.3.4(supports-color@8.1.1) + execa: 8.0.1 + jsdom: 22.1.0 + local-pkg: 0.5.0 + magic-string: 0.30.7 + pathe: 1.1.2 picocolors: 1.0.0 - source-map: 0.6.1 - std-env: 3.3.2 - strip-literal: 1.0.1 - tinybench: 2.3.1 - tinypool: 0.3.1 - tinyspy: 1.1.1 - vite: 4.1.4_@types+node@18.11.17 - vite-node: 0.28.4_@types+node@18.11.17 + std-env: 3.7.0 + strip-literal: 2.1.0 + tinybench: 2.6.0 + tinypool: 0.8.4 + vite: 5.2.9 + vite-node: 1.5.0 why-is-node-running: 2.2.2 transitivePeerDependencies: - less + - lightningcss - sass - stylus - sugarss @@ -4721,65 +5366,27 @@ packages: - terser dev: true - /vitest/0.28.4_vun5xzxu3tkrssf3erdbijyyki: - resolution: {integrity: sha512-sfWIy0AdlbyGRhunm+TLQEJrFH9XuRPdApfubsyLcDbCRrUX717BRQKInTgzEfyl2Ipi1HWoHB84Nqtcwxogcg==} - engines: {node: '>=v14.16.0'} + /vue-component-type-helpers@1.8.27: + resolution: {integrity: sha512-0vOfAtI67UjeO1G6UiX5Kd76CqaQ67wrRZiOe7UAb9Jm6GzlUr/fC7CV90XfwapJRjpCMaZFhv1V0ajWRmE9Dg==} + dev: true + + /vue-demi@0.13.11(vue@3.4.19): + resolution: {integrity: sha512-IR8HoEEGM65YY3ZJYAjMlKygDQn25D5ajNFNoKh9RSDMQtlzCxtfQjdQgv9jjK+m3377SsJXY8ysq8kLCZL25A==} + engines: {node: '>=12'} hasBin: true + requiresBuild: true peerDependencies: - '@edge-runtime/vm': '*' - '@vitest/browser': '*' - '@vitest/ui': '*' - happy-dom: '*' - jsdom: '*' + '@vue/composition-api': ^1.0.0-rc.1 + vue: ^3.0.0-0 || ^2.6.0 peerDependenciesMeta: - '@edge-runtime/vm': - optional: true - '@vitest/browser': - optional: true - '@vitest/ui': - optional: true - happy-dom: - optional: true - jsdom: + '@vue/composition-api': optional: true dependencies: - '@types/chai': 4.3.4 - '@types/chai-subset': 1.3.3 - '@types/node': 18.11.17 - '@vitest/expect': 0.28.4 - '@vitest/runner': 0.28.4 - '@vitest/spy': 0.28.4 - '@vitest/ui': 0.28.4 - '@vitest/utils': 0.28.4 - acorn: 8.8.2 - acorn-walk: 8.2.0 - cac: 6.7.14 - chai: 4.3.7 - debug: 4.3.4 - jsdom: 21.1.0 - local-pkg: 0.4.3 - pathe: 1.1.0 - picocolors: 1.0.0 - source-map: 0.6.1 - std-env: 3.3.2 - strip-literal: 1.0.1 - tinybench: 2.3.1 - tinypool: 0.3.1 - tinyspy: 1.1.1 - vite: 4.1.4_@types+node@18.11.17 - vite-node: 0.28.4_@types+node@18.11.17 - why-is-node-running: 2.2.2 - transitivePeerDependencies: - - less - - sass - - stylus - - sugarss - - supports-color - - terser - dev: true + vue: 3.4.19(typescript@5.3.3) + dev: false - /vue-demi/0.13.11_vue@3.2.47: - resolution: {integrity: sha512-IR8HoEEGM65YY3ZJYAjMlKygDQn25D5ajNFNoKh9RSDMQtlzCxtfQjdQgv9jjK+m3377SsJXY8ysq8kLCZL25A==} + /vue-demi@0.14.7(vue@3.4.19): + resolution: {integrity: sha512-EOG8KXDQNwkJILkx/gPcoL/7vH+hORoBaKgGe+6W7VFMvCYJfmF2dGbvgDroVnI8LU7/kTu8mbjRZGBU1z9NTA==} engines: {node: '>=12'} hasBin: true requiresBuild: true @@ -4790,76 +5397,82 @@ packages: '@vue/composition-api': optional: true dependencies: - vue: 3.2.47 + vue: 3.4.19(typescript@5.3.3) - /vue-eslint-parser/9.1.0_eslint@8.30.0: - resolution: {integrity: sha512-NGn/iQy8/Wb7RrRa4aRkokyCZfOUWk19OP5HP6JEozQFX5AoS/t+Z0ZN7FY4LlmWc4FNI922V7cvX28zctN8dQ==} + /vue-eslint-parser@9.4.2(eslint@8.56.0): + resolution: {integrity: sha512-Ry9oiGmCAK91HrKMtCrKFWmSFWvYkpGglCeFAIqDdr9zdXmMMpJOmUJS7WWsW7fX81h6mwHmUZCQQ1E0PkSwYQ==} engines: {node: ^14.17.0 || >=16.0.0} peerDependencies: eslint: '>=6.0.0' dependencies: - debug: 4.3.4 - eslint: 8.30.0 - eslint-scope: 7.1.1 - eslint-visitor-keys: 3.3.0 - espree: 9.4.1 - esquery: 1.4.0 + debug: 4.3.4(supports-color@8.1.1) + eslint: 8.56.0 + eslint-scope: 7.2.2 + eslint-visitor-keys: 3.4.3 + espree: 9.6.1 + esquery: 1.5.0 lodash: 4.17.21 - semver: 7.3.8 + semver: 7.6.0 transitivePeerDependencies: - supports-color dev: true - /vue-router/4.1.6_vue@3.2.47: - resolution: {integrity: sha512-DYWYwsG6xNPmLq/FmZn8Ip+qrhFEzA14EI12MsMgVxvHFDYvlr4NXpVF5hrRH1wVcDP8fGi5F4rxuJSl8/r+EQ==} + /vue-router@4.2.5(vue@3.4.19): + resolution: {integrity: sha512-DIUpKcyg4+PTQKfFPX88UWhlagBEBEfJ5A8XDXRJLUnZOvcpMF8o/dnL90vpVkGaPbjvXazV/rC1qBKrZlFugw==} peerDependencies: vue: ^3.2.0 dependencies: - '@vue/devtools-api': 6.4.5 - vue: 3.2.47 + '@vue/devtools-api': 6.5.1 + vue: 3.4.19(typescript@5.3.3) - /vue/3.2.47: - resolution: {integrity: sha512-60188y/9Dc9WVrAZeUVSDxRQOZ+z+y5nO2ts9jWXSTkMvayiWxCWOWtBQoYjLeccfXkiiPZWAHcV+WTPhkqJHQ==} + /vue@3.4.19(typescript@5.3.3): + resolution: {integrity: sha512-W/7Fc9KUkajFU8dBeDluM4sRGc/aa4YJnOYck8dkjgZoXtVsn3OeTGni66FV1l3+nvPA7VBFYtPioaGKUmEADw==} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true dependencies: - '@vue/compiler-dom': 3.2.47 - '@vue/compiler-sfc': 3.2.47 - '@vue/runtime-dom': 3.2.47 - '@vue/server-renderer': 3.2.47_vue@3.2.47 - '@vue/shared': 3.2.47 + '@vue/compiler-dom': 3.4.19 + '@vue/compiler-sfc': 3.4.19 + '@vue/runtime-dom': 3.4.19 + '@vue/server-renderer': 3.4.19(vue@3.4.19) + '@vue/shared': 3.4.19 + typescript: 5.3.3 - /w3c-keyname/2.2.6: - resolution: {integrity: sha512-f+fciywl1SJEniZHD6H+kUO8gOnwIr7f4ijKA6+ZvJFjeGi1r4PDLl53Ayud9O/rk64RqgoQine0feoeOU0kXg==} + /w3c-keyname@2.2.8: + resolution: {integrity: sha512-dpojBhNsCNN7T82Tm7k26A6G9ML3NkhDsnw9n/eoxSRlVBB4CEtIQ/KTCLI2Fwf3ataSXRhYFkQi3SlnFwPvPQ==} dev: true - /w3c-xmlserializer/4.0.0: + /w3c-xmlserializer@4.0.0: resolution: {integrity: sha512-d+BFHzbiCx6zGfz0HyQ6Rg69w9k19nviJspaj4yNscGjrHu94sVP+aRm75yEbCh+r2/yR+7q6hux9LVtbuTGBw==} engines: {node: '>=14'} dependencies: xml-name-validator: 4.0.0 dev: true - /webidl-conversions/3.0.1: + /webidl-conversions@3.0.1: resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} dev: false - /webidl-conversions/7.0.0: + /webidl-conversions@7.0.0: resolution: {integrity: sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==} engines: {node: '>=12'} dev: true - /whatwg-encoding/2.0.0: + /whatwg-encoding@2.0.0: resolution: {integrity: sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==} engines: {node: '>=12'} dependencies: iconv-lite: 0.6.3 dev: true - /whatwg-mimetype/3.0.0: + /whatwg-mimetype@3.0.0: resolution: {integrity: sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==} engines: {node: '>=12'} dev: true - /whatwg-url/11.0.0: + /whatwg-url@11.0.0: resolution: {integrity: sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==} engines: {node: '>=12'} dependencies: @@ -4867,14 +5480,22 @@ packages: webidl-conversions: 7.0.0 dev: true - /whatwg-url/5.0.0: + /whatwg-url@12.0.1: + resolution: {integrity: sha512-Ed/LrqB8EPlGxjS+TrsXcpUond1mhccS3pchLhzSgPCnTimUCKj3IZE75pAs5m6heB2U2TMerKFUXheyHY+VDQ==} + engines: {node: '>=14'} + dependencies: + tr46: 4.1.1 + webidl-conversions: 7.0.0 + dev: true + + /whatwg-url@5.0.0: resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} dependencies: tr46: 0.0.3 webidl-conversions: 3.0.1 dev: false - /which/2.0.2: + /which@2.0.2: resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} engines: {node: '>= 8'} hasBin: true @@ -4882,7 +5503,7 @@ packages: isexe: 2.0.0 dev: true - /why-is-node-running/2.2.2: + /why-is-node-running@2.2.2: resolution: {integrity: sha512-6tSwToZxTOcotxHeA+qGCq1mVzKR3CwcJGmVcY+QE8SHy6TnpFnh8PAvPNHYr7EcuVeG0QSMxtYCuO1ta/G/oA==} engines: {node: '>=8'} hasBin: true @@ -4891,12 +5512,7 @@ packages: stackback: 0.0.2 dev: true - /word-wrap/1.2.3: - resolution: {integrity: sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==} - engines: {node: '>=0.10.0'} - dev: true - - /wrap-ansi/6.2.0: + /wrap-ansi@6.2.0: resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==} engines: {node: '>=8'} dependencies: @@ -4905,7 +5521,7 @@ packages: strip-ansi: 6.0.1 dev: true - /wrap-ansi/7.0.0: + /wrap-ansi@7.0.0: resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} engines: {node: '>=10'} dependencies: @@ -4914,15 +5530,24 @@ packages: strip-ansi: 6.0.1 dev: true - /wrappy/1.0.2: + /wrap-ansi@8.1.0: + resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} + engines: {node: '>=12'} + dependencies: + ansi-styles: 6.2.1 + string-width: 5.1.2 + strip-ansi: 7.1.0 + dev: true + + /wrappy@1.0.2: resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} - /ws/8.11.0: - resolution: {integrity: sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg==} + /ws@8.16.0: + resolution: {integrity: sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ==} engines: {node: '>=10.0.0'} peerDependencies: bufferutil: ^4.0.1 - utf-8-validate: ^5.0.2 + utf-8-validate: '>=5.0.2' peerDependenciesMeta: bufferutil: optional: true @@ -4930,63 +5555,36 @@ packages: optional: true dev: true - /xml-name-validator/4.0.0: + /xml-name-validator@4.0.0: resolution: {integrity: sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==} engines: {node: '>=12'} dev: true - /xmlchars/2.2.0: + /xmlchars@2.2.0: resolution: {integrity: sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==} dev: true - /xstate/4.33.6: - resolution: {integrity: sha512-A5R4fsVKADWogK2a43ssu8Fz1AF077SfrKP1ZNyDBD8lNa/l4zfR//Luofp5GSWehOQr36Jp0k2z7b+sH2ivyg==} + /xstate@4.37.2: + resolution: {integrity: sha512-Qm337O49CRTZ3PRyRuK6b+kvI+D3JGxXIZCTul+xEsyFCVkTFDt5jixaL1nBWcUBcaTQ9um/5CRGVItPi7fveg==} dev: false - /y18n/5.0.8: - resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} - engines: {node: '>=10'} - dev: true - - /yallist/2.1.2: - resolution: {integrity: sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==} - dev: true - - /yallist/4.0.0: + /yallist@4.0.0: resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} dev: true - /yargs-parser/20.2.9: - resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==} - engines: {node: '>=10'} - dev: true - - /yargs/16.2.0: - resolution: {integrity: sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==} - engines: {node: '>=10'} - dependencies: - cliui: 7.0.4 - escalade: 3.1.1 - get-caller-file: 2.0.5 - require-directory: 2.1.1 - string-width: 4.2.3 - y18n: 5.0.8 - yargs-parser: 20.2.9 - dev: true - - /yauzl/2.10.0: + /yauzl@2.10.0: resolution: {integrity: sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==} dependencies: buffer-crc32: 0.2.13 fd-slicer: 1.1.0 dev: true - /yocto-queue/0.1.0: + /yocto-queue@0.1.0: resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} engines: {node: '>=10'} dev: true - /yocto-queue/1.0.0: + /yocto-queue@1.0.0: resolution: {integrity: sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==} engines: {node: '>=12.20'} dev: true diff --git a/common/config/rush/rush-plugins.json b/common/config/rush/rush-plugins.json new file mode 100644 index 00000000..9c407d4f --- /dev/null +++ b/common/config/rush/rush-plugins.json @@ -0,0 +1,10 @@ +{ + "$schema": "https://developer.microsoft.com/json-schemas/rush/v5/rush-plugins.schema.json", + "plugins": [ + { + "packageName": "rush-sort-package-json", + "pluginName": "rush-sort-package-json", + "autoinstallerName": "rush-plugins" + } + ] +} \ No newline at end of file diff --git a/common/config/rush/version-policies.json b/common/config/rush/version-policies.json index 4795c3f4..de15a8cb 100644 --- a/common/config/rush/version-policies.json +++ b/common/config/rush/version-policies.json @@ -9,6 +9,12 @@ * to a set of projects that are specified using the "versionPolicyName" field in rush.json. */ [ + { + "definitionName": "lockStepVersion", + "policyName": "stonecrop", + "version": "0.2.4", + "nextBump": "patch" + } // { // /** // * (Required) Indicates the kind of version policy being defined ("lockStepVersion" or "individualVersion"). diff --git a/common/git-hooks/pre-commit b/common/git-hooks/pre-commit index 2438e23d..dc09649f 100755 --- a/common/git-hooks/pre-commit +++ b/common/git-hooks/pre-commit @@ -6,4 +6,7 @@ # Invoke the "rush prettier" custom command to reformat files whenever they # are committed. The command is defined in common/config/rush/command-line.json # and uses the "rush-prettier" autoinstaller. -node common/scripts/install-run-rush.js prettier || exit $? \ No newline at end of file +node common/scripts/install-run-rush.js prettier || exit $? + +# Invoke the "rush build" custom command to build the project before every commit +node common/scripts/install-run-rush.js build || exit $? diff --git a/common/scripts/install-run-rush-pnpm.js b/common/scripts/install-run-rush-pnpm.js new file mode 100644 index 00000000..2356649f --- /dev/null +++ b/common/scripts/install-run-rush-pnpm.js @@ -0,0 +1,31 @@ +// THIS FILE WAS GENERATED BY A TOOL. ANY MANUAL MODIFICATIONS WILL GET OVERWRITTEN WHENEVER RUSH IS UPGRADED. +// +// This script is intended for usage in an automated build environment where the Rush command may not have +// been preinstalled, or may have an unpredictable version. This script will automatically install the version of Rush +// specified in the rush.json configuration file (if not already installed), and then pass a command-line to the +// rush-pnpm command. +// +// An example usage would be: +// +// node common/scripts/install-run-rush-pnpm.js pnpm-command +// +// For more information, see: https://rushjs.io/pages/maintainer/setup_new_repo/ +// +// Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license. +// See the @microsoft/rush package's LICENSE file for details. + +/******/ (() => { // webpackBootstrap +/******/ "use strict"; +var __webpack_exports__ = {}; +/*!*****************************************************!*\ + !*** ./lib-esnext/scripts/install-run-rush-pnpm.js ***! + \*****************************************************/ + +// Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license. +// See LICENSE in the project root for license information. +require('./install-run-rush'); +//# sourceMappingURL=install-run-rush-pnpm.js.map +module.exports = __webpack_exports__; +/******/ })() +; +//# sourceMappingURL=install-run-rush-pnpm.js.map \ No newline at end of file diff --git a/common/scripts/install-run-rush.js b/common/scripts/install-run-rush.js index 7ea85c5a..9676fc71 100644 --- a/common/scripts/install-run-rush.js +++ b/common/scripts/install-run-rush.js @@ -8,6 +8,9 @@ // node common/scripts/install-run-rush.js install // // For more information, see: https://rushjs.io/pages/maintainer/setup_new_repo/ +// +// Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license. +// See the @microsoft/rush package's LICENSE file for details. /******/ (() => { // webpackBootstrap /******/ "use strict"; @@ -113,7 +116,8 @@ __webpack_require__.r(__webpack_exports__); /* harmony import */ var fs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! fs */ 657147); /* harmony import */ var fs__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(fs__WEBPACK_IMPORTED_MODULE_1__); // Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license. -// See the @microsoft/rush package's LICENSE file for license information. +// See LICENSE in the project root for license information. +/* eslint-disable no-console */ const { installAndRun, findRushJsonFolder, RUSH_JSON_FILENAME, runWithErrorAndStatusCode } = require('./install-run'); @@ -136,17 +140,27 @@ function _getRushVersion(logger) { return rushJsonMatches[1]; } catch (e) { - throw new Error(`Unable to determine the required version of Rush from rush.json (${rushJsonFolder}). ` + - "The 'rushVersion' field is either not assigned in rush.json or was specified " + + throw new Error(`Unable to determine the required version of Rush from ${RUSH_JSON_FILENAME} (${rushJsonFolder}). ` + + `The 'rushVersion' field is either not assigned in ${RUSH_JSON_FILENAME} or was specified ` + 'using an unexpected syntax.'); } } +function _getBin(scriptName) { + switch (scriptName.toLowerCase()) { + case 'install-run-rush-pnpm.js': + return 'rush-pnpm'; + case 'install-run-rushx.js': + return 'rushx'; + default: + return 'rush'; + } +} function _run() { const [nodePath /* Ex: /bin/node */, scriptPath /* /repo/common/scripts/install-run-rush.js */, ...packageBinArgs /* [build, --to, myproject] */] = process.argv; // Detect if this script was directly invoked, or if the install-run-rushx script was invokved to select the // appropriate binary inside the rush package to run const scriptName = path__WEBPACK_IMPORTED_MODULE_0__.basename(scriptPath); - const bin = scriptName.toLowerCase() === 'install-run-rushx.js' ? 'rushx' : 'rush'; + const bin = _getBin(scriptName); if (!nodePath || !scriptPath) { throw new Error('Unexpected exception: could not detect node path or script path'); } @@ -173,7 +187,10 @@ function _run() { } if (!commandFound) { console.log(`Usage: ${scriptName} [args...]`); - if (scriptName === 'install-run-rush.js') { + if (scriptName === 'install-run-rush-pnpm.js') { + console.log(`Example: ${scriptName} pnpm-command`); + } + else if (scriptName === 'install-run-rush.js') { console.log(`Example: ${scriptName} build --to myproject`); } else { @@ -183,7 +200,7 @@ function _run() { } runWithErrorAndStatusCode(logger, () => { const version = _getRushVersion(logger); - logger.info(`The rush.json configuration requests Rush version ${version}`); + logger.info(`The ${RUSH_JSON_FILENAME} configuration requests Rush version ${version}`); const lockFilePath = process.env[INSTALL_RUN_RUSH_LOCKFILE_PATH_VARIABLE]; if (lockFilePath) { logger.info(`Found ${INSTALL_RUN_RUSH_LOCKFILE_PATH_VARIABLE}="${lockFilePath}", installing with lockfile.`); diff --git a/common/scripts/install-run-rushx.js b/common/scripts/install-run-rushx.js index b05df262..6581521f 100644 --- a/common/scripts/install-run-rushx.js +++ b/common/scripts/install-run-rushx.js @@ -10,6 +10,9 @@ // node common/scripts/install-run-rushx.js custom-command // // For more information, see: https://rushjs.io/pages/maintainer/setup_new_repo/ +// +// Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license. +// See the @microsoft/rush package's LICENSE file for details. /******/ (() => { // webpackBootstrap /******/ "use strict"; @@ -19,7 +22,7 @@ var __webpack_exports__ = {}; \*************************************************/ // Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license. -// See the @microsoft/rush package's LICENSE file for license information. +// See LICENSE in the project root for license information. require('./install-run-rush'); //# sourceMappingURL=install-run-rushx.js.map module.exports = __webpack_exports__; diff --git a/common/scripts/install-run.js b/common/scripts/install-run.js index bcd982b3..9283c445 100644 --- a/common/scripts/install-run.js +++ b/common/scripts/install-run.js @@ -8,6 +8,9 @@ // node common/scripts/install-run.js qrcode@1.2.2 qrcode https://rushjs.io // // For more information, see: https://rushjs.io/pages/maintainer/setup_new_repo/ +// +// Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license. +// See the @microsoft/rush package's LICENSE file for details. /******/ (() => { // webpackBootstrap /******/ "use strict"; @@ -21,6 +24,7 @@ __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "isVariableSetInNpmrcFile": () => (/* binding */ isVariableSetInNpmrcFile), /* harmony export */ "syncNpmrc": () => (/* binding */ syncNpmrc) /* harmony export */ }); /* harmony import */ var fs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! fs */ 657147); @@ -33,23 +37,30 @@ __webpack_require__.r(__webpack_exports__); /** - * As a workaround, copyAndTrimNpmrcFile() copies the .npmrc file to the target folder, and also trims + * This function reads the content for given .npmrc file path, and also trims * unusable lines from the .npmrc file. * - * Why are we trimming the .npmrc lines? NPM allows environment variables to be specified in - * the .npmrc file to provide different authentication tokens for different registry. - * However, if the environment variable is undefined, it expands to an empty string, which - * produces a valid-looking mapping with an invalid URL that causes an error. Instead, - * we'd prefer to skip that line and continue looking in other places such as the user's - * home directory. - * * @returns * The text of the the .npmrc. */ -function _copyAndTrimNpmrcFile(logger, sourceNpmrcPath, targetNpmrcPath) { - logger.info(`Transforming ${sourceNpmrcPath}`); // Verbose - logger.info(` --> "${targetNpmrcPath}"`); - let npmrcFileLines = fs__WEBPACK_IMPORTED_MODULE_0__.readFileSync(sourceNpmrcPath).toString().split('\n'); +// create a global _combinedNpmrc for cache purpose +const _combinedNpmrcMap = new Map(); +function _trimNpmrcFile(options) { + const { sourceNpmrcPath, linesToPrepend, linesToAppend } = options; + const combinedNpmrcFromCache = _combinedNpmrcMap.get(sourceNpmrcPath); + if (combinedNpmrcFromCache !== undefined) { + return combinedNpmrcFromCache; + } + let npmrcFileLines = []; + if (linesToPrepend) { + npmrcFileLines.push(...linesToPrepend); + } + if (fs__WEBPACK_IMPORTED_MODULE_0__.existsSync(sourceNpmrcPath)) { + npmrcFileLines.push(...fs__WEBPACK_IMPORTED_MODULE_0__.readFileSync(sourceNpmrcPath).toString().split('\n')); + } + if (linesToAppend) { + npmrcFileLines.push(...linesToAppend); + } npmrcFileLines = npmrcFileLines.map((line) => (line || '').trim()); const resultLines = []; // This finds environment variable tokens that look like "${VAR_NAME}" @@ -57,8 +68,13 @@ function _copyAndTrimNpmrcFile(logger, sourceNpmrcPath, targetNpmrcPath) { // Comment lines start with "#" or ";" const commentRegExp = /^\s*[#;]/; // Trim out lines that reference environment variables that aren't defined - for (const line of npmrcFileLines) { + for (let line of npmrcFileLines) { let lineShouldBeTrimmed = false; + //remove spaces before or after key and value + line = line + .split('=') + .map((lineToTrim) => lineToTrim.trim()) + .join('='); // Ignore comment lines if (!commentRegExp.test(line)) { const environmentVariables = line.match(expansionRegExp); @@ -85,27 +101,44 @@ function _copyAndTrimNpmrcFile(logger, sourceNpmrcPath, targetNpmrcPath) { } } const combinedNpmrc = resultLines.join('\n'); + //save the cache + _combinedNpmrcMap.set(sourceNpmrcPath, combinedNpmrc); + return combinedNpmrc; +} +function _copyAndTrimNpmrcFile(options) { + const { logger, sourceNpmrcPath, targetNpmrcPath, linesToPrepend, linesToAppend } = options; + logger.info(`Transforming ${sourceNpmrcPath}`); // Verbose + logger.info(` --> "${targetNpmrcPath}"`); + const combinedNpmrc = _trimNpmrcFile({ + sourceNpmrcPath, + linesToPrepend, + linesToAppend + }); fs__WEBPACK_IMPORTED_MODULE_0__.writeFileSync(targetNpmrcPath, combinedNpmrc); return combinedNpmrc; } -/** - * syncNpmrc() copies the .npmrc file to the target folder, and also trims unusable lines from the .npmrc file. - * If the source .npmrc file not exist, then syncNpmrc() will delete an .npmrc that is found in the target folder. - * - * IMPORTANT: THIS CODE SHOULD BE KEPT UP TO DATE WITH Utilities._syncNpmrc() - * - * @returns - * The text of the the synced .npmrc, if one exists. If one does not exist, then undefined is returned. - */ -function syncNpmrc(sourceNpmrcFolder, targetNpmrcFolder, useNpmrcPublish, logger = { - info: console.log, - error: console.error -}) { +function syncNpmrc(options) { + const { sourceNpmrcFolder, targetNpmrcFolder, useNpmrcPublish, logger = { + // eslint-disable-next-line no-console + info: console.log, + // eslint-disable-next-line no-console + error: console.error + }, createIfMissing = false, linesToAppend, linesToPrepend } = options; const sourceNpmrcPath = path__WEBPACK_IMPORTED_MODULE_1__.join(sourceNpmrcFolder, !useNpmrcPublish ? '.npmrc' : '.npmrc-publish'); const targetNpmrcPath = path__WEBPACK_IMPORTED_MODULE_1__.join(targetNpmrcFolder, '.npmrc'); try { - if (fs__WEBPACK_IMPORTED_MODULE_0__.existsSync(sourceNpmrcPath)) { - return _copyAndTrimNpmrcFile(logger, sourceNpmrcPath, targetNpmrcPath); + if (fs__WEBPACK_IMPORTED_MODULE_0__.existsSync(sourceNpmrcPath) || createIfMissing) { + // Ensure the target folder exists + if (!fs__WEBPACK_IMPORTED_MODULE_0__.existsSync(targetNpmrcFolder)) { + fs__WEBPACK_IMPORTED_MODULE_0__.mkdirSync(targetNpmrcFolder, { recursive: true }); + } + return _copyAndTrimNpmrcFile({ + sourceNpmrcPath, + targetNpmrcPath, + logger, + linesToAppend, + linesToPrepend + }); } else if (fs__WEBPACK_IMPORTED_MODULE_0__.existsSync(targetNpmrcPath)) { // If the source .npmrc doesn't exist and there is one in the target, delete the one in the target @@ -117,6 +150,16 @@ function syncNpmrc(sourceNpmrcFolder, targetNpmrcFolder, useNpmrcPublish, logger throw new Error(`Error syncing .npmrc file: ${e}`); } } +function isVariableSetInNpmrcFile(sourceNpmrcFolder, variableKey) { + const sourceNpmrcPath = `${sourceNpmrcFolder}/.npmrc`; + //if .npmrc file does not exist, return false directly + if (!fs__WEBPACK_IMPORTED_MODULE_0__.existsSync(sourceNpmrcPath)) { + return false; + } + const trimmedNpmrcFile = _trimNpmrcFile({ sourceNpmrcPath }); + const variableKeyRegExp = new RegExp(`^${variableKey}=`, 'm'); + return trimmedNpmrcFile.match(variableKeyRegExp) !== null; +} //# sourceMappingURL=npmrcUtilities.js.map /***/ }), @@ -238,8 +281,8 @@ var __webpack_exports__ = {}; __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "RUSH_JSON_FILENAME": () => (/* binding */ RUSH_JSON_FILENAME), -/* harmony export */ "getNpmPath": () => (/* binding */ getNpmPath), /* harmony export */ "findRushJsonFolder": () => (/* binding */ findRushJsonFolder), +/* harmony export */ "getNpmPath": () => (/* binding */ getNpmPath), /* harmony export */ "installAndRun": () => (/* binding */ installAndRun), /* harmony export */ "runWithErrorAndStatusCode": () => (/* binding */ runWithErrorAndStatusCode) /* harmony export */ }); @@ -253,7 +296,8 @@ __webpack_require__.r(__webpack_exports__); /* harmony import */ var path__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(path__WEBPACK_IMPORTED_MODULE_3__); /* harmony import */ var _utilities_npmrcUtilities__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../utilities/npmrcUtilities */ 679877); // Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license. -// See the @microsoft/rush package's LICENSE file for license information. +// See LICENSE in the project root for license information. +/* eslint-disable no-console */ @@ -297,7 +341,7 @@ let _npmPath = undefined; function getNpmPath() { if (!_npmPath) { try { - if (os__WEBPACK_IMPORTED_MODULE_2__.platform() === 'win32') { + if (_isWindows()) { // We're on Windows const whereOutput = child_process__WEBPACK_IMPORTED_MODULE_0__.execSync('where npm', { stdio: [] }).toString(); const lines = whereOutput.split(os__WEBPACK_IMPORTED_MODULE_2__.EOL).filter((line) => !!line); @@ -359,6 +403,23 @@ function _getRushTempFolder(rushCommonFolder) { return _ensureAndJoinPath(rushCommonFolder, 'temp'); } } +/** + * Compare version strings according to semantic versioning. + * Returns a positive integer if "a" is a later version than "b", + * a negative integer if "b" is later than "a", + * and 0 otherwise. + */ +function _compareVersionStrings(a, b) { + const aParts = a.split(/[.-]/); + const bParts = b.split(/[.-]/); + const numberOfParts = Math.max(aParts.length, bParts.length); + for (let i = 0; i < numberOfParts; i++) { + if (aParts[i] !== bParts[i]) { + return (Number(aParts[i]) || 0) - (Number(bParts[i]) || 0); + } + } + return 0; +} /** * Resolve a package specifier to a static version */ @@ -376,32 +437,55 @@ function _resolvePackageVersion(logger, rushCommonFolder, { name, version }) { try { const rushTempFolder = _getRushTempFolder(rushCommonFolder); const sourceNpmrcFolder = path__WEBPACK_IMPORTED_MODULE_3__.join(rushCommonFolder, 'config', 'rush'); - (0,_utilities_npmrcUtilities__WEBPACK_IMPORTED_MODULE_4__.syncNpmrc)(sourceNpmrcFolder, rushTempFolder, undefined, logger); + (0,_utilities_npmrcUtilities__WEBPACK_IMPORTED_MODULE_4__.syncNpmrc)({ + sourceNpmrcFolder, + targetNpmrcFolder: rushTempFolder, + logger + }); const npmPath = getNpmPath(); // This returns something that looks like: - // @microsoft/rush@3.0.0 '3.0.0' - // @microsoft/rush@3.0.1 '3.0.1' - // ... - // @microsoft/rush@3.0.20 '3.0.20' - // - const npmVersionSpawnResult = child_process__WEBPACK_IMPORTED_MODULE_0__.spawnSync(npmPath, ['view', `${name}@${version}`, 'version', '--no-update-notifier'], { + // ``` + // [ + // "3.0.0", + // "3.0.1", + // ... + // "3.0.20" + // ] + // ``` + // + // if multiple versions match the selector, or + // + // ``` + // "3.0.0" + // ``` + // + // if only a single version matches. + const spawnSyncOptions = { cwd: rushTempFolder, - stdio: [] - }); + stdio: [], + shell: _isWindows() + }; + const platformNpmPath = _getPlatformPath(npmPath); + const npmVersionSpawnResult = child_process__WEBPACK_IMPORTED_MODULE_0__.spawnSync(platformNpmPath, ['view', `${name}@${version}`, 'version', '--no-update-notifier', '--json'], spawnSyncOptions); if (npmVersionSpawnResult.status !== 0) { throw new Error(`"npm view" returned error code ${npmVersionSpawnResult.status}`); } const npmViewVersionOutput = npmVersionSpawnResult.stdout.toString(); - const versionLines = npmViewVersionOutput.split('\n').filter((line) => !!line); - const latestVersion = versionLines[versionLines.length - 1]; + const parsedVersionOutput = JSON.parse(npmViewVersionOutput); + const versions = Array.isArray(parsedVersionOutput) + ? parsedVersionOutput + : [parsedVersionOutput]; + let latestVersion = versions[0]; + for (let i = 1; i < versions.length; i++) { + const latestVersionCandidate = versions[i]; + if (_compareVersionStrings(latestVersionCandidate, latestVersion) > 0) { + latestVersion = latestVersionCandidate; + } + } if (!latestVersion) { throw new Error('No versions found for the specified version range.'); } - const versionMatches = latestVersion.match(/^.+\s\'(.+)\'$/); - if (!versionMatches) { - throw new Error(`Invalid npm output ${latestVersion}`); - } - return versionMatches[1]; + return latestVersion; } catch (e) { throw new Error(`Unable to resolve version ${version} of package ${name}: ${e}`); @@ -427,7 +511,7 @@ function findRushJsonFolder() { } } while (basePath !== (tempPath = path__WEBPACK_IMPORTED_MODULE_3__.dirname(basePath))); // Exit the loop when we hit the disk root if (!_rushJsonFolder) { - throw new Error('Unable to find rush.json.'); + throw new Error(`Unable to find ${RUSH_JSON_FILENAME}.`); } } return _rushJsonFolder; @@ -515,10 +599,12 @@ function _installPackage(logger, packageInstallFolder, name, version, command) { try { logger.info(`Installing ${name}...`); const npmPath = getNpmPath(); - const result = child_process__WEBPACK_IMPORTED_MODULE_0__.spawnSync(npmPath, [command], { + const platformNpmPath = _getPlatformPath(npmPath); + const result = child_process__WEBPACK_IMPORTED_MODULE_0__.spawnSync(platformNpmPath, [command], { stdio: 'inherit', cwd: packageInstallFolder, - env: process.env + env: process.env, + shell: _isWindows() }); if (result.status !== 0) { throw new Error(`"npm ${command}" encountered an error`); @@ -534,9 +620,18 @@ function _installPackage(logger, packageInstallFolder, name, version, command) { */ function _getBinPath(packageInstallFolder, binName) { const binFolderPath = path__WEBPACK_IMPORTED_MODULE_3__.resolve(packageInstallFolder, NODE_MODULES_FOLDER_NAME, '.bin'); - const resolvedBinName = os__WEBPACK_IMPORTED_MODULE_2__.platform() === 'win32' ? `${binName}.cmd` : binName; + const resolvedBinName = _isWindows() ? `${binName}.cmd` : binName; return path__WEBPACK_IMPORTED_MODULE_3__.resolve(binFolderPath, resolvedBinName); } +/** + * Returns a cross-platform path - windows must enclose any path containing spaces within double quotes. + */ +function _getPlatformPath(platformPath) { + return _isWindows() && platformPath.includes(' ') ? `"${platformPath}"` : platformPath; +} +function _isWindows() { + return os__WEBPACK_IMPORTED_MODULE_2__.platform() === 'win32'; +} /** * Write a flag file to the package's install directory, signifying that the install was successful. */ @@ -558,7 +653,11 @@ function installAndRun(logger, packageName, packageVersion, packageBinName, pack // The package isn't already installed _cleanInstallFolder(rushTempFolder, packageInstallFolder, lockFilePath); const sourceNpmrcFolder = path__WEBPACK_IMPORTED_MODULE_3__.join(rushCommonFolder, 'config', 'rush'); - (0,_utilities_npmrcUtilities__WEBPACK_IMPORTED_MODULE_4__.syncNpmrc)(sourceNpmrcFolder, packageInstallFolder, undefined, logger); + (0,_utilities_npmrcUtilities__WEBPACK_IMPORTED_MODULE_4__.syncNpmrc)({ + sourceNpmrcFolder, + targetNpmrcFolder: packageInstallFolder, + logger + }); _createPackageJson(packageInstallFolder, packageName, packageVersion); const command = lockFilePath ? 'ci' : 'install'; _installPackage(logger, packageInstallFolder, packageName, packageVersion, command); @@ -574,15 +673,14 @@ function installAndRun(logger, packageName, packageVersion, packageBinName, pack const originalEnvPath = process.env.PATH || ''; let result; try { - // Node.js on Windows can not spawn a file when the path has a space on it - // unless the path gets wrapped in a cmd friendly way and shell mode is used - const shouldUseShell = binPath.includes(' ') && os__WEBPACK_IMPORTED_MODULE_2__.platform() === 'win32'; - const platformBinPath = shouldUseShell ? `"${binPath}"` : binPath; + // `npm` bin stubs on Windows are `.cmd` files + // Node.js will not directly invoke a `.cmd` file unless `shell` is set to `true` + const platformBinPath = _getPlatformPath(binPath); process.env.PATH = [binFolderPath, originalEnvPath].join(path__WEBPACK_IMPORTED_MODULE_3__.delimiter); result = child_process__WEBPACK_IMPORTED_MODULE_0__.spawnSync(platformBinPath, packageBinArgs, { stdio: 'inherit', windowsVerbatimArguments: false, - shell: shouldUseShell, + shell: _isWindows(), cwd: process.cwd(), env: process.env }); diff --git a/desktop/CHANGELOG.json b/desktop/CHANGELOG.json new file mode 100644 index 00000000..80d0a5f6 --- /dev/null +++ b/desktop/CHANGELOG.json @@ -0,0 +1,24 @@ +{ + "name": "@agritheory/desktop", + "entries": [ + { + "version": "0.1.3", + "tag": "@agritheory/desktop_v0.1.3", + "date": "Tue, 11 Apr 2023 16:39:13 GMT", + "comments": { + "patch": [ + { + "comment": "Publish package", + "author": "Tyler Matteson ", + "commit": "57de2e4e2c6832dfc7c4a9636d40478627902817" + } + ], + "dependency": [ + { + "comment": "Updating dependency \"@agritheory/stonecrop\" from `^0.1.0` to `^0.1.3`" + } + ] + } + } + ] +} diff --git a/desktop/CHANGELOG.md b/desktop/CHANGELOG.md new file mode 100644 index 00000000..828ca344 --- /dev/null +++ b/desktop/CHANGELOG.md @@ -0,0 +1,11 @@ +# Change Log - @agritheory/desktop + +This log was last generated on Tue, 11 Apr 2023 16:39:13 GMT and should not be manually modified. + +## 0.1.3 +Tue, 11 Apr 2023 16:39:13 GMT + +### Patches + +- Publish package + diff --git a/desktop/dist/desktop.js b/desktop/dist/desktop.js new file mode 100644 index 00000000..2340ba99 --- /dev/null +++ b/desktop/dist/desktop.js @@ -0,0 +1,4967 @@ +import { defineComponent as q, ref as V, onMounted as Lt, openBlock as x, createElementBlock as A, normalizeClass as co, createElementVNode as T, Fragment as Ie, renderList as Pe, toDisplayString as ce, createCommentVNode as ke, withDirectives as lt, vShow as jt, pushScopeId as lo, popScopeId as uo, inject as Z, computed as B, createBlock as Se, resolveDynamicComponent as Bt, mergeProps as Ut, effectScope as fo, markRaw as Ee, onBeforeMount as wr, shallowRef as _r, toRaw as ut, hasInjectionContext as br, getCurrentInstance as Ht, unref as k, shallowReactive as Er, watch as ue, reactive as be, isRef as We, isReactive as Wt, toRef as yt, nextTick as Fe, getCurrentScope as po, onScopeDispose as ho, h as mo, provide as nt, toRefs as dn, watchEffect as kr, normalizeStyle as ie, renderSlot as me, createVNode as at, withCtx as it, useCssVars as vo, createTextVNode as go, onBeforeUnmount as Sr, resolveComponent as Or, withKeys as Ye, vModelText as Ir } from "vue"; +const Ft = (e) => (lo("data-v-b7fdfbec"), e = e(), uo(), e), Pr = { class: "action-menu-icon" }, xr = /* @__PURE__ */ Ft(() => /* @__PURE__ */ T("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" +}, [ + /* @__PURE__ */ T("polygon", { points: "54.2,33.4 29.2,58.8 25,54.6 50,29.2 " }) +], -1)), Cr = /* @__PURE__ */ Ft(() => /* @__PURE__ */ T("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" +}, [ + /* @__PURE__ */ T("polygon", { points: "70.8,58.8 45.8,33.4 50,29.2 75,54.6 " }) +], -1)), $r = [ + xr, + Cr +], Nr = /* @__PURE__ */ Ft(() => /* @__PURE__ */ T("div", { style: { "margin-right": "30px" } }, null, -1)), Rr = ["onclick"], Ar = { key: 1 }, Tr = ["onClick"], Dr = { class: "dropdown-container" }, Vr = { class: "dropdown" }, Mr = ["onclick"], Lr = ["href"], jr = { class: "dropdown-item" }, Br = /* @__PURE__ */ q({ + __name: "ActionSet", + props: { + elements: {} + }, + setup(e) { + const t = e, n = V([]), o = V(!1), r = V(null), s = V(!1), i = V(!1); + Lt(() => { + n.value = t.elements, a(); + }); + const a = () => { + for (let d of n.value) + d.elementType === "dropdown" && (d.show = !1); + }, l = () => { + s.value = !0, r.value = setTimeout(() => { + s.value && (o.value = !0); + }, 500); + }, u = () => { + s.value = !1, i.value = !1, clearTimeout(r.value), o.value = !1; + }, c = (d) => { + const f = !n.value[d].show; + a(), n.value[d].show = f; + }; + return (d, f) => (x(), A("div", { + class: co([{ "open-set": o.value, "hovered-and-closed": i.value }, "action-set collapse"]), + onMouseover: l, + onMouseleave: u + }, [ + T("div", Pr, [ + T("div", { + id: "chevron", + onClick: f[0] || (f[0] = (p) => i.value = !i.value) + }, $r) + ]), + Nr, + (x(!0), A(Ie, null, Pe(n.value, (p, v) => (x(), A("div", { + class: "action-element", + key: v + }, [ + p.elementType == "button" ? (x(), A("button", { + key: 0, + onclick: p.action, + class: "button-default" + }, ce(p.label), 9, Rr)) : ke("", !0), + p.elementType == "dropdown" ? (x(), A("div", Ar, [ + T("button", { + class: "button-default", + onClick: (m) => c(v) + }, ce(p.label), 9, Tr), + lt(T("div", Dr, [ + T("div", Vr, [ + (x(!0), A(Ie, null, Pe(p.actions, (m) => (x(), A("div", { + key: m.label + }, [ + m.action != null ? (x(), A("button", { + key: 0, + onclick: m.action, + class: "dropdown-item" + }, ce(m.label), 9, Mr)) : m.link != null ? (x(), A("a", { + key: 1, + href: m.link + }, [ + T("button", jr, ce(m.label), 1) + ], 8, Lr)) : ke("", !0) + ]))), 128)) + ]) + ], 512), [ + [jt, p.show] + ]) + ])) : ke("", !0) + ]))), 128)) + ], 34)); + } +}); +const Gt = (e, t) => { + const n = e.__vccOpts || e; + for (const [o, r] of t) + n[o] = r; + return n; +}, Ur = /* @__PURE__ */ Gt(Br, [["__scopeId", "data-v-b7fdfbec"]]), Hr = {}; +function Wr(e, t) { + return x(), A("dialog"); +} +const Fr = /* @__PURE__ */ Gt(Hr, [["render", Wr]]), Gr = (e, t) => { + const n = e.__vccOpts || e; + for (const [o, r] of t) + n[o] = r; + return n; +}; +var fn; +const zr = typeof window < "u"; +zr && (fn = window == null ? void 0 : window.navigator) != null && fn.userAgent && /iP(ad|hone|od)/.test(window.navigator.userAgent); +function Qr(e) { + return e; +} +const pn = typeof globalThis < "u" ? globalThis : typeof window < "u" ? window : typeof global < "u" ? global : typeof self < "u" ? self : {}, hn = "__vueuse_ssr_handlers__"; +pn[hn] = pn[hn] || {}; +var mn; +(function(e) { + e.UP = "UP", e.RIGHT = "RIGHT", e.DOWN = "DOWN", e.LEFT = "LEFT", e.NONE = "NONE"; +})(mn || (mn = {})); +var qr = Object.defineProperty, vn = Object.getOwnPropertySymbols, Kr = Object.prototype.hasOwnProperty, Jr = Object.prototype.propertyIsEnumerable, gn = (e, t, n) => t in e ? qr(e, t, { enumerable: !0, configurable: !0, writable: !0, value: n }) : e[t] = n, Yr = (e, t) => { + for (var n in t || (t = {})) + Kr.call(t, n) && gn(e, n, t[n]); + if (vn) + for (var n of vn(t)) + Jr.call(t, n) && gn(e, n, t[n]); + return e; +}; +const Xr = { + easeInSine: [0.12, 0, 0.39, 0], + easeOutSine: [0.61, 1, 0.88, 1], + easeInOutSine: [0.37, 0, 0.63, 1], + easeInQuad: [0.11, 0, 0.5, 0], + easeOutQuad: [0.5, 1, 0.89, 1], + easeInOutQuad: [0.45, 0, 0.55, 1], + easeInCubic: [0.32, 0, 0.67, 0], + easeOutCubic: [0.33, 1, 0.68, 1], + easeInOutCubic: [0.65, 0, 0.35, 1], + easeInQuart: [0.5, 0, 0.75, 0], + easeOutQuart: [0.25, 1, 0.5, 1], + easeInOutQuart: [0.76, 0, 0.24, 1], + easeInQuint: [0.64, 0, 0.78, 0], + easeOutQuint: [0.22, 1, 0.36, 1], + easeInOutQuint: [0.83, 0, 0.17, 1], + easeInExpo: [0.7, 0, 0.84, 0], + easeOutExpo: [0.16, 1, 0.3, 1], + easeInOutExpo: [0.87, 0, 0.13, 1], + easeInCirc: [0.55, 0, 1, 0.45], + easeOutCirc: [0, 0.55, 0.45, 1], + easeInOutCirc: [0.85, 0, 0.15, 1], + easeInBack: [0.36, 0, 0.66, -0.56], + easeOutBack: [0.34, 1.56, 0.64, 1], + easeInOutBack: [0.68, -0.6, 0.32, 1.6] +}; +Yr({ + linear: Qr +}, Xr); +q({ + 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.arrowCounter < this.results.length && (this.arrowCounter = this.arrowCounter + 1); + }, + onArrowUp() { + this.arrowCounter > 0 && (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 Zr = /* @__PURE__ */ q({ + __name: "AForm", + props: { + modelValue: {}, + data: {}, + readonly: { type: Boolean } + }, + emits: ["update:modelValue"], + setup(e, { emit: t }) { + const n = e, o = t, r = V(n.data || {}), s = (a) => { + let l = {}; + for (const [u, c] of Object.entries(a)) + ["component", "fieldtype"].includes(u) || (l[u] = c), u === "rows" && c && c.length === 0 && (l.rows = r.value[a.fieldname]); + return l; + }, i = B({ + get: () => n.modelValue.map((a, l) => B({ + get() { + return a.value; + }, + set: (u) => { + n.modelValue[l].value = u, o("update:modelValue", n.modelValue); + } + })), + set: () => { + } + }); + return (a, l) => (x(), A("form", null, [ + (x(!0), A(Ie, null, Pe(a.modelValue, (u, c) => (x(), Se(Bt(u.component), Ut({ + key: c, + schema: u, + modelValue: i.value[c].value, + "onUpdate:modelValue": (d) => i.value[c].value = d, + data: r.value[u.fieldname], + readonly: a.readonly + }, s(u)), null, 16, ["schema", "modelValue", "onUpdate:modelValue", "data", "readonly"]))), 128)) + ])); + } +}), es = /* @__PURE__ */ Gr(Zr, [["__scopeId", "data-v-82492bb4"]]), yn = { + date: "##/##/####", + datetime: "####/##/## ##:##", + time: "##:##", + fulltime: "##:##:##", + phone: "(###) ### - ####", + card: "#### #### #### ####" +}; +function ts(e) { + try { + return Function(`"use strict";return (${e})`)(); + } catch { + } +} +function ns(e) { + var t; + let n = e.value; + if (n) { + const o = ts(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 && yn[o] && (n = yn[o]); + } + return n; +} +function os(e, t) { + t || (t = "#"); + let n = e; + const o = [t, "/", "-", "(", ")", " "]; + for (const r of o) + n = n.replaceAll(r, ""); + return n; +} +function rs(e, t, n) { + n || (n = "#"); + let o = t; + for (const r of e) { + const s = o.indexOf(n); + if (s !== -1) { + const i = o.substring(0, s), a = o.substring(s + 1); + o = i + r + a; + } + } + return o.slice(0, t.length); +} +function ss(e, t) { + const n = ns(t); + if (!n) + return; + const o = "#", r = e.value, s = os(r, o); + if (s) { + const i = rs(s, n, o); + t.instance.maskFilled && (t.instance.maskFilled = !i.includes(o)), e.value = i; + } else + e.value = n; +} +q({ + 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 = V(!1), o = Z("locale", ""); + return { inputText: B({ + get() { + return e.modelValue; + }, + set(r) { + t.emit("update:modelValue", r); + } + }), locale: o, maskFilled: n }; + }, + directives: { + mask: ss + } +}); +function It(e) { + this.message = e || ""; +} +It.prototype = Object.create(Error.prototype, { + constructor: { value: It }, + name: { value: "NotImplemented" }, + stack: { + get: function() { + return new Error().stack; + } + } +}); +class je { + /** + * @constructor + * @param {Registry} registry - The immutable registry + * @param {ReturnType} store - The mutable Pinia store + * @param {Schema} [schema] - (optional) The Stonecrop schema + * @param {ImmutableDoctype['workflow']} [workflow] - (optional) The Stonecrop workflow + * @param {ImmutableDoctype['actions']} [actions] - (optional) The Stonecrop actions + * @returns {Stonecrop} The Stonecrop instance + * @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. + * @example + * const registry = new Registry() + * const store = useDataStore() + * const stonecrop = new Stonecrop(registry, store, schema, workflow, actions) + */ + constructor(t, n, o, r, s) { + if (this.name = "Stonecrop", je._root) + return je._root; + je._root = this, this.registry = t, this.store = n, this.schema = o, this.workflow = r, this.actions = s; + } + /** + * @method setup + * @param {DoctypeMeta} doctype - The doctype to setup + * @returns {void} + * @description Sets up the Stonecrop instance with the given doctype + * @example + * const doctype = await registry.getMeta('Task') + * stonecrop.setup(doctype) + */ + setup(t) { + this.getMeta(t), this.getWorkflow(t), this.getActions(t); + } + /** + * @method getMeta + * @param {DoctypeMeta} doctype - The doctype to get meta for + * @returns {DoctypeMeta} + * @see {@link DoctypeMeta} + * @throws NotImplementedError + * @description Gets the meta for the given doctype + * @example + * const doctype = await registry.getMeta('Task') + * const meta = stonecrop.getMeta(doctype) + */ + getMeta(t) { + return this.registry.getMeta ? this.registry.getMeta(t.doctype) : new It(t.doctype); + } + /** + * @method getWorkflow + * @param {DoctypeMeta} doctype - The doctype to get workflow for + * @returns {void} + * @description Gets the workflow for the given doctype + * @example + * const doctype = await registry.getMeta('Task') + * stonecrop.getWorkflow(doctype) + */ + getWorkflow(t) { + const n = this.registry.registry[t.slug]; + this.workflow = n.workflow; + } + /** + * @method getActions + * @param {DoctypeMeta} doctype - The doctype to get actions for + * @returns {void} + * @description Gets the actions for the given doctype + * @example + * const doctype = await registry.getMeta('Task') + * stonecrop.getActions(doctype) + */ + getActions(t) { + const n = this.registry.registry[t.slug]; + this.actions = n.actions; + } + /** + * @method getRecords + * @param {DoctypeMeta} doctype - The doctype to get records for + * @param {RequestInit} [filters] - The filters to apply to the records + * @returns {Promise} + * @description Gets the records for the given doctype + * @example + * const doctype = await registry.getMeta('Task') + * await stonecrop.getRecords(doctype) + * @example + * const doctype = await registry.getMeta('Task') + * const filters = JSON.stringify({ status: 'Open' }) + * await stonecrop.getRecords(doctype, { body: filters }) + */ + async getRecords(t, n) { + this.store.$patch({ records: [] }); + const r = await (await fetch(`/${t.slug}`, n)).json(); + this.store.$patch({ records: r }); + } + /** + * @method getRecord + * @param {DoctypeMeta} doctype - The doctype to get record for + * @param {string} id - The id of the record to get + * @returns {Promise} + * @description Gets the record for the given doctype and id + * @example + * const doctype = await registry.getMeta('Task') + * await stonecrop.getRecord(doctype, 'TASK-00001') + */ + async getRecord(t, n) { + this.store.$patch({ record: {} }); + const r = await (await fetch(`/${t.slug}/${n}`)).json(); + this.store.$patch({ record: r }); + } + /** + * @method runAction + * @param {DoctypeMeta} doctype - The doctype to run action for + * @param {string} action - The action to run + * @param {string[]} [id] - The id(s) of the record(s) to run action on + * @returns {void} + * @description Runs the action for the given doctype and id + * @example + * const doctype = await registry.getMeta('Task') + * stonecrop.runAction(doctype, 'CREATE') + * @example + * const doctype = await registry.getMeta('Task') + * stonecrop.runAction(doctype, 'UPDATE', ['TASK-00001']) + * @example + * const doctype = await registry.getMeta('Task') + * stonecrop.runAction(doctype, 'DELETE', ['TASK-00001']) + * @example + * const doctype = await registry.getMeta('Task') + * stonecrop.runAction(doctype, 'TRANSITION', ['TASK-00001', 'TASK-00002']) + */ + runAction(t, n, o) { + const s = this.registry.registry[t.slug].actions.get(n), { initialState: i } = this.workflow; + this.workflow.transition(i, { type: n }), s.length > 0 && s.forEach((a) => { + new Function(a)(o); + }); + } +} +var yo = !1; +function Xe(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 wt(e, t) { + if (Array.isArray(e)) { + e.splice(t, 1); + return; + } + delete e[t]; +} +function as() { + return wo().__VUE_DEVTOOLS_GLOBAL_HOOK__; +} +function wo() { + return typeof navigator < "u" && typeof window < "u" ? window : typeof global < "u" ? global : {}; +} +const is = typeof Proxy == "function", cs = "devtools-plugin:setup", ls = "plugin:settings:set"; +let $e, Pt; +function us() { + var e; + return $e !== void 0 || (typeof window < "u" && window.performance ? ($e = !0, Pt = window.performance) : typeof global < "u" && (!((e = global.perf_hooks) === null || e === void 0) && e.performance) ? ($e = !0, Pt = global.perf_hooks.performance) : $e = !1), $e; +} +function ds() { + return us() ? Pt.now() : Date.now(); +} +class fs { + constructor(t, n) { + this.target = null, this.targetQueue = [], this.onQueue = [], this.plugin = t, this.hook = n; + const o = {}; + if (t.settings) + for (const i in t.settings) { + const a = t.settings[i]; + o[i] = a.defaultValue; + } + const r = `__vue-devtools-plugin-settings__${t.id}`; + let s = Object.assign({}, o); + try { + const i = localStorage.getItem(r), a = JSON.parse(i); + Object.assign(s, a); + } catch { + } + this.fallbacks = { + getSettings() { + return s; + }, + setSettings(i) { + try { + localStorage.setItem(r, JSON.stringify(i)); + } catch { + } + s = i; + }, + now() { + return ds(); + } + }, n && n.on(ls, (i, a) => { + i === this.plugin.id && this.fallbacks.setSettings(a); + }), this.proxiedOn = new Proxy({}, { + get: (i, a) => this.target ? this.target.on[a] : (...l) => { + this.onQueue.push({ + method: a, + args: l + }); + } + }), this.proxiedTarget = new Proxy({}, { + get: (i, a) => this.target ? this.target[a] : a === "on" ? this.proxiedOn : Object.keys(this.fallbacks).includes(a) ? (...l) => (this.targetQueue.push({ + method: a, + args: l, + resolve: () => { + } + }), this.fallbacks[a](...l)) : (...l) => new Promise((u) => { + this.targetQueue.push({ + method: a, + args: l, + resolve: u + }); + }) + }); + } + 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 zt(e, t) { + const n = e, o = wo(), r = as(), s = is && n.enableEarlyProxy; + if (r && (o.__VUE_DEVTOOLS_PLUGIN_API_AVAILABLE__ || !s)) + r.emit(cs, e, t); + else { + const i = s ? new fs(n, r) : null; + (o.__VUE_DEVTOOLS_PLUGINS__ = o.__VUE_DEVTOOLS_PLUGINS__ || []).push({ + pluginDescriptor: n, + setupFn: t, + proxy: i + }), i && t(i.proxiedTarget); + } +} +/*! + * pinia v2.1.7 + * (c) 2023 Eduardo San Martin Morote + * @license MIT + */ +let Le; +const Ge = (e) => Le = e, _o = process.env.NODE_ENV !== "production" ? Symbol("pinia") : ( + /* istanbul ignore next */ + Symbol() +); +function xe(e) { + return e && typeof e == "object" && Object.prototype.toString.call(e) === "[object Object]" && typeof e.toJSON != "function"; +} +var oe; +(function(e) { + e.direct = "direct", e.patchObject = "patch object", e.patchFunction = "patch function"; +})(oe || (oe = {})); +const dt = typeof window < "u", Be = (process.env.NODE_ENV !== "production" || !1) && process.env.NODE_ENV !== "test" && dt, wn = /* @__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 })(); +function ps(e, { autoBom: t = !1 } = {}) { + return t && /^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(e.type) ? new Blob([String.fromCharCode(65279), e], { type: e.type }) : e; +} +function Qt(e, t, n) { + const o = new XMLHttpRequest(); + o.open("GET", e), o.responseType = "blob", o.onload = function() { + ko(o.response, t, n); + }, o.onerror = function() { + console.error("could not download file"); + }, o.send(); +} +function bo(e) { + const t = new XMLHttpRequest(); + t.open("HEAD", e, !1); + try { + t.send(); + } catch { + } + return t.status >= 200 && t.status <= 299; +} +function ot(e) { + try { + e.dispatchEvent(new MouseEvent("click")); + } catch { + const n = document.createEvent("MouseEvents"); + n.initMouseEvent("click", !0, !0, window, 0, 0, 0, 80, 20, !1, !1, !1, !1, 0, null), e.dispatchEvent(n); + } +} +const rt = typeof navigator == "object" ? navigator : { userAgent: "" }, Eo = /* @__PURE__ */ (() => /Macintosh/.test(rt.userAgent) && /AppleWebKit/.test(rt.userAgent) && !/Safari/.test(rt.userAgent))(), ko = dt ? ( + // Use download attribute first if possible (#193 Lumia mobile) unless this is a macOS WebView or mini program + typeof HTMLAnchorElement < "u" && "download" in HTMLAnchorElement.prototype && !Eo ? hs : ( + // Use msSaveOrOpenBlob as a second approach + "msSaveOrOpenBlob" in rt ? ms : ( + // Fallback to using FileReader and a popup + vs + ) + ) +) : () => { +}; +function hs(e, t = "download", n) { + const o = document.createElement("a"); + o.download = t, o.rel = "noopener", typeof e == "string" ? (o.href = e, o.origin !== location.origin ? bo(o.href) ? Qt(e, t, n) : (o.target = "_blank", ot(o)) : ot(o)) : (o.href = URL.createObjectURL(e), setTimeout(function() { + URL.revokeObjectURL(o.href); + }, 4e4), setTimeout(function() { + ot(o); + }, 0)); +} +function ms(e, t = "download", n) { + if (typeof e == "string") + if (bo(e)) + Qt(e, t, n); + else { + const o = document.createElement("a"); + o.href = e, o.target = "_blank", setTimeout(function() { + ot(o); + }); + } + else + navigator.msSaveOrOpenBlob(ps(e, n), t); +} +function vs(e, t, n, o) { + if (o = o || open("", "_blank"), o && (o.document.title = o.document.body.innerText = "downloading..."), typeof e == "string") + return Qt(e, t, n); + const r = e.type === "application/octet-stream", s = /constructor/i.test(String(wn.HTMLElement)) || "safari" in wn, i = /CriOS\/[\d]+/.test(navigator.userAgent); + if ((i || r && s || Eo) && typeof FileReader < "u") { + const a = new FileReader(); + a.onloadend = function() { + let l = a.result; + if (typeof l != "string") + throw o = null, new Error("Wrong reader.result type"); + l = i ? l : l.replace(/^data:[^;]*;/, "data:attachment/file;"), o ? o.location.href = l : location.assign(l), o = null; + }, a.readAsDataURL(e); + } else { + const a = URL.createObjectURL(e); + o ? o.location.assign(a) : location.href = a, o = null, setTimeout(function() { + URL.revokeObjectURL(a); + }, 4e4); + } +} +function H(e, t) { + const n = "🍍 " + e; + typeof __VUE_DEVTOOLS_TOAST__ == "function" ? __VUE_DEVTOOLS_TOAST__(n, t) : t === "error" ? console.error(n) : t === "warn" ? console.warn(n) : console.log(n); +} +function qt(e) { + return "_a" in e && "install" in e; +} +function So() { + if (!("clipboard" in navigator)) + return H("Your browser doesn't support the Clipboard API", "error"), !0; +} +function Oo(e) { + return e instanceof Error && e.message.toLowerCase().includes("document is not focused") ? (H('You need to activate the "Emulate a focused page" setting in the "Rendering" panel of devtools.', "warn"), !0) : !1; +} +async function gs(e) { + if (!So()) + try { + await navigator.clipboard.writeText(JSON.stringify(e.state.value)), H("Global state copied to clipboard."); + } catch (t) { + if (Oo(t)) + return; + H("Failed to serialize the state. Check the console for more details.", "error"), console.error(t); + } +} +async function ys(e) { + if (!So()) + try { + Io(e, JSON.parse(await navigator.clipboard.readText())), H("Global state pasted from clipboard."); + } catch (t) { + if (Oo(t)) + return; + H("Failed to deserialize the state from clipboard. Check the console for more details.", "error"), console.error(t); + } +} +async function ws(e) { + try { + ko(new Blob([JSON.stringify(e.state.value)], { + type: "text/plain;charset=utf-8" + }), "pinia-state.json"); + } catch (t) { + H("Failed to export the state as JSON. Check the console for more details.", "error"), console.error(t); + } +} +let re; +function _s() { + re || (re = document.createElement("input"), re.type = "file", re.accept = ".json"); + function e() { + return new Promise((t, n) => { + re.onchange = async () => { + const o = re.files; + if (!o) + return t(null); + const r = o.item(0); + return t(r ? { text: await r.text(), file: r } : null); + }, re.oncancel = () => t(null), re.onerror = n, re.click(); + }); + } + return e; +} +async function bs(e) { + try { + const n = await _s()(); + if (!n) + return; + const { text: o, file: r } = n; + Io(e, JSON.parse(o)), H(`Global state imported from "${r.name}".`); + } catch (t) { + H("Failed to import the state from JSON. Check the console for more details.", "error"), console.error(t); + } +} +function Io(e, t) { + for (const n in t) { + const o = e.state.value[n]; + o ? Object.assign(o, t[n]) : e.state.value[n] = t[n]; + } +} +function te(e) { + return { + _custom: { + display: e + } + }; +} +const Po = "🍍 Pinia (root)", xt = "_root"; +function Es(e) { + return qt(e) ? { + id: xt, + label: Po + } : { + id: e.$id, + label: e.$id + }; +} +function ks(e) { + if (qt(e)) { + const n = Array.from(e._s.keys()), o = e._s; + return { + state: n.map((s) => ({ + editable: !0, + key: s, + value: e.state.value[s] + })), + getters: n.filter((s) => o.get(s)._getters).map((s) => { + const i = o.get(s); + return { + editable: !1, + key: s, + value: i._getters.reduce((a, l) => (a[l] = i[l], a), {}) + }; + }) + }; + } + const t = { + state: Object.keys(e.$state).map((n) => ({ + editable: !0, + key: n, + value: e.$state[n] + })) + }; + return e._getters && e._getters.length && (t.getters = e._getters.map((n) => ({ + editable: !1, + key: n, + value: e[n] + }))), e._customProperties.size && (t.customProperties = Array.from(e._customProperties).map((n) => ({ + editable: !0, + key: n, + value: e[n] + }))), t; +} +function Ss(e) { + return e ? Array.isArray(e) ? e.reduce((t, n) => (t.keys.push(n.key), t.operations.push(n.type), t.oldValue[n.key] = n.oldValue, t.newValue[n.key] = n.newValue, t), { + oldValue: {}, + keys: [], + operations: [], + newValue: {} + }) : { + operation: te(e.type), + key: te(e.key), + oldValue: e.oldValue, + newValue: e.newValue + } : {}; +} +function Os(e) { + switch (e) { + case oe.direct: + return "mutation"; + case oe.patchFunction: + return "$patch"; + case oe.patchObject: + return "$patch"; + default: + return "unknown"; + } +} +let Re = !0; +const st = [], _e = "pinia:mutations", z = "pinia", { assign: Is } = Object, ct = (e) => "🍍 " + e; +function Ps(e, t) { + zt({ + id: "dev.esm.pinia", + label: "Pinia 🍍", + logo: "https://pinia.vuejs.org/logo.svg", + packageName: "pinia", + homepage: "https://pinia.vuejs.org", + componentStateTypes: st, + app: e + }, (n) => { + typeof n.now != "function" && H("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.addTimelineLayer({ + id: _e, + label: "Pinia 🍍", + color: 15064968 + }), n.addInspector({ + id: z, + label: "Pinia 🍍", + icon: "storage", + treeFilterPlaceholder: "Search stores", + actions: [ + { + icon: "content_copy", + action: () => { + gs(t); + }, + tooltip: "Serialize and copy the state" + }, + { + icon: "content_paste", + action: async () => { + await ys(t), n.sendInspectorTree(z), n.sendInspectorState(z); + }, + tooltip: "Replace the state with the content of your clipboard" + }, + { + icon: "save", + action: () => { + ws(t); + }, + tooltip: "Save the state as a JSON file" + }, + { + icon: "folder_open", + action: async () => { + await bs(t), n.sendInspectorTree(z), n.sendInspectorState(z); + }, + tooltip: "Import the state from a JSON file" + } + ], + nodeActions: [ + { + icon: "restore", + tooltip: 'Reset the state (with "$reset")', + action: (o) => { + const r = t._s.get(o); + r ? typeof r.$reset != "function" ? H(`Cannot reset "${o}" store because it doesn't have a "$reset" method implemented.`, "warn") : (r.$reset(), H(`Store "${o}" reset.`)) : H(`Cannot reset "${o}" store because it wasn't found.`, "warn"); + } + } + ] + }), n.on.inspectComponent((o, r) => { + const s = o.componentInstance && o.componentInstance.proxy; + if (s && s._pStores) { + const i = o.componentInstance.proxy._pStores; + Object.values(i).forEach((a) => { + o.instanceData.state.push({ + type: ct(a.$id), + key: "state", + editable: !0, + value: a._isOptionsAPI ? { + _custom: { + value: ut(a.$state), + actions: [ + { + icon: "restore", + tooltip: "Reset the state of this store", + action: () => a.$reset() + } + ] + } + } : ( + // NOTE: workaround to unwrap transferred refs + Object.keys(a.$state).reduce((l, u) => (l[u] = a.$state[u], l), {}) + ) + }), a._getters && a._getters.length && o.instanceData.state.push({ + type: ct(a.$id), + key: "getters", + editable: !1, + value: a._getters.reduce((l, u) => { + try { + l[u] = a[u]; + } catch (c) { + l[u] = c; + } + return l; + }, {}) + }); + }); + } + }), n.on.getInspectorTree((o) => { + if (o.app === e && o.inspectorId === z) { + let r = [t]; + r = r.concat(Array.from(t._s.values())), o.rootNodes = (o.filter ? r.filter((s) => "$id" in s ? s.$id.toLowerCase().includes(o.filter.toLowerCase()) : Po.toLowerCase().includes(o.filter.toLowerCase())) : r).map(Es); + } + }), n.on.getInspectorState((o) => { + if (o.app === e && o.inspectorId === z) { + const r = o.nodeId === xt ? t : t._s.get(o.nodeId); + if (!r) + return; + r && (o.state = ks(r)); + } + }), n.on.editInspectorState((o, r) => { + if (o.app === e && o.inspectorId === z) { + const s = o.nodeId === xt ? t : t._s.get(o.nodeId); + if (!s) + return H(`store "${o.nodeId}" not found`, "error"); + const { path: i } = o; + qt(s) ? i.unshift("state") : (i.length !== 1 || !s._customProperties.has(i[0]) || i[0] in s.$state) && i.unshift("$state"), Re = !1, o.set(s, i, o.state.value), Re = !0; + } + }), n.on.editComponentState((o) => { + if (o.type.startsWith("🍍")) { + const r = o.type.replace(/^🍍\s*/, ""), s = t._s.get(r); + if (!s) + return H(`store "${r}" not found`, "error"); + const { path: i } = o; + if (i[0] !== "state") + return H(`Invalid path for store "${r}": +${i} +Only state can be modified.`); + i[0] = "$state", Re = !1, o.set(s, i, o.state.value), Re = !0; + } + }); + }); +} +function xs(e, t) { + st.includes(ct(t.$id)) || st.push(ct(t.$id)), zt({ + id: "dev.esm.pinia", + label: "Pinia 🍍", + logo: "https://pinia.vuejs.org/logo.svg", + packageName: "pinia", + homepage: "https://pinia.vuejs.org", + componentStateTypes: st, + app: e, + settings: { + logStoreChanges: { + label: "Notify about new/deleted stores", + type: "boolean", + defaultValue: !0 + } + // useEmojis: { + // label: 'Use emojis in messages ⚡️', + // type: 'boolean', + // defaultValue: true, + // }, + } + }, (n) => { + const o = typeof n.now == "function" ? n.now.bind(n) : Date.now; + t.$onAction(({ after: i, onError: a, name: l, args: u }) => { + const c = xo++; + n.addTimelineEvent({ + layerId: _e, + event: { + time: o(), + title: "🛫 " + l, + subtitle: "start", + data: { + store: te(t.$id), + action: te(l), + args: u + }, + groupId: c + } + }), i((d) => { + ve = void 0, n.addTimelineEvent({ + layerId: _e, + event: { + time: o(), + title: "🛬 " + l, + subtitle: "end", + data: { + store: te(t.$id), + action: te(l), + args: u, + result: d + }, + groupId: c + } + }); + }), a((d) => { + ve = void 0, n.addTimelineEvent({ + layerId: _e, + event: { + time: o(), + logType: "error", + title: "💥 " + l, + subtitle: "end", + data: { + store: te(t.$id), + action: te(l), + args: u, + error: d + }, + groupId: c + } + }); + }); + }, !0), t._customProperties.forEach((i) => { + ue(() => k(t[i]), (a, l) => { + n.notifyComponentUpdate(), n.sendInspectorState(z), Re && n.addTimelineEvent({ + layerId: _e, + event: { + time: o(), + title: "Change", + subtitle: i, + data: { + newValue: a, + oldValue: l + }, + groupId: ve + } + }); + }, { deep: !0 }); + }), t.$subscribe(({ events: i, type: a }, l) => { + if (n.notifyComponentUpdate(), n.sendInspectorState(z), !Re) + return; + const u = { + time: o(), + title: Os(a), + data: Is({ store: te(t.$id) }, Ss(i)), + groupId: ve + }; + a === oe.patchFunction ? u.subtitle = "⤵️" : a === oe.patchObject ? u.subtitle = "🧩" : i && !Array.isArray(i) && (u.subtitle = i.type), i && (u.data["rawEvent(s)"] = { + _custom: { + display: "DebuggerEvent", + type: "object", + tooltip: "raw DebuggerEvent[]", + value: i + } + }), n.addTimelineEvent({ + layerId: _e, + event: u + }); + }, { detached: !0, flush: "sync" }); + const r = t._hotUpdate; + t._hotUpdate = Ee((i) => { + r(i), n.addTimelineEvent({ + layerId: _e, + event: { + time: o(), + title: "🔥 " + t.$id, + subtitle: "HMR update", + data: { + store: te(t.$id), + info: te("HMR update") + } + } + }), n.notifyComponentUpdate(), n.sendInspectorTree(z), n.sendInspectorState(z); + }); + const { $dispose: s } = t; + t.$dispose = () => { + s(), n.notifyComponentUpdate(), n.sendInspectorTree(z), n.sendInspectorState(z), n.getSettings().logStoreChanges && H(`Disposed "${t.$id}" store 🗑`); + }, n.notifyComponentUpdate(), n.sendInspectorTree(z), n.sendInspectorState(z), n.getSettings().logStoreChanges && H(`"${t.$id}" store installed 🆕`); + }); +} +let xo = 0, ve; +function _n(e, t, n) { + const o = t.reduce((r, s) => (r[s] = ut(e)[s], r), {}); + for (const r in o) + e[r] = function() { + const s = xo, i = n ? new Proxy(e, { + get(...l) { + return ve = s, Reflect.get(...l); + }, + set(...l) { + return ve = s, Reflect.set(...l); + } + }) : e; + ve = s; + const a = o[r].apply(i, arguments); + return ve = void 0, a; + }; +} +function Cs({ app: e, store: t, options: n }) { + if (t.$id.startsWith("__hot:")) + return; + t._isOptionsAPI = !!n.state, _n(t, Object.keys(n.actions), t._isOptionsAPI); + const o = t._hotUpdate; + ut(t)._hotUpdate = function(r) { + o.apply(this, arguments), _n(t, Object.keys(r._hmrPayload.actions), !!t._isOptionsAPI); + }, xs( + e, + // FIXME: is there a way to allow the assignment from Store to StoreGeneric? + t + ); +} +function $s() { + const e = fo(!0), t = e.run(() => V({})); + let n = [], o = []; + const r = Ee({ + install(s) { + Ge(r), r._a = s, s.provide(_o, r), s.config.globalProperties.$pinia = r, Be && Ps(s, r), o.forEach((i) => n.push(i)), o = []; + }, + use(s) { + return !this._a && !yo ? o.push(s) : n.push(s), this; + }, + _p: n, + // it's actually undefined here + // @ts-expect-error + _a: null, + _e: e, + _s: /* @__PURE__ */ new Map(), + state: t + }); + return Be && typeof Proxy < "u" && r.use(Cs), r; +} +function Co(e, t) { + for (const n in t) { + const o = t[n]; + if (!(n in e)) + continue; + const r = e[n]; + xe(r) && xe(o) && !We(o) && !Wt(o) ? e[n] = Co(r, o) : e[n] = o; + } + return e; +} +const $o = () => { +}; +function bn(e, t, n, o = $o) { + e.push(t); + const r = () => { + const s = e.indexOf(t); + s > -1 && (e.splice(s, 1), o()); + }; + return !n && po() && ho(r), r; +} +function Ne(e, ...t) { + e.slice().forEach((n) => { + n(...t); + }); +} +const Ns = (e) => e(); +function Ct(e, t) { + e instanceof Map && t instanceof Map && t.forEach((n, o) => e.set(o, n)), e instanceof Set && t instanceof Set && t.forEach(e.add, e); + for (const n in t) { + if (!t.hasOwnProperty(n)) + continue; + const o = t[n], r = e[n]; + xe(r) && xe(o) && e.hasOwnProperty(n) && !We(o) && !Wt(o) ? e[n] = Ct(r, o) : e[n] = o; + } + return e; +} +const Rs = process.env.NODE_ENV !== "production" ? Symbol("pinia:skipHydration") : ( + /* istanbul ignore next */ + Symbol() +); +function As(e) { + return !xe(e) || !e.hasOwnProperty(Rs); +} +const { assign: X } = Object; +function En(e) { + return !!(We(e) && e.effect); +} +function kn(e, t, n, o) { + const { state: r, actions: s, getters: i } = t, a = n.state.value[e]; + let l; + function u() { + !a && (process.env.NODE_ENV === "production" || !o) && (n.state.value[e] = r ? r() : {}); + const c = process.env.NODE_ENV !== "production" && o ? ( + // use ref() to unwrap refs inside state TODO: check if this is still necessary + dn(V(r ? r() : {}).value) + ) : dn(n.state.value[e]); + return X(c, s, Object.keys(i || {}).reduce((d, f) => (process.env.NODE_ENV !== "production" && f in c && console.warn(`[🍍]: A getter cannot have the same name as another state property. Rename one of them. Found with "${f}" in store "${e}".`), d[f] = Ee(B(() => { + Ge(n); + const p = n._s.get(e); + return i[f].call(p, p); + })), d), {})); + } + return l = $t(e, u, t, n, o, !0), l; +} +function $t(e, t, n = {}, o, r, s) { + let i; + const a = X({ actions: {} }, n); + if (process.env.NODE_ENV !== "production" && !o._e.active) + throw new Error("Pinia destroyed"); + const l = { + deep: !0 + // flush: 'post', + }; + process.env.NODE_ENV !== "production" && !yo && (l.onTrigger = (E) => { + u ? p = E : u == !1 && !S._hotUpdating && (Array.isArray(p) ? p.push(E) : console.error("🍍 debuggerEvents should be an array. This is most likely an internal Pinia bug.")); + }); + let u, c, d = [], f = [], p; + const v = o.state.value[e]; + !s && !v && (process.env.NODE_ENV === "production" || !r) && (o.state.value[e] = {}); + const m = V({}); + let w; + function O(E) { + let _; + u = c = !1, process.env.NODE_ENV !== "production" && (p = []), typeof E == "function" ? (E(o.state.value[e]), _ = { + type: oe.patchFunction, + storeId: e, + events: p + }) : (Ct(o.state.value[e], E), _ = { + type: oe.patchObject, + payload: E, + storeId: e, + events: p + }); + const D = w = Symbol(); + Fe().then(() => { + w === D && (u = !0); + }), c = !0, Ne(d, _, o.state.value[e]); + } + const I = s ? function() { + const { state: _ } = n, D = _ ? _() : {}; + this.$patch((U) => { + X(U, D); + }); + } : ( + /* istanbul ignore next */ + process.env.NODE_ENV !== "production" ? () => { + throw new Error(`🍍: Store "${e}" is built using the setup syntax and does not implement $reset().`); + } : $o + ); + function M() { + i.stop(), d = [], f = [], o._s.delete(e); + } + function W(E, _) { + return function() { + Ge(o); + const D = Array.from(arguments), U = [], ye = []; + function De(G) { + U.push(G); + } + function Ke(G) { + ye.push(G); + } + Ne(f, { + args: D, + name: E, + store: S, + after: De, + onError: Ke + }); + let ne; + try { + ne = _.apply(this && this.$id === e ? this : S, D); + } catch (G) { + throw Ne(ye, G), G; + } + return ne instanceof Promise ? ne.then((G) => (Ne(U, G), G)).catch((G) => (Ne(ye, G), Promise.reject(G))) : (Ne(U, ne), ne); + }; + } + const J = /* @__PURE__ */ Ee({ + actions: {}, + getters: {}, + state: [], + hotState: m + }), Y = { + _p: o, + // _s: scope, + $id: e, + $onAction: bn.bind(null, f), + $patch: O, + $reset: I, + $subscribe(E, _ = {}) { + const D = bn(d, E, _.detached, () => U()), U = i.run(() => ue(() => o.state.value[e], (ye) => { + (_.flush === "sync" ? c : u) && E({ + storeId: e, + type: oe.direct, + events: p + }, ye); + }, X({}, l, _))); + return D; + }, + $dispose: M + }, S = be(process.env.NODE_ENV !== "production" || Be ? X( + { + _hmrPayload: J, + _customProperties: Ee(/* @__PURE__ */ new Set()) + // devtools custom properties + }, + Y + // must be added later + // setupStore + ) : Y); + o._s.set(e, S); + const ee = (o._a && o._a.runWithContext || Ns)(() => o._e.run(() => (i = fo()).run(t))); + for (const E in ee) { + const _ = ee[E]; + if (We(_) && !En(_) || Wt(_)) + process.env.NODE_ENV !== "production" && r ? Xe(m.value, E, yt(ee, E)) : s || (v && As(_) && (We(_) ? _.value = v[E] : Ct(_, v[E])), o.state.value[e][E] = _), process.env.NODE_ENV !== "production" && J.state.push(E); + else if (typeof _ == "function") { + const D = process.env.NODE_ENV !== "production" && r ? _ : W(E, _); + ee[E] = D, process.env.NODE_ENV !== "production" && (J.actions[E] = _), a.actions[E] = _; + } else + process.env.NODE_ENV !== "production" && En(_) && (J.getters[E] = s ? ( + // @ts-expect-error + n.getters[E] + ) : _, dt && (ee._getters || // @ts-expect-error: same + (ee._getters = Ee([]))).push(E)); + } + if (X(S, ee), X(ut(S), ee), Object.defineProperty(S, "$state", { + get: () => process.env.NODE_ENV !== "production" && r ? m.value : o.state.value[e], + set: (E) => { + if (process.env.NODE_ENV !== "production" && r) + throw new Error("cannot set hotState"); + O((_) => { + X(_, E); + }); + } + }), process.env.NODE_ENV !== "production" && (S._hotUpdate = Ee((E) => { + S._hotUpdating = !0, E._hmrPayload.state.forEach((_) => { + if (_ in S.$state) { + const D = E.$state[_], U = S.$state[_]; + typeof D == "object" && xe(D) && xe(U) ? Co(D, U) : E.$state[_] = U; + } + Xe(S, _, yt(E.$state, _)); + }), Object.keys(S.$state).forEach((_) => { + _ in E.$state || wt(S, _); + }), u = !1, c = !1, o.state.value[e] = yt(E._hmrPayload, "hotState"), c = !0, Fe().then(() => { + u = !0; + }); + for (const _ in E._hmrPayload.actions) { + const D = E[_]; + Xe(S, _, W(_, D)); + } + for (const _ in E._hmrPayload.getters) { + const D = E._hmrPayload.getters[_], U = s ? ( + // special handling of options api + B(() => (Ge(o), D.call(S, S))) + ) : D; + Xe(S, _, U); + } + Object.keys(S._hmrPayload.getters).forEach((_) => { + _ in E._hmrPayload.getters || wt(S, _); + }), Object.keys(S._hmrPayload.actions).forEach((_) => { + _ in E._hmrPayload.actions || wt(S, _); + }), S._hmrPayload = E._hmrPayload, S._getters = E._getters, S._hotUpdating = !1; + })), Be) { + const E = { + writable: !0, + configurable: !0, + // avoid warning on devtools trying to display this property + enumerable: !1 + }; + ["_p", "_hmrPayload", "_getters", "_customProperties"].forEach((_) => { + Object.defineProperty(S, _, X({ value: S[_] }, E)); + }); + } + return o._p.forEach((E) => { + if (Be) { + const _ = i.run(() => E({ + store: S, + app: o._a, + pinia: o, + options: a + })); + Object.keys(_ || {}).forEach((D) => S._customProperties.add(D)), X(S, _); + } else + X(S, i.run(() => E({ + store: S, + app: o._a, + pinia: o, + options: a + }))); + }), process.env.NODE_ENV !== "production" && S.$state && typeof S.$state == "object" && typeof S.$state.constructor == "function" && !S.$state.constructor.toString().includes("[native code]") && console.warn(`[🍍]: The "state" must be a plain object. It cannot be + state: () => new MyClass() +Found in store "${S.$id}".`), v && s && n.hydrate && n.hydrate(S.$state, v), u = !0, c = !0, S; +} +function Ts(e, t, n) { + let o, r; + const s = typeof t == "function"; + if (typeof e == "string") + o = e, r = s ? n : t; + else if (r = e, o = e.id, process.env.NODE_ENV !== "production" && typeof o != "string") + throw new Error('[🍍]: "defineStore()" must be passed a store id as its first argument.'); + function i(a, l) { + const u = br(); + if (a = // in test mode, ignore the argument provided as we can always retrieve a + // pinia instance with getActivePinia() + (process.env.NODE_ENV === "test" && Le && Le._testing ? null : a) || (u ? Z(_o, null) : null), a && Ge(a), process.env.NODE_ENV !== "production" && !Le) + throw new Error(`[🍍]: "getActivePinia()" was called but there was no active Pinia. Are you trying to use a store before calling "app.use(pinia)"? +See https://pinia.vuejs.org/core-concepts/outside-component-usage.html for help. +This will fail in production.`); + a = Le, a._s.has(o) || (s ? $t(o, t, r, a) : kn(o, r, a), process.env.NODE_ENV !== "production" && (i._pinia = a)); + const c = a._s.get(o); + if (process.env.NODE_ENV !== "production" && l) { + const d = "__hot:" + o, f = s ? $t(d, t, r, a, !0) : kn(d, X({}, r), a, !0); + l._hotUpdate(f), delete a.state.value[d], a._s.delete(d); + } + if (process.env.NODE_ENV !== "production" && dt) { + const d = Ht(); + if (d && d.proxy && // avoid adding stores that are just built for hot module replacement + !l) { + const f = d.proxy, p = "_pStores" in f ? f._pStores : f._pStores = {}; + p[o] = c; + } + } + return c; + } + return i.$id = o, i; +} +const Ds = Ts("data", () => { + const e = V([]), t = V({}); + return { records: e, record: t }; +}); +function No(e) { + e || (e = Z("$registry")); + const t = Ds(), n = V(new je(e, t)), o = V(!1); + return wr(async () => { + var r, s; + const i = e.router.currentRoute.value, a = (r = i.params.records) == null ? void 0 : r.toString().toLowerCase(), l = (s = i.params.record) == null ? void 0 : s.toString().toLowerCase(); + if (!a && !l) + return; + const u = await e.getMeta(a); + e.addDoctype(u), n.value.setup(u), a && (l ? await n.value.getRecord(u, l) : await n.value.getRecords(u)), n.value.runAction(u, "LOAD", l ? [l] : void 0), o.value = !0; + }), { stonecrop: n, isReady: o }; +} +/*! + * vue-router v4.2.5 + * (c) 2023 Eduardo San Martin Morote + * @license MIT + */ +const ae = typeof window < "u"; +function Vs(e) { + return e.__esModule || e[Symbol.toStringTag] === "Module"; +} +const R = Object.assign; +function _t(e, t) { + const n = {}; + for (const o in t) { + const r = t[o]; + n[o] = K(r) ? r.map(e) : e(r); + } + return n; +} +const Ue = () => { +}, K = Array.isArray; +function $(e) { + const t = Array.from(arguments).slice(1); + console.warn.apply(console, ["[Vue Router warn]: " + e].concat(t)); +} +const Ms = /\/$/, Ls = (e) => e.replace(Ms, ""); +function bt(e, t, n = "/") { + let o, r = {}, s = "", i = ""; + const a = t.indexOf("#"); + let l = t.indexOf("?"); + return a < l && a >= 0 && (l = -1), l > -1 && (o = t.slice(0, l), s = t.slice(l + 1, a > -1 ? a : t.length), r = e(s)), a > -1 && (o = o || t.slice(0, a), i = t.slice(a, t.length)), o = Us(o ?? t, n), { + fullPath: o + (s && "?") + s + i, + path: o, + query: r, + hash: i + }; +} +function js(e, t) { + const n = t.query ? e(t.query) : ""; + return t.path + (n && "?") + n + (t.hash || ""); +} +function Sn(e, t) { + return !t || !e.toLowerCase().startsWith(t.toLowerCase()) ? e : e.slice(t.length) || "/"; +} +function On(e, t, n) { + const o = t.matched.length - 1, r = n.matched.length - 1; + return o > -1 && o === r && ge(t.matched[o], n.matched[r]) && Ro(t.params, n.params) && e(t.query) === e(n.query) && t.hash === n.hash; +} +function ge(e, t) { + return (e.aliasOf || e) === (t.aliasOf || t); +} +function Ro(e, t) { + if (Object.keys(e).length !== Object.keys(t).length) + return !1; + for (const n in e) + if (!Bs(e[n], t[n])) + return !1; + return !0; +} +function Bs(e, t) { + return K(e) ? In(e, t) : K(t) ? In(t, e) : e === t; +} +function In(e, t) { + return K(t) ? e.length === t.length && e.every((n, o) => n === t[o]) : e.length === 1 && e[0] === t; +} +function Us(e, t) { + if (e.startsWith("/")) + return e; + if (process.env.NODE_ENV !== "production" && !t.startsWith("/")) + return $(`Cannot resolve a relative location without an absolute path. Trying to resolve "${e}" from "${t}". It should look like "/${t}".`), e; + if (!e) + return t; + const n = t.split("/"), o = e.split("/"), r = o[o.length - 1]; + (r === ".." || r === ".") && o.push(""); + let s = n.length - 1, i, a; + for (i = 0; i < o.length; i++) + if (a = o[i], a !== ".") + if (a === "..") + s > 1 && s--; + else + break; + return n.slice(0, s).join("/") + "/" + o.slice(i - (i === o.length ? 1 : 0)).join("/"); +} +var ze; +(function(e) { + e.pop = "pop", e.push = "push"; +})(ze || (ze = {})); +var He; +(function(e) { + e.back = "back", e.forward = "forward", e.unknown = ""; +})(He || (He = {})); +function Hs(e) { + if (!e) + if (ae) { + const t = document.querySelector("base"); + e = t && t.getAttribute("href") || "/", e = e.replace(/^\w+:\/\/[^\/]+/, ""); + } else + e = "/"; + return e[0] !== "/" && e[0] !== "#" && (e = "/" + e), Ls(e); +} +const Ws = /^[^#]+#/; +function Fs(e, t) { + return e.replace(Ws, "#") + t; +} +function Gs(e, t) { + const n = document.documentElement.getBoundingClientRect(), o = e.getBoundingClientRect(); + return { + behavior: t.behavior, + left: o.left - n.left - (t.left || 0), + top: o.top - n.top - (t.top || 0) + }; +} +const ft = () => ({ + left: window.pageXOffset, + top: window.pageYOffset +}); +function zs(e) { + let t; + if ("el" in e) { + const n = e.el, o = typeof n == "string" && n.startsWith("#"); + if (process.env.NODE_ENV !== "production" && typeof e.el == "string" && (!o || !document.getElementById(e.el.slice(1)))) + try { + const s = document.querySelector(e.el); + if (o && s) { + $(`The selector "${e.el}" should be passed as "el: document.querySelector('${e.el}')" because it starts with "#".`); + return; + } + } catch { + $(`The selector "${e.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).`); + return; + } + const r = typeof n == "string" ? o ? document.getElementById(n.slice(1)) : document.querySelector(n) : n; + if (!r) { + process.env.NODE_ENV !== "production" && $(`Couldn't find element using selector "${e.el}" returned by scrollBehavior.`); + return; + } + t = Gs(r, e); + } else + t = e; + "scrollBehavior" in document.documentElement.style ? window.scrollTo(t) : window.scrollTo(t.left != null ? t.left : window.pageXOffset, t.top != null ? t.top : window.pageYOffset); +} +function Pn(e, t) { + return (history.state ? history.state.position - t : -1) + e; +} +const Nt = /* @__PURE__ */ new Map(); +function Qs(e, t) { + Nt.set(e, t); +} +function qs(e) { + const t = Nt.get(e); + return Nt.delete(e), t; +} +let Ks = () => location.protocol + "//" + location.host; +function Ao(e, t) { + const { pathname: n, search: o, hash: r } = t, s = e.indexOf("#"); + if (s > -1) { + let a = r.includes(e.slice(s)) ? e.slice(s).length : 1, l = r.slice(a); + return l[0] !== "/" && (l = "/" + l), Sn(l, ""); + } + return Sn(n, e) + o + r; +} +function Js(e, t, n, o) { + let r = [], s = [], i = null; + const a = ({ state: f }) => { + const p = Ao(e, location), v = n.value, m = t.value; + let w = 0; + if (f) { + if (n.value = p, t.value = f, i && i === v) { + i = null; + return; + } + w = m ? f.position - m.position : 0; + } else + o(p); + r.forEach((O) => { + O(n.value, v, { + delta: w, + type: ze.pop, + direction: w ? w > 0 ? He.forward : He.back : He.unknown + }); + }); + }; + function l() { + i = n.value; + } + function u(f) { + r.push(f); + const p = () => { + const v = r.indexOf(f); + v > -1 && r.splice(v, 1); + }; + return s.push(p), p; + } + function c() { + const { history: f } = window; + f.state && f.replaceState(R({}, f.state, { scroll: ft() }), ""); + } + function d() { + for (const f of s) + f(); + s = [], window.removeEventListener("popstate", a), window.removeEventListener("beforeunload", c); + } + return window.addEventListener("popstate", a), window.addEventListener("beforeunload", c, { + passive: !0 + }), { + pauseListeners: l, + listen: u, + destroy: d + }; +} +function xn(e, t, n, o = !1, r = !1) { + return { + back: e, + current: t, + forward: n, + replaced: o, + position: window.history.length, + scroll: r ? ft() : null + }; +} +function Ys(e) { + const { history: t, location: n } = window, o = { + value: Ao(e, n) + }, r = { value: t.state }; + r.value || s(o.value, { + back: null, + current: o.value, + forward: null, + // the length is off by one, we need to decrease it + position: t.length - 1, + replaced: !0, + // don't add a scroll as the user may have an anchor, and we want + // scrollBehavior to be triggered without a saved position + scroll: null + }, !0); + function s(l, u, c) { + const d = e.indexOf("#"), f = d > -1 ? (n.host && document.querySelector("base") ? e : e.slice(d)) + l : Ks() + e + l; + try { + t[c ? "replaceState" : "pushState"](u, "", f), r.value = u; + } catch (p) { + process.env.NODE_ENV !== "production" ? $("Error with push/replace State", p) : console.error(p), n[c ? "replace" : "assign"](f); + } + } + function i(l, u) { + const c = R({}, t.state, xn( + r.value.back, + // keep back and forward entries but override current position + l, + r.value.forward, + !0 + ), u, { position: r.value.position }); + s(l, c, !0), o.value = l; + } + function a(l, u) { + const c = R( + {}, + // use current history state to gracefully handle a wrong call to + // history.replaceState + // https://github.com/vuejs/router/issues/366 + r.value, + t.state, + { + forward: l, + scroll: ft() + } + ); + process.env.NODE_ENV !== "production" && !t.state && $(`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: + +history.replaceState(history.state, '', url) + +You can find more information at https://next.router.vuejs.org/guide/migration/#usage-of-history-state.`), s(c.current, c, !0); + const d = R({}, xn(o.value, l, null), { position: c.position + 1 }, u); + s(l, d, !1), o.value = l; + } + return { + location: o, + state: r, + push: a, + replace: i + }; +} +function Xs(e) { + e = Hs(e); + const t = Ys(e), n = Js(e, t.state, t.location, t.replace); + function o(s, i = !0) { + i || n.pauseListeners(), history.go(s); + } + const r = R({ + // it's overridden right after + location: "", + base: e, + go: o, + createHref: Fs.bind(null, e) + }, t, n); + return Object.defineProperty(r, "location", { + enumerable: !0, + get: () => t.location.value + }), Object.defineProperty(r, "state", { + enumerable: !0, + get: () => t.state.value + }), r; +} +function Zs(e) { + return typeof e == "string" || e && typeof e == "object"; +} +function To(e) { + return typeof e == "string" || typeof e == "symbol"; +} +const pe = { + path: "/", + name: void 0, + params: {}, + query: {}, + hash: "", + fullPath: "/", + matched: [], + meta: {}, + redirectedFrom: void 0 +}, Rt = Symbol(process.env.NODE_ENV !== "production" ? "navigation failure" : ""); +var Cn; +(function(e) { + e[e.aborted = 4] = "aborted", e[e.cancelled = 8] = "cancelled", e[e.duplicated = 16] = "duplicated"; +})(Cn || (Cn = {})); +const ea = { + 1({ location: e, currentLocation: t }) { + return `No match for + ${JSON.stringify(e)}${t ? ` +while being at +` + JSON.stringify(t) : ""}`; + }, + 2({ from: e, to: t }) { + return `Redirected from "${e.fullPath}" to "${na(t)}" via a navigation guard.`; + }, + 4({ from: e, to: t }) { + return `Navigation aborted from "${e.fullPath}" to "${t.fullPath}" via a navigation guard.`; + }, + 8({ from: e, to: t }) { + return `Navigation cancelled from "${e.fullPath}" to "${t.fullPath}" with a new navigation.`; + }, + 16({ from: e, to: t }) { + return `Avoided redundant navigation to current location: "${e.fullPath}".`; + } +}; +function Te(e, t) { + return process.env.NODE_ENV !== "production" ? R(new Error(ea[e](t)), { + type: e, + [Rt]: !0 + }, t) : R(new Error(), { + type: e, + [Rt]: !0 + }, t); +} +function se(e, t) { + return e instanceof Error && Rt in e && (t == null || !!(e.type & t)); +} +const ta = ["params", "query", "hash"]; +function na(e) { + if (typeof e == "string") + return e; + if ("path" in e) + return e.path; + const t = {}; + for (const n of ta) + n in e && (t[n] = e[n]); + return JSON.stringify(t, null, 2); +} +const $n = "[^/]+?", oa = { + sensitive: !1, + strict: !1, + start: !0, + end: !0 +}, ra = /[.+*?^${}()[\]/\\]/g; +function sa(e, t) { + const n = R({}, oa, t), o = []; + let r = n.start ? "^" : ""; + const s = []; + for (const u of e) { + const c = u.length ? [] : [ + 90 + /* PathScore.Root */ + ]; + n.strict && !u.length && (r += "/"); + for (let d = 0; d < u.length; d++) { + const f = u[d]; + let p = 40 + (n.sensitive ? 0.25 : 0); + if (f.type === 0) + d || (r += "/"), r += f.value.replace(ra, "\\$&"), p += 40; + else if (f.type === 1) { + const { value: v, repeatable: m, optional: w, regexp: O } = f; + s.push({ + name: v, + repeatable: m, + optional: w + }); + const I = O || $n; + if (I !== $n) { + p += 10; + try { + new RegExp(`(${I})`); + } catch (W) { + throw new Error(`Invalid custom RegExp for param "${v}" (${I}): ` + W.message); + } + } + let M = m ? `((?:${I})(?:/(?:${I}))*)` : `(${I})`; + d || (M = // avoid an optional / if there are more segments e.g. /:p?-static + // or /:p?-:p2 + w && u.length < 2 ? `(?:/${M})` : "/" + M), w && (M += "?"), r += M, p += 20, w && (p += -8), m && (p += -20), I === ".*" && (p += -50); + } + c.push(p); + } + o.push(c); + } + if (n.strict && n.end) { + const u = o.length - 1; + o[u][o[u].length - 1] += 0.7000000000000001; + } + n.strict || (r += "/?"), n.end ? r += "$" : n.strict && (r += "(?:/|$)"); + const i = new RegExp(r, n.sensitive ? "" : "i"); + function a(u) { + const c = u.match(i), d = {}; + if (!c) + return null; + for (let f = 1; f < c.length; f++) { + const p = c[f] || "", v = s[f - 1]; + d[v.name] = p && v.repeatable ? p.split("/") : p; + } + return d; + } + function l(u) { + let c = "", d = !1; + for (const f of e) { + (!d || !c.endsWith("/")) && (c += "/"), d = !1; + for (const p of f) + if (p.type === 0) + c += p.value; + else if (p.type === 1) { + const { value: v, repeatable: m, optional: w } = p, O = v in u ? u[v] : ""; + if (K(O) && !m) + throw new Error(`Provided param "${v}" is an array but it is not repeatable (* or + modifiers)`); + const I = K(O) ? O.join("/") : O; + if (!I) + if (w) + f.length < 2 && (c.endsWith("/") ? c = c.slice(0, -1) : d = !0); + else + throw new Error(`Missing required param "${v}"`); + c += I; + } + } + return c || "/"; + } + return { + re: i, + score: o, + keys: s, + parse: a, + stringify: l + }; +} +function aa(e, t) { + let n = 0; + for (; n < e.length && n < t.length; ) { + const o = t[n] - e[n]; + if (o) + return o; + n++; + } + return e.length < t.length ? e.length === 1 && e[0] === 40 + 40 ? -1 : 1 : e.length > t.length ? t.length === 1 && t[0] === 40 + 40 ? 1 : -1 : 0; +} +function ia(e, t) { + let n = 0; + const o = e.score, r = t.score; + for (; n < o.length && n < r.length; ) { + const s = aa(o[n], r[n]); + if (s) + return s; + n++; + } + if (Math.abs(r.length - o.length) === 1) { + if (Nn(o)) + return 1; + if (Nn(r)) + return -1; + } + return r.length - o.length; +} +function Nn(e) { + const t = e[e.length - 1]; + return e.length > 0 && t[t.length - 1] < 0; +} +const ca = { + type: 0, + value: "" +}, la = /[a-zA-Z0-9_]/; +function ua(e) { + if (!e) + return [[]]; + if (e === "/") + return [[ca]]; + if (!e.startsWith("/")) + throw new Error(process.env.NODE_ENV !== "production" ? `Route paths should start with a "/": "${e}" should be "/${e}".` : `Invalid path "${e}"`); + function t(p) { + throw new Error(`ERR (${n})/"${u}": ${p}`); + } + let n = 0, o = n; + const r = []; + let s; + function i() { + s && r.push(s), s = []; + } + let a = 0, l, u = "", c = ""; + function d() { + u && (n === 0 ? s.push({ + type: 0, + value: u + }) : n === 1 || n === 2 || n === 3 ? (s.length > 1 && (l === "*" || l === "+") && t(`A repeatable param (${u}) must be alone in its segment. eg: '/:ids+.`), s.push({ + type: 1, + value: u, + regexp: c, + repeatable: l === "*" || l === "+", + optional: l === "*" || l === "?" + })) : t("Invalid state to consume buffer"), u = ""); + } + function f() { + u += l; + } + for (; a < e.length; ) { + if (l = e[a++], l === "\\" && n !== 2) { + o = n, n = 4; + continue; + } + switch (n) { + case 0: + l === "/" ? (u && d(), i()) : l === ":" ? (d(), n = 1) : f(); + break; + case 4: + f(), n = o; + break; + case 1: + l === "(" ? n = 2 : la.test(l) ? f() : (d(), n = 0, l !== "*" && l !== "?" && l !== "+" && a--); + break; + case 2: + l === ")" ? c[c.length - 1] == "\\" ? c = c.slice(0, -1) + l : n = 3 : c += l; + break; + case 3: + d(), n = 0, l !== "*" && l !== "?" && l !== "+" && a--, c = ""; + break; + default: + t("Unknown state"); + break; + } + } + return n === 2 && t(`Unfinished custom RegExp for param "${u}"`), d(), i(), r; +} +function da(e, t, n) { + const o = sa(ua(e.path), n); + if (process.env.NODE_ENV !== "production") { + const s = /* @__PURE__ */ new Set(); + for (const i of o.keys) + s.has(i.name) && $(`Found duplicated params with name "${i.name}" for path "${e.path}". Only the last one will be available on "$route.params".`), s.add(i.name); + } + const r = R(o, { + record: e, + parent: t, + // these needs to be populated by the parent + children: [], + alias: [] + }); + return t && !r.record.aliasOf == !t.record.aliasOf && t.children.push(r), r; +} +function fa(e, t) { + const n = [], o = /* @__PURE__ */ new Map(); + t = Tn({ strict: !1, end: !0, sensitive: !1 }, t); + function r(c) { + return o.get(c); + } + function s(c, d, f) { + const p = !f, v = pa(c); + process.env.NODE_ENV !== "production" && ga(v, d), v.aliasOf = f && f.record; + const m = Tn(t, c), w = [ + v + ]; + if ("alias" in c) { + const M = typeof c.alias == "string" ? [c.alias] : c.alias; + for (const W of M) + w.push(R({}, v, { + // this allows us to hold a copy of the `components` option + // so that async components cache is hold on the original record + components: f ? f.record.components : v.components, + path: W, + // we might be the child of an alias + aliasOf: f ? f.record : v + // the aliases are always of the same kind as the original since they + // are defined on the same record + })); + } + let O, I; + for (const M of w) { + const { path: W } = M; + if (d && W[0] !== "/") { + const J = d.record.path, Y = J[J.length - 1] === "/" ? "" : "/"; + M.path = d.record.path + (W && Y + W); + } + if (process.env.NODE_ENV !== "production" && M.path === "*") + throw new Error(`Catch all routes ("*") must now be defined using a param with a custom regexp. +See more at https://next.router.vuejs.org/guide/migration/#removed-star-or-catch-all-routes.`); + if (O = da(M, d, m), process.env.NODE_ENV !== "production" && d && W[0] === "/" && ya(O, d), f ? (f.alias.push(O), process.env.NODE_ENV !== "production" && va(f, O)) : (I = I || O, I !== O && I.alias.push(O), p && c.name && !An(O) && i(c.name)), v.children) { + const J = v.children; + for (let Y = 0; Y < J.length; Y++) + s(J[Y], O, f && f.children[Y]); + } + f = f || O, (O.record.components && Object.keys(O.record.components).length || O.record.name || O.record.redirect) && l(O); + } + return I ? () => { + i(I); + } : Ue; + } + function i(c) { + if (To(c)) { + const d = o.get(c); + d && (o.delete(c), n.splice(n.indexOf(d), 1), d.children.forEach(i), d.alias.forEach(i)); + } else { + const d = n.indexOf(c); + d > -1 && (n.splice(d, 1), c.record.name && o.delete(c.record.name), c.children.forEach(i), c.alias.forEach(i)); + } + } + function a() { + return n; + } + function l(c) { + let d = 0; + for (; d < n.length && ia(c, n[d]) >= 0 && // Adding children with empty path should still appear before the parent + // https://github.com/vuejs/router/issues/1124 + (c.record.path !== n[d].record.path || !Do(c, n[d])); ) + d++; + n.splice(d, 0, c), c.record.name && !An(c) && o.set(c.record.name, c); + } + function u(c, d) { + let f, p = {}, v, m; + if ("name" in c && c.name) { + if (f = o.get(c.name), !f) + throw Te(1, { + location: c + }); + if (process.env.NODE_ENV !== "production") { + const I = Object.keys(c.params || {}).filter((M) => !f.keys.find((W) => W.name === M)); + I.length && $(`Discarded invalid param(s) "${I.join('", "')}" when navigating. See https://github.com/vuejs/router/blob/main/packages/router/CHANGELOG.md#414-2022-08-22 for more details.`); + } + m = f.record.name, p = R( + // paramsFromLocation is a new object + Rn( + d.params, + // only keep params that exist in the resolved location + // TODO: only keep optional params coming from a parent record + f.keys.filter((I) => !I.optional).map((I) => I.name) + ), + // discard any existing params in the current location that do not exist here + // #1497 this ensures better active/exact matching + c.params && Rn(c.params, f.keys.map((I) => I.name)) + ), v = f.stringify(p); + } else if ("path" in c) + v = c.path, process.env.NODE_ENV !== "production" && !v.startsWith("/") && $(`The Matcher cannot resolve relative paths but received "${v}". Unless you directly called \`matcher.resolve("${v}")\`, this is probably a bug in vue-router. Please open an issue at https://github.com/vuejs/router/issues/new/choose.`), f = n.find((I) => I.re.test(v)), f && (p = f.parse(v), m = f.record.name); + else { + if (f = d.name ? o.get(d.name) : n.find((I) => I.re.test(d.path)), !f) + throw Te(1, { + location: c, + currentLocation: d + }); + m = f.record.name, p = R({}, d.params, c.params), v = f.stringify(p); + } + const w = []; + let O = f; + for (; O; ) + w.unshift(O.record), O = O.parent; + return { + name: m, + path: v, + params: p, + matched: w, + meta: ma(w) + }; + } + return e.forEach((c) => s(c)), { addRoute: s, resolve: u, removeRoute: i, getRoutes: a, getRecordMatcher: r }; +} +function Rn(e, t) { + const n = {}; + for (const o of t) + o in e && (n[o] = e[o]); + return n; +} +function pa(e) { + return { + path: e.path, + redirect: e.redirect, + name: e.name, + meta: e.meta || {}, + aliasOf: void 0, + beforeEnter: e.beforeEnter, + props: ha(e), + children: e.children || [], + instances: {}, + leaveGuards: /* @__PURE__ */ new Set(), + updateGuards: /* @__PURE__ */ new Set(), + enterCallbacks: {}, + components: "components" in e ? e.components || null : e.component && { default: e.component } + }; +} +function ha(e) { + const t = {}, n = e.props || !1; + if ("component" in e) + t.default = n; + else + for (const o in e.components) + t[o] = typeof n == "object" ? n[o] : n; + return t; +} +function An(e) { + for (; e; ) { + if (e.record.aliasOf) + return !0; + e = e.parent; + } + return !1; +} +function ma(e) { + return e.reduce((t, n) => R(t, n.meta), {}); +} +function Tn(e, t) { + const n = {}; + for (const o in e) + n[o] = o in t ? t[o] : e[o]; + return n; +} +function At(e, t) { + return e.name === t.name && e.optional === t.optional && e.repeatable === t.repeatable; +} +function va(e, t) { + for (const n of e.keys) + if (!n.optional && !t.keys.find(At.bind(null, n))) + return $(`Alias "${t.record.path}" and the original record: "${e.record.path}" must have the exact same param named "${n.name}"`); + for (const n of t.keys) + if (!n.optional && !e.keys.find(At.bind(null, n))) + return $(`Alias "${t.record.path}" and the original record: "${e.record.path}" must have the exact same param named "${n.name}"`); +} +function ga(e, t) { + t && t.record.name && !e.name && !e.path && $(`The route named "${String(t.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.`); +} +function ya(e, t) { + for (const n of t.keys) + if (!e.keys.find(At.bind(null, n))) + return $(`Absolute path "${e.record.path}" must have the exact same param named "${n.name}" as its parent "${t.record.path}".`); +} +function Do(e, t) { + return t.children.some((n) => n === e || Do(e, n)); +} +const Vo = /#/g, wa = /&/g, _a = /\//g, ba = /=/g, Ea = /\?/g, Mo = /\+/g, ka = /%5B/g, Sa = /%5D/g, Lo = /%5E/g, Oa = /%60/g, jo = /%7B/g, Ia = /%7C/g, Bo = /%7D/g, Pa = /%20/g; +function Kt(e) { + return encodeURI("" + e).replace(Ia, "|").replace(ka, "[").replace(Sa, "]"); +} +function xa(e) { + return Kt(e).replace(jo, "{").replace(Bo, "}").replace(Lo, "^"); +} +function Tt(e) { + return Kt(e).replace(Mo, "%2B").replace(Pa, "+").replace(Vo, "%23").replace(wa, "%26").replace(Oa, "`").replace(jo, "{").replace(Bo, "}").replace(Lo, "^"); +} +function Ca(e) { + return Tt(e).replace(ba, "%3D"); +} +function $a(e) { + return Kt(e).replace(Vo, "%23").replace(Ea, "%3F"); +} +function Na(e) { + return e == null ? "" : $a(e).replace(_a, "%2F"); +} +function Qe(e) { + try { + return decodeURIComponent("" + e); + } catch { + process.env.NODE_ENV !== "production" && $(`Error decoding "${e}". Using original value`); + } + return "" + e; +} +function Ra(e) { + const t = {}; + if (e === "" || e === "?") + return t; + const o = (e[0] === "?" ? e.slice(1) : e).split("&"); + for (let r = 0; r < o.length; ++r) { + const s = o[r].replace(Mo, " "), i = s.indexOf("="), a = Qe(i < 0 ? s : s.slice(0, i)), l = i < 0 ? null : Qe(s.slice(i + 1)); + if (a in t) { + let u = t[a]; + K(u) || (u = t[a] = [u]), u.push(l); + } else + t[a] = l; + } + return t; +} +function Dn(e) { + let t = ""; + for (let n in e) { + const o = e[n]; + if (n = Ca(n), o == null) { + o !== void 0 && (t += (t.length ? "&" : "") + n); + continue; + } + (K(o) ? o.map((s) => s && Tt(s)) : [o && Tt(o)]).forEach((s) => { + s !== void 0 && (t += (t.length ? "&" : "") + n, s != null && (t += "=" + s)); + }); + } + return t; +} +function Aa(e) { + const t = {}; + for (const n in e) { + const o = e[n]; + o !== void 0 && (t[n] = K(o) ? o.map((r) => r == null ? null : "" + r) : o == null ? o : "" + o); + } + return t; +} +const Ta = Symbol(process.env.NODE_ENV !== "production" ? "router view location matched" : ""), Vn = Symbol(process.env.NODE_ENV !== "production" ? "router view depth" : ""), Jt = Symbol(process.env.NODE_ENV !== "production" ? "router" : ""), Uo = Symbol(process.env.NODE_ENV !== "production" ? "route location" : ""), Dt = Symbol(process.env.NODE_ENV !== "production" ? "router view location" : ""); +function Ve() { + let e = []; + function t(o) { + return e.push(o), () => { + const r = e.indexOf(o); + r > -1 && e.splice(r, 1); + }; + } + function n() { + e = []; + } + return { + add: t, + list: () => e.slice(), + reset: n + }; +} +function he(e, t, n, o, r) { + const s = o && // name is defined if record is because of the function overload + (o.enterCallbacks[r] = o.enterCallbacks[r] || []); + return () => new Promise((i, a) => { + const l = (d) => { + d === !1 ? a(Te(4, { + from: n, + to: t + })) : d instanceof Error ? a(d) : Zs(d) ? a(Te(2, { + from: t, + to: d + })) : (s && // since enterCallbackArray is truthy, both record and name also are + o.enterCallbacks[r] === s && typeof d == "function" && s.push(d), i()); + }, u = e.call(o && o.instances[r], t, n, process.env.NODE_ENV !== "production" ? Da(l, t, n) : l); + let c = Promise.resolve(u); + if (e.length < 3 && (c = c.then(l)), process.env.NODE_ENV !== "production" && e.length > 2) { + const d = `The "next" callback was never called inside of ${e.name ? '"' + e.name + '"' : ""}: +${e.toString()} +. If you are returning a value instead of calling "next", make sure to remove the "next" parameter from your function.`; + if (typeof u == "object" && "then" in u) + c = c.then((f) => l._called ? f : ($(d), Promise.reject(new Error("Invalid navigation guard")))); + else if (u !== void 0 && !l._called) { + $(d), a(new Error("Invalid navigation guard")); + return; + } + } + c.catch((d) => a(d)); + }); +} +function Da(e, t, n) { + let o = 0; + return function() { + o++ === 1 && $(`The "next" callback was called more than once in one navigation guard when going from "${n.fullPath}" to "${t.fullPath}". It should be called exactly one time in each navigation guard. This will fail in production.`), e._called = !0, o === 1 && e.apply(null, arguments); + }; +} +function Et(e, t, n, o) { + const r = []; + for (const s of e) { + process.env.NODE_ENV !== "production" && !s.components && !s.children.length && $(`Record with path "${s.path}" is either missing a "component(s)" or "children" property.`); + for (const i in s.components) { + let a = s.components[i]; + if (process.env.NODE_ENV !== "production") { + if (!a || typeof a != "object" && typeof a != "function") + throw $(`Component "${i}" in record with path "${s.path}" is not a valid component. Received "${String(a)}".`), new Error("Invalid route component"); + if ("then" in a) { + $(`Component "${i}" in record with path "${s.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.`); + const l = a; + a = () => l; + } else + a.__asyncLoader && // warn only once per component + !a.__warnedDefineAsync && (a.__warnedDefineAsync = !0, $(`Component "${i}" in record with path "${s.path}" is defined using "defineAsyncComponent()". Write "() => import('./MyPage.vue')" instead of "defineAsyncComponent(() => import('./MyPage.vue'))".`)); + } + if (!(t !== "beforeRouteEnter" && !s.instances[i])) + if (Va(a)) { + const u = (a.__vccOpts || a)[t]; + u && r.push(he(u, n, o, s, i)); + } else { + let l = a(); + process.env.NODE_ENV !== "production" && !("catch" in l) && ($(`Component "${i}" in record with path "${s.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.`), l = Promise.resolve(l)), r.push(() => l.then((u) => { + if (!u) + return Promise.reject(new Error(`Couldn't resolve component "${i}" at "${s.path}"`)); + const c = Vs(u) ? u.default : u; + s.components[i] = c; + const f = (c.__vccOpts || c)[t]; + return f && he(f, n, o, s, i)(); + })); + } + } + } + return r; +} +function Va(e) { + return typeof e == "object" || "displayName" in e || "props" in e || "__vccOpts" in e; +} +function Mn(e) { + const t = Z(Jt), n = Z(Uo), o = B(() => t.resolve(k(e.to))), r = B(() => { + const { matched: l } = o.value, { length: u } = l, c = l[u - 1], d = n.matched; + if (!c || !d.length) + return -1; + const f = d.findIndex(ge.bind(null, c)); + if (f > -1) + return f; + const p = Ln(l[u - 2]); + return ( + // we are dealing with nested routes + u > 1 && // if the parent and matched route have the same path, this link is + // referring to the empty child. Or we currently are on a different + // child of the same parent + Ln(c) === p && // avoid comparing the child with its parent + d[d.length - 1].path !== p ? d.findIndex(ge.bind(null, l[u - 2])) : f + ); + }), s = B(() => r.value > -1 && Ba(n.params, o.value.params)), i = B(() => r.value > -1 && r.value === n.matched.length - 1 && Ro(n.params, o.value.params)); + function a(l = {}) { + return ja(l) ? t[k(e.replace) ? "replace" : "push"]( + k(e.to) + // avoid uncaught errors are they are logged anyway + ).catch(Ue) : Promise.resolve(); + } + if (process.env.NODE_ENV !== "production" && ae) { + const l = Ht(); + if (l) { + const u = { + route: o.value, + isActive: s.value, + isExactActive: i.value + }; + l.__vrl_devtools = l.__vrl_devtools || [], l.__vrl_devtools.push(u), kr(() => { + u.route = o.value, u.isActive = s.value, u.isExactActive = i.value; + }, { flush: "post" }); + } + } + return { + route: o, + href: B(() => o.value.href), + isActive: s, + isExactActive: i, + navigate: a + }; +} +const Ma = /* @__PURE__ */ q({ + name: "RouterLink", + compatConfig: { MODE: 3 }, + props: { + to: { + type: [String, Object], + required: !0 + }, + replace: Boolean, + activeClass: String, + // inactiveClass: String, + exactActiveClass: String, + custom: Boolean, + ariaCurrentValue: { + type: String, + default: "page" + } + }, + useLink: Mn, + setup(e, { slots: t }) { + const n = be(Mn(e)), { options: o } = Z(Jt), r = B(() => ({ + [jn(e.activeClass, o.linkActiveClass, "router-link-active")]: n.isActive, + // [getLinkClass( + // props.inactiveClass, + // options.linkInactiveClass, + // 'router-link-inactive' + // )]: !link.isExactActive, + [jn(e.exactActiveClass, o.linkExactActiveClass, "router-link-exact-active")]: n.isExactActive + })); + return () => { + const s = t.default && t.default(n); + return e.custom ? s : mo("a", { + "aria-current": n.isExactActive ? e.ariaCurrentValue : null, + href: n.href, + // this would override user added attrs but Vue will still add + // the listener, so we end up triggering both + onClick: n.navigate, + class: r.value + }, s); + }; + } +}), La = Ma; +function ja(e) { + if (!(e.metaKey || e.altKey || e.ctrlKey || e.shiftKey) && !e.defaultPrevented && !(e.button !== void 0 && e.button !== 0)) { + if (e.currentTarget && e.currentTarget.getAttribute) { + const t = e.currentTarget.getAttribute("target"); + if (/\b_blank\b/i.test(t)) + return; + } + return e.preventDefault && e.preventDefault(), !0; + } +} +function Ba(e, t) { + for (const n in t) { + const o = t[n], r = e[n]; + if (typeof o == "string") { + if (o !== r) + return !1; + } else if (!K(r) || r.length !== o.length || o.some((s, i) => s !== r[i])) + return !1; + } + return !0; +} +function Ln(e) { + return e ? e.aliasOf ? e.aliasOf.path : e.path : ""; +} +const jn = (e, t, n) => e ?? t ?? n, Ua = /* @__PURE__ */ q({ + name: "RouterView", + // #674 we manually inherit them + inheritAttrs: !1, + props: { + name: { + type: String, + default: "default" + }, + route: Object + }, + // Better compat for @vue/compat users + // https://github.com/vuejs/router/issues/1315 + compatConfig: { MODE: 3 }, + setup(e, { attrs: t, slots: n }) { + process.env.NODE_ENV !== "production" && Wa(); + const o = Z(Dt), r = B(() => e.route || o.value), s = Z(Vn, 0), i = B(() => { + let u = k(s); + const { matched: c } = r.value; + let d; + for (; (d = c[u]) && !d.components; ) + u++; + return u; + }), a = B(() => r.value.matched[i.value]); + nt(Vn, B(() => i.value + 1)), nt(Ta, a), nt(Dt, r); + const l = V(); + return ue(() => [l.value, a.value, e.name], ([u, c, d], [f, p, v]) => { + c && (c.instances[d] = u, p && p !== c && u && u === f && (c.leaveGuards.size || (c.leaveGuards = p.leaveGuards), c.updateGuards.size || (c.updateGuards = p.updateGuards))), u && c && // if there is no instance but to and from are the same this might be + // the first visit + (!p || !ge(c, p) || !f) && (c.enterCallbacks[d] || []).forEach((m) => m(u)); + }, { flush: "post" }), () => { + const u = r.value, c = e.name, d = a.value, f = d && d.components[c]; + if (!f) + return Bn(n.default, { Component: f, route: u }); + const p = d.props[c], v = p ? p === !0 ? u.params : typeof p == "function" ? p(u) : p : null, w = mo(f, R({}, v, t, { + onVnodeUnmounted: (O) => { + O.component.isUnmounted && (d.instances[c] = null); + }, + ref: l + })); + if (process.env.NODE_ENV !== "production" && ae && w.ref) { + const O = { + depth: i.value, + name: d.name, + path: d.path, + meta: d.meta + }; + (K(w.ref) ? w.ref.map((M) => M.i) : [w.ref.i]).forEach((M) => { + M.__vrv_devtools = O; + }); + } + return ( + // pass the vnode to the slot as a prop. + // h and both accept vnodes + Bn(n.default, { Component: w, route: u }) || w + ); + }; + } +}); +function Bn(e, t) { + if (!e) + return null; + const n = e(t); + return n.length === 1 ? n[0] : n; +} +const Ha = Ua; +function Wa() { + const e = Ht(), t = e.parent && e.parent.type.name, n = e.parent && e.parent.subTree && e.parent.subTree.type; + if (t && (t === "KeepAlive" || t.includes("Transition")) && typeof n == "object" && n.name === "RouterView") { + const o = t === "KeepAlive" ? "keep-alive" : "transition"; + $(` can no longer be used directly inside or . +Use slot props instead: + + + <${o}> + + +`); + } +} +function Me(e, t) { + const n = R({}, e, { + // remove variables that can contain vue instances + matched: e.matched.map((o) => Xa(o, ["instances", "children", "aliasOf"])) + }); + return { + _custom: { + type: null, + readOnly: !0, + display: e.fullPath, + tooltip: t, + value: n + } + }; +} +function Ze(e) { + return { + _custom: { + display: e + } + }; +} +let Fa = 0; +function Ga(e, t, n) { + if (t.__hasDevtools) + return; + t.__hasDevtools = !0; + const o = Fa++; + zt({ + id: "org.vuejs.router" + (o ? "." + o : ""), + label: "Vue Router", + packageName: "vue-router", + homepage: "https://router.vuejs.org", + logo: "https://router.vuejs.org/logo.png", + componentStateTypes: ["Routing"], + app: e + }, (r) => { + typeof r.now != "function" && 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."), r.on.inspectComponent((c, d) => { + c.instanceData && c.instanceData.state.push({ + type: "Routing", + key: "$route", + editable: !1, + value: Me(t.currentRoute.value, "Current Route") + }); + }), r.on.visitComponentTree(({ treeNode: c, componentInstance: d }) => { + if (d.__vrv_devtools) { + const f = d.__vrv_devtools; + c.tags.push({ + label: (f.name ? `${f.name.toString()}: ` : "") + f.path, + textColor: 0, + tooltip: "This component is rendered by <router-view>", + backgroundColor: Ho + }); + } + K(d.__vrl_devtools) && (d.__devtoolsApi = r, d.__vrl_devtools.forEach((f) => { + let p = Go, v = ""; + f.isExactActive ? (p = Fo, v = "This is exactly active") : f.isActive && (p = Wo, v = "This link is active"), c.tags.push({ + label: f.route.path, + textColor: 0, + tooltip: v, + backgroundColor: p + }); + })); + }), ue(t.currentRoute, () => { + l(), r.notifyComponentUpdate(), r.sendInspectorTree(a), r.sendInspectorState(a); + }); + const s = "router:navigations:" + o; + r.addTimelineLayer({ + id: s, + label: `Router${o ? " " + o : ""} Navigations`, + color: 4237508 + }), t.onError((c, d) => { + r.addTimelineEvent({ + layerId: s, + event: { + title: "Error during Navigation", + subtitle: d.fullPath, + logType: "error", + time: r.now(), + data: { error: c }, + groupId: d.meta.__navigationId + } + }); + }); + let i = 0; + t.beforeEach((c, d) => { + const f = { + guard: Ze("beforeEach"), + from: Me(d, "Current Location during this navigation"), + to: Me(c, "Target location") + }; + Object.defineProperty(c.meta, "__navigationId", { + value: i++ + }), r.addTimelineEvent({ + layerId: s, + event: { + time: r.now(), + title: "Start of navigation", + subtitle: c.fullPath, + data: f, + groupId: c.meta.__navigationId + } + }); + }), t.afterEach((c, d, f) => { + const p = { + guard: Ze("afterEach") + }; + f ? (p.failure = { + _custom: { + type: Error, + readOnly: !0, + display: f ? f.message : "", + tooltip: "Navigation Failure", + value: f + } + }, p.status = Ze("❌")) : p.status = Ze("✅"), p.from = Me(d, "Current Location during this navigation"), p.to = Me(c, "Target location"), r.addTimelineEvent({ + layerId: s, + event: { + title: "End of navigation", + subtitle: c.fullPath, + time: r.now(), + data: p, + logType: f ? "warning" : "default", + groupId: c.meta.__navigationId + } + }); + }); + const a = "router-inspector:" + o; + r.addInspector({ + id: a, + label: "Routes" + (o ? " " + o : ""), + icon: "book", + treeFilterPlaceholder: "Search routes" + }); + function l() { + if (!u) + return; + const c = u; + let d = n.getRoutes().filter((f) => !f.parent || // these routes have a parent with no component which will not appear in the view + // therefore we still need to include them + !f.parent.record.components); + d.forEach(qo), c.filter && (d = d.filter((f) => ( + // save matches state based on the payload + Vt(f, c.filter.toLowerCase()) + ))), d.forEach((f) => Qo(f, t.currentRoute.value)), c.rootNodes = d.map(zo); + } + let u; + r.on.getInspectorTree((c) => { + u = c, c.app === e && c.inspectorId === a && l(); + }), r.on.getInspectorState((c) => { + if (c.app === e && c.inspectorId === a) { + const f = n.getRoutes().find((p) => p.record.__vd_id === c.nodeId); + f && (c.state = { + options: Qa(f) + }); + } + }), r.sendInspectorTree(a), r.sendInspectorState(a); + }); +} +function za(e) { + return e.optional ? e.repeatable ? "*" : "?" : e.repeatable ? "+" : ""; +} +function Qa(e) { + const { record: t } = e, n = [ + { editable: !1, key: "path", value: t.path } + ]; + return t.name != null && n.push({ + editable: !1, + key: "name", + value: t.name + }), n.push({ editable: !1, key: "regexp", value: e.re }), e.keys.length && n.push({ + editable: !1, + key: "keys", + value: { + _custom: { + type: null, + readOnly: !0, + display: e.keys.map((o) => `${o.name}${za(o)}`).join(" "), + tooltip: "Param keys", + value: e.keys + } + } + }), t.redirect != null && n.push({ + editable: !1, + key: "redirect", + value: t.redirect + }), e.alias.length && n.push({ + editable: !1, + key: "aliases", + value: e.alias.map((o) => o.record.path) + }), Object.keys(e.record.meta).length && n.push({ + editable: !1, + key: "meta", + value: e.record.meta + }), n.push({ + key: "score", + editable: !1, + value: { + _custom: { + type: null, + readOnly: !0, + display: e.score.map((o) => o.join(", ")).join(" | "), + tooltip: "Score used to sort routes", + value: e.score + } + } + }), n; +} +const Ho = 15485081, Wo = 2450411, Fo = 8702998, qa = 2282478, Go = 16486972, Ka = 6710886; +function zo(e) { + const t = [], { record: n } = e; + n.name != null && t.push({ + label: String(n.name), + textColor: 0, + backgroundColor: qa + }), n.aliasOf && t.push({ + label: "alias", + textColor: 0, + backgroundColor: Go + }), e.__vd_match && t.push({ + label: "matches", + textColor: 0, + backgroundColor: Ho + }), e.__vd_exactActive && t.push({ + label: "exact", + textColor: 0, + backgroundColor: Fo + }), e.__vd_active && t.push({ + label: "active", + textColor: 0, + backgroundColor: Wo + }), n.redirect && t.push({ + label: typeof n.redirect == "string" ? `redirect: ${n.redirect}` : "redirects", + textColor: 16777215, + backgroundColor: Ka + }); + let o = n.__vd_id; + return o == null && (o = String(Ja++), n.__vd_id = o), { + id: o, + label: n.path, + tags: t, + children: e.children.map(zo) + }; +} +let Ja = 0; +const Ya = /^\/(.*)\/([a-z]*)$/; +function Qo(e, t) { + const n = t.matched.length && ge(t.matched[t.matched.length - 1], e.record); + e.__vd_exactActive = e.__vd_active = n, n || (e.__vd_active = t.matched.some((o) => ge(o, e.record))), e.children.forEach((o) => Qo(o, t)); +} +function qo(e) { + e.__vd_match = !1, e.children.forEach(qo); +} +function Vt(e, t) { + const n = String(e.re).match(Ya); + if (e.__vd_match = !1, !n || n.length < 3) + return !1; + if (new RegExp(n[1].replace(/\$$/, ""), n[2]).test(t)) + return e.children.forEach((i) => Vt(i, t)), e.record.path !== "/" || t === "/" ? (e.__vd_match = e.re.test(t), !0) : !1; + const r = e.record.path.toLowerCase(), s = Qe(r); + return !t.startsWith("/") && (s.includes(t) || r.includes(t)) || s.startsWith(t) || r.startsWith(t) || e.record.name && String(e.record.name).includes(t) ? !0 : e.children.some((i) => Vt(i, t)); +} +function Xa(e, t) { + const n = {}; + for (const o in e) + t.includes(o) || (n[o] = e[o]); + return n; +} +function Za(e) { + const t = fa(e.routes, e), n = e.parseQuery || Ra, o = e.stringifyQuery || Dn, r = e.history; + if (process.env.NODE_ENV !== "production" && !r) + throw new Error('Provide the "history" option when calling "createRouter()": https://next.router.vuejs.org/api/#history.'); + const s = Ve(), i = Ve(), a = Ve(), l = _r(pe); + let u = pe; + ae && e.scrollBehavior && "scrollRestoration" in history && (history.scrollRestoration = "manual"); + const c = _t.bind(null, (h) => "" + h), d = _t.bind(null, Na), f = ( + // @ts-expect-error: intentionally avoid the type check + _t.bind(null, Qe) + ); + function p(h, y) { + let g, b; + return To(h) ? (g = t.getRecordMatcher(h), b = y) : b = h, t.addRoute(b, g); + } + function v(h) { + const y = t.getRecordMatcher(h); + y ? t.removeRoute(y) : process.env.NODE_ENV !== "production" && $(`Cannot remove non-existent route "${String(h)}"`); + } + function m() { + return t.getRoutes().map((h) => h.record); + } + function w(h) { + return !!t.getRecordMatcher(h); + } + function O(h, y) { + if (y = R({}, y || l.value), typeof h == "string") { + const P = bt(n, h, y.path), L = t.resolve({ path: P.path }, y), we = r.createHref(P.fullPath); + return process.env.NODE_ENV !== "production" && (we.startsWith("//") ? $(`Location "${h}" resolved to "${we}". A resolved location cannot start with multiple slashes.`) : L.matched.length || $(`No match found for location with path "${h}"`)), R(P, L, { + params: f(L.params), + hash: Qe(P.hash), + redirectedFrom: void 0, + href: we + }); + } + let g; + if ("path" in h) + process.env.NODE_ENV !== "production" && "params" in h && !("name" in h) && // @ts-expect-error: the type is never + Object.keys(h.params).length && $(`Path "${h.path}" was passed with params but they will be ignored. Use a named route alongside params instead.`), g = R({}, h, { + path: bt(n, h.path, y.path).path + }); + else { + const P = R({}, h.params); + for (const L in P) + P[L] == null && delete P[L]; + g = R({}, h, { + params: d(P) + }), y.params = d(y.params); + } + const b = t.resolve(g, y), N = h.hash || ""; + process.env.NODE_ENV !== "production" && N && !N.startsWith("#") && $(`A \`hash\` should always start with the character "#". Replace "${N}" with "#${N}".`), b.params = c(f(b.params)); + const j = js(o, R({}, h, { + hash: xa(N), + path: b.path + })), C = r.createHref(j); + return process.env.NODE_ENV !== "production" && (C.startsWith("//") ? $(`Location "${h}" resolved to "${C}". A resolved location cannot start with multiple slashes.`) : b.matched.length || $(`No match found for location with path "${"path" in h ? h.path : h}"`)), R({ + fullPath: j, + // keep the hash encoded so fullPath is effectively path + encodedQuery + + // hash + hash: N, + query: ( + // if the user is using a custom query lib like qs, we might have + // nested objects, so we keep the query as is, meaning it can contain + // numbers at `$route.query`, but at the point, the user will have to + // use their own type anyway. + // https://github.com/vuejs/router/issues/328#issuecomment-649481567 + o === Dn ? Aa(h.query) : h.query || {} + ) + }, b, { + redirectedFrom: void 0, + href: C + }); + } + function I(h) { + return typeof h == "string" ? bt(n, h, l.value.path) : R({}, h); + } + function M(h, y) { + if (u !== h) + return Te(8, { + from: y, + to: h + }); + } + function W(h) { + return S(h); + } + function J(h) { + return W(R(I(h), { replace: !0 })); + } + function Y(h) { + const y = h.matched[h.matched.length - 1]; + if (y && y.redirect) { + const { redirect: g } = y; + let b = typeof g == "function" ? g(h) : g; + if (typeof b == "string" && (b = b.includes("?") || b.includes("#") ? b = I(b) : ( + // force empty params + { path: b } + ), b.params = {}), process.env.NODE_ENV !== "production" && !("path" in b) && !("name" in b)) + throw $(`Invalid redirect found: +${JSON.stringify(b, null, 2)} + when navigating to "${h.fullPath}". A redirect must contain a name or path. This will break in production.`), new Error("Invalid redirect"); + return R({ + query: h.query, + hash: h.hash, + // avoid transferring params if the redirect has a path + params: "path" in b ? {} : h.params + }, b); + } + } + function S(h, y) { + const g = u = O(h), b = l.value, N = h.state, j = h.force, C = h.replace === !0, P = Y(g); + if (P) + return S( + R(I(P), { + state: typeof P == "object" ? R({}, N, P.state) : N, + force: j, + replace: C + }), + // keep original redirectedFrom if it exists + y || g + ); + const L = g; + L.redirectedFrom = y; + let we; + return !j && On(o, b, g) && (we = Te(16, { to: L, from: b }), un( + b, + b, + // this is a push, the only way for it to be triggered from a + // history.listen is with a redirect, which makes it become a push + !0, + // This cannot be the first navigation because the initial location + // cannot be manually navigated to + !1 + )), (we ? Promise.resolve(we) : E(L, b)).catch((Q) => se(Q) ? ( + // navigation redirects still mark the router as ready + se( + Q, + 2 + /* ErrorTypes.NAVIGATION_GUARD_REDIRECT */ + ) ? Q : mt(Q) + ) : ( + // reject any unknown error + G(Q, L, b) + )).then((Q) => { + if (Q) { + if (se( + Q, + 2 + /* ErrorTypes.NAVIGATION_GUARD_REDIRECT */ + )) + return process.env.NODE_ENV !== "production" && // we are redirecting to the same location we were already at + On(o, O(Q.to), L) && // and we have done it a couple of times + y && // @ts-expect-error: added only in dev + (y._count = y._count ? ( + // @ts-expect-error + y._count + 1 + ) : 1) > 30 ? ($(`Detected a possibly infinite redirection in a navigation guard when going from "${b.fullPath}" to "${L.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( + // keep options + R({ + // preserve an existing replacement but allow the redirect to override it + replace: C + }, I(Q.to), { + state: typeof Q.to == "object" ? R({}, N, Q.to.state) : N, + force: j + }), + // preserve the original redirectedFrom if any + y || L + ); + } else + Q = D(L, b, !0, C, N); + return _(L, b, Q), Q; + }); + } + function ln(h, y) { + const g = M(h, y); + return g ? Promise.reject(g) : Promise.resolve(); + } + function ee(h) { + const y = Je.values().next().value; + return y && typeof y.runWithContext == "function" ? y.runWithContext(h) : h(); + } + function E(h, y) { + let g; + const [b, N, j] = ei(h, y); + g = Et(b.reverse(), "beforeRouteLeave", h, y); + for (const P of b) + P.leaveGuards.forEach((L) => { + g.push(he(L, h, y)); + }); + const C = ln.bind(null, h, y); + return g.push(C), Ce(g).then(() => { + g = []; + for (const P of s.list()) + g.push(he(P, h, y)); + return g.push(C), Ce(g); + }).then(() => { + g = Et(N, "beforeRouteUpdate", h, y); + for (const P of N) + P.updateGuards.forEach((L) => { + g.push(he(L, h, y)); + }); + return g.push(C), Ce(g); + }).then(() => { + g = []; + for (const P of j) + if (P.beforeEnter) + if (K(P.beforeEnter)) + for (const L of P.beforeEnter) + g.push(he(L, h, y)); + else + g.push(he(P.beforeEnter, h, y)); + return g.push(C), Ce(g); + }).then(() => (h.matched.forEach((P) => P.enterCallbacks = {}), g = Et(j, "beforeRouteEnter", h, y), g.push(C), Ce(g))).then(() => { + g = []; + for (const P of i.list()) + g.push(he(P, h, y)); + return g.push(C), Ce(g); + }).catch((P) => se( + P, + 8 + /* ErrorTypes.NAVIGATION_CANCELLED */ + ) ? P : Promise.reject(P)); + } + function _(h, y, g) { + a.list().forEach((b) => ee(() => b(h, y, g))); + } + function D(h, y, g, b, N) { + const j = M(h, y); + if (j) + return j; + const C = y === pe, P = ae ? history.state : {}; + g && (b || C ? r.replace(h.fullPath, R({ + scroll: C && P && P.scroll + }, N)) : r.push(h.fullPath, N)), l.value = h, un(h, y, g, C), mt(); + } + let U; + function ye() { + U || (U = r.listen((h, y, g) => { + const b = O(h), N = Y(b); + if (N) { + S(R(N, { replace: !0 }), b).catch(Ue); + return; + } + u = b; + const j = l.value; + ae && Qs(Pn(j.fullPath, g.delta), ft()), E(b, j).catch((C) => se( + C, + 12 + /* ErrorTypes.NAVIGATION_CANCELLED */ + ) ? C : se( + C, + 2 + /* ErrorTypes.NAVIGATION_GUARD_REDIRECT */ + ) ? (S( + C.to, + b + // avoid an uncaught rejection, let push call triggerError + ).then((P) => { + se( + P, + 20 + /* ErrorTypes.NAVIGATION_DUPLICATED */ + ) && !g.delta && g.type === ze.pop && r.go(-1, !1); + }).catch(Ue), Promise.reject()) : (g.delta && r.go(-g.delta, !1), G(C, b, j))).then((C) => { + C = C || D( + // after navigation, all matched components are resolved + b, + j, + !1 + ), C && (g.delta && // a new navigation has been triggered, so we do not want to revert, that will change the current history + // entry while a different route is displayed + !se( + C, + 8 + /* ErrorTypes.NAVIGATION_CANCELLED */ + ) ? r.go(-g.delta, !1) : g.type === ze.pop && se( + C, + 20 + /* ErrorTypes.NAVIGATION_DUPLICATED */ + ) && r.go(-1, !1)), _(b, j, C); + }).catch(Ue); + })); + } + let De = Ve(), Ke = Ve(), ne; + function G(h, y, g) { + mt(h); + const b = Ke.list(); + return b.length ? b.forEach((N) => N(h, y, g)) : (process.env.NODE_ENV !== "production" && $("uncaught error during route navigation:"), console.error(h)), Promise.reject(h); + } + function gr() { + return ne && l.value !== pe ? Promise.resolve() : new Promise((h, y) => { + De.add([h, y]); + }); + } + function mt(h) { + return ne || (ne = !h, ye(), De.list().forEach(([y, g]) => h ? g(h) : y()), De.reset()), h; + } + function un(h, y, g, b) { + const { scrollBehavior: N } = e; + if (!ae || !N) + return Promise.resolve(); + const j = !g && qs(Pn(h.fullPath, 0)) || (b || !g) && history.state && history.state.scroll || null; + return Fe().then(() => N(h, y, j)).then((C) => C && zs(C)).catch((C) => G(C, h, y)); + } + const vt = (h) => r.go(h); + let gt; + const Je = /* @__PURE__ */ new Set(), yr = { + currentRoute: l, + listening: !0, + addRoute: p, + removeRoute: v, + hasRoute: w, + getRoutes: m, + resolve: O, + options: e, + push: W, + replace: J, + go: vt, + back: () => vt(-1), + forward: () => vt(1), + beforeEach: s.add, + beforeResolve: i.add, + afterEach: a.add, + onError: Ke.add, + isReady: gr, + install(h) { + const y = this; + h.component("RouterLink", La), h.component("RouterView", Ha), h.config.globalProperties.$router = y, Object.defineProperty(h.config.globalProperties, "$route", { + enumerable: !0, + get: () => k(l) + }), ae && // used for the initial navigation client side to avoid pushing + // multiple times when the router is used in multiple apps + !gt && l.value === pe && (gt = !0, W(r.location).catch((N) => { + process.env.NODE_ENV !== "production" && $("Unexpected error when starting the router:", N); + })); + const g = {}; + for (const N in pe) + Object.defineProperty(g, N, { + get: () => l.value[N], + enumerable: !0 + }); + h.provide(Jt, y), h.provide(Uo, Er(g)), h.provide(Dt, l); + const b = h.unmount; + Je.add(h), h.unmount = function() { + Je.delete(h), Je.size < 1 && (u = pe, U && U(), U = null, l.value = pe, gt = !1, ne = !1), b(); + }, process.env.NODE_ENV !== "production" && ae && Ga(h, y, t); + } + }; + function Ce(h) { + return h.reduce((y, g) => y.then(() => ee(g)), Promise.resolve()); + } + return yr; +} +function ei(e, t) { + const n = [], o = [], r = [], s = Math.max(t.matched.length, e.matched.length); + for (let i = 0; i < s; i++) { + const a = t.matched[i]; + a && (e.matched.find((u) => ge(u, a)) ? o.push(a) : n.push(a)); + const l = e.matched[i]; + l && (t.matched.find((u) => ge(u, l)) || r.push(l)); + } + return [n, o, r]; +} +Za({ + history: Xs(), + routes: [] +}); +function ti(e) { + return e && typeof e.then == "function"; +} +Promise.resolve(!1); +Promise.resolve(!0); +var Oe = Promise.resolve(); +function Ko(e, t) { + return e || (e = 0), new Promise(function(n) { + return setTimeout(function() { + return n(t); + }, e); + }); +} +function ni(e, t) { + return Math.floor(Math.random() * (t - e + 1) + e); +} +function Yt() { + return Math.random().toString(36).substring(2); +} +var Un = 0, kt = 0; +function pt() { + var e = (/* @__PURE__ */ new Date()).getTime(); + return e === Un ? (kt++, e * 1e3 + kt) : (Un = e, kt = 0, e * 1e3); +} +var oi = pt, ri = "native"; +function si(e) { + var t = { + messagesCallback: null, + bc: new BroadcastChannel(e), + subFns: [] + // subscriberFunctions + }; + return t.bc.onmessage = function(n) { + t.messagesCallback && t.messagesCallback(n.data); + }, t; +} +function ai(e) { + e.bc.close(), e.subFns = []; +} +function ii(e, t) { + try { + return e.bc.postMessage(t, !1), Oe; + } catch (n) { + return Promise.reject(n); + } +} +function ci(e, t) { + e.messagesCallback = t; +} +function li() { + 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 ui() { + return 150; +} +var di = { + create: si, + close: ai, + onMessage: ci, + postMessage: ii, + canBeUsed: li, + type: ri, + averageResponseTime: ui, + microSeconds: oi +}, Jo = ( + /** @class */ + function() { + function e(t) { + this.ttl = t, this.map = /* @__PURE__ */ 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, Yo()), this._to || (this._to = !0, setTimeout(function() { + n._to = !1, fi(n); + }, 0)); + }, e.prototype.clear = function() { + this.map.clear(); + }, e; + }() +); +function fi(e) { + for (var t = Yo() - e.ttl, n = e.map[Symbol.iterator](); ; ) { + var o = n.next().value; + if (!o) + return; + var r = o[0], s = o[1]; + if (s < t) + e.map.delete(r); + else + return; + } +} +function Yo() { + return (/* @__PURE__ */ new Date()).getTime(); +} +function Xt() { + var e = arguments.length > 0 && 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 pi = pt, hi = "pubkey.broadcast-channel-0-", le = "messages", ht = { + durability: "relaxed" +}, mi = "idb"; +function Xo() { + 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 Zt(e) { + e.commit && e.commit(); +} +function vi(e) { + var t = Xo(), n = hi + e, o = t.open(n); + return o.onupgradeneeded = function(r) { + var s = r.target.result; + s.createObjectStore(le, { + keyPath: "id", + autoIncrement: !0 + }); + }, new Promise(function(r, s) { + o.onerror = function(i) { + return s(i); + }, o.onsuccess = function() { + r(o.result); + }; + }); +} +function gi(e, t, n) { + var o = (/* @__PURE__ */ new Date()).getTime(), r = { + uuid: t, + time: o, + data: n + }, s = e.transaction([le], "readwrite", ht); + return new Promise(function(i, a) { + s.oncomplete = function() { + return i(); + }, s.onerror = function(u) { + return a(u); + }; + var l = s.objectStore(le); + l.add(r), Zt(s); + }); +} +function yi(e, t) { + var n = e.transaction(le, "readonly", ht), o = n.objectStore(le), r = [], s = IDBKeyRange.bound(t + 1, 1 / 0); + if (o.getAll) { + var i = o.getAll(s); + return new Promise(function(l, u) { + i.onerror = function(c) { + return u(c); + }, i.onsuccess = function(c) { + l(c.target.result); + }; + }); + } + function a() { + try { + return s = IDBKeyRange.bound(t + 1, 1 / 0), o.openCursor(s); + } catch { + return o.openCursor(); + } + } + return new Promise(function(l, u) { + var c = a(); + c.onerror = function(d) { + return u(d); + }, c.onsuccess = function(d) { + var f = d.target.result; + f ? f.value.id < t + 1 ? f.continue(t + 1) : (r.push(f.value), f.continue()) : (Zt(n), l(r)); + }; + }); +} +function wi(e, t) { + if (e.closed) + return Promise.resolve([]); + var n = e.db.transaction(le, "readwrite", ht), o = n.objectStore(le); + return Promise.all(t.map(function(r) { + var s = o.delete(r); + return new Promise(function(i) { + s.onsuccess = function() { + return i(); + }; + }); + })); +} +function _i(e, t) { + var n = (/* @__PURE__ */ new Date()).getTime() - t, o = e.transaction(le, "readonly", ht), r = o.objectStore(le), s = []; + return new Promise(function(i) { + r.openCursor().onsuccess = function(a) { + var l = a.target.result; + if (l) { + var u = l.value; + u.time < n ? (s.push(u), l.continue()) : (Zt(o), i(s)); + } else + i(s); + }; + }); +} +function bi(e) { + return _i(e.db, e.options.idb.ttl).then(function(t) { + return wi(e, t.map(function(n) { + return n.id; + })); + }); +} +function Ei(e, t) { + return t = Xt(t), vi(e).then(function(n) { + var o = { + closed: !1, + lastCursorId: 0, + channelName: e, + options: t, + uuid: Yt(), + /** + * emittedMessagesIds + * contains all messages that have been emitted before + * @type {ObliviousSet} + */ + eMIs: new Jo(t.idb.ttl * 2), + // ensures we do not read messages in parallel + writeBlockPromise: Oe, + messagesCallback: null, + readQueuePromises: [], + db: n + }; + return n.onclose = function() { + o.closed = !0, t.idb.onclose && t.idb.onclose(); + }, Zo(o), o; + }); +} +function Zo(e) { + e.closed || er(e).then(function() { + return Ko(e.options.idb.fallbackInterval); + }).then(function() { + return Zo(e); + }); +} +function ki(e, t) { + return !(e.uuid === t.uuid || t.eMIs.has(e.id) || e.data.time < t.messagesCallbackTime); +} +function er(e) { + return e.closed || !e.messagesCallback ? Oe : yi(e.db, e.lastCursorId).then(function(t) { + var n = t.filter(function(o) { + return !!o; + }).map(function(o) { + return o.id > e.lastCursorId && (e.lastCursorId = o.id), o; + }).filter(function(o) { + return ki(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)); + }), Oe; + }); +} +function Si(e) { + e.closed = !0, e.db.close(); +} +function Oi(e, t) { + return e.writeBlockPromise = e.writeBlockPromise.then(function() { + return gi(e.db, e.uuid, t); + }).then(function() { + ni(0, 10) === 0 && bi(e); + }), e.writeBlockPromise; +} +function Ii(e, t, n) { + e.messagesCallbackTime = n, e.messagesCallback = t, er(e); +} +function Pi() { + return !!Xo(); +} +function xi(e) { + return e.idb.fallbackInterval * 2; +} +var Ci = { + create: Ei, + close: Si, + onMessage: Ii, + postMessage: Oi, + canBeUsed: Pi, + type: mi, + averageResponseTime: xi, + microSeconds: pi +}, $i = pt, Ni = "pubkey.broadcastChannel-", Ri = "localstorage"; +function tr() { + var e; + if (typeof window > "u") + return null; + try { + e = window.localStorage, e = window["ie8-eventlistener/storage"] || window.localStorage; + } catch { + } + return e; +} +function nr(e) { + return Ni + e; +} +function Ai(e, t) { + return new Promise(function(n) { + Ko().then(function() { + var o = nr(e.channelName), r = { + token: Yt(), + time: (/* @__PURE__ */ new Date()).getTime(), + data: t, + uuid: e.uuid + }, s = JSON.stringify(r); + tr().setItem(o, s); + var i = document.createEvent("Event"); + i.initEvent("storage", !0, !0), i.key = o, i.newValue = s, window.dispatchEvent(i), n(); + }); + }); +} +function Ti(e, t) { + var n = nr(e), o = function(s) { + s.key === n && t(JSON.parse(s.newValue)); + }; + return window.addEventListener("storage", o), o; +} +function Di(e) { + window.removeEventListener("storage", e); +} +function Vi(e, t) { + if (t = Xt(t), !or()) + throw new Error("BroadcastChannel: localstorage cannot be used"); + var n = Yt(), o = new Jo(t.localstorage.removeTimeout), r = { + channelName: e, + uuid: n, + eMIs: o + // emittedMessagesIds + }; + return r.listener = Ti(e, function(s) { + r.messagesCallback && s.uuid !== n && (!s.token || o.has(s.token) || s.data.time && s.data.time < r.messagesCallbackTime || (o.add(s.token), r.messagesCallback(s.data))); + }), r; +} +function Mi(e) { + Di(e.listener); +} +function Li(e, t, n) { + e.messagesCallbackTime = n, e.messagesCallback = t; +} +function or() { + var e = tr(); + if (!e) + return !1; + try { + var t = "__broadcastchannel_check"; + e.setItem(t, "works"), e.removeItem(t); + } catch { + return !1; + } + return !0; +} +function ji() { + var e = 120, t = navigator.userAgent.toLowerCase(); + return t.includes("safari") && !t.includes("chrome") ? e * 2 : e; +} +var Bi = { + create: Vi, + close: Mi, + onMessage: Li, + postMessage: Ai, + canBeUsed: or, + type: Ri, + averageResponseTime: ji, + microSeconds: $i +}, Ui = pt, Hi = "simulate", en = /* @__PURE__ */ new Set(); +function Wi(e) { + var t = { + name: e, + messagesCallback: null + }; + return en.add(t), t; +} +function Fi(e) { + en.delete(e); +} +function Gi(e, t) { + return new Promise(function(n) { + return setTimeout(function() { + var o = Array.from(en); + o.filter(function(r) { + return r.name === e.name; + }).filter(function(r) { + return r !== e; + }).filter(function(r) { + return !!r.messagesCallback; + }).forEach(function(r) { + return r.messagesCallback(t); + }), n(); + }, 5); + }); +} +function zi(e, t) { + e.messagesCallback = t; +} +function Qi() { + return !0; +} +function qi() { + return 5; +} +var Ki = { + create: Wi, + close: Fi, + onMessage: zi, + postMessage: Gi, + canBeUsed: Qi, + type: Hi, + averageResponseTime: qi, + microSeconds: Ui +}, Hn = [ + di, + // fastest + Ci, + Bi +]; +function Ji(e) { + var t = [].concat(e.methods, Hn).filter(Boolean); + if (e.type) { + if (e.type === "simulate") + return Ki; + var n = t.find(function(r) { + return r.type === e.type; + }); + if (n) + return n; + throw new Error("method-type " + e.type + " not found"); + } + e.webWorkerSupport || (t = t.filter(function(r) { + return r.type !== "idb"; + })); + var o = t.find(function(r) { + return r.canBeUsed(); + }); + if (o) + return o; + throw new Error("No usable method found in " + JSON.stringify(Hn.map(function(r) { + return r.type; + }))); +} +var rr = /* @__PURE__ */ new Set(), Yi = 0, tn = function(t, n) { + this.id = Yi++, rr.add(this), this.name = t, this.options = Xt(n), this.method = Ji(this.options), this._iL = !1, this._onML = null, this._addEL = { + message: [], + internal: [] + }, this._uMP = /* @__PURE__ */ new Set(), this._befC = [], this._prepP = null, Xi(this); +}; +tn._pubkey = !0; +tn.prototype = { + postMessage: function(t) { + if (this.closed) + throw new Error("BroadcastChannel.postMessage(): Cannot post message after channel has closed " + /** + * In the past when this error appeared, it was really hard to debug. + * So now we log the msg together with the error so it at least + * gives some clue about where in your application this happens. + */ + JSON.stringify(t)); + return Wn(this, "message", t); + }, + postInternal: function(t) { + return Wn(this, "internal", t); + }, + set onmessage(e) { + var t = this.method.microSeconds(), n = { + time: t, + fn: e + }; + Gn(this, "message", this._onML), e && typeof e == "function" ? (this._onML = n, Fn(this, "message", n)) : this._onML = null; + }, + addEventListener: function(t, n) { + var o = this.method.microSeconds(), r = { + time: o, + fn: n + }; + Fn(this, t, r); + }, + removeEventListener: function(t, n) { + var o = this._addEL[t].find(function(r) { + return r.fn === n; + }); + Gn(this, t, o); + }, + close: function() { + var t = this; + if (!this.closed) { + rr.delete(this), this.closed = !0; + var n = this._prepP ? this._prepP : Oe; + return this._onML = null, this._addEL.message = [], n.then(function() { + return Promise.all(Array.from(t._uMP)); + }).then(function() { + return Promise.all(t._befC.map(function(o) { + return o(); + })); + }).then(function() { + return t.method.close(t._state); + }); + } + }, + get type() { + return this.method.type; + }, + get isClosed() { + return this.closed; + } +}; +function Wn(e, t, n) { + var o = e.method.microSeconds(), r = { + time: o, + type: t, + data: n + }, s = e._prepP ? e._prepP : Oe; + return s.then(function() { + var i = e.method.postMessage(e._state, r); + return e._uMP.add(i), i.catch().then(function() { + return e._uMP.delete(i); + }), i; + }); +} +function Xi(e) { + var t = e.method.create(e.name, e.options); + ti(t) ? (e._prepP = t, t.then(function(n) { + e._state = n; + })) : e._state = t; +} +function sr(e) { + return e._addEL.message.length > 0 || e._addEL.internal.length > 0; +} +function Fn(e, t, n) { + e._addEL[t].push(n), Zi(e); +} +function Gn(e, t, n) { + e._addEL[t] = e._addEL[t].filter(function(o) { + return o !== n; + }), ec(e); +} +function Zi(e) { + if (!e._iL && sr(e)) { + var t = function(r) { + e._addEL[r.type].forEach(function(s) { + var i = 1e5, a = s.time - i; + r.time >= a && s.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 ec(e) { + if (e._iL && !sr(e)) { + e._iL = !1; + var t = e.method.microSeconds(); + e.method.onMessage(e._state, null, t); + } +} +class St extends Error { + /** + * @param {string} message + * @param {string[]} keys + */ + constructor(t, n) { + super(t), this.name = "DevalueError", this.path = n.join(""); + } +} +function zn(e) { + return Object(e) !== e; +} +const tc = /* @__PURE__ */ Object.getOwnPropertyNames( + Object.prototype +).sort().join("\0"); +function nc(e) { + const t = Object.getPrototypeOf(e); + return t === Object.prototype || t === null || Object.getOwnPropertyNames(t).sort().join("\0") === tc; +} +function oc(e) { + return Object.prototype.toString.call(e).slice(8, -1); +} +function rc(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 Ae(e) { + let t = "", n = 0; + const o = e.length; + for (let r = 0; r < o; r += 1) { + const s = e[r], i = rc(s); + i && (t += e.slice(n, r) + i, n = r + 1); + } + return `"${n === 0 ? e : t + e.slice(n)}"`; +} +const nn = -1, ar = -2, ir = -3, cr = -4, lr = -5, on = -6; +function Qn(e, t) { + return sc(JSON.parse(e), t); +} +function sc(e, t) { + if (typeof e == "number") + return r(e, !0); + if (!Array.isArray(e) || e.length === 0) + throw new Error("Invalid input"); + const n = ( + /** @type {any[]} */ + e + ), o = Array(n.length); + function r(s, i = !1) { + if (s === nn) + return; + if (s === ir) + return NaN; + if (s === cr) + return 1 / 0; + if (s === lr) + return -1 / 0; + if (s === on) + return -0; + if (i) + throw new Error("Invalid input"); + if (s in o) + return o[s]; + const a = n[s]; + if (!a || typeof a != "object") + o[s] = a; + else if (Array.isArray(a)) + if (typeof a[0] == "string") { + const l = a[0], u = t == null ? void 0 : t[l]; + if (u) + return o[s] = u(r(a[1])); + switch (l) { + case "Date": + o[s] = new Date(a[1]); + break; + case "Set": + const c = /* @__PURE__ */ new Set(); + o[s] = c; + for (let p = 1; p < a.length; p += 1) + c.add(r(a[p])); + break; + case "Map": + const d = /* @__PURE__ */ new Map(); + o[s] = d; + for (let p = 1; p < a.length; p += 2) + d.set(r(a[p]), r(a[p + 1])); + break; + case "RegExp": + o[s] = new RegExp(a[1], a[2]); + break; + case "Object": + o[s] = Object(a[1]); + break; + case "BigInt": + o[s] = BigInt(a[1]); + break; + case "null": + const f = /* @__PURE__ */ Object.create(null); + o[s] = f; + for (let p = 1; p < a.length; p += 2) + f[a[p]] = r(a[p + 1]); + break; + default: + throw new Error(`Unknown type ${l}`); + } + } else { + const l = new Array(a.length); + o[s] = l; + for (let u = 0; u < a.length; u += 1) { + const c = a[u]; + c !== ar && (l[u] = r(c)); + } + } + else { + const l = {}; + o[s] = l; + for (const u in a) { + const c = a[u]; + l[u] = r(c); + } + } + return o[s]; + } + return r(0); +} +function qn(e, t) { + const n = [], o = /* @__PURE__ */ new Map(), r = []; + for (const u in t) + r.push({ key: u, fn: t[u] }); + const s = []; + let i = 0; + function a(u) { + if (typeof u == "function") + throw new St("Cannot stringify a function", s); + if (o.has(u)) + return o.get(u); + if (u === void 0) + return nn; + if (Number.isNaN(u)) + return ir; + if (u === 1 / 0) + return cr; + if (u === -1 / 0) + return lr; + if (u === 0 && 1 / u < 0) + return on; + const c = i++; + o.set(u, c); + for (const { key: f, fn: p } of r) { + const v = p(u); + if (v) + return n[c] = `["${f}",${a(v)}]`, c; + } + let d = ""; + if (zn(u)) + d = Ot(u); + else + switch (oc(u)) { + case "Number": + case "String": + case "Boolean": + d = `["Object",${Ot(u)}]`; + break; + case "BigInt": + d = `["BigInt",${u}]`; + break; + case "Date": + d = `["Date","${u.toISOString()}"]`; + break; + case "RegExp": + const { source: p, flags: v } = u; + d = v ? `["RegExp",${Ae(p)},"${v}"]` : `["RegExp",${Ae(p)}]`; + break; + case "Array": + d = "["; + for (let m = 0; m < u.length; m += 1) + m > 0 && (d += ","), m in u ? (s.push(`[${m}]`), d += a(u[m]), s.pop()) : d += ar; + d += "]"; + break; + case "Set": + d = '["Set"'; + for (const m of u) + d += `,${a(m)}`; + d += "]"; + break; + case "Map": + d = '["Map"'; + for (const [m, w] of u) + s.push( + `.get(${zn(m) ? Ot(m) : "..."})` + ), d += `,${a(m)},${a(w)}`; + d += "]"; + break; + default: + if (!nc(u)) + throw new St( + "Cannot stringify arbitrary non-POJOs", + s + ); + if (Object.getOwnPropertySymbols(u).length > 0) + throw new St( + "Cannot stringify POJOs with symbolic keys", + s + ); + if (Object.getPrototypeOf(u) === null) { + d = '["null"'; + for (const m in u) + s.push(`.${m}`), d += `,${Ae(m)},${a(u[m])}`, s.pop(); + d += "]"; + } else { + d = "{"; + let m = !1; + for (const w in u) + m && (d += ","), m = !0, s.push(`.${w}`), d += `${Ae(w)}:${a(u[w])}`, s.pop(); + d += "}"; + } + } + return n[c] = d, c; + } + const l = a(e); + return l < 0 ? `${l}` : `[${n.join(",")}]`; +} +function Ot(e) { + const t = typeof e; + return t === "string" ? Ae(e) : e instanceof String ? Ae(e.toString()) : e === void 0 ? nn.toString() : e === 0 && 1 / e < 0 ? on.toString() : t === "bigint" ? `["BigInt","${e}"]` : String(e); +} +function ac(e, t, { initialize: n, type: o }) { + let r = `${t.$id}-${e.toString()}`, s = new tn(r, { type: o }), i = !1, a = 0; + ue(() => t[e], (c) => { + i || (a = Date.now(), s.postMessage({ timestamp: a, state: Qn(qn(c)) })), i = !1; + }, { deep: !0 }), s.onmessage = (c) => { + if (c === void 0) { + s.postMessage({ timestamp: a, state: Qn(qn(t[e])) }); + return; + } + c.timestamp <= a || (i = !0, a = c.timestamp, t[e] = c.state); + }; + let l = () => s.postMessage(void 0), u = () => s.close(); + return n && l(), { sync: l, unshare: u }; +} +var ic = (e, t) => Object.keys(t).includes(e), cc = ({ initialize: e = !0, enable: t = !0, type: n }) => ({ store: o, options: r }) => { + var s, i; + let a = ((s = r == null ? void 0 : r.share) == null ? void 0 : s.enable) ?? t, l = ((i = r == null ? void 0 : r.share) == null ? void 0 : i.omit) ?? []; + !a || Object.keys(o.$state).forEach((u) => { + var c; + l.includes(u) || !ic(u, o.$state) || ac(u, o, { initialize: ((c = r == null ? void 0 : r.share) == null ? void 0 : c.initialize) ?? e, type: n }); + }); +}; +const lc = $s(); +lc.use( + cc({ + enable: !0, + initialize: !0 + }) +); +const uc = /* @__PURE__ */ q({ + __name: "Doctype", + setup(e) { + const { stonecrop: t, isReady: n } = No(), o = V([]); + return ue(n, () => { + if (n.value) { + let r = t.value.schema.schema.toArray(); + r.forEach((s, i) => { + const l = t.value.store.record[s.fieldname]; + r[i].value = l; + }), o.value = r; + } + }), (r, s) => k(n) ? (x(), Se(k(es), { + key: 0, + class: "aform-main", + modelValue: o.value, + "onUpdate:modelValue": s[0] || (s[0] = (i) => o.value = i) + }, null, 8, ["modelValue"])) : ke("", !0); + } +}); +var Kn; +const ur = typeof window < "u", dc = (e) => typeof e == "string", fc = () => { +}; +ur && (Kn = window == null ? void 0 : window.navigator) != null && Kn.userAgent && /iP(ad|hone|od)/.test(window.navigator.userAgent); +function dr(e) { + return typeof e == "function" ? e() : k(e); +} +function pc(e) { + return e; +} +function hc(e) { + return po() ? (ho(e), !0) : !1; +} +function Mt(e) { + var t; + const n = dr(e); + return (t = n == null ? void 0 : n.$el) != null ? t : n; +} +const fr = ur ? window : void 0; +function mc(...e) { + let t, n, o, r; + if (dc(e[0]) || Array.isArray(e[0]) ? ([n, o, r] = e, t = fr) : [t, n, o, r] = e, !t) + return fc; + Array.isArray(n) || (n = [n]), Array.isArray(o) || (o = [o]); + const s = [], i = () => { + s.forEach((c) => c()), s.length = 0; + }, a = (c, d, f, p) => (c.addEventListener(d, f, p), () => c.removeEventListener(d, f, p)), l = ue(() => [Mt(t), dr(r)], ([c, d]) => { + i(), c && s.push(...n.flatMap((f) => o.map((p) => a(c, f, p, d)))); + }, { immediate: !0, flush: "post" }), u = () => { + l(), i(); + }; + return hc(u), u; +} +const Jn = typeof globalThis < "u" ? globalThis : typeof window < "u" ? window : typeof global < "u" ? global : typeof self < "u" ? self : {}, Yn = "__vueuse_ssr_handlers__"; +Jn[Yn] = Jn[Yn] || {}; +function vc(e, { window: t = fr, scrollTarget: n } = {}) { + const o = V(!1), r = () => { + if (!t) + return; + const s = t.document, i = Mt(e); + if (!i) + o.value = !1; + else { + const a = i.getBoundingClientRect(); + o.value = a.top <= (t.innerHeight || s.documentElement.clientHeight) && a.left <= (t.innerWidth || s.documentElement.clientWidth) && a.bottom >= 0 && a.right >= 0; + } + }; + return ue(() => Mt(e), () => r(), { immediate: !0, flush: "post" }), t && mc(n || t, "scroll", r, { + capture: !1, + passive: !0 + }), o; +} +var Xn; +(function(e) { + e.UP = "UP", e.RIGHT = "RIGHT", e.DOWN = "DOWN", e.LEFT = "LEFT", e.NONE = "NONE"; +})(Xn || (Xn = {})); +var gc = Object.defineProperty, Zn = Object.getOwnPropertySymbols, yc = Object.prototype.hasOwnProperty, wc = Object.prototype.propertyIsEnumerable, eo = (e, t, n) => t in e ? gc(e, t, { enumerable: !0, configurable: !0, writable: !0, value: n }) : e[t] = n, _c = (e, t) => { + for (var n in t || (t = {})) + yc.call(t, n) && eo(e, n, t[n]); + if (Zn) + for (var n of Zn(t)) + wc.call(t, n) && eo(e, n, t[n]); + return e; +}; +const bc = { + easeInSine: [0.12, 0, 0.39, 0], + easeOutSine: [0.61, 1, 0.88, 1], + easeInOutSine: [0.37, 0, 0.63, 1], + easeInQuad: [0.11, 0, 0.5, 0], + easeOutQuad: [0.5, 1, 0.89, 1], + easeInOutQuad: [0.45, 0, 0.55, 1], + easeInCubic: [0.32, 0, 0.67, 0], + easeOutCubic: [0.33, 1, 0.68, 1], + easeInOutCubic: [0.65, 0, 0.35, 1], + easeInQuart: [0.5, 0, 0.75, 0], + easeOutQuart: [0.25, 1, 0.5, 1], + easeInOutQuart: [0.76, 0, 0.24, 1], + easeInQuint: [0.64, 0, 0.78, 0], + easeOutQuint: [0.22, 1, 0.36, 1], + easeInOutQuint: [0.83, 0, 0.17, 1], + easeInExpo: [0.7, 0, 0.84, 0], + easeOutExpo: [0.16, 1, 0.3, 1], + easeInOutExpo: [0.87, 0, 0.13, 1], + easeInCirc: [0.55, 0, 1, 0.45], + easeOutCirc: [0, 0.55, 0.45, 1], + easeInOutCirc: [0.85, 0, 0.15, 1], + easeInBack: [0.36, 0, 0.66, -0.56], + easeOutBack: [0.34, 1.56, 0.64, 1], + easeInOutBack: [0.68, -0.6, 0.32, 1.6] +}; +_c({ + linear: pc +}, bc); +const de = (e) => { + let t = vc(e).value; + return t = t && e.offsetHeight > 0, t; +}, fe = (e) => e.tabIndex >= 0, to = (e) => { + const t = e.target; + return rn(t); +}, rn = (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 && (!fe(n) || !de(n)) ? rn(n) : n; +}, Ec = (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 s = r.firstElementChild.children[n.cellIndex]; + s && (o = s); + } + } else if (n instanceof HTMLTableRowElement) { + const r = n.parentElement; + if (r) { + const s = r.firstElementChild; + s && (o = s); + } + } + return o && (!fe(o) || !de(o)) ? sn(o) : o; +}, no = (e) => { + const t = e.target; + return sn(t); +}, sn = (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 && (!fe(n) || !de(n)) ? sn(n) : n; +}, kc = (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 s = r.lastElementChild.children[n.cellIndex]; + s && (o = s); + } + } else if (n instanceof HTMLTableRowElement) { + const r = n.parentElement; + if (r) { + const s = r.lastElementChild; + s && (o = s); + } + } + return o && (!fe(o) || !de(o)) ? rn(o) : o; +}, oo = (e) => { + const t = e.target; + return an(t); +}, an = (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 && (!fe(n) || !de(n)) ? an(n) : n; +}, ro = (e) => { + const t = e.target; + return cn(t); +}, cn = (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 && (!fe(n) || !de(n)) ? cn(n) : n; +}, so = (e) => { + const t = e.target.parentElement.firstElementChild; + return t && (!fe(t) || !de(t)) ? cn(t) : t; +}, ao = (e) => { + const t = e.target.parentElement.lastElementChild; + return t && (!fe(t) || !de(t)) ? an(t) : t; +}, et = ["alt", "control", "shift", "meta"], Sc = { + ArrowUp: "up", + ArrowDown: "down", + ArrowLeft: "left", + ArrowRight: "right" +}, pr = { + "keydown.up": (e) => { + const t = to(e); + t && (e.preventDefault(), e.stopPropagation(), t.focus()); + }, + "keydown.down": (e) => { + const t = no(e); + t && (e.preventDefault(), e.stopPropagation(), t.focus()); + }, + "keydown.left": (e) => { + const t = oo(e); + e.preventDefault(), e.stopPropagation(), t && t.focus(); + }, + "keydown.right": (e) => { + const t = ro(e); + e.preventDefault(), e.stopPropagation(), t && t.focus(); + }, + "keydown.control.up": (e) => { + const t = Ec(e); + t && (e.preventDefault(), e.stopPropagation(), t.focus()); + }, + "keydown.control.down": (e) => { + const t = kc(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 = ao(e); + t && (e.preventDefault(), e.stopPropagation(), t.focus()); + }, + "keydown.end": (e) => { + const t = ao(e); + t && (e.preventDefault(), e.stopPropagation(), t.focus()); + }, + "keydown.enter": (e) => { + if (e.target instanceof HTMLTableCellElement) { + e.preventDefault(), e.stopPropagation(); + const t = no(e); + t && t.focus(); + } + }, + "keydown.shift.enter": (e) => { + if (e.target instanceof HTMLTableCellElement) { + e.preventDefault(), e.stopPropagation(); + const t = to(e); + t && t.focus(); + } + }, + "keydown.home": (e) => { + const t = so(e); + t && (e.preventDefault(), e.stopPropagation(), t.focus()); + }, + "keydown.tab": (e) => { + const t = ro(e); + t && (e.preventDefault(), e.stopPropagation(), t.focus()); + }, + "keydown.shift.tab": (e) => { + const t = oo(e); + t && (e.preventDefault(), e.stopPropagation(), t.focus()); + } +}; +function hr(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 s = []; + if (o.selectors) + if (typeof o.selectors == "string") + s = r ? Array.from(r.querySelectorAll(o.selectors)) : Array.from(document.querySelectorAll(o.selectors)); + else if (o.selectors instanceof Element) + s.push(o.selectors); + else if (Array.isArray(o.selectors.value)) + for (const i of o.selectors.value) + i instanceof Element ? s.push(i) : s.push(i.$el); + else + s.push(o.selectors.value); + else + s = Array.from(r.children).filter((i) => fe(i) && de(i)); + return s; + }, n = (o) => (r) => { + const s = Sc[r.key] || r.key.toLowerCase(); + if (et.includes(s)) + return; + const i = o.handlers || pr; + for (const a of Object.keys(i)) { + const [l, ...u] = a.split("."); + if (l === "keydown" && u.includes(s)) { + const c = i[a], d = u.filter((p) => et.includes(p)), f = et.some((p) => { + const v = p.charAt(0).toUpperCase() + p.slice(1); + return r.getModifierState(v); + }); + if (d.length > 0) { + if (f) { + for (const p of et) + if (u.includes(p)) { + const v = p.charAt(0).toUpperCase() + p.slice(1); + r.getModifierState(v) && c(r); + } + } + } else + f || c(r); + } + } + }; + Lt(() => { + for (const o of e) { + const r = t(o); + for (const s of r) + s.addEventListener("keydown", n(o)); + } + }), Sr(() => { + for (const o of e) { + const r = t(o); + for (const s of r) + s.removeEventListener("keydown", n(o)); + } + }); +} +const Oc = ["data-colindex", "data-rowindex", "data-editable", "contenteditable", "tabindex"], Ic = { key: 1 }, Pc = /* @__PURE__ */ q({ + __name: "ACell", + props: { + colIndex: {}, + rowIndex: {}, + tableid: {}, + addNavigation: { type: [Boolean, Object], default: !0 }, + tabIndex: { default: 0 }, + clickHandler: {} + }, + setup(e) { + var t; + const n = e, o = Z(n.tableid), r = V(null); + let s = V(!1); + const i = B(() => { + const m = o.cellData(n.colIndex, n.rowIndex); + if (o.columns[n.colIndex].format) { + const w = o.columns[n.colIndex].format; + return typeof w == "function" ? w(m) : typeof w == "string" ? Function(`"use strict";return (${w})`)()(m) : m; + } else + return m; + }), a = (m) => { + if (n.clickHandler) { + n.clickHandler(m); + return; + } + if (o.columns[n.colIndex].mask, o.columns[n.colIndex].modalComponent) { + const w = 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 = w.top + w.height, o.modal.left = w.left, o.modal.width = u.value, o.modal.component = o.columns[n.colIndex].modalComponent, o.modal.componentProps = o.columns[n.colIndex].modalComponentProps; + } + }; + if (n.addNavigation) { + let m = { + ...pr, + "keydown.f2": a, + "keydown.alt.up": a, + "keydown.alt.down": a, + "keydown.alt.left": a, + "keydown.alt.right": a + }; + typeof n.addNavigation == "object" && (m = { + ...m, + ...n.addNavigation + }), hr([ + { + selectors: r, + handlers: m + } + ]); + } + const l = B(() => o.columns[n.colIndex].align || "center"), u = B(() => o.columns[n.colIndex].width || "40ch"); + let c = ""; + const d = () => { + r.value && (c = r.value.innerText); + }, f = () => { + r.value && r.value.innerHTML !== c && (c = r.value.innerText, r.value.dispatchEvent(new Event("change")), s.value = !0, o.columns[n.colIndex].format || o.setCellData(n.rowIndex, n.colIndex, c)); + }, p = (m, w) => w && m === 0 && w > 0 ? `${w}ch` : "inherit", v = { + textAlign: l.value, + width: u.value, + backgroundColor: s.value ? "var(--cell-modified-color)" : "inherit", + fontWeight: s.value ? "bold" : "inherit", + paddingLeft: p(n.colIndex, (t = o.display[n.rowIndex]) == null ? void 0 : t.indent) + }; + return (m, w) => (x(), A("td", { + ref_key: "cell", + ref: r, + "data-colindex": m.colIndex, + "data-rowindex": m.rowIndex, + "data-editable": k(o).columns[m.colIndex].edit, + contenteditable: k(o).columns[m.colIndex].edit, + tabindex: m.tabIndex, + spellcheck: !1, + style: v, + onFocus: d, + onPaste: f, + onBlur: f, + onInput: f, + onClick: a, + onMousedown: a + }, [ + k(o).columns[m.colIndex].cellComponent ? (x(), Se(Bt(k(o).columns[m.colIndex].cellComponent), Ut({ + key: 0, + value: i.value + }, k(o).columns[m.colIndex].cellComponentProps), null, 16, ["value"])) : (x(), A("span", Ic, ce(i.value), 1)) + ], 40, Oc)); + } +}), qe = (e, t) => { + const n = e.__vccOpts || e; + for (const [o, r] of t) + n[o] = r; + return n; +}, xc = /* @__PURE__ */ qe(Pc, [["__scopeId", "data-v-07dfe445"]]), Cc = ["tabindex"], $c = { + key: 0, + tabIndex: -1, + class: "list-index" +}, Nc = /* @__PURE__ */ q({ + __name: "ARow", + props: { + row: {}, + rowIndex: {}, + tableid: {}, + tabIndex: { default: -1 }, + addNavigation: {} + }, + setup(e) { + vo((l) => ({ + "5b18ee03": k(r) + })); + const t = e, n = Z(t.tableid), o = V(null), r = n.numberedRowWidth.value, s = () => n.config.view !== "tree" ? "" : n.display[t.rowIndex].isRoot || n.display[t.rowIndex].isParent ? n.display[t.rowIndex].childrenOpen ? "-" : "+" : "", i = () => n.config.view !== "tree" || n.display[t.rowIndex].isRoot || n.display[t.rowIndex].open, a = (l) => { + n.toggleRowExpand(l); + }; + return t.addNavigation && hr([ + { + selectors: o, + handlers: t.addNavigation + } + ]), (l, u) => lt((x(), A("tr", { + ref_key: "rowEl", + ref: o, + tabindex: l.tabIndex, + class: "table-row" + }, [ + k(n).config.view === "list" ? (x(), A("td", $c, ce(l.rowIndex + 1), 1)) : k(n).config.view === "tree" ? (x(), A("td", { + key: 1, + tabIndex: -1, + class: "tree-index", + onClick: u[0] || (u[0] = (c) => a(l.rowIndex)) + }, ce(s()), 1)) : me(l.$slots, "indexCell", { key: 2 }, void 0, !0), + me(l.$slots, "default", {}, void 0, !0) + ], 8, Cc)), [ + [jt, i()] + ]); + } +}), Rc = /* @__PURE__ */ qe(Nc, [["__scopeId", "data-v-4c71a067"]]); +let tt; +const Ac = new Uint8Array(16); +function Tc() { + if (!tt && (tt = typeof crypto < "u" && crypto.getRandomValues && crypto.getRandomValues.bind(crypto), !tt)) + throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported"); + return tt(Ac); +} +const F = []; +for (let e = 0; e < 256; ++e) + F.push((e + 256).toString(16).slice(1)); +function Dc(e, t = 0) { + return F[e[t + 0]] + F[e[t + 1]] + F[e[t + 2]] + F[e[t + 3]] + "-" + F[e[t + 4]] + F[e[t + 5]] + "-" + F[e[t + 6]] + F[e[t + 7]] + "-" + F[e[t + 8]] + F[e[t + 9]] + "-" + F[e[t + 10]] + F[e[t + 11]] + F[e[t + 12]] + F[e[t + 13]] + F[e[t + 14]] + F[e[t + 15]]; +} +const Vc = typeof crypto < "u" && crypto.randomUUID && crypto.randomUUID.bind(crypto), io = { + randomUUID: Vc +}; +function mr(e, t, n) { + if (io.randomUUID && !t && !e) + return io.randomUUID(); + e = e || {}; + const o = e.random || (e.rng || Tc)(); + 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 Dc(o); +} +class Mc { + constructor(t, n, o, r, s, i) { + this.id = t || mr(), this.rows = o, this.columns = be(n), this.config = be(r), this.table = s || be(this.createTableObject()), this.display = this.createDisplayObject(i), this.modal = be({ visible: !1 }); + } + createTableObject() { + const t = {}; + for (const [n, o] of this.columns.entries()) + for (const [r, s] of this.rows.entries()) + t[`${n}:${r}`] = s[o.name]; + return t; + } + createDisplayObject(t) { + const n = [Object.assign({}, { modified: !1 })]; + if (t && "0:0" in t) + return t; + const o = /* @__PURE__ */ new Set(); + for (let r = this.rows.length - 1; r >= 0; r--) { + const s = this.rows[r]; + s.parent && o.add(s.parent), n[r] = { + childrenOpen: !1, + expanded: !1, + indent: s.indent || null, + isParent: o.has(r), + isRoot: s.parent === null || s.parent === void 0, + modified: !1, + open: s.parent === null || s.parent === void 0, + parent: s.parent + }; + } + return be(n); + } + get zeroColumn() { + return ["list", "tree", "list-expansion"].includes(this.config.view); + } + get numberedRowWidth() { + return B(() => 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 Lc = { key: 0 }, jc = { + class: "atable-header-row", + tabindex: "-1" +}, Bc = { + key: 0, + id: "header-index" +}, Uc = /* @__PURE__ */ q({ + __name: "ATableHeader", + props: { + columns: {}, + config: {}, + tableid: {} + }, + setup(e) { + vo((r) => ({ + "12d06943": k(n) + })); + const t = Z(e.tableid), n = t.numberedRowWidth.value, o = (r) => ({ + minWidth: r.width || "40ch", + textAlign: r.align || "center", + width: t.config.fullWidth ? "auto" : null + }); + return (r, s) => r.columns.length ? (x(), A("thead", Lc, [ + T("tr", jc, [ + k(t).zeroColumn ? (x(), A("th", Bc)) : ke("", !0), + (x(!0), A(Ie, null, Pe(r.columns, (i, a) => (x(), A("th", { + key: a, + tabindex: "-1", + style: ie(o(i)) + }, [ + me(r.$slots, "default", {}, () => [ + go(ce(i.label || String.fromCharCode(a + 97).toUpperCase()), 1) + ], !0) + ], 4))), 128)) + ]) + ])) : ke("", !0); + } +}), Hc = /* @__PURE__ */ qe(Uc, [["__scopeId", "data-v-16e66636"]]), Wc = /* @__PURE__ */ q({ + __name: "ATableModal", + props: { + colIndex: {}, + rowIndex: {}, + tableid: {} + }, + setup(e) { + Z(e.tableid); + const t = (n) => { + n.stopPropagation(); + }; + return (n, o) => (x(), A("div", { + ref: "amodal", + class: "amodal", + tabindex: "-1", + onClick: t, + onInput: t + }, [ + me(n.$slots, "default", {}, void 0, !0) + ], 544)); + } +}), Fc = /* @__PURE__ */ qe(Wc, [["__scopeId", "data-v-10a48b2a"]]), Gc = /* @__PURE__ */ q({ + __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, s = new Mc(n.id, n.columns, r, n.config); + nt(s.id, s), ue( + () => s.rows, + (a) => { + o("update:modelValue", a); + }, + { deep: !0 } + ); + const i = (a) => { + var l; + (l = s.modal.parent) != null && l.contains(a.target) || s.modal.visible && (s.modal.visible = !1); + }; + return window.addEventListener("click", i), window.addEventListener("keydown", (a) => { + if (a.key === "Escape" && s.modal.visible) { + s.modal.visible = !1; + const l = s.modal.parent; + l && Fe().then(() => { + const u = l.dataset.rowindex, c = l.dataset.colindex, d = document.querySelectorAll(`[data-rowindex='${u}'][data-colindex='${c}']`); + d && d[0].focus(); + }); + } + }), (a, l) => (x(), A("table", { + class: "atable", + style: ie({ width: k(s).config.fullWidth ? "100%" : "auto" }) + }, [ + me(a.$slots, "header", { data: k(s) }, () => [ + at(Hc, { + columns: k(s).columns, + config: k(s).config, + tableid: k(s).id + }, null, 8, ["columns", "config", "tableid"]) + ], !0), + T("tbody", null, [ + me(a.$slots, "body", { data: k(s) }, () => [ + (x(!0), A(Ie, null, Pe(k(s).rows, (u, c) => (x(), Se(Rc, { + key: u.id || k(mr)(), + row: u, + rowIndex: c, + tableid: k(s).id + }, { + default: it(() => [ + (x(!0), A(Ie, null, Pe(k(s).columns, (d, f) => (x(), Se(xc, { + key: `${f}:${c}`, + tableid: k(s).id, + col: d, + spellcheck: "false", + rowIndex: c, + colIndex: f + (k(s).zeroColumn ? 0 : -1), + component: d.cellComponent, + style: ie({ + textAlign: (d == null ? void 0 : d.align) || "center", + minWidth: (d == null ? void 0 : d.width) || "40ch", + width: k(s).config.fullWidth ? "auto" : null + }) + }, null, 8, ["tableid", "col", "rowIndex", "colIndex", "component", "style"]))), 128)) + ]), + _: 2 + }, 1032, ["row", "rowIndex", "tableid"]))), 128)) + ], !0) + ]), + me(a.$slots, "footer", { data: k(s) }, void 0, !0), + me(a.$slots, "modal", { data: k(s) }, () => [ + lt(at(Fc, { + colIndex: k(s).modal.colIndex, + rowIndex: k(s).modal.rowIndex, + tableid: k(s).id, + style: ie({ + left: k(s).modal.left + "px", + top: k(s).modal.top + "px", + maxWidth: k(s).modal.width + "px" + }) + }, { + default: it(() => [ + (x(), Se(Bt(k(s).modal.component), Ut({ + key: `${k(s).modal.rowIndex}:${k(s).modal.colIndex}`, + colIndex: k(s).modal.colIndex, + rowIndex: k(s).modal.rowIndex, + tableid: k(s).id + }, k(s).modal.componentProps), null, 16, ["colIndex", "rowIndex", "tableid"])) + ]), + _: 1 + }, 8, ["colIndex", "rowIndex", "tableid", "style"]), [ + [jt, k(s).modal.visible] + ]) + ], !0) + ], 4)); + } +}), zc = /* @__PURE__ */ qe(Gc, [["__scopeId", "data-v-55d8ba05"]]), Qc = /* @__PURE__ */ q({ + __name: "Records", + setup(e) { + const { stonecrop: t, isReady: n } = No(), o = { view: "list" }; + return (r, s) => k(n) ? (x(), Se(k(zc), { + key: 0, + columns: k(t).schema.schema.toArray(), + rows: k(t).store.records, + config: o + }, null, 8, ["columns", "rows"])) : ke("", !0); + } +}), vr = (e) => (lo("data-v-18bfde6e"), e = e(), uo(), e), qc = { class: "tabs" }, Kc = { tabindex: "0" }, Jc = { + 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" +}, Yc = /* @__PURE__ */ vr(() => /* @__PURE__ */ T("g", null, [ + /* @__PURE__ */ T("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 + l-56.64-0.114v150.98C359.32,398.29,355.686,401.923,351.191,401.923z M81.03,385.666h262.033V234.67 + c0-2.162,0.854-4.235,2.39-5.755c1.528-1.52,3.585-2.374,5.739-2.374c0.008,0,0.008,0,0.016,0l45.105,0.089l-79.855-79.863 + c-1.528-1.528-2.382-3.593-2.382-5.747V66.628h-31.498v26.645c0,3.284-1.975,6.251-5.015,7.511 + c-3.032,1.268-6.527,0.569-8.86-1.764l-57.038-57.038l-183.95,183.95l45.203,0.089c4.487,0.008,8.112,3.642,8.112,8.129 + C81.03,234.149,81.03,385.666,81.03,385.666z` + }) +], -1)), Xc = [ + Yc +], Zc = { tabindex: "0" }, el = { style: { width: "11pt" } }, tl = /* @__PURE__ */ vr(() => /* @__PURE__ */ T("g", { transform: "matrix(-0.08088215,0,0,0.08088215,9.8016177,3.1263021e-6)" }, [ + /* @__PURE__ */ T("path", { + d: "M 93.148438,80.832031 C 109.5,57.742188 104.03125,25.769531 80.941406,9.421875 57.851562,-6.925781 25.878906,-1.460938 9.53125,21.632812 -6.816406,44.722656 -1.351562,76.691406 21.742188,93.039062 38.222656,104.70703 60.011719,105.60547 77.394531,95.339844 l 37.769529,37.542966 c 4.07813,4.29297 10.86328,4.46485 15.15625,0.38672 4.29297,-4.07422 4.46485,-10.85937 0.39063,-15.15234 -0.12891,-0.13672 -0.25391,-0.26172 -0.39063,-0.39063 z m -41.839844,3.5 C 33.0625,84.335938 18.269531,69.554688 18.257812,51.308594 18.253906,33.0625 33.035156,18.269531 51.285156,18.261719 c 18.222656,-0.0078 33.007813,14.75 33.042969,32.972656 0.03125,18.25 -14.742187,33.066406 -32.996094,33.097656 -0.0078,0 -0.01172,0 -0.02344,0 z m 0,0", + style: { fill: "#000000", "fill-opacity": "1", "fill-rule": "nonzero", stroke: "none" }, + id: "path2" + }) +], -1)), nl = [ + tl +], ol = /* @__PURE__ */ q({ + __name: "SheetNav", + props: { + breadcrumbs: {} + }, + setup(e) { + const t = e, n = V([]), o = V(!0), r = V(!1), s = V(""), i = V(null), a = B(() => o.value ? "unrotated" : "rotated"); + Lt(() => { + n.value = t.breadcrumbs || []; + }); + const l = () => { + o.value = !o.value; + }, u = async () => { + r.value = !r.value, await Fe(() => { + i.value.focus(); + }); + }, c = (p) => { + p.preventDefault(), p.stopPropagation(); + }, d = async (p) => { + p.preventDefault(), p.stopPropagation(), await u(); + }, f = () => { + }; + return (p, v) => { + const m = Or("router-link"); + return x(), A("footer", null, [ + T("ul", qc, [ + T("li", { + class: "hidebreadcrumbs", + onClick: l, + onKeydown: Ye(l, ["enter"]) + }, [ + T("a", Kc, [ + T("div", { + class: co(a.value) + }, "×", 2) + ]) + ], 32), + T("li", { + class: "hometab", + onClick: f, + onKeydown: Ye(f, ["enter"]), + style: ie({ display: o.value ? "block" : "none" }) + }, [ + at(m, { + to: "/home", + tabindex: "0" + }, { + default: it(() => [ + (x(), A("svg", Jc, Xc)) + ]), + _: 1 + }) + ], 36), + T("li", { + class: "searchtab", + onClick: u, + onKeydown: Ye(u, ["enter"]), + style: ie({ display: o.value ? "block" : "none" }) + }, [ + T("a", Zc, [ + T("span", { + style: ie({ display: r.value ? "none" : "block" }) + }, [ + (x(), A("svg", el, nl)) + ], 4), + lt(T("input", { + "onUpdate:modelValue": v[0] || (v[0] = (w) => s.value = w), + ref_key: "searchinput", + ref: i, + style: ie({ display: r.value ? "block" : "none" }), + onClick: v[1] || (v[1] = (w) => c(w)), + onInput: v[2] || (v[2] = (w) => c(w)), + onBlur: v[3] || (v[3] = (w) => d(w)), + onKeydown: v[4] || (v[4] = Ye((w) => d(w), ["enter"])), + type: "text" + }, null, 36), [ + [Ir, s.value] + ]) + ]) + ], 36), + (x(!0), A(Ie, null, Pe(n.value, (w, O) => (x(), A("li", { + key: O, + style: ie({ display: o.value ? "block" : "none" }) + }, [ + at(m, { + tabindex: "0", + to: w.to + }, { + default: it(() => [ + go(ce(w.title), 1) + ]), + _: 2 + }, 1032, ["to"]) + ], 4))), 128)) + ]) + ]); + }; + } +}); +const rl = /* @__PURE__ */ Gt(ol, [["__scopeId", "data-v-18bfde6e"]]), al = { + install: (e) => { + e.component("ActionSet", Ur), e.component("CommandPalette", Fr), e.component("Doctype", uc), e.component("Records", Qc), e.component("SheetNav", rl); + } +}; +export { + Ur as ActionSet, + Fr as CommandPalette, + uc as Doctype, + Qc as Records, + rl as SheetNav, + al as StonecropDesktop +}; +//# sourceMappingURL=desktop.js.map diff --git a/desktop/dist/desktop.js.map b/desktop/dist/desktop.js.map new file mode 100644 index 00000000..388f7220 --- /dev/null +++ b/desktop/dist/desktop.js.map @@ -0,0 +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 C, computed as M, openBlock as p, createElementBlock as v, createElementVNode as i, withDirectives as _, vModelCheckbox as _e, toDisplayString as w, vShow as S, resolveComponent as be, createBlock as B, withCtx as we, onMounted as ae, onBeforeUnmount as Ce, ref as g, watch as U, unref as O, getCurrentScope as ke, onScopeDispose as Ae, inject as re, nextTick as De, Fragment as L, renderList as q, normalizeStyle as Ee, withModifiers as Ie, normalizeClass as x, createCommentVNode as H, withKeys as F, vModelText as P, resolveDynamicComponent as Me, mergeProps as ie, createTextVNode as Te, renderSlot as $e, createVNode as Se, resolveDirective as Oe } from \"vue\";\nconst Ve = { id: \"checkbox-container\" }, Le = [\"id\", \"readonly\", \"required\"], qe = { id: \"custom-checkbox\" }, xe = [\"for\"], Be = [\"innerHTML\"], He = /* @__PURE__ */ C({\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 n = e, o = t, s = M({\n get() {\n return n.value;\n },\n set(l) {\n o(\"update:value\", l);\n }\n });\n return (l, a) => (p(), v(\"div\", null, [\n i(\"label\", Ve, [\n _(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 [_e, s.value]\n ]),\n i(\"span\", qe, w(s.value), 1)\n ]),\n i(\"label\", {\n for: l.uuid,\n id: \"checkbox-label\"\n }, w(l.label), 9, xe),\n _(i(\"p\", {\n innerHTML: l.validation.errorMessage\n }, null, 8, Be), [\n [S, l.validation.errorMessage]\n ])\n ]));\n }\n});\nconst A = (e, t) => {\n const n = e.__vccOpts || e;\n for (const [o, s] of t)\n n[o] = s;\n return n;\n}, Pe = /* @__PURE__ */ A(He, [[\"__scopeId\", \"data-v-743cd4db\"]]), Fe = /* @__PURE__ */ i(\"div\", null, [\n /* @__PURE__ */ i(\"input\", { type: \"text\" }),\n /* @__PURE__ */ i(\"input\", { type: \"text\" }),\n /* @__PURE__ */ i(\"input\", { type: \"text\" })\n], -1), Re = /* @__PURE__ */ C({\n __name: \"AComboBox\",\n props: [\"event\", \"cellData\", \"tableID\"],\n setup(e) {\n return (t, n) => {\n const o = be(\"ATableModal\");\n return p(), B(o, {\n event: e.event,\n cellData: e.cellData,\n class: \"amodal\"\n }, {\n default: we(() => [\n Fe\n ]),\n _: 1\n }, 8, [\"event\", \"cellData\"]);\n };\n }\n});\nvar W;\nconst ue = typeof window < \"u\", Ue = (e) => typeof e == \"string\", Qe = () => {\n};\nue && (W = window == null ? void 0 : window.navigator) != null && W.userAgent && /iP(ad|hone|od)/.test(window.navigator.userAgent);\nfunction de(e) {\n return typeof e == \"function\" ? e() : O(e);\n}\nfunction Ye(e) {\n return e;\n}\nfunction je(e) {\n return ke() ? (Ae(e), !0) : !1;\n}\nfunction R(e) {\n var t;\n const n = de(e);\n return (t = n == null ? void 0 : n.$el) != null ? t : n;\n}\nconst ce = ue ? window : void 0;\nfunction Ne(...e) {\n let t, n, o, s;\n if (Ue(e[0]) || Array.isArray(e[0]) ? ([n, o, s] = e, t = ce) : [t, n, o, s] = e, !t)\n return Qe;\n Array.isArray(n) || (n = [n]), Array.isArray(o) || (o = [o]);\n const l = [], a = () => {\n l.forEach((d) => d()), l.length = 0;\n }, r = (d, y, b, m) => (d.addEventListener(y, b, m), () => d.removeEventListener(y, b, m)), f = U(() => [R(t), de(s)], ([d, y]) => {\n a(), d && l.push(...n.flatMap((b) => o.map((m) => r(d, b, m, y))));\n }, { immediate: !0, flush: \"post\" }), u = () => {\n f(), a();\n };\n return je(u), u;\n}\nconst z = typeof globalThis < \"u\" ? globalThis : typeof window < \"u\" ? window : typeof global < \"u\" ? global : typeof self < \"u\" ? self : {}, G = \"__vueuse_ssr_handlers__\";\nz[G] = z[G] || {};\nfunction We(e, { window: t = ce, scrollTarget: n } = {}) {\n const o = g(!1), s = () => {\n if (!t)\n return;\n const l = t.document, a = R(e);\n if (!a)\n o.value = !1;\n else {\n const r = a.getBoundingClientRect();\n o.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 U(() => R(e), () => s(), { immediate: !0, flush: \"post\" }), t && Ne(n || t, \"scroll\", s, {\n capture: !1,\n passive: !0\n }), o;\n}\nvar K;\n(function(e) {\n e.UP = \"UP\", e.RIGHT = \"RIGHT\", e.DOWN = \"DOWN\", e.LEFT = \"LEFT\", e.NONE = \"NONE\";\n})(K || (K = {}));\nvar ze = Object.defineProperty, J = Object.getOwnPropertySymbols, Ge = Object.prototype.hasOwnProperty, Ke = Object.prototype.propertyIsEnumerable, X = (e, t, n) => t in e ? ze(e, t, { enumerable: !0, configurable: !0, writable: !0, value: n }) : e[t] = n, Je = (e, t) => {\n for (var n in t || (t = {}))\n Ge.call(t, n) && X(e, n, t[n]);\n if (J)\n for (var n of J(t))\n Ke.call(t, n) && X(e, n, t[n]);\n return e;\n};\nconst Xe = {\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};\nJe({\n linear: Ye\n}, Xe);\nconst D = (e) => {\n let t = We(e).value;\n return t = t && e.offsetHeight > 0, t;\n}, E = (e) => e.tabIndex >= 0, Z = (e) => {\n const t = e.target;\n return Q(t);\n}, Q = (e) => {\n var t;\n let n;\n if (e instanceof HTMLTableCellElement) {\n const o = (t = e.parentElement) == null ? void 0 : t.previousElementSibling;\n if (o) {\n const s = Array.from(o.children)[e.cellIndex];\n s && (n = s);\n }\n } else if (e instanceof HTMLTableRowElement) {\n const o = e.previousElementSibling;\n o && (n = o);\n }\n return n && (!E(n) || !D(n)) ? Q(n) : n;\n}, Ze = (e) => {\n var t;\n const n = e.target;\n let o;\n if (n instanceof HTMLTableCellElement) {\n const s = (t = n.parentElement) == null ? void 0 : t.parentElement;\n if (s) {\n const l = s.firstElementChild.children[n.cellIndex];\n l && (o = l);\n }\n } else if (n instanceof HTMLTableRowElement) {\n const s = n.parentElement;\n if (s) {\n const l = s.firstElementChild;\n l && (o = l);\n }\n }\n return o && (!E(o) || !D(o)) ? Y(o) : o;\n}, ee = (e) => {\n const t = e.target;\n return Y(t);\n}, Y = (e) => {\n var t;\n let n;\n if (e instanceof HTMLTableCellElement) {\n const o = (t = e.parentElement) == null ? void 0 : t.nextElementSibling;\n if (o) {\n const s = Array.from(o.children)[e.cellIndex];\n s && (n = s);\n }\n } else if (e instanceof HTMLTableRowElement) {\n const o = e.nextElementSibling;\n o && (n = o);\n }\n return n && (!E(n) || !D(n)) ? Y(n) : n;\n}, et = (e) => {\n var t;\n const n = e.target;\n let o;\n if (n instanceof HTMLTableCellElement) {\n const s = (t = n.parentElement) == null ? void 0 : t.parentElement;\n if (s) {\n const l = s.lastElementChild.children[n.cellIndex];\n l && (o = l);\n }\n } else if (n instanceof HTMLTableRowElement) {\n const s = n.parentElement;\n if (s) {\n const l = s.lastElementChild;\n l && (o = l);\n }\n }\n return o && (!E(o) || !D(o)) ? Q(o) : o;\n}, te = (e) => {\n const t = e.target;\n return j(t);\n}, j = (e) => {\n var t;\n let n;\n if (e.previousElementSibling)\n n = e.previousElementSibling;\n else {\n const o = (t = e.parentElement) == null ? void 0 : t.previousElementSibling;\n n = o == null ? void 0 : o.lastElementChild;\n }\n return n && (!E(n) || !D(n)) ? j(n) : n;\n}, ne = (e) => {\n const t = e.target;\n return N(t);\n}, N = (e) => {\n var t;\n let n;\n if (e.nextElementSibling)\n n = e.nextElementSibling;\n else {\n const o = (t = e.parentElement) == null ? void 0 : t.nextElementSibling;\n n = o == null ? void 0 : o.firstElementChild;\n }\n return n && (!E(n) || !D(n)) ? N(n) : n;\n}, oe = (e) => {\n const t = e.target.parentElement.firstElementChild;\n return t && (!E(t) || !D(t)) ? N(t) : t;\n}, le = (e) => {\n const t = e.target.parentElement.lastElementChild;\n return t && (!E(t) || !D(t)) ? j(t) : t;\n}, V = [\"alt\", \"control\", \"shift\", \"meta\"], tt = {\n ArrowUp: \"up\",\n ArrowDown: \"down\",\n ArrowLeft: \"left\",\n ArrowRight: \"right\"\n}, pe = {\n \"keydown.up\": (e) => {\n const t = Z(e);\n t && (e.preventDefault(), e.stopPropagation(), t.focus());\n },\n \"keydown.down\": (e) => {\n const t = ee(e);\n t && (e.preventDefault(), e.stopPropagation(), t.focus());\n },\n \"keydown.left\": (e) => {\n const t = te(e);\n e.preventDefault(), e.stopPropagation(), t && t.focus();\n },\n \"keydown.right\": (e) => {\n const t = ne(e);\n e.preventDefault(), e.stopPropagation(), t && t.focus();\n },\n \"keydown.control.up\": (e) => {\n const t = Ze(e);\n t && (e.preventDefault(), e.stopPropagation(), t.focus());\n },\n \"keydown.control.down\": (e) => {\n const t = et(e);\n t && (e.preventDefault(), e.stopPropagation(), t.focus());\n },\n \"keydown.control.left\": (e) => {\n const t = oe(e);\n t && (e.preventDefault(), e.stopPropagation(), t.focus());\n },\n \"keydown.control.right\": (e) => {\n const t = le(e);\n t && (e.preventDefault(), e.stopPropagation(), t.focus());\n },\n \"keydown.end\": (e) => {\n const t = le(e);\n t && (e.preventDefault(), e.stopPropagation(), t.focus());\n },\n \"keydown.enter\": (e) => {\n if (e.target instanceof HTMLTableCellElement) {\n e.preventDefault(), e.stopPropagation();\n const t = ee(e);\n t && t.focus();\n }\n },\n \"keydown.shift.enter\": (e) => {\n if (e.target instanceof HTMLTableCellElement) {\n e.preventDefault(), e.stopPropagation();\n const t = Z(e);\n t && t.focus();\n }\n },\n \"keydown.home\": (e) => {\n const t = oe(e);\n t && (e.preventDefault(), e.stopPropagation(), t.focus());\n },\n \"keydown.tab\": (e) => {\n const t = ne(e);\n t && (e.preventDefault(), e.stopPropagation(), t.focus());\n },\n \"keydown.shift.tab\": (e) => {\n const t = te(e);\n t && (e.preventDefault(), e.stopPropagation(), t.focus());\n }\n};\nfunction nt(e) {\n const t = (o) => {\n let s = null;\n o.parent && (typeof o.parent == \"string\" ? s = document.querySelector(o.parent) : o.parent instanceof Element ? s = o.parent : s = o.parent.value);\n let l = [];\n if (o.selectors)\n if (typeof o.selectors == \"string\")\n l = s ? Array.from(s.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 a of o.selectors.value)\n a instanceof Element ? l.push(a) : l.push(a.$el);\n else\n l.push(o.selectors.value);\n else\n l = Array.from(s.children).filter((a) => E(a) && D(a));\n return l;\n }, n = (o) => (s) => {\n const l = tt[s.key] || s.key.toLowerCase();\n if (V.includes(l))\n return;\n const a = o.handlers || pe;\n for (const r of Object.keys(a)) {\n const [f, ...u] = r.split(\".\");\n if (f === \"keydown\" && u.includes(l)) {\n const d = a[r], y = u.filter((m) => V.includes(m)), b = V.some((m) => {\n const $ = m.charAt(0).toUpperCase() + m.slice(1);\n return s.getModifierState($);\n });\n if (y.length > 0) {\n if (b) {\n for (const m of V)\n if (u.includes(m)) {\n const $ = m.charAt(0).toUpperCase() + m.slice(1);\n s.getModifierState($) && d(s);\n }\n }\n } else\n b || d(s);\n }\n }\n };\n ae(() => {\n for (const o of e) {\n const s = t(o);\n for (const l of s)\n l.addEventListener(\"keydown\", n(o));\n }\n }), Ce(() => {\n for (const o of e) {\n const s = t(o);\n for (const l of s)\n l.removeEventListener(\"keydown\", n(o));\n }\n });\n}\nconst ot = [\"event\", \"colIndex\", \"rowIndex\", \"tableid\"], lt = { colspan: \"5\" }, st = [\"onClick\"], at = 6, I = 7, rt = /* @__PURE__ */ C({\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, n = re(t.tableid), o = /* @__PURE__ */ new Date(), s = g(), l = g(), a = g(), r = g([]);\n ae(async () => {\n let c = n.cellData(t.colIndex, t.rowIndex);\n c ? (c instanceof Date || (c = new Date(c)), s.value = c, l.value = s.value.getMonth(), a.value = s.value.getFullYear()) : (l.value = o.getMonth(), a.value = o.getFullYear()), f(), 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 }), U([l, a], () => {\n f();\n });\n const f = () => {\n r.value = [];\n const c = new Date(a.value, l.value, 1), T = c.getDay(), h = c.setDate(c.getDate() - T);\n for (let k of Array(43).keys())\n r.value.push(h + k * 864e5);\n }, u = () => {\n a.value -= 1;\n }, d = () => {\n a.value += 1;\n }, y = () => {\n l.value == 0 ? (l.value = 11, u()) : l.value -= 1;\n }, b = () => {\n l.value == 11 ? (l.value = 0, d()) : l.value += 1;\n }, m = (c) => {\n if (l.value === o.getMonth())\n return o.toDateString() === new Date(c).toDateString();\n }, $ = (c) => new Date(c).toDateString() === new Date(s.value).toDateString(), ve = (c, T) => {\n s.value = new Date(r.value[T]), he();\n }, he = () => {\n n.setCellData(t.rowIndex, t.colIndex, s.value.getTime());\n }, ye = M(() => new Date(a.value, l.value, 1).toLocaleDateString(void 0, {\n year: \"numeric\",\n month: \"long\"\n }));\n return nt([\n {\n parent: \"table.adate\",\n selectors: \"td\",\n handlers: {\n ...pe,\n \"keydown.pageup\": y,\n \"keydown.shift.pageup\": u,\n \"keydown.pagedown\": b,\n \"keydown.shift.pagedown\": d\n }\n }\n ]), (c, T) => c.readonly ? H(\"\", !0) : (p(), v(\"div\", {\n key: 0,\n event: c.event,\n colIndex: c.colIndex,\n rowIndex: c.rowIndex,\n tableid: c.tableid,\n class: \"adate\",\n tabindex: \"0\",\n ref: \"adatepicker\"\n }, [\n i(\"table\", null, [\n i(\"tr\", null, [\n i(\"td\", {\n onClick: y,\n tabindex: -1\n }, \"<\"),\n i(\"th\", lt, w(ye.value), 1),\n i(\"td\", {\n onClick: b,\n tabindex: -1\n }, \">\")\n ]),\n (p(), v(L, null, q(at, (h) => i(\"tr\", { key: h }, [\n (p(), v(L, null, q(I, (k) => i(\"td\", {\n key: (h - 1) * I + k,\n contenteditable: !1,\n spellcheck: !1,\n tabindex: 0,\n style: Ee({\n border: $(r.value[(h - 1) * I + k]) ? \"2px solid var(--focus-cell-outline)\" : \"none\",\n borderBottomColor: m(r.value[(h - 1) * I + k]) ? \"var(--focus-cell-outline)\" : \"none\"\n }),\n onClick: Ie((ge) => ve(ge, (h - 1) * I + k), [\"prevent\", \"stop\"]),\n class: x({\n todaysdate: m(r.value[(h - 1) * I + k]),\n selecteddate: $(r.value[(h - 1) * I + k])\n })\n }, w(new Date(r.value[(h - 1) * I + k]).getDate()), 15, st)), 64))\n ])), 64))\n ])\n ], 8, ot));\n }\n});\nconst it = /* @__PURE__ */ A(rt, [[\"__scopeId\", \"data-v-169f1184\"]]), ut = C({\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});\nconst dt = { class: \"input-wrapper\" }, ct = {\n id: \"autocomplete-results\",\n class: \"autocomplete-results\"\n}, pt = {\n key: 0,\n class: \"loading autocomplete-result\"\n}, ft = [\"onClick\"], mt = { key: 0 };\nfunction vt(e, t, n, o, s, l) {\n return p(), v(\"div\", {\n class: x([\"autocomplete\", { isOpen: e.isOpen }])\n }, [\n i(\"div\", dt, [\n _(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] = F((...a) => e.onArrowDown && e.onArrowDown(...a), [\"down\"])),\n t[4] || (t[4] = F((...a) => e.onArrowUp && e.onArrowUp(...a), [\"up\"])),\n t[5] || (t[5] = F((...a) => e.onEnter && e.onEnter(...a), [\"enter\"]))\n ]\n }, null, 544), [\n [P, e.search]\n ]),\n _(i(\"ul\", ct, [\n e.isLoading ? (p(), v(\"li\", pt, \"Loading results...\")) : (p(!0), v(L, { key: 1 }, q(e.results, (a, r) => (p(), v(\"li\", {\n key: r,\n onClick: (f) => e.setResult(a),\n class: x([\"autocomplete-result\", { \"is-active\": r === e.arrowCounter }])\n }, w(a), 11, ft))), 128))\n ], 512), [\n [S, e.isOpen]\n ]),\n e.label ? (p(), v(\"label\", mt, w(e.label), 1)) : H(\"\", !0)\n ])\n ], 2);\n}\nconst fe = /* @__PURE__ */ A(ut, [[\"render\", vt], [\"__scopeId\", \"data-v-35e27f15\"]]), ht = /* @__PURE__ */ C({\n __name: \"CollapseButton\",\n props: {\n collapsed: { type: Boolean }\n },\n setup(e) {\n return (t, n) => (p(), v(\"button\", {\n class: x([\"collapse-button\", t.collapsed ? \"rotated\" : \"unrotated\"])\n }, \"×\", 2));\n }\n});\nconst yt = /* @__PURE__ */ A(ht, [[\"__scopeId\", \"data-v-6f1c1b45\"]]), gt = /* @__PURE__ */ C({\n __name: \"AForm\",\n props: {\n modelValue: {},\n data: {},\n readonly: { type: Boolean }\n },\n emits: [\"update:modelValue\"],\n setup(e, { emit: t }) {\n const n = e, o = t, s = g(n.data || {}), l = (r) => {\n let f = {};\n for (const [u, d] of Object.entries(r))\n [\"component\", \"fieldtype\"].includes(u) || (f[u] = d), u === \"rows\" && d && d.length === 0 && (f.rows = s.value[r.fieldname]);\n return f;\n }, a = M({\n get: () => n.modelValue.map((r, f) => M({\n get() {\n return r.value;\n },\n set: (u) => {\n n.modelValue[f].value = u, o(\"update:modelValue\", n.modelValue);\n }\n })),\n set: () => {\n }\n });\n return (r, f) => (p(), v(\"form\", null, [\n (p(!0), v(L, null, q(r.modelValue, (u, d) => (p(), B(Me(u.component), ie({\n key: d,\n schema: u,\n modelValue: a.value[d].value,\n \"onUpdate:modelValue\": (y) => a.value[d].value = y,\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});\nconst me = /* @__PURE__ */ A(gt, [[\"__scopeId\", \"data-v-82492bb4\"]]), _t = /* @__PURE__ */ C({\n __name: \"AFieldset\",\n props: {\n schema: {},\n label: {},\n collapsible: { type: Boolean },\n data: {}\n },\n setup(e) {\n const t = e, n = g(t.data || []);\n let o = g(!1), s = g(t.collapsible);\n const l = g(t.schema);\n function a(r) {\n r.preventDefault(), s.value && (o.value = !o.value);\n }\n return (r, f) => (p(), v(\"fieldset\", null, [\n i(\"legend\", {\n onClick: a,\n onSubmit: a\n }, [\n Te(w(r.label) + \" \", 1),\n O(s) ? (p(), B(yt, {\n key: 0,\n collapsed: O(o)\n }, null, 8, [\"collapsed\"])) : H(\"\", !0)\n ], 32),\n $e(r.$slots, \"default\", { collapsed: O(o) }, () => [\n _(Se(me, {\n modelValue: l.value,\n \"onUpdate:modelValue\": f[0] || (f[0] = (u) => l.value = u),\n data: n.value\n }, null, 8, [\"modelValue\", \"data\"]), [\n [S, !O(o)]\n ])\n ], !0)\n ]));\n }\n});\nconst bt = /* @__PURE__ */ A(_t, [[\"__scopeId\", \"data-v-cad9b578\"]]), wt = [\"id\", \"disabled\", \"required\"], Ct = [\"for\"], kt = [\"innerHTML\"], At = /* @__PURE__ */ C({\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 n = e, o = t, s = M({\n get: () => n.modelValue,\n set: (l) => {\n o(\"update:modelValue\", l);\n }\n });\n return (l, a) => (p(), v(\"div\", null, [\n _(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 [P, s.value]\n ]),\n i(\"label\", { for: l.uuid }, w(l.label), 9, Ct),\n _(i(\"p\", {\n innerHTML: l.validation.errorMessage\n }, null, 8, kt), [\n [S, l.validation.errorMessage]\n ])\n ]));\n }\n});\nconst Dt = /* @__PURE__ */ A(At, [[\"__scopeId\", \"data-v-be33e6c4\"]]), Et = { class: \"input-group\" }, It = [\"for\"], Mt = [\"id\", \"disabled\", \"required\"], Tt = [\"innerHTML\"], $t = /* @__PURE__ */ C({\n __name: \"AQuantity\",\n props: {\n label: {},\n modelValue: { default: () => ({ quantity: 0 }) },\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 n = e, o = t;\n M(() => n.modelValue.quantity * n.modelValue.conversionFactor);\n const s = M({\n get: () => n.modelValue,\n set: (l) => {\n o(\"update:modelValue\", l);\n }\n });\n return (l, a) => (p(), v(\"div\", Et, [\n i(\"label\", { for: l.uuid }, w(l.label), 9, It),\n _(i(\"input\", ie({\n \"onUpdate:modelValue\": a[0] || (a[0] = (r) => s.value.quantity = r),\n type: \"number\",\n id: l.uuid,\n disabled: l.readonly,\n required: l.required\n }, s.value), null, 16, Mt), [\n [P, s.value.quantity]\n ]),\n s.value.uom ? (p(), B(fe, {\n key: 0,\n modelValue: s.value.uom,\n \"onUpdate:modelValue\": a[1] || (a[1] = (r) => s.value.uom = r),\n label: \"\",\n items: s.value.uoms,\n class: \"input-group-append\"\n }, null, 8, [\"modelValue\", \"items\"])) : H(\"\", !0),\n _(i(\"p\", {\n innerHTML: l.validation.errorMessage\n }, null, 8, Tt), [\n [S, l.validation.errorMessage]\n ])\n ]));\n }\n});\nconst St = /* @__PURE__ */ A($t, [[\"__scopeId\", \"data-v-45134904\"]]), se = {\n date: \"##/##/####\",\n datetime: \"####/##/## ##:##\",\n time: \"##:##\",\n fulltime: \"##:##:##\",\n phone: \"(###) ### - ####\",\n card: \"#### #### #### ####\"\n};\nfunction Ot(e) {\n try {\n return Function(`\"use strict\";return (${e})`)();\n } catch {\n }\n}\nfunction Vt(e) {\n var n;\n let t = e.value;\n if (t) {\n const o = Ot(t);\n if (o) {\n const s = e.instance.locale;\n t = o(s);\n }\n } else {\n const s = (n = e.instance.schema.fieldtype) == null ? void 0 : n.toLowerCase();\n s && se[s] && (t = se[s]);\n }\n return t;\n}\nfunction Lt(e, t) {\n t || (t = \"#\");\n let n = e;\n const o = [t, \"/\", \"-\", \"(\", \")\", \" \"];\n for (const s of o)\n n = n.replaceAll(s, \"\");\n return n;\n}\nfunction qt(e, t, n) {\n n || (n = \"#\");\n let o = t;\n for (const s of e) {\n const l = o.indexOf(n);\n if (l !== -1) {\n const a = o.substring(0, l), r = o.substring(l + 1);\n o = a + s + r;\n }\n }\n return o.slice(0, t.length);\n}\nfunction xt(e, t) {\n const n = Vt(t);\n if (!n)\n return;\n const o = \"#\", s = e.value, l = Lt(s, o);\n if (l) {\n const a = qt(l, n, o);\n t.instance.maskFilled && (t.instance.maskFilled = !a.includes(o)), e.value = a;\n } else\n e.value = n;\n}\nconst Bt = C({\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 n = g(!1), o = re(\"locale\", \"\");\n return { inputText: M({\n get() {\n return e.modelValue;\n },\n set(l) {\n t.emit(\"update:modelValue\", l);\n }\n }), locale: o, maskFilled: n };\n },\n directives: {\n mask: xt\n }\n});\nconst Ht = [\"id\", \"disabled\", \"maxlength\", \"required\"], Pt = [\"for\"], Ft = [\"innerHTML\"];\nfunction Rt(e, t, n, o, s, l) {\n const a = Oe(\"mask\");\n return p(), v(\"div\", null, [\n _(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, Ht), [\n [P, e.inputText],\n [a, e.mask]\n ]),\n i(\"label\", { for: e.uuid }, w(e.label), 9, Pt),\n _(i(\"p\", {\n innerHTML: e.validation.errorMessage\n }, null, 8, Ft), [\n [S, e.validation.errorMessage]\n ])\n ]);\n}\nconst Ut = /* @__PURE__ */ A(Bt, [[\"render\", Rt], [\"__scopeId\", \"data-v-76dba9b8\"]]);\nfunction Yt(e) {\n e.component(\"ACheckbox\", Pe), e.component(\"ACombobox\", Re), e.component(\"ADate\", it), e.component(\"ADropdown\", fe), e.component(\"AFieldset\", bt), e.component(\"AForm\", me), e.component(\"ANumericInput\", Dt), e.component(\"AQuantity\", St), e.component(\"ATextInput\", Ut);\n}\nexport {\n Pe as ACheckbox,\n Re as AComboBox,\n it as ADate,\n fe as ADropdown,\n bt as AFieldset,\n me as AForm,\n Dt as ANumericInput,\n St as AQuantity,\n Ut as ATextInput,\n Yt 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 router3 = this;\n app.component(\"RouterLink\", RouterLink);\n app.component(\"RouterView\", RouterView);\n app.config.globalProperties.$router = router3;\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, router3);\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, router3, 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 _e, ref as E, watch as j, unref as r, getCurrentScope as Ie, onScopeDispose as Ee, defineComponent as k, inject as O, computed as S, openBlock as m, createElementBlock as b, createBlock as P, resolveDynamicComponent as ie, mergeProps as W, toDisplayString as $, Fragment as L, createElementVNode as T, renderSlot as y, createCommentVNode as M, useCssVars as de, withDirectives as ce, vShow as ue, reactive as A, renderList as N, normalizeStyle as H, createTextVNode as ke, provide as Ce, nextTick as Ae, createVNode as z, withCtx as G } from \"vue\";\nvar J;\nconst pe = typeof window < \"u\", Te = (t) => typeof t == \"string\", $e = () => {\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 Ie() ? (Ee(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 Re(...t) {\n let e, n, o, a;\n if (Te(t[0]) || Array.isArray(t[0]) ? ([n, o, a] = t, e = me) : [e, n, o, a] = t, !e)\n return $e;\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 Se(t, { window: e = me, scrollTarget: n } = {}) {\n const o = E(!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 && Re(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 = Se(t).value;\n return e = e && t.offsetHeight > 0, e;\n}, _ = (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 && (!_(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 && (!_(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 && (!_(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 && (!_(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 && (!_(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 && (!_(n) || !x(n)) ? F(n) : n;\n}, ae = (t) => {\n const e = t.target.parentElement.firstElementChild;\n return e && (!_(e) || !x(e)) ? F(e) : e;\n}, re = (t) => {\n const e = t.target.parentElement.lastElementChild;\n return e && (!_(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) => _(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 I = h.charAt(0).toUpperCase() + h.slice(1);\n return a.getModifierState(I);\n });\n if (c.length > 0) {\n if (v) {\n for (const h of D)\n if (p.includes(h)) {\n const I = h.charAt(0).toUpperCase() + h.slice(1);\n a.getModifierState(I) && 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 }), _e(() => {\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__ */ k({\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 I;\n const e = t, n = O(e.tableid), o = E(null);\n let a = E(!1);\n const l = S(() => {\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 = S(() => n.columns[e.colIndex].align || \"center\"), d = S(() => 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, (I = n.display[e.rowIndex]) == null ? void 0 : I.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, $(l.value), 1))\n ], 40, Ve));\n }\n});\nconst C = (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__ */ C(Qe, [[\"__scopeId\", \"data-v-07dfe445\"]]), Fe = [\"tabindex\"], qe = [\"tabindex\"], ze = [\"colspan\"], Ge = /* @__PURE__ */ k({\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 = E(null), a = E(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 T(\"tr\", W(s.$attrs, {\n ref_key: \"rowEl\",\n ref: o,\n tabindex: s.tabIndex,\n class: \"expandable-row\"\n }), [\n T(\"td\", {\n tabIndex: -1,\n onClick: i[0] || (i[0] = (d) => r(n).toggleRowExpand(s.rowIndex)),\n class: \"row-index\"\n }, $(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 T(\"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});\nconst Je = /* @__PURE__ */ C(Ge, [[\"__scopeId\", \"data-v-b2e2ed2d\"]]), Xe = [\"tabindex\"], Ye = {\n key: 0,\n tabIndex: -1,\n class: \"list-index\"\n}, Ze = /* @__PURE__ */ k({\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 = E(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, $(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 }, $(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});\nconst be = /* @__PURE__ */ C(Ze, [[\"__scopeId\", \"data-v-4c71a067\"]]);\nlet R;\nconst Ke = new Uint8Array(16);\nfunction et() {\n if (!R && (R = typeof crypto < \"u\" && crypto.getRandomValues && crypto.getRandomValues.bind(crypto), !R))\n throw new Error(\"crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported\");\n return R(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 = A(n), this.config = A(a), this.table = l || A(this.createTableObject()), this.display = this.createDisplayObject(s), this.modal = A({ 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 A(n);\n }\n get zeroColumn() {\n return [\"list\", \"tree\", \"list-expansion\"].includes(this.config.view);\n }\n get numberedRowWidth() {\n return S(() => 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__ */ k({\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 T(\"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 ke($(i.label || String.fromCharCode(d + 97).toUpperCase()), 1)\n ], !0)\n ], 4))), 128))\n ])\n ])) : M(\"\", !0);\n }\n});\nconst ve = /* @__PURE__ */ C(st, [[\"__scopeId\", \"data-v-16e66636\"]]), it = /* @__PURE__ */ k({\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});\nconst ye = /* @__PURE__ */ C(it, [[\"__scopeId\", \"data-v-10a48b2a\"]]), dt = /* @__PURE__ */ k({\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 Ce(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 && Ae().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 T(\"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});\nconst ct = /* @__PURE__ */ C(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","A","s","W","ue","Ye","z","G","K","ze","J","Ge","Ke","X","Je","Xe","C","gt","g","l","r","f","d","a","M","p","v","L","q","B","Me","ie","y","me","se","Ot","Vt","n","t","Lt","qt","xt","re","NotImplementedError","message","Stonecrop","registry","store","schema","workflow","actions","doctype","doctypeRegistry","filters","data","id","action","initialState","action2","isVue2","set","target","key","val","del","getDevtoolsGlobalHook","getTarget","isProxyAvailable","HOOK_SETUP","HOOK_PLUGIN_SETTINGS_SET","supported","perf","isPerformanceSupported","_a","now$1","ApiProxy","plugin","hook","defaultSettings","item","localSettingsSaveId","currentSettings","raw","value","pluginId","_target","prop","args","resolve","setupDevtoolsPlugin","pluginDescriptor","setupFn","descriptor","enableProxy","proxy","activePinia","setActivePinia","pinia2","piniaSymbol","isPlainObject","o","MutationType","MutationType2","IS_CLIENT","USE_DEVTOOLS","_global","bom","blob","autoBom","download","url","name","opts","xhr","saveAs","corsEnabled","click","node","evt","_navigator","isMacOSWebView","downloadSaveAs","msSaveAs","fileSaverSaveAs","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","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","router3","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","u","h","_a2","pinia","newSchema","fieldValue","pe","Te","$e","fe","Oe","De","Ie","Ee","U","Re","c","j","Y","Se","E","Z","Pe","He","Le","ee","Ne","x","_","te","V","Ue","ne","je","oe","Q","le","F","ae","D","We","we","I","xe","_e","Ve","Be","Qe","O","S","P","$","he","Ze","de","ce","be","R","et","w","tt","nt","ge","ot","lt","at","rt","st","T","N","H","ke","ve","it","ye","dt","Ce","Ae","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 new file mode 100644 index 00000000..0cd577fb --- /dev/null +++ b/desktop/dist/desktop.umd.cjs @@ -0,0 +1,45 @@ +(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))}}),Zi="",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 At;typeof window<"u"&&(At=window==null?void 0:window.navigator)!=null&&At.userAgent&&/iP(ad|hone|od)/.test(window.navigator.userAgent);function Jo(e){return e}const Tt=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},Dt="__vueuse_ssr_handlers__";Tt[Dt]=Tt[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=Ko(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))]))}}),[["__scopeId","data-v-82492bb4"]]),Lt={date:"##/##/####",datetime:"####/##/## ##:##",time:"##:##",fulltime:"##:##:##",phone:"(###) ### - ####",card:"#### #### #### ####"};function nr(e){try{return Function(`"use strict";return (${e})`)()}catch{}}function or(e){var t;let n=e.value;if(n){const o=nr(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 rr(e,t){t||(t="#");let n=e;const o=[t,"/","-","(",")"," "];for(const r of o)n=n.replaceAll(r,"");return n}function sr(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 ar(e,t){const n=or(t);if(!n)return;const o="#",r=e.value,a=rr(r,o);if(a){const c=sr(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:ar}});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 _e{constructor(t,n,o,r,a){if(this.name="Stonecrop",_e._root)return _e._root;_e._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 ir(){return Ut().__VUE_DEVTOOLS_GLOBAL_HOOK__}function Ut(){return typeof navigator<"u"&&typeof window<"u"?window:typeof global<"u"?global:{}}const cr=typeof Proxy=="function",lr="devtools-plugin:setup",ur="plugin:settings:set";let pe,Ke;function dr(){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 fr(){return dr()?Ke.now():Date.now()}class pr{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 fr()}},n&&n.on(ur,(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=ir(),a=cr&&n.enableEarlyProxy;if(r&&(o.__VUE_DEVTOOLS_PLUGIN_API_AVAILABLE__||!a))r.emit(lr,e,t);else{const c=a?new pr(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 + */let ve;const be=e=>ve=e,Ht=process.env.NODE_ENV!=="production"?Symbol("pinia"):Symbol();function ce(e){return e&&typeof e=="object"&&Object.prototype.toString.call(e)==="[object Object]"&&typeof e.toJSON!="function"}var J;(function(e){e.direct="direct",e.patchObject="patch object",e.patchFunction="patch function"})(J||(J={}));const Re=typeof window<"u",Ee=(process.env.NODE_ENV!=="production"||!1)&&process.env.NODE_ENV!=="test"&&Re,Ft=(()=>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})();function hr(e,{autoBom:t=!1}={}){return t&&/^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(e.type)?new Blob([String.fromCharCode(65279),e],{type:e.type}):e}function Ye(e,t,n){const o=new XMLHttpRequest;o.open("GET",e),o.responseType="blob",o.onload=function(){Gt(o.response,t,n)},o.onerror=function(){console.error("could not download file")},o.send()}function Wt(e){const t=new XMLHttpRequest;t.open("HEAD",e,!1);try{t.send()}catch{}return t.status>=200&&t.status<=299}function Ae(e){try{e.dispatchEvent(new MouseEvent("click"))}catch{const n=document.createEvent("MouseEvents");n.initMouseEvent("click",!0,!0,window,0,0,0,80,20,!1,!1,!1,!1,0,null),e.dispatchEvent(n)}}const Te=typeof navigator=="object"?navigator:{userAgent:""},zt=(()=>/Macintosh/.test(Te.userAgent)&&/AppleWebKit/.test(Te.userAgent)&&!/Safari/.test(Te.userAgent))(),Gt=Re?typeof HTMLAnchorElement<"u"&&"download"in HTMLAnchorElement.prototype&&!zt?mr:"msSaveOrOpenBlob"in Te?gr:yr:()=>{};function mr(e,t="download",n){const o=document.createElement("a");o.download=t,o.rel="noopener",typeof e=="string"?(o.href=e,o.origin!==location.origin?Wt(o.href)?Ye(e,t,n):(o.target="_blank",Ae(o)):Ae(o)):(o.href=URL.createObjectURL(e),setTimeout(function(){URL.revokeObjectURL(o.href)},4e4),setTimeout(function(){Ae(o)},0))}function gr(e,t="download",n){if(typeof e=="string")if(Wt(e))Ye(e,t,n);else{const o=document.createElement("a");o.href=e,o.target="_blank",setTimeout(function(){Ae(o)})}else navigator.msSaveOrOpenBlob(hr(e,n),t)}function yr(e,t,n,o){if(o=o||open("","_blank"),o&&(o.document.title=o.document.body.innerText="downloading..."),typeof e=="string")return Ye(e,t,n);const r=e.type==="application/octet-stream",a=/constructor/i.test(String(Ft.HTMLElement))||"safari"in Ft,c=/CriOS\/[\d]+/.test(navigator.userAgent);if((c||r&&a||zt)&&typeof FileReader<"u"){const i=new FileReader;i.onloadend=function(){let u=i.result;if(typeof u!="string")throw o=null,new Error("Wrong reader.result type");u=c?u:u.replace(/^data:[^;]*;/,"data:attachment/file;"),o?o.location.href=u:location.assign(u),o=null},i.readAsDataURL(e)}else{const i=URL.createObjectURL(e);o?o.location.assign(i):location.href=i,o=null,setTimeout(function(){URL.revokeObjectURL(i)},4e4)}}function B(e,t){const n="🍍 "+e;typeof __VUE_DEVTOOLS_TOAST__=="function"?__VUE_DEVTOOLS_TOAST__(n,t):t==="error"?console.error(n):t==="warn"?console.warn(n):console.log(n)}function Xe(e){return"_a"in e&&"install"in e}function qt(){if(!("clipboard"in navigator))return B("Your browser doesn't support the Clipboard API","error"),!0}function Qt(e){return e instanceof Error&&e.message.toLowerCase().includes("document is not focused")?(B('You need to activate the "Emulate a focused page" setting in the "Rendering" panel of devtools.',"warn"),!0):!1}async function wr(e){if(!qt())try{await navigator.clipboard.writeText(JSON.stringify(e.state.value)),B("Global state copied to clipboard.")}catch(t){if(Qt(t))return;B("Failed to serialize the state. Check the console for more details.","error"),console.error(t)}}async function _r(e){if(!qt())try{Kt(e,JSON.parse(await navigator.clipboard.readText())),B("Global state pasted from clipboard.")}catch(t){if(Qt(t))return;B("Failed to deserialize the state from clipboard. Check the console for more details.","error"),console.error(t)}}async function vr(e){try{Gt(new Blob([JSON.stringify(e.state.value)],{type:"text/plain;charset=utf-8"}),"pinia-state.json")}catch(t){B("Failed to export the state as JSON. Check the console for more details.","error"),console.error(t)}}let X;function br(){X||(X=document.createElement("input"),X.type="file",X.accept=".json");function e(){return new Promise((t,n)=>{X.onchange=async()=>{const o=X.files;if(!o)return t(null);const r=o.item(0);return t(r?{text:await r.text(),file:r}:null)},X.oncancel=()=>t(null),X.onerror=n,X.click()})}return e}async function Er(e){try{const n=await br()();if(!n)return;const{text:o,file:r}=n;Kt(e,JSON.parse(o)),B(`Global state imported from "${r.name}".`)}catch(t){B("Failed to import the state from JSON. Check the console for more details.","error"),console.error(t)}}function Kt(e,t){for(const n in t){const o=e.state.value[n];o?Object.assign(o,t[n]):e.state.value[n]=t[n]}}function Q(e){return{_custom:{display:e}}}const Jt="🍍 Pinia (root)",Ze="_root";function kr(e){return Xe(e)?{id:Ze,label:Jt}:{id:e.$id,label:e.$id}}function Sr(e){if(Xe(e)){const n=Array.from(e._s.keys()),o=e._s;return{state:n.map(a=>({editable:!0,key:a,value:e.state.value[a]})),getters:n.filter(a=>o.get(a)._getters).map(a=>{const c=o.get(a);return{editable:!1,key:a,value:c._getters.reduce((i,u)=>(i[u]=c[u],i),{})}})}}const t={state:Object.keys(e.$state).map(n=>({editable:!0,key:n,value:e.$state[n]}))};return e._getters&&e._getters.length&&(t.getters=e._getters.map(n=>({editable:!1,key:n,value:e[n]}))),e._customProperties.size&&(t.customProperties=Array.from(e._customProperties).map(n=>({editable:!0,key:n,value:e[n]}))),t}function Ir(e){return e?Array.isArray(e)?e.reduce((t,n)=>(t.keys.push(n.key),t.operations.push(n.type),t.oldValue[n.key]=n.oldValue,t.newValue[n.key]=n.newValue,t),{oldValue:{},keys:[],operations:[],newValue:{}}):{operation:Q(e.type),key:Q(e.key),oldValue:e.oldValue,newValue:e.newValue}:{}}function Or(e){switch(e){case J.direct:return"mutation";case J.patchFunction:return"$patch";case J.patchObject:return"$patch";default:return"unknown"}}let he=!0;const De=[],le="pinia:mutations",j="pinia",{assign:Cr}=Object,Ve=e=>"🍍 "+e;function Nr(e,t){Je({id:"dev.esm.pinia",label:"Pinia 🍍",logo:"https://pinia.vuejs.org/logo.svg",packageName:"pinia",homepage:"https://pinia.vuejs.org",componentStateTypes:De,app:e},n=>{typeof n.now!="function"&&B("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.addTimelineLayer({id:le,label:"Pinia 🍍",color:15064968}),n.addInspector({id:j,label:"Pinia 🍍",icon:"storage",treeFilterPlaceholder:"Search stores",actions:[{icon:"content_copy",action:()=>{wr(t)},tooltip:"Serialize and copy the state"},{icon:"content_paste",action:async()=>{await _r(t),n.sendInspectorTree(j),n.sendInspectorState(j)},tooltip:"Replace the state with the content of your clipboard"},{icon:"save",action:()=>{vr(t)},tooltip:"Save the state as a JSON file"},{icon:"folder_open",action:async()=>{await Er(t),n.sendInspectorTree(j),n.sendInspectorState(j)},tooltip:"Import the state from a JSON file"}],nodeActions:[{icon:"restore",tooltip:'Reset the state (with "$reset")',action:o=>{const r=t._s.get(o);r?typeof r.$reset!="function"?B(`Cannot reset "${o}" store because it doesn't have a "$reset" method implemented.`,"warn"):(r.$reset(),B(`Store "${o}" reset.`)):B(`Cannot reset "${o}" store because it wasn't found.`,"warn")}}]}),n.on.inspectComponent((o,r)=>{const a=o.componentInstance&&o.componentInstance.proxy;if(a&&a._pStores){const c=o.componentInstance.proxy._pStores;Object.values(c).forEach(i=>{o.instanceData.state.push({type:Ve(i.$id),key:"state",editable:!0,value:i._isOptionsAPI?{_custom:{value:s.toRaw(i.$state),actions:[{icon:"restore",tooltip:"Reset the state of this store",action:()=>i.$reset()}]}}:Object.keys(i.$state).reduce((u,d)=>(u[d]=i.$state[d],u),{})}),i._getters&&i._getters.length&&o.instanceData.state.push({type:Ve(i.$id),key:"getters",editable:!1,value:i._getters.reduce((u,d)=>{try{u[d]=i[d]}catch(l){u[d]=l}return u},{})})})}}),n.on.getInspectorTree(o=>{if(o.app===e&&o.inspectorId===j){let r=[t];r=r.concat(Array.from(t._s.values())),o.rootNodes=(o.filter?r.filter(a=>"$id"in a?a.$id.toLowerCase().includes(o.filter.toLowerCase()):Jt.toLowerCase().includes(o.filter.toLowerCase())):r).map(kr)}}),n.on.getInspectorState(o=>{if(o.app===e&&o.inspectorId===j){const r=o.nodeId===Ze?t:t._s.get(o.nodeId);if(!r)return;r&&(o.state=Sr(r))}}),n.on.editInspectorState((o,r)=>{if(o.app===e&&o.inspectorId===j){const a=o.nodeId===Ze?t:t._s.get(o.nodeId);if(!a)return B(`store "${o.nodeId}" not found`,"error");const{path:c}=o;Xe(a)?c.unshift("state"):(c.length!==1||!a._customProperties.has(c[0])||c[0]in a.$state)&&c.unshift("$state"),he=!1,o.set(a,c,o.state.value),he=!0}}),n.on.editComponentState(o=>{if(o.type.startsWith("🍍")){const r=o.type.replace(/^🍍\s*/,""),a=t._s.get(r);if(!a)return B(`store "${r}" not found`,"error");const{path:c}=o;if(c[0]!=="state")return B(`Invalid path for store "${r}": +${c} +Only state can be modified.`);c[0]="$state",he=!1,o.set(a,c,o.state.value),he=!0}})})}function Pr(e,t){De.includes(Ve(t.$id))||De.push(Ve(t.$id)),Je({id:"dev.esm.pinia",label:"Pinia 🍍",logo:"https://pinia.vuejs.org/logo.svg",packageName:"pinia",homepage:"https://pinia.vuejs.org",componentStateTypes:De,app:e,settings:{logStoreChanges:{label:"Notify about new/deleted stores",type:"boolean",defaultValue:!0}}},n=>{const o=typeof n.now=="function"?n.now.bind(n):Date.now;t.$onAction(({after:c,onError:i,name:u,args:d})=>{const l=Yt++;n.addTimelineEvent({layerId:le,event:{time:o(),title:"🛫 "+u,subtitle:"start",data:{store:Q(t.$id),action:Q(u),args:d},groupId:l}}),c(f=>{re=void 0,n.addTimelineEvent({layerId:le,event:{time:o(),title:"🛬 "+u,subtitle:"end",data:{store:Q(t.$id),action:Q(u),args:d,result:f},groupId:l}})}),i(f=>{re=void 0,n.addTimelineEvent({layerId:le,event:{time:o(),logType:"error",title:"💥 "+u,subtitle:"end",data:{store:Q(t.$id),action:Q(u),args:d,error:f},groupId:l}})})},!0),t._customProperties.forEach(c=>{s.watch(()=>s.unref(t[c]),(i,u)=>{n.notifyComponentUpdate(),n.sendInspectorState(j),he&&n.addTimelineEvent({layerId:le,event:{time:o(),title:"Change",subtitle:c,data:{newValue:i,oldValue:u},groupId:re}})},{deep:!0})}),t.$subscribe(({events:c,type:i},u)=>{if(n.notifyComponentUpdate(),n.sendInspectorState(j),!he)return;const d={time:o(),title:Or(i),data:Cr({store:Q(t.$id)},Ir(c)),groupId:re};i===J.patchFunction?d.subtitle="⤵️":i===J.patchObject?d.subtitle="🧩":c&&!Array.isArray(c)&&(d.subtitle=c.type),c&&(d.data["rawEvent(s)"]={_custom:{display:"DebuggerEvent",type:"object",tooltip:"raw DebuggerEvent[]",value:c}}),n.addTimelineEvent({layerId:le,event:d})},{detached:!0,flush:"sync"});const r=t._hotUpdate;t._hotUpdate=s.markRaw(c=>{r(c),n.addTimelineEvent({layerId:le,event:{time:o(),title:"🔥 "+t.$id,subtitle:"HMR update",data:{store:Q(t.$id),info:Q("HMR update")}}}),n.notifyComponentUpdate(),n.sendInspectorTree(j),n.sendInspectorState(j)});const{$dispose:a}=t;t.$dispose=()=>{a(),n.notifyComponentUpdate(),n.sendInspectorTree(j),n.sendInspectorState(j),n.getSettings().logStoreChanges&&B(`Disposed "${t.$id}" store 🗑`)},n.notifyComponentUpdate(),n.sendInspectorTree(j),n.sendInspectorState(j),n.getSettings().logStoreChanges&&B(`"${t.$id}" store installed 🆕`)})}let Yt=0,re;function Xt(e,t,n){const o=t.reduce((r,a)=>(r[a]=s.toRaw(e)[a],r),{});for(const r in o)e[r]=function(){const a=Yt,c=n?new Proxy(e,{get(...u){return re=a,Reflect.get(...u)},set(...u){return re=a,Reflect.set(...u)}}):e;re=a;const i=o[r].apply(c,arguments);return re=void 0,i}}function xr({app:e,store:t,options:n}){if(t.$id.startsWith("__hot:"))return;t._isOptionsAPI=!!n.state,Xt(t,Object.keys(n.actions),t._isOptionsAPI);const o=t._hotUpdate;s.toRaw(t)._hotUpdate=function(r){o.apply(this,arguments),Xt(t,Object.keys(r._hmrPayload.actions),!!t._isOptionsAPI)},Pr(e,t)}function $r(){const e=s.effectScope(!0),t=e.run(()=>s.ref({}));let n=[],o=[];const r=s.markRaw({install(a){be(r),r._a=a,a.provide(Ht,r),a.config.globalProperties.$pinia=r,Ee&&Nr(a,r),o.forEach(c=>n.push(c)),o=[]},use(a){return!this._a&&!jt?o.push(a):n.push(a),this},_p:n,_a:null,_e:e,_s:new Map,state:t});return Ee&&typeof Proxy<"u"&&r.use(xr),r}function Zt(e,t){for(const n in t){const o=t[n];if(!(n in e))continue;const r=e[n];ce(r)&&ce(o)&&!s.isRef(o)&&!s.isReactive(o)?e[n]=Zt(r,o):e[n]=o}return e}const en=()=>{};function tn(e,t,n,o=en){e.push(t);const r=()=>{const a=e.indexOf(t);a>-1&&(e.splice(a,1),o())};return!n&&s.getCurrentScope()&&s.onScopeDispose(r),r}function me(e,...t){e.slice().forEach(n=>{n(...t)})}const Rr=e=>e();function et(e,t){e instanceof Map&&t instanceof Map&&t.forEach((n,o)=>e.set(o,n)),e instanceof Set&&t instanceof Set&&t.forEach(e.add,e);for(const n in t){if(!t.hasOwnProperty(n))continue;const o=t[n],r=e[n];ce(r)&&ce(o)&&e.hasOwnProperty(n)&&!s.isRef(o)&&!s.isReactive(o)?e[n]=et(r,o):e[n]=o}return e}const Ar=process.env.NODE_ENV!=="production"?Symbol("pinia:skipHydration"):Symbol();function Tr(e){return!ce(e)||!e.hasOwnProperty(Ar)}const{assign:z}=Object;function nn(e){return!!(s.isRef(e)&&e.effect)}function on(e,t,n,o){const{state:r,actions:a,getters:c}=t,i=n.state.value[e];let u;function d(){!i&&(process.env.NODE_ENV==="production"||!o)&&(n.state.value[e]=r?r():{});const l=process.env.NODE_ENV!=="production"&&o?s.toRefs(s.ref(r?r():{}).value):s.toRefs(n.state.value[e]);return z(l,a,Object.keys(c||{}).reduce((f,p)=>(process.env.NODE_ENV!=="production"&&p in l&&console.warn(`[🍍]: A getter cannot have the same name as another state property. Rename one of them. Found with "${p}" in store "${e}".`),f[p]=s.markRaw(s.computed(()=>{be(n);const h=n._s.get(e);return c[p].call(h,h)})),f),{}))}return u=tt(e,d,t,n,o,!0),u}function tt(e,t,n={},o,r,a){let c;const i=z({actions:{}},n);if(process.env.NODE_ENV!=="production"&&!o._e.active)throw new Error("Pinia destroyed");const u={deep:!0};process.env.NODE_ENV!=="production"&&!jt&&(u.onTrigger=k=>{d?h=k:d==!1&&!S._hotUpdating&&(Array.isArray(h)?h.push(k):console.error("🍍 debuggerEvents should be an array. This is most likely an internal Pinia bug."))});let d,l,f=[],p=[],h;const y=o.state.value[e];!a&&!y&&(process.env.NODE_ENV==="production"||!r)&&(o.state.value[e]={});const g=s.ref({});let v;function I(k){let b;d=l=!1,process.env.NODE_ENV!=="production"&&(h=[]),typeof k=="function"?(k(o.state.value[e]),b={type:J.patchFunction,storeId:e,events:h}):(et(o.state.value[e],k),b={type:J.patchObject,payload:k,storeId:e,events:h});const R=v=Symbol();s.nextTick().then(()=>{v===R&&(d=!0)}),l=!0,me(f,b,o.state.value[e])}const O=a?function(){const{state:b}=n,R=b?b():{};this.$patch(V=>{z(V,R)})}:process.env.NODE_ENV!=="production"?()=>{throw new Error(`🍍: Store "${e}" is built using the setup syntax and does not implement $reset().`)}:en;function A(){c.stop(),f=[],p=[],o._s.delete(e)}function L(k,b){return function(){be(o);const R=Array.from(arguments),V=[],de=[];function xe(U){V.push(U)}function Fe(U){de.push(U)}me(p,{args:R,name:k,store:S,after:xe,onError:Fe});let Y;try{Y=b.apply(this&&this.$id===e?this:S,R)}catch(U){throw me(de,U),U}return Y instanceof Promise?Y.then(U=>(me(V,U),U)).catch(U=>(me(de,U),Promise.reject(U))):(me(V,Y),Y)}}const G=s.markRaw({actions:{},getters:{},state:[],hotState:g}),q={_p:o,$id:e,$onAction:tn.bind(null,p),$patch:I,$reset:O,$subscribe(k,b={}){const R=tn(f,k,b.detached,()=>V()),V=c.run(()=>s.watch(()=>o.state.value[e],de=>{(b.flush==="sync"?l:d)&&k({storeId:e,type:J.direct,events:h},de)},z({},u,b)));return R},$dispose:A},S=s.reactive(process.env.NODE_ENV!=="production"||Ee?z({_hmrPayload:G,_customProperties:s.markRaw(new Set)},q):q);o._s.set(e,S);const K=(o._a&&o._a.runWithContext||Rr)(()=>o._e.run(()=>(c=s.effectScope()).run(t)));for(const k in K){const b=K[k];if(s.isRef(b)&&!nn(b)||s.isReactive(b))process.env.NODE_ENV!=="production"&&r?$e(g.value,k,s.toRef(K,k)):a||(y&&Tr(b)&&(s.isRef(b)?b.value=y[k]:et(b,y[k])),o.state.value[e][k]=b),process.env.NODE_ENV!=="production"&&G.state.push(k);else if(typeof b=="function"){const R=process.env.NODE_ENV!=="production"&&r?b:L(k,b);K[k]=R,process.env.NODE_ENV!=="production"&&(G.actions[k]=b),i.actions[k]=b}else process.env.NODE_ENV!=="production"&&nn(b)&&(G.getters[k]=a?n.getters[k]:b,Re&&(K._getters||(K._getters=s.markRaw([]))).push(k))}if(z(S,K),z(s.toRaw(S),K),Object.defineProperty(S,"$state",{get:()=>process.env.NODE_ENV!=="production"&&r?g.value:o.state.value[e],set:k=>{if(process.env.NODE_ENV!=="production"&&r)throw new Error("cannot set hotState");I(b=>{z(b,k)})}}),process.env.NODE_ENV!=="production"&&(S._hotUpdate=s.markRaw(k=>{S._hotUpdating=!0,k._hmrPayload.state.forEach(b=>{if(b in S.$state){const R=k.$state[b],V=S.$state[b];typeof R=="object"&&ce(R)&&ce(V)?Zt(R,V):k.$state[b]=V}$e(S,b,s.toRef(k.$state,b))}),Object.keys(S.$state).forEach(b=>{b in k.$state||Qe(S,b)}),d=!1,l=!1,o.state.value[e]=s.toRef(k._hmrPayload,"hotState"),l=!0,s.nextTick().then(()=>{d=!0});for(const b in k._hmrPayload.actions){const R=k[b];$e(S,b,L(b,R))}for(const b in k._hmrPayload.getters){const R=k._hmrPayload.getters[b],V=a?s.computed(()=>(be(o),R.call(S,S))):R;$e(S,b,V)}Object.keys(S._hmrPayload.getters).forEach(b=>{b in k._hmrPayload.getters||Qe(S,b)}),Object.keys(S._hmrPayload.actions).forEach(b=>{b in k._hmrPayload.actions||Qe(S,b)}),S._hmrPayload=k._hmrPayload,S._getters=k._getters,S._hotUpdating=!1})),Ee){const k={writable:!0,configurable:!0,enumerable:!1};["_p","_hmrPayload","_getters","_customProperties"].forEach(b=>{Object.defineProperty(S,b,z({value:S[b]},k))})}return o._p.forEach(k=>{if(Ee){const b=c.run(()=>k({store:S,app:o._a,pinia:o,options:i}));Object.keys(b||{}).forEach(R=>S._customProperties.add(R)),z(S,b)}else z(S,c.run(()=>k({store:S,app:o._a,pinia:o,options:i})))}),process.env.NODE_ENV!=="production"&&S.$state&&typeof S.$state=="object"&&typeof S.$state.constructor=="function"&&!S.$state.constructor.toString().includes("[native code]")&&console.warn(`[🍍]: The "state" must be a plain object. It cannot be + state: () => new MyClass() +Found in store "${S.$id}".`),y&&a&&n.hydrate&&n.hydrate(S.$state,y),d=!0,l=!0,S}function Dr(e,t,n){let o,r;const a=typeof t=="function";if(typeof e=="string")o=e,r=a?n:t;else if(r=e,o=e.id,process.env.NODE_ENV!=="production"&&typeof o!="string")throw new Error('[🍍]: "defineStore()" must be passed a store id as its first argument.');function c(i,u){const d=s.hasInjectionContext();if(i=(process.env.NODE_ENV==="test"&&ve&&ve._testing?null:i)||(d?s.inject(Ht,null):null),i&&be(i),process.env.NODE_ENV!=="production"&&!ve)throw new Error(`[🍍]: "getActivePinia()" was called but there was no active Pinia. Are you trying to use a store before calling "app.use(pinia)"? +See https://pinia.vuejs.org/core-concepts/outside-component-usage.html for help. +This will fail in production.`);i=ve,i._s.has(o)||(a?tt(o,t,r,i):on(o,r,i),process.env.NODE_ENV!=="production"&&(c._pinia=i));const l=i._s.get(o);if(process.env.NODE_ENV!=="production"&&u){const f="__hot:"+o,p=a?tt(f,t,r,i,!0):on(f,z({},r),i,!0);u._hotUpdate(p),delete i.state.value[f],i._s.delete(f)}if(process.env.NODE_ENV!=="production"&&Re){const f=s.getCurrentInstance();if(f&&f.proxy&&!u){const p=f.proxy,h="_pStores"in p?p._pStores:p._pStores={};h[o]=l}}return l}return c.$id=o,c}const Vr=Dr("data",()=>{const e=s.ref([]),t=s.ref({});return{records:e,record:t}});function rn(e){e||(e=s.inject("$registry"));const t=Vr(),n=s.ref(new _e(e,t)),o=s.ref(!1);return s.onBeforeMount(async()=>{var r,a;const c=e.router.currentRoute.value,i=(r=c.params.records)==null?void 0:r.toString().toLowerCase(),u=(a=c.params.record)==null?void 0:a.toString().toLowerCase();if(!i&&!u)return;const d=await e.getMeta(i);e.addDoctype(d),n.value.setup(d),i&&(u?await n.value.getRecord(d,u):await n.value.getRecords(d)),n.value.runAction(d,"LOAD",u?[u]:void 0),o.value=!0}),{stonecrop:n,isReady:o}}/*! + * vue-router v4.2.5 + * (c) 2023 Eduardo San Martin Morote + * @license MIT + */const Z=typeof window<"u";function Br(e){return e.__esModule||e[Symbol.toStringTag]==="Module"}const x=Object.assign;function nt(e,t){const n={};for(const o in t){const r=t[o];n[o]=F(r)?r.map(e):e(r)}return n}const ke=()=>{},F=Array.isArray;function P(e){const t=Array.from(arguments).slice(1);console.warn.apply(console,["[Vue Router warn]: "+e].concat(t))}const Mr=/\/$/,Lr=e=>e.replace(Mr,"");function ot(e,t,n="/"){let o,r={},a="",c="";const i=t.indexOf("#");let u=t.indexOf("?");return i=0&&(u=-1),u>-1&&(o=t.slice(0,u),a=t.slice(u+1,i>-1?i:t.length),r=e(a)),i>-1&&(o=o||t.slice(0,i),c=t.slice(i,t.length)),o=Hr(o??t,n),{fullPath:o+(a&&"?")+a+c,path:o,query:r,hash:c}}function jr(e,t){const n=t.query?e(t.query):"";return t.path+(n&&"?")+n+(t.hash||"")}function sn(e,t){return!t||!e.toLowerCase().startsWith(t.toLowerCase())?e:e.slice(t.length)||"/"}function an(e,t,n){const o=t.matched.length-1,r=n.matched.length-1;return o>-1&&o===r&&se(t.matched[o],n.matched[r])&&cn(t.params,n.params)&&e(t.query)===e(n.query)&&t.hash===n.hash}function se(e,t){return(e.aliasOf||e)===(t.aliasOf||t)}function cn(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(const n in e)if(!Ur(e[n],t[n]))return!1;return!0}function Ur(e,t){return F(e)?ln(e,t):F(t)?ln(t,e):e===t}function ln(e,t){return F(t)?e.length===t.length&&e.every((n,o)=>n===t[o]):e.length===1&&e[0]===t}function Hr(e,t){if(e.startsWith("/"))return e;if(process.env.NODE_ENV!=="production"&&!t.startsWith("/"))return P(`Cannot resolve a relative location without an absolute path. Trying to resolve "${e}" from "${t}". It should look like "/${t}".`),e;if(!e)return t;const n=t.split("/"),o=e.split("/"),r=o[o.length-1];(r===".."||r===".")&&o.push("");let a=n.length-1,c,i;for(c=0;c1&&a--;else break;return n.slice(0,a).join("/")+"/"+o.slice(c-(c===o.length?1:0)).join("/")}var Se;(function(e){e.pop="pop",e.push="push"})(Se||(Se={}));var Ie;(function(e){e.back="back",e.forward="forward",e.unknown=""})(Ie||(Ie={}));function Fr(e){if(!e)if(Z){const t=document.querySelector("base");e=t&&t.getAttribute("href")||"/",e=e.replace(/^\w+:\/\/[^\/]+/,"")}else e="/";return e[0]!=="/"&&e[0]!=="#"&&(e="/"+e),Lr(e)}const Wr=/^[^#]+#/;function zr(e,t){return e.replace(Wr,"#")+t}function Gr(e,t){const n=document.documentElement.getBoundingClientRect(),o=e.getBoundingClientRect();return{behavior:t.behavior,left:o.left-n.left-(t.left||0),top:o.top-n.top-(t.top||0)}}const Be=()=>({left:window.pageXOffset,top:window.pageYOffset});function qr(e){let t;if("el"in e){const n=e.el,o=typeof n=="string"&&n.startsWith("#");if(process.env.NODE_ENV!=="production"&&typeof e.el=="string"&&(!o||!document.getElementById(e.el.slice(1))))try{const a=document.querySelector(e.el);if(o&&a){P(`The selector "${e.el}" should be passed as "el: document.querySelector('${e.el}')" because it starts with "#".`);return}}catch{P(`The selector "${e.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).`);return}const r=typeof n=="string"?o?document.getElementById(n.slice(1)):document.querySelector(n):n;if(!r){process.env.NODE_ENV!=="production"&&P(`Couldn't find element using selector "${e.el}" returned by scrollBehavior.`);return}t=Gr(r,e)}else t=e;"scrollBehavior"in document.documentElement.style?window.scrollTo(t):window.scrollTo(t.left!=null?t.left:window.pageXOffset,t.top!=null?t.top:window.pageYOffset)}function un(e,t){return(history.state?history.state.position-t:-1)+e}const rt=new Map;function Qr(e,t){rt.set(e,t)}function Kr(e){const t=rt.get(e);return rt.delete(e),t}let Jr=()=>location.protocol+"//"+location.host;function dn(e,t){const{pathname:n,search:o,hash:r}=t,a=e.indexOf("#");if(a>-1){let i=r.includes(e.slice(a))?e.slice(a).length:1,u=r.slice(i);return u[0]!=="/"&&(u="/"+u),sn(u,"")}return sn(n,e)+o+r}function Yr(e,t,n,o){let r=[],a=[],c=null;const i=({state:p})=>{const h=dn(e,location),y=n.value,g=t.value;let v=0;if(p){if(n.value=h,t.value=p,c&&c===y){c=null;return}v=g?p.position-g.position:0}else o(h);r.forEach(I=>{I(n.value,y,{delta:v,type:Se.pop,direction:v?v>0?Ie.forward:Ie.back:Ie.unknown})})};function u(){c=n.value}function d(p){r.push(p);const h=()=>{const y=r.indexOf(p);y>-1&&r.splice(y,1)};return a.push(h),h}function l(){const{history:p}=window;p.state&&p.replaceState(x({},p.state,{scroll:Be()}),"")}function f(){for(const p of a)p();a=[],window.removeEventListener("popstate",i),window.removeEventListener("beforeunload",l)}return window.addEventListener("popstate",i),window.addEventListener("beforeunload",l,{passive:!0}),{pauseListeners:u,listen:d,destroy:f}}function fn(e,t,n,o=!1,r=!1){return{back:e,current:t,forward:n,replaced:o,position:window.history.length,scroll:r?Be():null}}function Xr(e){const{history:t,location:n}=window,o={value:dn(e,n)},r={value:t.state};r.value||a(o.value,{back:null,current:o.value,forward:null,position:t.length-1,replaced:!0,scroll:null},!0);function a(u,d,l){const f=e.indexOf("#"),p=f>-1?(n.host&&document.querySelector("base")?e:e.slice(f))+u:Jr()+e+u;try{t[l?"replaceState":"pushState"](d,"",p),r.value=d}catch(h){process.env.NODE_ENV!=="production"?P("Error with push/replace State",h):console.error(h),n[l?"replace":"assign"](p)}}function c(u,d){const l=x({},t.state,fn(r.value.back,u,r.value.forward,!0),d,{position:r.value.position});a(u,l,!0),o.value=u}function i(u,d){const l=x({},r.value,t.state,{forward:u,scroll:Be()});process.env.NODE_ENV!=="production"&&!t.state&&P(`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: + +history.replaceState(history.state, '', url) + +You can find more information at https://next.router.vuejs.org/guide/migration/#usage-of-history-state.`),a(l.current,l,!0);const f=x({},fn(o.value,u,null),{position:l.position+1},d);a(u,f,!1),o.value=u}return{location:o,state:r,push:i,replace:c}}function Zr(e){e=Fr(e);const t=Xr(e),n=Yr(e,t.state,t.location,t.replace);function o(a,c=!0){c||n.pauseListeners(),history.go(a)}const r=x({location:"",base:e,go:o,createHref:zr.bind(null,e)},t,n);return Object.defineProperty(r,"location",{enumerable:!0,get:()=>t.location.value}),Object.defineProperty(r,"state",{enumerable:!0,get:()=>t.state.value}),r}function es(e){return typeof e=="string"||e&&typeof e=="object"}function pn(e){return typeof e=="string"||typeof e=="symbol"}const ae={path:"/",name:void 0,params:{},query:{},hash:"",fullPath:"/",matched:[],meta:{},redirectedFrom:void 0},st=Symbol(process.env.NODE_ENV!=="production"?"navigation failure":"");var hn;(function(e){e[e.aborted=4]="aborted",e[e.cancelled=8]="cancelled",e[e.duplicated=16]="duplicated"})(hn||(hn={}));const ts={1({location:e,currentLocation:t}){return`No match for + ${JSON.stringify(e)}${t?` +while being at +`+JSON.stringify(t):""}`},2({from:e,to:t}){return`Redirected from "${e.fullPath}" to "${os(t)}" via a navigation guard.`},4({from:e,to:t}){return`Navigation aborted from "${e.fullPath}" to "${t.fullPath}" via a navigation guard.`},8({from:e,to:t}){return`Navigation cancelled from "${e.fullPath}" to "${t.fullPath}" with a new navigation.`},16({from:e,to:t}){return`Avoided redundant navigation to current location: "${e.fullPath}".`}};function ge(e,t){return process.env.NODE_ENV!=="production"?x(new Error(ts[e](t)),{type:e,[st]:!0},t):x(new Error,{type:e,[st]:!0},t)}function ee(e,t){return e instanceof Error&&st in e&&(t==null||!!(e.type&t))}const ns=["params","query","hash"];function os(e){if(typeof e=="string")return e;if("path"in e)return e.path;const t={};for(const n of ns)n in e&&(t[n]=e[n]);return JSON.stringify(t,null,2)}const mn="[^/]+?",rs={sensitive:!1,strict:!1,start:!0,end:!0},ss=/[.+*?^${}()[\]/\\]/g;function as(e,t){const n=x({},rs,t),o=[];let r=n.start?"^":"";const a=[];for(const d of e){const l=d.length?[]:[90];n.strict&&!d.length&&(r+="/");for(let f=0;ft.length?t.length===1&&t[0]===40+40?1:-1:0}function cs(e,t){let n=0;const o=e.score,r=t.score;for(;n0&&t[t.length-1]<0}const ls={type:0,value:""},us=/[a-zA-Z0-9_]/;function ds(e){if(!e)return[[]];if(e==="/")return[[ls]];if(!e.startsWith("/"))throw new Error(process.env.NODE_ENV!=="production"?`Route paths should start with a "/": "${e}" should be "/${e}".`:`Invalid path "${e}"`);function t(h){throw new Error(`ERR (${n})/"${d}": ${h}`)}let n=0,o=n;const r=[];let a;function c(){a&&r.push(a),a=[]}let i=0,u,d="",l="";function f(){d&&(n===0?a.push({type:0,value:d}):n===1||n===2||n===3?(a.length>1&&(u==="*"||u==="+")&&t(`A repeatable param (${d}) must be alone in its segment. eg: '/:ids+.`),a.push({type:1,value:d,regexp:l,repeatable:u==="*"||u==="+",optional:u==="*"||u==="?"})):t("Invalid state to consume buffer"),d="")}function p(){d+=u}for(;i{c(O)}:ke}function c(l){if(pn(l)){const f=o.get(l);f&&(o.delete(l),n.splice(n.indexOf(f),1),f.children.forEach(c),f.alias.forEach(c))}else{const f=n.indexOf(l);f>-1&&(n.splice(f,1),l.record.name&&o.delete(l.record.name),l.children.forEach(c),l.alias.forEach(c))}}function i(){return n}function u(l){let f=0;for(;f=0&&(l.record.path!==n[f].record.path||!vn(l,n[f]));)f++;n.splice(f,0,l),l.record.name&&!wn(l)&&o.set(l.record.name,l)}function d(l,f){let p,h={},y,g;if("name"in l&&l.name){if(p=o.get(l.name),!p)throw ge(1,{location:l});if(process.env.NODE_ENV!=="production"){const O=Object.keys(l.params||{}).filter(A=>!p.keys.find(L=>L.name===A));O.length&&P(`Discarded invalid param(s) "${O.join('", "')}" when navigating. See https://github.com/vuejs/router/blob/main/packages/router/CHANGELOG.md#414-2022-08-22 for more details.`)}g=p.record.name,h=x(yn(f.params,p.keys.filter(O=>!O.optional).map(O=>O.name)),l.params&&yn(l.params,p.keys.map(O=>O.name))),y=p.stringify(h)}else if("path"in l)y=l.path,process.env.NODE_ENV!=="production"&&!y.startsWith("/")&&P(`The Matcher cannot resolve relative paths but received "${y}". Unless you directly called \`matcher.resolve("${y}")\`, this is probably a bug in vue-router. Please open an issue at https://github.com/vuejs/router/issues/new/choose.`),p=n.find(O=>O.re.test(y)),p&&(h=p.parse(y),g=p.record.name);else{if(p=f.name?o.get(f.name):n.find(O=>O.re.test(f.path)),!p)throw ge(1,{location:l,currentLocation:f});g=p.record.name,h=x({},f.params,l.params),y=p.stringify(h)}const v=[];let I=p;for(;I;)v.unshift(I.record),I=I.parent;return{name:g,path:y,params:h,matched:v,meta:gs(v)}}return e.forEach(l=>a(l)),{addRoute:a,resolve:d,removeRoute:c,getRoutes:i,getRecordMatcher:r}}function yn(e,t){const n={};for(const o of t)o in e&&(n[o]=e[o]);return n}function hs(e){return{path:e.path,redirect:e.redirect,name:e.name,meta:e.meta||{},aliasOf:void 0,beforeEnter:e.beforeEnter,props:ms(e),children:e.children||[],instances:{},leaveGuards:new Set,updateGuards:new Set,enterCallbacks:{},components:"components"in e?e.components||null:e.component&&{default:e.component}}}function ms(e){const t={},n=e.props||!1;if("component"in e)t.default=n;else for(const o in e.components)t[o]=typeof n=="object"?n[o]:n;return t}function wn(e){for(;e;){if(e.record.aliasOf)return!0;e=e.parent}return!1}function gs(e){return e.reduce((t,n)=>x(t,n.meta),{})}function _n(e,t){const n={};for(const o in e)n[o]=o in t?t[o]:e[o];return n}function at(e,t){return e.name===t.name&&e.optional===t.optional&&e.repeatable===t.repeatable}function ys(e,t){for(const n of e.keys)if(!n.optional&&!t.keys.find(at.bind(null,n)))return P(`Alias "${t.record.path}" and the original record: "${e.record.path}" must have the exact same param named "${n.name}"`);for(const n of t.keys)if(!n.optional&&!e.keys.find(at.bind(null,n)))return P(`Alias "${t.record.path}" and the original record: "${e.record.path}" must have the exact same param named "${n.name}"`)}function ws(e,t){t&&t.record.name&&!e.name&&!e.path&&P(`The route named "${String(t.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.`)}function _s(e,t){for(const n of t.keys)if(!e.keys.find(at.bind(null,n)))return P(`Absolute path "${e.record.path}" must have the exact same param named "${n.name}" as its parent "${t.record.path}".`)}function vn(e,t){return t.children.some(n=>n===e||vn(e,n))}const bn=/#/g,vs=/&/g,bs=/\//g,Es=/=/g,ks=/\?/g,En=/\+/g,Ss=/%5B/g,Is=/%5D/g,kn=/%5E/g,Os=/%60/g,Sn=/%7B/g,Cs=/%7C/g,In=/%7D/g,Ns=/%20/g;function it(e){return encodeURI(""+e).replace(Cs,"|").replace(Ss,"[").replace(Is,"]")}function Ps(e){return it(e).replace(Sn,"{").replace(In,"}").replace(kn,"^")}function ct(e){return it(e).replace(En,"%2B").replace(Ns,"+").replace(bn,"%23").replace(vs,"%26").replace(Os,"`").replace(Sn,"{").replace(In,"}").replace(kn,"^")}function xs(e){return ct(e).replace(Es,"%3D")}function $s(e){return it(e).replace(bn,"%23").replace(ks,"%3F")}function Rs(e){return e==null?"":$s(e).replace(bs,"%2F")}function Oe(e){try{return decodeURIComponent(""+e)}catch{process.env.NODE_ENV!=="production"&&P(`Error decoding "${e}". Using original value`)}return""+e}function As(e){const t={};if(e===""||e==="?")return t;const o=(e[0]==="?"?e.slice(1):e).split("&");for(let r=0;ra&&ct(a)):[o&&ct(o)]).forEach(a=>{a!==void 0&&(t+=(t.length?"&":"")+n,a!=null&&(t+="="+a))})}return t}function Ts(e){const t={};for(const n in e){const o=e[n];o!==void 0&&(t[n]=F(o)?o.map(r=>r==null?null:""+r):o==null?o:""+o)}return t}const Ds=Symbol(process.env.NODE_ENV!=="production"?"router view location matched":""),Cn=Symbol(process.env.NODE_ENV!=="production"?"router view depth":""),lt=Symbol(process.env.NODE_ENV!=="production"?"router":""),Nn=Symbol(process.env.NODE_ENV!=="production"?"route location":""),ut=Symbol(process.env.NODE_ENV!=="production"?"router view location":"");function Ce(){let e=[];function t(o){return e.push(o),()=>{const r=e.indexOf(o);r>-1&&e.splice(r,1)}}function n(){e=[]}return{add:t,list:()=>e.slice(),reset:n}}function ie(e,t,n,o,r){const a=o&&(o.enterCallbacks[r]=o.enterCallbacks[r]||[]);return()=>new Promise((c,i)=>{const u=f=>{f===!1?i(ge(4,{from:n,to:t})):f instanceof Error?i(f):es(f)?i(ge(2,{from:t,to:f})):(a&&o.enterCallbacks[r]===a&&typeof f=="function"&&a.push(f),c())},d=e.call(o&&o.instances[r],t,n,process.env.NODE_ENV!=="production"?Vs(u,t,n):u);let l=Promise.resolve(d);if(e.length<3&&(l=l.then(u)),process.env.NODE_ENV!=="production"&&e.length>2){const f=`The "next" callback was never called inside of ${e.name?'"'+e.name+'"':""}: +${e.toString()} +. If you are returning a value instead of calling "next", make sure to remove the "next" parameter from your function.`;if(typeof d=="object"&&"then"in d)l=l.then(p=>u._called?p:(P(f),Promise.reject(new Error("Invalid navigation guard"))));else if(d!==void 0&&!u._called){P(f),i(new Error("Invalid navigation guard"));return}}l.catch(f=>i(f))})}function Vs(e,t,n){let o=0;return function(){o++===1&&P(`The "next" callback was called more than once in one navigation guard when going from "${n.fullPath}" to "${t.fullPath}". It should be called exactly one time in each navigation guard. This will fail in production.`),e._called=!0,o===1&&e.apply(null,arguments)}}function dt(e,t,n,o){const r=[];for(const a of e){process.env.NODE_ENV!=="production"&&!a.components&&!a.children.length&&P(`Record with path "${a.path}" is either missing a "component(s)" or "children" property.`);for(const c in a.components){let i=a.components[c];if(process.env.NODE_ENV!=="production"){if(!i||typeof i!="object"&&typeof i!="function")throw P(`Component "${c}" in record with path "${a.path}" is not a valid component. Received "${String(i)}".`),new Error("Invalid route component");if("then"in i){P(`Component "${c}" in record with path "${a.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.`);const u=i;i=()=>u}else i.__asyncLoader&&!i.__warnedDefineAsync&&(i.__warnedDefineAsync=!0,P(`Component "${c}" in record with path "${a.path}" is defined using "defineAsyncComponent()". Write "() => import('./MyPage.vue')" instead of "defineAsyncComponent(() => import('./MyPage.vue'))".`))}if(!(t!=="beforeRouteEnter"&&!a.instances[c]))if(Bs(i)){const d=(i.__vccOpts||i)[t];d&&r.push(ie(d,n,o,a,c))}else{let u=i();process.env.NODE_ENV!=="production"&&!("catch"in u)&&(P(`Component "${c}" in record with path "${a.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.`),u=Promise.resolve(u)),r.push(()=>u.then(d=>{if(!d)return Promise.reject(new Error(`Couldn't resolve component "${c}" at "${a.path}"`));const l=Br(d)?d.default:d;a.components[c]=l;const p=(l.__vccOpts||l)[t];return p&&ie(p,n,o,a,c)()}))}}}return r}function Bs(e){return typeof e=="object"||"displayName"in e||"props"in e||"__vccOpts"in e}function Pn(e){const t=s.inject(lt),n=s.inject(Nn),o=s.computed(()=>t.resolve(s.unref(e.to))),r=s.computed(()=>{const{matched:u}=o.value,{length:d}=u,l=u[d-1],f=n.matched;if(!l||!f.length)return-1;const p=f.findIndex(se.bind(null,l));if(p>-1)return p;const h=xn(u[d-2]);return d>1&&xn(l)===h&&f[f.length-1].path!==h?f.findIndex(se.bind(null,u[d-2])):p}),a=s.computed(()=>r.value>-1&&js(n.params,o.value.params)),c=s.computed(()=>r.value>-1&&r.value===n.matched.length-1&&cn(n.params,o.value.params));function i(u={}){return Ls(u)?t[s.unref(e.replace)?"replace":"push"](s.unref(e.to)).catch(ke):Promise.resolve()}if(process.env.NODE_ENV!=="production"&&Z){const u=s.getCurrentInstance();if(u){const d={route:o.value,isActive:a.value,isExactActive:c.value};u.__vrl_devtools=u.__vrl_devtools||[],u.__vrl_devtools.push(d),s.watchEffect(()=>{d.route=o.value,d.isActive=a.value,d.isExactActive=c.value},{flush:"post"})}}return{route:o,href:s.computed(()=>o.value.href),isActive:a,isExactActive:c,navigate:i}}const Ms=s.defineComponent({name:"RouterLink",compatConfig:{MODE:3},props:{to:{type:[String,Object],required:!0},replace:Boolean,activeClass:String,exactActiveClass:String,custom:Boolean,ariaCurrentValue:{type:String,default:"page"}},useLink:Pn,setup(e,{slots:t}){const n=s.reactive(Pn(e)),{options:o}=s.inject(lt),r=s.computed(()=>({[$n(e.activeClass,o.linkActiveClass,"router-link-active")]:n.isActive,[$n(e.exactActiveClass,o.linkExactActiveClass,"router-link-exact-active")]:n.isExactActive}));return()=>{const a=t.default&&t.default(n);return e.custom?a:s.h("a",{"aria-current":n.isExactActive?e.ariaCurrentValue:null,href:n.href,onClick:n.navigate,class:r.value},a)}}});function Ls(e){if(!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)&&!e.defaultPrevented&&!(e.button!==void 0&&e.button!==0)){if(e.currentTarget&&e.currentTarget.getAttribute){const t=e.currentTarget.getAttribute("target");if(/\b_blank\b/i.test(t))return}return e.preventDefault&&e.preventDefault(),!0}}function js(e,t){for(const n in t){const o=t[n],r=e[n];if(typeof o=="string"){if(o!==r)return!1}else if(!F(r)||r.length!==o.length||o.some((a,c)=>a!==r[c]))return!1}return!0}function xn(e){return e?e.aliasOf?e.aliasOf.path:e.path:""}const $n=(e,t,n)=>e??t??n,Us=s.defineComponent({name:"RouterView",inheritAttrs:!1,props:{name:{type:String,default:"default"},route:Object},compatConfig:{MODE:3},setup(e,{attrs:t,slots:n}){process.env.NODE_ENV!=="production"&&Fs();const o=s.inject(ut),r=s.computed(()=>e.route||o.value),a=s.inject(Cn,0),c=s.computed(()=>{let d=s.unref(a);const{matched:l}=r.value;let f;for(;(f=l[d])&&!f.components;)d++;return d}),i=s.computed(()=>r.value.matched[c.value]);s.provide(Cn,s.computed(()=>c.value+1)),s.provide(Ds,i),s.provide(ut,r);const u=s.ref();return s.watch(()=>[u.value,i.value,e.name],([d,l,f],[p,h,y])=>{l&&(l.instances[f]=d,h&&h!==l&&d&&d===p&&(l.leaveGuards.size||(l.leaveGuards=h.leaveGuards),l.updateGuards.size||(l.updateGuards=h.updateGuards))),d&&l&&(!h||!se(l,h)||!p)&&(l.enterCallbacks[f]||[]).forEach(g=>g(d))},{flush:"post"}),()=>{const d=r.value,l=e.name,f=i.value,p=f&&f.components[l];if(!p)return Rn(n.default,{Component:p,route:d});const h=f.props[l],y=h?h===!0?d.params:typeof h=="function"?h(d):h:null,g=I=>{I.component.isUnmounted&&(f.instances[l]=null)},v=s.h(p,x({},y,t,{onVnodeUnmounted:g,ref:u}));if(process.env.NODE_ENV!=="production"&&Z&&v.ref){const I={depth:c.value,name:f.name,path:f.path,meta:f.meta};(F(v.ref)?v.ref.map(A=>A.i):[v.ref.i]).forEach(A=>{A.__vrv_devtools=I})}return Rn(n.default,{Component:v,route:d})||v}}});function Rn(e,t){if(!e)return null;const n=e(t);return n.length===1?n[0]:n}const Hs=Us;function Fs(){const e=s.getCurrentInstance(),t=e.parent&&e.parent.type.name,n=e.parent&&e.parent.subTree&&e.parent.subTree.type;if(t&&(t==="KeepAlive"||t.includes("Transition"))&&typeof n=="object"&&n.name==="RouterView"){const o=t==="KeepAlive"?"keep-alive":"transition";P(` can no longer be used directly inside or . +Use slot props instead: + + + <${o}> + + +`)}}function Ne(e,t){const n=x({},e,{matched:e.matched.map(o=>Xs(o,["instances","children","aliasOf"]))});return{_custom:{type:null,readOnly:!0,display:e.fullPath,tooltip:t,value:n}}}function Me(e){return{_custom:{display:e}}}let Ws=0;function zs(e,t,n){if(t.__hasDevtools)return;t.__hasDevtools=!0;const o=Ws++;Je({id:"org.vuejs.router"+(o?"."+o:""),label:"Vue Router",packageName:"vue-router",homepage:"https://router.vuejs.org",logo:"https://router.vuejs.org/logo.png",componentStateTypes:["Routing"],app:e},r=>{typeof r.now!="function"&&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."),r.on.inspectComponent((l,f)=>{l.instanceData&&l.instanceData.state.push({type:"Routing",key:"$route",editable:!1,value:Ne(t.currentRoute.value,"Current Route")})}),r.on.visitComponentTree(({treeNode:l,componentInstance:f})=>{if(f.__vrv_devtools){const p=f.__vrv_devtools;l.tags.push({label:(p.name?`${p.name.toString()}: `:"")+p.path,textColor:0,tooltip:"This component is rendered by <router-view>",backgroundColor:An})}F(f.__vrl_devtools)&&(f.__devtoolsApi=r,f.__vrl_devtools.forEach(p=>{let h=Vn,y="";p.isExactActive?(h=Dn,y="This is exactly active"):p.isActive&&(h=Tn,y="This link is active"),l.tags.push({label:p.route.path,textColor:0,tooltip:y,backgroundColor:h})}))}),s.watch(t.currentRoute,()=>{u(),r.notifyComponentUpdate(),r.sendInspectorTree(i),r.sendInspectorState(i)});const a="router:navigations:"+o;r.addTimelineLayer({id:a,label:`Router${o?" "+o:""} Navigations`,color:4237508}),t.onError((l,f)=>{r.addTimelineEvent({layerId:a,event:{title:"Error during Navigation",subtitle:f.fullPath,logType:"error",time:r.now(),data:{error:l},groupId:f.meta.__navigationId}})});let c=0;t.beforeEach((l,f)=>{const p={guard:Me("beforeEach"),from:Ne(f,"Current Location during this navigation"),to:Ne(l,"Target location")};Object.defineProperty(l.meta,"__navigationId",{value:c++}),r.addTimelineEvent({layerId:a,event:{time:r.now(),title:"Start of navigation",subtitle:l.fullPath,data:p,groupId:l.meta.__navigationId}})}),t.afterEach((l,f,p)=>{const h={guard:Me("afterEach")};p?(h.failure={_custom:{type:Error,readOnly:!0,display:p?p.message:"",tooltip:"Navigation Failure",value:p}},h.status=Me("❌")):h.status=Me("✅"),h.from=Ne(f,"Current Location during this navigation"),h.to=Ne(l,"Target location"),r.addTimelineEvent({layerId:a,event:{title:"End of navigation",subtitle:l.fullPath,time:r.now(),data:h,logType:p?"warning":"default",groupId:l.meta.__navigationId}})});const i="router-inspector:"+o;r.addInspector({id:i,label:"Routes"+(o?" "+o:""),icon:"book",treeFilterPlaceholder:"Search routes"});function u(){if(!d)return;const l=d;let f=n.getRoutes().filter(p=>!p.parent||!p.parent.record.components);f.forEach(Ln),l.filter&&(f=f.filter(p=>ft(p,l.filter.toLowerCase()))),f.forEach(p=>Mn(p,t.currentRoute.value)),l.rootNodes=f.map(Bn)}let d;r.on.getInspectorTree(l=>{d=l,l.app===e&&l.inspectorId===i&&u()}),r.on.getInspectorState(l=>{if(l.app===e&&l.inspectorId===i){const p=n.getRoutes().find(h=>h.record.__vd_id===l.nodeId);p&&(l.state={options:qs(p)})}}),r.sendInspectorTree(i),r.sendInspectorState(i)})}function Gs(e){return e.optional?e.repeatable?"*":"?":e.repeatable?"+":""}function qs(e){const{record:t}=e,n=[{editable:!1,key:"path",value:t.path}];return t.name!=null&&n.push({editable:!1,key:"name",value:t.name}),n.push({editable:!1,key:"regexp",value:e.re}),e.keys.length&&n.push({editable:!1,key:"keys",value:{_custom:{type:null,readOnly:!0,display:e.keys.map(o=>`${o.name}${Gs(o)}`).join(" "),tooltip:"Param keys",value:e.keys}}}),t.redirect!=null&&n.push({editable:!1,key:"redirect",value:t.redirect}),e.alias.length&&n.push({editable:!1,key:"aliases",value:e.alias.map(o=>o.record.path)}),Object.keys(e.record.meta).length&&n.push({editable:!1,key:"meta",value:e.record.meta}),n.push({key:"score",editable:!1,value:{_custom:{type:null,readOnly:!0,display:e.score.map(o=>o.join(", ")).join(" | "),tooltip:"Score used to sort routes",value:e.score}}}),n}const An=15485081,Tn=2450411,Dn=8702998,Qs=2282478,Vn=16486972,Ks=6710886;function Bn(e){const t=[],{record:n}=e;n.name!=null&&t.push({label:String(n.name),textColor:0,backgroundColor:Qs}),n.aliasOf&&t.push({label:"alias",textColor:0,backgroundColor:Vn}),e.__vd_match&&t.push({label:"matches",textColor:0,backgroundColor:An}),e.__vd_exactActive&&t.push({label:"exact",textColor:0,backgroundColor:Dn}),e.__vd_active&&t.push({label:"active",textColor:0,backgroundColor:Tn}),n.redirect&&t.push({label:typeof n.redirect=="string"?`redirect: ${n.redirect}`:"redirects",textColor:16777215,backgroundColor:Ks});let o=n.__vd_id;return o==null&&(o=String(Js++),n.__vd_id=o),{id:o,label:n.path,tags:t,children:e.children.map(Bn)}}let Js=0;const Ys=/^\/(.*)\/([a-z]*)$/;function Mn(e,t){const n=t.matched.length&&se(t.matched[t.matched.length-1],e.record);e.__vd_exactActive=e.__vd_active=n,n||(e.__vd_active=t.matched.some(o=>se(o,e.record))),e.children.forEach(o=>Mn(o,t))}function Ln(e){e.__vd_match=!1,e.children.forEach(Ln)}function ft(e,t){const n=String(e.re).match(Ys);if(e.__vd_match=!1,!n||n.length<3)return!1;if(new RegExp(n[1].replace(/\$$/,""),n[2]).test(t))return e.children.forEach(c=>ft(c,t)),e.record.path!=="/"||t==="/"?(e.__vd_match=e.re.test(t),!0):!1;const r=e.record.path.toLowerCase(),a=Oe(r);return!t.startsWith("/")&&(a.includes(t)||r.includes(t))||a.startsWith(t)||r.startsWith(t)||e.record.name&&String(e.record.name).includes(t)?!0:e.children.some(c=>ft(c,t))}function Xs(e,t){const n={};for(const o in e)t.includes(o)||(n[o]=e[o]);return n}function Zs(e){const t=ps(e.routes,e),n=e.parseQuery||As,o=e.stringifyQuery||On,r=e.history;if(process.env.NODE_ENV!=="production"&&!r)throw new Error('Provide the "history" option when calling "createRouter()": https://next.router.vuejs.org/api/#history.');const a=Ce(),c=Ce(),i=Ce(),u=s.shallowRef(ae);let d=ae;Z&&e.scrollBehavior&&"scrollRestoration"in history&&(history.scrollRestoration="manual");const l=nt.bind(null,m=>""+m),f=nt.bind(null,Rs),p=nt.bind(null,Oe);function h(m,_){let w,E;return pn(m)?(w=t.getRecordMatcher(m),E=_):E=m,t.addRoute(E,w)}function y(m){const _=t.getRecordMatcher(m);_?t.removeRoute(_):process.env.NODE_ENV!=="production"&&P(`Cannot remove non-existent route "${String(m)}"`)}function g(){return t.getRoutes().map(m=>m.record)}function v(m){return!!t.getRecordMatcher(m)}function I(m,_){if(_=x({},_||u.value),typeof m=="string"){const C=ot(n,m,_.path),T=t.resolve({path:C.path},_),fe=r.createHref(C.fullPath);return process.env.NODE_ENV!=="production"&&(fe.startsWith("//")?P(`Location "${m}" resolved to "${fe}". A resolved location cannot start with multiple slashes.`):T.matched.length||P(`No match found for location with path "${m}"`)),x(C,T,{params:p(T.params),hash:Oe(C.hash),redirectedFrom:void 0,href:fe})}let w;if("path"in m)process.env.NODE_ENV!=="production"&&"params"in m&&!("name"in m)&&Object.keys(m.params).length&&P(`Path "${m.path}" was passed with params but they will be ignored. Use a named route alongside params instead.`),w=x({},m,{path:ot(n,m.path,_.path).path});else{const C=x({},m.params);for(const T in C)C[T]==null&&delete C[T];w=x({},m,{params:f(C)}),_.params=f(_.params)}const E=t.resolve(w,_),$=m.hash||"";process.env.NODE_ENV!=="production"&&$&&!$.startsWith("#")&&P(`A \`hash\` should always start with the character "#". Replace "${$}" with "#${$}".`),E.params=l(p(E.params));const D=jr(o,x({},m,{hash:Ps($),path:E.path})),N=r.createHref(D);return process.env.NODE_ENV!=="production"&&(N.startsWith("//")?P(`Location "${m}" resolved to "${N}". A resolved location cannot start with multiple slashes.`):E.matched.length||P(`No match found for location with path "${"path"in m?m.path:m}"`)),x({fullPath:D,hash:$,query:o===On?Ts(m.query):m.query||{}},E,{redirectedFrom:void 0,href:N})}function O(m){return typeof m=="string"?ot(n,m,u.value.path):x({},m)}function A(m,_){if(d!==m)return ge(8,{from:_,to:m})}function L(m){return S(m)}function G(m){return L(x(O(m),{replace:!0}))}function q(m){const _=m.matched[m.matched.length-1];if(_&&_.redirect){const{redirect:w}=_;let E=typeof w=="function"?w(m):w;if(typeof E=="string"&&(E=E.includes("?")||E.includes("#")?E=O(E):{path:E},E.params={}),process.env.NODE_ENV!=="production"&&!("path"in E)&&!("name"in E))throw P(`Invalid redirect found: +${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,_){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}),_||w);const T=w;T.redirectedFrom=_;let fe;return!D&&an(o,E,w)&&(fe=ge(16,{to:T,from:E}),To(E,E,!0,!1)),(fe?Promise.resolve(fe):k(T,E)).catch(H=>ee(H)?ee(H,2)?H:Nt(H):U(H,T,E)).then(H=>{if(H){if(ee(H,2))return process.env.NODE_ENV!=="production"&&an(o,I(H.to),T)&&_&&(_._count=_._count?_._count+1:1)>30?(P(`Detected a possibly infinite redirection in a navigation guard when going from "${E.fullPath}" to "${T.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}),_||T)}else H=R(T,E,!0,N,$);return b(T,E,H),H})}function Ao(m,_){const w=A(m,_);return w?Promise.reject(w):Promise.resolve()}function K(m){const _=We.values().next().value;return _&&typeof _.runWithContext=="function"?_.runWithContext(m):m()}function k(m,_){let w;const[E,$,D]=ea(m,_);w=dt(E.reverse(),"beforeRouteLeave",m,_);for(const C of E)C.leaveGuards.forEach(T=>{w.push(ie(T,m,_))});const N=Ao.bind(null,m,_);return w.push(N),we(w).then(()=>{w=[];for(const C of a.list())w.push(ie(C,m,_));return w.push(N),we(w)}).then(()=>{w=dt($,"beforeRouteUpdate",m,_);for(const C of $)C.updateGuards.forEach(T=>{w.push(ie(T,m,_))});return w.push(N),we(w)}).then(()=>{w=[];for(const C of D)if(C.beforeEnter)if(F(C.beforeEnter))for(const T of C.beforeEnter)w.push(ie(T,m,_));else w.push(ie(C.beforeEnter,m,_));return w.push(N),we(w)}).then(()=>(m.matched.forEach(C=>C.enterCallbacks={}),w=dt(D,"beforeRouteEnter",m,_),w.push(N),we(w))).then(()=>{w=[];for(const C of c.list())w.push(ie(C,m,_));return w.push(N),we(w)}).catch(C=>ee(C,8)?C:Promise.reject(C))}function b(m,_,w){i.list().forEach(E=>K(()=>E(m,_,w)))}function R(m,_,w,E,$){const D=A(m,_);if(D)return D;const N=_===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,To(m,_,w,N),Nt()}let V;function de(){V||(V=r.listen((m,_,w)=>{const E=I(m),$=q(E);if($){S(x($,{replace:!0}),E).catch(ke);return}d=E;const D=u.value;Z&&Qr(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,_,w){Nt(m);const E=Fe.list();return E.length?E.forEach($=>$(m,_,w)):(process.env.NODE_ENV!=="production"&&P("uncaught error during route navigation:"),console.error(m)),Promise.reject(m)}function Ki(){return Y&&u.value!==ae?Promise.resolve():new Promise((m,_)=>{xe.add([m,_])})}function Nt(m){return Y||(Y=!m,de(),xe.list().forEach(([_,w])=>m?w(m):_()),xe.reset()),m}function To(m,_,w,E){const{scrollBehavior:$}=e;if(!Z||!$)return Promise.resolve();const D=!w&&Kr(un(m.fullPath,0))||(E||!w)&&history.state&&history.state.scroll||null;return s.nextTick().then(()=>$(m,_,D)).then(N=>N&&qr(N)).catch(N=>U(N,m,_))}const Pt=m=>r.go(m);let xt;const We=new Set,Ji={currentRoute:u,listening:!0,addRoute:h,removeRoute:y,hasRoute:v,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:Ki,install(m){const _=this;m.component("RouterLink",Ms),m.component("RouterView",Hs),m.config.globalProperties.$router=_,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,_),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&&zs(m,_,t)}};function we(m){return m.reduce((_,w)=>_.then(()=>K(w)),Promise.resolve())}return Ji}function ea(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]}Zs({history:Zr(),routes:[]});function ta(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 na(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 oa=Le,ra="native";function sa(e){var t={messagesCallback:null,bc:new BroadcastChannel(e),subFns:[]};return t.bc.onmessage=function(n){t.messagesCallback&&t.messagesCallback(n.data)},t}function aa(e){e.bc.close(),e.subFns=[]}function ia(e,t){try{return e.bc.postMessage(t,!1),ue}catch(n){return Promise.reject(n)}}function ca(e,t){e.messagesCallback=t}function la(){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 ua(){return 150}var da={create:sa,close:aa,onMessage:ca,postMessage:ia,canBeUsed:la,type:ra,averageResponseTime:ua,microSeconds:oa},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,fa(n)},0))},e.prototype.clear=function(){this.map.clear()},e}();function fa(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 pa=Le,ha="pubkey.broadcast-channel-0-",te="messages",je={durability:"relaxed"},ma="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 ga(e){var t=Wn(),n=ha+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 ya(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 wa(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 ka(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 Sa(e){e.closed=!0,e.db.close()}function Ia(e,t){return e.writeBlockPromise=e.writeBlockPromise.then(function(){return ya(e.db,e.uuid,t)}).then(function(){na(0,10)===0&&ba(e)}),e.writeBlockPromise}function Oa(e,t,n){e.messagesCallbackTime=n,e.messagesCallback=t,Gn(e)}function Ca(){return!!Wn()}function Na(e){return e.idb.fallbackInterval*2}var Pa={create:Ea,close:Sa,onMessage:Oa,postMessage:Ia,canBeUsed:Ca,type:ma,averageResponseTime:Na,microSeconds:pa},xa=Le,$a="pubkey.broadcastChannel-",Ra="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 $a+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 Ta(e,t){var n=Qn(e),o=function(a){a.key===n&&t(JSON.parse(a.newValue))};return window.addEventListener("storage",o),o}function Da(e){window.removeEventListener("storage",e)}function Va(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=Ta(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),Za(e)}function to(e,t,n){e._addEL[t]=e._addEL[t].filter(function(o){return o!==n}),ei(e)}function Za(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 ei(e){if(e._iL&&!Zn(e)){e._iL=!1;var t=e.method.microSeconds();e.method.onMessage(e._state,null,t)}}class _t extends Error{constructor(t,n){super(t),this.name="DevalueError",this.path=n.join("")}}function no(e){return Object(e)!==e}const ti=Object.getOwnPropertyNames(Object.prototype).sort().join("\0");function ni(e){const t=Object.getPrototypeOf(e);return t===Object.prototype||t===null||Object.getOwnPropertyNames(t).sort().join("\0")===ti}function oi(e){return Object.prototype.toString.call(e).slice(8,-1)}function ri(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,v]of d)a.push(`.get(${no(g)?Et(g):"..."})`),f+=`,${i(g)},${i(v)}`;f+="]";break;default:if(!ni(d))throw new _t("Cannot stringify arbitrary non-POJOs",a);if(Object.getOwnPropertySymbols(d).length>0)throw new _t("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 v in d)g&&(f+=","),g=!0,a.push(`.${v}`),f+=`${ye(v)}:${i(d[v])}`,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?vt.toString():e===0&&1/e<0?bt.toString():t==="bigint"?`["BigInt","${e}"]`:String(e)}function ai(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 ii=(e,t)=>Object.keys(t).includes(e),ci=({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)||!ii(d,o.$state)||ai(d,o,{initialize:((l=r==null?void 0:r.share)==null?void 0:l.initialize)??e,type:n})})};$r().use(ci({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(tr),{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",li=e=>typeof e=="string",ui=()=>{};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 di(e){return e}function fi(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 pi(...e){let t,n,o,r;if(li(e[0])||Array.isArray(e[0])?([n,o,r]=e,t=ho):[t,n,o,r]=e,!t)return ui;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 fi(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 hi(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&&pi(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 mi=Object.defineProperty,wo=Object.getOwnPropertySymbols,gi=Object.prototype.hasOwnProperty,yi=Object.prototype.propertyIsEnumerable,_o=(e,t,n)=>t in e?mi(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,wi=(e,t)=>{for(var n in t||(t={}))gi.call(t,n)&&_o(e,n,t[n]);if(wo)for(var n of wo(t))yi.call(t,n)&&_o(e,n,t[n]);return e};wi({linear:di},{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=hi(e).value;return t=t&&e.offsetHeight>0,t},oe=e=>e.tabIndex>=0,vo=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},vi=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"],bi={ArrowUp:"up",ArrowDown:"down",ArrowLeft:"left",ArrowRight:"right"},Oo={"keydown.up":e=>{const t=vo(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=vi(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=vo(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=bi[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 Ei=["data-colindex","data-rowindex","data-editable","contenteditable","tabindex"],ki={key:1},Si=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 v=o.columns[n.colIndex].format;return typeof v=="function"?v(g):typeof v=="string"?Function(`"use strict";return (${v})`)()(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 v=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=v.top+v.height,o.modal.left=v.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,v)=>v&&g===0&&v>0?`${v}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,v)=>(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",ki,s.toDisplayString(c.value),1))],40,Ei))}}),Pe=(e,t)=>{const n=e.__vccOpts||e;for(const[o,r]of t)n[o]=r;return n},Ii=Pe(Si,[["__scopeId","data-v-07dfe445"]]),Oi=["tabindex"],Ci={key:0,tabIndex:-1,class:"list-index"},Ni=Pe(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",Ci,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,Oi)),[[s.vShow,c()]])}}),[["__scopeId","data-v-4c71a067"]]);let He;const Pi=new Uint8Array(16);function xi(){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(Pi)}const M=[];for(let e=0;e<256;++e)M.push((e+256).toString(16).slice(1));function $i(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 Ri=typeof crypto<"u"&&crypto.randomUUID&&crypto.randomUUID.bind(crypto),No={randomUUID:Ri};function Po(e,t,n){if(No.randomUUID&&!t&&!e)return No.randomUUID();e=e||{};const o=e.random||(e.rng||xi)();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 $i(o)}class Ai{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 Ti={key:0},Di={class:"atable-header-row",tabindex:"-1"},Vi={key:0,id:"header-index"},Bi=Pe(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",Ti,[s.createElementVNode("tr",Di,[s.unref(t).zeroColumn?(s.openBlock(),s.createElementBlock("th",Vi)):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)}}),[["__scopeId","data-v-16e66636"]]),Mi=Pe(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))}}),[["__scopeId","data-v-10a48b2a"]]),Li=Pe(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 Ai(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(Bi,{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(Ni,{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(Ii,{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(Mi,{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))}}),[["__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(Li),{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),ji={class:"tabs"},Ui={tabindex:"0"},Hi={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"},Fi=[$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 + l-56.64-0.114v150.98C359.32,398.29,355.686,401.923,351.191,401.923z M81.03,385.666h262.033V234.67 + c0-2.162,0.854-4.235,2.39-5.755c1.528-1.52,3.585-2.374,5.739-2.374c0.008,0,0.008,0,0.016,0l45.105,0.089l-79.855-79.863 + c-1.528-1.528-2.382-3.593-2.382-5.747V66.628h-31.498v26.645c0,3.284-1.975,6.251-5.015,7.511 + c-3.032,1.268-6.527,0.569-8.86-1.764l-57.038-57.038l-183.95,183.95l45.203,0.089c4.487,0.008,8.112,3.642,8.112,8.129 + C81.03,234.149,81.03,385.666,81.03,385.666z`})],-1))],Wi={tabindex:"0"},zi={style:{width:"11pt"}},Gi=[$o(()=>s.createElementVNode("g",{transform:"matrix(-0.08088215,0,0,0.08088215,9.8016177,3.1263021e-6)"},[s.createElementVNode("path",{d:"M 93.148438,80.832031 C 109.5,57.742188 104.03125,25.769531 80.941406,9.421875 57.851562,-6.925781 25.878906,-1.460938 9.53125,21.632812 -6.816406,44.722656 -1.351562,76.691406 21.742188,93.039062 38.222656,104.70703 60.011719,105.60547 77.394531,95.339844 l 37.769529,37.542966 c 4.07813,4.29297 10.86328,4.46485 15.15625,0.38672 4.29297,-4.07422 4.46485,-10.85937 0.39063,-15.15234 -0.12891,-0.13672 -0.25391,-0.26172 -0.39063,-0.39063 z m -41.839844,3.5 C 33.0625,84.335938 18.269531,69.554688 18.257812,51.308594 18.253906,33.0625 33.035156,18.269531 51.285156,18.261719 c 18.222656,-0.0078 33.007813,14.75 33.042969,32.972656 0.03125,18.25 -14.742187,33.066406 -32.996094,33.097656 -0.0078,0 -0.01172,0 -0.02344,0 z m 0,0",style:{fill:"#000000","fill-opacity":"1","fill-rule":"nonzero",stroke:"none"},id:"path2"})],-1))],qi=s.defineComponent({__name:"SheetNav",props:{breadcrumbs:{}},setup(e){const t=e,n=s.ref([]),o=s.ref(!0),r=s.ref(!1),a=s.ref(""),c=s.ref(null),i=s.computed(()=>o.value?"unrotated":"rotated");s.onMounted(()=>{n.value=t.breadcrumbs||[]});const u=()=>{o.value=!o.value},d=async()=>{r.value=!r.value,await s.nextTick(()=>{c.value.focus()})},l=h=>{h.preventDefault(),h.stopPropagation()},f=async h=>{h.preventDefault(),h.stopPropagation(),await d()},p=()=>{};return(h,y)=>{const g=s.resolveComponent("router-link");return s.openBlock(),s.createElementBlock("footer",null,[s.createElementVNode("ul",ji,[s.createElementVNode("li",{class:"hidebreadcrumbs",onClick:u,onKeydown:s.withKeys(u,["enter"])},[s.createElementVNode("a",Ui,[s.createElementVNode("div",{class:s.normalizeClass(i.value)},"×",2)])],32),s.createElementVNode("li",{class:"hometab",onClick:p,onKeydown:s.withKeys(p,["enter"]),style:s.normalizeStyle({display:o.value?"block":"none"})},[s.createVNode(g,{to:"/home",tabindex:"0"},{default:s.withCtx(()=>[(s.openBlock(),s.createElementBlock("svg",Hi,Fi))]),_:1})],36),s.createElementVNode("li",{class:"searchtab",onClick:d,onKeydown:s.withKeys(d,["enter"]),style:s.normalizeStyle({display:o.value?"block":"none"})},[s.createElementVNode("a",Wi,[s.createElementVNode("span",{style:s.normalizeStyle({display:r.value?"none":"block"})},[(s.openBlock(),s.createElementBlock("svg",zi,Gi))],4),s.withDirectives(s.createElementVNode("input",{"onUpdate:modelValue":y[0]||(y[0]=v=>a.value=v),ref_key:"searchinput",ref:c,style:s.normalizeStyle({display:r.value?"block":"none"}),onClick:y[1]||(y[1]=v=>l(v)),onInput:y[2]||(y[2]=v=>l(v)),onBlur:y[3]||(y[3]=v=>f(v)),onKeydown:y[4]||(y[4]=s.withKeys(v=>f(v),["enter"])),type:"text"},null,36),[[s.vModelText,a.value]])])],36),(s.openBlock(!0),s.createElementBlock(s.Fragment,null,s.renderList(n.value,(v,I)=>(s.openBlock(),s.createElementBlock("li",{key:I,style:s.normalizeStyle({display:o.value?"block":"none"})},[s.createVNode(g,{tabindex:"0",to:v.to},{default:s.withCtx(()=>[s.createTextVNode(s.toDisplayString(v.title),1)]),_:2},1032,["to"])],4))),128))])])}}}),fc="",Ro=Ge(qi,[["__scopeId","data-v-18bfde6e"]]),Qi={install:e=>{e.component("ActionSet",$t),e.component("CommandPalette",Rt),e.component("Doctype",lo),e.component("Records",xo),e.component("SheetNav",Ro)}};W.ActionSet=$t,W.CommandPalette=Rt,W.Doctype=lo,W.Records=xo,W.SheetNav=Ro,W.StonecropDesktop=Qi,Object.defineProperty(W,Symbol.toStringTag,{value:"Module"})}); +//# sourceMappingURL=desktop.umd.cjs.map diff --git a/desktop/dist/desktop.umd.cjs.map b/desktop/dist/desktop.umd.cjs.map new file mode 100644 index 00000000..7a508687 --- /dev/null +++ b/desktop/dist/desktop.umd.cjs.map @@ -0,0 +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 C, computed as M, openBlock as p, createElementBlock as v, createElementVNode as i, withDirectives as _, vModelCheckbox as _e, toDisplayString as w, vShow as S, resolveComponent as be, createBlock as B, withCtx as we, onMounted as ae, onBeforeUnmount as Ce, ref as g, watch as U, unref as O, getCurrentScope as ke, onScopeDispose as Ae, inject as re, nextTick as De, Fragment as L, renderList as q, normalizeStyle as Ee, withModifiers as Ie, normalizeClass as x, createCommentVNode as H, withKeys as F, vModelText as P, resolveDynamicComponent as Me, mergeProps as ie, createTextVNode as Te, renderSlot as $e, createVNode as Se, resolveDirective as Oe } from \"vue\";\nconst Ve = { id: \"checkbox-container\" }, Le = [\"id\", \"readonly\", \"required\"], qe = { id: \"custom-checkbox\" }, xe = [\"for\"], Be = [\"innerHTML\"], He = /* @__PURE__ */ C({\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 n = e, o = t, s = M({\n get() {\n return n.value;\n },\n set(l) {\n o(\"update:value\", l);\n }\n });\n return (l, a) => (p(), v(\"div\", null, [\n i(\"label\", Ve, [\n _(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 [_e, s.value]\n ]),\n i(\"span\", qe, w(s.value), 1)\n ]),\n i(\"label\", {\n for: l.uuid,\n id: \"checkbox-label\"\n }, w(l.label), 9, xe),\n _(i(\"p\", {\n innerHTML: l.validation.errorMessage\n }, null, 8, Be), [\n [S, l.validation.errorMessage]\n ])\n ]));\n }\n});\nconst A = (e, t) => {\n const n = e.__vccOpts || e;\n for (const [o, s] of t)\n n[o] = s;\n return n;\n}, Pe = /* @__PURE__ */ A(He, [[\"__scopeId\", \"data-v-743cd4db\"]]), Fe = /* @__PURE__ */ i(\"div\", null, [\n /* @__PURE__ */ i(\"input\", { type: \"text\" }),\n /* @__PURE__ */ i(\"input\", { type: \"text\" }),\n /* @__PURE__ */ i(\"input\", { type: \"text\" })\n], -1), Re = /* @__PURE__ */ C({\n __name: \"AComboBox\",\n props: [\"event\", \"cellData\", \"tableID\"],\n setup(e) {\n return (t, n) => {\n const o = be(\"ATableModal\");\n return p(), B(o, {\n event: e.event,\n cellData: e.cellData,\n class: \"amodal\"\n }, {\n default: we(() => [\n Fe\n ]),\n _: 1\n }, 8, [\"event\", \"cellData\"]);\n };\n }\n});\nvar W;\nconst ue = typeof window < \"u\", Ue = (e) => typeof e == \"string\", Qe = () => {\n};\nue && (W = window == null ? void 0 : window.navigator) != null && W.userAgent && /iP(ad|hone|od)/.test(window.navigator.userAgent);\nfunction de(e) {\n return typeof e == \"function\" ? e() : O(e);\n}\nfunction Ye(e) {\n return e;\n}\nfunction je(e) {\n return ke() ? (Ae(e), !0) : !1;\n}\nfunction R(e) {\n var t;\n const n = de(e);\n return (t = n == null ? void 0 : n.$el) != null ? t : n;\n}\nconst ce = ue ? window : void 0;\nfunction Ne(...e) {\n let t, n, o, s;\n if (Ue(e[0]) || Array.isArray(e[0]) ? ([n, o, s] = e, t = ce) : [t, n, o, s] = e, !t)\n return Qe;\n Array.isArray(n) || (n = [n]), Array.isArray(o) || (o = [o]);\n const l = [], a = () => {\n l.forEach((d) => d()), l.length = 0;\n }, r = (d, y, b, m) => (d.addEventListener(y, b, m), () => d.removeEventListener(y, b, m)), f = U(() => [R(t), de(s)], ([d, y]) => {\n a(), d && l.push(...n.flatMap((b) => o.map((m) => r(d, b, m, y))));\n }, { immediate: !0, flush: \"post\" }), u = () => {\n f(), a();\n };\n return je(u), u;\n}\nconst z = typeof globalThis < \"u\" ? globalThis : typeof window < \"u\" ? window : typeof global < \"u\" ? global : typeof self < \"u\" ? self : {}, G = \"__vueuse_ssr_handlers__\";\nz[G] = z[G] || {};\nfunction We(e, { window: t = ce, scrollTarget: n } = {}) {\n const o = g(!1), s = () => {\n if (!t)\n return;\n const l = t.document, a = R(e);\n if (!a)\n o.value = !1;\n else {\n const r = a.getBoundingClientRect();\n o.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 U(() => R(e), () => s(), { immediate: !0, flush: \"post\" }), t && Ne(n || t, \"scroll\", s, {\n capture: !1,\n passive: !0\n }), o;\n}\nvar K;\n(function(e) {\n e.UP = \"UP\", e.RIGHT = \"RIGHT\", e.DOWN = \"DOWN\", e.LEFT = \"LEFT\", e.NONE = \"NONE\";\n})(K || (K = {}));\nvar ze = Object.defineProperty, J = Object.getOwnPropertySymbols, Ge = Object.prototype.hasOwnProperty, Ke = Object.prototype.propertyIsEnumerable, X = (e, t, n) => t in e ? ze(e, t, { enumerable: !0, configurable: !0, writable: !0, value: n }) : e[t] = n, Je = (e, t) => {\n for (var n in t || (t = {}))\n Ge.call(t, n) && X(e, n, t[n]);\n if (J)\n for (var n of J(t))\n Ke.call(t, n) && X(e, n, t[n]);\n return e;\n};\nconst Xe = {\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};\nJe({\n linear: Ye\n}, Xe);\nconst D = (e) => {\n let t = We(e).value;\n return t = t && e.offsetHeight > 0, t;\n}, E = (e) => e.tabIndex >= 0, Z = (e) => {\n const t = e.target;\n return Q(t);\n}, Q = (e) => {\n var t;\n let n;\n if (e instanceof HTMLTableCellElement) {\n const o = (t = e.parentElement) == null ? void 0 : t.previousElementSibling;\n if (o) {\n const s = Array.from(o.children)[e.cellIndex];\n s && (n = s);\n }\n } else if (e instanceof HTMLTableRowElement) {\n const o = e.previousElementSibling;\n o && (n = o);\n }\n return n && (!E(n) || !D(n)) ? Q(n) : n;\n}, Ze = (e) => {\n var t;\n const n = e.target;\n let o;\n if (n instanceof HTMLTableCellElement) {\n const s = (t = n.parentElement) == null ? void 0 : t.parentElement;\n if (s) {\n const l = s.firstElementChild.children[n.cellIndex];\n l && (o = l);\n }\n } else if (n instanceof HTMLTableRowElement) {\n const s = n.parentElement;\n if (s) {\n const l = s.firstElementChild;\n l && (o = l);\n }\n }\n return o && (!E(o) || !D(o)) ? Y(o) : o;\n}, ee = (e) => {\n const t = e.target;\n return Y(t);\n}, Y = (e) => {\n var t;\n let n;\n if (e instanceof HTMLTableCellElement) {\n const o = (t = e.parentElement) == null ? void 0 : t.nextElementSibling;\n if (o) {\n const s = Array.from(o.children)[e.cellIndex];\n s && (n = s);\n }\n } else if (e instanceof HTMLTableRowElement) {\n const o = e.nextElementSibling;\n o && (n = o);\n }\n return n && (!E(n) || !D(n)) ? Y(n) : n;\n}, et = (e) => {\n var t;\n const n = e.target;\n let o;\n if (n instanceof HTMLTableCellElement) {\n const s = (t = n.parentElement) == null ? void 0 : t.parentElement;\n if (s) {\n const l = s.lastElementChild.children[n.cellIndex];\n l && (o = l);\n }\n } else if (n instanceof HTMLTableRowElement) {\n const s = n.parentElement;\n if (s) {\n const l = s.lastElementChild;\n l && (o = l);\n }\n }\n return o && (!E(o) || !D(o)) ? Q(o) : o;\n}, te = (e) => {\n const t = e.target;\n return j(t);\n}, j = (e) => {\n var t;\n let n;\n if (e.previousElementSibling)\n n = e.previousElementSibling;\n else {\n const o = (t = e.parentElement) == null ? void 0 : t.previousElementSibling;\n n = o == null ? void 0 : o.lastElementChild;\n }\n return n && (!E(n) || !D(n)) ? j(n) : n;\n}, ne = (e) => {\n const t = e.target;\n return N(t);\n}, N = (e) => {\n var t;\n let n;\n if (e.nextElementSibling)\n n = e.nextElementSibling;\n else {\n const o = (t = e.parentElement) == null ? void 0 : t.nextElementSibling;\n n = o == null ? void 0 : o.firstElementChild;\n }\n return n && (!E(n) || !D(n)) ? N(n) : n;\n}, oe = (e) => {\n const t = e.target.parentElement.firstElementChild;\n return t && (!E(t) || !D(t)) ? N(t) : t;\n}, le = (e) => {\n const t = e.target.parentElement.lastElementChild;\n return t && (!E(t) || !D(t)) ? j(t) : t;\n}, V = [\"alt\", \"control\", \"shift\", \"meta\"], tt = {\n ArrowUp: \"up\",\n ArrowDown: \"down\",\n ArrowLeft: \"left\",\n ArrowRight: \"right\"\n}, pe = {\n \"keydown.up\": (e) => {\n const t = Z(e);\n t && (e.preventDefault(), e.stopPropagation(), t.focus());\n },\n \"keydown.down\": (e) => {\n const t = ee(e);\n t && (e.preventDefault(), e.stopPropagation(), t.focus());\n },\n \"keydown.left\": (e) => {\n const t = te(e);\n e.preventDefault(), e.stopPropagation(), t && t.focus();\n },\n \"keydown.right\": (e) => {\n const t = ne(e);\n e.preventDefault(), e.stopPropagation(), t && t.focus();\n },\n \"keydown.control.up\": (e) => {\n const t = Ze(e);\n t && (e.preventDefault(), e.stopPropagation(), t.focus());\n },\n \"keydown.control.down\": (e) => {\n const t = et(e);\n t && (e.preventDefault(), e.stopPropagation(), t.focus());\n },\n \"keydown.control.left\": (e) => {\n const t = oe(e);\n t && (e.preventDefault(), e.stopPropagation(), t.focus());\n },\n \"keydown.control.right\": (e) => {\n const t = le(e);\n t && (e.preventDefault(), e.stopPropagation(), t.focus());\n },\n \"keydown.end\": (e) => {\n const t = le(e);\n t && (e.preventDefault(), e.stopPropagation(), t.focus());\n },\n \"keydown.enter\": (e) => {\n if (e.target instanceof HTMLTableCellElement) {\n e.preventDefault(), e.stopPropagation();\n const t = ee(e);\n t && t.focus();\n }\n },\n \"keydown.shift.enter\": (e) => {\n if (e.target instanceof HTMLTableCellElement) {\n e.preventDefault(), e.stopPropagation();\n const t = Z(e);\n t && t.focus();\n }\n },\n \"keydown.home\": (e) => {\n const t = oe(e);\n t && (e.preventDefault(), e.stopPropagation(), t.focus());\n },\n \"keydown.tab\": (e) => {\n const t = ne(e);\n t && (e.preventDefault(), e.stopPropagation(), t.focus());\n },\n \"keydown.shift.tab\": (e) => {\n const t = te(e);\n t && (e.preventDefault(), e.stopPropagation(), t.focus());\n }\n};\nfunction nt(e) {\n const t = (o) => {\n let s = null;\n o.parent && (typeof o.parent == \"string\" ? s = document.querySelector(o.parent) : o.parent instanceof Element ? s = o.parent : s = o.parent.value);\n let l = [];\n if (o.selectors)\n if (typeof o.selectors == \"string\")\n l = s ? Array.from(s.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 a of o.selectors.value)\n a instanceof Element ? l.push(a) : l.push(a.$el);\n else\n l.push(o.selectors.value);\n else\n l = Array.from(s.children).filter((a) => E(a) && D(a));\n return l;\n }, n = (o) => (s) => {\n const l = tt[s.key] || s.key.toLowerCase();\n if (V.includes(l))\n return;\n const a = o.handlers || pe;\n for (const r of Object.keys(a)) {\n const [f, ...u] = r.split(\".\");\n if (f === \"keydown\" && u.includes(l)) {\n const d = a[r], y = u.filter((m) => V.includes(m)), b = V.some((m) => {\n const $ = m.charAt(0).toUpperCase() + m.slice(1);\n return s.getModifierState($);\n });\n if (y.length > 0) {\n if (b) {\n for (const m of V)\n if (u.includes(m)) {\n const $ = m.charAt(0).toUpperCase() + m.slice(1);\n s.getModifierState($) && d(s);\n }\n }\n } else\n b || d(s);\n }\n }\n };\n ae(() => {\n for (const o of e) {\n const s = t(o);\n for (const l of s)\n l.addEventListener(\"keydown\", n(o));\n }\n }), Ce(() => {\n for (const o of e) {\n const s = t(o);\n for (const l of s)\n l.removeEventListener(\"keydown\", n(o));\n }\n });\n}\nconst ot = [\"event\", \"colIndex\", \"rowIndex\", \"tableid\"], lt = { colspan: \"5\" }, st = [\"onClick\"], at = 6, I = 7, rt = /* @__PURE__ */ C({\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, n = re(t.tableid), o = /* @__PURE__ */ new Date(), s = g(), l = g(), a = g(), r = g([]);\n ae(async () => {\n let c = n.cellData(t.colIndex, t.rowIndex);\n c ? (c instanceof Date || (c = new Date(c)), s.value = c, l.value = s.value.getMonth(), a.value = s.value.getFullYear()) : (l.value = o.getMonth(), a.value = o.getFullYear()), f(), 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 }), U([l, a], () => {\n f();\n });\n const f = () => {\n r.value = [];\n const c = new Date(a.value, l.value, 1), T = c.getDay(), h = c.setDate(c.getDate() - T);\n for (let k of Array(43).keys())\n r.value.push(h + k * 864e5);\n }, u = () => {\n a.value -= 1;\n }, d = () => {\n a.value += 1;\n }, y = () => {\n l.value == 0 ? (l.value = 11, u()) : l.value -= 1;\n }, b = () => {\n l.value == 11 ? (l.value = 0, d()) : l.value += 1;\n }, m = (c) => {\n if (l.value === o.getMonth())\n return o.toDateString() === new Date(c).toDateString();\n }, $ = (c) => new Date(c).toDateString() === new Date(s.value).toDateString(), ve = (c, T) => {\n s.value = new Date(r.value[T]), he();\n }, he = () => {\n n.setCellData(t.rowIndex, t.colIndex, s.value.getTime());\n }, ye = M(() => new Date(a.value, l.value, 1).toLocaleDateString(void 0, {\n year: \"numeric\",\n month: \"long\"\n }));\n return nt([\n {\n parent: \"table.adate\",\n selectors: \"td\",\n handlers: {\n ...pe,\n \"keydown.pageup\": y,\n \"keydown.shift.pageup\": u,\n \"keydown.pagedown\": b,\n \"keydown.shift.pagedown\": d\n }\n }\n ]), (c, T) => c.readonly ? H(\"\", !0) : (p(), v(\"div\", {\n key: 0,\n event: c.event,\n colIndex: c.colIndex,\n rowIndex: c.rowIndex,\n tableid: c.tableid,\n class: \"adate\",\n tabindex: \"0\",\n ref: \"adatepicker\"\n }, [\n i(\"table\", null, [\n i(\"tr\", null, [\n i(\"td\", {\n onClick: y,\n tabindex: -1\n }, \"<\"),\n i(\"th\", lt, w(ye.value), 1),\n i(\"td\", {\n onClick: b,\n tabindex: -1\n }, \">\")\n ]),\n (p(), v(L, null, q(at, (h) => i(\"tr\", { key: h }, [\n (p(), v(L, null, q(I, (k) => i(\"td\", {\n key: (h - 1) * I + k,\n contenteditable: !1,\n spellcheck: !1,\n tabindex: 0,\n style: Ee({\n border: $(r.value[(h - 1) * I + k]) ? \"2px solid var(--focus-cell-outline)\" : \"none\",\n borderBottomColor: m(r.value[(h - 1) * I + k]) ? \"var(--focus-cell-outline)\" : \"none\"\n }),\n onClick: Ie((ge) => ve(ge, (h - 1) * I + k), [\"prevent\", \"stop\"]),\n class: x({\n todaysdate: m(r.value[(h - 1) * I + k]),\n selecteddate: $(r.value[(h - 1) * I + k])\n })\n }, w(new Date(r.value[(h - 1) * I + k]).getDate()), 15, st)), 64))\n ])), 64))\n ])\n ], 8, ot));\n }\n});\nconst it = /* @__PURE__ */ A(rt, [[\"__scopeId\", \"data-v-169f1184\"]]), ut = C({\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});\nconst dt = { class: \"input-wrapper\" }, ct = {\n id: \"autocomplete-results\",\n class: \"autocomplete-results\"\n}, pt = {\n key: 0,\n class: \"loading autocomplete-result\"\n}, ft = [\"onClick\"], mt = { key: 0 };\nfunction vt(e, t, n, o, s, l) {\n return p(), v(\"div\", {\n class: x([\"autocomplete\", { isOpen: e.isOpen }])\n }, [\n i(\"div\", dt, [\n _(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] = F((...a) => e.onArrowDown && e.onArrowDown(...a), [\"down\"])),\n t[4] || (t[4] = F((...a) => e.onArrowUp && e.onArrowUp(...a), [\"up\"])),\n t[5] || (t[5] = F((...a) => e.onEnter && e.onEnter(...a), [\"enter\"]))\n ]\n }, null, 544), [\n [P, e.search]\n ]),\n _(i(\"ul\", ct, [\n e.isLoading ? (p(), v(\"li\", pt, \"Loading results...\")) : (p(!0), v(L, { key: 1 }, q(e.results, (a, r) => (p(), v(\"li\", {\n key: r,\n onClick: (f) => e.setResult(a),\n class: x([\"autocomplete-result\", { \"is-active\": r === e.arrowCounter }])\n }, w(a), 11, ft))), 128))\n ], 512), [\n [S, e.isOpen]\n ]),\n e.label ? (p(), v(\"label\", mt, w(e.label), 1)) : H(\"\", !0)\n ])\n ], 2);\n}\nconst fe = /* @__PURE__ */ A(ut, [[\"render\", vt], [\"__scopeId\", \"data-v-35e27f15\"]]), ht = /* @__PURE__ */ C({\n __name: \"CollapseButton\",\n props: {\n collapsed: { type: Boolean }\n },\n setup(e) {\n return (t, n) => (p(), v(\"button\", {\n class: x([\"collapse-button\", t.collapsed ? \"rotated\" : \"unrotated\"])\n }, \"×\", 2));\n }\n});\nconst yt = /* @__PURE__ */ A(ht, [[\"__scopeId\", \"data-v-6f1c1b45\"]]), gt = /* @__PURE__ */ C({\n __name: \"AForm\",\n props: {\n modelValue: {},\n data: {},\n readonly: { type: Boolean }\n },\n emits: [\"update:modelValue\"],\n setup(e, { emit: t }) {\n const n = e, o = t, s = g(n.data || {}), l = (r) => {\n let f = {};\n for (const [u, d] of Object.entries(r))\n [\"component\", \"fieldtype\"].includes(u) || (f[u] = d), u === \"rows\" && d && d.length === 0 && (f.rows = s.value[r.fieldname]);\n return f;\n }, a = M({\n get: () => n.modelValue.map((r, f) => M({\n get() {\n return r.value;\n },\n set: (u) => {\n n.modelValue[f].value = u, o(\"update:modelValue\", n.modelValue);\n }\n })),\n set: () => {\n }\n });\n return (r, f) => (p(), v(\"form\", null, [\n (p(!0), v(L, null, q(r.modelValue, (u, d) => (p(), B(Me(u.component), ie({\n key: d,\n schema: u,\n modelValue: a.value[d].value,\n \"onUpdate:modelValue\": (y) => a.value[d].value = y,\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});\nconst me = /* @__PURE__ */ A(gt, [[\"__scopeId\", \"data-v-82492bb4\"]]), _t = /* @__PURE__ */ C({\n __name: \"AFieldset\",\n props: {\n schema: {},\n label: {},\n collapsible: { type: Boolean },\n data: {}\n },\n setup(e) {\n const t = e, n = g(t.data || []);\n let o = g(!1), s = g(t.collapsible);\n const l = g(t.schema);\n function a(r) {\n r.preventDefault(), s.value && (o.value = !o.value);\n }\n return (r, f) => (p(), v(\"fieldset\", null, [\n i(\"legend\", {\n onClick: a,\n onSubmit: a\n }, [\n Te(w(r.label) + \" \", 1),\n O(s) ? (p(), B(yt, {\n key: 0,\n collapsed: O(o)\n }, null, 8, [\"collapsed\"])) : H(\"\", !0)\n ], 32),\n $e(r.$slots, \"default\", { collapsed: O(o) }, () => [\n _(Se(me, {\n modelValue: l.value,\n \"onUpdate:modelValue\": f[0] || (f[0] = (u) => l.value = u),\n data: n.value\n }, null, 8, [\"modelValue\", \"data\"]), [\n [S, !O(o)]\n ])\n ], !0)\n ]));\n }\n});\nconst bt = /* @__PURE__ */ A(_t, [[\"__scopeId\", \"data-v-cad9b578\"]]), wt = [\"id\", \"disabled\", \"required\"], Ct = [\"for\"], kt = [\"innerHTML\"], At = /* @__PURE__ */ C({\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 n = e, o = t, s = M({\n get: () => n.modelValue,\n set: (l) => {\n o(\"update:modelValue\", l);\n }\n });\n return (l, a) => (p(), v(\"div\", null, [\n _(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 [P, s.value]\n ]),\n i(\"label\", { for: l.uuid }, w(l.label), 9, Ct),\n _(i(\"p\", {\n innerHTML: l.validation.errorMessage\n }, null, 8, kt), [\n [S, l.validation.errorMessage]\n ])\n ]));\n }\n});\nconst Dt = /* @__PURE__ */ A(At, [[\"__scopeId\", \"data-v-be33e6c4\"]]), Et = { class: \"input-group\" }, It = [\"for\"], Mt = [\"id\", \"disabled\", \"required\"], Tt = [\"innerHTML\"], $t = /* @__PURE__ */ C({\n __name: \"AQuantity\",\n props: {\n label: {},\n modelValue: { default: () => ({ quantity: 0 }) },\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 n = e, o = t;\n M(() => n.modelValue.quantity * n.modelValue.conversionFactor);\n const s = M({\n get: () => n.modelValue,\n set: (l) => {\n o(\"update:modelValue\", l);\n }\n });\n return (l, a) => (p(), v(\"div\", Et, [\n i(\"label\", { for: l.uuid }, w(l.label), 9, It),\n _(i(\"input\", ie({\n \"onUpdate:modelValue\": a[0] || (a[0] = (r) => s.value.quantity = r),\n type: \"number\",\n id: l.uuid,\n disabled: l.readonly,\n required: l.required\n }, s.value), null, 16, Mt), [\n [P, s.value.quantity]\n ]),\n s.value.uom ? (p(), B(fe, {\n key: 0,\n modelValue: s.value.uom,\n \"onUpdate:modelValue\": a[1] || (a[1] = (r) => s.value.uom = r),\n label: \"\",\n items: s.value.uoms,\n class: \"input-group-append\"\n }, null, 8, [\"modelValue\", \"items\"])) : H(\"\", !0),\n _(i(\"p\", {\n innerHTML: l.validation.errorMessage\n }, null, 8, Tt), [\n [S, l.validation.errorMessage]\n ])\n ]));\n }\n});\nconst St = /* @__PURE__ */ A($t, [[\"__scopeId\", \"data-v-45134904\"]]), se = {\n date: \"##/##/####\",\n datetime: \"####/##/## ##:##\",\n time: \"##:##\",\n fulltime: \"##:##:##\",\n phone: \"(###) ### - ####\",\n card: \"#### #### #### ####\"\n};\nfunction Ot(e) {\n try {\n return Function(`\"use strict\";return (${e})`)();\n } catch {\n }\n}\nfunction Vt(e) {\n var n;\n let t = e.value;\n if (t) {\n const o = Ot(t);\n if (o) {\n const s = e.instance.locale;\n t = o(s);\n }\n } else {\n const s = (n = e.instance.schema.fieldtype) == null ? void 0 : n.toLowerCase();\n s && se[s] && (t = se[s]);\n }\n return t;\n}\nfunction Lt(e, t) {\n t || (t = \"#\");\n let n = e;\n const o = [t, \"/\", \"-\", \"(\", \")\", \" \"];\n for (const s of o)\n n = n.replaceAll(s, \"\");\n return n;\n}\nfunction qt(e, t, n) {\n n || (n = \"#\");\n let o = t;\n for (const s of e) {\n const l = o.indexOf(n);\n if (l !== -1) {\n const a = o.substring(0, l), r = o.substring(l + 1);\n o = a + s + r;\n }\n }\n return o.slice(0, t.length);\n}\nfunction xt(e, t) {\n const n = Vt(t);\n if (!n)\n return;\n const o = \"#\", s = e.value, l = Lt(s, o);\n if (l) {\n const a = qt(l, n, o);\n t.instance.maskFilled && (t.instance.maskFilled = !a.includes(o)), e.value = a;\n } else\n e.value = n;\n}\nconst Bt = C({\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 n = g(!1), o = re(\"locale\", \"\");\n return { inputText: M({\n get() {\n return e.modelValue;\n },\n set(l) {\n t.emit(\"update:modelValue\", l);\n }\n }), locale: o, maskFilled: n };\n },\n directives: {\n mask: xt\n }\n});\nconst Ht = [\"id\", \"disabled\", \"maxlength\", \"required\"], Pt = [\"for\"], Ft = [\"innerHTML\"];\nfunction Rt(e, t, n, o, s, l) {\n const a = Oe(\"mask\");\n return p(), v(\"div\", null, [\n _(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, Ht), [\n [P, e.inputText],\n [a, e.mask]\n ]),\n i(\"label\", { for: e.uuid }, w(e.label), 9, Pt),\n _(i(\"p\", {\n innerHTML: e.validation.errorMessage\n }, null, 8, Ft), [\n [S, e.validation.errorMessage]\n ])\n ]);\n}\nconst Ut = /* @__PURE__ */ A(Bt, [[\"render\", Rt], [\"__scopeId\", \"data-v-76dba9b8\"]]);\nfunction Yt(e) {\n e.component(\"ACheckbox\", Pe), e.component(\"ACombobox\", Re), e.component(\"ADate\", it), e.component(\"ADropdown\", fe), e.component(\"AFieldset\", bt), e.component(\"AForm\", me), e.component(\"ANumericInput\", Dt), e.component(\"AQuantity\", St), e.component(\"ATextInput\", Ut);\n}\nexport {\n Pe as ACheckbox,\n Re as AComboBox,\n it as ADate,\n fe as ADropdown,\n bt as AFieldset,\n me as AForm,\n Dt as ANumericInput,\n St as AQuantity,\n Ut as ATextInput,\n Yt 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 router3 = this;\n app.component(\"RouterLink\", RouterLink);\n app.component(\"RouterView\", RouterView);\n app.config.globalProperties.$router = router3;\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, router3);\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, router3, 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 _e, ref as E, watch as j, unref as r, getCurrentScope as Ie, onScopeDispose as Ee, defineComponent as k, inject as O, computed as S, openBlock as m, createElementBlock as b, createBlock as P, resolveDynamicComponent as ie, mergeProps as W, toDisplayString as $, Fragment as L, createElementVNode as T, renderSlot as y, createCommentVNode as M, useCssVars as de, withDirectives as ce, vShow as ue, reactive as A, renderList as N, normalizeStyle as H, createTextVNode as ke, provide as Ce, nextTick as Ae, createVNode as z, withCtx as G } from \"vue\";\nvar J;\nconst pe = typeof window < \"u\", Te = (t) => typeof t == \"string\", $e = () => {\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 Ie() ? (Ee(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 Re(...t) {\n let e, n, o, a;\n if (Te(t[0]) || Array.isArray(t[0]) ? ([n, o, a] = t, e = me) : [e, n, o, a] = t, !e)\n return $e;\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 Se(t, { window: e = me, scrollTarget: n } = {}) {\n const o = E(!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 && Re(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 = Se(t).value;\n return e = e && t.offsetHeight > 0, e;\n}, _ = (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 && (!_(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 && (!_(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 && (!_(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 && (!_(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 && (!_(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 && (!_(n) || !x(n)) ? F(n) : n;\n}, ae = (t) => {\n const e = t.target.parentElement.firstElementChild;\n return e && (!_(e) || !x(e)) ? F(e) : e;\n}, re = (t) => {\n const e = t.target.parentElement.lastElementChild;\n return e && (!_(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) => _(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 I = h.charAt(0).toUpperCase() + h.slice(1);\n return a.getModifierState(I);\n });\n if (c.length > 0) {\n if (v) {\n for (const h of D)\n if (p.includes(h)) {\n const I = h.charAt(0).toUpperCase() + h.slice(1);\n a.getModifierState(I) && 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 }), _e(() => {\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__ */ k({\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 I;\n const e = t, n = O(e.tableid), o = E(null);\n let a = E(!1);\n const l = S(() => {\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 = S(() => n.columns[e.colIndex].align || \"center\"), d = S(() => 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, (I = n.display[e.rowIndex]) == null ? void 0 : I.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, $(l.value), 1))\n ], 40, Ve));\n }\n});\nconst C = (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__ */ C(Qe, [[\"__scopeId\", \"data-v-07dfe445\"]]), Fe = [\"tabindex\"], qe = [\"tabindex\"], ze = [\"colspan\"], Ge = /* @__PURE__ */ k({\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 = E(null), a = E(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 T(\"tr\", W(s.$attrs, {\n ref_key: \"rowEl\",\n ref: o,\n tabindex: s.tabIndex,\n class: \"expandable-row\"\n }), [\n T(\"td\", {\n tabIndex: -1,\n onClick: i[0] || (i[0] = (d) => r(n).toggleRowExpand(s.rowIndex)),\n class: \"row-index\"\n }, $(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 T(\"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});\nconst Je = /* @__PURE__ */ C(Ge, [[\"__scopeId\", \"data-v-b2e2ed2d\"]]), Xe = [\"tabindex\"], Ye = {\n key: 0,\n tabIndex: -1,\n class: \"list-index\"\n}, Ze = /* @__PURE__ */ k({\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 = E(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, $(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 }, $(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});\nconst be = /* @__PURE__ */ C(Ze, [[\"__scopeId\", \"data-v-4c71a067\"]]);\nlet R;\nconst Ke = new Uint8Array(16);\nfunction et() {\n if (!R && (R = typeof crypto < \"u\" && crypto.getRandomValues && crypto.getRandomValues.bind(crypto), !R))\n throw new Error(\"crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported\");\n return R(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 = A(n), this.config = A(a), this.table = l || A(this.createTableObject()), this.display = this.createDisplayObject(s), this.modal = A({ 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 A(n);\n }\n get zeroColumn() {\n return [\"list\", \"tree\", \"list-expansion\"].includes(this.config.view);\n }\n get numberedRowWidth() {\n return S(() => 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__ */ k({\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 T(\"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 ke($(i.label || String.fromCharCode(d + 97).toUpperCase()), 1)\n ], !0)\n ], 4))), 128))\n ])\n ])) : M(\"\", !0);\n }\n});\nconst ve = /* @__PURE__ */ C(st, [[\"__scopeId\", \"data-v-16e66636\"]]), it = /* @__PURE__ */ k({\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});\nconst ye = /* @__PURE__ */ C(it, [[\"__scopeId\", \"data-v-10a48b2a\"]]), dt = /* @__PURE__ */ k({\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 Ce(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 && Ae().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 T(\"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});\nconst ct = /* @__PURE__ */ C(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","A","s","W","Ye","z","G","K","ze","J","Ge","Ke","X","Je","C","me","g","l","r","f","u","d","a","M","p","v","L","q","B","Me","ie","y","se","Ot","Vt","n","t","Lt","qt","xt","re","NotImplementedError","message","Stonecrop","registry","store","schema","workflow","actions","doctype","doctypeRegistry","filters","data","id","action","initialState","action2","isVue2","set","target","key","val","del","getDevtoolsGlobalHook","getTarget","isProxyAvailable","HOOK_SETUP","HOOK_PLUGIN_SETTINGS_SET","supported","perf","isPerformanceSupported","_a","now$1","ApiProxy","plugin","hook","defaultSettings","item","localSettingsSaveId","currentSettings","raw","value","pluginId","_target","prop","args","resolve","setupDevtoolsPlugin","pluginDescriptor","setupFn","descriptor","enableProxy","proxy","activePinia","setActivePinia","pinia2","piniaSymbol","isPlainObject","o","MutationType","MutationType2","IS_CLIENT","USE_DEVTOOLS","_global","bom","blob","autoBom","download","url","name","opts","xhr","saveAs","corsEnabled","click","node","evt","_navigator","isMacOSWebView","downloadSaveAs","msSaveAs","fileSaverSaveAs","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","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","router3","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","h","_a2","newSchema","fieldValue","pe","Te","$e","fe","Oe","De","Ie","Ee","U","Re","c","j","Y","Se","E","Z","Pe","He","Le","ee","x","_","te","V","Ue","ne","je","oe","Q","le","F","ae","D","We","we","I","xe","_e","Ve","Be","Qe","O","S","P","$","he","Xe","be","de","ce","ue","R","et","w","tt","nt","ge","ot","lt","at","rt","ve","T","N","H","ke","ye","ct","Ce","Ae","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/style.css b/desktop/dist/style.css new file mode 100644 index 00000000..9722a74a --- /dev/null +++ b/desktop/dist/style.css @@ -0,0 +1 @@ +#chevron[data-v-b7fdfbec]{position:relative;transform:rotate(90deg)}.leftBar[data-v-b7fdfbec],.rightBar[data-v-b7fdfbec]{transition-duration:.225s;transition-property:transform}.leftBar[data-v-b7fdfbec],.action-set.collapse.hovered-and-closed:hover .leftBar[data-v-b7fdfbec]{transform-origin:33.4% 50%;transform:rotate(90deg)}.rightBar[data-v-b7fdfbec],.action-set.collapse.hovered-and-closed:hover .rightBar[data-v-b7fdfbec]{transform-origin:67% 50%;transform:rotate(-90deg)}.rightBar[data-v-b7fdfbec]{position:absolute;top:0;left:0}.action-set.collapse:hover .leftBar[data-v-b7fdfbec],.action-set.collapse:hover .rightBar[data-v-b7fdfbec]{transform:rotate(0)}.action-set[data-v-b7fdfbec]{position:fixed;top:10px;right:10px;padding:20px;box-shadow:0 1px 2px #1927340d,0 0 4px #1927341a;border-radius:10px;display:flex;flex-direction:row-reverse;background-color:#fff;overflow:hidden}.action-menu-icon[data-v-b7fdfbec]{position:absolute;top:6px;right:8px}.action-menu-icon svg[data-v-b7fdfbec]{fill:#333}.action-set.collapse[data-v-b7fdfbec],.action-set.collapse.hovered-and-closed[data-v-b7fdfbec]:hover{max-width:25px;overflow:hidden;-webkit-transition:max-width .5s ease-in-out;-moz-transition:max-width .5s ease-in-out;-o-transition:max-width .5s ease-in-out;transition:max-width .5s ease-in-out}.action-set.collapse .action-element[data-v-b7fdfbec],.action-set.collapse.hovered-and-closed:hover .action-element[data-v-b7fdfbec]{opacity:0;-webkit-transition:opacity .25s ease-in-out;-moz-transition:opacity .25s ease-in-out;-o-transition:opacity .25s ease-in-out;transition:opacity .25s ease-in-out;transition-delay:0s}.action-set.collapse[data-v-b7fdfbec]:hover{max-width:500px}.action-set.collapse.open-set[data-v-b7fdfbec]:hover{overflow:visible!important}.action-set.collapse.hovered-and-closed:hover .action-element[data-v-b7fdfbec]{opacity:0!important}.action-set.collapse:hover .action-element[data-v-b7fdfbec]{opacity:100!important}.action-element[data-v-b7fdfbec]{margin-left:5px;margin-right:5px}button.button-default[data-v-b7fdfbec]{background-color:#fff;padding:5px 12px;border-radius:3px;box-shadow:#0000000d 0 .5px,#00000014 0 0 0 1px,#0000000d 0 2px 4px;border:none;cursor:pointer;white-space:nowrap}button.button-default[data-v-b7fdfbec]:hover{background-color:#f2f2f2}.dropdown-container[data-v-b7fdfbec]{position:relative}.dropdown[data-v-b7fdfbec]{position:absolute;top:5px;right:0;min-width:200px;box-shadow:0 .5rem 1rem #0000002e;border-radius:10px;background-color:#fff;padding:10px}button.dropdown-item[data-v-b7fdfbec]{width:100%;padding:8px 5px;text-align:left;border:none;background-color:#fff;cursor:pointer;border-radius:5px}button.dropdown-item[data-v-b7fdfbec]:hover{background-color:#f2f2f2}footer[data-v-18bfde6e]{position:fixed;bottom:0;width:100%;background-color:transparent;height:2rem;z-index:100;text-align:left;font-size:100%;display:flex;justify-content:right;padding-bottom:.2rem}ul[data-v-18bfde6e]{display:flex;flex-direction:row-reverse}.tabs li[data-v-18bfde6e]{float:left;list-style-type:none;position:relative;margin-left:-1px}.tabs a[data-v-18bfde6e]{float:left;padding:1ch 4ch 4ch;text-decoration:none;color:#000;background:#aaa;outline:2px solid inherit;outline-offset:-2px;-webkit-border-top-left-radius:15px;-webkit-border-top-right-radius:15px;-moz-border-radius-topleft:15px;-moz-border-radius-topright:15px;border-top-left-radius:15px;border-top-right-radius:15px;border:1px solid #ccc}.tabs .router-link-active[data-v-18bfde6e]{z-index:3}.router-link-active[data-v-18bfde6e]{background:#827553;color:#000;box-shadow:#999}.tabs li[data-v-18bfde6e]:before,.tabs li[data-v-18bfde6e]:after,.tabs li a[data-v-18bfde6e]:before,.tabs li a[data-v-18bfde6e]:after{position:absolute;bottom:0}.tabs li[data-v-18bfde6e]:last-child:after,.tabs li:last-child a[data-v-18bfde6e]:after,.tabs li[data-v-18bfde6e]:first-child:before,.tabs li:first-child a[data-v-18bfde6e]:before,.tabs .router-link-active[data-v-18bfde6e]:after,.tabs .router-link-active[data-v-18bfde6e]:before,.tabs .router-link-active a[data-v-18bfde6e]:after,.tabs .router-link-active a[data-v-18bfde6e]:before{content:""}.tabs .router-link-active[data-v-18bfde6e]:before,.tabs .router-link-active[data-v-18bfde6e]:after{background:transparent;z-index:1}.tabs li[data-v-18bfde6e]:before,.tabs li[data-v-18bfde6e]:after{background:transparent;width:10px;height:10px}.tabs li[data-v-18bfde6e]:before{left:-10px}.tabs li[data-v-18bfde6e]:after{right:-10px}.tabs li a[data-v-18bfde6e]:after,.tabs li a[data-v-18bfde6e]:before{width:20px;height:20px;-webkit-border-radius:10px;-moz-border-radius:10px;border-radius:10px;background:transparent;z-index:2}.tabs .router-link-active a[data-v-18bfde6e]:after,.tabs .router-link-active a[data-v-18bfde6e]:before{background:transparent}.tabs li:first-child.router-link-active a[data-v-18bfde6e]:before,.tabs li:last-child.router-link-active a[data-v-18bfde6e]:after{background:transparent}.tabs li a[data-v-18bfde6e]:before{left:-20px}.tabs li a[data-v-18bfde6e]:after{right:-20px}.hidebreadcrumbs a[data-v-18bfde6e]{width:1ch;min-width:calc(66px - 4ch);background-color:#fff;padding-left:2ch;padding-right:2ch;padding-top:3px;font-size:150%;text-align:center}.rotated[data-v-18bfde6e]{transform:rotate(45deg);-webkit-transform:rotate(45deg);-moz-transform:rotate(45deg);-ms-transform:rotate(45deg);-o-transform:rotate(45deg);transition:transform .25s}.unrotated[data-v-18bfde6e]{transform:rotate(0);-webkit-transform:rotate(0deg);-moz-transform:rotate(0deg);-ms-transform:rotate(0deg);-o-transform:rotate(0deg);transition:transform .25s}li[data-v-18bfde6e]:active,li[data-v-18bfde6e]:hover,li[data-v-18bfde6e]:focus,li>a[data-v-18bfde6e]:active,li>a[data-v-18bfde6e]:hover,li>a[data-v-18bfde6e]:focus{z-index:3}a[data-v-18bfde6e]:active,a[data-v-18bfde6e]:hover,a[data-v-18bfde6e]:focus{outline:2px solid black;z-index:3}.hometab a[data-v-18bfde6e]{width:1ch;min-width:calc(66px - 4ch);background-color:#fff;padding-left:2ch;padding-right:2ch;padding-top:6px;text-align:center}.hometab svg[data-v-18bfde6e]{height:14pt;width:14pt}.searchtab a[data-v-18bfde6e]{min-width:calc(66px - 4ch);background-color:#fff;padding-left:2ch;padding-right:2ch;padding-top:11px;font-size:150%;align-items:center}.searchtab svg[data-v-18bfde6e]{padding-left:.25ch}.searchtab input[data-v-18bfde6e]{margin-top:-4px;outline:none;border:none;border-bottom:1.5px solid black;background-color:transparent;text-align:right;font-size:11pt} diff --git a/desktop/package.json b/desktop/package.json index 830aa31e..84239434 100644 --- a/desktop/package.json +++ b/desktop/package.json @@ -1,54 +1,54 @@ { - "name": "@agritheory/desktop", - "version": "0.1.2", - "type": "module", + "name": "@stonecrop/desktop", + "version": "0.2.2", "description": "desktop specific components for Stonecrop UI", + "license": "MIT", + "type": "module", + "exports": { + ".": { + "import": "./dist/desktop.js", + "require": "./dist/desktop.umd.cjs" + }, + "./styles": "./dist/style.css" + }, "main": "dist/desktop.js", "module": "dist/desktop.js", - "umd": "dist/desktop.umd.cjs", "types": "src/index", "files": [ "dist/*", "src/**/*.vue" ], - "license": "MIT", "scripts": { - "dev": "vite", "build": "vite build", - "story:dev": "vite dev stories/ -c stories/vite.config.ts", + "dev": "vite", + "lint": "eslint . --ext .ts,.vue", "story:build": "vite build stories/ -c stories/vite.config.ts", - "lint": "eslint . --ext .ts,.vue" + "story:dev": "vite dev stories/ -c stories/vite.config.ts" }, "dependencies": { - "@agritheory/aform": "workspace:^0.1.2", - "@agritheory/atable": "workspace:^0.2.0", - "@agritheory/themes": "workspace:*", - "@agritheory/stonecrop": "workspace:^0.1.0", - "immutable": "^4.2.2", + "@stonecrop/aform": "workspace:*", + "@stonecrop/atable": "workspace:*", + "@stonecrop/stonecrop": "workspace:*", + "@stonecrop/themes": "workspace:*", + "immutable": "^4.3.0", "vue": "^3.2.47", - "xstate": "~4.33.6" + "xstate": "~4.37.2" }, "devDependencies": { "@miragejs/graphql": "^0.1.13", - "@typescript-eslint/eslint-plugin": "^5.33.0", - "@typescript-eslint/parser": "^5.33.0", - "@vitejs/plugin-vue": "^4.0.0", - "eslint-config-prettier": "^8.5.0", - "eslint-plugin-vue": "^9.3.0", - "eslint": "^8.22.0", + "@typescript-eslint/eslint-plugin": "^5.59.5", + "@typescript-eslint/parser": "^5.59.5", + "@vitejs/plugin-vue": "^4.2.1", + "eslint": "^8.40.0", + "eslint-config-prettier": "^8.8.0", + "eslint-plugin-vue": "^9.11.1", "miragejs": "^0.1.47", - "typescript": "^4.9.4", - "vite": "^4.1.1", + "typescript": "^5.0.4", + "vite": "^4.3.5", "vue-router": "^4" }, - "exports": { - ".": { - "import": "./dist/desktop.js", - "require": "./dist/desktop.umd.cjs" - }, - "./styles": "./dist/style.css" - }, "engines": { - "node": ">=16.19.1" - } + "node": ">=20.11.0" + }, + "umd": "dist/desktop.umd.cjs" } diff --git a/desktop/src/components/Doctype.vue b/desktop/src/components/Doctype.vue index 3de3681b..1517cf35 100644 --- a/desktop/src/components/Doctype.vue +++ b/desktop/src/components/Doctype.vue @@ -6,9 +6,9 @@ import { ref, watch } from 'vue' import { useRoute } from 'vue-router' -import { AForm } from '@agritheory/aform' -import type { SchemaTypes } from '@agritheory/aform/types' -import { Doctype, useStonecrop } from '@agritheory/stonecrop' +import { AForm } from '@stonecrop/aform' +import type { SchemaTypes } from '@stonecrop/aform/types' +import { DoctypeMeta, useStonecrop } from '@stonecrop/stonecrop' const { stonecrop, isReady } = useStonecrop() const schema = ref([]) @@ -31,7 +31,7 @@ watch(isReady, () => { // const recordId = route.params.record?.toString().toLowerCase() // const saveRecord = async () => { -// const doctype: Doctype = await stonecrop.value.registry.doctypeLoader(doctypeSlug) +// const doctype: DoctypeMeta = await stonecrop.value.registry.getMeta(doctypeSlug) // stonecrop.value.runAction(doctype, 'save', recordId ? [recordId] : []) // } diff --git a/desktop/src/components/Records.vue b/desktop/src/components/Records.vue index 70a76878..c71340d9 100644 --- a/desktop/src/components/Records.vue +++ b/desktop/src/components/Records.vue @@ -7,8 +7,8 @@ diff --git a/graphql_client/stories/index.ts b/graphql_client/stories/index.ts index ea982a41..b0ff560c 100644 --- a/graphql_client/stories/index.ts +++ b/graphql_client/stories/index.ts @@ -1,7 +1,10 @@ import { createApp } from 'vue' import { createRouter, createWebHistory } from 'vue-router' -import { makeServer } from '../tests/server' +import { Stonecrop } from '@stonecrop/stonecrop' + +import { methods } from '../src' +import { makeServer } from './server' import App from './App.vue' const app = createApp(App) @@ -18,18 +21,22 @@ const workflow = server.create('DoctypeWorkflow', { name: 'save', machine: null, }) + const schema = server.create('DoctypeField', { label: 'Subject', }) + const action = server.create('DoctypeAction', { eventName: 'save', }) + server.create('Doctype', { id: 'Issue', name: 'Issue', - workflow: workflow, - schema: [schema], - actions: [action], + workflow: JSON.stringify(workflow), + schema: JSON.stringify([schema]), + actions: JSON.stringify([action]), }) +app.use(Stonecrop, { getMeta: methods.getMeta }) app.mount('#app') diff --git a/graphql_client/tests/server.ts b/graphql_client/stories/server.ts similarity index 100% rename from graphql_client/tests/server.ts rename to graphql_client/stories/server.ts diff --git a/graphql_client/tests/grapql.spec.ts b/graphql_client/tests/grapql.spec.ts deleted file mode 100644 index 6d78f08d..00000000 --- a/graphql_client/tests/grapql.spec.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { describe, it, expect, beforeEach, afterEach } from 'vitest' - -import { Query } from '../src/index' -import { makeServer } from './server' - -describe('query definition', () => { - let server: ReturnType - - beforeEach(() => { - server = makeServer() - }) - - afterEach(() => { - server.shutdown() - }) - - it('query is defined', async () => { - const data = await Query() - expect(data).toBeDefined() - }) -}) diff --git a/graphql_client/tsconfig.json b/graphql_client/tsconfig.json index 0189d907..93cfe6fb 100644 --- a/graphql_client/tsconfig.json +++ b/graphql_client/tsconfig.json @@ -11,5 +11,5 @@ "types/*": ["types/*"] } }, - "include": ["src/**/*", "src/**/*.ts", "src/**/*.vue", "src/gql/index.d.ts", "tests/**/*.ts"] + "include": ["src/**/*", "src/**/*.ts", "src/**/*.vue", "src/gql/index.d.ts", "stories/**/*.ts", "types/**/*.ts"] } diff --git a/graphql_client/types/index.ts b/graphql_client/types/index.ts new file mode 100644 index 00000000..e69de29b diff --git a/graphql_client/vite.config.ts b/graphql_client/vite.config.ts index abaf58eb..e2340b89 100644 --- a/graphql_client/vite.config.ts +++ b/graphql_client/vite.config.ts @@ -1,7 +1,5 @@ -/// - import { resolve } from 'path' -import { defineConfig } from 'vitest/config' +import { defineConfig } from 'vite' const projectRootDir = resolve(__dirname) @@ -15,40 +13,8 @@ export default defineConfig({ sourcemap: true, lib: { entry: resolve(projectRootDir, 'src/index.ts'), - name: '@agritheory/graphql-client', + name: '@stonecrop/graphql-client', }, rollupOptions: {}, }, - test: { - globals: true, - environment: 'jsdom', - coverage: { - lines: 50, - branches: 50, - functions: 50, - statements: 50, - // required for Github Actions CI - reporter: ['text', 'json-summary', 'json'], - reportsDirectory: './coverage', - exclude: [ - 'coverage/**', - 'dist/**', - 'stories/**', - 'types/**', - 'packages/*/test{,s}/**', - '**/*.d.ts', - '**/*.setup.ts', - 'cypress/**', - 'test{,s}/**', - 'test{,-*}.{js,cjs,mjs,ts,tsx,jsx}', - '**/*{.,-}test.{js,cjs,mjs,ts,tsx,jsx}', - '**/*{.,-}spec.{js,cjs,mjs,ts,tsx,jsx}', - '**/__tests__/**', - '**/{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/node_editor/dist/node-editor.js b/node_editor/dist/node-editor.js new file mode 100644 index 00000000..59dc1b85 --- /dev/null +++ b/node_editor/dist/node-editor.js @@ -0,0 +1,6991 @@ +import { defineComponent as fe, toRef as O, ref as ee, computed as q, openBlock as te, createElementBlock as ie, unref as k, normalizeClass as Ke, renderSlot as xe, provide as lt, onMounted as Ve, onBeforeUnmount as jn, watch as ce, h as ue, createBlock as _e, Teleport as bi, getCurrentScope as ia, inject as ut, useSlots as wi, onUnmounted as xi, createVNode as ke, withCtx as Pe, Fragment as Ne, renderList as st, onScopeDispose as Rt, getCurrentInstance as tn, onBeforeMount as _i, nextTick as Re, reactive as Ei, toRefs as Si, effectScope as Ni, watchEffect as uo, createElementVNode as de, toDisplayString as ct, createCommentVNode as ge, markRaw as nt, normalizeStyle as Le, readonly as ki, isRef as Ci, customRef as Mi, resolveDynamicComponent as ra, normalizeProps as Pi, mergeProps as Ht, resolveComponent as la, createTextVNode as ua, withDirectives as sa, withKeys as ca, vModelText as da, withModifiers as Ii } from "vue"; +var so; +const Zn = typeof window < "u", $i = (e) => typeof e < "u", Ti = (e) => typeof e == "boolean", Ye = (e) => typeof e == "function", Be = (e) => typeof e == "number", Ae = (e) => typeof e == "string", Oi = () => { +}; +Zn && (so = window == null ? void 0 : window.navigator) != null && so.userAgent && /iP(ad|hone|od)/.test(window.navigator.userAgent); +function le(e) { + return typeof e == "function" ? e() : k(e); +} +function Di(e, t) { + function n(...o) { + return new Promise((a, i) => { + Promise.resolve(e(() => t.apply(this, o), { fn: t, thisArg: this, args: o })).then(a).catch(i); + }); + } + return n; +} +const va = (e) => e(); +function Bi(e = va) { + const t = ee(!0); + function n() { + t.value = !1; + } + function o() { + t.value = !0; + } + const a = (...i) => { + t.value && e(...i); + }; + return { isActive: ki(t), pause: n, resume: o, eventFilter: a }; +} +function co(e, t = !1, n = "Timeout") { + return new Promise((o, a) => { + setTimeout(t ? () => a(n) : o, e); + }); +} +function Ai(e) { + return e; +} +function _n(e, t) { + let n, o, a; + const i = ee(!0), r = () => { + i.value = !0, a(); + }; + ce(e, r, { flush: "sync" }); + const l = Ye(t) ? t : t.get, u = Ye(t) ? void 0 : t.set, s = Mi((c, d) => (o = c, a = d, { + get() { + return i.value && (n = l(), i.value = !1), o(), n; + }, + set(h) { + u == null || u(h); + } + })); + return Object.isExtensible(s) && (s.trigger = r), s; +} +function Ct(e) { + return ia() ? (Rt(e), !0) : !1; +} +function zi(e, t = !0) { + tn() ? Ve(e) : t ? e() : Re(e); +} +function Dn(e, t = !1) { + function n(d, { flush: h = "sync", deep: b = !1, timeout: m, throwOnTimeout: w } = {}) { + let E = null; + const _ = [new Promise((P) => { + E = ce(e, (G) => { + d(G) !== t && (E == null || E(), P(G)); + }, { + flush: h, + deep: b, + immediate: !0 + }); + })]; + return m != null && _.push(co(m, w).then(() => le(e)).finally(() => E == null ? void 0 : E())), Promise.race(_); + } + function o(d, h) { + if (!Ci(d)) + return n((G) => G === d, h); + const { flush: b = "sync", deep: m = !1, timeout: w, throwOnTimeout: E } = h ?? {}; + let _ = null; + const P = [new Promise((G) => { + _ = ce([e, d], ([y, I]) => { + t !== (y === I) && (_ == null || _(), G(y)); + }, { + flush: b, + deep: m, + immediate: !0 + }); + })]; + return w != null && P.push(co(w, E).then(() => le(e)).finally(() => (_ == null || _(), le(e)))), Promise.race(P); + } + function a(d) { + return n((h) => !!h, d); + } + function i(d) { + return o(null, d); + } + function r(d) { + return o(void 0, d); + } + function l(d) { + return n(Number.isNaN, d); + } + function u(d, h) { + return n((b) => { + const m = Array.from(b); + return m.includes(d) || m.includes(le(d)); + }, h); + } + function s(d) { + return c(1, d); + } + function c(d = 1, h) { + let b = -1; + return n(() => (b += 1, b >= d), h); + } + return Array.isArray(le(e)) ? { + toMatch: n, + toContains: u, + changed: s, + changedTimes: c, + get not() { + return Dn(e, !t); + } + } : { + toMatch: n, + toBe: o, + toBeTruthy: a, + toBeNull: i, + toBeNaN: l, + toBeUndefined: r, + changed: s, + changedTimes: c, + get not() { + return Dn(e, !t); + } + }; +} +function be(e) { + return Dn(e); +} +var vo = Object.getOwnPropertySymbols, Ri = Object.prototype.hasOwnProperty, Vi = Object.prototype.propertyIsEnumerable, Li = (e, t) => { + var n = {}; + for (var o in e) + Ri.call(e, o) && t.indexOf(o) < 0 && (n[o] = e[o]); + if (e != null && vo) + for (var o of vo(e)) + t.indexOf(o) < 0 && Vi.call(e, o) && (n[o] = e[o]); + return n; +}; +function Yi(e, t, n = {}) { + const o = n, { + eventFilter: a = va + } = o, i = Li(o, [ + "eventFilter" + ]); + return ce(e, Di(a, t), i); +} +var Xi = Object.defineProperty, Gi = Object.defineProperties, Hi = Object.getOwnPropertyDescriptors, Ft = Object.getOwnPropertySymbols, ha = Object.prototype.hasOwnProperty, fa = Object.prototype.propertyIsEnumerable, ho = (e, t, n) => t in e ? Xi(e, t, { enumerable: !0, configurable: !0, writable: !0, value: n }) : e[t] = n, Fi = (e, t) => { + for (var n in t || (t = {})) + ha.call(t, n) && ho(e, n, t[n]); + if (Ft) + for (var n of Ft(t)) + fa.call(t, n) && ho(e, n, t[n]); + return e; +}, Ui = (e, t) => Gi(e, Hi(t)), ji = (e, t) => { + var n = {}; + for (var o in e) + ha.call(e, o) && t.indexOf(o) < 0 && (n[o] = e[o]); + if (e != null && Ft) + for (var o of Ft(e)) + t.indexOf(o) < 0 && fa.call(e, o) && (n[o] = e[o]); + return n; +}; +function Je(e, t, n = {}) { + const o = n, { + eventFilter: a + } = o, i = ji(o, [ + "eventFilter" + ]), { eventFilter: r, pause: l, resume: u, isActive: s } = Bi(a); + return { stop: Yi(e, t, Ui(Fi({}, i), { + eventFilter: r + })), pause: l, resume: u, isActive: s }; +} +function ga(e) { + var t; + const n = le(e); + return (t = n == null ? void 0 : n.$el) != null ? t : n; +} +const Kn = Zn ? window : void 0; +function Wn(...e) { + let t, n, o, a; + if (Ae(e[0]) || Array.isArray(e[0]) ? ([n, o, a] = e, t = Kn) : [t, n, o, a] = e, !t) + return Oi; + Array.isArray(n) || (n = [n]), Array.isArray(o) || (o = [o]); + const i = [], r = () => { + i.forEach((c) => c()), i.length = 0; + }, l = (c, d, h, b) => (c.addEventListener(d, h, b), () => c.removeEventListener(d, h, b)), u = ce(() => [ga(t), le(a)], ([c, d]) => { + r(), c && i.push(...n.flatMap((h) => o.map((b) => l(c, h, b, d)))); + }, { immediate: !0, flush: "post" }), s = () => { + u(), r(); + }; + return Ct(s), s; +} +const Zi = (e) => typeof e == "function" ? e : typeof e == "string" ? (t) => t.key === e : Array.isArray(e) ? (t) => e.includes(t.key) : () => !0; +function fo(...e) { + let t, n, o = {}; + e.length === 3 ? (t = e[0], n = e[1], o = e[2]) : e.length === 2 ? typeof e[1] == "object" ? (t = !0, n = e[0], o = e[1]) : (t = e[0], n = e[1]) : (t = !0, n = e[0]); + const { target: a = Kn, eventName: i = "keydown", passive: r = !1 } = o, l = Zi(t); + return Wn(a, i, (u) => { + l(u) && n(u); + }, r); +} +function Ki(e, t = !1) { + const n = ee(), o = () => n.value = !!e(); + return o(), zi(o, t), n; +} +function Wi(e) { + return JSON.parse(JSON.stringify(e)); +} +const go = typeof globalThis < "u" ? globalThis : typeof window < "u" ? window : typeof global < "u" ? global : typeof self < "u" ? self : {}, po = "__vueuse_ssr_handlers__"; +go[po] = go[po] || {}; +var mo = Object.getOwnPropertySymbols, qi = Object.prototype.hasOwnProperty, Qi = Object.prototype.propertyIsEnumerable, Ji = (e, t) => { + var n = {}; + for (var o in e) + qi.call(e, o) && t.indexOf(o) < 0 && (n[o] = e[o]); + if (e != null && mo) + for (var o of mo(e)) + t.indexOf(o) < 0 && Qi.call(e, o) && (n[o] = e[o]); + return n; +}; +function er(e, t, n = {}) { + const o = n, { window: a = Kn } = o, i = Ji(o, ["window"]); + let r; + const l = Ki(() => a && "ResizeObserver" in a), u = () => { + r && (r.disconnect(), r = void 0); + }, s = ce(() => ga(e), (d) => { + u(), l.value && a && d && (r = new ResizeObserver(t), r.observe(d, i)); + }, { immediate: !0, flush: "post" }), c = () => { + u(), s(); + }; + return Ct(c), { + isSupported: l, + stop: c + }; +} +var yo; +(function(e) { + e.UP = "UP", e.RIGHT = "RIGHT", e.DOWN = "DOWN", e.LEFT = "LEFT", e.NONE = "NONE"; +})(yo || (yo = {})); +var tr = Object.defineProperty, bo = Object.getOwnPropertySymbols, nr = Object.prototype.hasOwnProperty, or = Object.prototype.propertyIsEnumerable, wo = (e, t, n) => t in e ? tr(e, t, { enumerable: !0, configurable: !0, writable: !0, value: n }) : e[t] = n, ar = (e, t) => { + for (var n in t || (t = {})) + nr.call(t, n) && wo(e, n, t[n]); + if (bo) + for (var n of bo(t)) + or.call(t, n) && wo(e, n, t[n]); + return e; +}; +const ir = { + easeInSine: [0.12, 0, 0.39, 0], + easeOutSine: [0.61, 1, 0.88, 1], + easeInOutSine: [0.37, 0, 0.63, 1], + easeInQuad: [0.11, 0, 0.5, 0], + easeOutQuad: [0.5, 1, 0.89, 1], + easeInOutQuad: [0.45, 0, 0.55, 1], + easeInCubic: [0.32, 0, 0.67, 0], + easeOutCubic: [0.33, 1, 0.68, 1], + easeInOutCubic: [0.65, 0, 0.35, 1], + easeInQuart: [0.5, 0, 0.75, 0], + easeOutQuart: [0.25, 1, 0.5, 1], + easeInOutQuart: [0.76, 0, 0.24, 1], + easeInQuint: [0.64, 0, 0.78, 0], + easeOutQuint: [0.22, 1, 0.36, 1], + easeInOutQuint: [0.83, 0, 0.17, 1], + easeInExpo: [0.7, 0, 0.84, 0], + easeOutExpo: [0.16, 1, 0.3, 1], + easeInOutExpo: [0.87, 0, 0.13, 1], + easeInCirc: [0.55, 0, 1, 0.45], + easeOutCirc: [0, 0.55, 0.45, 1], + easeInOutCirc: [0.85, 0, 0.15, 1], + easeInBack: [0.36, 0, 0.66, -0.56], + easeOutBack: [0.34, 1.56, 0.64, 1], + easeInOutBack: [0.68, -0.6, 0.32, 1.6] +}; +ar({ + linear: Ai +}, ir); +function wt(e, t, n, o = {}) { + var a, i, r; + const { + clone: l = !1, + passive: u = !1, + eventName: s, + deep: c = !1, + defaultValue: d + } = o, h = tn(), b = n || (h == null ? void 0 : h.emit) || ((a = h == null ? void 0 : h.$emit) == null ? void 0 : a.bind(h)) || ((r = (i = h == null ? void 0 : h.proxy) == null ? void 0 : i.$emit) == null ? void 0 : r.bind(h == null ? void 0 : h.proxy)); + let m = s; + t || (t = "modelValue"), m = s || m || `update:${t.toString()}`; + const w = (_) => l ? Ye(l) ? l(_) : Wi(_) : _, E = () => $i(e[t]) ? w(e[t]) : d; + if (u) { + const _ = E(), P = ee(_); + return ce(() => e[t], (G) => P.value = w(G)), ce(P, (G) => { + (G !== e[t] || c) && b(m, G); + }, { deep: c }), P; + } else + return q({ + get() { + return E(); + }, + set(_) { + b(m, _); + } + }); +} +function H(e = () => { +}) { + const t = ee(/* @__PURE__ */ new Set()); + e && t.value.add(e); + const n = (o) => { + t.value.delete(o); + }; + return { + on: (o) => { + t.value.has(e) && t.value.delete(e), t.value.add(o); + const a = () => n(o); + return Ct(a), { + off: a + }; + }, + off: n, + trigger: (o) => Promise.all(Array.from(t.value).map((a) => a(o))), + fns: t + }; +} +const rr = ["production", "prod"]; +function pa(e, ...t) { + rr.includes(process.env.NODE_ENV || "") || console.warn(`[Vue Flow]: ${e}`, ...t); +} +function lr() { + return { + edgesChange: H(), + nodesChange: H(), + nodeDoubleClick: H(), + nodeClick: H(), + nodeMouseEnter: H(), + nodeMouseMove: H(), + nodeMouseLeave: H(), + nodeContextMenu: H(), + nodeDragStart: H(), + nodeDrag: H(), + nodeDragStop: H(), + nodesInitialized: H(), + miniMapNodeClick: H(), + miniMapNodeDoubleClick: H(), + miniMapNodeMouseEnter: H(), + miniMapNodeMouseMove: H(), + miniMapNodeMouseLeave: H(), + connect: H(), + connectStart: H(), + connectEnd: H(), + clickConnectStart: H(), + clickConnectEnd: H(), + paneReady: H(), + move: H(), + moveStart: H(), + moveEnd: H(), + selectionDragStart: H(), + selectionDrag: H(), + selectionDragStop: H(), + selectionContextMenu: H(), + selectionStart: H(), + selectionEnd: H(), + viewportChangeStart: H(), + viewportChange: H(), + viewportChangeEnd: H(), + paneScroll: H(), + paneClick: H(), + paneContextMenu: H(), + paneMouseEnter: H(), + paneMouseMove: H(), + paneMouseLeave: H(), + edgeContextMenu: H(), + edgeMouseEnter: H(), + edgeMouseMove: H(), + edgeMouseLeave: H(), + edgeDoubleClick: H(), + edgeClick: H(), + edgeUpdateStart: H(), + edgeUpdate: H(), + edgeUpdateEnd: H(), + updateNodeInternals: H(), + error: H((e) => pa(e.message)) + }; +} +function ur(e, t) { + _i(() => { + for (const [n, o] of Object.entries(t.value)) { + const a = (i) => { + e(n, i); + }; + o.on(a), Ct(() => { + o.off(a); + }); + } + }); +} +var pe = /* @__PURE__ */ ((e) => (e.MISSING_VIEWPORT_DIMENSIONS = "MISSING_VIEWPORT_DIMENSIONS", e.NODE_NOT_FOUND = "NODE_NOT_FOUND", e.NODE_MISSING_PARENT = "NODE_MISSING_PARENT", e.NODE_TYPE_MISSING = "NODE_TYPE_MISSING", e.NODE_EXTENT_INVALID = "NODE_EXTENT_INVALID", e.EDGE_INVALID = "EDGE_INVALID", e.EDGE_NOT_FOUND = "EDGE_NOT_FOUND", e.EDGE_SOURCE_MISSING = "EDGE_SOURCE_MISSING", e.EDGE_TARGET_MISSING = "EDGE_TARGET_MISSING", e.EDGE_TYPE_MISSING = "EDGE_TYPE_MISSING", e.EDGE_SOURCE_TARGET_SAME = "EDGE_SOURCE_TARGET_SAME", e.EDGE_SOURCE_TARGET_MISSING = "EDGE_SOURCE_TARGET_MISSING", e.EDGE_ORPHANED = "EDGE_ORPHANED", e))(pe || {}); +const xo = { + MISSING_VIEWPORT_DIMENSIONS: () => "The Vue Flow parent container needs a width and a height to render the graph", + NODE_NOT_FOUND: (e) => `Node not found +Node: ${e}`, + NODE_MISSING_PARENT: (e, t) => `Node is missing a parent +Node: ${e} +Parent: ${t}`, + NODE_TYPE_MISSING: (e) => `Node type is missing +Type: ${e}`, + NODE_EXTENT_INVALID: (e) => `Only child nodes can use a parent extent +Node: ${e}`, + EDGE_INVALID: (e) => `An edge needs a source and a target +Edge: ${e}`, + EDGE_SOURCE_MISSING: (e, t) => `Edge source is missing +Edge: ${e} +Source: ${t}`, + EDGE_TARGET_MISSING: (e, t) => `Edge target is missing +Edge: ${e} +Target: ${t}`, + EDGE_TYPE_MISSING: (e) => `Edge type is missing +Type: ${e}`, + EDGE_SOURCE_TARGET_SAME: (e, t, n) => `Edge source and target are the same +Edge: ${e} +Source: ${t} +Target: ${n}`, + EDGE_SOURCE_TARGET_MISSING: (e, t, n) => `Edge source or target is missing +Edge: ${e} +Source: ${t} +Target: ${n}`, + EDGE_ORPHANED: (e) => `Edge was orphaned (suddenly missing source or target) and has been removed +Edge: ${e}`, + EDGE_NOT_FOUND: (e) => `Edge not found +Edge: ${e}` +}; +class me extends Error { + constructor(t, ...n) { + var o; + super((o = xo[t]) == null ? void 0 : o.call(xo, ...n)), this.code = t; + } +} +const qn = () => typeof window < "u" ? window : { chrome: !1 }; +function _o(e) { + return { + ...e.computedPosition || { x: 0, y: 0 }, + width: e.dimensions.width || 0, + height: e.dimensions.height || 0 + }; +} +function Bn(e, t) { + const n = Math.max(0, Math.min(e.x + e.width, t.x + t.width) - Math.max(e.x, t.x)), o = Math.max(0, Math.min(e.y + e.height, t.y + t.height) - Math.max(e.y, t.y)); + return Math.ceil(n * o); +} +function nn(e) { + return { + width: e.offsetWidth, + height: e.offsetHeight + }; +} +function We(e, t = 0, n = 1) { + return Math.min(Math.max(e, t), n); +} +function ma(e, t) { + return { + x: We(e.x, t[0][0], t[1][0]), + y: We(e.y, t[0][1], t[1][1]) + }; +} +function Eo(e) { + const t = e.getRootNode(), n = qn(); + return "elementFromPoint" in t ? t : n.document; +} +function dt(e) { + return e && "id" in e && "source" in e && "target" in e; +} +function sr(e) { + return dt(e) && "sourceNode" in e && "targetNode" in e; +} +function Vt(e) { + return e && "id" in e && !dt(e); +} +function et(e) { + return Vt(e) && "computedPosition" in e; +} +function cr(e) { + return !!e.width && !!e.height && !!e.x && !!e.y; +} +function dr(e, t = {}) { + let n = t; + return et(e) || (n = { + type: e.type ?? t.type ?? "default", + dimensions: nt({ + width: 0, + height: 0 + }), + handleBounds: { + source: [], + target: [] + }, + computedPosition: nt({ + z: 0, + ...e.position + }), + draggable: void 0, + selectable: void 0, + connectable: void 0, + focusable: void 0, + selected: !1, + dragging: !1, + resizing: !1, + initialized: !1, + ...t, + data: se(e.data) ? e.data : {}, + events: nt(se(e.events) ? e.events : {}) + }), Object.assign({}, n, e, { id: e.id.toString() }); +} +function ya(e, t = {}) { + const n = se(e.events) ? e.events : t.events && se(t.events) ? t.events : {}, o = se(e.data) ? e.data : t.data && se(t.data) ? t.data : {}; + return t = sr(e) ? t : { + ...t, + sourceHandle: (e.sourceHandle ? e.sourceHandle.toString() : void 0) || t.sourceHandle, + targetHandle: (e.targetHandle ? e.targetHandle.toString() : void 0) || t.targetHandle, + type: e.type ?? t.type ?? "default", + source: e.source.toString() || t.source, + target: e.target.toString() || t.target, + updatable: e.updatable ?? t.updatable, + selectable: e.selectable ?? t.selectable, + focusable: e.focusable ?? t.focusable, + data: o, + events: nt(n), + label: (e.label && !Ae(e.label) ? nt(e.label) : e.label) || t.label, + interactionWidth: e.interactionWidth || t.interactionWidth + }, Object.assign({}, t, e, { id: e.id.toString() }); +} +function ba({ source: e, sourceHandle: t, target: n, targetHandle: o }) { + return `vueflow__edge-${e}${t ?? ""}-${n}${o ?? ""}`; +} +function vr(e, t) { + return t.some( + (n) => dt(n) && n.source === e.source && n.target === e.target && (n.sourceHandle === e.sourceHandle || !n.sourceHandle && !e.sourceHandle) && (n.targetHandle === e.targetHandle || !n.targetHandle && !e.targetHandle) + ); +} +function hr({ x: e, y: t }, { x: n, y: o, zoom: a }) { + return { + x: e * a + n, + y: t * a + o + }; +} +function wa({ x: e, y: t }, { x: n, y: o, zoom: a }, i, [r, l]) { + const u = { + x: (e - n) / a, + y: (t - o) / a + }; + return i ? { + x: r * Math.round(u.x / r), + y: l * Math.round(u.y / l) + } : u; +} +function fr(e, t) { + return { + x: Math.min(e.x, t.x), + y: Math.min(e.y, t.y), + x2: Math.max(e.x2, t.x2), + y2: Math.max(e.y2, t.y2) + }; +} +function xa({ x: e, y: t, width: n, height: o }) { + return { + x: e, + y: t, + x2: e + n, + y2: t + o + }; +} +function gr({ x: e, y: t, x2: n, y2: o }) { + return { + x: e, + y: t, + width: n - e, + height: o - t + }; +} +function _a(e) { + const t = e.reduce( + (n, { computedPosition: o = { x: 0, y: 0 }, dimensions: a = { width: 0, height: 0 } } = {}) => fr( + n, + xa({ + ...o, + ...a + }) + ), + { x: 1 / 0, y: 1 / 0, x2: -1 / 0, y2: -1 / 0 } + ); + return gr(t); +} +function Ea(e, t, { x: n, y: o, zoom: a } = { x: 0, y: 0, zoom: 1 }, i = !1, r = !1) { + const l = { + x: (t.x - n) / a, + y: (t.y - o) / a, + width: t.width / a, + height: t.height / a + }; + return e.filter((u) => { + const { computedPosition: s = { x: 0, y: 0 }, dimensions: c = { width: 0, height: 0 }, selectable: d } = u; + if (r && !d) + return !1; + const h = { ...s, width: c.width || 0, height: c.height || 0 }, b = Bn(l, h), m = typeof c.width > "u" || typeof c.height > "u" || c.width === 0 || c.height === 0, w = i && b > 0, E = c.width * c.height; + return m || w || b >= E; + }); +} +function on(e, t) { + const n = e.map((o) => Ae(o) ? o : o.id); + return t.filter((o) => n.includes(o.source) || n.includes(o.target)); +} +function So(e, t, n, o, a, i = 0.1, r = { x: 0, y: 0 }) { + const l = t / (e.width * (1 + i)), u = n / (e.height * (1 + i)), s = Math.min(l, u), c = We(s, o, a), d = e.x + e.width / 2, h = e.y + e.height / 2, b = t / 2 - d * c + (r.x ?? 0), m = n / 2 - h * c + (r.y ?? 0); + return { x: b, y: m, zoom: c }; +} +function pr(e, t) { + return { + x: t.x + e.x, + y: t.y + e.y, + z: (e.z > t.z ? e.z : t.z) + 1 + }; +} +function Sa(e, t) { + if (!e.parentNode) + return !1; + const n = t(e.parentNode); + return n ? n.selected ? !0 : Sa(n, t) : !1; +} +function Ue(e, t) { + return typeof e > "u" ? "" : typeof e == "string" ? e : `${t ? `${t}__` : ""}${Object.keys(e).sort().map((n) => `${n}=${e[n]}`).join("&")}`; +} +function se(e) { + return typeof k(e) < "u"; +} +function mr(e, t, n) { + if (!e.source || !e.target) + return n(new me(pe.EDGE_INVALID, e.id)), !1; + let o; + return dt(e) ? o = e : o = { + ...e, + id: ba(e) + }, o = ya(o), vr(o, t) ? !1 : o; +} +function yr(e, t, n, o, a, i) { + if (!t.source || !t.target) + return i(new me(pe.EDGE_INVALID, e.id)), !1; + const r = o(e.id); + if (!r) + return i(new me(pe.EDGE_NOT_FOUND, e.id)), !1; + const { id: l, ...u } = e, s = { + ...u, + id: a ? ba(t) : l, + source: t.source, + target: t.target, + sourceHandle: t.sourceHandle, + targetHandle: t.targetHandle + }; + return n.splice(n.indexOf(r), 1, s), s; +} +function No(e, t, n, o) { + const a = {}, i = e.map((l) => { + const u = dr(l, { + ...n(l.id), + parentNode: l.parentNode + }); + return l.parentNode && (a[l.parentNode] = !0), u; + }), r = [...i, ...t]; + return i.forEach((l) => { + const u = r.find((s) => s.id === l.parentNode); + l.parentNode && !u && o(new me(pe.NODE_MISSING_PARENT, l.id, l.parentNode)), (l.parentNode || a[l.id]) && (a[l.id] && (l.isParent = !0), u && (u.isParent = !0)); + }), i; +} +var Z = /* @__PURE__ */ ((e) => (e.Left = "left", e.Top = "top", e.Right = "right", e.Bottom = "bottom", e))(Z || {}), Qn = /* @__PURE__ */ ((e) => (e.Partial = "partial", e.Full = "full", e))(Qn || {}), Fe = /* @__PURE__ */ ((e) => (e.Bezier = "default", e.SimpleBezier = "simple-bezier", e.Straight = "straight", e.Step = "step", e.SmoothStep = "smoothstep", e))(Fe || {}), qe = /* @__PURE__ */ ((e) => (e.Strict = "strict", e.Loose = "loose", e))(qe || {}), An = /* @__PURE__ */ ((e) => (e.Arrow = "arrow", e.ArrowClosed = "arrowclosed", e))(An || {}), Ut = /* @__PURE__ */ ((e) => (e.Free = "free", e.Vertical = "vertical", e.Horizontal = "horizontal", e))(Ut || {}); +const ko = Symbol("vueFlow"), Na = Symbol("nodeId"), ka = Symbol("nodeRef"), br = Symbol("edgeId"), wr = Symbol("edgeRef"), an = Symbol("slots"); +function xr(e) { + const t = e ?? ut(Na, ""), n = ut(ka, null), { findNode: o, edges: a, emits: i } = ve(), r = o(t); + return r || i.error(new me(pe.NODE_NOT_FOUND, t)), { + id: t, + nodeEl: n, + node: r, + parentNode: q(() => o(r.parentNode)), + connectedEdges: q(() => on([r], a.value)) + }; +} +function Jn(e) { + return "clientX" in e; +} +function ot(e, t) { + var n, o; + const a = Jn(e), i = a ? e.clientX : (n = e.touches) == null ? void 0 : n[0].clientX, r = a ? e.clientY : (o = e.touches) == null ? void 0 : o[0].clientY; + return { + x: i - ((t == null ? void 0 : t.left) ?? 0), + y: r - ((t == null ? void 0 : t.top) ?? 0) + }; +} +function jt(e, t, n) { + const o = ((n == null ? void 0 : n.x) ?? 0) + t.x, a = ((n == null ? void 0 : n.y) ?? 0) + t.y, i = (n == null ? void 0 : n.width) ?? t.width, r = (n == null ? void 0 : n.height) ?? t.height; + switch (e) { + case Z.Top: + return { + x: o + i / 2, + y: a + }; + case Z.Right: + return { + x: o + i, + y: a + r / 2 + }; + case Z.Bottom: + return { + x: o + i / 2, + y: a + r + }; + case Z.Left: + return { + x: o, + y: a + r / 2 + }; + } +} +function Co(e = [], t) { + return e.length ? !t || e.length === 1 ? e[0] : t && e.find((n) => n.id === t) || null : null; +} +function _r(e, t, n, o, a, i) { + const r = jt( + n, + { + ...e.dimensions, + ...e.computedPosition + }, + t + ), l = jt( + i, + { + ...o.dimensions, + ...o.computedPosition + }, + a + ); + return { + sourceX: r.x, + sourceY: r.y, + targetX: l.x, + targetY: l.y + }; +} +function Er({ + sourcePos: e, + targetPos: t, + sourceWidth: n, + sourceHeight: o, + targetWidth: a, + targetHeight: i, + width: r, + height: l, + viewport: u +}) { + const s = { + x: Math.min(e.x, t.x), + y: Math.min(e.y, t.y), + x2: Math.max(e.x + n, t.x + a), + y2: Math.max(e.y + o, t.y + i) + }; + s.x === s.x2 && (s.x2 += 1), s.y === s.y2 && (s.y2 += 1); + const c = xa({ + x: (0 - u.x) / u.zoom, + y: (0 - u.y) / u.zoom, + width: r / u.zoom, + height: l / u.zoom + }), d = Math.max(0, Math.min(c.x2, s.x2) - Math.max(c.x, s.x)), h = Math.max(0, Math.min(c.y2, s.y2) - Math.max(c.y, s.y)); + return Math.ceil(d * h) > 0; +} +function Sr(e, t, n = !1) { + let o = -1; + const a = e.reduce((i, r) => { + const l = Be(r.zIndex); + let u = l ? r.zIndex : 0; + const s = t(r.source), c = t(r.target); + return !s || !c || (n && (u = l ? r.zIndex : Math.max(s.computedPosition.z || 0, c.computedPosition.z || 0)), i[u] ? i[u].push(r) : i[u] = [r], o = u > o ? u : o), i; + }, {}); + return Object.entries(Object.keys(a).length ? a : { 0: [] }).map(([i, r]) => { + const l = +i; + return { + edges: r, + level: l, + isMaxLevel: l === o + }; + }); +} +function En(e) { + e == null || e.classList.remove("valid", "connecting", "vue-flow__handle-valid", "vue-flow__handle-connecting"); +} +function Mo(e, t, n, o) { + return (t[n] || []).reduce((a, i) => (`${e.id}-${i.id}-${n}` !== o && a.push({ + id: i.id || null, + type: n, + nodeId: e.id, + ...jt( + i.position, + { + ...e.dimensions, + ...e.computedPosition + }, + i + ) + }), a), []); +} +function Nr(e, t, n) { + let o = null, a = 1 / 0; + return n.forEach((i) => { + const r = Math.sqrt((i.x - e.x) ** 2 + (i.y - e.y) ** 2); + r <= t && r < a && (a = r, o = i); + }), o; +} +function Po(e, t, n, o, a, i, r, l, u, s) { + const c = i === "target", d = l.querySelector(`.vue-flow__handle[data-id="${t == null ? void 0 : t.nodeId}-${t == null ? void 0 : t.id}-${t == null ? void 0 : t.type}"]`), { x: h, y: b } = ot(e), m = l.elementFromPoint(h, b), w = m != null && m.classList.contains("vue-flow__handle") ? m : d, E = { + handleDomNode: w, + isValid: !1, + connection: { source: "", target: "", sourceHandle: null, targetHandle: null }, + endHandle: null + }; + if (w) { + const _ = Ca(void 0, w), P = w.getAttribute("data-nodeid"), G = w.getAttribute("data-handleid"), y = w.classList.contains("connectable"), I = w.classList.contains("connectableend"), z = { + source: c ? P : o, + sourceHandle: c ? G : a, + target: c ? o : P, + targetHandle: c ? a : G + }; + E.connection = z, y && I && (n === qe.Strict ? c && _ === "source" || !c && _ === "target" : P !== o || G !== a) && (E.endHandle = { + nodeId: P, + handleId: G, + type: _ + }, E.isValid = r(z, { + edges: u, + sourceNode: s(z.source), + targetNode: s(z.target) + })); + } + return E; +} +function kr({ nodes: e, nodeId: t, handleId: n, handleType: o }) { + return e.reduce((a, i) => { + const { handleBounds: r } = i; + let l = [], u = []; + return r && (l = Mo(i, r, "source", `${t}-${n}-${o}`), u = Mo(i, r, "target", `${t}-${n}-${o}`)), a.push(...l, ...u), a; + }, []); +} +function Ca(e, t) { + return e || (t != null && t.classList.contains("target") ? "target" : t != null && t.classList.contains("source") ? "source" : null); +} +function Cr(e, t) { + let n = null; + return t ? n = "valid" : e && !t && (n = "invalid"), n; +} +function Io(e, t, n) { + return e < t ? We(Math.abs(e - t), 1, 50) / 50 : e > n ? -We(Math.abs(e - n), 1, 50) / 50 : 0; +} +function Ma(e, t) { + const n = Io(e.x, 35, t.width - 35) * 20, o = Io(e.y, 35, t.height - 35) * 20; + return [n, o]; +} +function $t() { + return !0; +} +function Pa({ + handleId: e, + nodeId: t, + type: n, + isValidConnection: o, + edgeUpdaterType: a, + onEdgeUpdate: i, + onEdgeUpdateEnd: r +}) { + const l = q(() => le(n) === "target"), { + vueFlowRef: u, + connectionMode: s, + connectionRadius: c, + connectOnClick: d, + connectionClickStartHandle: h, + nodesConnectable: b, + autoPanOnConnect: m, + findNode: w, + panBy: E, + getNodes: _, + startConnection: P, + updateConnection: G, + endConnection: y, + emits: I, + viewport: z, + edges: f, + isValidConnection: x + } = ve(); + let N = null, C = !1, T = null; + function J(p) { + var R; + const S = Jn(p), B = Eo(p.target); + if (S && p.button === 0 || !S) { + let F = function(Q) { + D = ot(Q, g), V = Nr( + wa(D, z.value, !1, [1, 1]), + c.value, + Y + ), L || (W(), L = !0); + const oe = Po( + Q, + V, + s.value, + le(t), + le(e), + l.value ? "target" : "source", + U, + B, + f.value, + w + ); + if (N = oe.connection, C = oe.isValid, T = oe.handleDomNode, G( + V && C ? hr( + { + x: V.x, + y: V.y + }, + z.value + ) : D, + oe.endHandle, + Cr(!!V, C) + ), !V && !C && !T) + return En($); + N && N.source !== N.target && T && (En($), $ = T, T.classList.add("connecting", "vue-flow__handle-connecting"), T.classList.toggle("valid", C), T.classList.toggle("vue-flow__handle-valid", C)); + }, j = function(Q) { + (V || T) && N && C && (i ? i(Q, N) : I.connect(N)), I.connectEnd(Q), a && (r == null || r(Q)), En($), cancelAnimationFrame(K), y(Q), L = !1, C = !1, N = null, T = null, B.removeEventListener("mousemove", F), B.removeEventListener("mouseup", j), B.removeEventListener("touchmove", F), B.removeEventListener("touchend", j); + }; + const A = w(le(t)); + let U = o || x.value || $t; + !U && A && (U = (l ? A.isValidSourcePos : A.isValidTargetPos) || $t); + let V, K = 0; + const { x: ne, y: re } = ot(p), M = B == null ? void 0 : B.elementFromPoint(ne, re), v = Ca(le(a), M), g = (R = u.value) == null ? void 0 : R.getBoundingClientRect(); + if (!g || !v) + return; + let $, D = ot(p, g), L = !1; + const Y = kr({ + nodes: _.value, + nodeId: le(t), + handleId: le(e), + handleType: v + }), W = () => { + if (!m) + return; + const [Q, oe] = Ma(D, g); + E({ x: Q, y: oe }), K = requestAnimationFrame(W); + }; + P( + { + nodeId: le(t), + handleId: le(e), + type: v + }, + { + x: ne - g.left, + y: re - g.top + }, + p + ), I.connectStart({ event: p, nodeId: le(t), handleId: le(e), handleType: v }), B.addEventListener("mousemove", F), B.addEventListener("mouseup", j), B.addEventListener("touchmove", F), B.addEventListener("touchend", j); + } + } + function ae(p) { + if (d.value) + if (!h.value) + I.clickConnectStart({ event: p, nodeId: le(t), handleId: le(e) }), P( + { nodeId: le(t), type: le(n), handleId: le(e) }, + void 0, + p, + !0 + ); + else { + let R = o || x.value || $t; + const S = w(le(t)); + if (!R && S && (R = (l ? S.isValidSourcePos : S.isValidTargetPos) || $t), S && (typeof S.connectable > "u" ? b.value : S.connectable) === !1) + return; + const B = Eo(p.target), { connection: F, isValid: j } = Po( + p, + { + nodeId: le(t), + id: le(e), + type: le(n) + }, + s.value, + h.value.nodeId, + h.value.handleId || null, + h.value.type, + R, + B, + f.value, + w + ), A = F.source === F.target; + j && !A && I.connect(F), I.clickConnectEnd(p), y(p, !0); + } + } + return { + handlePointerDown: J, + handleClick: ae + }; +} +function Mr(e, t) { + const n = {}; + for (const o in e) + t.includes(o) || Object.defineProperty(n, o, { + enumerable: !0, + get: () => e[o] + }); + return n; +} +const Pr = ["data-id", "data-handleid", "data-nodeid", "data-handlepos"], Ir = { + name: "Handle", + compatConfig: { MODE: 3 } +}, vt = /* @__PURE__ */ fe({ + ...Ir, + props: { + id: null, + type: null, + position: { default: Z.Top }, + isValidConnection: { type: Function }, + connectable: { type: [Boolean, String, Function], default: void 0 }, + connectableStart: { type: Boolean, default: !0 }, + connectableEnd: { type: Boolean, default: !0 } + }, + setup(e) { + const t = Mr(e, ["position", "connectable", "connectableStart", "connectableEnd", "id", "isValidConnection"]), n = O(t, "type", "source"), { + connectionStartHandle: o, + connectionClickStartHandle: a, + connectionEndHandle: i, + vueFlowRef: r, + nodesConnectable: l, + noDragClassName: u, + noPanClassName: s + } = ve(), { id: c, node: d, nodeEl: h, connectedEdges: b } = xr(), m = ee(), w = q(() => e.id ?? `${c}__handle-${e.position}`), E = q(() => typeof e.connectableStart < "u" ? e.connectableStart : !0), _ = q(() => typeof e.connectableEnd < "u" ? e.connectableEnd : !0), { handlePointerDown: P, handleClick: G } = Pa({ + nodeId: c, + handleId: w, + isValidConnection: e.isValidConnection, + type: n + }), y = q(() => Ae(e.connectable) && e.connectable === "single" ? !b.value.some((N) => { + const C = N[`${n.value}Handle`]; + return N[n.value] !== c ? !1 : C ? C === w.value : !0; + }) : Ye(e.connectable) ? e.connectable(d, b.value) : se(e.connectable) ? e.connectable : l.value), I = q( + () => { + var N, C, T, J, ae, p; + return ((N = o.value) == null ? void 0 : N.nodeId) === c && ((C = o.value) == null ? void 0 : C.handleId) === w.value && ((T = o.value) == null ? void 0 : T.type) === n.value || ((J = i.value) == null ? void 0 : J.nodeId) === c && ((ae = i.value) == null ? void 0 : ae.handleId) === w.value && ((p = i.value) == null ? void 0 : p.type) === n.value; + } + ), z = q( + () => { + var N, C, T; + return ((N = a.value) == null ? void 0 : N.nodeId) === c && ((C = a.value) == null ? void 0 : C.handleId) === w.value && ((T = a.value) == null ? void 0 : T.type) === n.value; + } + ); + be(() => d.initialized).toBe(!0, { flush: "post" }).then(() => { + var N; + const C = (N = d.handleBounds[n.value]) == null ? void 0 : N.find((B) => B.id === w.value); + if (!r.value || C) + return; + const T = r.value.querySelector(".vue-flow__transformationpane"); + if (!h || !m.value || !T || !w.value) + return; + const J = h.value.getBoundingClientRect(), ae = m.value.getBoundingClientRect(), p = window.getComputedStyle(T), { m22: R } = new window.DOMMatrixReadOnly(p.transform), S = { + id: w.value, + position: e.position, + x: (ae.left - J.left) / R, + y: (ae.top - J.top) / R, + ...nn(m.value) + }; + d.handleBounds[n.value] = [...d.handleBounds[n.value] ?? [], S]; + }); + function f(N) { + const C = Jn(N); + y.value && E.value && (C && N.button === 0 || !C) && P(N); + } + function x(N) { + !c || !a.value && !E.value || y.value && G(N); + } + return (N, C) => (te(), ie("div", { + ref_key: "handle", + ref: m, + "data-id": `${k(c)}-${k(w)}-${k(n)}`, + "data-handleid": k(w), + "data-nodeid": k(c), + "data-handlepos": e.position, + class: Ke(["vue-flow__handle", [ + `vue-flow__handle-${e.position}`, + `vue-flow__handle-${k(w)}`, + k(u), + k(s), + k(n), + { + connectable: k(y), + connecting: k(z), + connectablestart: k(E), + connectableend: k(_), + connectionindicator: k(y) && (k(E) && !k(I) || k(_) && k(I)) + } + ]]), + onMousedown: f, + onTouchstartPassive: f, + onClick: x + }, [ + xe(N.$slots, "default", { id: e.id }) + ], 42, Pr)); + } +}), rn = function({ + sourcePosition: e = Z.Bottom, + targetPosition: t = Z.Top, + label: n, + connectable: o = !0, + isValidTargetPos: a, + isValidSourcePos: i +}) { + return [ + ue(vt, { type: "target", position: t, connectable: o, isValidConnection: a }), + typeof n != "string" && n ? ue(n) : ue("div", { innerHTML: n }), + ue(vt, { type: "source", position: e, connectable: o, isValidConnection: i }) + ]; +}; +rn.props = ["sourcePosition", "targetPosition", "label", "isValidTargetPos", "isValidSourcePos", "connectable"]; +rn.inheritAttrs = !1; +rn.compatConfig = { MODE: 3 }; +const $r = rn, ln = function({ + sourcePosition: e = Z.Bottom, + label: t, + connectable: n = !0, + isValidSourcePos: o +}) { + return [ + typeof t != "string" && t ? ue(t) : ue("div", { innerHTML: t }), + ue(vt, { type: "source", position: e, connectable: n, isValidConnection: o }) + ]; +}; +ln.props = ["sourcePosition", "label", "isValidSourcePos", "connectable"]; +ln.inheritAttrs = !1; +ln.compatConfig = { MODE: 3 }; +const Tr = ln, un = function({ + targetPosition: e = Z.Top, + label: t, + connectable: n = !0, + isValidTargetPos: o +}) { + return [ + ue(vt, { type: "target", position: e, connectable: n, isValidConnection: o }), + typeof t != "string" && t ? ue(t) : ue("div", { innerHTML: t }) + ]; +}; +un.props = ["targetPosition", "label", "isValidTargetPos", "connectable"]; +un.inheritAttrs = !1; +un.compatConfig = { MODE: 3 }; +const Or = un; +function $o(e, t, n) { + let o = e; + do { + if (o && o.matches(t)) + return !0; + if (o === n) + return !1; + o = o.parentElement; + } while (o); + return !1; +} +function Dr(e, t, n, o, a) { + return e.filter( + (i) => (i.selected || i.id === a) && (!i.parentNode || !Sa(i, o)) && (i.draggable || t && typeof i.draggable > "u") + ).map( + (i) => { + var r, l; + return nt({ + id: i.id, + position: i.position || { x: 0, y: 0 }, + distance: { + x: n.x - ((r = i.computedPosition) == null ? void 0 : r.x) || 0, + y: n.y - ((l = i.computedPosition) == null ? void 0 : l.y) || 0 + }, + from: i.computedPosition, + extent: i.extent, + parentNode: i.parentNode, + dimensions: i.dimensions + }); + } + ); +} +function Sn({ + id: e, + dragItems: t, + findNode: n +}) { + const o = t.reduce((a, i) => { + const r = n(i.id); + return r && a.push(r), a; + }, []); + return [e ? o.find((a) => a.id === e) : o[0], o]; +} +function Ia(e) { + if (Array.isArray(e)) + switch (e.length) { + case 1: + return [e[0], e[0], e[0], e[0]]; + case 2: + return [e[0], e[1], e[0], e[1]]; + case 3: + return [e[0], e[1], e[2], e[1]]; + case 4: + return e; + default: + return [0, 0, 0, 0]; + } + return [e, e, e, e]; +} +function Br(e, t, n) { + const [o, a, i, r] = typeof e != "string" ? Ia(e.padding) : [0, 0, 0, 0]; + return n && Be(n.computedPosition.x) && Be(n.computedPosition.y) && Be(n.dimensions.width) && Be(n.dimensions.height) ? [ + [n.computedPosition.x + r, n.computedPosition.y + o], + [ + n.computedPosition.x + (n.dimensions.width - t.dimensions.width) - a, + n.computedPosition.y + (n.dimensions.height - t.dimensions.height) - i + ] + ] : !1; +} +function Ar(e, t, n, o) { + let a = e.extent || n; + if (a === "parent" || !Array.isArray(a) && (a == null ? void 0 : a.range) === "parent") + if (e.parentNode && o && e.dimensions.width && e.dimensions.height) { + const i = Br(a, e, o); + i && (a = i); + } else + t(new me(pe.NODE_EXTENT_INVALID, e.id)), a = n; + else if (Array.isArray(a)) { + const i = (o == null ? void 0 : o.computedPosition.x) || 0, r = (o == null ? void 0 : o.computedPosition.y) || 0; + a = [ + [a[0][0] + i, a[0][1] + r], + [a[1][0] + i, a[1][1] + r] + ]; + } else if (a != null && a.range && Array.isArray(a.range)) { + const [i, r, l, u] = Ia(a.padding), s = (o == null ? void 0 : o.computedPosition.x) || 0, c = (o == null ? void 0 : o.computedPosition.y) || 0; + a = [ + [a.range[0][0] + s + u, a.range[0][1] + c + i], + [a.range[1][0] + s - r, a.range[1][1] + c - l] + ]; + } + return a; +} +function eo(e, t, n, o, a) { + const i = Ar(e, n, o, a), r = ma(t, i); + return { + position: { + x: r.x - ((a == null ? void 0 : a.computedPosition.x) || 0), + y: r.y - ((a == null ? void 0 : a.computedPosition.y) || 0) + }, + computedPosition: r + }; +} +function $a() { + const { getSelectedNodes: e, nodeExtent: t, updateNodePositions: n, findNode: o, snapGrid: a, snapToGrid: i, nodesDraggable: r, emits: l } = ve(); + return (u, s = !1) => { + const c = i.value ? a.value[0] : 5, d = i.value ? a.value[1] : 5, h = s ? 4 : 1, b = u.x * c * h, m = u.y * d * h, w = e.value.filter((E) => E.draggable || r && typeof E.draggable > "u").map((E) => { + const _ = { x: E.computedPosition.x + b, y: E.computedPosition.y + m }, { computedPosition: P } = eo( + E, + _, + l.error, + t.value, + E.parentNode ? o(E.parentNode) : void 0 + ); + return { + id: E.id, + position: P, + from: E.position, + distance: { x: u.x, y: u.y }, + dimensions: E.dimensions + }; + }); + n(w, !0, !1); + }; +} +function zr() { + return { + doubleClick: H(), + click: H(), + mouseEnter: H(), + mouseMove: H(), + mouseLeave: H(), + contextMenu: H(), + dragStart: H(), + drag: H(), + dragStop: H() + }; +} +function Rr(e, t) { + const n = zr(); + return n.doubleClick.on((o) => { + var a, i; + t.nodeDoubleClick(o), (i = (a = e.events) == null ? void 0 : a.doubleClick) == null || i.call(a, o); + }), n.click.on((o) => { + var a, i; + t.nodeClick(o), (i = (a = e.events) == null ? void 0 : a.click) == null || i.call(a, o); + }), n.mouseEnter.on((o) => { + var a, i; + t.nodeMouseEnter(o), (i = (a = e.events) == null ? void 0 : a.mouseEnter) == null || i.call(a, o); + }), n.mouseMove.on((o) => { + var a, i; + t.nodeMouseMove(o), (i = (a = e.events) == null ? void 0 : a.mouseMove) == null || i.call(a, o); + }), n.mouseLeave.on((o) => { + var a, i; + t.nodeMouseLeave(o), (i = (a = e.events) == null ? void 0 : a.mouseLeave) == null || i.call(a, o); + }), n.contextMenu.on((o) => { + var a, i; + t.nodeContextMenu(o), (i = (a = e.events) == null ? void 0 : a.contextMenu) == null || i.call(a, o); + }), n.dragStart.on((o) => { + var a, i; + t.nodeDragStart(o), (i = (a = e.events) == null ? void 0 : a.dragStart) == null || i.call(a, o); + }), n.drag.on((o) => { + var a, i; + t.nodeDrag(o), (i = (a = e.events) == null ? void 0 : a.drag) == null || i.call(a, o); + }), n.dragStop.on((o) => { + var a, i; + t.nodeDragStop(o), (i = (a = e.events) == null ? void 0 : a.dragStop) == null || i.call(a, o); + }), Object.entries(n).reduce( + (o, [a, i]) => (o.emit[a] = i.trigger, o.on[a] = i.on, o), + { emit: {}, on: {} } + ); +} +function Vr() { + const { viewport: e, snapGrid: t, snapToGrid: n } = ve(); + return ({ sourceEvent: o }) => { + const a = o.touches ? o.touches[0].clientX : o.clientX, i = o.touches ? o.touches[0].clientY : o.clientY, r = { + x: (a - e.value.x) / e.value.zoom, + y: (i - e.value.y) / e.value.zoom + }; + return { + xSnapped: n.value ? t.value[0] * Math.round(r.x / t.value[0]) : r.x, + ySnapped: n.value ? t.value[1] * Math.round(r.y / t.value[1]) : r.y, + ...r + }; + }; +} +function To(e, t, n) { + const o = t.querySelectorAll(`.vue-flow__handle${e}`); + if (!o || !o.length) + return; + const a = Array.from(o), i = t.getBoundingClientRect(); + return a.map((r) => { + const l = r.getBoundingClientRect(); + return { + id: r.getAttribute("data-handleid"), + position: r.getAttribute("data-handlepos"), + x: (l.left - i.left) / n, + y: (l.top - i.top) / n, + ...nn(r) + }; + }); +} +function zn(e, t, n, o, a, i = !1, r) { + a.value = !1, e.selected ? (i || e.selected && t) && (o([e]), Re(r.blur)) : n([e]); +} +var Lr = { value: () => { +} }; +function sn() { + for (var e = 0, t = arguments.length, n = {}, o; e < t; ++e) { + if (!(o = arguments[e] + "") || o in n || /[\s.]/.test(o)) + throw new Error("illegal type: " + o); + n[o] = []; + } + return new Lt(n); +} +function Lt(e) { + this._ = e; +} +function Yr(e, t) { + return e.trim().split(/^|\s+/).map(function(n) { + var o = "", a = n.indexOf("."); + if (a >= 0 && (o = n.slice(a + 1), n = n.slice(0, a)), n && !t.hasOwnProperty(n)) + throw new Error("unknown type: " + n); + return { type: n, name: o }; + }); +} +Lt.prototype = sn.prototype = { + constructor: Lt, + on: function(e, t) { + var n = this._, o = Yr(e + "", n), a, i = -1, r = o.length; + if (arguments.length < 2) { + for (; ++i < r; ) + if ((a = (e = o[i]).type) && (a = Xr(n[a], e.name))) + return a; + return; + } + if (t != null && typeof t != "function") + throw new Error("invalid callback: " + t); + for (; ++i < r; ) + if (a = (e = o[i]).type) + n[a] = Oo(n[a], e.name, t); + else if (t == null) + for (a in n) + n[a] = Oo(n[a], e.name, null); + return this; + }, + copy: function() { + var e = {}, t = this._; + for (var n in t) + e[n] = t[n].slice(); + return new Lt(e); + }, + call: function(e, t) { + if ((a = arguments.length - 2) > 0) + for (var n = new Array(a), o = 0, a, i; o < a; ++o) + n[o] = arguments[o + 2]; + if (!this._.hasOwnProperty(e)) + throw new Error("unknown type: " + e); + for (i = this._[e], o = 0, a = i.length; o < a; ++o) + i[o].value.apply(t, n); + }, + apply: function(e, t, n) { + if (!this._.hasOwnProperty(e)) + throw new Error("unknown type: " + e); + for (var o = this._[e], a = 0, i = o.length; a < i; ++a) + o[a].value.apply(t, n); + } +}; +function Xr(e, t) { + for (var n = 0, o = e.length, a; n < o; ++n) + if ((a = e[n]).name === t) + return a.value; +} +function Oo(e, t, n) { + for (var o = 0, a = e.length; o < a; ++o) + if (e[o].name === t) { + e[o] = Lr, e = e.slice(0, o).concat(e.slice(o + 1)); + break; + } + return n != null && e.push({ name: t, value: n }), e; +} +var Rn = "http://www.w3.org/1999/xhtml"; +const Do = { + svg: "http://www.w3.org/2000/svg", + xhtml: Rn, + xlink: "http://www.w3.org/1999/xlink", + xml: "http://www.w3.org/XML/1998/namespace", + xmlns: "http://www.w3.org/2000/xmlns/" +}; +function cn(e) { + var t = e += "", n = t.indexOf(":"); + return n >= 0 && (t = e.slice(0, n)) !== "xmlns" && (e = e.slice(n + 1)), Do.hasOwnProperty(t) ? { space: Do[t], local: e } : e; +} +function Gr(e) { + return function() { + var t = this.ownerDocument, n = this.namespaceURI; + return n === Rn && t.documentElement.namespaceURI === Rn ? t.createElement(e) : t.createElementNS(n, e); + }; +} +function Hr(e) { + return function() { + return this.ownerDocument.createElementNS(e.space, e.local); + }; +} +function Ta(e) { + var t = cn(e); + return (t.local ? Hr : Gr)(t); +} +function Fr() { +} +function to(e) { + return e == null ? Fr : function() { + return this.querySelector(e); + }; +} +function Ur(e) { + typeof e != "function" && (e = to(e)); + for (var t = this._groups, n = t.length, o = new Array(n), a = 0; a < n; ++a) + for (var i = t[a], r = i.length, l = o[a] = new Array(r), u, s, c = 0; c < r; ++c) + (u = i[c]) && (s = e.call(u, u.__data__, c, i)) && ("__data__" in u && (s.__data__ = u.__data__), l[c] = s); + return new we(o, this._parents); +} +function jr(e) { + return e == null ? [] : Array.isArray(e) ? e : Array.from(e); +} +function Zr() { + return []; +} +function Oa(e) { + return e == null ? Zr : function() { + return this.querySelectorAll(e); + }; +} +function Kr(e) { + return function() { + return jr(e.apply(this, arguments)); + }; +} +function Wr(e) { + typeof e == "function" ? e = Kr(e) : e = Oa(e); + for (var t = this._groups, n = t.length, o = [], a = [], i = 0; i < n; ++i) + for (var r = t[i], l = r.length, u, s = 0; s < l; ++s) + (u = r[s]) && (o.push(e.call(u, u.__data__, s, r)), a.push(u)); + return new we(o, a); +} +function Da(e) { + return function() { + return this.matches(e); + }; +} +function Ba(e) { + return function(t) { + return t.matches(e); + }; +} +var qr = Array.prototype.find; +function Qr(e) { + return function() { + return qr.call(this.children, e); + }; +} +function Jr() { + return this.firstElementChild; +} +function el(e) { + return this.select(e == null ? Jr : Qr(typeof e == "function" ? e : Ba(e))); +} +var tl = Array.prototype.filter; +function nl() { + return Array.from(this.children); +} +function ol(e) { + return function() { + return tl.call(this.children, e); + }; +} +function al(e) { + return this.selectAll(e == null ? nl : ol(typeof e == "function" ? e : Ba(e))); +} +function il(e) { + typeof e != "function" && (e = Da(e)); + for (var t = this._groups, n = t.length, o = new Array(n), a = 0; a < n; ++a) + for (var i = t[a], r = i.length, l = o[a] = [], u, s = 0; s < r; ++s) + (u = i[s]) && e.call(u, u.__data__, s, i) && l.push(u); + return new we(o, this._parents); +} +function Aa(e) { + return new Array(e.length); +} +function rl() { + return new we(this._enter || this._groups.map(Aa), this._parents); +} +function Zt(e, t) { + this.ownerDocument = e.ownerDocument, this.namespaceURI = e.namespaceURI, this._next = null, this._parent = e, this.__data__ = t; +} +Zt.prototype = { + constructor: Zt, + appendChild: function(e) { + return this._parent.insertBefore(e, this._next); + }, + insertBefore: function(e, t) { + return this._parent.insertBefore(e, t); + }, + querySelector: function(e) { + return this._parent.querySelector(e); + }, + querySelectorAll: function(e) { + return this._parent.querySelectorAll(e); + } +}; +function ll(e) { + return function() { + return e; + }; +} +function ul(e, t, n, o, a, i) { + for (var r = 0, l, u = t.length, s = i.length; r < s; ++r) + (l = t[r]) ? (l.__data__ = i[r], o[r] = l) : n[r] = new Zt(e, i[r]); + for (; r < u; ++r) + (l = t[r]) && (a[r] = l); +} +function sl(e, t, n, o, a, i, r) { + var l, u, s = /* @__PURE__ */ new Map(), c = t.length, d = i.length, h = new Array(c), b; + for (l = 0; l < c; ++l) + (u = t[l]) && (h[l] = b = r.call(u, u.__data__, l, t) + "", s.has(b) ? a[l] = u : s.set(b, u)); + for (l = 0; l < d; ++l) + b = r.call(e, i[l], l, i) + "", (u = s.get(b)) ? (o[l] = u, u.__data__ = i[l], s.delete(b)) : n[l] = new Zt(e, i[l]); + for (l = 0; l < c; ++l) + (u = t[l]) && s.get(h[l]) === u && (a[l] = u); +} +function cl(e) { + return e.__data__; +} +function dl(e, t) { + if (!arguments.length) + return Array.from(this, cl); + var n = t ? sl : ul, o = this._parents, a = this._groups; + typeof e != "function" && (e = ll(e)); + for (var i = a.length, r = new Array(i), l = new Array(i), u = new Array(i), s = 0; s < i; ++s) { + var c = o[s], d = a[s], h = d.length, b = vl(e.call(c, c && c.__data__, s, o)), m = b.length, w = l[s] = new Array(m), E = r[s] = new Array(m), _ = u[s] = new Array(h); + n(c, d, w, E, _, b, t); + for (var P = 0, G = 0, y, I; P < m; ++P) + if (y = w[P]) { + for (P >= G && (G = P + 1); !(I = E[G]) && ++G < m; ) + ; + y._next = I || null; + } + } + return r = new we(r, o), r._enter = l, r._exit = u, r; +} +function vl(e) { + return typeof e == "object" && "length" in e ? e : Array.from(e); +} +function hl() { + return new we(this._exit || this._groups.map(Aa), this._parents); +} +function fl(e, t, n) { + var o = this.enter(), a = this, i = this.exit(); + return typeof e == "function" ? (o = e(o), o && (o = o.selection())) : o = o.append(e + ""), t != null && (a = t(a), a && (a = a.selection())), n == null ? i.remove() : n(i), o && a ? o.merge(a).order() : a; +} +function gl(e) { + for (var t = e.selection ? e.selection() : e, n = this._groups, o = t._groups, a = n.length, i = o.length, r = Math.min(a, i), l = new Array(a), u = 0; u < r; ++u) + for (var s = n[u], c = o[u], d = s.length, h = l[u] = new Array(d), b, m = 0; m < d; ++m) + (b = s[m] || c[m]) && (h[m] = b); + for (; u < a; ++u) + l[u] = n[u]; + return new we(l, this._parents); +} +function pl() { + for (var e = this._groups, t = -1, n = e.length; ++t < n; ) + for (var o = e[t], a = o.length - 1, i = o[a], r; --a >= 0; ) + (r = o[a]) && (i && r.compareDocumentPosition(i) ^ 4 && i.parentNode.insertBefore(r, i), i = r); + return this; +} +function ml(e) { + e || (e = yl); + function t(d, h) { + return d && h ? e(d.__data__, h.__data__) : !d - !h; + } + for (var n = this._groups, o = n.length, a = new Array(o), i = 0; i < o; ++i) { + for (var r = n[i], l = r.length, u = a[i] = new Array(l), s, c = 0; c < l; ++c) + (s = r[c]) && (u[c] = s); + u.sort(t); + } + return new we(a, this._parents).order(); +} +function yl(e, t) { + return e < t ? -1 : e > t ? 1 : e >= t ? 0 : NaN; +} +function bl() { + var e = arguments[0]; + return arguments[0] = this, e.apply(null, arguments), this; +} +function wl() { + return Array.from(this); +} +function xl() { + for (var e = this._groups, t = 0, n = e.length; t < n; ++t) + for (var o = e[t], a = 0, i = o.length; a < i; ++a) { + var r = o[a]; + if (r) + return r; + } + return null; +} +function _l() { + let e = 0; + for (const t of this) + ++e; + return e; +} +function El() { + return !this.node(); +} +function Sl(e) { + for (var t = this._groups, n = 0, o = t.length; n < o; ++n) + for (var a = t[n], i = 0, r = a.length, l; i < r; ++i) + (l = a[i]) && e.call(l, l.__data__, i, a); + return this; +} +function Nl(e) { + return function() { + this.removeAttribute(e); + }; +} +function kl(e) { + return function() { + this.removeAttributeNS(e.space, e.local); + }; +} +function Cl(e, t) { + return function() { + this.setAttribute(e, t); + }; +} +function Ml(e, t) { + return function() { + this.setAttributeNS(e.space, e.local, t); + }; +} +function Pl(e, t) { + return function() { + var n = t.apply(this, arguments); + n == null ? this.removeAttribute(e) : this.setAttribute(e, n); + }; +} +function Il(e, t) { + return function() { + var n = t.apply(this, arguments); + n == null ? this.removeAttributeNS(e.space, e.local) : this.setAttributeNS(e.space, e.local, n); + }; +} +function $l(e, t) { + var n = cn(e); + if (arguments.length < 2) { + var o = this.node(); + return n.local ? o.getAttributeNS(n.space, n.local) : o.getAttribute(n); + } + return this.each((t == null ? n.local ? kl : Nl : typeof t == "function" ? n.local ? Il : Pl : n.local ? Ml : Cl)(n, t)); +} +function za(e) { + return e.ownerDocument && e.ownerDocument.defaultView || e.document && e || e.defaultView; +} +function Tl(e) { + return function() { + this.style.removeProperty(e); + }; +} +function Ol(e, t, n) { + return function() { + this.style.setProperty(e, t, n); + }; +} +function Dl(e, t, n) { + return function() { + var o = t.apply(this, arguments); + o == null ? this.style.removeProperty(e) : this.style.setProperty(e, o, n); + }; +} +function Bl(e, t, n) { + return arguments.length > 1 ? this.each((t == null ? Tl : typeof t == "function" ? Dl : Ol)(e, t, n ?? "")) : ht(this.node(), e); +} +function ht(e, t) { + return e.style.getPropertyValue(t) || za(e).getComputedStyle(e, null).getPropertyValue(t); +} +function Al(e) { + return function() { + delete this[e]; + }; +} +function zl(e, t) { + return function() { + this[e] = t; + }; +} +function Rl(e, t) { + return function() { + var n = t.apply(this, arguments); + n == null ? delete this[e] : this[e] = n; + }; +} +function Vl(e, t) { + return arguments.length > 1 ? this.each((t == null ? Al : typeof t == "function" ? Rl : zl)(e, t)) : this.node()[e]; +} +function Ra(e) { + return e.trim().split(/^|\s+/); +} +function no(e) { + return e.classList || new Va(e); +} +function Va(e) { + this._node = e, this._names = Ra(e.getAttribute("class") || ""); +} +Va.prototype = { + add: function(e) { + var t = this._names.indexOf(e); + t < 0 && (this._names.push(e), this._node.setAttribute("class", this._names.join(" "))); + }, + remove: function(e) { + var t = this._names.indexOf(e); + t >= 0 && (this._names.splice(t, 1), this._node.setAttribute("class", this._names.join(" "))); + }, + contains: function(e) { + return this._names.indexOf(e) >= 0; + } +}; +function La(e, t) { + for (var n = no(e), o = -1, a = t.length; ++o < a; ) + n.add(t[o]); +} +function Ya(e, t) { + for (var n = no(e), o = -1, a = t.length; ++o < a; ) + n.remove(t[o]); +} +function Ll(e) { + return function() { + La(this, e); + }; +} +function Yl(e) { + return function() { + Ya(this, e); + }; +} +function Xl(e, t) { + return function() { + (t.apply(this, arguments) ? La : Ya)(this, e); + }; +} +function Gl(e, t) { + var n = Ra(e + ""); + if (arguments.length < 2) { + for (var o = no(this.node()), a = -1, i = n.length; ++a < i; ) + if (!o.contains(n[a])) + return !1; + return !0; + } + return this.each((typeof t == "function" ? Xl : t ? Ll : Yl)(n, t)); +} +function Hl() { + this.textContent = ""; +} +function Fl(e) { + return function() { + this.textContent = e; + }; +} +function Ul(e) { + return function() { + var t = e.apply(this, arguments); + this.textContent = t ?? ""; + }; +} +function jl(e) { + return arguments.length ? this.each(e == null ? Hl : (typeof e == "function" ? Ul : Fl)(e)) : this.node().textContent; +} +function Zl() { + this.innerHTML = ""; +} +function Kl(e) { + return function() { + this.innerHTML = e; + }; +} +function Wl(e) { + return function() { + var t = e.apply(this, arguments); + this.innerHTML = t ?? ""; + }; +} +function ql(e) { + return arguments.length ? this.each(e == null ? Zl : (typeof e == "function" ? Wl : Kl)(e)) : this.node().innerHTML; +} +function Ql() { + this.nextSibling && this.parentNode.appendChild(this); +} +function Jl() { + return this.each(Ql); +} +function eu() { + this.previousSibling && this.parentNode.insertBefore(this, this.parentNode.firstChild); +} +function tu() { + return this.each(eu); +} +function nu(e) { + var t = typeof e == "function" ? e : Ta(e); + return this.select(function() { + return this.appendChild(t.apply(this, arguments)); + }); +} +function ou() { + return null; +} +function au(e, t) { + var n = typeof e == "function" ? e : Ta(e), o = t == null ? ou : typeof t == "function" ? t : to(t); + return this.select(function() { + return this.insertBefore(n.apply(this, arguments), o.apply(this, arguments) || null); + }); +} +function iu() { + var e = this.parentNode; + e && e.removeChild(this); +} +function ru() { + return this.each(iu); +} +function lu() { + var e = this.cloneNode(!1), t = this.parentNode; + return t ? t.insertBefore(e, this.nextSibling) : e; +} +function uu() { + var e = this.cloneNode(!0), t = this.parentNode; + return t ? t.insertBefore(e, this.nextSibling) : e; +} +function su(e) { + return this.select(e ? uu : lu); +} +function cu(e) { + return arguments.length ? this.property("__data__", e) : this.node().__data__; +} +function du(e) { + return function(t) { + e.call(this, t, this.__data__); + }; +} +function vu(e) { + return e.trim().split(/^|\s+/).map(function(t) { + var n = "", o = t.indexOf("."); + return o >= 0 && (n = t.slice(o + 1), t = t.slice(0, o)), { type: t, name: n }; + }); +} +function hu(e) { + return function() { + var t = this.__on; + if (t) { + for (var n = 0, o = -1, a = t.length, i; n < a; ++n) + i = t[n], (!e.type || i.type === e.type) && i.name === e.name ? this.removeEventListener(i.type, i.listener, i.options) : t[++o] = i; + ++o ? t.length = o : delete this.__on; + } + }; +} +function fu(e, t, n) { + return function() { + var o = this.__on, a, i = du(t); + if (o) { + for (var r = 0, l = o.length; r < l; ++r) + if ((a = o[r]).type === e.type && a.name === e.name) { + this.removeEventListener(a.type, a.listener, a.options), this.addEventListener(a.type, a.listener = i, a.options = n), a.value = t; + return; + } + } + this.addEventListener(e.type, i, n), a = { type: e.type, name: e.name, value: t, listener: i, options: n }, o ? o.push(a) : this.__on = [a]; + }; +} +function gu(e, t, n) { + var o = vu(e + ""), a, i = o.length, r; + if (arguments.length < 2) { + var l = this.node().__on; + if (l) { + for (var u = 0, s = l.length, c; u < s; ++u) + for (a = 0, c = l[u]; a < i; ++a) + if ((r = o[a]).type === c.type && r.name === c.name) + return c.value; + } + return; + } + for (l = t ? fu : hu, a = 0; a < i; ++a) + this.each(l(o[a], t, n)); + return this; +} +function Xa(e, t, n) { + var o = za(e), a = o.CustomEvent; + typeof a == "function" ? a = new a(t, n) : (a = o.document.createEvent("Event"), n ? (a.initEvent(t, n.bubbles, n.cancelable), a.detail = n.detail) : a.initEvent(t, !1, !1)), e.dispatchEvent(a); +} +function pu(e, t) { + return function() { + return Xa(this, e, t); + }; +} +function mu(e, t) { + return function() { + return Xa(this, e, t.apply(this, arguments)); + }; +} +function yu(e, t) { + return this.each((typeof t == "function" ? mu : pu)(e, t)); +} +function* bu() { + for (var e = this._groups, t = 0, n = e.length; t < n; ++t) + for (var o = e[t], a = 0, i = o.length, r; a < i; ++a) + (r = o[a]) && (yield r); +} +var Ga = [null]; +function we(e, t) { + this._groups = e, this._parents = t; +} +function Mt() { + return new we([[document.documentElement]], Ga); +} +function wu() { + return this; +} +we.prototype = Mt.prototype = { + constructor: we, + select: Ur, + selectAll: Wr, + selectChild: el, + selectChildren: al, + filter: il, + data: dl, + enter: rl, + exit: hl, + join: fl, + merge: gl, + selection: wu, + order: pl, + sort: ml, + call: bl, + nodes: wl, + node: xl, + size: _l, + empty: El, + each: Sl, + attr: $l, + style: Bl, + property: Vl, + classed: Gl, + text: jl, + html: ql, + raise: Jl, + lower: tu, + append: nu, + insert: au, + remove: ru, + clone: su, + datum: cu, + on: gu, + dispatch: yu, + [Symbol.iterator]: bu +}; +function Ee(e) { + return typeof e == "string" ? new we([[document.querySelector(e)]], [document.documentElement]) : new we([[e]], Ga); +} +function xu(e) { + let t; + for (; t = e.sourceEvent; ) + e = t; + return e; +} +function Me(e, t) { + if (e = xu(e), t === void 0 && (t = e.currentTarget), t) { + var n = t.ownerSVGElement || t; + if (n.createSVGPoint) { + var o = n.createSVGPoint(); + return o.x = e.clientX, o.y = e.clientY, o = o.matrixTransform(t.getScreenCTM().inverse()), [o.x, o.y]; + } + if (t.getBoundingClientRect) { + var a = t.getBoundingClientRect(); + return [e.clientX - a.left - t.clientLeft, e.clientY - a.top - t.clientTop]; + } + } + return [e.pageX, e.pageY]; +} +const _u = { passive: !1 }, _t = { capture: !0, passive: !1 }; +function Nn(e) { + e.stopImmediatePropagation(); +} +function at(e) { + e.preventDefault(), e.stopImmediatePropagation(); +} +function Ha(e) { + var t = e.document.documentElement, n = Ee(e).on("dragstart.drag", at, _t); + "onselectstart" in t ? n.on("selectstart.drag", at, _t) : (t.__noselect = t.style.MozUserSelect, t.style.MozUserSelect = "none"); +} +function Fa(e, t) { + var n = e.document.documentElement, o = Ee(e).on("dragstart.drag", null); + t && (o.on("click.drag", at, _t), setTimeout(function() { + o.on("click.drag", null); + }, 0)), "onselectstart" in n ? o.on("selectstart.drag", null) : (n.style.MozUserSelect = n.__noselect, delete n.__noselect); +} +const Tt = (e) => () => e; +function Vn(e, { + sourceEvent: t, + subject: n, + target: o, + identifier: a, + active: i, + x: r, + y: l, + dx: u, + dy: s, + dispatch: c +}) { + Object.defineProperties(this, { + type: { value: e, enumerable: !0, configurable: !0 }, + sourceEvent: { value: t, enumerable: !0, configurable: !0 }, + subject: { value: n, enumerable: !0, configurable: !0 }, + target: { value: o, enumerable: !0, configurable: !0 }, + identifier: { value: a, enumerable: !0, configurable: !0 }, + active: { value: i, enumerable: !0, configurable: !0 }, + x: { value: r, enumerable: !0, configurable: !0 }, + y: { value: l, enumerable: !0, configurable: !0 }, + dx: { value: u, enumerable: !0, configurable: !0 }, + dy: { value: s, enumerable: !0, configurable: !0 }, + _: { value: c } + }); +} +Vn.prototype.on = function() { + var e = this._.on.apply(this._, arguments); + return e === this._ ? this : e; +}; +function Eu(e) { + return !e.ctrlKey && !e.button; +} +function Su() { + return this.parentNode; +} +function Nu(e, t) { + return t ?? { x: e.x, y: e.y }; +} +function ku() { + return navigator.maxTouchPoints || "ontouchstart" in this; +} +function Cu() { + var e = Eu, t = Su, n = Nu, o = ku, a = {}, i = sn("start", "drag", "end"), r = 0, l, u, s, c, d = 0; + function h(y) { + y.on("mousedown.drag", b).filter(o).on("touchstart.drag", E).on("touchmove.drag", _, _u).on("touchend.drag touchcancel.drag", P).style("touch-action", "none").style("-webkit-tap-highlight-color", "rgba(0,0,0,0)"); + } + function b(y, I) { + if (!(c || !e.call(this, y, I))) { + var z = G(this, t.call(this, y, I), y, I, "mouse"); + z && (Ee(y.view).on("mousemove.drag", m, _t).on("mouseup.drag", w, _t), Ha(y.view), Nn(y), s = !1, l = y.clientX, u = y.clientY, z("start", y)); + } + } + function m(y) { + if (at(y), !s) { + var I = y.clientX - l, z = y.clientY - u; + s = I * I + z * z > d; + } + a.mouse("drag", y); + } + function w(y) { + Ee(y.view).on("mousemove.drag mouseup.drag", null), Fa(y.view, s), at(y), a.mouse("end", y); + } + function E(y, I) { + if (e.call(this, y, I)) { + var z = y.changedTouches, f = t.call(this, y, I), x = z.length, N, C; + for (N = 0; N < x; ++N) + (C = G(this, f, y, I, z[N].identifier, z[N])) && (Nn(y), C("start", y, z[N])); + } + } + function _(y) { + var I = y.changedTouches, z = I.length, f, x; + for (f = 0; f < z; ++f) + (x = a[I[f].identifier]) && (at(y), x("drag", y, I[f])); + } + function P(y) { + var I = y.changedTouches, z = I.length, f, x; + for (c && clearTimeout(c), c = setTimeout(function() { + c = null; + }, 500), f = 0; f < z; ++f) + (x = a[I[f].identifier]) && (Nn(y), x("end", y, I[f])); + } + function G(y, I, z, f, x, N) { + var C = i.copy(), T = Me(N || z, I), J, ae, p; + if ((p = n.call(y, new Vn("beforestart", { + sourceEvent: z, + target: h, + identifier: x, + active: r, + x: T[0], + y: T[1], + dx: 0, + dy: 0, + dispatch: C + }), f)) != null) + return J = p.x - T[0] || 0, ae = p.y - T[1] || 0, function R(S, B, F) { + var j = T, A; + switch (S) { + case "start": + a[x] = R, A = r++; + break; + case "end": + delete a[x], --r; + case "drag": + T = Me(F || B, I), A = r; + break; + } + C.call( + S, + y, + new Vn(S, { + sourceEvent: B, + subject: p, + target: h, + identifier: x, + active: A, + x: T[0] + J, + y: T[1] + ae, + dx: T[0] - j[0], + dy: T[1] - j[1], + dispatch: C + }), + f + ); + }; + } + return h.filter = function(y) { + return arguments.length ? (e = typeof y == "function" ? y : Tt(!!y), h) : e; + }, h.container = function(y) { + return arguments.length ? (t = typeof y == "function" ? y : Tt(y), h) : t; + }, h.subject = function(y) { + return arguments.length ? (n = typeof y == "function" ? y : Tt(y), h) : n; + }, h.touchable = function(y) { + return arguments.length ? (o = typeof y == "function" ? y : Tt(!!y), h) : o; + }, h.on = function() { + var y = i.on.apply(i, arguments); + return y === i ? h : y; + }, h.clickDistance = function(y) { + return arguments.length ? (d = (y = +y) * y, h) : Math.sqrt(d); + }, h; +} +function Ua(e) { + const t = ve(), n = O(t, "vueFlowRef"), o = O(t, "snapToGrid"), a = O(t, "snapGrid"), i = O(t, "noDragClassName"), r = O(t, "nodes"), l = O(t, "nodeExtent"), u = O(t, "viewport"), s = O(t, "autoPanOnNodeDrag"), c = O(t, "nodesDraggable"), d = O(t, "panBy"), h = O(t, "findNode"), b = O(t, "multiSelectionActive"), m = O(t, "nodesSelectionActive"), w = O(t, "selectNodesOnDrag"), E = O(t, "removeSelectedElements"), _ = O(t, "addSelectedNodes"), P = O(t, "updateNodePositions"), G = O(t, "emits"), { onStart: y, onDrag: I, onStop: z, el: f, disabled: x, id: N, selectable: C } = e, T = ee(!1); + let J = ee([]), ae = ee(), p = ee(null), R = ee({ x: void 0, y: void 0 }), S = ee({ x: 0, y: 0 }), B = ee(null), F = ee(0), j = ee(!1); + const A = Vr(), U = ({ x: K, y: ne }) => { + R.value = { x: K, y: ne }; + let re = !1; + if (J.value = J.value.map((M) => { + const v = { x: K - M.distance.x, y: ne - M.distance.y }; + o.value && (v.x = a.value[0] * Math.round(v.x / a.value[0]), v.y = a.value[1] * Math.round(v.y / a.value[1])); + const { computedPosition: g } = eo( + M, + v, + G.value.error, + l.value, + M.parentNode ? h.value(M.parentNode) : void 0 + ); + return re = re || M.position.x !== g.x || M.position.y !== g.y, M.position = g, M; + }), !!re && (P.value(J.value, !0, !0), T.value = !0, B.value)) { + const [M, v] = Sn({ + id: N, + dragItems: J.value, + findNode: h.value + }); + I({ event: B.value, node: M, nodes: v }); + } + }, V = () => { + if (!p.value) + return; + const [K, ne] = Ma(S.value, p.value); + if (K !== 0 || ne !== 0) { + const re = { + x: (R.value.x ?? 0) - K / u.value.zoom, + y: (R.value.y ?? 0) - ne / u.value.zoom + }; + d.value({ x: K, y: ne }) && U(re); + } + F.value = requestAnimationFrame(V); + }; + return ce([() => le(x), f], ([K, ne]) => { + if (ne) { + const re = Ee(ne); + if (K) + re.on(".drag", null); + else { + const M = h.value(N); + ae.value = Cu().on("start", (v) => { + var g; + !w.value && !b.value && M && (M.selected || E.value()), M && le(C) && w.value && zn( + M, + b.value, + _.value, + E.value, + m, + !1, + ne + ); + const $ = A(v); + if (R.value = $, J.value = Dr(r.value, c.value, $, h.value, N), J.value.length) { + const [D, L] = Sn({ + id: N, + dragItems: J.value, + findNode: h.value + }); + y({ event: v.sourceEvent, node: D, nodes: L }); + } + p.value = ((g = n.value) == null ? void 0 : g.getBoundingClientRect()) || null, S.value = ot(v.sourceEvent, p.value); + }).on("drag", (v) => { + const g = A(v); + !j.value && s.value && (j.value = !0, V()), (R.value.x !== g.xSnapped || R.value.y !== g.ySnapped) && J.value.length && (B.value = v.sourceEvent, S.value = ot(v.sourceEvent, p.value), U(g)); + }).on("end", (v) => { + if (T.value = !1, j.value = !1, cancelAnimationFrame(F.value), J.value.length) { + P.value(J.value, !1, !1); + const [g, $] = Sn({ + id: N, + dragItems: J.value, + findNode: h.value + }); + z({ event: v.sourceEvent, node: g, nodes: $ }); + } + }).filter((v) => { + const g = v.target; + return !v.button && (!i.value || !$o(g, `.${i.value}`, ne) && (!(M != null && M.dragHandle) || $o(g, M.dragHandle, ne))); + }), re.call(ae.value); + } + } + }), T; +} +const ja = "vue-flow__node-desc", Za = "vue-flow__edge-desc", Mu = "vue-flow__aria-live", Ka = ["Enter", " ", "Escape"], it = { + ArrowUp: { x: 0, y: -1 }, + ArrowDown: { x: 0, y: 1 }, + ArrowLeft: { x: -1, y: 0 }, + ArrowRight: { x: 1, y: 0 } +}; +function Ln(e) { + var t, n; + const o = ((n = (t = e.composedPath) == null ? void 0 : t.call(e)) == null ? void 0 : n[0]) || e.target, a = Ye(o.hasAttribute) ? o.hasAttribute("contenteditable") : !1, i = Ye(o.closest) ? o.closest(".nokey") : null; + return ["INPUT", "SELECT", "TEXTAREA"].includes(o == null ? void 0 : o.nodeName) || a || !!i; +} +function Pu(e) { + return e.ctrlKey || e.metaKey || e.shiftKey; +} +function Iu(e, t) { + return (n) => e.some((o) => { + const a = o.split("+").map((i) => i.trim().toLowerCase()); + return a.length === 1 ? n.key === o : (t.add(n.key.toLowerCase()), a.every((i) => t.has(i))); + }); +} +const xt = (e, t) => { + const n = qn(), o = ee(le(e) === !0), a = ee(!1), i = ee(/* @__PURE__ */ new Set()); + return ce(o, () => { + t == null || t(o.value); + }), ce( + () => le(e), + (r) => { + if (n && typeof n.addEventListener < "u" && Wn(n, "blur", () => { + o.value = !1; + }), Ti(r)) { + o.value = r; + return; + } + Array.isArray(r) && (r = Iu(r, i.value)), r && (fo( + r, + (l) => { + a.value = Pu(l), !(!a.value && Ln(l)) && (l.preventDefault(), o.value = !0); + }, + { eventName: "keydown" } + ), fo( + r, + (l) => { + if (o.value) { + if (!a.value && Ln(l)) + return; + a.value = !1, i.value.clear(), o.value = !1; + } + }, + { eventName: "keyup" } + )); + }, + { + immediate: !0 + } + ), o; +}, $u = fe({ + name: "Node", + compatConfig: { MODE: 3 }, + props: ["name", "type", "id", "draggable", "selectable", "focusable", "connectable", "node", "resizeObserver"], + setup(e) { + lt(Na, e.id); + const t = ve(), n = O(t, "id"), o = O(t, "edges"), a = O(t, "noPanClassName"), i = O(t, "selectNodesOnDrag"), r = O(t, "nodesSelectionActive"), l = O(t, "multiSelectionActive"), u = O(t, "emits"), s = O(t, "findNode"), c = O(t, "removeSelectedNodes"), d = O(t, "addSelectedNodes"), h = O(t, "updateNodeDimensions"), b = O(t, "onUpdateNodeInternals"), m = O(t, "getIntersectingNodes"), w = O(t, "getNodeTypes"), E = O(t, "nodeExtent"), _ = O(t, "elevateNodesOnSelect"), P = O(t, "disableKeyboardA11y"), G = O(t, "ariaLiveMessage"), y = O(t, "snapToGrid"), I = O(t, "snapGrid"), z = $a(), f = wt(e, "node"), x = q(() => s.value(f.value.parentNode)), N = q(() => on([f.value], o.value)), C = ee(); + lt(ka, C); + const { emit: T, on: J } = Rr(f.value, u.value), ae = Ua({ + id: e.id, + el: C, + disabled: () => !e.draggable, + selectable: () => e.selectable, + onStart(M) { + T.dragStart({ ...M, intersections: m.value(f.value) }); + }, + onDrag(M) { + T.drag({ ...M, intersections: m.value(f.value) }); + }, + onStop(M) { + T.dragStop({ ...M, intersections: m.value(f.value) }); + } + }), p = q(() => f.value.class instanceof Function ? f.value.class(f.value) : f.value.class), R = q(() => { + const M = (f.value.style instanceof Function ? f.value.style(f.value) : f.value.style) || {}, v = f.value.width instanceof Function ? f.value.width(f.value) : f.value.width, g = f.value.height instanceof Function ? f.value.height(f.value) : f.value.height; + return v && (M.width = typeof v == "string" ? v : `${v}px`), g && (M.height = typeof g == "string" ? g : `${g}px`), M; + }), S = () => Number(f.value.zIndex ?? R.value.zIndex ?? 0); + return b.value((M) => { + M.includes(e.id) && F(); + }), Ve(() => { + e.resizeObserver.observe(C.value); + }), jn(() => { + e.resizeObserver.unobserve(C.value); + }), ce( + [() => f.value.type, () => f.value.sourcePosition, () => f.value.targetPosition], + () => { + h.value([{ id: e.id, nodeElement: C.value, forceUpdate: !0 }]); + }, + { flush: "pre" } + ), ce( + [ + () => f.value.position.x, + () => f.value.position.y, + () => { + var M; + return (M = x.value) == null ? void 0 : M.computedPosition.x; + }, + () => { + var M; + return (M = x.value) == null ? void 0 : M.computedPosition.y; + }, + () => { + var M; + return (M = x.value) == null ? void 0 : M.computedPosition.z; + }, + () => S(), + () => f.value.selected, + () => f.value.dimensions.height, + () => f.value.dimensions.width, + () => { + var M; + return (M = x.value) == null ? void 0 : M.dimensions.height; + }, + () => { + var M; + return (M = x.value) == null ? void 0 : M.dimensions.width; + } + ], + ([M, v, g, $, D, L]) => { + const Y = { + x: M, + y: v, + z: L + (_.value && f.value.selected ? 1e3 : 0) + }; + Be(g) && Be($) ? f.value.computedPosition = pr({ x: g, y: $, z: D }, Y) : f.value.computedPosition = Y; + }, + { flush: "pre", immediate: !0 } + ), ce([() => f.value.extent, () => E.value], ([M, v], [g, $]) => { + (M !== g || v !== $) && B(); + }), f.value.extent === "parent" || typeof f.value.extent == "object" && "range" in f.value.extent && f.value.extent.range === "parent" ? be(() => f.value.initialized).toBe(!0).then(B) : B(), () => ue( + "div", + { + ref: C, + "data-id": f.value.id, + class: [ + "vue-flow__node", + `vue-flow__node-${e.type === !1 ? "default" : e.name}`, + { + [a.value]: e.draggable, + dragging: ae == null ? void 0 : ae.value, + selected: f.value.selected, + selectable: e.selectable + }, + p.value + ], + style: { + zIndex: f.value.computedPosition.z ?? S(), + transform: `translate(${f.value.computedPosition.x}px,${f.value.computedPosition.y}px)`, + pointerEvents: e.selectable || e.draggable ? "all" : "none", + visibility: f.value.initialized ? "visible" : "hidden", + ...R.value + }, + tabIndex: e.focusable ? 0 : void 0, + role: e.focusable ? "button" : void 0, + "aria-describedby": P.value ? void 0 : `${ja}-${n.value}`, + "aria-label": f.value.ariaLabel, + onMouseenter: j, + onMousemove: A, + onMouseleave: U, + onContextmenu: V, + onClick: ne, + onDblclick: K, + onKeydown: re + }, + [ + ue(e.type === !1 ? w.value.default : e.type, { + id: f.value.id, + type: f.value.type, + data: f.value.data, + events: { ...f.value.events, ...J }, + selected: !!f.value.selected, + resizing: !!f.value.resizing, + dragging: ae.value, + connectable: e.connectable, + position: f.value.position, + dimensions: f.value.dimensions, + isValidTargetPos: f.value.isValidTargetPos, + isValidSourcePos: f.value.isValidSourcePos, + parent: f.value.parentNode, + zIndex: f.value.computedPosition.z, + targetPosition: f.value.targetPosition, + sourcePosition: f.value.sourcePosition, + label: f.value.label, + dragHandle: f.value.dragHandle, + onUpdateNodeInternals: F + }) + ] + ); + function B() { + const M = f.value.computedPosition; + y.value && (M.x = I.value[0] * Math.round(M.x / I.value[0]), M.y = I.value[1] * Math.round(M.y / I.value[1])); + const { computedPosition: v, position: g } = eo(f.value, M, u.value.error, E.value, x.value); + (f.value.computedPosition.x !== v.x || f.value.computedPosition.y !== v.y) && (f.value.computedPosition = { ...f.value.computedPosition, ...v }), (f.value.position.x !== g.x || f.value.position.y !== g.y) && (f.value.position = g); + } + function F() { + C.value && h.value([{ id: e.id, nodeElement: C.value, forceUpdate: !0 }]); + } + function j(M) { + ae != null && ae.value || T.mouseEnter({ event: M, node: f.value, connectedEdges: N.value }); + } + function A(M) { + ae != null && ae.value || T.mouseMove({ event: M, node: f.value, connectedEdges: N.value }); + } + function U(M) { + ae != null && ae.value || T.mouseLeave({ event: M, node: f.value, connectedEdges: N.value }); + } + function V(M) { + return T.contextMenu({ event: M, node: f.value, connectedEdges: N.value }); + } + function K(M) { + return T.doubleClick({ event: M, node: f.value, connectedEdges: N.value }); + } + function ne(M) { + e.selectable && (!i.value || !e.draggable) && zn( + f.value, + l.value, + d.value, + c.value, + r, + !1, + C.value + ), T.click({ event: M, node: f.value, connectedEdges: N.value }); + } + function re(M) { + var v; + if (!Ln(M)) + if (Ka.includes(M.key) && e.selectable) { + const g = M.key === "Escape"; + g && ((v = C.value) == null || v.blur()), zn( + f.value, + l.value, + d.value, + c.value, + r, + g, + C.value + ); + } else + !P.value && e.draggable && f.value.selected && it[M.key] && (G.value = `Moved selected node ${M.key.replace("Arrow", "").toLowerCase()}. New position, x: ${~~f.value.position.x}, y: ${~~f.value.position.y}`, z( + { + x: it[M.key].x, + y: it[M.key].y + }, + M.shiftKey + )); + } + } +}), Tu = $u, Ou = ["transform"], Du = ["width", "height", "x", "y", "rx", "ry"], Bu = ["y"], Au = { + name: "EdgeText", + compatConfig: { MODE: 3 } +}, zu = /* @__PURE__ */ fe({ + ...Au, + props: { + x: null, + y: null, + label: null, + labelStyle: { default: {} }, + labelShowBg: { type: Boolean, default: !0 }, + labelBgStyle: { default: {} }, + labelBgPadding: { default: [2, 4] }, + labelBgBorderRadius: { default: 2 } + }, + setup(e) { + let t = ee({ x: 0, y: 0, width: 0, height: 0 }); + const n = ee(null), o = q(() => `translate(${e.x - t.value.width / 2} ${e.y - t.value.height / 2})`); + Ve(a), ce([() => e.x, () => e.y, n, () => e.label], a); + function a() { + if (!n.value) + return; + const i = n.value.getBBox(); + (i.width !== t.value.width || i.height !== t.value.height) && (t.value = i); + } + return (i, r) => (te(), ie("g", { + transform: k(o), + class: "vue-flow__edge-textwrapper" + }, [ + e.labelShowBg ? (te(), ie("rect", { + key: 0, + class: "vue-flow__edge-textbg", + width: `${k(t).width + 2 * e.labelBgPadding[0]}px`, + height: `${k(t).height + 2 * e.labelBgPadding[1]}px`, + x: -e.labelBgPadding[0], + y: -e.labelBgPadding[1], + style: Le(e.labelBgStyle), + rx: e.labelBgBorderRadius, + ry: e.labelBgBorderRadius + }, null, 12, Du)) : ge("", !0), + de("text", Ht(i.$attrs, { + ref_key: "el", + ref: n, + class: "vue-flow__edge-text", + y: k(t).height / 2, + dy: "0.3em", + style: e.labelStyle + }), [ + xe(i.$slots, "default", {}, () => [ + k(Ae)(e.label) ? (te(), ie(Ne, { key: 1 }, [ + ua(ct(e.label), 1) + ], 64)) : (te(), _e(ra(e.label), { key: 0 })) + ]) + ], 16, Bu) + ], 8, Ou)); + } +}), dn = function({ + path: e, + label: t, + labelX: n, + labelY: o, + labelBgBorderRadius: a, + labelBgPadding: i, + labelBgStyle: r, + labelShowBg: l = !0, + labelStyle: u, + markerStart: s, + markerEnd: c, + interactionWidth: d = 20 +}, { attrs: h }) { + return [ + ue("path", { + style: h.style, + class: ["vue-flow__edge-path", h.class].join(" "), + d: e, + "marker-end": c, + "marker-start": s + }), + d ? ue("path", { + d: e, + fill: "none", + "stroke-opacity": 0, + "stroke-width": d + }) : null, + t && Be(n) && Be(o) ? ue(zu, { + x: n, + y: o, + label: t, + labelStyle: u, + labelShowBg: l, + labelBgStyle: r, + labelBgPadding: i, + labelBgBorderRadius: a + }) : null + ]; +}; +dn.props = [ + "path", + "labelX", + "labelY", + "label", + "labelBgBorderRadius", + "labelBgPadding", + "labelBgStyle", + "labelShowBg", + "labelStyle", + "markerStart", + "markerEnd", + "interactionWidth" +]; +dn.inheritAttrs = !1; +dn.compatConfig = { MODE: 3 }; +const vn = dn; +function Wa({ + sourceX: e, + sourceY: t, + targetX: n, + targetY: o +}) { + const a = Math.abs(n - e) / 2, i = n < e ? n + a : n - a, r = Math.abs(o - t) / 2, l = o < t ? o + r : o - r; + return [i, l, a, r]; +} +function qa({ + sourceX: e, + sourceY: t, + targetX: n, + targetY: o, + sourceControlX: a, + sourceControlY: i, + targetControlX: r, + targetControlY: l +}) { + const u = e * 0.125 + a * 0.375 + r * 0.375 + n * 0.125, s = t * 0.125 + i * 0.375 + l * 0.375 + o * 0.125, c = Math.abs(u - e), d = Math.abs(s - t); + return [u, s, c, d]; +} +function Ot(e, t) { + return e >= 0 ? 0.5 * e : t * 25 * Math.sqrt(-e); +} +function Bo({ pos: e, x1: t, y1: n, x2: o, y2: a, c: i }) { + let r, l; + switch (e) { + case Z.Left: + r = t - Ot(t - o, i), l = n; + break; + case Z.Right: + r = t + Ot(o - t, i), l = n; + break; + case Z.Top: + r = t, l = n - Ot(n - a, i); + break; + case Z.Bottom: + r = t, l = n + Ot(a - n, i); + break; + } + return [r, l]; +} +function Kt({ + sourceX: e, + sourceY: t, + sourcePosition: n = Z.Bottom, + targetX: o, + targetY: a, + targetPosition: i = Z.Top, + curvature: r = 0.25 +}) { + const [l, u] = Bo({ + pos: n, + x1: e, + y1: t, + x2: o, + y2: a, + c: r + }), [s, c] = Bo({ + pos: i, + x1: o, + y1: a, + x2: e, + y2: t, + c: r + }), [d, h, b, m] = qa({ + sourceX: e, + sourceY: t, + targetX: o, + targetY: a, + sourceControlX: l, + sourceControlY: u, + targetControlX: s, + targetControlY: c + }); + return [ + `M${e},${t} C${l},${u} ${s},${c} ${o},${a}`, + d, + h, + b, + m + ]; +} +const hn = function({ sourcePosition: e = Z.Bottom, targetPosition: t = Z.Top, ...n }, { attrs: o }) { + const [a, i, r] = Kt({ + sourcePosition: e, + targetPosition: t, + ...n + }); + return ue(vn, { + path: a, + labelX: i, + labelY: r, + ...n, + ...o + }); +}; +hn.props = [ + "sourcePosition", + "targetPosition", + "label", + "labelStyle", + "labelShowBg", + "labelBgStyle", + "labelBgPadding", + "labelBgBorderRadius", + "sourceY", + "sourceX", + "targetX", + "targetY", + "curvature", + "markerEnd", + "markerStart", + "interactionWidth" +]; +hn.inheritAttrs = !1; +hn.compatConfig = { MODE: 3 }; +const Ru = hn; +function Ao({ pos: e, x1: t, y1: n, x2: o, y2: a }) { + let i, r; + switch (e) { + case Z.Left: + case Z.Right: + i = 0.5 * (t + o), r = n; + break; + case Z.Top: + case Z.Bottom: + i = t, r = 0.5 * (n + a); + break; + } + return [i, r]; +} +function Qa({ + sourceX: e, + sourceY: t, + sourcePosition: n = Z.Bottom, + targetX: o, + targetY: a, + targetPosition: i = Z.Top +}) { + const [r, l] = Ao({ + pos: n, + x1: e, + y1: t, + x2: o, + y2: a + }), [u, s] = Ao({ + pos: i, + x1: o, + y1: a, + x2: e, + y2: t + }), [c, d, h, b] = qa({ + sourceX: e, + sourceY: t, + targetX: o, + targetY: a, + sourceControlX: r, + sourceControlY: l, + targetControlX: u, + targetControlY: s + }); + return [ + `M${e},${t} C${r},${l} ${u},${s} ${o},${a}`, + c, + d, + h, + b + ]; +} +const fn = function({ sourcePosition: e = Z.Bottom, targetPosition: t = Z.Top, ...n }, { attrs: o }) { + const [a, i, r] = Qa({ + sourcePosition: e, + targetPosition: t, + ...n + }); + return ue(vn, { + path: a, + labelX: i, + labelY: r, + ...n, + ...o + }); +}; +fn.props = [ + "sourcePosition", + "targetPosition", + "label", + "labelStyle", + "labelShowBg", + "labelBgStyle", + "labelBgPadding", + "labelBgBorderRadius", + "sourceY", + "sourceX", + "targetX", + "targetY", + "markerEnd", + "markerStart", + "interactionWidth" +]; +fn.inheritAttrs = !1; +fn.compatConfig = { MODE: 3 }; +const Vu = fn, zo = { + [Z.Left]: { x: -1, y: 0 }, + [Z.Right]: { x: 1, y: 0 }, + [Z.Top]: { x: 0, y: -1 }, + [Z.Bottom]: { x: 0, y: 1 } +}; +function Lu({ + source: e, + sourcePosition: t = Z.Bottom, + target: n +}) { + return t === Z.Left || t === Z.Right ? e.x < n.x ? { x: 1, y: 0 } : { x: -1, y: 0 } : e.y < n.y ? { x: 0, y: 1 } : { x: 0, y: -1 }; +} +function Ro(e, t) { + return Math.sqrt((t.x - e.x) ** 2 + (t.y - e.y) ** 2); +} +function Yu({ + source: e, + sourcePosition: t = Z.Bottom, + target: n, + targetPosition: o = Z.Top, + center: a, + offset: i +}) { + const r = zo[t], l = zo[o], u = { x: e.x + r.x * i, y: e.y + r.y * i }, s = { x: n.x + l.x * i, y: n.y + l.y * i }, c = Lu({ + source: u, + sourcePosition: t, + target: s + }), d = c.x !== 0 ? "x" : "y", h = c[d]; + let b, m, w; + const [E, _, P, G] = Wa({ + sourceX: e.x, + sourceY: e.y, + targetX: n.x, + targetY: n.y + }); + if (r[d] * l[d] === -1) { + m = a.x || E, w = a.y || _; + const y = [ + { x: m, y: u.y }, + { x: m, y: s.y } + ], I = [ + { x: u.x, y: w }, + { x: s.x, y: w } + ]; + r[d] === h ? b = d === "x" ? y : I : b = d === "x" ? I : y; + } else { + const y = [{ x: u.x, y: s.y }], I = [{ x: s.x, y: u.y }]; + if (d === "x" ? b = r.x === h ? I : y : b = r.y === h ? y : I, t !== o) { + const z = d === "x" ? "y" : "x", f = r[d] === l[z], x = u[z] > s[z], N = u[z] < s[z]; + (r[d] === 1 && (!f && x || f && N) || r[d] !== 1 && (!f && N || f && x)) && (b = d === "x" ? y : I); + } + m = b[0].x, w = b[0].y; + } + return [[e, u, ...b, s, n], m, w, P, G]; +} +function Xu(e, t, n, o) { + const a = Math.min(Ro(e, t) / 2, Ro(t, n) / 2, o), { x: i, y: r } = t; + if (e.x === i && i === n.x || e.y === r && r === n.y) + return `L${i} ${r}`; + if (e.y === r) { + const s = e.x < n.x ? -1 : 1, c = e.y < n.y ? 1 : -1; + return `L ${i + a * s},${r}Q ${i},${r} ${i},${r + a * c}`; + } + const l = e.x < n.x ? 1 : -1, u = e.y < n.y ? -1 : 1; + return `L ${i},${r + a * u}Q ${i},${r} ${i + a * l},${r}`; +} +function Yn({ + sourceX: e, + sourceY: t, + sourcePosition: n = Z.Bottom, + targetX: o, + targetY: a, + targetPosition: i = Z.Top, + borderRadius: r = 5, + centerX: l, + centerY: u, + offset: s = 20 +}) { + const [c, d, h, b, m] = Yu({ + source: { x: e, y: t }, + sourcePosition: n, + target: { x: o, y: a }, + targetPosition: i, + center: { x: l, y: u }, + offset: s + }); + return [c.reduce((w, E, _) => { + let P; + return _ > 0 && _ < c.length - 1 ? P = Xu(c[_ - 1], E, c[_ + 1], r) : P = `${_ === 0 ? "M" : "L"}${E.x} ${E.y}`, w += P, w; + }, ""), d, h, b, m]; +} +const gn = function({ sourcePosition: e = Z.Bottom, targetPosition: t = Z.Top, ...n }, { attrs: o }) { + const [a, i, r] = Yn({ + sourcePosition: e, + targetPosition: t, + ...n + }); + return ue(vn, { + path: a, + labelX: i, + labelY: r, + ...n, + ...o + }); +}; +gn.props = [ + "sourcePosition", + "targetPosition", + "label", + "labelStyle", + "labelShowBg", + "labelBgStyle", + "labelBgPadding", + "labelBgBorderRadius", + "sourceY", + "sourceX", + "targetX", + "targetY", + "borderRadius", + "markerEnd", + "markerStart", + "interactionWidth", + "offset" +]; +gn.inheritAttrs = !1; +gn.compatConfig = { MODE: 3 }; +const Ja = gn, pn = function(e, { attrs: t }) { + return ue(Ja, { ...e, ...t, borderRadius: 0 }); +}; +pn.props = [ + "sourcePosition", + "targetPosition", + "label", + "labelStyle", + "labelShowBg", + "labelBgStyle", + "labelBgPadding", + "labelBgBorderRadius", + "sourceY", + "sourceX", + "targetX", + "targetY", + "markerEnd", + "markerStart", + "interactionWidth" +]; +pn.inheritAttrs = !1; +pn.compatConfig = { MODE: 3 }; +const Gu = pn; +function ei({ + sourceX: e, + sourceY: t, + targetX: n, + targetY: o +}) { + const [a, i, r, l] = Wa({ + sourceX: e, + sourceY: t, + targetX: n, + targetY: o + }); + return [`M ${e},${t}L ${n},${o}`, a, i, r, l]; +} +const mn = function(e, { attrs: t }) { + const [n, o, a] = ei(e); + return ue(vn, { + path: n, + labelX: o, + labelY: a, + ...e, + ...t + }); +}; +mn.props = [ + "label", + "labelStyle", + "labelShowBg", + "labelBgStyle", + "labelBgPadding", + "labelBgBorderRadius", + "sourceY", + "sourceX", + "targetX", + "targetY", + "markerEnd", + "markerStart", + "interactionWidth" +]; +mn.inheritAttrs = !1; +mn.compatConfig = { MODE: 3 }; +const Hu = mn; +function Fu(e, t, n) { + return n === Z.Left ? e - t : n === Z.Right ? e + t : e; +} +function Uu(e, t, n) { + return n === Z.Top ? e - t : n === Z.Bottom ? e + t : e; +} +const oo = function({ + radius: e = 10, + centerX: t = 0, + centerY: n = 0, + position: o = Z.Top, + type: a +}) { + return ue("circle", { + class: `vue-flow__edgeupdater vue-flow__edgeupdater-${a}`, + cx: Fu(t, e, o), + cy: Uu(n, e, o), + r: e, + stroke: "transparent", + fill: "transparent" + }); +}; +oo.props = ["radius", "centerX", "centerY", "position", "type"]; +oo.compatConfig = { MODE: 3 }; +const Vo = oo; +function ju() { + return { + doubleClick: H(), + click: H(), + mouseEnter: H(), + mouseMove: H(), + mouseLeave: H(), + contextMenu: H(), + updateStart: H(), + update: H(), + updateEnd: H() + }; +} +function Zu(e, t) { + const n = ju(); + return n.doubleClick.on((o) => { + var a, i; + t.edgeDoubleClick(o), (i = (a = e.events) == null ? void 0 : a.doubleClick) == null || i.call(a, o); + }), n.click.on((o) => { + var a, i; + t.edgeClick(o), (i = (a = e.events) == null ? void 0 : a.click) == null || i.call(a, o); + }), n.mouseEnter.on((o) => { + var a, i; + t.edgeMouseEnter(o), (i = (a = e.events) == null ? void 0 : a.mouseEnter) == null || i.call(a, o); + }), n.mouseMove.on((o) => { + var a, i; + t.edgeMouseMove(o), (i = (a = e.events) == null ? void 0 : a.mouseMove) == null || i.call(a, o); + }), n.mouseLeave.on((o) => { + var a, i; + t.edgeMouseLeave(o), (i = (a = e.events) == null ? void 0 : a.mouseLeave) == null || i.call(a, o); + }), n.contextMenu.on((o) => { + var a, i; + t.edgeContextMenu(o), (i = (a = e.events) == null ? void 0 : a.contextMenu) == null || i.call(a, o); + }), n.updateStart.on((o) => { + var a, i; + t.edgeUpdateStart(o), (i = (a = e.events) == null ? void 0 : a.updateStart) == null || i.call(a, o); + }), n.update.on((o) => { + var a, i; + t.edgeUpdate(o), (i = (a = e.events) == null ? void 0 : a.update) == null || i.call(a, o); + }), n.updateEnd.on((o) => { + var a, i; + t.edgeUpdateEnd(o), (i = (a = e.events) == null ? void 0 : a.updateEnd) == null || i.call(a, o); + }), Object.entries(n).reduce( + (o, [a, i]) => (o.emit[a] = i.trigger, o.on[a] = i.on, o), + { emit: {}, on: {} } + ); +} +const Ku = fe({ + name: "Edge", + compatConfig: { MODE: 3 }, + props: ["name", "type", "id", "updatable", "selectable", "focusable", "edge"], + setup(e) { + const { + id: t, + addSelectedEdges: n, + connectionMode: o, + edgeUpdaterRadius: a, + emits: i, + nodesSelectionActive: r, + noPanClassName: l, + getEdgeTypes: u, + removeSelectedEdges: s, + findEdge: c, + findNode: d, + isValidConnection: h + } = ve(), b = Zu(e.edge, i), m = wt(e, "edge"); + let w = ee(!1), E = ee(!1); + const _ = ee(""), P = ee(null), G = ee("source"), y = ee(); + lt(br, e.id), lt(wr, y); + const I = q(() => m.value.class instanceof Function ? m.value.class(m.value) : m.value.class), z = q(() => m.value.style instanceof Function ? m.value.style(m.value) : m.value.style), { handlePointerDown: f } = Pa({ + nodeId: _, + handleId: P, + type: G, + isValidConnection: h.value, + edgeUpdaterType: G, + onEdgeUpdate: C, + onEdgeUpdateEnd: T + }); + return () => { + const V = d(m.value.source), K = d(m.value.target); + if (!V || !K || !m.value) + return null; + let ne; + o.value === qe.Strict ? ne = V.handleBounds.source : ne = [...V.handleBounds.source || [], ...V.handleBounds.target || []]; + const re = Co(ne, m.value.sourceHandle); + let M; + o.value === qe.Strict ? M = K.handleBounds.target : M = [...K.handleBounds.target || [], ...K.handleBounds.source || []]; + const v = Co(M, m.value.targetHandle), g = re ? re.position : Z.Bottom, $ = v ? v.position : Z.Top, { sourceX: D, sourceY: L, targetY: Y, targetX: W } = _r( + V, + re, + g, + K, + v, + $ + ); + return m.value.sourceX = D, m.value.sourceY = L, m.value.targetX = W, m.value.targetY = Y, ue( + "g", + { + ref: y, + key: e.id, + "data-id": e.id, + class: [ + "vue-flow__edge", + `vue-flow__edge-${e.type === !1 ? "default" : e.name}`, + l.value, + I.value, + { + updating: w.value, + selected: m.value.selected, + animated: m.value.animated, + inactive: !e.selectable + } + ], + onClick: ae, + onContextmenu: p, + onDblclick: R, + onMouseenter: S, + onMousemove: B, + onMouseleave: F, + onKeyDown: e.focusable ? U : void 0, + tabIndex: e.focusable ? 0 : void 0, + "aria-label": m.value.ariaLabel === null ? void 0 : m.value.ariaLabel || `Edge from ${m.value.source} to ${m.value.target}`, + "aria-describedby": e.focusable ? `${Za}-${t}` : void 0, + role: e.focusable ? "button" : void 0 + }, + [ + E.value ? null : ue(e.type === !1 ? u.value.default : e.type, { + id: e.id, + sourceNode: V, + targetNode: K, + source: m.value.source, + target: m.value.target, + type: m.value.type, + updatable: e.updatable, + selected: m.value.selected, + animated: m.value.animated, + label: m.value.label, + labelStyle: m.value.labelStyle, + labelShowBg: m.value.labelShowBg, + labelBgStyle: m.value.labelBgStyle, + labelBgPadding: m.value.labelBgPadding, + labelBgBorderRadius: m.value.labelBgBorderRadius, + data: m.value.data, + events: { ...m.value.events, ...b.on }, + style: z.value, + markerStart: `url(#${Ue(m.value.markerStart, t)})`, + markerEnd: `url(#${Ue(m.value.markerEnd, t)})`, + sourcePosition: g, + targetPosition: $, + sourceX: D, + sourceY: L, + targetX: W, + targetY: Y, + sourceHandleId: m.value.sourceHandle, + targetHandleId: m.value.targetHandle, + interactionWidth: m.value.interactionWidth + }), + [ + e.updatable === "source" || e.updatable === !0 ? [ + ue( + "g", + { + onMousedown: j, + onMouseenter: x, + onMouseout: N + }, + ue(Vo, { + position: g, + centerX: D, + centerY: L, + radius: a.value, + type: "source", + "data-type": "source" + }) + ) + ] : null, + e.updatable === "target" || e.updatable === !0 ? [ + ue( + "g", + { + onMousedown: A, + onMouseenter: x, + onMouseout: N + }, + ue(Vo, { + position: $, + centerX: W, + centerY: Y, + radius: a.value, + type: "target", + "data-type": "target" + }) + ) + ] : null + ] + ] + ); + }; + function x() { + w.value = !0; + } + function N() { + w.value = !1; + } + function C(V, K) { + b.emit.update({ event: V, edge: m.value, connection: K }); + } + function T(V) { + b.emit.updateEnd({ event: V, edge: m.value }), E.value = !1; + } + function J(V, K) { + V.button === 0 && (E.value = !0, _.value = K ? m.value.target : m.value.source, P.value = (K ? m.value.targetHandle : m.value.sourceHandle) ?? "", G.value = K ? "target" : "source", b.emit.updateStart({ event: V, edge: m.value }), f(V)); + } + function ae(V) { + const K = { event: V, edge: m.value }; + e.selectable && (r.value = !1, n([m.value])), b.emit.click(K); + } + function p(V) { + b.emit.contextMenu({ event: V, edge: m.value }); + } + function R(V) { + b.emit.doubleClick({ event: V, edge: m.value }); + } + function S(V) { + b.emit.mouseEnter({ event: V, edge: m.value }); + } + function B(V) { + b.emit.mouseMove({ event: V, edge: m.value }); + } + function F(V) { + b.emit.mouseLeave({ event: V, edge: m.value }); + } + function j(V) { + J(V, !0); + } + function A(V) { + J(V, !1); + } + function U(V) { + var K; + Ka.includes(V.key) && e.selectable && (V.key === "Escape" ? ((K = y.value) == null || K.blur(), s([c(e.id)])) : n([c(e.id)])); + } + } +}), Wu = Ku, qu = { + height: "0", + width: "0" +}, Qu = { + name: "EdgeLabelRenderer", + compatConfig: { MODE: 3 } +}, Ju = /* @__PURE__ */ fe({ + ...Qu, + setup(e) { + const { viewportRef: t } = ve(), n = q(() => { + var o; + return (o = t.value) == null ? void 0 : o.getElementsByClassName("vue-flow__edge-labels")[0]; + }); + return (o, a) => (te(), ie("svg", null, [ + (te(), ie("foreignObject", qu, [ + (te(), _e(bi, { + to: k(n), + disabled: !k(n) + }, [ + xe(o.$slots, "default") + ], 8, ["to", "disabled"])) + ])) + ])); + } +}), es = { class: "vue-flow__connection" }, ts = ["d", "marker-end", "marker-start"], ns = { + name: "ConnectionLine", + compatConfig: { MODE: 3 } +}, os = /* @__PURE__ */ fe({ + ...ns, + props: { + sourceNode: null + }, + setup(e) { + var t; + const n = ve(), o = O(n, "connectionMode"), a = O(n, "connectionStartHandle"), i = O(n, "connectionEndHandle"), r = O(n, "connectionPosition"), l = O(n, "connectionLineType"), u = O(n, "connectionLineStyle"), s = O(n, "connectionLineOptions"), c = O(n, "connectionStatus"), d = O(n, "viewport"), h = O(n, "findNode"), b = { + [Z.Left]: Z.Right, + [Z.Right]: Z.Left, + [Z.Top]: Z.Bottom, + [Z.Bottom]: Z.Top + }, m = (t = ut(an)) == null ? void 0 : t["connection-line"], w = q(() => a.value.handleId), E = q(() => a.value.type), _ = q(() => { + var C; + return ((C = i.value) == null ? void 0 : C.handleId) && h.value(i.value.nodeId) || null; + }), P = q( + () => { + var C, T; + return (o.value === qe.Strict ? (C = e.sourceNode.handleBounds[E.value]) == null ? void 0 : C.find((J) => J.id === w.value) : [...e.sourceNode.handleBounds.source || [], ...e.sourceNode.handleBounds.target || []].find((J) => J.id === w.value)) || ((T = e.sourceNode.handleBounds[E.value ?? "source"]) == null ? void 0 : T[0]); + } + ), G = q(() => { + var C, T, J; + return _.value && ((C = i.value) == null ? void 0 : C.handleId) && ((o.value === qe.Strict ? (T = _.value.handleBounds[E.value === "source" ? "target" : "source"]) == null ? void 0 : T.find( + (ae) => { + var p; + return ae.id === ((p = i.value) == null ? void 0 : p.handleId); + } + ) : [..._.value.handleBounds.source || [], ..._.value.handleBounds.target || []].find( + (ae) => { + var p; + return ae.id === ((p = i.value) == null ? void 0 : p.handleId); + } + )) || ((J = _.value.handleBounds[E.value ?? "target"]) == null ? void 0 : J[0])) || null; + }), y = q(() => { + var C; + return (C = P.value) == null ? void 0 : C.position; + }), I = q(() => P.value ? jt( + y.value || Z.Top, + { ...e.sourceNode.dimensions, ...e.sourceNode.computedPosition }, + P.value + ) : { + x: e.sourceNode.dimensions.width / 2, + y: e.sourceNode.dimensions.height / 2 + }), z = q(() => y.value ? b[y.value] : void 0), f = q(() => (r.value.x - d.value.x) / d.value.zoom), x = q(() => (r.value.y - d.value.y) / d.value.zoom), N = q(() => { + let C; + const T = { + sourceX: I.value.x, + sourceY: I.value.y, + sourcePosition: y.value, + targetX: f.value, + targetY: x.value, + targetPosition: z.value + }; + switch (l.value ?? s.value.type) { + case Fe.Bezier: + [C] = Kt(T); + break; + case Fe.Step: + [C] = Yn({ + ...T, + borderRadius: 0 + }); + break; + case Fe.SmoothStep: + [C] = Yn(T); + break; + case Fe.SimpleBezier: + [C] = Qa(T); + break; + case Fe.Straight: + [C] = ei(T); + break; + default: + [C] = Kt(T); + break; + } + return C; + }); + return (C, T) => { + var J; + return te(), ie("g", es, [ + k(m) ? (te(), _e(ra(k(m)), Pi(Ht({ key: 0 }, { + sourceX: k(I).x, + sourceY: k(I).y, + sourcePosition: (J = k(P)) == null ? void 0 : J.position, + targetX: k(f), + targetY: k(x), + targetPosition: k(z), + sourceNode: e.sourceNode, + sourceHandle: k(P), + targetNode: k(_), + targetHandle: k(G), + markerEnd: `url(#${k(Ue)(k(s).markerEnd)})`, + markerStart: `url(#${k(Ue)(k(s).markerStart)})`, + connectionStatus: k(c) + })), null, 16)) : (te(), ie("path", { + key: 1, + d: k(N), + class: Ke(["vue-flow__connection-path", [k(s).class, k(c)]]), + style: Le(k(u) || k(s).style || {}), + "marker-end": `url(#${k(Ue)(k(s).markerEnd)})`, + "marker-start": `url(#${k(Ue)(k(s).markerStart)})` + }, null, 14, ts)) + ]); + }; + } +}), as = ["tabIndex"], is = { + name: "NodesSelection", + compatConfig: { MODE: 3 } +}, rs = /* @__PURE__ */ fe({ + ...is, + setup(e) { + const t = ve(), n = O(t, "emits"), o = O(t, "viewport"), a = O(t, "getSelectedNodes"), i = O(t, "noPanClassName"), r = O(t, "disableKeyboardA11y"), l = O(t, "userSelectionActive"), u = $a(), s = ee(), c = Ua({ + el: s, + onStart(w) { + n.value.selectionDragStart(w); + }, + onDrag(w) { + n.value.selectionDrag(w); + }, + onStop(w) { + n.value.selectionDragStop(w); + } + }); + Ve(() => { + var w; + r.value || (w = s.value) == null || w.focus({ preventScroll: !0 }); + }); + const d = q(() => _a(a.value)), h = q(() => ({ + width: `${d.value.width}px`, + height: `${d.value.height}px`, + top: `${d.value.y}px`, + left: `${d.value.x}px` + })); + function b(w) { + n.value.selectionContextMenu({ event: w, nodes: a.value }); + } + function m(w) { + r.value || it[w.key] && u( + { + x: it[w.key].x, + y: it[w.key].y + }, + w.shiftKey + ); + } + return (w, E) => !k(l) && k(d).width && k(d).height ? (te(), ie("div", { + key: 0, + class: Ke(["vue-flow__nodesselection vue-flow__container", k(i)]), + style: Le({ transform: `translate(${k(o).x}px,${k(o).y}px) scale(${k(o).zoom})` }) + }, [ + de("div", { + ref_key: "el", + ref: s, + class: Ke([{ dragging: k(c) }, "vue-flow__nodesselection-rect"]), + style: Le(k(h)), + tabIndex: k(r) ? void 0 : -1, + onContextmenu: b, + onKeydown: m + }, null, 46, as) + ], 6)) : ge("", !0); + } +}), ls = { + name: "UserSelection", + compatConfig: { MODE: 3 } +}, us = /* @__PURE__ */ fe({ + ...ls, + setup(e) { + const { userSelectionRect: t } = ve(); + return (n, o) => { + var a, i, r, l; + return te(), ie("div", { + class: "vue-flow__selection vue-flow__container", + style: Le({ + width: `${(a = k(t)) == null ? void 0 : a.width}px`, + height: `${(i = k(t)) == null ? void 0 : i.height}px`, + transform: `translate(${(r = k(t)) == null ? void 0 : r.x}px, ${(l = k(t)) == null ? void 0 : l.y}px)` + }) + }, null, 4); + }; + } +}), ss = { + input: Tr, + default: $r, + output: Or +}, cs = { + default: Ru, + straight: Hu, + step: Gu, + smoothstep: Ja, + simplebezier: Vu +}; +function ds() { + return { + vueFlowRef: null, + viewportRef: null, + nodes: [], + edges: [], + nodeTypes: {}, + edgeTypes: {}, + initialized: !1, + dimensions: { + width: 0, + height: 0 + }, + viewport: { x: 0, y: 0, zoom: 1 }, + d3Zoom: null, + d3Selection: null, + d3ZoomHandler: null, + minZoom: 0.5, + maxZoom: 2, + translateExtent: [ + [Number.NEGATIVE_INFINITY, Number.NEGATIVE_INFINITY], + [Number.POSITIVE_INFINITY, Number.POSITIVE_INFINITY] + ], + nodeExtent: [ + [Number.NEGATIVE_INFINITY, Number.NEGATIVE_INFINITY], + [Number.POSITIVE_INFINITY, Number.POSITIVE_INFINITY] + ], + selectionMode: Qn.Full, + paneDragging: !1, + preventScrolling: !0, + zoomOnScroll: !0, + zoomOnPinch: !0, + zoomOnDoubleClick: !0, + panOnScroll: !1, + panOnScrollSpeed: 0.5, + panOnScrollMode: Ut.Free, + panOnDrag: !0, + edgeUpdaterRadius: 10, + onlyRenderVisibleElements: !1, + defaultViewport: { x: 0, y: 0, zoom: 1 }, + nodesSelectionActive: !1, + userSelectionActive: !1, + userSelectionRect: null, + defaultMarkerColor: "#b1b1b7", + connectionLineStyle: {}, + connectionLineType: null, + connectionLineOptions: { + type: Fe.Bezier, + style: {} + }, + connectionMode: qe.Loose, + connectionStartHandle: null, + connectionEndHandle: null, + connectionClickStartHandle: null, + connectionPosition: { x: NaN, y: NaN }, + connectionRadius: 20, + connectOnClick: !0, + connectionStatus: null, + isValidConnection: null, + snapGrid: [15, 15], + snapToGrid: !1, + edgesUpdatable: !1, + edgesFocusable: !0, + nodesFocusable: !0, + nodesConnectable: !0, + nodesDraggable: !0, + elementsSelectable: !0, + selectNodesOnDrag: !0, + multiSelectionActive: !1, + selectionKeyCode: "Shift", + multiSelectionKeyCode: "Meta", + zoomActivationKeyCode: "Meta", + deleteKeyCode: "Backspace", + panActivationKeyCode: "Space", + hooks: lr(), + applyDefault: !0, + autoConnect: !1, + fitViewOnInit: !1, + noDragClassName: "nodrag", + noWheelClassName: "nowheel", + noPanClassName: "nopan", + defaultEdgeOptions: void 0, + elevateEdgesOnSelect: !1, + elevateNodesOnSelect: !0, + autoPanOnNodeDrag: !0, + autoPanOnConnect: !0, + disableKeyboardA11y: !1, + ariaLiveMessage: "", + __experimentalFeatures: { + nestedFlow: !1 + } + }; +} +function ti(e) { + const t = ds(); + return e && Object.keys(e).forEach((n) => { + const o = e[n]; + se(o) && (t[n] = o); + }), t; +} +function vs(e, t, n) { + const o = q(() => (w) => e.nodes && !t.value.length ? e.nodes.find((E) => E.id === w) : e.nodes[t.value.indexOf(w)]), a = q(() => (w) => e.edges && !n.value.length ? e.edges.find((E) => E.id === w) : e.edges[n.value.indexOf(w)]), i = q(() => { + var w; + const E = { + ...cs, + ...e.edgeTypes + }, _ = Object.keys(E); + return (w = e.edges) == null || w.forEach((P) => P.type && !_.includes(P.type) && (E[P.type] = P.type)), E; + }), r = q(() => { + var w; + const E = { + ...ss, + ...e.nodeTypes + }, _ = Object.keys(E); + return (w = e.nodes) == null || w.forEach((P) => P.type && !_.includes(P.type) && (E[P.type] = P.type)), E; + }), l = q(() => { + const w = e.nodes.filter((E) => !E.hidden); + return e.onlyRenderVisibleElements ? w && Ea( + w, + { + x: 0, + y: 0, + width: e.dimensions.width, + height: e.dimensions.height + }, + e.viewport, + !0 + ) : w ?? []; + }), u = (w, E, _) => { + if (E = E ?? o.value(w.source), _ = _ ?? o.value(w.target), !E || !_) { + e.hooks.error.trigger(new me(pe.EDGE_ORPHANED, w.id)); + return; + } + return !w.hidden && !_.hidden && !E.hidden; + }, s = q(() => e.onlyRenderVisibleElements ? e.edges.filter((w) => { + const E = o.value(w.source), _ = o.value(w.target); + return u(w, E, _) && Er({ + sourcePos: E.computedPosition || { x: 0, y: 0 }, + targetPos: _.computedPosition || { x: 0, y: 0 }, + sourceWidth: E.dimensions.width, + sourceHeight: E.dimensions.height, + targetWidth: _.dimensions.width, + targetHeight: _.dimensions.height, + width: e.dimensions.width, + height: e.dimensions.height, + viewport: e.viewport + }); + }) : e.edges.filter((w) => u(w))), c = q(() => [...l.value, ...s.value]), d = q(() => e.nodes.filter((w) => w.selected)), h = q(() => e.edges.filter((w) => w.selected)), b = q(() => [ + ...d.value ?? [], + ...h.value ?? [] + ]), m = q( + () => l.value.filter((w) => w.initialized && w.handleBounds !== void 0) + ); + return { + getNode: o, + getEdge: a, + getElements: c, + getEdgeTypes: i, + getNodeTypes: r, + getEdges: s, + getNodes: l, + getSelectedElements: b, + getSelectedNodes: d, + getSelectedEdges: h, + getNodesInitialized: m + }; +} +function ao(e, t, n) { + e.prototype = t.prototype = n, n.constructor = e; +} +function ni(e, t) { + var n = Object.create(e.prototype); + for (var o in t) + n[o] = t[o]; + return n; +} +function Pt() { +} +var Et = 0.7, Wt = 1 / Et, rt = "\\s*([+-]?\\d+)\\s*", St = "\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*", Ie = "\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*", hs = /^#([0-9a-f]{3,8})$/, fs = new RegExp(`^rgb\\(${rt},${rt},${rt}\\)$`), gs = new RegExp(`^rgb\\(${Ie},${Ie},${Ie}\\)$`), ps = new RegExp(`^rgba\\(${rt},${rt},${rt},${St}\\)$`), ms = new RegExp(`^rgba\\(${Ie},${Ie},${Ie},${St}\\)$`), ys = new RegExp(`^hsl\\(${St},${Ie},${Ie}\\)$`), bs = new RegExp(`^hsla\\(${St},${Ie},${Ie},${St}\\)$`), Lo = { + aliceblue: 15792383, + antiquewhite: 16444375, + aqua: 65535, + aquamarine: 8388564, + azure: 15794175, + beige: 16119260, + bisque: 16770244, + black: 0, + blanchedalmond: 16772045, + blue: 255, + blueviolet: 9055202, + brown: 10824234, + burlywood: 14596231, + cadetblue: 6266528, + chartreuse: 8388352, + chocolate: 13789470, + coral: 16744272, + cornflowerblue: 6591981, + cornsilk: 16775388, + crimson: 14423100, + cyan: 65535, + darkblue: 139, + darkcyan: 35723, + darkgoldenrod: 12092939, + darkgray: 11119017, + darkgreen: 25600, + darkgrey: 11119017, + darkkhaki: 12433259, + darkmagenta: 9109643, + darkolivegreen: 5597999, + darkorange: 16747520, + darkorchid: 10040012, + darkred: 9109504, + darksalmon: 15308410, + darkseagreen: 9419919, + darkslateblue: 4734347, + darkslategray: 3100495, + darkslategrey: 3100495, + darkturquoise: 52945, + darkviolet: 9699539, + deeppink: 16716947, + deepskyblue: 49151, + dimgray: 6908265, + dimgrey: 6908265, + dodgerblue: 2003199, + firebrick: 11674146, + floralwhite: 16775920, + forestgreen: 2263842, + fuchsia: 16711935, + gainsboro: 14474460, + ghostwhite: 16316671, + gold: 16766720, + goldenrod: 14329120, + gray: 8421504, + green: 32768, + greenyellow: 11403055, + grey: 8421504, + honeydew: 15794160, + hotpink: 16738740, + indianred: 13458524, + indigo: 4915330, + ivory: 16777200, + khaki: 15787660, + lavender: 15132410, + lavenderblush: 16773365, + lawngreen: 8190976, + lemonchiffon: 16775885, + lightblue: 11393254, + lightcoral: 15761536, + lightcyan: 14745599, + lightgoldenrodyellow: 16448210, + lightgray: 13882323, + lightgreen: 9498256, + lightgrey: 13882323, + lightpink: 16758465, + lightsalmon: 16752762, + lightseagreen: 2142890, + lightskyblue: 8900346, + lightslategray: 7833753, + lightslategrey: 7833753, + lightsteelblue: 11584734, + lightyellow: 16777184, + lime: 65280, + limegreen: 3329330, + linen: 16445670, + magenta: 16711935, + maroon: 8388608, + mediumaquamarine: 6737322, + mediumblue: 205, + mediumorchid: 12211667, + mediumpurple: 9662683, + mediumseagreen: 3978097, + mediumslateblue: 8087790, + mediumspringgreen: 64154, + mediumturquoise: 4772300, + mediumvioletred: 13047173, + midnightblue: 1644912, + mintcream: 16121850, + mistyrose: 16770273, + moccasin: 16770229, + navajowhite: 16768685, + navy: 128, + oldlace: 16643558, + olive: 8421376, + olivedrab: 7048739, + orange: 16753920, + orangered: 16729344, + orchid: 14315734, + palegoldenrod: 15657130, + palegreen: 10025880, + paleturquoise: 11529966, + palevioletred: 14381203, + papayawhip: 16773077, + peachpuff: 16767673, + peru: 13468991, + pink: 16761035, + plum: 14524637, + powderblue: 11591910, + purple: 8388736, + rebeccapurple: 6697881, + red: 16711680, + rosybrown: 12357519, + royalblue: 4286945, + saddlebrown: 9127187, + salmon: 16416882, + sandybrown: 16032864, + seagreen: 3050327, + seashell: 16774638, + sienna: 10506797, + silver: 12632256, + skyblue: 8900331, + slateblue: 6970061, + slategray: 7372944, + slategrey: 7372944, + snow: 16775930, + springgreen: 65407, + steelblue: 4620980, + tan: 13808780, + teal: 32896, + thistle: 14204888, + tomato: 16737095, + turquoise: 4251856, + violet: 15631086, + wheat: 16113331, + white: 16777215, + whitesmoke: 16119285, + yellow: 16776960, + yellowgreen: 10145074 +}; +ao(Pt, Nt, { + copy(e) { + return Object.assign(new this.constructor(), this, e); + }, + displayable() { + return this.rgb().displayable(); + }, + hex: Yo, + // Deprecated! Use color.formatHex. + formatHex: Yo, + formatHex8: ws, + formatHsl: xs, + formatRgb: Xo, + toString: Xo +}); +function Yo() { + return this.rgb().formatHex(); +} +function ws() { + return this.rgb().formatHex8(); +} +function xs() { + return oi(this).formatHsl(); +} +function Xo() { + return this.rgb().formatRgb(); +} +function Nt(e) { + var t, n; + return e = (e + "").trim().toLowerCase(), (t = hs.exec(e)) ? (n = t[1].length, t = parseInt(t[1], 16), n === 6 ? Go(t) : n === 3 ? new ye(t >> 8 & 15 | t >> 4 & 240, t >> 4 & 15 | t & 240, (t & 15) << 4 | t & 15, 1) : n === 8 ? Dt(t >> 24 & 255, t >> 16 & 255, t >> 8 & 255, (t & 255) / 255) : n === 4 ? Dt(t >> 12 & 15 | t >> 8 & 240, t >> 8 & 15 | t >> 4 & 240, t >> 4 & 15 | t & 240, ((t & 15) << 4 | t & 15) / 255) : null) : (t = fs.exec(e)) ? new ye(t[1], t[2], t[3], 1) : (t = gs.exec(e)) ? new ye(t[1] * 255 / 100, t[2] * 255 / 100, t[3] * 255 / 100, 1) : (t = ps.exec(e)) ? Dt(t[1], t[2], t[3], t[4]) : (t = ms.exec(e)) ? Dt(t[1] * 255 / 100, t[2] * 255 / 100, t[3] * 255 / 100, t[4]) : (t = ys.exec(e)) ? Uo(t[1], t[2] / 100, t[3] / 100, 1) : (t = bs.exec(e)) ? Uo(t[1], t[2] / 100, t[3] / 100, t[4]) : Lo.hasOwnProperty(e) ? Go(Lo[e]) : e === "transparent" ? new ye(NaN, NaN, NaN, 0) : null; +} +function Go(e) { + return new ye(e >> 16 & 255, e >> 8 & 255, e & 255, 1); +} +function Dt(e, t, n, o) { + return o <= 0 && (e = t = n = NaN), new ye(e, t, n, o); +} +function _s(e) { + return e instanceof Pt || (e = Nt(e)), e ? (e = e.rgb(), new ye(e.r, e.g, e.b, e.opacity)) : new ye(); +} +function Xn(e, t, n, o) { + return arguments.length === 1 ? _s(e) : new ye(e, t, n, o ?? 1); +} +function ye(e, t, n, o) { + this.r = +e, this.g = +t, this.b = +n, this.opacity = +o; +} +ao(ye, Xn, ni(Pt, { + brighter(e) { + return e = e == null ? Wt : Math.pow(Wt, e), new ye(this.r * e, this.g * e, this.b * e, this.opacity); + }, + darker(e) { + return e = e == null ? Et : Math.pow(Et, e), new ye(this.r * e, this.g * e, this.b * e, this.opacity); + }, + rgb() { + return this; + }, + clamp() { + return new ye(Ze(this.r), Ze(this.g), Ze(this.b), qt(this.opacity)); + }, + displayable() { + return -0.5 <= this.r && this.r < 255.5 && -0.5 <= this.g && this.g < 255.5 && -0.5 <= this.b && this.b < 255.5 && 0 <= this.opacity && this.opacity <= 1; + }, + hex: Ho, + // Deprecated! Use color.formatHex. + formatHex: Ho, + formatHex8: Es, + formatRgb: Fo, + toString: Fo +})); +function Ho() { + return `#${je(this.r)}${je(this.g)}${je(this.b)}`; +} +function Es() { + return `#${je(this.r)}${je(this.g)}${je(this.b)}${je((isNaN(this.opacity) ? 1 : this.opacity) * 255)}`; +} +function Fo() { + const e = qt(this.opacity); + return `${e === 1 ? "rgb(" : "rgba("}${Ze(this.r)}, ${Ze(this.g)}, ${Ze(this.b)}${e === 1 ? ")" : `, ${e})`}`; +} +function qt(e) { + return isNaN(e) ? 1 : Math.max(0, Math.min(1, e)); +} +function Ze(e) { + return Math.max(0, Math.min(255, Math.round(e) || 0)); +} +function je(e) { + return e = Ze(e), (e < 16 ? "0" : "") + e.toString(16); +} +function Uo(e, t, n, o) { + return o <= 0 ? e = t = n = NaN : n <= 0 || n >= 1 ? e = t = NaN : t <= 0 && (e = NaN), new Se(e, t, n, o); +} +function oi(e) { + if (e instanceof Se) + return new Se(e.h, e.s, e.l, e.opacity); + if (e instanceof Pt || (e = Nt(e)), !e) + return new Se(); + if (e instanceof Se) + return e; + e = e.rgb(); + var t = e.r / 255, n = e.g / 255, o = e.b / 255, a = Math.min(t, n, o), i = Math.max(t, n, o), r = NaN, l = i - a, u = (i + a) / 2; + return l ? (t === i ? r = (n - o) / l + (n < o) * 6 : n === i ? r = (o - t) / l + 2 : r = (t - n) / l + 4, l /= u < 0.5 ? i + a : 2 - i - a, r *= 60) : l = u > 0 && u < 1 ? 0 : r, new Se(r, l, u, e.opacity); +} +function Ss(e, t, n, o) { + return arguments.length === 1 ? oi(e) : new Se(e, t, n, o ?? 1); +} +function Se(e, t, n, o) { + this.h = +e, this.s = +t, this.l = +n, this.opacity = +o; +} +ao(Se, Ss, ni(Pt, { + brighter(e) { + return e = e == null ? Wt : Math.pow(Wt, e), new Se(this.h, this.s, this.l * e, this.opacity); + }, + darker(e) { + return e = e == null ? Et : Math.pow(Et, e), new Se(this.h, this.s, this.l * e, this.opacity); + }, + rgb() { + var e = this.h % 360 + (this.h < 0) * 360, t = isNaN(e) || isNaN(this.s) ? 0 : this.s, n = this.l, o = n + (n < 0.5 ? n : 1 - n) * t, a = 2 * n - o; + return new ye( + kn(e >= 240 ? e - 240 : e + 120, a, o), + kn(e, a, o), + kn(e < 120 ? e + 240 : e - 120, a, o), + this.opacity + ); + }, + clamp() { + return new Se(jo(this.h), Bt(this.s), Bt(this.l), qt(this.opacity)); + }, + displayable() { + return (0 <= this.s && this.s <= 1 || isNaN(this.s)) && 0 <= this.l && this.l <= 1 && 0 <= this.opacity && this.opacity <= 1; + }, + formatHsl() { + const e = qt(this.opacity); + return `${e === 1 ? "hsl(" : "hsla("}${jo(this.h)}, ${Bt(this.s) * 100}%, ${Bt(this.l) * 100}%${e === 1 ? ")" : `, ${e})`}`; + } +})); +function jo(e) { + return e = (e || 0) % 360, e < 0 ? e + 360 : e; +} +function Bt(e) { + return Math.max(0, Math.min(1, e || 0)); +} +function kn(e, t, n) { + return (e < 60 ? t + (n - t) * e / 60 : e < 180 ? n : e < 240 ? t + (n - t) * (240 - e) / 60 : t) * 255; +} +const ai = (e) => () => e; +function Ns(e, t) { + return function(n) { + return e + n * t; + }; +} +function ks(e, t, n) { + return e = Math.pow(e, n), t = Math.pow(t, n) - e, n = 1 / n, function(o) { + return Math.pow(e + o * t, n); + }; +} +function Cs(e) { + return (e = +e) == 1 ? ii : function(t, n) { + return n - t ? ks(t, n, e) : ai(isNaN(t) ? n : t); + }; +} +function ii(e, t) { + var n = t - e; + return n ? Ns(e, n) : ai(isNaN(e) ? t : e); +} +const Zo = function e(t) { + var n = Cs(t); + function o(a, i) { + var r = n((a = Xn(a)).r, (i = Xn(i)).r), l = n(a.g, i.g), u = n(a.b, i.b), s = ii(a.opacity, i.opacity); + return function(c) { + return a.r = r(c), a.g = l(c), a.b = u(c), a.opacity = s(c), a + ""; + }; + } + return o.gamma = e, o; +}(1); +function Ge(e, t) { + return e = +e, t = +t, function(n) { + return e * (1 - n) + t * n; + }; +} +var Gn = /[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g, Cn = new RegExp(Gn.source, "g"); +function Ms(e) { + return function() { + return e; + }; +} +function Ps(e) { + return function(t) { + return e(t) + ""; + }; +} +function Is(e, t) { + var n = Gn.lastIndex = Cn.lastIndex = 0, o, a, i, r = -1, l = [], u = []; + for (e = e + "", t = t + ""; (o = Gn.exec(e)) && (a = Cn.exec(t)); ) + (i = a.index) > n && (i = t.slice(n, i), l[r] ? l[r] += i : l[++r] = i), (o = o[0]) === (a = a[0]) ? l[r] ? l[r] += a : l[++r] = a : (l[++r] = null, u.push({ i: r, x: Ge(o, a) })), n = Cn.lastIndex; + return n < t.length && (i = t.slice(n), l[r] ? l[r] += i : l[++r] = i), l.length < 2 ? u[0] ? Ps(u[0].x) : Ms(t) : (t = u.length, function(s) { + for (var c = 0, d; c < t; ++c) + l[(d = u[c]).i] = d.x(s); + return l.join(""); + }); +} +var Ko = 180 / Math.PI, ri = { + translateX: 0, + translateY: 0, + rotate: 0, + skewX: 0, + scaleX: 1, + scaleY: 1 +}; +function li(e, t, n, o, a, i) { + var r, l, u; + return (r = Math.sqrt(e * e + t * t)) && (e /= r, t /= r), (u = e * n + t * o) && (n -= e * u, o -= t * u), (l = Math.sqrt(n * n + o * o)) && (n /= l, o /= l, u /= l), e * o < t * n && (e = -e, t = -t, u = -u, r = -r), { + translateX: a, + translateY: i, + rotate: Math.atan2(t, e) * Ko, + skewX: Math.atan(u) * Ko, + scaleX: r, + scaleY: l + }; +} +var At; +function $s(e) { + const t = new (typeof DOMMatrix == "function" ? DOMMatrix : WebKitCSSMatrix)(e + ""); + return t.isIdentity ? ri : li(t.a, t.b, t.c, t.d, t.e, t.f); +} +function Ts(e) { + return e == null || (At || (At = document.createElementNS("http://www.w3.org/2000/svg", "g")), At.setAttribute("transform", e), !(e = At.transform.baseVal.consolidate())) ? ri : (e = e.matrix, li(e.a, e.b, e.c, e.d, e.e, e.f)); +} +function ui(e, t, n, o) { + function a(s) { + return s.length ? s.pop() + " " : ""; + } + function i(s, c, d, h, b, m) { + if (s !== d || c !== h) { + var w = b.push("translate(", null, t, null, n); + m.push({ i: w - 4, x: Ge(s, d) }, { i: w - 2, x: Ge(c, h) }); + } else + (d || h) && b.push("translate(" + d + t + h + n); + } + function r(s, c, d, h) { + s !== c ? (s - c > 180 ? c += 360 : c - s > 180 && (s += 360), h.push({ i: d.push(a(d) + "rotate(", null, o) - 2, x: Ge(s, c) })) : c && d.push(a(d) + "rotate(" + c + o); + } + function l(s, c, d, h) { + s !== c ? h.push({ i: d.push(a(d) + "skewX(", null, o) - 2, x: Ge(s, c) }) : c && d.push(a(d) + "skewX(" + c + o); + } + function u(s, c, d, h, b, m) { + if (s !== d || c !== h) { + var w = b.push(a(b) + "scale(", null, ",", null, ")"); + m.push({ i: w - 4, x: Ge(s, d) }, { i: w - 2, x: Ge(c, h) }); + } else + (d !== 1 || h !== 1) && b.push(a(b) + "scale(" + d + "," + h + ")"); + } + return function(s, c) { + var d = [], h = []; + return s = e(s), c = e(c), i(s.translateX, s.translateY, c.translateX, c.translateY, d, h), r(s.rotate, c.rotate, d, h), l(s.skewX, c.skewX, d, h), u(s.scaleX, s.scaleY, c.scaleX, c.scaleY, d, h), s = c = null, function(b) { + for (var m = -1, w = h.length, E; ++m < w; ) + d[(E = h[m]).i] = E.x(b); + return d.join(""); + }; + }; +} +var Os = ui($s, "px, ", "px)", "deg)"), Ds = ui(Ts, ", ", ")", ")"), Bs = 1e-12; +function Wo(e) { + return ((e = Math.exp(e)) + 1 / e) / 2; +} +function As(e) { + return ((e = Math.exp(e)) - 1 / e) / 2; +} +function zs(e) { + return ((e = Math.exp(2 * e)) - 1) / (e + 1); +} +const Rs = function e(t, n, o) { + function a(i, r) { + var l = i[0], u = i[1], s = i[2], c = r[0], d = r[1], h = r[2], b = c - l, m = d - u, w = b * b + m * m, E, _; + if (w < Bs) + _ = Math.log(h / s) / t, E = function(f) { + return [ + l + f * b, + u + f * m, + s * Math.exp(t * f * _) + ]; + }; + else { + var P = Math.sqrt(w), G = (h * h - s * s + o * w) / (2 * s * n * P), y = (h * h - s * s - o * w) / (2 * h * n * P), I = Math.log(Math.sqrt(G * G + 1) - G), z = Math.log(Math.sqrt(y * y + 1) - y); + _ = (z - I) / t, E = function(f) { + var x = f * _, N = Wo(I), C = s / (n * P) * (N * zs(t * x + I) - As(I)); + return [ + l + C * b, + u + C * m, + s * N / Wo(t * x + I) + ]; + }; + } + return E.duration = _ * 1e3 * t / Math.SQRT2, E; + } + return a.rho = function(i) { + var r = Math.max(1e-3, +i), l = r * r, u = l * l; + return e(r, l, u); + }, a; +}(Math.SQRT2, 2, 4); +var ft = 0, yt = 0, pt = 0, si = 1e3, Qt, bt, Jt = 0, Qe = 0, yn = 0, kt = typeof performance == "object" && performance.now ? performance : Date, ci = typeof window == "object" && window.requestAnimationFrame ? window.requestAnimationFrame.bind(window) : function(e) { + setTimeout(e, 17); +}; +function io() { + return Qe || (ci(Vs), Qe = kt.now() + yn); +} +function Vs() { + Qe = 0; +} +function en() { + this._call = this._time = this._next = null; +} +en.prototype = di.prototype = { + constructor: en, + restart: function(e, t, n) { + if (typeof e != "function") + throw new TypeError("callback is not a function"); + n = (n == null ? io() : +n) + (t == null ? 0 : +t), !this._next && bt !== this && (bt ? bt._next = this : Qt = this, bt = this), this._call = e, this._time = n, Hn(); + }, + stop: function() { + this._call && (this._call = null, this._time = 1 / 0, Hn()); + } +}; +function di(e, t, n) { + var o = new en(); + return o.restart(e, t, n), o; +} +function Ls() { + io(), ++ft; + for (var e = Qt, t; e; ) + (t = Qe - e._time) >= 0 && e._call.call(void 0, t), e = e._next; + --ft; +} +function qo() { + Qe = (Jt = kt.now()) + yn, ft = yt = 0; + try { + Ls(); + } finally { + ft = 0, Xs(), Qe = 0; + } +} +function Ys() { + var e = kt.now(), t = e - Jt; + t > si && (yn -= t, Jt = e); +} +function Xs() { + for (var e, t = Qt, n, o = 1 / 0; t; ) + t._call ? (o > t._time && (o = t._time), e = t, t = t._next) : (n = t._next, t._next = null, t = e ? e._next = n : Qt = n); + bt = e, Hn(o); +} +function Hn(e) { + if (!ft) { + yt && (yt = clearTimeout(yt)); + var t = e - Qe; + t > 24 ? (e < 1 / 0 && (yt = setTimeout(qo, e - kt.now() - yn)), pt && (pt = clearInterval(pt))) : (pt || (Jt = kt.now(), pt = setInterval(Ys, si)), ft = 1, ci(qo)); + } +} +function Qo(e, t, n) { + var o = new en(); + return t = t == null ? 0 : +t, o.restart((a) => { + o.stop(), e(a + t); + }, t, n), o; +} +var Gs = sn("start", "end", "cancel", "interrupt"), Hs = [], vi = 0, Jo = 1, Fn = 2, Yt = 3, ea = 4, Un = 5, Xt = 6; +function bn(e, t, n, o, a, i) { + var r = e.__transition; + if (!r) + e.__transition = {}; + else if (n in r) + return; + Fs(e, n, { + name: t, + index: o, + // For context during callback. + group: a, + // For context during callback. + on: Gs, + tween: Hs, + time: i.time, + delay: i.delay, + duration: i.duration, + ease: i.ease, + timer: null, + state: vi + }); +} +function ro(e, t) { + var n = Ce(e, t); + if (n.state > vi) + throw new Error("too late; already scheduled"); + return n; +} +function $e(e, t) { + var n = Ce(e, t); + if (n.state > Yt) + throw new Error("too late; already running"); + return n; +} +function Ce(e, t) { + var n = e.__transition; + if (!n || !(n = n[t])) + throw new Error("transition not found"); + return n; +} +function Fs(e, t, n) { + var o = e.__transition, a; + o[t] = n, n.timer = di(i, 0, n.time); + function i(s) { + n.state = Jo, n.timer.restart(r, n.delay, n.time), n.delay <= s && r(s - n.delay); + } + function r(s) { + var c, d, h, b; + if (n.state !== Jo) + return u(); + for (c in o) + if (b = o[c], b.name === n.name) { + if (b.state === Yt) + return Qo(r); + b.state === ea ? (b.state = Xt, b.timer.stop(), b.on.call("interrupt", e, e.__data__, b.index, b.group), delete o[c]) : +c < t && (b.state = Xt, b.timer.stop(), b.on.call("cancel", e, e.__data__, b.index, b.group), delete o[c]); + } + if (Qo(function() { + n.state === Yt && (n.state = ea, n.timer.restart(l, n.delay, n.time), l(s)); + }), n.state = Fn, n.on.call("start", e, e.__data__, n.index, n.group), n.state === Fn) { + for (n.state = Yt, a = new Array(h = n.tween.length), c = 0, d = -1; c < h; ++c) + (b = n.tween[c].value.call(e, e.__data__, n.index, n.group)) && (a[++d] = b); + a.length = d + 1; + } + } + function l(s) { + for (var c = s < n.duration ? n.ease.call(null, s / n.duration) : (n.timer.restart(u), n.state = Un, 1), d = -1, h = a.length; ++d < h; ) + a[d].call(e, c); + n.state === Un && (n.on.call("end", e, e.__data__, n.index, n.group), u()); + } + function u() { + n.state = Xt, n.timer.stop(), delete o[t]; + for (var s in o) + return; + delete e.__transition; + } +} +function Gt(e, t) { + var n = e.__transition, o, a, i = !0, r; + if (n) { + t = t == null ? null : t + ""; + for (r in n) { + if ((o = n[r]).name !== t) { + i = !1; + continue; + } + a = o.state > Fn && o.state < Un, o.state = Xt, o.timer.stop(), o.on.call(a ? "interrupt" : "cancel", e, e.__data__, o.index, o.group), delete n[r]; + } + i && delete e.__transition; + } +} +function Us(e) { + return this.each(function() { + Gt(this, e); + }); +} +function js(e, t) { + var n, o; + return function() { + var a = $e(this, e), i = a.tween; + if (i !== n) { + o = n = i; + for (var r = 0, l = o.length; r < l; ++r) + if (o[r].name === t) { + o = o.slice(), o.splice(r, 1); + break; + } + } + a.tween = o; + }; +} +function Zs(e, t, n) { + var o, a; + if (typeof n != "function") + throw new Error(); + return function() { + var i = $e(this, e), r = i.tween; + if (r !== o) { + a = (o = r).slice(); + for (var l = { name: t, value: n }, u = 0, s = a.length; u < s; ++u) + if (a[u].name === t) { + a[u] = l; + break; + } + u === s && a.push(l); + } + i.tween = a; + }; +} +function Ks(e, t) { + var n = this._id; + if (e += "", arguments.length < 2) { + for (var o = Ce(this.node(), n).tween, a = 0, i = o.length, r; a < i; ++a) + if ((r = o[a]).name === e) + return r.value; + return null; + } + return this.each((t == null ? js : Zs)(n, e, t)); +} +function lo(e, t, n) { + var o = e._id; + return e.each(function() { + var a = $e(this, o); + (a.value || (a.value = {}))[t] = n.apply(this, arguments); + }), function(a) { + return Ce(a, o).value[t]; + }; +} +function hi(e, t) { + var n; + return (typeof t == "number" ? Ge : t instanceof Nt ? Zo : (n = Nt(t)) ? (t = n, Zo) : Is)(e, t); +} +function Ws(e) { + return function() { + this.removeAttribute(e); + }; +} +function qs(e) { + return function() { + this.removeAttributeNS(e.space, e.local); + }; +} +function Qs(e, t, n) { + var o, a = n + "", i; + return function() { + var r = this.getAttribute(e); + return r === a ? null : r === o ? i : i = t(o = r, n); + }; +} +function Js(e, t, n) { + var o, a = n + "", i; + return function() { + var r = this.getAttributeNS(e.space, e.local); + return r === a ? null : r === o ? i : i = t(o = r, n); + }; +} +function ec(e, t, n) { + var o, a, i; + return function() { + var r, l = n(this), u; + return l == null ? void this.removeAttribute(e) : (r = this.getAttribute(e), u = l + "", r === u ? null : r === o && u === a ? i : (a = u, i = t(o = r, l))); + }; +} +function tc(e, t, n) { + var o, a, i; + return function() { + var r, l = n(this), u; + return l == null ? void this.removeAttributeNS(e.space, e.local) : (r = this.getAttributeNS(e.space, e.local), u = l + "", r === u ? null : r === o && u === a ? i : (a = u, i = t(o = r, l))); + }; +} +function nc(e, t) { + var n = cn(e), o = n === "transform" ? Ds : hi; + return this.attrTween(e, typeof t == "function" ? (n.local ? tc : ec)(n, o, lo(this, "attr." + e, t)) : t == null ? (n.local ? qs : Ws)(n) : (n.local ? Js : Qs)(n, o, t)); +} +function oc(e, t) { + return function(n) { + this.setAttribute(e, t.call(this, n)); + }; +} +function ac(e, t) { + return function(n) { + this.setAttributeNS(e.space, e.local, t.call(this, n)); + }; +} +function ic(e, t) { + var n, o; + function a() { + var i = t.apply(this, arguments); + return i !== o && (n = (o = i) && ac(e, i)), n; + } + return a._value = t, a; +} +function rc(e, t) { + var n, o; + function a() { + var i = t.apply(this, arguments); + return i !== o && (n = (o = i) && oc(e, i)), n; + } + return a._value = t, a; +} +function lc(e, t) { + var n = "attr." + e; + if (arguments.length < 2) + return (n = this.tween(n)) && n._value; + if (t == null) + return this.tween(n, null); + if (typeof t != "function") + throw new Error(); + var o = cn(e); + return this.tween(n, (o.local ? ic : rc)(o, t)); +} +function uc(e, t) { + return function() { + ro(this, e).delay = +t.apply(this, arguments); + }; +} +function sc(e, t) { + return t = +t, function() { + ro(this, e).delay = t; + }; +} +function cc(e) { + var t = this._id; + return arguments.length ? this.each((typeof e == "function" ? uc : sc)(t, e)) : Ce(this.node(), t).delay; +} +function dc(e, t) { + return function() { + $e(this, e).duration = +t.apply(this, arguments); + }; +} +function vc(e, t) { + return t = +t, function() { + $e(this, e).duration = t; + }; +} +function hc(e) { + var t = this._id; + return arguments.length ? this.each((typeof e == "function" ? dc : vc)(t, e)) : Ce(this.node(), t).duration; +} +function fc(e, t) { + if (typeof t != "function") + throw new Error(); + return function() { + $e(this, e).ease = t; + }; +} +function gc(e) { + var t = this._id; + return arguments.length ? this.each(fc(t, e)) : Ce(this.node(), t).ease; +} +function pc(e, t) { + return function() { + var n = t.apply(this, arguments); + if (typeof n != "function") + throw new Error(); + $e(this, e).ease = n; + }; +} +function mc(e) { + if (typeof e != "function") + throw new Error(); + return this.each(pc(this._id, e)); +} +function yc(e) { + typeof e != "function" && (e = Da(e)); + for (var t = this._groups, n = t.length, o = new Array(n), a = 0; a < n; ++a) + for (var i = t[a], r = i.length, l = o[a] = [], u, s = 0; s < r; ++s) + (u = i[s]) && e.call(u, u.__data__, s, i) && l.push(u); + return new Xe(o, this._parents, this._name, this._id); +} +function bc(e) { + if (e._id !== this._id) + throw new Error(); + for (var t = this._groups, n = e._groups, o = t.length, a = n.length, i = Math.min(o, a), r = new Array(o), l = 0; l < i; ++l) + for (var u = t[l], s = n[l], c = u.length, d = r[l] = new Array(c), h, b = 0; b < c; ++b) + (h = u[b] || s[b]) && (d[b] = h); + for (; l < o; ++l) + r[l] = t[l]; + return new Xe(r, this._parents, this._name, this._id); +} +function wc(e) { + return (e + "").trim().split(/^|\s+/).every(function(t) { + var n = t.indexOf("."); + return n >= 0 && (t = t.slice(0, n)), !t || t === "start"; + }); +} +function xc(e, t, n) { + var o, a, i = wc(t) ? ro : $e; + return function() { + var r = i(this, e), l = r.on; + l !== o && (a = (o = l).copy()).on(t, n), r.on = a; + }; +} +function _c(e, t) { + var n = this._id; + return arguments.length < 2 ? Ce(this.node(), n).on.on(e) : this.each(xc(n, e, t)); +} +function Ec(e) { + return function() { + var t = this.parentNode; + for (var n in this.__transition) + if (+n !== e) + return; + t && t.removeChild(this); + }; +} +function Sc() { + return this.on("end.remove", Ec(this._id)); +} +function Nc(e) { + var t = this._name, n = this._id; + typeof e != "function" && (e = to(e)); + for (var o = this._groups, a = o.length, i = new Array(a), r = 0; r < a; ++r) + for (var l = o[r], u = l.length, s = i[r] = new Array(u), c, d, h = 0; h < u; ++h) + (c = l[h]) && (d = e.call(c, c.__data__, h, l)) && ("__data__" in c && (d.__data__ = c.__data__), s[h] = d, bn(s[h], t, n, h, s, Ce(c, n))); + return new Xe(i, this._parents, t, n); +} +function kc(e) { + var t = this._name, n = this._id; + typeof e != "function" && (e = Oa(e)); + for (var o = this._groups, a = o.length, i = [], r = [], l = 0; l < a; ++l) + for (var u = o[l], s = u.length, c, d = 0; d < s; ++d) + if (c = u[d]) { + for (var h = e.call(c, c.__data__, d, u), b, m = Ce(c, n), w = 0, E = h.length; w < E; ++w) + (b = h[w]) && bn(b, t, n, w, h, m); + i.push(h), r.push(c); + } + return new Xe(i, r, t, n); +} +var Cc = Mt.prototype.constructor; +function Mc() { + return new Cc(this._groups, this._parents); +} +function Pc(e, t) { + var n, o, a; + return function() { + var i = ht(this, e), r = (this.style.removeProperty(e), ht(this, e)); + return i === r ? null : i === n && r === o ? a : a = t(n = i, o = r); + }; +} +function fi(e) { + return function() { + this.style.removeProperty(e); + }; +} +function Ic(e, t, n) { + var o, a = n + "", i; + return function() { + var r = ht(this, e); + return r === a ? null : r === o ? i : i = t(o = r, n); + }; +} +function $c(e, t, n) { + var o, a, i; + return function() { + var r = ht(this, e), l = n(this), u = l + ""; + return l == null && (u = l = (this.style.removeProperty(e), ht(this, e))), r === u ? null : r === o && u === a ? i : (a = u, i = t(o = r, l)); + }; +} +function Tc(e, t) { + var n, o, a, i = "style." + t, r = "end." + i, l; + return function() { + var u = $e(this, e), s = u.on, c = u.value[i] == null ? l || (l = fi(t)) : void 0; + (s !== n || a !== c) && (o = (n = s).copy()).on(r, a = c), u.on = o; + }; +} +function Oc(e, t, n) { + var o = (e += "") == "transform" ? Os : hi; + return t == null ? this.styleTween(e, Pc(e, o)).on("end.style." + e, fi(e)) : typeof t == "function" ? this.styleTween(e, $c(e, o, lo(this, "style." + e, t))).each(Tc(this._id, e)) : this.styleTween(e, Ic(e, o, t), n).on("end.style." + e, null); +} +function Dc(e, t, n) { + return function(o) { + this.style.setProperty(e, t.call(this, o), n); + }; +} +function Bc(e, t, n) { + var o, a; + function i() { + var r = t.apply(this, arguments); + return r !== a && (o = (a = r) && Dc(e, r, n)), o; + } + return i._value = t, i; +} +function Ac(e, t, n) { + var o = "style." + (e += ""); + if (arguments.length < 2) + return (o = this.tween(o)) && o._value; + if (t == null) + return this.tween(o, null); + if (typeof t != "function") + throw new Error(); + return this.tween(o, Bc(e, t, n ?? "")); +} +function zc(e) { + return function() { + this.textContent = e; + }; +} +function Rc(e) { + return function() { + var t = e(this); + this.textContent = t ?? ""; + }; +} +function Vc(e) { + return this.tween("text", typeof e == "function" ? Rc(lo(this, "text", e)) : zc(e == null ? "" : e + "")); +} +function Lc(e) { + return function(t) { + this.textContent = e.call(this, t); + }; +} +function Yc(e) { + var t, n; + function o() { + var a = e.apply(this, arguments); + return a !== n && (t = (n = a) && Lc(a)), t; + } + return o._value = e, o; +} +function Xc(e) { + var t = "text"; + if (arguments.length < 1) + return (t = this.tween(t)) && t._value; + if (e == null) + return this.tween(t, null); + if (typeof e != "function") + throw new Error(); + return this.tween(t, Yc(e)); +} +function Gc() { + for (var e = this._name, t = this._id, n = gi(), o = this._groups, a = o.length, i = 0; i < a; ++i) + for (var r = o[i], l = r.length, u, s = 0; s < l; ++s) + if (u = r[s]) { + var c = Ce(u, t); + bn(u, e, n, s, r, { + time: c.time + c.delay + c.duration, + delay: 0, + duration: c.duration, + ease: c.ease + }); + } + return new Xe(o, this._parents, e, n); +} +function Hc() { + var e, t, n = this, o = n._id, a = n.size(); + return new Promise(function(i, r) { + var l = { value: r }, u = { value: function() { + --a === 0 && i(); + } }; + n.each(function() { + var s = $e(this, o), c = s.on; + c !== e && (t = (e = c).copy(), t._.cancel.push(l), t._.interrupt.push(l), t._.end.push(u)), s.on = t; + }), a === 0 && i(); + }); +} +var Fc = 0; +function Xe(e, t, n, o) { + this._groups = e, this._parents = t, this._name = n, this._id = o; +} +function gi() { + return ++Fc; +} +var Oe = Mt.prototype; +Xe.prototype = { + constructor: Xe, + select: Nc, + selectAll: kc, + selectChild: Oe.selectChild, + selectChildren: Oe.selectChildren, + filter: yc, + merge: bc, + selection: Mc, + transition: Gc, + call: Oe.call, + nodes: Oe.nodes, + node: Oe.node, + size: Oe.size, + empty: Oe.empty, + each: Oe.each, + on: _c, + attr: nc, + attrTween: lc, + style: Oc, + styleTween: Ac, + text: Vc, + textTween: Xc, + remove: Sc, + tween: Ks, + delay: cc, + duration: hc, + ease: gc, + easeVarying: mc, + end: Hc, + [Symbol.iterator]: Oe[Symbol.iterator] +}; +function Uc(e) { + return ((e *= 2) <= 1 ? e * e * e : (e -= 2) * e * e + 2) / 2; +} +var jc = { + time: null, + // Set on use. + delay: 0, + duration: 250, + ease: Uc +}; +function Zc(e, t) { + for (var n; !(n = e.__transition) || !(n = n[t]); ) + if (!(e = e.parentNode)) + throw new Error(`transition ${t} not found`); + return n; +} +function Kc(e) { + var t, n; + e instanceof Xe ? (t = e._id, e = e._name) : (t = gi(), (n = jc).time = io(), e = e == null ? null : e + ""); + for (var o = this._groups, a = o.length, i = 0; i < a; ++i) + for (var r = o[i], l = r.length, u, s = 0; s < l; ++s) + (u = r[s]) && bn(u, e, t, s, r, n || Zc(u, t)); + return new Xe(o, this._parents, e, t); +} +Mt.prototype.interrupt = Us; +Mt.prototype.transition = Kc; +const zt = (e) => () => e; +function Wc(e, { + sourceEvent: t, + target: n, + transform: o, + dispatch: a +}) { + Object.defineProperties(this, { + type: { value: e, enumerable: !0, configurable: !0 }, + sourceEvent: { value: t, enumerable: !0, configurable: !0 }, + target: { value: n, enumerable: !0, configurable: !0 }, + transform: { value: o, enumerable: !0, configurable: !0 }, + _: { value: a } + }); +} +function ze(e, t, n) { + this.k = e, this.x = t, this.y = n; +} +ze.prototype = { + constructor: ze, + scale: function(e) { + return e === 1 ? this : new ze(this.k * e, this.x, this.y); + }, + translate: function(e, t) { + return e === 0 & t === 0 ? this : new ze(this.k, this.x + this.k * e, this.y + this.k * t); + }, + apply: function(e) { + return [e[0] * this.k + this.x, e[1] * this.k + this.y]; + }, + applyX: function(e) { + return e * this.k + this.x; + }, + applyY: function(e) { + return e * this.k + this.y; + }, + invert: function(e) { + return [(e[0] - this.x) / this.k, (e[1] - this.y) / this.k]; + }, + invertX: function(e) { + return (e - this.x) / this.k; + }, + invertY: function(e) { + return (e - this.y) / this.k; + }, + rescaleX: function(e) { + return e.copy().domain(e.range().map(this.invertX, this).map(e.invert, e)); + }, + rescaleY: function(e) { + return e.copy().domain(e.range().map(this.invertY, this).map(e.invert, e)); + }, + toString: function() { + return "translate(" + this.x + "," + this.y + ") scale(" + this.k + ")"; + } +}; +var gt = new ze(1, 0, 0); +ze.prototype; +function Mn(e) { + e.stopImmediatePropagation(); +} +function mt(e) { + e.preventDefault(), e.stopImmediatePropagation(); +} +function qc(e) { + return (!e.ctrlKey || e.type === "wheel") && !e.button; +} +function Qc() { + var e = this; + return e instanceof SVGElement ? (e = e.ownerSVGElement || e, e.hasAttribute("viewBox") ? (e = e.viewBox.baseVal, [[e.x, e.y], [e.x + e.width, e.y + e.height]]) : [[0, 0], [e.width.baseVal.value, e.height.baseVal.value]]) : [[0, 0], [e.clientWidth, e.clientHeight]]; +} +function ta() { + return this.__zoom || gt; +} +function Jc(e) { + return -e.deltaY * (e.deltaMode === 1 ? 0.05 : e.deltaMode ? 1 : 2e-3) * (e.ctrlKey ? 10 : 1); +} +function ed() { + return navigator.maxTouchPoints || "ontouchstart" in this; +} +function td(e, t, n) { + var o = e.invertX(t[0][0]) - n[0][0], a = e.invertX(t[1][0]) - n[1][0], i = e.invertY(t[0][1]) - n[0][1], r = e.invertY(t[1][1]) - n[1][1]; + return e.translate( + a > o ? (o + a) / 2 : Math.min(0, o) || Math.max(0, a), + r > i ? (i + r) / 2 : Math.min(0, i) || Math.max(0, r) + ); +} +function nd() { + var e = qc, t = Qc, n = td, o = Jc, a = ed, i = [0, 1 / 0], r = [[-1 / 0, -1 / 0], [1 / 0, 1 / 0]], l = 250, u = Rs, s = sn("start", "zoom", "end"), c, d, h, b = 500, m = 150, w = 0, E = 10; + function _(p) { + p.property("__zoom", ta).on("wheel.zoom", x, { passive: !1 }).on("mousedown.zoom", N).on("dblclick.zoom", C).filter(a).on("touchstart.zoom", T).on("touchmove.zoom", J).on("touchend.zoom touchcancel.zoom", ae).style("-webkit-tap-highlight-color", "rgba(0,0,0,0)"); + } + _.transform = function(p, R, S, B) { + var F = p.selection ? p.selection() : p; + F.property("__zoom", ta), p !== F ? I(p, R, S, B) : F.interrupt().each(function() { + z(this, arguments).event(B).start().zoom(null, typeof R == "function" ? R.apply(this, arguments) : R).end(); + }); + }, _.scaleBy = function(p, R, S, B) { + _.scaleTo(p, function() { + var F = this.__zoom.k, j = typeof R == "function" ? R.apply(this, arguments) : R; + return F * j; + }, S, B); + }, _.scaleTo = function(p, R, S, B) { + _.transform(p, function() { + var F = t.apply(this, arguments), j = this.__zoom, A = S == null ? y(F) : typeof S == "function" ? S.apply(this, arguments) : S, U = j.invert(A), V = typeof R == "function" ? R.apply(this, arguments) : R; + return n(G(P(j, V), A, U), F, r); + }, S, B); + }, _.translateBy = function(p, R, S, B) { + _.transform(p, function() { + return n(this.__zoom.translate( + typeof R == "function" ? R.apply(this, arguments) : R, + typeof S == "function" ? S.apply(this, arguments) : S + ), t.apply(this, arguments), r); + }, null, B); + }, _.translateTo = function(p, R, S, B, F) { + _.transform(p, function() { + var j = t.apply(this, arguments), A = this.__zoom, U = B == null ? y(j) : typeof B == "function" ? B.apply(this, arguments) : B; + return n(gt.translate(U[0], U[1]).scale(A.k).translate( + typeof R == "function" ? -R.apply(this, arguments) : -R, + typeof S == "function" ? -S.apply(this, arguments) : -S + ), j, r); + }, B, F); + }; + function P(p, R) { + return R = Math.max(i[0], Math.min(i[1], R)), R === p.k ? p : new ze(R, p.x, p.y); + } + function G(p, R, S) { + var B = R[0] - S[0] * p.k, F = R[1] - S[1] * p.k; + return B === p.x && F === p.y ? p : new ze(p.k, B, F); + } + function y(p) { + return [(+p[0][0] + +p[1][0]) / 2, (+p[0][1] + +p[1][1]) / 2]; + } + function I(p, R, S, B) { + p.on("start.zoom", function() { + z(this, arguments).event(B).start(); + }).on("interrupt.zoom end.zoom", function() { + z(this, arguments).event(B).end(); + }).tween("zoom", function() { + var F = this, j = arguments, A = z(F, j).event(B), U = t.apply(F, j), V = S == null ? y(U) : typeof S == "function" ? S.apply(F, j) : S, K = Math.max(U[1][0] - U[0][0], U[1][1] - U[0][1]), ne = F.__zoom, re = typeof R == "function" ? R.apply(F, j) : R, M = u(ne.invert(V).concat(K / ne.k), re.invert(V).concat(K / re.k)); + return function(v) { + if (v === 1) + v = re; + else { + var g = M(v), $ = K / g[2]; + v = new ze($, V[0] - g[0] * $, V[1] - g[1] * $); + } + A.zoom(null, v); + }; + }); + } + function z(p, R, S) { + return !S && p.__zooming || new f(p, R); + } + function f(p, R) { + this.that = p, this.args = R, this.active = 0, this.sourceEvent = null, this.extent = t.apply(p, R), this.taps = 0; + } + f.prototype = { + event: function(p) { + return p && (this.sourceEvent = p), this; + }, + start: function() { + return ++this.active === 1 && (this.that.__zooming = this, this.emit("start")), this; + }, + zoom: function(p, R) { + return this.mouse && p !== "mouse" && (this.mouse[1] = R.invert(this.mouse[0])), this.touch0 && p !== "touch" && (this.touch0[1] = R.invert(this.touch0[0])), this.touch1 && p !== "touch" && (this.touch1[1] = R.invert(this.touch1[0])), this.that.__zoom = R, this.emit("zoom"), this; + }, + end: function() { + return --this.active === 0 && (delete this.that.__zooming, this.emit("end")), this; + }, + emit: function(p) { + var R = Ee(this.that).datum(); + s.call( + p, + this.that, + new Wc(p, { + sourceEvent: this.sourceEvent, + target: _, + type: p, + transform: this.that.__zoom, + dispatch: s + }), + R + ); + } + }; + function x(p, ...R) { + if (!e.apply(this, arguments)) + return; + var S = z(this, R).event(p), B = this.__zoom, F = Math.max(i[0], Math.min(i[1], B.k * Math.pow(2, o.apply(this, arguments)))), j = Me(p); + if (S.wheel) + (S.mouse[0][0] !== j[0] || S.mouse[0][1] !== j[1]) && (S.mouse[1] = B.invert(S.mouse[0] = j)), clearTimeout(S.wheel); + else { + if (B.k === F) + return; + S.mouse = [j, B.invert(j)], Gt(this), S.start(); + } + mt(p), S.wheel = setTimeout(A, m), S.zoom("mouse", n(G(P(B, F), S.mouse[0], S.mouse[1]), S.extent, r)); + function A() { + S.wheel = null, S.end(); + } + } + function N(p, ...R) { + if (h || !e.apply(this, arguments)) + return; + var S = p.currentTarget, B = z(this, R, !0).event(p), F = Ee(p.view).on("mousemove.zoom", V, !0).on("mouseup.zoom", K, !0), j = Me(p, S), A = p.clientX, U = p.clientY; + Ha(p.view), Mn(p), B.mouse = [j, this.__zoom.invert(j)], Gt(this), B.start(); + function V(ne) { + if (mt(ne), !B.moved) { + var re = ne.clientX - A, M = ne.clientY - U; + B.moved = re * re + M * M > w; + } + B.event(ne).zoom("mouse", n(G(B.that.__zoom, B.mouse[0] = Me(ne, S), B.mouse[1]), B.extent, r)); + } + function K(ne) { + F.on("mousemove.zoom mouseup.zoom", null), Fa(ne.view, B.moved), mt(ne), B.event(ne).end(); + } + } + function C(p, ...R) { + if (e.apply(this, arguments)) { + var S = this.__zoom, B = Me(p.changedTouches ? p.changedTouches[0] : p, this), F = S.invert(B), j = S.k * (p.shiftKey ? 0.5 : 2), A = n(G(P(S, j), B, F), t.apply(this, R), r); + mt(p), l > 0 ? Ee(this).transition().duration(l).call(I, A, B, p) : Ee(this).call(_.transform, A, B, p); + } + } + function T(p, ...R) { + if (e.apply(this, arguments)) { + var S = p.touches, B = S.length, F = z(this, R, p.changedTouches.length === B).event(p), j, A, U, V; + for (Mn(p), A = 0; A < B; ++A) + U = S[A], V = Me(U, this), V = [V, this.__zoom.invert(V), U.identifier], F.touch0 ? !F.touch1 && F.touch0[2] !== V[2] && (F.touch1 = V, F.taps = 0) : (F.touch0 = V, j = !0, F.taps = 1 + !!c); + c && (c = clearTimeout(c)), j && (F.taps < 2 && (d = V[0], c = setTimeout(function() { + c = null; + }, b)), Gt(this), F.start()); + } + } + function J(p, ...R) { + if (this.__zooming) { + var S = z(this, R).event(p), B = p.changedTouches, F = B.length, j, A, U, V; + for (mt(p), j = 0; j < F; ++j) + A = B[j], U = Me(A, this), S.touch0 && S.touch0[2] === A.identifier ? S.touch0[0] = U : S.touch1 && S.touch1[2] === A.identifier && (S.touch1[0] = U); + if (A = S.that.__zoom, S.touch1) { + var K = S.touch0[0], ne = S.touch0[1], re = S.touch1[0], M = S.touch1[1], v = (v = re[0] - K[0]) * v + (v = re[1] - K[1]) * v, g = (g = M[0] - ne[0]) * g + (g = M[1] - ne[1]) * g; + A = P(A, Math.sqrt(v / g)), U = [(K[0] + re[0]) / 2, (K[1] + re[1]) / 2], V = [(ne[0] + M[0]) / 2, (ne[1] + M[1]) / 2]; + } else if (S.touch0) + U = S.touch0[0], V = S.touch0[1]; + else + return; + S.zoom("touch", n(G(A, U, V), S.extent, r)); + } + } + function ae(p, ...R) { + if (this.__zooming) { + var S = z(this, R).event(p), B = p.changedTouches, F = B.length, j, A; + for (Mn(p), h && clearTimeout(h), h = setTimeout(function() { + h = null; + }, b), j = 0; j < F; ++j) + A = B[j], S.touch0 && S.touch0[2] === A.identifier ? delete S.touch0 : S.touch1 && S.touch1[2] === A.identifier && delete S.touch1; + if (S.touch1 && !S.touch0 && (S.touch0 = S.touch1, delete S.touch1), S.touch0) + S.touch0[1] = this.__zoom.invert(S.touch0[0]); + else if (S.end(), S.taps === 2 && (A = Me(A, this), Math.hypot(d[0] - A[0], d[1] - A[1]) < E)) { + var U = Ee(this).on("dblclick.zoom"); + U && U.apply(this, arguments); + } + } + } + return _.wheelDelta = function(p) { + return arguments.length ? (o = typeof p == "function" ? p : zt(+p), _) : o; + }, _.filter = function(p) { + return arguments.length ? (e = typeof p == "function" ? p : zt(!!p), _) : e; + }, _.touchable = function(p) { + return arguments.length ? (a = typeof p == "function" ? p : zt(!!p), _) : a; + }, _.extent = function(p) { + return arguments.length ? (t = typeof p == "function" ? p : zt([[+p[0][0], +p[0][1]], [+p[1][0], +p[1][1]]]), _) : t; + }, _.scaleExtent = function(p) { + return arguments.length ? (i[0] = +p[0], i[1] = +p[1], _) : [i[0], i[1]]; + }, _.translateExtent = function(p) { + return arguments.length ? (r[0][0] = +p[0][0], r[1][0] = +p[1][0], r[0][1] = +p[0][1], r[1][1] = +p[1][1], _) : [[r[0][0], r[0][1]], [r[1][0], r[1][1]]]; + }, _.constrain = function(p) { + return arguments.length ? (n = p, _) : n; + }, _.duration = function(p) { + return arguments.length ? (l = +p, _) : l; + }, _.interpolate = function(p) { + return arguments.length ? (u = p, _) : u; + }, _.on = function() { + var p = s.on.apply(s, arguments); + return p === s ? _ : p; + }, _.clickDistance = function(p) { + return arguments.length ? (w = (p = +p) * p, _) : Math.sqrt(w); + }, _.tapDistance = function(p) { + return arguments.length ? (E = +p, _) : E; + }, _; +} +const Pn = 0.1; +function He() { +} +const od = { + zoomIn: He, + zoomOut: He, + zoomTo: He, + fitView: He, + setCenter: He, + fitBounds: He, + project: (e) => e, + setTransform: He, + getTransform: () => ({ x: 0, y: 0, zoom: 1 }), + initialized: !1 +}, ad = (e, t) => { + const n = e, o = O(n, "nodes"), a = O(n, "d3Zoom"), i = O(n, "d3Selection"), r = O(n, "dimensions"), l = O(n, "translateExtent"), u = O(n, "minZoom"), s = O(n, "maxZoom"), c = O(n, "viewport"), d = O(n, "snapToGrid"), h = O(n, "snapGrid"), b = O(n, "hooks"), m = t, w = O(m, "getNodes"), E = ee(!1); + b.value.nodesInitialized.on(() => { + E.value = !0; + }); + const _ = q(() => !!a.value && !!i.value && !!r.value.width && !!r.value.height && E.value); + function P(y, I) { + i.value && a.value && a.value.scaleBy(In(i.value, I), y); + } + function G(y, I, z, f) { + const { x, y: N } = ma({ x: -y, y: -I }, l.value), C = gt.translate(-x, -N).scale(z); + i.value && a.value && a.value.transform(In(i.value, f), C); + } + return q(() => _.value ? { + initialized: !0, + zoomIn: (y) => { + P(1.2, y == null ? void 0 : y.duration); + }, + zoomOut: (y) => { + P(1 / 1.2, y == null ? void 0 : y.duration); + }, + zoomTo: (y, I) => { + i.value && a.value && a.value.scaleTo(In(i.value, I == null ? void 0 : I.duration), y); + }, + setTransform: (y, I) => { + G(y.x, y.y, y.zoom, I == null ? void 0 : I.duration); + }, + getTransform: () => ({ + x: c.value.x, + y: c.value.y, + zoom: c.value.zoom + }), + fitView: (y = { + padding: Pn, + includeHiddenNodes: !1, + duration: 0 + }) => { + if (!o.value.length) + return; + const I = (y.includeHiddenNodes ? o.value : w.value).filter((C) => { + var T; + const J = C.initialized && C.dimensions.width && C.dimensions.height; + let ae = !0; + return (T = y.nodes) != null && T.length && (ae = y.nodes.includes(C.id)), J && ae; + }), z = _a(I), { x: f, y: x, zoom: N } = So( + z, + r.value.width, + r.value.height, + y.minZoom ?? u.value, + y.maxZoom ?? s.value, + y.padding ?? Pn, + y.offset + ); + G(f, x, N, y == null ? void 0 : y.duration); + }, + setCenter: (y, I, z) => { + const f = typeof (z == null ? void 0 : z.zoom) < "u" ? z.zoom : s.value, x = r.value.width / 2 - y * f, N = r.value.height / 2 - I * f; + G(x, N, f, z == null ? void 0 : z.duration); + }, + fitBounds: (y, I = { padding: Pn }) => { + const { x: z, y: f, zoom: x } = So( + y, + r.value.width, + r.value.height, + u.value, + s.value, + I.padding + ); + G(z, f, x, I == null ? void 0 : I.duration); + }, + project: (y) => wa(y, c.value, d.value, h.value) + } : od); +}; +function In(e, t = 0) { + return e.transition().duration(t); +} +function $n(e, t) { + if (t) { + const n = e.position.x + e.dimensions.width - t.dimensions.width, o = e.position.y + e.dimensions.height - t.dimensions.height; + if (n > 0 || o > 0 || e.position.x < 0 || e.position.y < 0) { + let a = {}; + if (Ye(t.style) ? a = { ...t.style(t) } : t.style && (a = { ...t.style }), a.width = a.width ?? `${t.dimensions.width}px`, a.height = a.height ?? `${t.dimensions.height}px`, n > 0) + if (Ae(a.width)) { + const i = Number(a.width.replace("px", "")); + a.width = `${i + n}px`; + } else + a.width += n; + if (o > 0) + if (Ae(a.height)) { + const i = Number(a.height.replace("px", "")); + a.height = `${i + o}px`; + } else + a.height += o; + if (e.position.x < 0) { + const i = Math.abs(e.position.x); + if (t.position.x = t.position.x - i, Ae(a.width)) { + const r = Number(a.width.replace("px", "")); + a.width = `${r + i}px`; + } else + a.width += i; + e.position.x = 0; + } + if (e.position.y < 0) { + const i = Math.abs(e.position.y); + if (t.position.y = t.position.y - i, Ae(a.height)) { + const r = Number(a.height.replace("px", "")); + a.height = `${r + i}px`; + } else + a.height += i; + e.position.y = 0; + } + t.dimensions.width = Number(a.width.toString().replace("px", "")), t.dimensions.height = Number(a.height.toString().replace("px", "")), Ye(t.style) ? t.style = (i) => { + const r = t.style; + return { + ...r(i), + ...a + }; + } : t.style = { + ...t.style, + ...a + }; + } + } +} +function na(e, t) { + e.filter((o) => o.type === "add" || o.type === "remove").forEach((o) => { + if (o.type === "add") + t.findIndex((a) => a.id === o.item.id) === -1 && t.push(o.item); + else if (o.type === "remove") { + const a = t.findIndex((i) => i.id === o.id); + a !== -1 && t.splice(a, 1); + } + }); + const n = t.map((o) => o.id); + return t.forEach((o) => { + var a, i; + const r = e.filter((l) => l.id === o.id); + for (const l of r) + switch (l.type) { + case "select": + o.selected = l.selected; + break; + case "position": + if (et(o) && (typeof l.position < "u" && (o.position = l.position), typeof l.dragging < "u" && (o.dragging = l.dragging), o.expandParent && o.parentNode)) { + const u = t[n.indexOf(o.parentNode)]; + u && et(u) && $n(o, u); + } + break; + case "dimensions": + if (et(o)) { + if (typeof l.dimensions < "u" && (o.dimensions = l.dimensions), typeof l.updateStyle < "u" && (o.style = { + ...o.style || {}, + width: `${(a = l.dimensions) == null ? void 0 : a.width}px`, + height: `${(i = l.dimensions) == null ? void 0 : i.height}px` + }), typeof l.resizing < "u" && (o.resizing = l.resizing), o.expandParent && o.parentNode) { + const u = t[n.indexOf(o.parentNode)]; + u && et(u) && (u.initialized ? $n(o, u) : Re(() => { + $n(o, u); + })); + } + o.initialized || (o.initialized = !0); + } + break; + } + }), t; +} +function De(e, t) { + return { + id: e, + type: "select", + selected: t + }; +} +function oa(e) { + return { + item: e, + type: "add" + }; +} +function Tn(e) { + return { + id: e, + type: "remove" + }; +} +function On(e, t) { + return e.reduce( + (n, o) => { + let a = t.includes(o.id); + se(o.selectable) && !o.selectable && (a = !1); + const i = et(o) ? "changedNodes" : "changedEdges"; + return !o.selected && a ? n[i].push(De(o.id, !0)) : o.selected && !a && n[i].push(De(o.id, !1)), n; + }, + { changedNodes: [], changedEdges: [] } + ); +} +function id(e, t, n, o) { + let a = !1; + const i = ad(e, t), r = (v) => { + const g = v ?? n.value ?? []; + e.hooks.updateNodeInternals.trigger(g); + }, l = (v) => { + if (v) + return e.nodes && !n.value.length ? e.nodes.find((g) => g.id === v) : e.nodes[n.value.indexOf(v)]; + }, u = (v) => { + if (v) + return e.edges && !o.value.length ? e.edges.find((g) => g.id === v) : e.edges[o.value.indexOf(v)]; + }, s = (v, g, $) => { + const D = []; + v.forEach((L) => { + var Y, W; + const Q = { + id: L.id, + type: "position", + dragging: $, + from: L.from + }; + if (g && (Q.position = L.position, L.parentNode)) { + const oe = l(L.parentNode); + Q.position = { + x: Q.position.x - (((Y = oe == null ? void 0 : oe.computedPosition) == null ? void 0 : Y.x) ?? 0), + y: Q.position.y - (((W = oe == null ? void 0 : oe.computedPosition) == null ? void 0 : W.y) ?? 0) + }; + } + D.push(Q); + }), D != null && D.length && e.hooks.nodesChange.trigger(D); + }, c = (v) => { + var g; + if (!e.vueFlowRef) + return; + const $ = e.vueFlowRef.querySelector(".vue-flow__transformationpane"); + if (!$) + return; + let D; + if ((g = e.__experimentalFeatures) != null && g.nestedFlow) { + let Y = [$], W = $, Q; + for (; !Q && W; ) + W = W.parentElement, Q = W == null ? void 0 : W.classList.contains("vue-flow__transformationpane"), Q && (Y = [W, ...Y]); + Y.forEach((oe) => { + const X = window.getComputedStyle(oe), { m22: he } = new window.DOMMatrixReadOnly(X.transform); + D ? D *= he : D = he; + }); + } else { + const Y = window.getComputedStyle($), { m22: W } = new window.DOMMatrixReadOnly(Y.transform); + D = W; + } + const L = v.reduce((Y, W) => { + const Q = l(W.id); + if (Q) { + const oe = nn(W.nodeElement); + oe.width && oe.height && (Q.dimensions.width !== oe.width || Q.dimensions.height !== oe.height || W.forceUpdate) && (Q.handleBounds.source = To(".source", W.nodeElement, D), Q.handleBounds.target = To(".target", W.nodeElement, D), Q.dimensions = oe, Q.initialized = !0, Y.push({ + id: Q.id, + type: "dimensions", + dimensions: oe + })); + } + return Y; + }, []); + e.fitViewOnInit && !a && (be(() => i.value.initialized).toBe(!0).then(() => { + i.value.fitView(); + }), a = !0), L.length && e.hooks.nodesChange.trigger(L); + }, d = (v, g) => { + const $ = v.map((Y) => Y.id); + let D, L = []; + if (e.multiSelectionActive) + D = $.map((Y) => De(Y, g)); + else { + const Y = On([...e.nodes, ...e.edges], $); + D = Y.changedNodes, L = Y.changedEdges; + } + D.length && e.hooks.nodesChange.trigger(D), L.length && e.hooks.edgesChange.trigger(L); + }, h = (v, g) => { + const $ = v.map((Y) => Y.id); + let D = [], L; + if (e.multiSelectionActive) + L = $.map((Y) => De(Y, g)); + else { + const Y = On([...e.nodes, ...e.edges], $); + D = Y.changedNodes, L = Y.changedEdges; + } + D.length && e.hooks.nodesChange.trigger(D), L.length && e.hooks.edgesChange.trigger(L); + }, b = (v, g) => { + const $ = v.filter(Vt).map((W) => W.id), D = v.filter(dt).map((W) => W.id); + let { changedNodes: L, changedEdges: Y } = On([...e.nodes, ...e.edges], [...$, ...D]); + e.multiSelectionActive && (L = $.map((W) => De(W, g)), Y = D.map((W) => De(W, g))), L.length && e.hooks.nodesChange.trigger(L), Y.length && e.hooks.edgesChange.trigger(Y); + }, m = (v) => { + d(v, !0); + }, w = (v) => { + h(v, !0); + }, E = (v) => { + b(v, !0); + }, _ = (v) => { + if (!v.length) + return d(v, !1); + const g = v.map(($) => $.id).map(($) => De($, !1)); + g.length && e.hooks.nodesChange.trigger(g); + }, P = (v) => { + if (!v.length) + return h(v, !1); + const g = v.map(($) => $.id).map(($) => De($, !1)); + g.length && e.hooks.edgesChange.trigger(g); + }, G = (v) => { + if (!v || !v.length) + return b([], !1); + const { changedNodes: g, changedEdges: $ } = v.reduce( + (D, L) => { + const Y = De(L.id, !1); + return Vt(L) ? D.changedNodes.push(Y) : D.changedEdges.push(Y), D; + }, + { changedNodes: [], changedEdges: [] } + ); + g.length && e.hooks.nodesChange.trigger(g), $.length && e.hooks.edgesChange.trigger($); + }, y = (v) => { + var g; + (g = e.d3Zoom) == null || g.scaleExtent([v, e.maxZoom]), e.minZoom = v; + }, I = (v) => { + var g; + (g = e.d3Zoom) == null || g.scaleExtent([e.minZoom, v]), e.maxZoom = v; + }, z = (v) => { + var g; + (g = e.d3Zoom) == null || g.translateExtent(v), e.translateExtent = v; + }, f = (v) => { + e.nodeExtent = v, r(n.value); + }, x = (v) => { + e.nodesDraggable = v, e.nodesConnectable = v, e.elementsSelectable = v; + }, N = (v) => { + const g = v instanceof Function ? v(e.nodes) : v; + !e.initialized && !g.length || (e.nodes = No(g, e.nodes, l, e.hooks.error.trigger)); + }, C = (v) => { + const g = v instanceof Function ? v(e.edges) : v; + if (!e.initialized && !g.length) + return; + const $ = e.isValidConnection ? g.filter( + (D) => e.isValidConnection(D, { + edges: e.edges, + sourceNode: l(D.source), + targetNode: l(D.target) + }) + ) : g; + e.edges = $.reduce((D, L) => { + const Y = l(L.source), W = l(L.target), Q = !Y || typeof Y > "u", oe = !W || typeof W > "u"; + if (Q && oe ? e.hooks.error.trigger(new me(pe.EDGE_SOURCE_TARGET_MISSING, L.id, L.source, L.target)) : (Q && e.hooks.error.trigger(new me(pe.EDGE_SOURCE_MISSING, L.id, L.source)), oe && e.hooks.error.trigger(new me(pe.EDGE_TARGET_MISSING, L.id, L.target))), Q || oe) + return D; + const X = u(L.id); + return D.push({ + ...ya(L, Object.assign({}, X, e.defaultEdgeOptions)), + sourceNode: Y, + targetNode: W + }), D; + }, []); + }, T = (v) => { + const g = v instanceof Function ? v([...e.nodes, ...e.edges]) : v; + !e.initialized && !g.length || (N(g.filter(Vt)), C(g.filter(dt))); + }, J = (v) => { + const g = v instanceof Function ? v(e.nodes) : v, $ = No(g, e.nodes, l, e.hooks.error.trigger).map(oa); + $.length && e.hooks.nodesChange.trigger($); + }, ae = (v) => { + const g = v instanceof Function ? v(e.edges) : v, $ = (e.isValidConnection ? g.filter( + (D) => e.isValidConnection(D, { + edges: e.edges, + sourceNode: l(D.source), + targetNode: l(D.target) + }) + ) : g).reduce((D, L) => { + const Y = mr( + { + ...L, + ...e.defaultEdgeOptions + }, + e.edges, + e.hooks.error.trigger + ); + if (Y) { + const W = l(Y.source), Q = l(Y.target), oe = !W || typeof W > "u", X = !Q || typeof Q > "u"; + if (oe && X ? e.hooks.error.trigger(new me(pe.EDGE_SOURCE_TARGET_MISSING, Y.id, Y.source, Y.target)) : (oe && e.hooks.error.trigger(new me(pe.EDGE_SOURCE_MISSING, Y.id, Y.source)), X && e.hooks.error.trigger(new me(pe.EDGE_TARGET_MISSING, Y.id, Y.target))), oe || X) + return D; + D.push( + oa({ + ...Y, + sourceNode: W, + targetNode: Q + }) + ); + } + return D; + }, []); + $.length && e.hooks.edgesChange.trigger($); + }, p = (v, g = !0) => { + const $ = v instanceof Function ? v(e.nodes) : v, D = [], L = []; + $.forEach((Y) => { + const W = typeof Y == "string" ? l(Y) : Y; + if (!(se(W.deletable) && !W.deletable) && (D.push(Tn(W.id)), g)) { + const Q = on([W], e.edges).filter((oe) => se(oe.deletable) ? oe.deletable : !0); + L.push(...Q.map((oe) => Tn(oe.id))); + } + }), L.length && e.hooks.edgesChange.trigger(L), D.length && e.hooks.nodesChange.trigger(D); + }, R = (v) => { + const g = v instanceof Function ? v(e.edges) : v, $ = []; + g.forEach((D) => { + const L = typeof D == "string" ? u(D) : D; + se(L.deletable) && !L.deletable || $.push(Tn(typeof D == "string" ? D : D.id)); + }), e.hooks.edgesChange.trigger($); + }, S = (v, g, $ = !0) => yr(v, g, e.edges, u, $, e.hooks.error.trigger), B = (v) => na(v, e.nodes), F = (v) => na(v, e.edges), j = (v, g, $, D = !1) => { + D ? e.connectionClickStartHandle = v : e.connectionStartHandle = v, e.connectionEndHandle = null, e.connectionStatus = null, g && (e.connectionPosition = g); + }, A = (v, g = null, $ = null) => { + e.connectionStartHandle && (e.connectionPosition = v, e.connectionEndHandle = g, e.connectionStatus = $); + }, U = (v, g) => { + e.connectionPosition = { x: NaN, y: NaN }, e.connectionStatus = null, g ? e.connectionClickStartHandle = null : e.connectionStartHandle = null; + }, V = (v) => { + const g = cr(v), $ = g ? null : l(v.id); + return !g && !$ ? [null, null, g] : [g ? v : _o($), $, g]; + }, K = (v, g = !0, $) => { + const [D, L, Y] = V(v); + return D ? ($ || e.nodes).filter((W) => { + if (!Y && (W.id === L.id || !W.computedPosition)) + return !1; + const Q = _o(W), oe = Bn(Q, D); + return g && oe > 0 || oe >= Number(v.width) * Number(v.height); + }) : []; + }, ne = (v, g, $ = !0) => { + const [D] = V(v); + if (!D) + return !1; + const L = Bn(D, g); + return $ && L > 0 || L >= Number(v.width) * Number(v.height); + }, re = (v) => { + const { viewport: g, dimensions: $, d3Zoom: D, d3Selection: L, translateExtent: Y } = e; + if (!D || !L || !v.x && !v.y) + return !1; + const W = gt.translate(g.x + v.x, g.y + v.y).scale(g.zoom), Q = [ + [0, 0], + [$.width, $.height] + ], oe = D.constrain()(W, Q, Y), X = e.viewport.x !== oe.x || e.viewport.y !== oe.y || e.viewport.zoom !== oe.k; + return D.transform(L, oe), X; + }, M = (v) => { + const g = v instanceof Function ? v(e) : v, $ = [ + "modelValue", + "nodes", + "edges", + "maxZoom", + "minZoom", + "translateExtent", + "nodeExtent", + "hooks", + "defaultEdgeOptions" + ], D = [ + "d3Zoom", + "d3Selection", + "d3ZoomHandler", + "viewportRef", + "vueFlowRef", + "dimensions", + "hooks" + ]; + se(g.defaultEdgeOptions) && (e.defaultEdgeOptions = g.defaultEdgeOptions); + const L = g.modelValue || g.nodes || g.edges ? [] : void 0; + L && (g.modelValue && L.push(...g.modelValue), g.nodes && L.push(...g.nodes), g.edges && L.push(...g.edges), T(L)); + const Y = () => { + se(g.maxZoom) && I(g.maxZoom), se(g.minZoom) && y(g.minZoom), se(g.translateExtent) && z(g.translateExtent), se(g.nodeExtent) && f(g.nodeExtent); + }; + Object.keys(g).forEach((W) => { + const Q = W, oe = g[Q]; + ![...$, ...D].includes(Q) && se(oe) && (e[Q] = oe); + }), e.d3Zoom ? Y() : be(() => e.d3Zoom).not.toBeUndefined().then(Y), e.initialized || (e.initialized = !0); + }; + return { + updateNodePositions: s, + updateNodeDimensions: c, + setElements: T, + setNodes: N, + setEdges: C, + addNodes: J, + addEdges: ae, + removeNodes: p, + removeEdges: R, + findNode: l, + findEdge: u, + updateEdge: S, + applyEdgeChanges: F, + applyNodeChanges: B, + addSelectedElements: E, + addSelectedNodes: m, + addSelectedEdges: w, + setMinZoom: y, + setMaxZoom: I, + setTranslateExtent: z, + setNodeExtent: f, + removeSelectedElements: G, + removeSelectedNodes: _, + removeSelectedEdges: P, + startConnection: j, + updateConnection: A, + endConnection: U, + setInteractive: x, + setState: M, + getIntersectingNodes: K, + isNodeIntersecting: ne, + panBy: re, + fitView: async (v = { padding: 0.1 }) => { + await be(() => i.value.initialized).toBe(!0), i.value.fitView(v); + }, + zoomIn: async (v) => { + await be(() => i.value.initialized).toBe(!0), i.value.zoomIn(v); + }, + zoomOut: async (v) => { + await be(() => i.value.initialized).toBe(!0), i.value.zoomOut(v); + }, + zoomTo: async (v, g) => { + await be(() => i.value.initialized).toBe(!0), i.value.zoomTo(v, g); + }, + setTransform: async (v, g) => { + await be(() => i.value.initialized).toBe(!0), i.value.setTransform(v, g); + }, + getTransform: () => i.value.getTransform(), + setCenter: async (v, g, $) => { + await be(() => i.value.initialized).toBe(!0), i.value.setCenter(v, g, $); + }, + fitBounds: async (v, g) => { + await be(() => i.value.initialized).toBe(!0), i.value.fitBounds(v, g); + }, + project: (v) => i.value.project(v), + toObject: () => JSON.parse( + JSON.stringify({ + nodes: e.nodes.map((v) => { + const { + computedPosition: g, + handleBounds: $, + selected: D, + dimensions: L, + isParent: Y, + resizing: W, + dragging: Q, + initialized: oe, + ...X + } = v; + return X; + }), + edges: e.edges.map((v) => { + const { selected: g, sourceNode: $, targetNode: D, ...L } = v; + return L; + }), + position: [e.viewport.x, e.viewport.y], + zoom: e.viewport.zoom + }) + ), + updateNodeInternals: r, + $reset: () => { + const v = ti(); + if (e.edges = [], e.nodes = [], e.d3Zoom && e.d3Selection) { + const g = gt.translate(v.defaultViewport.x ?? 0, v.defaultViewport.y ?? 0).scale(We(v.defaultViewport.zoom ?? 1, v.minZoom, v.maxZoom)), $ = e.viewportRef.getBoundingClientRect(), D = [ + [0, 0], + [$.width, $.height] + ], L = e.d3Zoom.constrain()(g, D, v.translateExtent); + e.d3Zoom.transform(e.d3Selection, L); + } + M(v); + }, + $destroy: () => { + } + }; +} +class tt { + constructor() { + this.currentId = 0, this.flows = /* @__PURE__ */ new Map(); + } + static getInstance() { + return tt.instance || (tt.instance = new tt()), tt.instance; + } + set(t, n) { + return this.flows.set(t, n); + } + get(t) { + return this.flows.get(t); + } + remove(t) { + return this.flows.delete(t); + } + create(t, n) { + const o = ti(n), a = Ei(o), i = q(() => a.nodes.map((h) => h.id)), r = q(() => a.edges.map((h) => h.id)), l = vs(a, i, r), u = id(a, l, i, r), s = {}; + Object.entries(a.hooks).forEach(([h, b]) => { + const m = `on${h.charAt(0).toUpperCase() + h.slice(1)}`; + s[m] = b.on; + }); + const c = {}; + Object.entries(a.hooks).forEach(([h, b]) => { + c[h] = b.trigger; + }), u.setState(a); + const d = { + ...s, + ...l, + ...u, + ...Si(a), + emits: c, + id: t, + vueFlowVersion: "1.19.4", + $destroy: () => { + this.remove(t); + } + }; + return this.set(t, d), d; + } + getId() { + return `vue-flow-${this.currentId++}`; + } +} +const ve = (e) => { + const t = tt.getInstance(), n = ia(), o = e == null ? void 0 : e.id, a = (n == null ? void 0 : n.vueFlowId) || o; + let i, r = !1; + if (n) { + const l = ut(ko, null); + typeof l < "u" && l !== null && (i = l); + } + if (i || a && (i = t.get(a)), !i || i && o && o !== i.id) { + const l = o ?? t.getId(); + i = t.create(l, e), n && (r = !0); + } else + e && i.setState(e); + return n && (lt(ko, i), n.vueFlowId = i.id, r && Ct(() => { + if (i) { + const l = t.get(i.id); + l ? l.$destroy() : pa(`No store instance found for id ${i.id} in storage.`); + } + })), i; +}; +function rd(e, t, n) { + const o = Ni(); + return o.run(() => { + [ + () => { + o.run(() => { + let a, i, r = !!(n.nodes.value.length || n.edges.value.length); + a = Je([e.modelValue, () => { + var l, u; + return (u = (l = e.modelValue) == null ? void 0 : l.value) == null ? void 0 : u.length; + }], ([l]) => { + l && Array.isArray(l) && (i == null || i.pause(), n.setElements(l), !i && !r && l.length ? r = !0 : i == null || i.resume()); + }), i = Je( + [n.nodes, n.edges, () => n.edges.value.length, () => n.nodes.value.length], + ([l, u]) => { + var s; + (s = e.modelValue) != null && s.value && Array.isArray(e.modelValue.value) && (a == null || a.pause(), e.modelValue.value = [...l, ...u], Re(() => { + a == null || a.resume(); + })); + }, + { immediate: r } + ), Rt(() => { + a == null || a.stop(), i == null || i.stop(); + }); + }); + }, + () => { + o.run(() => { + let a, i, r = !!n.nodes.value.length; + a = Je([e.nodes, () => { + var l, u; + return (u = (l = e.nodes) == null ? void 0 : l.value) == null ? void 0 : u.length; + }], ([l]) => { + l && Array.isArray(l) && (i == null || i.pause(), n.setNodes(l), !i && !r && l.length ? r = !0 : i == null || i.resume()); + }), i = Je( + [n.nodes, () => n.nodes.value.length], + ([l]) => { + var u; + (u = e.nodes) != null && u.value && Array.isArray(e.nodes.value) && (a == null || a.pause(), e.nodes.value = [...l], Re(() => { + a == null || a.resume(); + })); + }, + { immediate: r } + ), Rt(() => { + a == null || a.stop(), i == null || i.stop(); + }); + }); + }, + () => { + o.run(() => { + let a, i, r = !!n.edges.value.length; + a = Je([e.edges, () => { + var l, u; + return (u = (l = e.edges) == null ? void 0 : l.value) == null ? void 0 : u.length; + }], ([l]) => { + l && Array.isArray(l) && (i == null || i.pause(), n.setEdges(l), !i && !r && l.length ? r = !0 : i == null || i.resume()); + }), i = Je( + [n.edges, () => n.edges.value.length], + ([l]) => { + var u; + (u = e.edges) != null && u.value && Array.isArray(e.edges.value) && (a == null || a.pause(), e.edges.value = [...l], Re(() => { + a == null || a.resume(); + })); + }, + { immediate: r } + ), Rt(() => { + a == null || a.stop(), i == null || i.stop(); + }); + }); + }, + () => { + o.run(() => { + ce( + () => t.minZoom, + () => { + t.minZoom && se(t.minZoom) && n.setMinZoom(t.minZoom); + } + ); + }); + }, + () => { + o.run(() => { + ce( + () => t.maxZoom, + () => { + t.maxZoom && se(t.maxZoom) && n.setMaxZoom(t.maxZoom); + } + ); + }); + }, + () => { + o.run(() => { + ce( + () => t.translateExtent, + () => { + t.translateExtent && se(t.translateExtent) && n.setTranslateExtent(t.translateExtent); + } + ); + }); + }, + () => { + o.run(() => { + ce( + () => t.nodeExtent, + () => { + t.nodeExtent && se(t.nodeExtent) && n.setNodeExtent(t.nodeExtent); + } + ); + }); + }, + () => { + o.run(() => { + ce( + () => t.applyDefault, + () => { + se(t.applyDefault) && (n.applyDefault.value = t.applyDefault); + } + ), ce( + n.applyDefault, + (a, i, r) => { + n.applyDefault.value ? (n.onNodesChange(n.applyNodeChanges), n.onEdgesChange(n.applyEdgeChanges)) : (n.hooks.value.nodesChange.off(n.applyNodeChanges), n.hooks.value.edgesChange.off(n.applyEdgeChanges)), r(() => { + n.hooks.value.nodesChange.off(n.applyNodeChanges), n.hooks.value.edgesChange.off(n.applyEdgeChanges); + }); + }, + { immediate: !0 } + ); + }); + }, + () => { + o.run(() => { + const a = async (i) => { + let r = i; + Ye(t.autoConnect) && (r = await t.autoConnect(i)), r !== !1 && n.addEdges([r]); + }; + ce( + () => t.autoConnect, + () => { + se(t.autoConnect) && (n.autoConnect.value = t.autoConnect); + } + ), ce( + n.autoConnect, + (i, r, l) => { + i ? n.onConnect(a) : n.hooks.value.connect.off(a), l(() => { + n.hooks.value.connect.off(a); + }); + }, + { immediate: !0 } + ); + }); + }, + () => { + const a = [ + "id", + "modelValue", + "translateExtent", + "nodeExtent", + "edges", + "nodes", + "maxZoom", + "minZoom", + "applyDefault", + "autoConnect" + ]; + Object.keys(t).forEach((i) => { + if (!a.includes(i)) { + const r = O(t, i), l = n[i]; + o.run(() => { + ce( + r, + (u) => { + se(u) && (l.value = u); + }, + { flush: "pre" } + ); + }); + } + }); + } + ].forEach((a) => a()); + }), () => o.stop(); +} +function aa(e, t) { + return { + x: e.clientX - t.left, + y: e.clientY - t.top + }; +} +const ld = { + name: "Pane", + compatConfig: { MODE: 3 } +}, ud = /* @__PURE__ */ fe({ + ...ld, + props: { + isSelecting: { type: Boolean } + }, + setup(e) { + const { + id: t, + vueFlowRef: n, + getNodes: o, + getEdges: a, + viewport: i, + emits: r, + userSelectionActive: l, + removeSelectedElements: u, + panOnDrag: s, + userSelectionRect: c, + elementsSelectable: d, + nodesSelectionActive: h, + addSelectedElements: b, + getSelectedEdges: m, + getSelectedNodes: w, + removeNodes: E, + removeEdges: _, + selectionMode: P, + deleteKeyCode: G, + multiSelectionKeyCode: y, + multiSelectionActive: I + } = ve(), z = ee(null), f = ee(0), x = ee(0), N = ee(), C = q(() => d.value && (e.isSelecting || l.value)); + xt(G, (A) => { + if (!A) + return; + const U = o.value.reduce((V, K) => ((!K.selected && K.parentNode && V.find((ne) => ne.id === K.parentNode) || K.selected) && V.push(K), V), []); + (U || m.value) && (m.value.length > 0 && _(m.value), U.length > 0 && E(U), h.value = !1, u()); + }), xt(y, (A) => { + I.value = A; + }); + function T() { + l.value = !1, c.value = null, f.value = 0, x.value = 0; + } + function J(A) { + A.target !== z.value || C.value || (r.paneClick(A), u(), h.value = !1); + } + function ae(A) { + var U; + if (A.target === z.value) { + if (Array.isArray(s.value) && (U = s.value) != null && U.includes(2)) { + A.preventDefault(); + return; + } + r.paneContextMenu(A); + } + } + function p(A) { + A.target === z.value && r.paneScroll(A); + } + function R(A) { + if (N.value = n.value.getBoundingClientRect(), !C.value || !d || !e.isSelecting || A.button !== 0 || A.target !== z.value || !N.value) + return; + const { x: U, y: V } = aa(A, N.value); + u(), c.value = { + width: 0, + height: 0, + startX: U, + startY: V, + x: U, + y: V + }, l.value = !0, r.selectionStart(A); + } + function S(A) { + if (!C.value) + return r.paneMouseMove(A); + if (!e.isSelecting || !N.value || !c.value) + return; + l.value || (l.value = !0), h.value && (h.value = !1); + const U = aa(A, N.value), V = c.value.startX ?? 0, K = c.value.startY ?? 0, ne = { + ...c.value, + x: U.x < V ? U.x : V, + y: U.y < K ? U.y : K, + width: Math.abs(U.x - V), + height: Math.abs(U.y - K) + }, re = Ea( + o.value, + c.value, + i.value, + P.value === Qn.Partial + ), M = on(re, a.value); + f.value = re.length, x.value = M.length, c.value = ne, b([...re, ...M]); + } + function B(A) { + C.value && A.button === 0 && (!l.value && c.value && A.target === z.value && J(A), h.value = f.value > 0, T(), r.selectionEnd(A)); + } + function F(A) { + var U; + if (!C.value) + return r.paneMouseLeave(A); + l.value && (h.value = f.value > 0, (U = r.selectionEnd) == null || U.call(r, A)), T(); + } + function j(A) { + C.value || r.paneMouseEnter(A); + } + return (A, U) => (te(), ie("div", { + ref_key: "container", + ref: z, + key: `pane-${k(t)}`, + class: Ke(["vue-flow__pane vue-flow__container", { selection: e.isSelecting }]), + onClick: J, + onContextmenu: ae, + onWheelPassive: p, + onMouseenter: j, + onMousedown: R, + onMousemove: S, + onMouseup: B, + onMouseleave: F + }, [ + xe(A.$slots, "default"), + k(l) && k(c) ? (te(), _e(us, { key: 0 })) : ge("", !0), + k(h) && k(w).length ? (te(), _e(rs, { key: 1 })) : ge("", !0) + ], 34)); + } +}), sd = { class: "vue-flow__nodes vue-flow__container" }, cd = { + name: "Nodes", + compatConfig: { MODE: 3 } +}, dd = /* @__PURE__ */ fe({ + ...cd, + setup(e) { + const t = ut(an), n = ve(), o = O(n, "nodesDraggable"), a = O(n, "nodesFocusable"), i = O(n, "elementsSelectable"), r = O(n, "nodesConnectable"), l = O(n, "getNodes"), u = O(n, "getNodesInitialized"), s = O(n, "getNodeTypes"), c = O(n, "updateNodeDimensions"), d = O(n, "emits"); + let h = ee(); + be(() => l.value.length > 0 && u.value.length === l.value.length).toBe(!0).then(() => { + Re(() => { + d.value.nodesInitialized(u.value); + }); + }), Ve(() => { + h.value = new ResizeObserver((P) => { + const G = P.map((y) => ({ + id: y.target.getAttribute("data-id"), + nodeElement: y.target, + forceUpdate: !0 + })); + c.value(G); + }); + }), jn(() => { + var P; + return (P = h.value) == null ? void 0 : P.disconnect(); + }); + function b(P) { + return typeof P > "u" ? o.value : P; + } + function m(P) { + return typeof P > "u" ? i.value : P; + } + function w(P) { + return typeof P > "u" ? r.value : P; + } + function E(P) { + return typeof P > "u" ? a.value : P; + } + function _(P, G) { + const y = P || "default"; + let I = G ?? s.value[y]; + const z = tn(); + if (typeof I == "string" && z) { + const x = Object.keys(z.appContext.components); + x && x.includes(y) && (I = la(y, !1)); + } + return typeof I != "string" ? I : (t == null ? void 0 : t[`node-${y}`]) || (d.value.error(new me(pe.NODE_TYPE_MISSING, I)), !1); + } + return (P, G) => (te(), ie("div", sd, [ + k(h) ? (te(!0), ie(Ne, { key: 0 }, st(k(l), (y) => (te(), _e(k(Tu), { + id: y.id, + key: y.id, + "resize-observer": k(h), + type: _(y.type, y.template), + name: y.type || "default", + draggable: b(y.draggable), + selectable: m(y.selectable), + connectable: w(y.connectable), + focusable: E(y.focusable), + node: y + }, null, 8, ["id", "resize-observer", "type", "name", "draggable", "selectable", "connectable", "focusable", "node"]))), 128)) : ge("", !0) + ])); + } +}), vd = ["id", "markerWidth", "markerHeight", "markerUnits", "orient"], hd = ["stroke", "stroke-width", "fill"], fd = ["stroke", "stroke-width"], gd = { + name: "MarkerType", + compatConfig: { MODE: 3 } +}, pd = /* @__PURE__ */ fe({ + ...gd, + props: { + id: null, + type: null, + color: { default: "none" }, + width: { default: 12.5 }, + height: { default: 12.5 }, + markerUnits: { default: "strokeWidth" }, + orient: { default: "auto-start-reverse" }, + strokeWidth: { default: 1 } + }, + setup(e) { + return (t, n) => (te(), ie("marker", { + id: e.id, + class: "vue-flow__arrowhead", + viewBox: "-10 -10 20 20", + refX: "0", + refY: "0", + markerWidth: `${e.width}`, + markerHeight: `${e.height}`, + markerUnits: e.markerUnits, + orient: e.orient + }, [ + e.type === k(An).ArrowClosed ? (te(), ie("polyline", { + key: 0, + stroke: e.color, + "stroke-linecap": "round", + "stroke-linejoin": "round", + "stroke-width": e.strokeWidth, + fill: e.color, + points: "-5,-4 0,0 -5,4 -5,-4" + }, null, 8, hd)) : ge("", !0), + e.type === k(An).Arrow ? (te(), ie("polyline", { + key: 1, + stroke: e.color, + "stroke-linecap": "round", + "stroke-linejoin": "round", + "stroke-width": e.strokeWidth, + fill: "none", + points: "-5,-4 0,0 -5,4" + }, null, 8, fd)) : ge("", !0) + ], 8, vd)); + } +}), md = { + name: "MarkerDefinitions", + compatConfig: { MODE: 3 } +}, yd = /* @__PURE__ */ fe({ + ...md, + setup(e) { + const t = ve(), n = O(t, "id"), o = O(t, "edges"), a = O(t, "connectionLineOptions"), i = O(t, "defaultMarkerColor"), r = q(() => { + const l = [], u = [], s = (c) => { + if (c) { + const d = Ue(c, n.value); + l.includes(d) || (typeof c == "object" ? u.push({ ...c, id: d, color: c.color || i.value }) : u.push({ id: d, color: i.value, type: c }), l.push(d)); + } + }; + return [a.value.markerEnd, a.value.markerStart].forEach(s), o.value.reduce((c, d) => ([d.markerStart, d.markerEnd].forEach(s), c.sort((h, b) => h.id.localeCompare(b.id))), u), u; + }); + return (l, u) => (te(), ie("defs", null, [ + (te(!0), ie(Ne, null, st(k(r), (s) => (te(), _e(pd, { + id: s.id, + key: s.id, + type: s.type, + color: s.color, + width: s.width, + height: s.height, + markerUnits: s.markerUnits, + "stroke-width": s.strokeWidth, + orient: s.orient + }, null, 8, ["id", "type", "color", "width", "height", "markerUnits", "stroke-width", "orient"]))), 128)) + ])); + } +}), bd = { + key: 0, + class: "vue-flow__edges vue-flow__connectionline vue-flow__container" +}, wd = { + name: "Edges", + compatConfig: { MODE: 3 } +}, xd = /* @__PURE__ */ fe({ + ...wd, + setup(e) { + const t = ut(an), n = ve(), o = O(n, "connectionStartHandle"), a = O(n, "nodesConnectable"), i = O(n, "edgesUpdatable"), r = O(n, "edgesFocusable"), l = O(n, "elementsSelectable"), u = O(n, "getSelectedNodes"), s = O(n, "findNode"), c = O(n, "edges"), d = O(n, "getEdges"), h = O(n, "getNodesInitialized"), b = O(n, "getEdgeTypes"), m = O(n, "elevateEdgesOnSelect"), w = O(n, "dimensions"), E = O(n, "emits"), _ = _n( + () => { + var x; + return (x = o.value) == null ? void 0 : x.nodeId; + }, + () => { + var x; + return (x = o.value) != null && x.nodeId ? s.value(o.value.nodeId) : !1; + } + ), P = _n( + () => { + var x; + return (x = o.value) == null ? void 0 : x.nodeId; + }, + () => { + var x, N; + return !!(_.value && (typeof _.value.connectable > "u" ? a.value : _.value.connectable) && (x = o.value) != null && x.nodeId && (N = o.value) != null && N.type); + } + ), G = _n( + [ + () => c.value.map((x) => x.zIndex), + () => m.value ? [u.value.length] : [0], + () => m.value ? h.value.map((x) => x.computedPosition.z) : [] + ], + () => Sr(d.value, s.value, m.value) + ); + function y(x) { + return typeof x > "u" ? l.value : x; + } + function I(x) { + return typeof x > "u" ? i.value : x; + } + function z(x) { + return typeof x > "u" ? r.value : x; + } + function f(x, N) { + const C = x || "default"; + let T = N ?? b.value[C]; + const J = tn(); + if (typeof T == "string" && J) { + const p = Object.keys(J.appContext.components); + p && p.includes(C) && (T = la(C, !1)); + } + return T && typeof T != "string" ? T : (t == null ? void 0 : t[`edge-${C}`]) || (E.value.error(new me(pe.EDGE_TYPE_MISSING, T)), !1); + } + return (x, N) => k(w).width && k(w).height ? (te(), ie(Ne, { key: 0 }, [ + (te(!0), ie(Ne, null, st(k(G), (C) => (te(), ie("svg", { + key: C.level, + class: "vue-flow__edges vue-flow__container", + style: Le(`z-index: ${C.level}`) + }, [ + C.isMaxLevel ? (te(), _e(yd, { key: 0 })) : ge("", !0), + de("g", null, [ + (te(!0), ie(Ne, null, st(C.edges, (T) => (te(), _e(k(Wu), { + id: T.id, + key: T.id, + edge: T, + type: f(T.type, T.template), + name: T.type || "default", + selectable: y(T.selectable), + updatable: I(T.updatable), + focusable: z(T.focusable) + }, null, 8, ["id", "edge", "type", "name", "selectable", "updatable", "focusable"]))), 128)) + ]) + ], 4))), 128)), + k(P) && k(_) ? (te(), ie("svg", bd, [ + ke(os, { "source-node": k(_) }, null, 8, ["source-node"]) + ])) : ge("", !0) + ], 64)) : ge("", !0); + } +}), _d = /* @__PURE__ */ de("div", { class: "vue-flow__edge-labels" }, null, -1), Ed = { + name: "Transform", + compatConfig: { MODE: 3 } +}, Sd = /* @__PURE__ */ fe({ + ...Ed, + setup(e) { + const { id: t, viewport: n, emits: o, d3Zoom: a, d3Selection: i, dimensions: r, ...l } = ve(), u = ee(!Zn); + return be(() => a.value && i.value && r.value.width > 0 && r.value.height > 0).toBeTruthy().then(() => { + o.paneReady({ + id: t, + viewport: n, + emits: o, + d3Zoom: a, + d3Selection: i, + dimensions: r, + ...l + }), setTimeout(() => { + u.value = !0; + }, 0); + }), (s, c) => (te(), ie("div", { + key: `transform-${k(t)}`, + class: "vue-flow__transformationpane vue-flow__container", + style: Le({ + transform: `translate(${k(n).x}px,${k(n).y}px) scale(${k(n).zoom})`, + opacity: k(u) ? void 0 : 0 + }) + }, [ + ke(xd), + _d, + ke(dd), + xe(s.$slots, "default") + ], 4)); + } +}), Nd = { + name: "Viewport", + compatConfig: { MODE: 3 } +}, kd = /* @__PURE__ */ fe({ + ...Nd, + setup(e) { + const { + id: t, + minZoom: n, + maxZoom: o, + defaultViewport: a, + translateExtent: i, + dimensions: r, + zoomActivationKeyCode: l, + selectionKeyCode: u, + panActivationKeyCode: s, + panOnScroll: c, + panOnScrollMode: d, + panOnScrollSpeed: h, + panOnDrag: b, + zoomOnDoubleClick: m, + zoomOnPinch: w, + zoomOnScroll: E, + preventScrolling: _, + noWheelClassName: P, + noPanClassName: G, + emits: y, + connectionStartHandle: I, + userSelectionActive: z, + paneDragging: f, + d3Zoom: x, + d3Selection: N, + d3ZoomHandler: C, + viewport: T, + viewportRef: J + } = ve(), ae = ee(), p = ee(!1), R = ee(!1); + let S = !1, B = 0, F = { + x: 0, + y: 0, + zoom: 0 + }; + const j = xt(s), A = q(() => !p.value && b.value && j.value), U = q( + () => u.value !== !0 && p.value || u.value === !0 && !A.value + ); + Ve(() => { + er(ae, re); + const v = qn(); + Wn(v, "resize", re); + }), Ve(() => { + const v = ae.value, g = v.getBoundingClientRect(), $ = nd().scaleExtent([n.value, o.value]).translateExtent(i.value), D = Ee(v).call($), L = D.on("wheel.zoom"), Y = gt.translate(a.value.x ?? 0, a.value.y ?? 0).scale(We(a.value.zoom ?? 1, n.value, o.value)), W = [ + [0, 0], + [g.width, g.height] + ], Q = $.constrain()(Y, W, i.value); + $.transform(D, Q), x.value = $, N.value = D, C.value = L, T.value = { x: Q.x, y: Q.y, zoom: Q.k }, J.value = v, xt(u, (X) => { + p.value = X; + }); + const oe = xt(l); + uo(() => { + p.value && z.value && !R.value ? $.on("zoom", null) : !p.value && !z.value && $.on("zoom", (X) => { + T.value = { x: X.transform.x, y: X.transform.y, zoom: X.transform.k }; + const he = ne(X.transform); + S = V(b.value, B ?? 0), y.viewportChange(he), y.move({ event: X, flowTransform: he }); + }); + }), $.on("start", (X) => { + var he; + if (!X.sourceEvent) + return null; + B = X.sourceEvent.button, R.value = !0; + const Te = ne(X.transform); + ((he = X.sourceEvent) == null ? void 0 : he.type) === "mousedown" && (f.value = !0), F = Te, y.viewportChangeStart(Te), y.moveStart({ event: X, flowTransform: Te }); + }), $.on("end", (X) => { + if (!X.sourceEvent) + return null; + if (R.value = !1, f.value = !1, V(b.value, B ?? 0) && !S && y.paneContextMenu(X.sourceEvent), S = !1, K(F, X.transform)) { + const he = ne(X.transform); + F = he, y.viewportChangeEnd(he), y.moveEnd({ event: X, flowTransform: he }); + } + }), uo(() => { + c.value && !oe.value && !z.value ? D.on( + "wheel.zoom", + (X) => { + if (M(X, P.value)) + return !1; + X.preventDefault(), X.stopImmediatePropagation(); + const he = D.property("__zoom").k || 1; + if (X.ctrlKey && w.value) { + const xn = Me(X), mi = -X.deltaY * (X.deltaMode === 1 ? 0.05 : X.deltaMode ? 1 : 2e-3) * 10, yi = he * 2 ** mi; + $.scaleTo(D, yi, xn); + return; + } + const Te = X.deltaMode === 1 ? 20 : 1, It = d.value === Ut.Vertical ? 0 : X.deltaX * Te, wn = d.value === Ut.Horizontal ? 0 : X.deltaY * Te; + $.translateBy( + D, + -(It / he) * h.value, + -(wn / he) * h.value + ); + }, + { passive: !1 } + ) : typeof L < "u" && D.on( + "wheel.zoom", + function(X, he) { + if (!_.value || M(X, P.value)) + return null; + X.preventDefault(), L.call(this, X, he); + }, + { passive: !1 } + ); + }), $.filter((X) => { + var he, Te; + const It = oe.value || E.value, wn = w.value && X.ctrlKey; + if (X.button === 1 && X.type === "mousedown" && ((he = X.target) != null && he.closest(".vue-flow__node") || (Te = X.target) != null && Te.closest(".vue-flow__edge"))) + return !0; + if (!b.value && !It && !c.value && !m.value && !w.value || z.value || !m.value && X.type === "dblclick" || M(X, P.value) && X.type === "wheel" || M(X, G.value) && X.type !== "wheel" || !w.value && X.ctrlKey && X.type === "wheel" || !It && !c.value && !wn && X.type === "wheel" || !b.value && (X.type === "mousedown" || X.type === "touchstart") || Array.isArray(b.value) && !b.value.includes(X.button) && (X.type === "mousedown" || X.type === "touchstart")) + return !1; + const xn = Array.isArray(b.value) && b.value.includes(X.button) || !X.button || X.button <= 1; + return (!X.ctrlKey || X.type === "wheel") && xn; + }); + }); + function V(v, g) { + return g === 2 && Array.isArray(v) && v.includes(2); + } + function K(v, g) { + return v.x !== g.x && !isNaN(g.x) || v.y !== g.y && !isNaN(g.y) || v.zoom !== g.k && !isNaN(g.k); + } + function ne(v) { + return { + x: v.x, + y: v.y, + zoom: v.k + }; + } + function re() { + if (!ae.value) + return; + const { width: v, height: g } = nn(ae.value); + (v === 0 || g === 0) && y.error(new me(pe.MISSING_VIEWPORT_DIMENSIONS)), r.value.width = v || 500, r.value.height = g || 500; + } + function M(v, g) { + return v.target.closest(`.${g}`); + } + return (v, g) => (te(), ie(Ne, null, [ + (te(), ie("div", { + ref_key: "viewportEl", + ref: ae, + key: `viewport-${k(t)}`, + class: "vue-flow__viewport vue-flow__container" + }, [ + ke(ud, { + "is-selecting": k(U), + class: Ke({ connecting: !!k(I), dragging: k(f), draggable: !!k(b) }) + }, { + default: Pe(() => [ + ke(Sd, null, { + default: Pe(() => [ + xe(v.$slots, "zoom-pane") + ]), + _: 3 + }) + ]), + _: 3 + }, 8, ["is-selecting", "class"]) + ])), + xe(v.$slots, "default") + ], 64)); + } +}), Cd = ["id"], Md = ["id"], Pd = ["id"], Id = { + name: "A11yDescriptions", + compatConfig: { MODE: 3 } +}, $d = /* @__PURE__ */ fe({ + ...Id, + setup(e) { + const { id: t, disableKeyboardA11y: n, ariaLiveMessage: o } = ve(), a = { + position: "absolute", + width: 1, + height: 1, + margin: -1, + border: 0, + padding: 0, + overflow: "hidden", + clip: "rect(0px, 0px, 0px, 0px)", + clipPath: "inset(100%)" + }; + return (i, r) => (te(), ie(Ne, null, [ + de("div", { + id: `${k(ja)}-${k(t)}`, + style: { display: "none" } + }, " Press enter or space to select a node. " + ct(k(n) ? "" : "You can then use the arrow keys to move the node around.") + " You can then use the arrow keys to move the node around, press delete to remove it and press escape to cancel. ", 9, Cd), + de("div", { + id: `${k(Za)}-${k(t)}`, + style: { display: "none" } + }, " Press enter or space to select an edge. You can then press delete to remove it or press escape to cancel. ", 8, Md), + k(n) ? ge("", !0) : (te(), ie("div", { + key: 0, + id: `${k(Mu)}-${k(t)}`, + "aria-live": "assertive", + "aria-atomic": "true", + style: a + }, ct(k(o)), 9, Pd)) + ], 64)); + } +}), Td = { + name: "VueFlow", + compatConfig: { MODE: 3 } +}, Od = /* @__PURE__ */ fe({ + ...Td, + props: { + id: null, + modelValue: null, + nodes: null, + edges: null, + edgeTypes: null, + nodeTypes: null, + connectionMode: null, + connectionLineType: null, + connectionLineStyle: { default: void 0 }, + connectionLineOptions: { default: void 0 }, + connectionRadius: null, + isValidConnection: { type: [Function, null], default: void 0 }, + deleteKeyCode: null, + selectionKeyCode: null, + multiSelectionKeyCode: null, + zoomActivationKeyCode: null, + panActivationKeyCode: null, + snapToGrid: { type: Boolean, default: void 0 }, + snapGrid: null, + onlyRenderVisibleElements: { type: Boolean, default: void 0 }, + edgesUpdatable: { type: [Boolean, String], default: void 0 }, + nodesDraggable: { type: Boolean, default: void 0 }, + nodesConnectable: { type: Boolean, default: void 0 }, + elementsSelectable: { type: Boolean, default: void 0 }, + selectNodesOnDrag: { type: Boolean, default: void 0 }, + panOnDrag: { type: [Boolean, Array], default: void 0 }, + minZoom: null, + maxZoom: null, + defaultViewport: null, + translateExtent: null, + nodeExtent: null, + defaultMarkerColor: null, + zoomOnScroll: { type: Boolean, default: void 0 }, + zoomOnPinch: { type: Boolean, default: void 0 }, + panOnScroll: { type: Boolean, default: void 0 }, + panOnScrollSpeed: null, + panOnScrollMode: null, + zoomOnDoubleClick: { type: Boolean, default: void 0 }, + preventScrolling: { type: Boolean, default: void 0 }, + selectionMode: null, + edgeUpdaterRadius: null, + fitViewOnInit: { type: Boolean, default: void 0 }, + connectOnClick: { type: Boolean, default: void 0 }, + applyDefault: { type: Boolean, default: void 0 }, + autoConnect: { type: [Boolean, Function], default: void 0 }, + noDragClassName: null, + noWheelClassName: null, + noPanClassName: null, + defaultEdgeOptions: null, + elevateEdgesOnSelect: { type: Boolean, default: void 0 }, + elevateNodesOnSelect: { type: Boolean, default: void 0 }, + disableKeyboardA11y: { type: Boolean, default: void 0 }, + edgesFocusable: { type: Boolean, default: void 0 }, + nodesFocusable: { type: Boolean, default: void 0 }, + autoPanOnConnect: { type: Boolean, default: void 0 }, + autoPanOnNodeDrag: { type: Boolean, default: void 0 }, + __experimentalFeatures: null + }, + emits: ["nodesChange", "edgesChange", "nodeDoubleClick", "nodeClick", "nodeMouseEnter", "nodeMouseMove", "nodeMouseLeave", "nodeContextMenu", "nodeDragStart", "nodeDrag", "nodeDragStop", "nodesInitialized", "miniMapNodeClick", "miniMapNodeDoubleClick", "miniMapNodeMouseEnter", "miniMapNodeMouseMove", "miniMapNodeMouseLeave", "connect", "connectStart", "connectEnd", "clickConnectStart", "clickConnectEnd", "moveStart", "move", "moveEnd", "selectionDragStart", "selectionDrag", "selectionDragStop", "selectionContextMenu", "selectionStart", "selectionEnd", "viewportChangeStart", "viewportChange", "viewportChangeEnd", "paneReady", "paneScroll", "paneClick", "paneContextMenu", "paneMouseEnter", "paneMouseMove", "paneMouseLeave", "edgeContextMenu", "edgeMouseEnter", "edgeMouseMove", "edgeMouseLeave", "edgeDoubleClick", "edgeClick", "edgeUpdateStart", "edgeUpdate", "edgeUpdateEnd", "updateNodeInternals", "error", "update:modelValue", "update:nodes", "update:edges"], + setup(e, { expose: t, emit: n }) { + const o = e, a = wt(o, "modelValue", n), i = wt(o, "nodes", n), r = wt(o, "edges", n), { vueFlowRef: l, hooks: u, getNodeTypes: s, getEdgeTypes: c, ...d } = ve(o), h = rd({ modelValue: a, nodes: i, edges: r }, o, { + vueFlowRef: l, + hooks: u, + getNodeTypes: s, + getEdgeTypes: c, + ...d + }); + ur(n, u); + const b = ee(); + return lt(an, wi()), xi(() => { + h(); + }), Ve(() => { + l.value = b.value; + }), t({ + vueFlowRef: l, + hooks: u, + getNodeTypes: s, + getEdgeTypes: c, + ...d + }), (m, w) => (te(), ie("div", { + ref_key: "el", + ref: b, + class: "vue-flow" + }, [ + ke(kd, null, { + nodes: Pe(() => [ + (te(!0), ie(Ne, null, st(Object.keys(k(s)), (E) => xe(m.$slots, `node-${E}`)), 256)) + ]), + edges: Pe(() => [ + (te(!0), ie(Ne, null, st(Object.keys(k(c)), (E) => xe(m.$slots, `edge-${E}`)), 256)) + ]), + "connection-name": Pe(() => [ + xe(m.$slots, "connection-line") + ]), + "zoom-pane": Pe(() => [ + xe(m.$slots, "zoom-pane") + ]), + default: Pe(() => [ + xe(m.$slots, "default") + ]), + _: 3 + }), + ke($d) + ], 512)); + } +}); +const Dd = { + key: 0, + class: "label-input-wrapper" +}, Bd = /* @__PURE__ */ fe({ + __name: "EditableNode", + props: { + id: {}, + label: {}, + sourcePosition: {}, + targetPosition: {}, + data: {}, + type: {}, + selected: { type: Boolean }, + connectable: { type: [Boolean, String, Function] }, + position: {}, + dimensions: {}, + isValidTargetPos: { type: Function }, + isValidSourcePos: { type: Function }, + parent: {}, + dragging: { type: Boolean }, + resizing: { type: Boolean }, + zIndex: {}, + dragHandle: {}, + events: {} + }, + emits: ["change"], + setup(e, { emit: t }) { + const n = e, o = t, a = { + top: Z.Top, + right: Z.Right, + bottom: Z.Bottom, + left: Z.Left + }, i = q(() => a[n.sourcePosition]), r = q(() => a[n.targetPosition]), l = ee(), u = ee(""), s = ee(!1); + let c = 0; + const d = () => { + let m = Date.now(); + m - c < 500 && !s.value && h(), c = m; + }, h = async () => { + u.value = n.label, s.value = !0, await Re(), l.value.focus(); + }, b = () => { + s.value = !1, o("change", u.value); + }; + return (m, w) => (te(), ie("div", { + onClick: w[2] || (w[2] = (E) => d()) + }, [ + de("div", null, ct(n.label), 1), + s.value ? (te(), ie("div", Dd, [ + sa(de("input", { + ref_key: "labelInput", + ref: l, + class: "label-input", + "onUpdate:modelValue": w[0] || (w[0] = (E) => u.value = E), + onBlur: w[1] || (w[1] = (E) => s.value = !1), + onKeypress: ca(b, ["enter"]) + }, null, 544), [ + [da, u.value] + ]) + ])) : ge("", !0), + n.data.hasInput ? (te(), _e(k(vt), { + key: 1, + id: "a", + type: "target", + position: r.value + }, null, 8, ["position"])) : ge("", !0), + n.data.hasOutput ? (te(), _e(k(vt), { + key: 2, + id: "b", + type: "source", + position: i.value + }, null, 8, ["position"])) : ge("", !0) + ])); + } +}); +const Ad = ["id", "d", "marker-end"], zd = { class: "vue-flow__edge-label" }, Rd = { + key: 0, + class: "label-input-wrapper" +}, Vd = { + inheritAttrs: !1 +}, Ld = /* @__PURE__ */ fe({ + ...Vd, + __name: "EditableEdge", + props: { + id: {}, + sourceX: {}, + sourceY: {}, + targetX: {}, + targetY: {}, + sourcePosition: {}, + targetPosition: {}, + data: {}, + markerEnd: {}, + style: {}, + label: {}, + sourceNode: {}, + targetNode: {}, + source: {}, + target: {}, + type: {}, + selected: { type: Boolean }, + sourceHandleId: {}, + targetHandleId: {}, + animated: { type: Boolean }, + updatable: { type: Boolean }, + markerStart: {}, + curvature: {}, + interactionWidth: {}, + events: {}, + labelStyle: {}, + labelShowBg: { type: Boolean }, + labelBgStyle: {}, + labelBgPadding: {}, + labelBgBorderRadius: {} + }, + emits: ["change"], + setup(e, { emit: t }) { + const n = e; + ve(); + const o = t, a = ee(), i = ee(""), r = ee(!1); + let l = 0; + const u = () => { + let h = Date.now(); + h - l < 500 && !r.value && s(), l = h; + }, s = async () => { + i.value = n.label, r.value = !0, await Re(), a.value.focus(); + }, c = () => { + r.value = !1, o("change", i.value); + }, d = q(() => Kt(n)); + return (h, b) => (te(), ie(Ne, null, [ + de("path", { + id: h.id, + style: Le(h.style), + class: "vue-flow__edge-path", + d: d.value[0], + "marker-end": h.markerEnd + }, null, 12, Ad), + ke(k(Ju), null, { + default: Pe(() => [ + de("div", { + style: Le({ + pointerEvents: "all", + position: "absolute", + transform: `translate(-50%, -50%) translate(${d.value[1]}px,${d.value[2]}px)` + }), + class: "nodrag nopan editable-edge-label", + onClick: b[2] || (b[2] = (m) => u()) + }, [ + de("div", zd, ct(n.label), 1), + r.value ? (te(), ie("div", Rd, [ + sa(de("input", { + ref_key: "labelInput", + ref: a, + class: "label-input", + "onUpdate:modelValue": b[0] || (b[0] = (m) => i.value = m), + onBlur: b[1] || (b[1] = (m) => r.value = !1), + onKeypress: ca(c, ["enter"]) + }, null, 544), [ + [da, i.value] + ]) + ])) : ge("", !0) + ], 4) + ]), + _: 1 + }) + ], 64)); + } +}); +const Yd = { class: "chart-controls" }, Xd = { class: "chart-controls-left" }, Gd = /* @__PURE__ */ de("b", null, "Selected Node:", -1), Hd = { class: "chart-controls-right" }, Fd = { key: 0 }, Ud = { key: 1 }, pi = /* @__PURE__ */ fe({ + __name: "NodeEditor", + props: { + modelValue: {}, + nodeContainerClass: {} + }, + emits: ["update:modelValue"], + setup(e, { emit: t }) { + const n = e, o = t, a = ee(""), i = ee({}), r = ee(!1); + ee({ + x: 0, + y: 0 + }); + const l = ee(""), u = ee([]), s = q(() => { + for (let f = 0; f < u.value.length; f++) + if (u.value[f].id == l.value) + return f; + return -1; + }), c = q({ + get: () => { + let f = n.modelValue; + n.nodeContainerClass ? a.value = n.nodeContainerClass : a.value = "defaultContainerClass"; + for (let x = 0; x < f.length; x++) + f[x].data = {}, f[x].type == "input" ? (f[x].data.hasInput = !1, f[x].data.hasOutput = !0) : f[x].type == "output" ? (f[x].data.hasInput = !0, f[x].data.hasOutput = !1) : (f[x].data.hasInput = !0, f[x].data.hasOutput = !0), f[x].class = "vue-flow__node-default", f[x].type = "editable"; + for (let x = 0; x < f.length; x++) { + let N = f[x].id; + f[x], f[x].events = { + click: () => { + l.value = N; + } + }; + } + return f; + }, + set: (f) => { + o("update:modelValue", JSON.parse(JSON.stringify(f))); + } + }), { getNodes: d, onPaneReady: h } = ve({}); + h((f) => { + i.value = f; + }), u.value = c.value, Ve(() => { + document.removeEventListener("keypress", _), document.addEventListener("keypress", _); + }), jn(() => { + document.removeEventListener("keypress", _); + }); + const b = (f) => ({ + top: "right", + right: "bottom", + bottom: "left", + left: "top" + })[f], m = () => { + s.value > -1 && (u.value[s.value].sourcePosition = b( + u.value[s.value].sourcePosition + )); + }, w = () => { + s.value > -1 && (u.value[s.value].targetPosition = b( + u.value[s.value].targetPosition + )); + }, E = (f) => { + window.scrollBy(0, f.deltaY); + }, _ = (f) => { + r.value && f.ctrlKey == !0 && ((f.key == "+" || f.key == "=") && i.value.zoomIn(), f.key == "-" && i.value.zoomOut()); + }, P = () => { + i.value.fitView(); + }, G = () => { + let f = { x: Math.random() * 200, y: Math.random() * 200 }, x = !1; + if (s.value > -1) { + const T = u.value[s.value]; + T.data.hasOutput && (f = { x: T.position.x + 200, y: T.position.y + 50 }, x = !0); + } + let N = u.value.length, C = `node-${N}`; + if (u.value.push({ + id: C, + label: "Node " + N, + sourcePosition: "right", + targetPosition: "left", + class: "vue-flow__node-default", + type: "editable", + data: { + hasInput: !0, + hasOutput: !0 + }, + events: { + click: () => { + l.value = C; + } + }, + // position: { x: Math.random() * vueFlowInstance.value.dimensions.width, y: Math.random() * vueFlowInstance.value.dimensions.height } + position: f + }), x) { + let T = `edge-${N + 1}`; + u.value.push({ + id: T, + source: l.value, + target: C, + type: "editable", + label: `EDGE ${N + 1}`, + animated: !0, + events: { + click: () => { + l.value = T; + } + } + }); + } + }, y = (f) => { + console.log("edge connect", f); + }, I = (f) => { + console.log("edge double click", f); + }, z = (f, x) => { + for (let N = 0; N < u.value.length; N++) + if (u.value[N].id == x) { + u.value[N].label = f; + break; + } + }; + return (f, x) => (te(), ie("div", { + class: Ke(["node-editor-wrapper", a.value]), + onMouseover: x[8] || (x[8] = (N) => r.value = !0), + onMouseleave: x[9] || (x[9] = (N) => r.value = !1) + }, [ + de("div", Yd, [ + de("div", Xd, [ + de("div", null, [ + Gd, + ua(" " + ct(l.value ? l.value : "none"), 1) + ]) + ]), + de("div", Hd, [ + de("div", null, [ + de("button", { + class: "button-default", + onClick: x[0] || (x[0] = (N) => G()) + }, "Add Node") + ]), + de("div", null, [ + de("button", { + class: "button-default", + onClick: x[1] || (x[1] = (N) => P()) + }, "Center") + ]), + s.value > -1 ? (te(), ie("div", Fd, [ + de("button", { + class: "button-default", + onClick: x[2] || (x[2] = (N) => w()) + }, "Shift Input Position") + ])) : ge("", !0), + s.value > -1 ? (te(), ie("div", Ud, [ + de("button", { + class: "button-default", + onClick: x[3] || (x[3] = (N) => m()) + }, "Shift Output Position") + ])) : ge("", !0) + ]) + ]), + u.value && u.value.length ? (te(), _e(k(Od), { + key: 0, + onWheel: x[4] || (x[4] = Ii((N) => E(N), ["prevent"])), + class: "nowheel", + "prevent-scrolling": !0, + "zoom-on-scroll": !1, + "fit-view-on-init": !0, + modelValue: u.value, + "onUpdate:modelValue": x[5] || (x[5] = (N) => u.value = N), + onConnect: x[6] || (x[6] = (N) => y(N)), + onEdgeDoubleClick: x[7] || (x[7] = (N) => I(N)) + }, { + "node-editable": Pe((N) => [ + ke(Bd, Ht(N, { + onChange: (C) => z(C, N.id) + }), null, 16, ["onChange"]) + ]), + "edge-editable": Pe((N) => [ + ke(Ld, Ht(N, { + onChange: (C) => z(C, N.id) + }), null, 16, ["onChange"]) + ]), + _: 1 + }, 8, ["modelValue"])) : ge("", !0) + ], 34)); + } +}); +const jd = /* @__PURE__ */ fe({ + __name: "StateEditor", + props: ["layout", "nodeContainerClass", "modelValue"], + emits: ["update:modelValue"], + setup(e, { emit: t }) { + const n = e, o = t, a = q({ + get: () => { + let r = n.modelValue, l = {}, u = {}, s = 0, c = []; + for (let d in r) { + c.length; + let h = { + id: d, + label: d, + position: n.layout[d] && n.layout[d].position ? n.layout[d].position : { x: 200 * s, y: 100 }, + targetPosition: n.layout[d] && n.layout[d].targetPosition ? n.layout[d].targetPosition : "left", + sourcePosition: n.layout[d] && n.layout[d].sourcePosition ? n.layout[d].sourcePosition : "right" + }; + r[d].type && r[d].type == "final" && (h.type = "output", h.class = "default-output-node"), l[d] = h; + let b = r[d].on; + for (let m in r[d].on) { + let w = b[m]; + typeof w == "object" && w.constructor === Object && (w = w.target), c.push({ + id: `${d}-${b[m]}-${m}`, + target: w, + source: d, + label: m, + animated: !0 + }), u[w] = !0; + } + s++; + } + for (let d in l) + u[d] || (l[d].type = "input", l[d].class = "default-input-node"), c.push(l[d]); + return c; + }, + set: (r) => { + i(r); + } + }), i = (r) => { + let l = {}, u = {}, s = {}; + for (let c = 0; c < r.length; c++) { + let d = r[c]; + d.type == "input" ? l[d.label] = { + on: {} + } : d.type == "output" ? l[d.label] = { + type: "final" + } : d.source && d.target ? (u[d.source] = u[d.source] || {}, u[d.source][d.label] = { + target: d.target + }) : l[d.label] = { + on: {} + }, s[d.id] = d.label; + } + for (let c in u) { + let d = s[c]; + for (let h in u[c]) + l[d].on[h] = u[c][h]; + } + o("update:modelValue", l); + }; + return (r, l) => (te(), ie("div", null, [ + ke(pi, { + modelValue: a.value, + "onUpdate:modelValue": l[0] || (l[0] = (u) => a.value = u), + "node-container-class": e.nodeContainerClass + }, null, 8, ["modelValue", "node-container-class"]) + ])); + } +}); +function Kd(e) { + e.component("NodeEditor", pi), e.component("StateEditor", jd); +} +export { + pi as NodeEditor, + jd as StateEditor, + Kd as install +}; +//# sourceMappingURL=node-editor.js.map diff --git a/node_editor/dist/node-editor.js.map b/node_editor/dist/node-editor.js.map new file mode 100644 index 00000000..05125375 --- /dev/null +++ b/node_editor/dist/node-editor.js.map @@ -0,0 +1 @@ +{"version":3,"file":"node-editor.js","sources":["../../common/temp/node_modules/.pnpm/@vue-flow+core@1.19.4_vue@3.4.19/node_modules/@vue-flow/core/dist/vue-flow-core.mjs","../src/components/EditableNode.vue","../src/components/EditableEdge.vue","../src/components/NodeEditor.vue","../src/components/StateEditor.vue","../src/index.ts"],"sourcesContent":["import { unref as C, ref as ie, watch as de, customRef as br, getCurrentScope as hi, onScopeDispose as Vt, getCurrentInstance as on, onMounted as Ve, nextTick as Ue, readonly as Er, isRef as Sr, computed as J, onBeforeMount as Nr, markRaw as it, inject as He, defineComponent as ge, toRef as M, openBlock as oe, createElementBlock as se, normalizeClass as Ke, renderSlot as xe, h as ue, provide as ut, onBeforeUnmount as gi, normalizeStyle as Le, createCommentVNode as Ee, createElementVNode as ct, mergeProps as vi, createBlock as ze, resolveDynamicComponent as mi, Fragment as Ce, createTextVNode as Cr, toDisplayString as Vn, Teleport as Mr, normalizeProps as $r, reactive as kr, toRefs as Or, effectScope as Tr, renderList as dt, resolveComponent as pi, createVNode as qe, watchEffect as bo, withCtx as Fe, useSlots as Ir, onUnmounted as Pr } from \"vue\";\nvar Eo;\nconst oo = typeof window < \"u\", Dr = (e) => typeof e < \"u\", zr = (e) => typeof e == \"boolean\", Ae = (e) => typeof e == \"function\", Ie = (e) => typeof e == \"number\", Pe = (e) => typeof e == \"string\", Ar = () => {\n};\noo && ((Eo = window == null ? void 0 : window.navigator) != null && Eo.userAgent) && /iP(ad|hone|od)/.test(window.navigator.userAgent);\nfunction le(e) {\n return typeof e == \"function\" ? e() : C(e);\n}\nfunction Br(e, t) {\n function n(...o) {\n return new Promise((i, r) => {\n Promise.resolve(e(() => t.apply(this, o), { fn: t, thisArg: this, args: o })).then(i).catch(r);\n });\n }\n return n;\n}\nconst yi = (e) => e();\nfunction Rr(e = yi) {\n const t = ie(!0);\n function n() {\n t.value = !1;\n }\n function o() {\n t.value = !0;\n }\n const i = (...r) => {\n t.value && e(...r);\n };\n return { isActive: Er(t), pause: n, resume: o, eventFilter: i };\n}\nfunction So(e, t = !1, n = \"Timeout\") {\n return new Promise((o, i) => {\n setTimeout(t ? () => i(n) : o, e);\n });\n}\nfunction Vr(e) {\n return e;\n}\nfunction Sn(e, t) {\n let n, o, i;\n const r = ie(!0), a = () => {\n r.value = !0, i();\n };\n de(e, a, { flush: \"sync\" });\n const s = Ae(t) ? t : t.get, l = Ae(t) ? void 0 : t.set, u = br((c, v) => (o = c, i = v, {\n get() {\n return r.value && (n = s(), r.value = !1), o(), n;\n },\n set(g) {\n l == null || l(g);\n }\n }));\n return Object.isExtensible(u) && (u.trigger = a), u;\n}\nfunction Mt(e) {\n return hi() ? (Vt(e), !0) : !1;\n}\nfunction Hr(e, t = !0) {\n on() ? Ve(e) : t ? e() : Ue(e);\n}\nfunction Hn(e, t = !1) {\n function n(v, { flush: g = \"sync\", deep: x = !1, timeout: h, throwOnTimeout: d } = {}) {\n let w = null;\n const S = [new Promise((V) => {\n w = de(e, (p) => {\n v(p) !== t && (w == null || w(), V(p));\n }, {\n flush: g,\n deep: x,\n immediate: !0\n });\n })];\n return h != null && S.push(So(h, d).then(() => le(e)).finally(() => w == null ? void 0 : w())), Promise.race(S);\n }\n function o(v, g) {\n if (!Sr(v))\n return n((p) => p === v, g);\n const { flush: x = \"sync\", deep: h = !1, timeout: d, throwOnTimeout: w } = g ?? {};\n let y = null;\n const V = [new Promise((p) => {\n y = de([e, v], ([N, T]) => {\n t !== (N === T) && (y == null || y(), p(N));\n }, {\n flush: x,\n deep: h,\n immediate: !0\n });\n })];\n return d != null && V.push(So(d, w).then(() => le(e)).finally(() => (y == null || y(), le(e)))), Promise.race(V);\n }\n function i(v) {\n return n((g) => Boolean(g), v);\n }\n function r(v) {\n return o(null, v);\n }\n function a(v) {\n return o(void 0, v);\n }\n function s(v) {\n return n(Number.isNaN, v);\n }\n function l(v, g) {\n return n((x) => {\n const h = Array.from(x);\n return h.includes(v) || h.includes(le(v));\n }, g);\n }\n function u(v) {\n return c(1, v);\n }\n function c(v = 1, g) {\n let x = -1;\n return n(() => (x += 1, x >= v), g);\n }\n return Array.isArray(le(e)) ? {\n toMatch: n,\n toContains: l,\n changed: u,\n changedTimes: c,\n get not() {\n return Hn(e, !t);\n }\n } : {\n toMatch: n,\n toBe: o,\n toBeTruthy: i,\n toBeNull: r,\n toBeNaN: s,\n toBeUndefined: a,\n changed: u,\n changedTimes: c,\n get not() {\n return Hn(e, !t);\n }\n };\n}\nfunction ye(e) {\n return Hn(e);\n}\nvar No = Object.getOwnPropertySymbols, Lr = Object.prototype.hasOwnProperty, Gr = Object.prototype.propertyIsEnumerable, Fr = (e, t) => {\n var n = {};\n for (var o in e)\n Lr.call(e, o) && t.indexOf(o) < 0 && (n[o] = e[o]);\n if (e != null && No)\n for (var o of No(e))\n t.indexOf(o) < 0 && Gr.call(e, o) && (n[o] = e[o]);\n return n;\n};\nfunction Yr(e, t, n = {}) {\n const o = n, {\n eventFilter: i = yi\n } = o, r = Fr(o, [\n \"eventFilter\"\n ]);\n return de(e, Br(i, t), r);\n}\nvar Xr = Object.defineProperty, Zr = Object.defineProperties, Ur = Object.getOwnPropertyDescriptors, Yt = Object.getOwnPropertySymbols, xi = Object.prototype.hasOwnProperty, _i = Object.prototype.propertyIsEnumerable, Co = (e, t, n) => t in e ? Xr(e, t, { enumerable: !0, configurable: !0, writable: !0, value: n }) : e[t] = n, Wr = (e, t) => {\n for (var n in t || (t = {}))\n xi.call(t, n) && Co(e, n, t[n]);\n if (Yt)\n for (var n of Yt(t))\n _i.call(t, n) && Co(e, n, t[n]);\n return e;\n}, Kr = (e, t) => Zr(e, Ur(t)), qr = (e, t) => {\n var n = {};\n for (var o in e)\n xi.call(e, o) && t.indexOf(o) < 0 && (n[o] = e[o]);\n if (e != null && Yt)\n for (var o of Yt(e))\n t.indexOf(o) < 0 && _i.call(e, o) && (n[o] = e[o]);\n return n;\n};\nfunction tt(e, t, n = {}) {\n const o = n, {\n eventFilter: i\n } = o, r = qr(o, [\n \"eventFilter\"\n ]), { eventFilter: a, pause: s, resume: l, isActive: u } = Rr(i);\n return { stop: Yr(e, t, Kr(Wr({}, r), {\n eventFilter: a\n })), pause: s, resume: l, isActive: u };\n}\nfunction wi(e) {\n var t;\n const n = le(e);\n return (t = n == null ? void 0 : n.$el) != null ? t : n;\n}\nconst io = oo ? window : void 0;\nfunction ro(...e) {\n let t, n, o, i;\n if (Pe(e[0]) || Array.isArray(e[0]) ? ([n, o, i] = e, t = io) : [t, n, o, i] = e, !t)\n return Ar;\n Array.isArray(n) || (n = [n]), Array.isArray(o) || (o = [o]);\n const r = [], a = () => {\n r.forEach((c) => c()), r.length = 0;\n }, s = (c, v, g, x) => (c.addEventListener(v, g, x), () => c.removeEventListener(v, g, x)), l = de(() => [wi(t), le(i)], ([c, v]) => {\n a(), c && r.push(...n.flatMap((g) => o.map((x) => s(c, g, x, v))));\n }, { immediate: !0, flush: \"post\" }), u = () => {\n l(), a();\n };\n return Mt(u), u;\n}\nconst jr = (e) => typeof e == \"function\" ? e : typeof e == \"string\" ? (t) => t.key === e : Array.isArray(e) ? (t) => e.includes(t.key) : () => !0;\nfunction Mo(...e) {\n let t, n, o = {};\n e.length === 3 ? (t = e[0], n = e[1], o = e[2]) : e.length === 2 ? typeof e[1] == \"object\" ? (t = !0, n = e[0], o = e[1]) : (t = e[0], n = e[1]) : (t = !0, n = e[0]);\n const { target: i = io, eventName: r = \"keydown\", passive: a = !1 } = o, s = jr(t);\n return ro(i, r, (u) => {\n s(u) && n(u);\n }, a);\n}\nfunction Qr(e, t = !1) {\n const n = ie(), o = () => n.value = Boolean(e());\n return o(), Hr(o, t), n;\n}\nfunction Jr(e) {\n return JSON.parse(JSON.stringify(e));\n}\nconst Ln = typeof globalThis < \"u\" ? globalThis : typeof window < \"u\" ? window : typeof global < \"u\" ? global : typeof self < \"u\" ? self : {}, Gn = \"__vueuse_ssr_handlers__\";\nLn[Gn] = Ln[Gn] || {};\nLn[Gn];\nvar $o = Object.getOwnPropertySymbols, ea = Object.prototype.hasOwnProperty, ta = Object.prototype.propertyIsEnumerable, na = (e, t) => {\n var n = {};\n for (var o in e)\n ea.call(e, o) && t.indexOf(o) < 0 && (n[o] = e[o]);\n if (e != null && $o)\n for (var o of $o(e))\n t.indexOf(o) < 0 && ta.call(e, o) && (n[o] = e[o]);\n return n;\n};\nfunction oa(e, t, n = {}) {\n const o = n, { window: i = io } = o, r = na(o, [\"window\"]);\n let a;\n const s = Qr(() => i && \"ResizeObserver\" in i), l = () => {\n a && (a.disconnect(), a = void 0);\n }, u = de(() => wi(e), (v) => {\n l(), s.value && i && v && (a = new ResizeObserver(t), a.observe(v, r));\n }, { immediate: !0, flush: \"post\" }), c = () => {\n l(), u();\n };\n return Mt(c), {\n isSupported: s,\n stop: c\n };\n}\nvar ko;\n(function(e) {\n e.UP = \"UP\", e.RIGHT = \"RIGHT\", e.DOWN = \"DOWN\", e.LEFT = \"LEFT\", e.NONE = \"NONE\";\n})(ko || (ko = {}));\nvar ia = Object.defineProperty, Oo = Object.getOwnPropertySymbols, ra = Object.prototype.hasOwnProperty, aa = Object.prototype.propertyIsEnumerable, To = (e, t, n) => t in e ? ia(e, t, { enumerable: !0, configurable: !0, writable: !0, value: n }) : e[t] = n, sa = (e, t) => {\n for (var n in t || (t = {}))\n ra.call(t, n) && To(e, n, t[n]);\n if (Oo)\n for (var n of Oo(t))\n aa.call(t, n) && To(e, n, t[n]);\n return e;\n};\nconst la = {\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};\nsa({\n linear: Vr\n}, la);\nfunction yt(e, t, n, o = {}) {\n var i, r, a;\n const {\n clone: s = !1,\n passive: l = !1,\n eventName: u,\n deep: c = !1,\n defaultValue: v\n } = o, g = on(), x = n || (g == null ? void 0 : g.emit) || ((i = g == null ? void 0 : g.$emit) == null ? void 0 : i.bind(g)) || ((a = (r = g == null ? void 0 : g.proxy) == null ? void 0 : r.$emit) == null ? void 0 : a.bind(g == null ? void 0 : g.proxy));\n let h = u;\n t || (t = \"modelValue\"), h = u || h || `update:${t.toString()}`;\n const d = (y) => s ? Ae(s) ? s(y) : Jr(y) : y, w = () => Dr(e[t]) ? d(e[t]) : v;\n if (l) {\n const y = w(), S = ie(y);\n return de(() => e[t], (V) => S.value = d(V)), de(S, (V) => {\n (V !== e[t] || c) && x(h, V);\n }, { deep: c }), S;\n } else\n return J({\n get() {\n return w();\n },\n set(y) {\n x(h, y);\n }\n });\n}\nfunction X(e = () => {\n}) {\n const t = ie(/* @__PURE__ */ new Set());\n e && t.value.add(e);\n const n = (r) => {\n t.value.delete(r);\n };\n return {\n on: (r) => {\n t.value.has(e) && t.value.delete(e), t.value.add(r);\n const a = () => n(r);\n return Mt(a), {\n off: a\n };\n },\n off: n,\n trigger: (r) => Promise.all(Array.from(t.value).map((a) => a(r))),\n fns: t\n };\n}\nconst ua = [\"production\", \"prod\"];\nfunction wt(e, ...t) {\n ua.includes(process.env.NODE_ENV || \"\") || console.warn(`[Vue Flow]: ${e}`, ...t);\n}\nfunction ca() {\n return {\n edgesChange: X(),\n nodesChange: X(),\n nodeDoubleClick: X(),\n nodeClick: X(),\n nodeMouseEnter: X(),\n nodeMouseMove: X(),\n nodeMouseLeave: X(),\n nodeContextMenu: X(),\n nodeDragStart: X(),\n nodeDrag: X(),\n nodeDragStop: X(),\n nodesInitialized: X(),\n miniMapNodeClick: X(),\n miniMapNodeDoubleClick: X(),\n miniMapNodeMouseEnter: X(),\n miniMapNodeMouseMove: X(),\n miniMapNodeMouseLeave: X(),\n connect: X(),\n connectStart: X(),\n connectEnd: X(),\n clickConnectStart: X(),\n clickConnectEnd: X(),\n paneReady: X(),\n move: X(),\n moveStart: X(),\n moveEnd: X(),\n selectionDragStart: X(),\n selectionDrag: X(),\n selectionDragStop: X(),\n selectionContextMenu: X(),\n selectionStart: X(),\n selectionEnd: X(),\n viewportChangeStart: X(),\n viewportChange: X(),\n viewportChangeEnd: X(),\n paneScroll: X(),\n paneClick: X(),\n paneContextMenu: X(),\n paneMouseEnter: X(),\n paneMouseMove: X(),\n paneMouseLeave: X(),\n edgeContextMenu: X(),\n edgeMouseEnter: X(),\n edgeMouseMove: X(),\n edgeMouseLeave: X(),\n edgeDoubleClick: X(),\n edgeClick: X(),\n edgeUpdateStart: X(),\n edgeUpdate: X(),\n edgeUpdateEnd: X(),\n updateNodeInternals: X(),\n error: X((e) => wt(e.message))\n };\n}\nfunction da(e, t) {\n Nr(() => {\n for (const [n, o] of Object.entries(t.value)) {\n const i = (r) => {\n e(n, r);\n };\n o.on(i), Mt(() => {\n o.off(i);\n });\n }\n });\n}\nvar he = /* @__PURE__ */ ((e) => (e.MISSING_VIEWPORT_DIMENSIONS = \"MISSING_VIEWPORT_DIMENSIONS\", e.NODE_NOT_FOUND = \"NODE_NOT_FOUND\", e.NODE_MISSING_PARENT = \"NODE_MISSING_PARENT\", e.NODE_TYPE_MISSING = \"NODE_TYPE_MISSING\", e.NODE_EXTENT_INVALID = \"NODE_EXTENT_INVALID\", e.EDGE_INVALID = \"EDGE_INVALID\", e.EDGE_NOT_FOUND = \"EDGE_NOT_FOUND\", e.EDGE_SOURCE_MISSING = \"EDGE_SOURCE_MISSING\", e.EDGE_TARGET_MISSING = \"EDGE_TARGET_MISSING\", e.EDGE_TYPE_MISSING = \"EDGE_TYPE_MISSING\", e.EDGE_SOURCE_TARGET_SAME = \"EDGE_SOURCE_TARGET_SAME\", e.EDGE_SOURCE_TARGET_MISSING = \"EDGE_SOURCE_TARGET_MISSING\", e.EDGE_ORPHANED = \"EDGE_ORPHANED\", e))(he || {});\nconst Nn = {\n MISSING_VIEWPORT_DIMENSIONS: () => \"The Vue Flow parent container needs a width and a height to render the graph\",\n NODE_NOT_FOUND: (e) => `Node not found\nNode: ${e}`,\n NODE_MISSING_PARENT: (e, t) => `Node is missing a parent\nNode: ${e}\nParent: ${t}`,\n NODE_TYPE_MISSING: (e) => `Node type is missing\nType: ${e}`,\n NODE_EXTENT_INVALID: (e) => `Only child nodes can use a parent extent\nNode: ${e}`,\n EDGE_INVALID: (e) => `An edge needs a source and a target\nEdge: ${e}`,\n EDGE_SOURCE_MISSING: (e, t) => `Edge source is missing\nEdge: ${e} \nSource: ${t}`,\n EDGE_TARGET_MISSING: (e, t) => `Edge target is missing\nEdge: ${e} \nTarget: ${t}`,\n EDGE_TYPE_MISSING: (e) => `Edge type is missing\nType: ${e}`,\n EDGE_SOURCE_TARGET_SAME: (e, t, n) => `Edge source and target are the same\nEdge: ${e} \nSource: ${t} \nTarget: ${n}`,\n EDGE_SOURCE_TARGET_MISSING: (e, t, n) => `Edge source or target is missing\nEdge: ${e} \nSource: ${t} \nTarget: ${n}`,\n EDGE_ORPHANED: (e) => `Edge was orphaned (suddenly missing source or target) and has been removed\nEdge: ${e}`,\n EDGE_NOT_FOUND: (e) => `Edge not found\nEdge: ${e}`\n};\nclass ve extends Error {\n constructor(t, ...n) {\n var o;\n super((o = Nn[t]) == null ? void 0 : o.call(Nn, ...n)), this.code = t;\n }\n}\nconst ao = () => typeof window < \"u\" ? window : { chrome: !1 };\nfunction Io(e) {\n return {\n ...e.computedPosition || { x: 0, y: 0 },\n width: e.dimensions.width || 0,\n height: e.dimensions.height || 0\n };\n}\nfunction Fn(e, t) {\n const n = Math.max(0, Math.min(e.x + e.width, t.x + t.width) - Math.max(e.x, t.x)), o = Math.max(0, Math.min(e.y + e.height, t.y + t.height) - Math.max(e.y, t.y));\n return Math.ceil(n * o);\n}\nfunction rn(e) {\n return {\n width: e.offsetWidth,\n height: e.offsetHeight\n };\n}\nfunction je(e, t = 0, n = 1) {\n return Math.min(Math.max(e, t), n);\n}\nfunction so(e, t) {\n return {\n x: je(e.x, t[0][0], t[1][0]),\n y: je(e.y, t[0][1], t[1][1])\n };\n}\nfunction Po(e) {\n const t = e.getRootNode(), n = ao();\n return \"elementFromPoint\" in t ? t : n.document;\n}\nfunction $e(e) {\n return e && \"id\" in e && \"source\" in e && \"target\" in e;\n}\nfunction fa(e) {\n return $e(e) && \"sourceNode\" in e && \"targetNode\" in e;\n}\nfunction xt(e) {\n return e && \"id\" in e && !$e(e);\n}\nfunction nt(e) {\n return xt(e) && \"computedPosition\" in e;\n}\nfunction ha(e) {\n return !!e.width && !!e.height && !!e.x && !!e.y;\n}\nfunction ga(e, t = {}) {\n let n = t;\n return nt(e) || (n = {\n type: e.type ?? t.type ?? \"default\",\n dimensions: it({\n width: 0,\n height: 0\n }),\n handleBounds: {\n source: [],\n target: []\n },\n computedPosition: it({\n z: 0,\n ...e.position\n }),\n draggable: void 0,\n selectable: void 0,\n connectable: void 0,\n focusable: void 0,\n selected: !1,\n dragging: !1,\n resizing: !1,\n initialized: !1,\n ...t,\n data: ce(e.data) ? e.data : {},\n events: it(ce(e.events) ? e.events : {})\n }), Object.assign({}, n, e, { id: e.id.toString() });\n}\nfunction lo(e, t = {}) {\n const n = ce(e.events) ? e.events : t.events && ce(t.events) ? t.events : {}, o = ce(e.data) ? e.data : t.data && ce(t.data) ? t.data : {};\n return t = fa(e) ? t : {\n ...t,\n sourceHandle: (e.sourceHandle ? e.sourceHandle.toString() : void 0) || t.sourceHandle,\n targetHandle: (e.targetHandle ? e.targetHandle.toString() : void 0) || t.targetHandle,\n type: e.type ?? t.type ?? \"default\",\n source: e.source.toString() || t.source,\n target: e.target.toString() || t.target,\n updatable: e.updatable ?? t.updatable,\n selectable: e.selectable ?? t.selectable,\n focusable: e.focusable ?? t.focusable,\n data: o,\n events: it(n),\n label: (e.label && !Pe(e.label) ? it(e.label) : e.label) || t.label,\n interactionWidth: e.interactionWidth || t.interactionWidth\n }, Object.assign({}, t, e, { id: e.id.toString() });\n}\nfunction bi(e, t, n) {\n if (!xt(e))\n return [];\n const o = n === \"source\" ? \"target\" : \"source\", i = t.filter((r) => $e(r) && r[o] === e.id).map((r) => $e(r) && r[n]);\n return t.filter((r) => i.includes(r.id));\n}\nfunction Pd(e, t) {\n return bi(e, t, \"target\");\n}\nfunction Dd(e, t) {\n return bi(e, t, \"source\");\n}\nfunction an({ source: e, sourceHandle: t, target: n, targetHandle: o }) {\n return `vueflow__edge-${e}${t ?? \"\"}-${n}${o ?? \"\"}`;\n}\nfunction Ei(e, t) {\n return t.some(\n (n) => $e(n) && n.source === e.source && n.target === e.target && (n.sourceHandle === e.sourceHandle || !n.sourceHandle && !e.sourceHandle) && (n.targetHandle === e.targetHandle || !n.targetHandle && !e.targetHandle)\n );\n}\nfunction zd(e, t, n) {\n if (!e.source || !e.target)\n return wt(\"Can't create edge. An edge needs a source and a target.\"), t;\n let o;\n return $e(e) ? o = { ...e } : o = {\n ...e,\n id: an(e)\n }, o = lo(o, n), Ei(o, t) || t.push(o), t;\n}\nfunction Ad(e, t, n) {\n if (!t.source || !t.target)\n return wt(\"Can't create new edge. An edge needs a source and a target.\"), n;\n const o = n.find((r) => $e(r) && r.id === e.id);\n if (!o)\n return wt(`The old edge with id=${e.id} does not exist.`), n;\n const i = {\n ...e,\n id: an(t),\n source: t.source,\n target: t.target,\n sourceHandle: t.sourceHandle,\n targetHandle: t.targetHandle\n };\n return n.splice(n.indexOf(o), 1, i), n.filter((r) => r.id !== e.id);\n}\nfunction va({ x: e, y: t }, { x: n, y: o, zoom: i }) {\n return {\n x: e * i + n,\n y: t * i + o\n };\n}\nfunction uo({ x: e, y: t }, { x: n, y: o, zoom: i }, r, [a, s]) {\n const l = {\n x: (e - n) / i,\n y: (t - o) / i\n };\n return r ? {\n x: a * Math.round(l.x / a),\n y: s * Math.round(l.y / s)\n } : l;\n}\nfunction Si(e, t) {\n return {\n x: Math.min(e.x, t.x),\n y: Math.min(e.y, t.y),\n x2: Math.max(e.x2, t.x2),\n y2: Math.max(e.y2, t.y2)\n };\n}\nfunction Xt({ x: e, y: t, width: n, height: o }) {\n return {\n x: e,\n y: t,\n x2: e + n,\n y2: t + o\n };\n}\nfunction Ni({ x: e, y: t, x2: n, y2: o }) {\n return {\n x: e,\n y: t,\n width: n - e,\n height: o - t\n };\n}\nfunction Bd(e, t) {\n return Ni(Si(Xt(e), Xt(t)));\n}\nfunction co(e) {\n const t = e.reduce(\n (n, { computedPosition: o = { x: 0, y: 0 }, dimensions: i = { width: 0, height: 0 } } = {}) => Si(\n n,\n Xt({\n ...o,\n ...i\n })\n ),\n { x: 1 / 0, y: 1 / 0, x2: -1 / 0, y2: -1 / 0 }\n );\n return Ni(t);\n}\nfunction Ci(e, t, { x: n, y: o, zoom: i } = { x: 0, y: 0, zoom: 1 }, r = !1, a = !1) {\n const s = {\n x: (t.x - n) / i,\n y: (t.y - o) / i,\n width: t.width / i,\n height: t.height / i\n };\n return e.filter((l) => {\n const { computedPosition: u = { x: 0, y: 0 }, dimensions: c = { width: 0, height: 0 }, selectable: v } = l;\n if (a && !v)\n return !1;\n const g = { ...u, width: c.width || 0, height: c.height || 0 }, x = Fn(s, g), h = typeof c.width > \"u\" || typeof c.height > \"u\" || c.width === 0 || c.height === 0, d = r && x > 0, w = c.width * c.height;\n return h || d || x >= w;\n });\n}\nfunction sn(e, t) {\n const n = e.map((o) => Pe(o) ? o : o.id);\n return t.filter((o) => n.includes(o.source) || n.includes(o.target));\n}\nfunction Zt(e, t, n, o, i, r = 0.1, a = { x: 0, y: 0 }) {\n const s = t / (e.width * (1 + r)), l = n / (e.height * (1 + r)), u = Math.min(s, l), c = je(u, o, i), v = e.x + e.width / 2, g = e.y + e.height / 2, x = t / 2 - v * c + (a.x ?? 0), h = n / 2 - g * c + (a.y ?? 0);\n return { x, y: h, zoom: c };\n}\nfunction ma(e, t) {\n return {\n x: t.x + e.x,\n y: t.y + e.y,\n z: (e.z > t.z ? e.z : t.z) + 1\n };\n}\nfunction Mi(e, t) {\n if (!e.parentNode)\n return !1;\n const n = t(e.parentNode);\n return n ? n.selected ? !0 : Mi(n, t) : !1;\n}\nfunction Xe(e, t) {\n return typeof e > \"u\" ? \"\" : typeof e == \"string\" ? e : `${t ? `${t}__` : \"\"}${Object.keys(e).sort().map((o) => `${o}=${e[o]}`).join(\"&\")}`;\n}\nfunction ce(e) {\n return typeof C(e) < \"u\";\n}\nfunction pa(e, t, n) {\n if (!e.source || !e.target)\n return n(new ve(he.EDGE_INVALID, e.id)), !1;\n let o;\n return $e(e) ? o = e : o = {\n ...e,\n id: an(e)\n }, o = lo(o), Ei(o, t) ? !1 : o;\n}\nfunction ya(e, t, n, o, i, r) {\n if (!t.source || !t.target)\n return r(new ve(he.EDGE_INVALID, e.id)), !1;\n const a = o(e.id);\n if (!a)\n return r(new ve(he.EDGE_NOT_FOUND, e.id)), !1;\n const { id: s, ...l } = e, u = {\n ...l,\n id: i ? an(t) : s,\n source: t.source,\n target: t.target,\n sourceHandle: t.sourceHandle,\n targetHandle: t.targetHandle\n };\n return n.splice(n.indexOf(a), 1, u), u;\n}\nfunction Do(e, t, n, o) {\n const i = {}, r = e.map((s) => {\n const l = ga(s, {\n ...n(s.id),\n parentNode: s.parentNode\n });\n return s.parentNode && (i[s.parentNode] = !0), l;\n }), a = [...r, ...t];\n return r.forEach((s) => {\n const l = a.find((u) => u.id === s.parentNode);\n s.parentNode && !l && o(new ve(he.NODE_MISSING_PARENT, s.id, s.parentNode)), (s.parentNode || i[s.id]) && (i[s.id] && (s.isParent = !0), l && (l.isParent = !0));\n }), r;\n}\nvar j = /* @__PURE__ */ ((e) => (e.Left = \"left\", e.Top = \"top\", e.Right = \"right\", e.Bottom = \"bottom\", e))(j || {}), fo = /* @__PURE__ */ ((e) => (e.Partial = \"partial\", e.Full = \"full\", e))(fo || {}), Ye = /* @__PURE__ */ ((e) => (e.Bezier = \"default\", e.SimpleBezier = \"simple-bezier\", e.Straight = \"straight\", e.Step = \"step\", e.SmoothStep = \"smoothstep\", e))(Ye || {}), Qe = /* @__PURE__ */ ((e) => (e.Strict = \"strict\", e.Loose = \"loose\", e))(Qe || {}), Yn = /* @__PURE__ */ ((e) => (e.Arrow = \"arrow\", e.ArrowClosed = \"arrowclosed\", e))(Yn || {}), Ut = /* @__PURE__ */ ((e) => (e.Free = \"free\", e.Vertical = \"vertical\", e.Horizontal = \"horizontal\", e))(Ut || {}), xa = /* @__PURE__ */ ((e) => (e.TopLeft = \"top-left\", e.TopCenter = \"top-center\", e.TopRight = \"top-right\", e.BottomLeft = \"bottom-left\", e.BottomCenter = \"bottom-center\", e.BottomRight = \"bottom-right\", e))(xa || {});\nconst zo = Symbol(\"vueFlow\"), $i = Symbol(\"nodeId\"), ki = Symbol(\"nodeRef\"), Oi = Symbol(\"edgeId\"), Ti = Symbol(\"edgeRef\"), ln = Symbol(\"slots\");\nfunction _a(e) {\n const t = e ?? He($i, \"\"), n = He(ki, null), { findNode: o, edges: i, emits: r } = fe(), a = o(t);\n return a || r.error(new ve(he.NODE_NOT_FOUND, t)), {\n id: t,\n nodeEl: n,\n node: a,\n parentNode: J(() => o(a.parentNode)),\n connectedEdges: J(() => sn([a], i.value))\n };\n}\nfunction ho(e) {\n return \"clientX\" in e;\n}\nfunction rt(e, t) {\n var r, a;\n const n = ho(e), o = n ? e.clientX : (r = e.touches) == null ? void 0 : r[0].clientX, i = n ? e.clientY : (a = e.touches) == null ? void 0 : a[0].clientY;\n return {\n x: o - ((t == null ? void 0 : t.left) ?? 0),\n y: i - ((t == null ? void 0 : t.top) ?? 0)\n };\n}\nfunction Wt(e, t, n) {\n const o = ((n == null ? void 0 : n.x) ?? 0) + t.x, i = ((n == null ? void 0 : n.y) ?? 0) + t.y, r = (n == null ? void 0 : n.width) ?? t.width, a = (n == null ? void 0 : n.height) ?? t.height;\n switch (e) {\n case j.Top:\n return {\n x: o + r / 2,\n y: i\n };\n case j.Right:\n return {\n x: o + r,\n y: i + a / 2\n };\n case j.Bottom:\n return {\n x: o + r / 2,\n y: i + a\n };\n case j.Left:\n return {\n x: o,\n y: i + a / 2\n };\n }\n}\nfunction Ao(e = [], t) {\n return e.length ? !t || e.length === 1 ? e[0] : t && e.find((n) => n.id === t) || null : null;\n}\nfunction wa(e, t, n, o, i, r) {\n const a = Wt(\n n,\n {\n ...e.dimensions,\n ...e.computedPosition\n },\n t\n ), s = Wt(\n r,\n {\n ...o.dimensions,\n ...o.computedPosition\n },\n i\n );\n return {\n sourceX: a.x,\n sourceY: a.y,\n targetX: s.x,\n targetY: s.y\n };\n}\nfunction ba({\n sourcePos: e,\n targetPos: t,\n sourceWidth: n,\n sourceHeight: o,\n targetWidth: i,\n targetHeight: r,\n width: a,\n height: s,\n viewport: l\n}) {\n const u = {\n x: Math.min(e.x, t.x),\n y: Math.min(e.y, t.y),\n x2: Math.max(e.x + n, t.x + i),\n y2: Math.max(e.y + o, t.y + r)\n };\n u.x === u.x2 && (u.x2 += 1), u.y === u.y2 && (u.y2 += 1);\n const c = Xt({\n x: (0 - l.x) / l.zoom,\n y: (0 - l.y) / l.zoom,\n width: a / l.zoom,\n height: s / l.zoom\n }), v = Math.max(0, Math.min(c.x2, u.x2) - Math.max(c.x, u.x)), g = Math.max(0, Math.min(c.y2, u.y2) - Math.max(c.y, u.y));\n return Math.ceil(v * g) > 0;\n}\nfunction Ea(e, t, n = !1) {\n let o = -1;\n const i = e.reduce((r, a) => {\n const s = Ie(a.zIndex);\n let l = s ? a.zIndex : 0;\n const u = t(a.source), c = t(a.target);\n return !u || !c || (n && (l = s ? a.zIndex : Math.max(u.computedPosition.z || 0, c.computedPosition.z || 0)), r[l] ? r[l].push(a) : r[l] = [a], o = l > o ? l : o), r;\n }, {});\n return Object.entries(Object.keys(i).length ? i : { 0: [] }).map(([r, a]) => {\n const s = +r;\n return {\n edges: a,\n level: s,\n isMaxLevel: s === o\n };\n });\n}\nfunction Cn(e) {\n e == null || e.classList.remove(\"valid\", \"connecting\", \"vue-flow__handle-valid\", \"vue-flow__handle-connecting\");\n}\nfunction Bo(e, t, n, o) {\n return (t[n] || []).reduce((i, r) => (`${e.id}-${r.id}-${n}` !== o && i.push({\n id: r.id || null,\n type: n,\n nodeId: e.id,\n ...Wt(\n r.position,\n {\n ...e.dimensions,\n ...e.computedPosition\n },\n r\n )\n }), i), []);\n}\nfunction Sa(e, t, n) {\n let o = null, i = 1 / 0;\n return n.forEach((r) => {\n const a = Math.sqrt((r.x - e.x) ** 2 + (r.y - e.y) ** 2);\n a <= t && a < i && (i = a, o = r);\n }), o;\n}\nfunction Ro(e, t, n, o, i, r, a, s, l, u) {\n const c = r === \"target\", v = s.querySelector(`.vue-flow__handle[data-id=\"${t == null ? void 0 : t.nodeId}-${t == null ? void 0 : t.id}-${t == null ? void 0 : t.type}\"]`), { x: g, y: x } = rt(e), h = s.elementFromPoint(g, x), d = h != null && h.classList.contains(\"vue-flow__handle\") ? h : v, w = {\n handleDomNode: d,\n isValid: !1,\n connection: { source: \"\", target: \"\", sourceHandle: null, targetHandle: null },\n endHandle: null\n };\n if (d) {\n const y = Ii(void 0, d), S = d.getAttribute(\"data-nodeid\"), V = d.getAttribute(\"data-handleid\"), p = d.classList.contains(\"connectable\"), N = d.classList.contains(\"connectableend\"), T = {\n source: c ? S : o,\n sourceHandle: c ? V : i,\n target: c ? o : S,\n targetHandle: c ? i : V\n };\n w.connection = T, p && N && (n === Qe.Strict ? c && y === \"source\" || !c && y === \"target\" : S !== o || V !== i) && (w.endHandle = {\n nodeId: S,\n handleId: V,\n type: y\n }, w.isValid = a(T, {\n edges: l,\n sourceNode: u(T.source),\n targetNode: u(T.target)\n }));\n }\n return w;\n}\nfunction Na({ nodes: e, nodeId: t, handleId: n, handleType: o }) {\n return e.reduce((i, r) => {\n const { handleBounds: a } = r;\n let s = [], l = [];\n return a && (s = Bo(r, a, \"source\", `${t}-${n}-${o}`), l = Bo(r, a, \"target\", `${t}-${n}-${o}`)), i.push(...s, ...l), i;\n }, []);\n}\nfunction Ii(e, t) {\n return e || (t != null && t.classList.contains(\"target\") ? \"target\" : t != null && t.classList.contains(\"source\") ? \"source\" : null);\n}\nfunction Ca(e, t) {\n let n = null;\n return t ? n = \"valid\" : e && !t && (n = \"invalid\"), n;\n}\nfunction Vo(e, t, n) {\n return e < t ? je(Math.abs(e - t), 1, 50) / 50 : e > n ? -je(Math.abs(e - n), 1, 50) / 50 : 0;\n}\nfunction Pi(e, t) {\n const n = Vo(e.x, 35, t.width - 35) * 20, o = Vo(e.y, 35, t.height - 35) * 20;\n return [n, o];\n}\nfunction It() {\n return !0;\n}\nfunction Di({\n handleId: e,\n nodeId: t,\n type: n,\n isValidConnection: o,\n edgeUpdaterType: i,\n onEdgeUpdate: r,\n onEdgeUpdateEnd: a\n}) {\n const s = J(() => le(n) === \"target\"), {\n vueFlowRef: l,\n connectionMode: u,\n connectionRadius: c,\n connectOnClick: v,\n connectionClickStartHandle: g,\n nodesConnectable: x,\n autoPanOnConnect: h,\n findNode: d,\n panBy: w,\n getNodes: y,\n startConnection: S,\n updateConnection: V,\n endConnection: p,\n emits: N,\n viewport: T,\n edges: _,\n isValidConnection: P\n } = fe();\n let R = null, $ = !1, D = null;\n function Q(m) {\n var G;\n const A = ho(m), E = Po(m.target);\n if (A && m.button === 0 || !A) {\n let Z = function(Y) {\n L = rt(Y, f), B = Sa(\n uo(L, T.value, !1, [1, 1]),\n c.value,\n F\n ), I || (U(), I = !0);\n const ne = Ro(\n Y,\n B,\n u.value,\n le(t),\n le(e),\n s.value ? \"target\" : \"source\",\n W,\n E,\n _.value,\n d\n );\n if (R = ne.connection, $ = ne.isValid, D = ne.handleDomNode, V(\n B && $ ? va(\n {\n x: B.x,\n y: B.y\n },\n T.value\n ) : L,\n ne.endHandle,\n Ca(!!B, $)\n ), !B && !$ && !D)\n return Cn(b);\n R && R.source !== R.target && D && (Cn(b), b = D, D.classList.add(\"connecting\", \"vue-flow__handle-connecting\"), D.classList.toggle(\"valid\", $), D.classList.toggle(\"vue-flow__handle-valid\", $));\n }, K = function(Y) {\n (B || D) && R && $ && (r ? r(Y, R) : N.connect(R)), N.connectEnd(Y), i && (a == null || a(Y)), Cn(b), cancelAnimationFrame(q), p(Y), I = !1, $ = !1, R = null, D = null, E.removeEventListener(\"mousemove\", Z), E.removeEventListener(\"mouseup\", K), E.removeEventListener(\"touchmove\", Z), E.removeEventListener(\"touchend\", K);\n };\n const z = d(le(t));\n let W = o || P.value || It;\n !W && z && (W = (s ? z.isValidSourcePos : z.isValidTargetPos) || It);\n let B, q = 0;\n const { x: te, y: re } = rt(m), k = E == null ? void 0 : E.elementFromPoint(te, re), H = Ii(le(i), k), f = (G = l.value) == null ? void 0 : G.getBoundingClientRect();\n if (!f || !H)\n return;\n let b, L = rt(m, f), I = !1;\n const F = Na({\n nodes: y.value,\n nodeId: le(t),\n handleId: le(e),\n handleType: H\n }), U = () => {\n if (!h)\n return;\n const [Y, ne] = Pi(L, f);\n w({ x: Y, y: ne }), q = requestAnimationFrame(U);\n };\n S(\n {\n nodeId: le(t),\n handleId: le(e),\n type: H\n },\n {\n x: te - f.left,\n y: re - f.top\n },\n m\n ), N.connectStart({ event: m, nodeId: le(t), handleId: le(e), handleType: H }), E.addEventListener(\"mousemove\", Z), E.addEventListener(\"mouseup\", K), E.addEventListener(\"touchmove\", Z), E.addEventListener(\"touchend\", K);\n }\n }\n function ee(m) {\n if (v.value)\n if (!g.value)\n N.clickConnectStart({ event: m, nodeId: le(t), handleId: le(e) }), S(\n { nodeId: le(t), type: le(n), handleId: le(e) },\n void 0,\n m,\n !0\n );\n else {\n let A = o || P.value || It;\n const E = d(le(t));\n if (!A && E && (A = (s ? E.isValidSourcePos : E.isValidTargetPos) || It), E && (typeof E.connectable > \"u\" ? x.value : E.connectable) === !1)\n return;\n const G = Po(m.target), { connection: Z, isValid: K } = Ro(\n m,\n {\n nodeId: le(t),\n id: le(e),\n type: le(n)\n },\n u.value,\n g.value.nodeId,\n g.value.handleId || null,\n g.value.type,\n A,\n G,\n _.value,\n d\n ), z = Z.source === Z.target;\n K && !z && N.connect(Z), N.clickConnectEnd(m), p(m, !0);\n }\n }\n return {\n handlePointerDown: Q,\n handleClick: ee\n };\n}\nfunction Ma(e, t) {\n const n = {};\n for (const o in e)\n t.includes(o) || Object.defineProperty(n, o, {\n enumerable: !0,\n get: () => e[o]\n });\n return n;\n}\nconst $a = [\"data-id\", \"data-handleid\", \"data-nodeid\", \"data-handlepos\"], ka = {\n name: \"Handle\",\n compatConfig: { MODE: 3 }\n}, Kt = /* @__PURE__ */ ge({\n ...ka,\n props: {\n id: null,\n type: null,\n position: { default: j.Top },\n isValidConnection: { type: Function },\n connectable: { type: [Boolean, String, Function], default: void 0 },\n connectableStart: { type: Boolean, default: !0 },\n connectableEnd: { type: Boolean, default: !0 }\n },\n setup(e) {\n const t = Ma(e, [\"position\", \"connectable\", \"connectableStart\", \"connectableEnd\", \"id\", \"isValidConnection\"]), n = M(t, \"type\", \"source\"), {\n connectionStartHandle: o,\n connectionClickStartHandle: i,\n connectionEndHandle: r,\n vueFlowRef: a,\n nodesConnectable: s,\n noDragClassName: l,\n noPanClassName: u\n } = fe(), { id: c, node: v, nodeEl: g, connectedEdges: x } = _a(), h = ie(), d = J(() => e.id ?? `${c}__handle-${e.position}`), w = J(() => typeof e.connectableStart < \"u\" ? e.connectableStart : !0), y = J(() => typeof e.connectableEnd < \"u\" ? e.connectableEnd : !0), { handlePointerDown: S, handleClick: V } = Di({\n nodeId: c,\n handleId: d,\n isValidConnection: e.isValidConnection,\n type: n\n }), p = J(() => Pe(e.connectable) && e.connectable === \"single\" ? !x.value.some((R) => {\n const $ = R[`${n.value}Handle`];\n return R[n.value] !== c ? !1 : $ ? $ === d.value : !0;\n }) : Ae(e.connectable) ? e.connectable(v, x.value) : ce(e.connectable) ? e.connectable : s.value), N = J(\n () => {\n var R, $, D, Q, ee, m;\n return ((R = o.value) == null ? void 0 : R.nodeId) === c && (($ = o.value) == null ? void 0 : $.handleId) === d.value && ((D = o.value) == null ? void 0 : D.type) === n.value || ((Q = r.value) == null ? void 0 : Q.nodeId) === c && ((ee = r.value) == null ? void 0 : ee.handleId) === d.value && ((m = r.value) == null ? void 0 : m.type) === n.value;\n }\n ), T = J(\n () => {\n var R, $, D;\n return ((R = i.value) == null ? void 0 : R.nodeId) === c && (($ = i.value) == null ? void 0 : $.handleId) === d.value && ((D = i.value) == null ? void 0 : D.type) === n.value;\n }\n );\n ye(() => v.initialized).toBe(!0, { flush: \"post\" }).then(() => {\n var E;\n const R = (E = v.handleBounds[n.value]) == null ? void 0 : E.find((G) => G.id === d.value);\n if (!a.value || R)\n return;\n const $ = a.value.querySelector(\".vue-flow__transformationpane\");\n if (!g || !h.value || !$ || !d.value)\n return;\n const D = g.value.getBoundingClientRect(), Q = h.value.getBoundingClientRect(), ee = window.getComputedStyle($), { m22: m } = new window.DOMMatrixReadOnly(ee.transform), A = {\n id: d.value,\n position: e.position,\n x: (Q.left - D.left) / m,\n y: (Q.top - D.top) / m,\n ...rn(h.value)\n };\n v.handleBounds[n.value] = [...v.handleBounds[n.value] ?? [], A];\n });\n function _(R) {\n const $ = ho(R);\n p.value && w.value && ($ && R.button === 0 || !$) && S(R);\n }\n function P(R) {\n !c || !i.value && !w.value || p.value && V(R);\n }\n return (R, $) => (oe(), se(\"div\", {\n ref_key: \"handle\",\n ref: h,\n \"data-id\": `${C(c)}-${C(d)}-${C(n)}`,\n \"data-handleid\": C(d),\n \"data-nodeid\": C(c),\n \"data-handlepos\": e.position,\n class: Ke([\"vue-flow__handle\", [\n `vue-flow__handle-${e.position}`,\n `vue-flow__handle-${C(d)}`,\n C(l),\n C(u),\n C(n),\n {\n connectable: C(p),\n connecting: C(T),\n connectablestart: C(w),\n connectableend: C(y),\n connectionindicator: C(p) && (C(w) && !C(N) || C(y) && C(N))\n }\n ]]),\n onMousedown: _,\n onTouchstartPassive: _,\n onClick: P\n }, [\n xe(R.$slots, \"default\", { id: e.id })\n ], 42, $a));\n }\n}), un = function({\n sourcePosition: e = j.Bottom,\n targetPosition: t = j.Top,\n label: n,\n connectable: o = !0,\n isValidTargetPos: i,\n isValidSourcePos: r\n}) {\n return [\n ue(Kt, { type: \"target\", position: t, connectable: o, isValidConnection: i }),\n typeof n != \"string\" && n ? ue(n) : ue(\"div\", { innerHTML: n }),\n ue(Kt, { type: \"source\", position: e, connectable: o, isValidConnection: r })\n ];\n};\nun.props = [\"sourcePosition\", \"targetPosition\", \"label\", \"isValidTargetPos\", \"isValidSourcePos\", \"connectable\"];\nun.inheritAttrs = !1;\nun.compatConfig = { MODE: 3 };\nconst Oa = un, cn = function({\n sourcePosition: e = j.Bottom,\n label: t,\n connectable: n = !0,\n isValidSourcePos: o\n}) {\n return [\n typeof t != \"string\" && t ? ue(t) : ue(\"div\", { innerHTML: t }),\n ue(Kt, { type: \"source\", position: e, connectable: n, isValidConnection: o })\n ];\n};\ncn.props = [\"sourcePosition\", \"label\", \"isValidSourcePos\", \"connectable\"];\ncn.inheritAttrs = !1;\ncn.compatConfig = { MODE: 3 };\nconst Ta = cn, dn = function({\n targetPosition: e = j.Top,\n label: t,\n connectable: n = !0,\n isValidTargetPos: o\n}) {\n return [\n ue(Kt, { type: \"target\", position: e, connectable: n, isValidConnection: o }),\n typeof t != \"string\" && t ? ue(t) : ue(\"div\", { innerHTML: t })\n ];\n};\ndn.props = [\"targetPosition\", \"label\", \"isValidTargetPos\", \"connectable\"];\ndn.inheritAttrs = !1;\ndn.compatConfig = { MODE: 3 };\nconst Ia = dn;\nfunction Ho(e, t, n) {\n let o = e;\n do {\n if (o && o.matches(t))\n return !0;\n if (o === n)\n return !1;\n o = o.parentElement;\n } while (o);\n return !1;\n}\nfunction Pa(e, t, n, o, i) {\n return e.filter(\n (r) => (r.selected || r.id === i) && (!r.parentNode || !Mi(r, o)) && (r.draggable || t && typeof r.draggable > \"u\")\n ).map(\n (r) => {\n var a, s;\n return it({\n id: r.id,\n position: r.position || { x: 0, y: 0 },\n distance: {\n x: n.x - ((a = r.computedPosition) == null ? void 0 : a.x) || 0,\n y: n.y - ((s = r.computedPosition) == null ? void 0 : s.y) || 0\n },\n from: r.computedPosition,\n extent: r.extent,\n parentNode: r.parentNode,\n dimensions: r.dimensions\n });\n }\n );\n}\nfunction Mn({\n id: e,\n dragItems: t,\n findNode: n\n}) {\n const o = t.reduce((i, r) => {\n const a = n(r.id);\n return a && i.push(a), i;\n }, []);\n return [e ? o.find((i) => i.id === e) : o[0], o];\n}\nfunction zi(e) {\n if (Array.isArray(e))\n switch (e.length) {\n case 1:\n return [e[0], e[0], e[0], e[0]];\n case 2:\n return [e[0], e[1], e[0], e[1]];\n case 3:\n return [e[0], e[1], e[2], e[1]];\n case 4:\n return e;\n default:\n return [0, 0, 0, 0];\n }\n return [e, e, e, e];\n}\nfunction Da(e, t, n) {\n const [o, i, r, a] = typeof e != \"string\" ? zi(e.padding) : [0, 0, 0, 0];\n return n && Ie(n.computedPosition.x) && Ie(n.computedPosition.y) && Ie(n.dimensions.width) && Ie(n.dimensions.height) ? [\n [n.computedPosition.x + a, n.computedPosition.y + o],\n [\n n.computedPosition.x + (n.dimensions.width - t.dimensions.width) - i,\n n.computedPosition.y + (n.dimensions.height - t.dimensions.height) - r\n ]\n ] : !1;\n}\nfunction za(e, t, n, o) {\n let i = e.extent || n;\n if (i === \"parent\" || !Array.isArray(i) && (i == null ? void 0 : i.range) === \"parent\")\n if (e.parentNode && o && e.dimensions.width && e.dimensions.height) {\n const r = Da(i, e, o);\n r && (i = r);\n } else\n t(new ve(he.NODE_EXTENT_INVALID, e.id)), i = n;\n else if (Array.isArray(i)) {\n const r = (o == null ? void 0 : o.computedPosition.x) || 0, a = (o == null ? void 0 : o.computedPosition.y) || 0;\n i = [\n [i[0][0] + r, i[0][1] + a],\n [i[1][0] + r, i[1][1] + a]\n ];\n } else if (i != null && i.range && Array.isArray(i.range)) {\n const [r, a, s, l] = zi(i.padding), u = (o == null ? void 0 : o.computedPosition.x) || 0, c = (o == null ? void 0 : o.computedPosition.y) || 0;\n i = [\n [i.range[0][0] + u + l, i.range[0][1] + c + r],\n [i.range[1][0] + u - a, i.range[1][1] + c - s]\n ];\n }\n return i;\n}\nfunction go(e, t, n, o, i) {\n const r = za(e, n, o, i), a = so(t, r);\n return {\n position: {\n x: a.x - ((i == null ? void 0 : i.computedPosition.x) || 0),\n y: a.y - ((i == null ? void 0 : i.computedPosition.y) || 0)\n },\n computedPosition: a\n };\n}\nfunction Ai() {\n const { getSelectedNodes: e, nodeExtent: t, updateNodePositions: n, findNode: o, snapGrid: i, snapToGrid: r, nodesDraggable: a, emits: s } = fe();\n return (l, u = !1) => {\n const c = r.value ? i.value[0] : 5, v = r.value ? i.value[1] : 5, g = u ? 4 : 1, x = l.x * c * g, h = l.y * v * g, d = e.value.filter((w) => w.draggable || a && typeof w.draggable > \"u\").map((w) => {\n const y = { x: w.computedPosition.x + x, y: w.computedPosition.y + h }, { computedPosition: S } = go(\n w,\n y,\n s.error,\n t.value,\n w.parentNode ? o(w.parentNode) : void 0\n );\n return {\n id: w.id,\n position: S,\n from: w.position,\n distance: { x: l.x, y: l.y },\n dimensions: w.dimensions\n };\n });\n n(d, !0, !1);\n };\n}\nfunction Aa() {\n return {\n doubleClick: X(),\n click: X(),\n mouseEnter: X(),\n mouseMove: X(),\n mouseLeave: X(),\n contextMenu: X(),\n dragStart: X(),\n drag: X(),\n dragStop: X()\n };\n}\nfunction Ba(e, t) {\n const n = Aa();\n return n.doubleClick.on((o) => {\n var i, r;\n t.nodeDoubleClick(o), (r = (i = e.events) == null ? void 0 : i.doubleClick) == null || r.call(i, o);\n }), n.click.on((o) => {\n var i, r;\n t.nodeClick(o), (r = (i = e.events) == null ? void 0 : i.click) == null || r.call(i, o);\n }), n.mouseEnter.on((o) => {\n var i, r;\n t.nodeMouseEnter(o), (r = (i = e.events) == null ? void 0 : i.mouseEnter) == null || r.call(i, o);\n }), n.mouseMove.on((o) => {\n var i, r;\n t.nodeMouseMove(o), (r = (i = e.events) == null ? void 0 : i.mouseMove) == null || r.call(i, o);\n }), n.mouseLeave.on((o) => {\n var i, r;\n t.nodeMouseLeave(o), (r = (i = e.events) == null ? void 0 : i.mouseLeave) == null || r.call(i, o);\n }), n.contextMenu.on((o) => {\n var i, r;\n t.nodeContextMenu(o), (r = (i = e.events) == null ? void 0 : i.contextMenu) == null || r.call(i, o);\n }), n.dragStart.on((o) => {\n var i, r;\n t.nodeDragStart(o), (r = (i = e.events) == null ? void 0 : i.dragStart) == null || r.call(i, o);\n }), n.drag.on((o) => {\n var i, r;\n t.nodeDrag(o), (r = (i = e.events) == null ? void 0 : i.drag) == null || r.call(i, o);\n }), n.dragStop.on((o) => {\n var i, r;\n t.nodeDragStop(o), (r = (i = e.events) == null ? void 0 : i.dragStop) == null || r.call(i, o);\n }), Object.entries(n).reduce(\n (o, [i, r]) => (o.emit[i] = r.trigger, o.on[i] = r.on, o),\n { emit: {}, on: {} }\n );\n}\nfunction Ra() {\n const { viewport: e, snapGrid: t, snapToGrid: n } = fe();\n return ({ sourceEvent: o }) => {\n const i = o.touches ? o.touches[0].clientX : o.clientX, r = o.touches ? o.touches[0].clientY : o.clientY, a = {\n x: (i - e.value.x) / e.value.zoom,\n y: (r - e.value.y) / e.value.zoom\n };\n return {\n xSnapped: n.value ? t.value[0] * Math.round(a.x / t.value[0]) : a.x,\n ySnapped: n.value ? t.value[1] * Math.round(a.y / t.value[1]) : a.y,\n ...a\n };\n };\n}\nfunction Lo(e, t, n) {\n const o = t.querySelectorAll(`.vue-flow__handle${e}`);\n if (!o || !o.length)\n return;\n const i = Array.from(o), r = t.getBoundingClientRect();\n return i.map((a) => {\n const s = a.getBoundingClientRect();\n return {\n id: a.getAttribute(\"data-handleid\"),\n position: a.getAttribute(\"data-handlepos\"),\n x: (s.left - r.left) / n,\n y: (s.top - r.top) / n,\n ...rn(a)\n };\n });\n}\nfunction Xn(e, t, n, o, i, r = !1, a) {\n i.value = !1, e.selected ? (r || e.selected && t) && (o([e]), Ue(a.blur)) : n([e]);\n}\nvar Va = { value: () => {\n} };\nfunction fn() {\n for (var e = 0, t = arguments.length, n = {}, o; e < t; ++e) {\n if (!(o = arguments[e] + \"\") || o in n || /[\\s.]/.test(o))\n throw new Error(\"illegal type: \" + o);\n n[o] = [];\n }\n return new Ht(n);\n}\nfunction Ht(e) {\n this._ = e;\n}\nfunction Ha(e, t) {\n return e.trim().split(/^|\\s+/).map(function(n) {\n var o = \"\", i = n.indexOf(\".\");\n if (i >= 0 && (o = n.slice(i + 1), n = n.slice(0, i)), n && !t.hasOwnProperty(n))\n throw new Error(\"unknown type: \" + n);\n return { type: n, name: o };\n });\n}\nHt.prototype = fn.prototype = {\n constructor: Ht,\n on: function(e, t) {\n var n = this._, o = Ha(e + \"\", n), i, r = -1, a = o.length;\n if (arguments.length < 2) {\n for (; ++r < a; )\n if ((i = (e = o[r]).type) && (i = La(n[i], e.name)))\n return i;\n return;\n }\n if (t != null && typeof t != \"function\")\n throw new Error(\"invalid callback: \" + t);\n for (; ++r < a; )\n if (i = (e = o[r]).type)\n n[i] = Go(n[i], e.name, t);\n else if (t == null)\n for (i in n)\n n[i] = Go(n[i], e.name, null);\n return this;\n },\n copy: function() {\n var e = {}, t = this._;\n for (var n in t)\n e[n] = t[n].slice();\n return new Ht(e);\n },\n call: function(e, t) {\n if ((i = arguments.length - 2) > 0)\n for (var n = new Array(i), o = 0, i, r; o < i; ++o)\n n[o] = arguments[o + 2];\n if (!this._.hasOwnProperty(e))\n throw new Error(\"unknown type: \" + e);\n for (r = this._[e], o = 0, i = r.length; o < i; ++o)\n r[o].value.apply(t, n);\n },\n apply: function(e, t, n) {\n if (!this._.hasOwnProperty(e))\n throw new Error(\"unknown type: \" + e);\n for (var o = this._[e], i = 0, r = o.length; i < r; ++i)\n o[i].value.apply(t, n);\n }\n};\nfunction La(e, t) {\n for (var n = 0, o = e.length, i; n < o; ++n)\n if ((i = e[n]).name === t)\n return i.value;\n}\nfunction Go(e, t, n) {\n for (var o = 0, i = e.length; o < i; ++o)\n if (e[o].name === t) {\n e[o] = Va, e = e.slice(0, o).concat(e.slice(o + 1));\n break;\n }\n return n != null && e.push({ name: t, value: n }), e;\n}\nvar Zn = \"http://www.w3.org/1999/xhtml\";\nconst Fo = {\n svg: \"http://www.w3.org/2000/svg\",\n xhtml: Zn,\n xlink: \"http://www.w3.org/1999/xlink\",\n xml: \"http://www.w3.org/XML/1998/namespace\",\n xmlns: \"http://www.w3.org/2000/xmlns/\"\n};\nfunction hn(e) {\n var t = e += \"\", n = t.indexOf(\":\");\n return n >= 0 && (t = e.slice(0, n)) !== \"xmlns\" && (e = e.slice(n + 1)), Fo.hasOwnProperty(t) ? { space: Fo[t], local: e } : e;\n}\nfunction Ga(e) {\n return function() {\n var t = this.ownerDocument, n = this.namespaceURI;\n return n === Zn && t.documentElement.namespaceURI === Zn ? t.createElement(e) : t.createElementNS(n, e);\n };\n}\nfunction Fa(e) {\n return function() {\n return this.ownerDocument.createElementNS(e.space, e.local);\n };\n}\nfunction Bi(e) {\n var t = hn(e);\n return (t.local ? Fa : Ga)(t);\n}\nfunction Ya() {\n}\nfunction vo(e) {\n return e == null ? Ya : function() {\n return this.querySelector(e);\n };\n}\nfunction Xa(e) {\n typeof e != \"function\" && (e = vo(e));\n for (var t = this._groups, n = t.length, o = new Array(n), i = 0; i < n; ++i)\n for (var r = t[i], a = r.length, s = o[i] = new Array(a), l, u, c = 0; c < a; ++c)\n (l = r[c]) && (u = e.call(l, l.__data__, c, r)) && (\"__data__\" in l && (u.__data__ = l.__data__), s[c] = u);\n return new _e(o, this._parents);\n}\nfunction Za(e) {\n return e == null ? [] : Array.isArray(e) ? e : Array.from(e);\n}\nfunction Ua() {\n return [];\n}\nfunction Ri(e) {\n return e == null ? Ua : function() {\n return this.querySelectorAll(e);\n };\n}\nfunction Wa(e) {\n return function() {\n return Za(e.apply(this, arguments));\n };\n}\nfunction Ka(e) {\n typeof e == \"function\" ? e = Wa(e) : e = Ri(e);\n for (var t = this._groups, n = t.length, o = [], i = [], r = 0; r < n; ++r)\n for (var a = t[r], s = a.length, l, u = 0; u < s; ++u)\n (l = a[u]) && (o.push(e.call(l, l.__data__, u, a)), i.push(l));\n return new _e(o, i);\n}\nfunction Vi(e) {\n return function() {\n return this.matches(e);\n };\n}\nfunction Hi(e) {\n return function(t) {\n return t.matches(e);\n };\n}\nvar qa = Array.prototype.find;\nfunction ja(e) {\n return function() {\n return qa.call(this.children, e);\n };\n}\nfunction Qa() {\n return this.firstElementChild;\n}\nfunction Ja(e) {\n return this.select(e == null ? Qa : ja(typeof e == \"function\" ? e : Hi(e)));\n}\nvar es = Array.prototype.filter;\nfunction ts() {\n return Array.from(this.children);\n}\nfunction ns(e) {\n return function() {\n return es.call(this.children, e);\n };\n}\nfunction os(e) {\n return this.selectAll(e == null ? ts : ns(typeof e == \"function\" ? e : Hi(e)));\n}\nfunction is(e) {\n typeof e != \"function\" && (e = Vi(e));\n for (var t = this._groups, n = t.length, o = new Array(n), i = 0; i < n; ++i)\n for (var r = t[i], a = r.length, s = o[i] = [], l, u = 0; u < a; ++u)\n (l = r[u]) && e.call(l, l.__data__, u, r) && s.push(l);\n return new _e(o, this._parents);\n}\nfunction Li(e) {\n return new Array(e.length);\n}\nfunction rs() {\n return new _e(this._enter || this._groups.map(Li), this._parents);\n}\nfunction qt(e, t) {\n this.ownerDocument = e.ownerDocument, this.namespaceURI = e.namespaceURI, this._next = null, this._parent = e, this.__data__ = t;\n}\nqt.prototype = {\n constructor: qt,\n appendChild: function(e) {\n return this._parent.insertBefore(e, this._next);\n },\n insertBefore: function(e, t) {\n return this._parent.insertBefore(e, t);\n },\n querySelector: function(e) {\n return this._parent.querySelector(e);\n },\n querySelectorAll: function(e) {\n return this._parent.querySelectorAll(e);\n }\n};\nfunction as(e) {\n return function() {\n return e;\n };\n}\nfunction ss(e, t, n, o, i, r) {\n for (var a = 0, s, l = t.length, u = r.length; a < u; ++a)\n (s = t[a]) ? (s.__data__ = r[a], o[a] = s) : n[a] = new qt(e, r[a]);\n for (; a < l; ++a)\n (s = t[a]) && (i[a] = s);\n}\nfunction ls(e, t, n, o, i, r, a) {\n var s, l, u = /* @__PURE__ */ new Map(), c = t.length, v = r.length, g = new Array(c), x;\n for (s = 0; s < c; ++s)\n (l = t[s]) && (g[s] = x = a.call(l, l.__data__, s, t) + \"\", u.has(x) ? i[s] = l : u.set(x, l));\n for (s = 0; s < v; ++s)\n x = a.call(e, r[s], s, r) + \"\", (l = u.get(x)) ? (o[s] = l, l.__data__ = r[s], u.delete(x)) : n[s] = new qt(e, r[s]);\n for (s = 0; s < c; ++s)\n (l = t[s]) && u.get(g[s]) === l && (i[s] = l);\n}\nfunction us(e) {\n return e.__data__;\n}\nfunction cs(e, t) {\n if (!arguments.length)\n return Array.from(this, us);\n var n = t ? ls : ss, o = this._parents, i = this._groups;\n typeof e != \"function\" && (e = as(e));\n for (var r = i.length, a = new Array(r), s = new Array(r), l = new Array(r), u = 0; u < r; ++u) {\n var c = o[u], v = i[u], g = v.length, x = ds(e.call(c, c && c.__data__, u, o)), h = x.length, d = s[u] = new Array(h), w = a[u] = new Array(h), y = l[u] = new Array(g);\n n(c, v, d, w, y, x, t);\n for (var S = 0, V = 0, p, N; S < h; ++S)\n if (p = d[S]) {\n for (S >= V && (V = S + 1); !(N = w[V]) && ++V < h; )\n ;\n p._next = N || null;\n }\n }\n return a = new _e(a, o), a._enter = s, a._exit = l, a;\n}\nfunction ds(e) {\n return typeof e == \"object\" && \"length\" in e ? e : Array.from(e);\n}\nfunction fs() {\n return new _e(this._exit || this._groups.map(Li), this._parents);\n}\nfunction hs(e, t, n) {\n var o = this.enter(), i = this, r = this.exit();\n return typeof e == \"function\" ? (o = e(o), o && (o = o.selection())) : o = o.append(e + \"\"), t != null && (i = t(i), i && (i = i.selection())), n == null ? r.remove() : n(r), o && i ? o.merge(i).order() : i;\n}\nfunction gs(e) {\n for (var t = e.selection ? e.selection() : e, n = this._groups, o = t._groups, i = n.length, r = o.length, a = Math.min(i, r), s = new Array(i), l = 0; l < a; ++l)\n for (var u = n[l], c = o[l], v = u.length, g = s[l] = new Array(v), x, h = 0; h < v; ++h)\n (x = u[h] || c[h]) && (g[h] = x);\n for (; l < i; ++l)\n s[l] = n[l];\n return new _e(s, this._parents);\n}\nfunction vs() {\n for (var e = this._groups, t = -1, n = e.length; ++t < n; )\n for (var o = e[t], i = o.length - 1, r = o[i], a; --i >= 0; )\n (a = o[i]) && (r && a.compareDocumentPosition(r) ^ 4 && r.parentNode.insertBefore(a, r), r = a);\n return this;\n}\nfunction ms(e) {\n e || (e = ps);\n function t(v, g) {\n return v && g ? e(v.__data__, g.__data__) : !v - !g;\n }\n for (var n = this._groups, o = n.length, i = new Array(o), r = 0; r < o; ++r) {\n for (var a = n[r], s = a.length, l = i[r] = new Array(s), u, c = 0; c < s; ++c)\n (u = a[c]) && (l[c] = u);\n l.sort(t);\n }\n return new _e(i, this._parents).order();\n}\nfunction ps(e, t) {\n return e < t ? -1 : e > t ? 1 : e >= t ? 0 : NaN;\n}\nfunction ys() {\n var e = arguments[0];\n return arguments[0] = this, e.apply(null, arguments), this;\n}\nfunction xs() {\n return Array.from(this);\n}\nfunction _s() {\n for (var e = this._groups, t = 0, n = e.length; t < n; ++t)\n for (var o = e[t], i = 0, r = o.length; i < r; ++i) {\n var a = o[i];\n if (a)\n return a;\n }\n return null;\n}\nfunction ws() {\n let e = 0;\n for (const t of this)\n ++e;\n return e;\n}\nfunction bs() {\n return !this.node();\n}\nfunction Es(e) {\n for (var t = this._groups, n = 0, o = t.length; n < o; ++n)\n for (var i = t[n], r = 0, a = i.length, s; r < a; ++r)\n (s = i[r]) && e.call(s, s.__data__, r, i);\n return this;\n}\nfunction Ss(e) {\n return function() {\n this.removeAttribute(e);\n };\n}\nfunction Ns(e) {\n return function() {\n this.removeAttributeNS(e.space, e.local);\n };\n}\nfunction Cs(e, t) {\n return function() {\n this.setAttribute(e, t);\n };\n}\nfunction Ms(e, t) {\n return function() {\n this.setAttributeNS(e.space, e.local, t);\n };\n}\nfunction $s(e, t) {\n return function() {\n var n = t.apply(this, arguments);\n n == null ? this.removeAttribute(e) : this.setAttribute(e, n);\n };\n}\nfunction ks(e, t) {\n return function() {\n var n = t.apply(this, arguments);\n n == null ? this.removeAttributeNS(e.space, e.local) : this.setAttributeNS(e.space, e.local, n);\n };\n}\nfunction Os(e, t) {\n var n = hn(e);\n if (arguments.length < 2) {\n var o = this.node();\n return n.local ? o.getAttributeNS(n.space, n.local) : o.getAttribute(n);\n }\n return this.each((t == null ? n.local ? Ns : Ss : typeof t == \"function\" ? n.local ? ks : $s : n.local ? Ms : Cs)(n, t));\n}\nfunction Gi(e) {\n return e.ownerDocument && e.ownerDocument.defaultView || e.document && e || e.defaultView;\n}\nfunction Ts(e) {\n return function() {\n this.style.removeProperty(e);\n };\n}\nfunction Is(e, t, n) {\n return function() {\n this.style.setProperty(e, t, n);\n };\n}\nfunction Ps(e, t, n) {\n return function() {\n var o = t.apply(this, arguments);\n o == null ? this.style.removeProperty(e) : this.style.setProperty(e, o, n);\n };\n}\nfunction Ds(e, t, n) {\n return arguments.length > 1 ? this.each((t == null ? Ts : typeof t == \"function\" ? Ps : Is)(e, t, n ?? \"\")) : ft(this.node(), e);\n}\nfunction ft(e, t) {\n return e.style.getPropertyValue(t) || Gi(e).getComputedStyle(e, null).getPropertyValue(t);\n}\nfunction zs(e) {\n return function() {\n delete this[e];\n };\n}\nfunction As(e, t) {\n return function() {\n this[e] = t;\n };\n}\nfunction Bs(e, t) {\n return function() {\n var n = t.apply(this, arguments);\n n == null ? delete this[e] : this[e] = n;\n };\n}\nfunction Rs(e, t) {\n return arguments.length > 1 ? this.each((t == null ? zs : typeof t == \"function\" ? Bs : As)(e, t)) : this.node()[e];\n}\nfunction Fi(e) {\n return e.trim().split(/^|\\s+/);\n}\nfunction mo(e) {\n return e.classList || new Yi(e);\n}\nfunction Yi(e) {\n this._node = e, this._names = Fi(e.getAttribute(\"class\") || \"\");\n}\nYi.prototype = {\n add: function(e) {\n var t = this._names.indexOf(e);\n t < 0 && (this._names.push(e), this._node.setAttribute(\"class\", this._names.join(\" \")));\n },\n remove: function(e) {\n var t = this._names.indexOf(e);\n t >= 0 && (this._names.splice(t, 1), this._node.setAttribute(\"class\", this._names.join(\" \")));\n },\n contains: function(e) {\n return this._names.indexOf(e) >= 0;\n }\n};\nfunction Xi(e, t) {\n for (var n = mo(e), o = -1, i = t.length; ++o < i; )\n n.add(t[o]);\n}\nfunction Zi(e, t) {\n for (var n = mo(e), o = -1, i = t.length; ++o < i; )\n n.remove(t[o]);\n}\nfunction Vs(e) {\n return function() {\n Xi(this, e);\n };\n}\nfunction Hs(e) {\n return function() {\n Zi(this, e);\n };\n}\nfunction Ls(e, t) {\n return function() {\n (t.apply(this, arguments) ? Xi : Zi)(this, e);\n };\n}\nfunction Gs(e, t) {\n var n = Fi(e + \"\");\n if (arguments.length < 2) {\n for (var o = mo(this.node()), i = -1, r = n.length; ++i < r; )\n if (!o.contains(n[i]))\n return !1;\n return !0;\n }\n return this.each((typeof t == \"function\" ? Ls : t ? Vs : Hs)(n, t));\n}\nfunction Fs() {\n this.textContent = \"\";\n}\nfunction Ys(e) {\n return function() {\n this.textContent = e;\n };\n}\nfunction Xs(e) {\n return function() {\n var t = e.apply(this, arguments);\n this.textContent = t ?? \"\";\n };\n}\nfunction Zs(e) {\n return arguments.length ? this.each(e == null ? Fs : (typeof e == \"function\" ? Xs : Ys)(e)) : this.node().textContent;\n}\nfunction Us() {\n this.innerHTML = \"\";\n}\nfunction Ws(e) {\n return function() {\n this.innerHTML = e;\n };\n}\nfunction Ks(e) {\n return function() {\n var t = e.apply(this, arguments);\n this.innerHTML = t ?? \"\";\n };\n}\nfunction qs(e) {\n return arguments.length ? this.each(e == null ? Us : (typeof e == \"function\" ? Ks : Ws)(e)) : this.node().innerHTML;\n}\nfunction js() {\n this.nextSibling && this.parentNode.appendChild(this);\n}\nfunction Qs() {\n return this.each(js);\n}\nfunction Js() {\n this.previousSibling && this.parentNode.insertBefore(this, this.parentNode.firstChild);\n}\nfunction el() {\n return this.each(Js);\n}\nfunction tl(e) {\n var t = typeof e == \"function\" ? e : Bi(e);\n return this.select(function() {\n return this.appendChild(t.apply(this, arguments));\n });\n}\nfunction nl() {\n return null;\n}\nfunction ol(e, t) {\n var n = typeof e == \"function\" ? e : Bi(e), o = t == null ? nl : typeof t == \"function\" ? t : vo(t);\n return this.select(function() {\n return this.insertBefore(n.apply(this, arguments), o.apply(this, arguments) || null);\n });\n}\nfunction il() {\n var e = this.parentNode;\n e && e.removeChild(this);\n}\nfunction rl() {\n return this.each(il);\n}\nfunction al() {\n var e = this.cloneNode(!1), t = this.parentNode;\n return t ? t.insertBefore(e, this.nextSibling) : e;\n}\nfunction sl() {\n var e = this.cloneNode(!0), t = this.parentNode;\n return t ? t.insertBefore(e, this.nextSibling) : e;\n}\nfunction ll(e) {\n return this.select(e ? sl : al);\n}\nfunction ul(e) {\n return arguments.length ? this.property(\"__data__\", e) : this.node().__data__;\n}\nfunction cl(e) {\n return function(t) {\n e.call(this, t, this.__data__);\n };\n}\nfunction dl(e) {\n return e.trim().split(/^|\\s+/).map(function(t) {\n var n = \"\", o = t.indexOf(\".\");\n return o >= 0 && (n = t.slice(o + 1), t = t.slice(0, o)), { type: t, name: n };\n });\n}\nfunction fl(e) {\n return function() {\n var t = this.__on;\n if (t) {\n for (var n = 0, o = -1, i = t.length, r; n < i; ++n)\n r = t[n], (!e.type || r.type === e.type) && r.name === e.name ? this.removeEventListener(r.type, r.listener, r.options) : t[++o] = r;\n ++o ? t.length = o : delete this.__on;\n }\n };\n}\nfunction hl(e, t, n) {\n return function() {\n var o = this.__on, i, r = cl(t);\n if (o) {\n for (var a = 0, s = o.length; a < s; ++a)\n if ((i = o[a]).type === e.type && i.name === e.name) {\n this.removeEventListener(i.type, i.listener, i.options), this.addEventListener(i.type, i.listener = r, i.options = n), i.value = t;\n return;\n }\n }\n this.addEventListener(e.type, r, n), i = { type: e.type, name: e.name, value: t, listener: r, options: n }, o ? o.push(i) : this.__on = [i];\n };\n}\nfunction gl(e, t, n) {\n var o = dl(e + \"\"), i, r = o.length, a;\n if (arguments.length < 2) {\n var s = this.node().__on;\n if (s) {\n for (var l = 0, u = s.length, c; l < u; ++l)\n for (i = 0, c = s[l]; i < r; ++i)\n if ((a = o[i]).type === c.type && a.name === c.name)\n return c.value;\n }\n return;\n }\n for (s = t ? hl : fl, i = 0; i < r; ++i)\n this.each(s(o[i], t, n));\n return this;\n}\nfunction Ui(e, t, n) {\n var o = Gi(e), i = o.CustomEvent;\n typeof i == \"function\" ? i = new i(t, n) : (i = o.document.createEvent(\"Event\"), n ? (i.initEvent(t, n.bubbles, n.cancelable), i.detail = n.detail) : i.initEvent(t, !1, !1)), e.dispatchEvent(i);\n}\nfunction vl(e, t) {\n return function() {\n return Ui(this, e, t);\n };\n}\nfunction ml(e, t) {\n return function() {\n return Ui(this, e, t.apply(this, arguments));\n };\n}\nfunction pl(e, t) {\n return this.each((typeof t == \"function\" ? ml : vl)(e, t));\n}\nfunction* yl() {\n for (var e = this._groups, t = 0, n = e.length; t < n; ++t)\n for (var o = e[t], i = 0, r = o.length, a; i < r; ++i)\n (a = o[i]) && (yield a);\n}\nvar Wi = [null];\nfunction _e(e, t) {\n this._groups = e, this._parents = t;\n}\nfunction $t() {\n return new _e([[document.documentElement]], Wi);\n}\nfunction xl() {\n return this;\n}\n_e.prototype = $t.prototype = {\n constructor: _e,\n select: Xa,\n selectAll: Ka,\n selectChild: Ja,\n selectChildren: os,\n filter: is,\n data: cs,\n enter: rs,\n exit: fs,\n join: hs,\n merge: gs,\n selection: xl,\n order: vs,\n sort: ms,\n call: ys,\n nodes: xs,\n node: _s,\n size: ws,\n empty: bs,\n each: Es,\n attr: Os,\n style: Ds,\n property: Rs,\n classed: Gs,\n text: Zs,\n html: qs,\n raise: Qs,\n lower: el,\n append: tl,\n insert: ol,\n remove: rl,\n clone: ll,\n datum: ul,\n on: gl,\n dispatch: pl,\n [Symbol.iterator]: yl\n};\nfunction we(e) {\n return typeof e == \"string\" ? new _e([[document.querySelector(e)]], [document.documentElement]) : new _e([[e]], Wi);\n}\nfunction _l(e) {\n let t;\n for (; t = e.sourceEvent; )\n e = t;\n return e;\n}\nfunction Ne(e, t) {\n if (e = _l(e), t === void 0 && (t = e.currentTarget), t) {\n var n = t.ownerSVGElement || t;\n if (n.createSVGPoint) {\n var o = n.createSVGPoint();\n return o.x = e.clientX, o.y = e.clientY, o = o.matrixTransform(t.getScreenCTM().inverse()), [o.x, o.y];\n }\n if (t.getBoundingClientRect) {\n var i = t.getBoundingClientRect();\n return [e.clientX - i.left - t.clientLeft, e.clientY - i.top - t.clientTop];\n }\n }\n return [e.pageX, e.pageY];\n}\nconst wl = { passive: !1 }, bt = { capture: !0, passive: !1 };\nfunction $n(e) {\n e.stopImmediatePropagation();\n}\nfunction at(e) {\n e.preventDefault(), e.stopImmediatePropagation();\n}\nfunction Ki(e) {\n var t = e.document.documentElement, n = we(e).on(\"dragstart.drag\", at, bt);\n \"onselectstart\" in t ? n.on(\"selectstart.drag\", at, bt) : (t.__noselect = t.style.MozUserSelect, t.style.MozUserSelect = \"none\");\n}\nfunction qi(e, t) {\n var n = e.document.documentElement, o = we(e).on(\"dragstart.drag\", null);\n t && (o.on(\"click.drag\", at, bt), setTimeout(function() {\n o.on(\"click.drag\", null);\n }, 0)), \"onselectstart\" in n ? o.on(\"selectstart.drag\", null) : (n.style.MozUserSelect = n.__noselect, delete n.__noselect);\n}\nconst Pt = (e) => () => e;\nfunction Un(e, {\n sourceEvent: t,\n subject: n,\n target: o,\n identifier: i,\n active: r,\n x: a,\n y: s,\n dx: l,\n dy: u,\n dispatch: c\n}) {\n Object.defineProperties(this, {\n type: { value: e, enumerable: !0, configurable: !0 },\n sourceEvent: { value: t, enumerable: !0, configurable: !0 },\n subject: { value: n, enumerable: !0, configurable: !0 },\n target: { value: o, enumerable: !0, configurable: !0 },\n identifier: { value: i, enumerable: !0, configurable: !0 },\n active: { value: r, enumerable: !0, configurable: !0 },\n x: { value: a, enumerable: !0, configurable: !0 },\n y: { value: s, enumerable: !0, configurable: !0 },\n dx: { value: l, enumerable: !0, configurable: !0 },\n dy: { value: u, enumerable: !0, configurable: !0 },\n _: { value: c }\n });\n}\nUn.prototype.on = function() {\n var e = this._.on.apply(this._, arguments);\n return e === this._ ? this : e;\n};\nfunction bl(e) {\n return !e.ctrlKey && !e.button;\n}\nfunction El() {\n return this.parentNode;\n}\nfunction Sl(e, t) {\n return t ?? { x: e.x, y: e.y };\n}\nfunction Nl() {\n return navigator.maxTouchPoints || \"ontouchstart\" in this;\n}\nfunction Cl() {\n var e = bl, t = El, n = Sl, o = Nl, i = {}, r = fn(\"start\", \"drag\", \"end\"), a = 0, s, l, u, c, v = 0;\n function g(p) {\n p.on(\"mousedown.drag\", x).filter(o).on(\"touchstart.drag\", w).on(\"touchmove.drag\", y, wl).on(\"touchend.drag touchcancel.drag\", S).style(\"touch-action\", \"none\").style(\"-webkit-tap-highlight-color\", \"rgba(0,0,0,0)\");\n }\n function x(p, N) {\n if (!(c || !e.call(this, p, N))) {\n var T = V(this, t.call(this, p, N), p, N, \"mouse\");\n T && (we(p.view).on(\"mousemove.drag\", h, bt).on(\"mouseup.drag\", d, bt), Ki(p.view), $n(p), u = !1, s = p.clientX, l = p.clientY, T(\"start\", p));\n }\n }\n function h(p) {\n if (at(p), !u) {\n var N = p.clientX - s, T = p.clientY - l;\n u = N * N + T * T > v;\n }\n i.mouse(\"drag\", p);\n }\n function d(p) {\n we(p.view).on(\"mousemove.drag mouseup.drag\", null), qi(p.view, u), at(p), i.mouse(\"end\", p);\n }\n function w(p, N) {\n if (e.call(this, p, N)) {\n var T = p.changedTouches, _ = t.call(this, p, N), P = T.length, R, $;\n for (R = 0; R < P; ++R)\n ($ = V(this, _, p, N, T[R].identifier, T[R])) && ($n(p), $(\"start\", p, T[R]));\n }\n }\n function y(p) {\n var N = p.changedTouches, T = N.length, _, P;\n for (_ = 0; _ < T; ++_)\n (P = i[N[_].identifier]) && (at(p), P(\"drag\", p, N[_]));\n }\n function S(p) {\n var N = p.changedTouches, T = N.length, _, P;\n for (c && clearTimeout(c), c = setTimeout(function() {\n c = null;\n }, 500), _ = 0; _ < T; ++_)\n (P = i[N[_].identifier]) && ($n(p), P(\"end\", p, N[_]));\n }\n function V(p, N, T, _, P, R) {\n var $ = r.copy(), D = Ne(R || T, N), Q, ee, m;\n if ((m = n.call(p, new Un(\"beforestart\", {\n sourceEvent: T,\n target: g,\n identifier: P,\n active: a,\n x: D[0],\n y: D[1],\n dx: 0,\n dy: 0,\n dispatch: $\n }), _)) != null)\n return Q = m.x - D[0] || 0, ee = m.y - D[1] || 0, function A(E, G, Z) {\n var K = D, z;\n switch (E) {\n case \"start\":\n i[P] = A, z = a++;\n break;\n case \"end\":\n delete i[P], --a;\n case \"drag\":\n D = Ne(Z || G, N), z = a;\n break;\n }\n $.call(\n E,\n p,\n new Un(E, {\n sourceEvent: G,\n subject: m,\n target: g,\n identifier: P,\n active: z,\n x: D[0] + Q,\n y: D[1] + ee,\n dx: D[0] - K[0],\n dy: D[1] - K[1],\n dispatch: $\n }),\n _\n );\n };\n }\n return g.filter = function(p) {\n return arguments.length ? (e = typeof p == \"function\" ? p : Pt(!!p), g) : e;\n }, g.container = function(p) {\n return arguments.length ? (t = typeof p == \"function\" ? p : Pt(p), g) : t;\n }, g.subject = function(p) {\n return arguments.length ? (n = typeof p == \"function\" ? p : Pt(p), g) : n;\n }, g.touchable = function(p) {\n return arguments.length ? (o = typeof p == \"function\" ? p : Pt(!!p), g) : o;\n }, g.on = function() {\n var p = r.on.apply(r, arguments);\n return p === r ? g : p;\n }, g.clickDistance = function(p) {\n return arguments.length ? (v = (p = +p) * p, g) : Math.sqrt(v);\n }, g;\n}\nfunction ji(e) {\n const t = fe(), n = M(t, \"vueFlowRef\"), o = M(t, \"snapToGrid\"), i = M(t, \"snapGrid\"), r = M(t, \"noDragClassName\"), a = M(t, \"nodes\"), s = M(t, \"nodeExtent\"), l = M(t, \"viewport\"), u = M(t, \"autoPanOnNodeDrag\"), c = M(t, \"nodesDraggable\"), v = M(t, \"panBy\"), g = M(t, \"findNode\"), x = M(t, \"multiSelectionActive\"), h = M(t, \"nodesSelectionActive\"), d = M(t, \"selectNodesOnDrag\"), w = M(t, \"removeSelectedElements\"), y = M(t, \"addSelectedNodes\"), S = M(t, \"updateNodePositions\"), V = M(t, \"emits\"), { onStart: p, onDrag: N, onStop: T, el: _, disabled: P, id: R, selectable: $ } = e, D = ie(!1);\n let Q = ie([]), ee = ie(), m = ie(null), A = ie({ x: void 0, y: void 0 }), E = ie({ x: 0, y: 0 }), G = ie(null), Z = ie(0), K = ie(!1);\n const z = Ra(), W = ({ x: q, y: te }) => {\n A.value = { x: q, y: te };\n let re = !1;\n if (Q.value = Q.value.map((k) => {\n const H = { x: q - k.distance.x, y: te - k.distance.y };\n o.value && (H.x = i.value[0] * Math.round(H.x / i.value[0]), H.y = i.value[1] * Math.round(H.y / i.value[1]));\n const { computedPosition: f } = go(\n k,\n H,\n V.value.error,\n s.value,\n k.parentNode ? g.value(k.parentNode) : void 0\n );\n return re = re || k.position.x !== f.x || k.position.y !== f.y, k.position = f, k;\n }), !!re && (S.value(Q.value, !0, !0), D.value = !0, G.value)) {\n const [k, H] = Mn({\n id: R,\n dragItems: Q.value,\n findNode: g.value\n });\n N({ event: G.value, node: k, nodes: H });\n }\n }, B = () => {\n if (!m.value)\n return;\n const [q, te] = Pi(E.value, m.value);\n if (q !== 0 || te !== 0) {\n const re = {\n x: (A.value.x ?? 0) - q / l.value.zoom,\n y: (A.value.y ?? 0) - te / l.value.zoom\n };\n v.value({ x: q, y: te }) && W(re);\n }\n Z.value = requestAnimationFrame(B);\n };\n return de([() => le(P), _], ([q, te]) => {\n if (te) {\n const re = we(te);\n if (q)\n re.on(\".drag\", null);\n else {\n const k = g.value(R);\n ee.value = Cl().on(\"start\", (H) => {\n var b;\n !d.value && !x.value && k && (k.selected || w.value()), k && le($) && d.value && Xn(\n k,\n x.value,\n y.value,\n w.value,\n h,\n !1,\n te\n );\n const f = z(H);\n if (A.value = f, Q.value = Pa(a.value, c.value, f, g.value, R), Q.value.length) {\n const [L, I] = Mn({\n id: R,\n dragItems: Q.value,\n findNode: g.value\n });\n p({ event: H.sourceEvent, node: L, nodes: I });\n }\n m.value = ((b = n.value) == null ? void 0 : b.getBoundingClientRect()) || null, E.value = rt(H.sourceEvent, m.value);\n }).on(\"drag\", (H) => {\n const f = z(H);\n !K.value && u.value && (K.value = !0, B()), (A.value.x !== f.xSnapped || A.value.y !== f.ySnapped) && Q.value.length && (G.value = H.sourceEvent, E.value = rt(H.sourceEvent, m.value), W(f));\n }).on(\"end\", (H) => {\n if (D.value = !1, K.value = !1, cancelAnimationFrame(Z.value), Q.value.length) {\n S.value(Q.value, !1, !1);\n const [f, b] = Mn({\n id: R,\n dragItems: Q.value,\n findNode: g.value\n });\n T({ event: H.sourceEvent, node: f, nodes: b });\n }\n }).filter((H) => {\n const f = H.target;\n return !H.button && (!r.value || !Ho(f, `.${r.value}`, te) && (!(k != null && k.dragHandle) || Ho(f, k.dragHandle, te)));\n }), re.call(ee.value);\n }\n }\n }), D;\n}\nconst Qi = \"vue-flow__node-desc\", Ji = \"vue-flow__edge-desc\", Ml = \"vue-flow__aria-live\", er = [\"Enter\", \" \", \"Escape\"], st = {\n ArrowUp: { x: 0, y: -1 },\n ArrowDown: { x: 0, y: 1 },\n ArrowLeft: { x: -1, y: 0 },\n ArrowRight: { x: 1, y: 0 }\n};\nfunction Wn(e) {\n var i, r;\n const t = ((r = (i = e.composedPath) == null ? void 0 : i.call(e)) == null ? void 0 : r[0]) || e.target, n = Ae(t.hasAttribute) ? t.hasAttribute(\"contenteditable\") : !1, o = Ae(t.closest) ? t.closest(\".nokey\") : null;\n return [\"INPUT\", \"SELECT\", \"TEXTAREA\"].includes(t == null ? void 0 : t.nodeName) || n || !!o;\n}\nfunction $l(e) {\n return e.ctrlKey || e.metaKey || e.shiftKey;\n}\nfunction kl(e, t) {\n return (n) => e.some((o) => {\n const i = o.split(\"+\").map((r) => r.trim().toLowerCase());\n return i.length === 1 ? n.key === o : (t.add(n.key.toLowerCase()), i.every((r) => t.has(r)));\n });\n}\nconst _t = (e, t) => {\n const n = ao(), o = ie(le(e) === !0), i = ie(!1), r = ie(/* @__PURE__ */ new Set());\n return de(o, () => {\n t == null || t(o.value);\n }), de(\n () => le(e),\n (a) => {\n if (n && typeof n.addEventListener < \"u\" && ro(n, \"blur\", () => {\n o.value = !1;\n }), zr(a)) {\n o.value = a;\n return;\n }\n Array.isArray(a) && (a = kl(a, r.value)), a && (Mo(\n a,\n (s) => {\n i.value = $l(s), !(!i.value && Wn(s)) && (s.preventDefault(), o.value = !0);\n },\n { eventName: \"keydown\" }\n ), Mo(\n a,\n (s) => {\n if (o.value) {\n if (!i.value && Wn(s))\n return;\n i.value = !1, r.value.clear(), o.value = !1;\n }\n },\n { eventName: \"keyup\" }\n ));\n },\n {\n immediate: !0\n }\n ), o;\n}, Ol = ge({\n name: \"Node\",\n compatConfig: { MODE: 3 },\n props: [\"name\", \"type\", \"id\", \"draggable\", \"selectable\", \"focusable\", \"connectable\", \"node\", \"resizeObserver\"],\n setup(e) {\n ut($i, e.id);\n const t = fe(), n = M(t, \"id\"), o = M(t, \"edges\"), i = M(t, \"noPanClassName\"), r = M(t, \"selectNodesOnDrag\"), a = M(t, \"nodesSelectionActive\"), s = M(t, \"multiSelectionActive\"), l = M(t, \"emits\"), u = M(t, \"findNode\"), c = M(t, \"removeSelectedNodes\"), v = M(t, \"addSelectedNodes\"), g = M(t, \"updateNodeDimensions\"), x = M(t, \"onUpdateNodeInternals\"), h = M(t, \"getIntersectingNodes\"), d = M(t, \"getNodeTypes\"), w = M(t, \"nodeExtent\"), y = M(t, \"elevateNodesOnSelect\"), S = M(t, \"disableKeyboardA11y\"), V = M(t, \"ariaLiveMessage\"), p = M(t, \"snapToGrid\"), N = M(t, \"snapGrid\"), T = Ai(), _ = yt(e, \"node\"), P = J(() => u.value(_.value.parentNode)), R = J(() => sn([_.value], o.value)), $ = ie();\n ut(ki, $);\n const { emit: D, on: Q } = Ba(_.value, l.value), ee = ji({\n id: e.id,\n el: $,\n disabled: () => !e.draggable,\n selectable: () => e.selectable,\n onStart(k) {\n D.dragStart({ ...k, intersections: h.value(_.value) });\n },\n onDrag(k) {\n D.drag({ ...k, intersections: h.value(_.value) });\n },\n onStop(k) {\n D.dragStop({ ...k, intersections: h.value(_.value) });\n }\n }), m = J(() => _.value.class instanceof Function ? _.value.class(_.value) : _.value.class), A = J(() => {\n const k = (_.value.style instanceof Function ? _.value.style(_.value) : _.value.style) || {}, H = _.value.width instanceof Function ? _.value.width(_.value) : _.value.width, f = _.value.height instanceof Function ? _.value.height(_.value) : _.value.height;\n return H && (k.width = typeof H == \"string\" ? H : `${H}px`), f && (k.height = typeof f == \"string\" ? f : `${f}px`), k;\n }), E = () => Number(_.value.zIndex ?? A.value.zIndex ?? 0);\n return x.value((k) => {\n k.includes(e.id) && Z();\n }), Ve(() => {\n e.resizeObserver.observe($.value);\n }), gi(() => {\n e.resizeObserver.unobserve($.value);\n }), de(\n [() => _.value.type, () => _.value.sourcePosition, () => _.value.targetPosition],\n () => {\n g.value([{ id: e.id, nodeElement: $.value, forceUpdate: !0 }]);\n },\n { flush: \"pre\" }\n ), de(\n [\n () => _.value.position.x,\n () => _.value.position.y,\n () => {\n var k;\n return (k = P.value) == null ? void 0 : k.computedPosition.x;\n },\n () => {\n var k;\n return (k = P.value) == null ? void 0 : k.computedPosition.y;\n },\n () => {\n var k;\n return (k = P.value) == null ? void 0 : k.computedPosition.z;\n },\n () => E(),\n () => _.value.selected,\n () => _.value.dimensions.height,\n () => _.value.dimensions.width,\n () => {\n var k;\n return (k = P.value) == null ? void 0 : k.dimensions.height;\n },\n () => {\n var k;\n return (k = P.value) == null ? void 0 : k.dimensions.width;\n }\n ],\n ([k, H, f, b, L, I]) => {\n const F = {\n x: k,\n y: H,\n z: I + (y.value && _.value.selected ? 1e3 : 0)\n };\n Ie(f) && Ie(b) ? _.value.computedPosition = ma({ x: f, y: b, z: L }, F) : _.value.computedPosition = F;\n },\n { flush: \"pre\", immediate: !0 }\n ), de([() => _.value.extent, () => w.value], ([k, H], [f, b]) => {\n (k !== f || H !== b) && G();\n }), _.value.extent === \"parent\" || typeof _.value.extent == \"object\" && \"range\" in _.value.extent && _.value.extent.range === \"parent\" ? ye(() => _.value.initialized).toBe(!0).then(G) : G(), () => ue(\n \"div\",\n {\n ref: $,\n \"data-id\": _.value.id,\n class: [\n \"vue-flow__node\",\n `vue-flow__node-${e.type === !1 ? \"default\" : e.name}`,\n {\n [i.value]: e.draggable,\n dragging: ee == null ? void 0 : ee.value,\n selected: _.value.selected,\n selectable: e.selectable\n },\n m.value\n ],\n style: {\n zIndex: _.value.computedPosition.z ?? E(),\n transform: `translate(${_.value.computedPosition.x}px,${_.value.computedPosition.y}px)`,\n pointerEvents: e.selectable || e.draggable ? \"all\" : \"none\",\n visibility: _.value.initialized ? \"visible\" : \"hidden\",\n ...A.value\n },\n tabIndex: e.focusable ? 0 : void 0,\n role: e.focusable ? \"button\" : void 0,\n \"aria-describedby\": S.value ? void 0 : `${Qi}-${n.value}`,\n \"aria-label\": _.value.ariaLabel,\n onMouseenter: K,\n onMousemove: z,\n onMouseleave: W,\n onContextmenu: B,\n onClick: te,\n onDblclick: q,\n onKeydown: re\n },\n [\n ue(e.type === !1 ? d.value.default : e.type, {\n id: _.value.id,\n type: _.value.type,\n data: _.value.data,\n events: { ..._.value.events, ...Q },\n selected: !!_.value.selected,\n resizing: !!_.value.resizing,\n dragging: ee.value,\n connectable: e.connectable,\n position: _.value.position,\n dimensions: _.value.dimensions,\n isValidTargetPos: _.value.isValidTargetPos,\n isValidSourcePos: _.value.isValidSourcePos,\n parent: _.value.parentNode,\n zIndex: _.value.computedPosition.z,\n targetPosition: _.value.targetPosition,\n sourcePosition: _.value.sourcePosition,\n label: _.value.label,\n dragHandle: _.value.dragHandle,\n onUpdateNodeInternals: Z\n })\n ]\n );\n function G() {\n const k = _.value.computedPosition;\n p.value && (k.x = N.value[0] * Math.round(k.x / N.value[0]), k.y = N.value[1] * Math.round(k.y / N.value[1]));\n const { computedPosition: H, position: f } = go(_.value, k, l.value.error, w.value, P.value);\n (_.value.computedPosition.x !== H.x || _.value.computedPosition.y !== H.y) && (_.value.computedPosition = { ..._.value.computedPosition, ...H }), (_.value.position.x !== f.x || _.value.position.y !== f.y) && (_.value.position = f);\n }\n function Z() {\n $.value && g.value([{ id: e.id, nodeElement: $.value, forceUpdate: !0 }]);\n }\n function K(k) {\n ee != null && ee.value || D.mouseEnter({ event: k, node: _.value, connectedEdges: R.value });\n }\n function z(k) {\n ee != null && ee.value || D.mouseMove({ event: k, node: _.value, connectedEdges: R.value });\n }\n function W(k) {\n ee != null && ee.value || D.mouseLeave({ event: k, node: _.value, connectedEdges: R.value });\n }\n function B(k) {\n return D.contextMenu({ event: k, node: _.value, connectedEdges: R.value });\n }\n function q(k) {\n return D.doubleClick({ event: k, node: _.value, connectedEdges: R.value });\n }\n function te(k) {\n e.selectable && (!r.value || !e.draggable) && Xn(\n _.value,\n s.value,\n v.value,\n c.value,\n a,\n !1,\n $.value\n ), D.click({ event: k, node: _.value, connectedEdges: R.value });\n }\n function re(k) {\n var H;\n if (!Wn(k))\n if (er.includes(k.key) && e.selectable) {\n const f = k.key === \"Escape\";\n f && ((H = $.value) == null || H.blur()), Xn(\n _.value,\n s.value,\n v.value,\n c.value,\n a,\n f,\n $.value\n );\n } else\n !S.value && e.draggable && _.value.selected && st[k.key] && (V.value = `Moved selected node ${k.key.replace(\"Arrow\", \"\").toLowerCase()}. New position, x: ${~~_.value.position.x}, y: ${~~_.value.position.y}`, T(\n {\n x: st[k.key].x,\n y: st[k.key].y\n },\n k.shiftKey\n ));\n }\n }\n}), Tl = Ol, Il = [\"transform\"], Pl = [\"width\", \"height\", \"x\", \"y\", \"rx\", \"ry\"], Dl = [\"y\"], zl = {\n name: \"EdgeText\",\n compatConfig: { MODE: 3 }\n}, Al = /* @__PURE__ */ ge({\n ...zl,\n props: {\n x: null,\n y: null,\n label: null,\n labelStyle: { default: {} },\n labelShowBg: { type: Boolean, default: !0 },\n labelBgStyle: { default: {} },\n labelBgPadding: { default: [2, 4] },\n labelBgBorderRadius: { default: 2 }\n },\n setup(e) {\n let t = ie({ x: 0, y: 0, width: 0, height: 0 });\n const n = ie(null), o = J(() => `translate(${e.x - t.value.width / 2} ${e.y - t.value.height / 2})`);\n Ve(i), de([() => e.x, () => e.y, n, () => e.label], i);\n function i() {\n if (!n.value)\n return;\n const r = n.value.getBBox();\n (r.width !== t.value.width || r.height !== t.value.height) && (t.value = r);\n }\n return (r, a) => (oe(), se(\"g\", {\n transform: C(o),\n class: \"vue-flow__edge-textwrapper\"\n }, [\n e.labelShowBg ? (oe(), se(\"rect\", {\n key: 0,\n class: \"vue-flow__edge-textbg\",\n width: `${C(t).width + 2 * e.labelBgPadding[0]}px`,\n height: `${C(t).height + 2 * e.labelBgPadding[1]}px`,\n x: -e.labelBgPadding[0],\n y: -e.labelBgPadding[1],\n style: Le(e.labelBgStyle),\n rx: e.labelBgBorderRadius,\n ry: e.labelBgBorderRadius\n }, null, 12, Pl)) : Ee(\"\", !0),\n ct(\"text\", vi(r.$attrs, {\n ref_key: \"el\",\n ref: n,\n class: \"vue-flow__edge-text\",\n y: C(t).height / 2,\n dy: \"0.3em\",\n style: e.labelStyle\n }), [\n xe(r.$slots, \"default\", {}, () => [\n C(Pe)(e.label) ? (oe(), se(Ce, { key: 1 }, [\n Cr(Vn(e.label), 1)\n ], 64)) : (oe(), ze(mi(e.label), { key: 0 }))\n ])\n ], 16, Dl)\n ], 8, Il));\n }\n}), gn = function({\n path: e,\n label: t,\n labelX: n,\n labelY: o,\n labelBgBorderRadius: i,\n labelBgPadding: r,\n labelBgStyle: a,\n labelShowBg: s = !0,\n labelStyle: l,\n markerStart: u,\n markerEnd: c,\n interactionWidth: v = 20\n}, { attrs: g }) {\n return [\n ue(\"path\", {\n style: g.style,\n class: [\"vue-flow__edge-path\", g.class].join(\" \"),\n d: e,\n \"marker-end\": c,\n \"marker-start\": u\n }),\n v ? ue(\"path\", {\n d: e,\n fill: \"none\",\n \"stroke-opacity\": 0,\n \"stroke-width\": v\n }) : null,\n t && Ie(n) && Ie(o) ? ue(Al, {\n x: n,\n y: o,\n label: t,\n labelStyle: l,\n labelShowBg: s,\n labelBgStyle: a,\n labelBgPadding: r,\n labelBgBorderRadius: i\n }) : null\n ];\n};\ngn.props = [\n \"path\",\n \"labelX\",\n \"labelY\",\n \"label\",\n \"labelBgBorderRadius\",\n \"labelBgPadding\",\n \"labelBgStyle\",\n \"labelShowBg\",\n \"labelStyle\",\n \"markerStart\",\n \"markerEnd\",\n \"interactionWidth\"\n];\ngn.inheritAttrs = !1;\ngn.compatConfig = { MODE: 3 };\nconst vn = gn;\nfunction tr({\n sourceX: e,\n sourceY: t,\n targetX: n,\n targetY: o\n}) {\n const i = Math.abs(n - e) / 2, r = n < e ? n + i : n - i, a = Math.abs(o - t) / 2, s = o < t ? o + a : o - a;\n return [r, s, i, a];\n}\nfunction nr({\n sourceX: e,\n sourceY: t,\n targetX: n,\n targetY: o,\n sourceControlX: i,\n sourceControlY: r,\n targetControlX: a,\n targetControlY: s\n}) {\n const l = e * 0.125 + i * 0.375 + a * 0.375 + n * 0.125, u = t * 0.125 + r * 0.375 + s * 0.375 + o * 0.125, c = Math.abs(l - e), v = Math.abs(u - t);\n return [l, u, c, v];\n}\nfunction Dt(e, t) {\n return e >= 0 ? 0.5 * e : t * 25 * Math.sqrt(-e);\n}\nfunction Yo({ pos: e, x1: t, y1: n, x2: o, y2: i, c: r }) {\n let a, s;\n switch (e) {\n case j.Left:\n a = t - Dt(t - o, r), s = n;\n break;\n case j.Right:\n a = t + Dt(o - t, r), s = n;\n break;\n case j.Top:\n a = t, s = n - Dt(n - i, r);\n break;\n case j.Bottom:\n a = t, s = n + Dt(i - n, r);\n break;\n }\n return [a, s];\n}\nfunction Kn({\n sourceX: e,\n sourceY: t,\n sourcePosition: n = j.Bottom,\n targetX: o,\n targetY: i,\n targetPosition: r = j.Top,\n curvature: a = 0.25\n}) {\n const [s, l] = Yo({\n pos: n,\n x1: e,\n y1: t,\n x2: o,\n y2: i,\n c: a\n }), [u, c] = Yo({\n pos: r,\n x1: o,\n y1: i,\n x2: e,\n y2: t,\n c: a\n }), [v, g, x, h] = nr({\n sourceX: e,\n sourceY: t,\n targetX: o,\n targetY: i,\n sourceControlX: s,\n sourceControlY: l,\n targetControlX: u,\n targetControlY: c\n });\n return [\n `M${e},${t} C${s},${l} ${u},${c} ${o},${i}`,\n v,\n g,\n x,\n h\n ];\n}\nconst mn = function({ sourcePosition: e = j.Bottom, targetPosition: t = j.Top, ...n }, { attrs: o }) {\n const [i, r, a] = Kn({\n sourcePosition: e,\n targetPosition: t,\n ...n\n });\n return ue(vn, {\n path: i,\n labelX: r,\n labelY: a,\n ...n,\n ...o\n });\n};\nmn.props = [\n \"sourcePosition\",\n \"targetPosition\",\n \"label\",\n \"labelStyle\",\n \"labelShowBg\",\n \"labelBgStyle\",\n \"labelBgPadding\",\n \"labelBgBorderRadius\",\n \"sourceY\",\n \"sourceX\",\n \"targetX\",\n \"targetY\",\n \"curvature\",\n \"markerEnd\",\n \"markerStart\",\n \"interactionWidth\"\n];\nmn.inheritAttrs = !1;\nmn.compatConfig = { MODE: 3 };\nconst Bl = mn;\nfunction Xo({ pos: e, x1: t, y1: n, x2: o, y2: i }) {\n let r, a;\n switch (e) {\n case j.Left:\n case j.Right:\n r = 0.5 * (t + o), a = n;\n break;\n case j.Top:\n case j.Bottom:\n r = t, a = 0.5 * (n + i);\n break;\n }\n return [r, a];\n}\nfunction or({\n sourceX: e,\n sourceY: t,\n sourcePosition: n = j.Bottom,\n targetX: o,\n targetY: i,\n targetPosition: r = j.Top\n}) {\n const [a, s] = Xo({\n pos: n,\n x1: e,\n y1: t,\n x2: o,\n y2: i\n }), [l, u] = Xo({\n pos: r,\n x1: o,\n y1: i,\n x2: e,\n y2: t\n }), [c, v, g, x] = nr({\n sourceX: e,\n sourceY: t,\n targetX: o,\n targetY: i,\n sourceControlX: a,\n sourceControlY: s,\n targetControlX: l,\n targetControlY: u\n });\n return [\n `M${e},${t} C${a},${s} ${l},${u} ${o},${i}`,\n c,\n v,\n g,\n x\n ];\n}\nconst pn = function({ sourcePosition: e = j.Bottom, targetPosition: t = j.Top, ...n }, { attrs: o }) {\n const [i, r, a] = or({\n sourcePosition: e,\n targetPosition: t,\n ...n\n });\n return ue(vn, {\n path: i,\n labelX: r,\n labelY: a,\n ...n,\n ...o\n });\n};\npn.props = [\n \"sourcePosition\",\n \"targetPosition\",\n \"label\",\n \"labelStyle\",\n \"labelShowBg\",\n \"labelBgStyle\",\n \"labelBgPadding\",\n \"labelBgBorderRadius\",\n \"sourceY\",\n \"sourceX\",\n \"targetX\",\n \"targetY\",\n \"markerEnd\",\n \"markerStart\",\n \"interactionWidth\"\n];\npn.inheritAttrs = !1;\npn.compatConfig = { MODE: 3 };\nconst Rl = pn, Zo = {\n [j.Left]: { x: -1, y: 0 },\n [j.Right]: { x: 1, y: 0 },\n [j.Top]: { x: 0, y: -1 },\n [j.Bottom]: { x: 0, y: 1 }\n};\nfunction Vl({\n source: e,\n sourcePosition: t = j.Bottom,\n target: n\n}) {\n return t === j.Left || t === j.Right ? e.x < n.x ? { x: 1, y: 0 } : { x: -1, y: 0 } : e.y < n.y ? { x: 0, y: 1 } : { x: 0, y: -1 };\n}\nfunction Uo(e, t) {\n return Math.sqrt((t.x - e.x) ** 2 + (t.y - e.y) ** 2);\n}\nfunction Hl({\n source: e,\n sourcePosition: t = j.Bottom,\n target: n,\n targetPosition: o = j.Top,\n center: i,\n offset: r\n}) {\n const a = Zo[t], s = Zo[o], l = { x: e.x + a.x * r, y: e.y + a.y * r }, u = { x: n.x + s.x * r, y: n.y + s.y * r }, c = Vl({\n source: l,\n sourcePosition: t,\n target: u\n }), v = c.x !== 0 ? \"x\" : \"y\", g = c[v];\n let x, h, d;\n const [w, y, S, V] = tr({\n sourceX: e.x,\n sourceY: e.y,\n targetX: n.x,\n targetY: n.y\n });\n if (a[v] * s[v] === -1) {\n h = i.x || w, d = i.y || y;\n const N = [\n { x: h, y: l.y },\n { x: h, y: u.y }\n ], T = [\n { x: l.x, y: d },\n { x: u.x, y: d }\n ];\n a[v] === g ? x = v === \"x\" ? N : T : x = v === \"x\" ? T : N;\n } else {\n const N = [{ x: l.x, y: u.y }], T = [{ x: u.x, y: l.y }];\n if (v === \"x\" ? x = a.x === g ? T : N : x = a.y === g ? N : T, t !== o) {\n const _ = v === \"x\" ? \"y\" : \"x\", P = a[v] === s[_], R = l[_] > u[_], $ = l[_] < u[_];\n (a[v] === 1 && (!P && R || P && $) || a[v] !== 1 && (!P && $ || P && R)) && (x = v === \"x\" ? N : T);\n }\n h = x[0].x, d = x[0].y;\n }\n return [[e, l, ...x, u, n], h, d, S, V];\n}\nfunction Ll(e, t, n, o) {\n const i = Math.min(Uo(e, t) / 2, Uo(t, n) / 2, o), { x: r, y: a } = t;\n if (e.x === r && r === n.x || e.y === a && a === n.y)\n return `L${r} ${a}`;\n if (e.y === a) {\n const u = e.x < n.x ? -1 : 1, c = e.y < n.y ? 1 : -1;\n return `L ${r + i * u},${a}Q ${r},${a} ${r},${a + i * c}`;\n }\n const s = e.x < n.x ? 1 : -1, l = e.y < n.y ? -1 : 1;\n return `L ${r},${a + i * l}Q ${r},${a} ${r + i * s},${a}`;\n}\nfunction qn({\n sourceX: e,\n sourceY: t,\n sourcePosition: n = j.Bottom,\n targetX: o,\n targetY: i,\n targetPosition: r = j.Top,\n borderRadius: a = 5,\n centerX: s,\n centerY: l,\n offset: u = 20\n}) {\n const [c, v, g, x, h] = Hl({\n source: { x: e, y: t },\n sourcePosition: n,\n target: { x: o, y: i },\n targetPosition: r,\n center: { x: s, y: l },\n offset: u\n });\n return [c.reduce((w, y, S) => {\n let V;\n return S > 0 && S < c.length - 1 ? V = Ll(c[S - 1], y, c[S + 1], a) : V = `${S === 0 ? \"M\" : \"L\"}${y.x} ${y.y}`, w += V, w;\n }, \"\"), v, g, x, h];\n}\nconst yn = function({ sourcePosition: e = j.Bottom, targetPosition: t = j.Top, ...n }, { attrs: o }) {\n const [i, r, a] = qn({\n sourcePosition: e,\n targetPosition: t,\n ...n\n });\n return ue(vn, {\n path: i,\n labelX: r,\n labelY: a,\n ...n,\n ...o\n });\n};\nyn.props = [\n \"sourcePosition\",\n \"targetPosition\",\n \"label\",\n \"labelStyle\",\n \"labelShowBg\",\n \"labelBgStyle\",\n \"labelBgPadding\",\n \"labelBgBorderRadius\",\n \"sourceY\",\n \"sourceX\",\n \"targetX\",\n \"targetY\",\n \"borderRadius\",\n \"markerEnd\",\n \"markerStart\",\n \"interactionWidth\",\n \"offset\"\n];\nyn.inheritAttrs = !1;\nyn.compatConfig = { MODE: 3 };\nconst ir = yn, xn = function(e, { attrs: t }) {\n return ue(ir, { ...e, ...t, borderRadius: 0 });\n};\nxn.props = [\n \"sourcePosition\",\n \"targetPosition\",\n \"label\",\n \"labelStyle\",\n \"labelShowBg\",\n \"labelBgStyle\",\n \"labelBgPadding\",\n \"labelBgBorderRadius\",\n \"sourceY\",\n \"sourceX\",\n \"targetX\",\n \"targetY\",\n \"markerEnd\",\n \"markerStart\",\n \"interactionWidth\"\n];\nxn.inheritAttrs = !1;\nxn.compatConfig = { MODE: 3 };\nconst Gl = xn;\nfunction rr({\n sourceX: e,\n sourceY: t,\n targetX: n,\n targetY: o\n}) {\n const [i, r, a, s] = tr({\n sourceX: e,\n sourceY: t,\n targetX: n,\n targetY: o\n });\n return [`M ${e},${t}L ${n},${o}`, i, r, a, s];\n}\nconst _n = function(e, { attrs: t }) {\n const [n, o, i] = rr(e);\n return ue(vn, {\n path: n,\n labelX: o,\n labelY: i,\n ...e,\n ...t\n });\n};\n_n.props = [\n \"label\",\n \"labelStyle\",\n \"labelShowBg\",\n \"labelBgStyle\",\n \"labelBgPadding\",\n \"labelBgBorderRadius\",\n \"sourceY\",\n \"sourceX\",\n \"targetX\",\n \"targetY\",\n \"markerEnd\",\n \"markerStart\",\n \"interactionWidth\"\n];\n_n.inheritAttrs = !1;\n_n.compatConfig = { MODE: 3 };\nconst Fl = _n;\nfunction Yl(e, t, n) {\n return n === j.Left ? e - t : n === j.Right ? e + t : e;\n}\nfunction Xl(e, t, n) {\n return n === j.Top ? e - t : n === j.Bottom ? e + t : e;\n}\nconst po = function({\n radius: e = 10,\n centerX: t = 0,\n centerY: n = 0,\n position: o = j.Top,\n type: i\n}) {\n return ue(\"circle\", {\n class: `vue-flow__edgeupdater vue-flow__edgeupdater-${i}`,\n cx: Yl(t, e, o),\n cy: Xl(n, e, o),\n r: e,\n stroke: \"transparent\",\n fill: \"transparent\"\n });\n};\npo.props = [\"radius\", \"centerX\", \"centerY\", \"position\", \"type\"];\npo.compatConfig = { MODE: 3 };\nconst Wo = po;\nfunction Zl() {\n return {\n doubleClick: X(),\n click: X(),\n mouseEnter: X(),\n mouseMove: X(),\n mouseLeave: X(),\n contextMenu: X(),\n updateStart: X(),\n update: X(),\n updateEnd: X()\n };\n}\nfunction Ul(e, t) {\n const n = Zl();\n return n.doubleClick.on((o) => {\n var i, r;\n t.edgeDoubleClick(o), (r = (i = e.events) == null ? void 0 : i.doubleClick) == null || r.call(i, o);\n }), n.click.on((o) => {\n var i, r;\n t.edgeClick(o), (r = (i = e.events) == null ? void 0 : i.click) == null || r.call(i, o);\n }), n.mouseEnter.on((o) => {\n var i, r;\n t.edgeMouseEnter(o), (r = (i = e.events) == null ? void 0 : i.mouseEnter) == null || r.call(i, o);\n }), n.mouseMove.on((o) => {\n var i, r;\n t.edgeMouseMove(o), (r = (i = e.events) == null ? void 0 : i.mouseMove) == null || r.call(i, o);\n }), n.mouseLeave.on((o) => {\n var i, r;\n t.edgeMouseLeave(o), (r = (i = e.events) == null ? void 0 : i.mouseLeave) == null || r.call(i, o);\n }), n.contextMenu.on((o) => {\n var i, r;\n t.edgeContextMenu(o), (r = (i = e.events) == null ? void 0 : i.contextMenu) == null || r.call(i, o);\n }), n.updateStart.on((o) => {\n var i, r;\n t.edgeUpdateStart(o), (r = (i = e.events) == null ? void 0 : i.updateStart) == null || r.call(i, o);\n }), n.update.on((o) => {\n var i, r;\n t.edgeUpdate(o), (r = (i = e.events) == null ? void 0 : i.update) == null || r.call(i, o);\n }), n.updateEnd.on((o) => {\n var i, r;\n t.edgeUpdateEnd(o), (r = (i = e.events) == null ? void 0 : i.updateEnd) == null || r.call(i, o);\n }), Object.entries(n).reduce(\n (o, [i, r]) => (o.emit[i] = r.trigger, o.on[i] = r.on, o),\n { emit: {}, on: {} }\n );\n}\nconst Wl = ge({\n name: \"Edge\",\n compatConfig: { MODE: 3 },\n props: [\"name\", \"type\", \"id\", \"updatable\", \"selectable\", \"focusable\", \"edge\"],\n setup(e) {\n const {\n id: t,\n addSelectedEdges: n,\n connectionMode: o,\n edgeUpdaterRadius: i,\n emits: r,\n nodesSelectionActive: a,\n noPanClassName: s,\n getEdgeTypes: l,\n removeSelectedEdges: u,\n findEdge: c,\n findNode: v,\n isValidConnection: g\n } = fe(), x = Ul(e.edge, r), h = yt(e, \"edge\");\n let d = ie(!1), w = ie(!1);\n const y = ie(\"\"), S = ie(null), V = ie(\"source\"), p = ie();\n ut(Oi, e.id), ut(Ti, p);\n const N = J(() => h.value.class instanceof Function ? h.value.class(h.value) : h.value.class), T = J(() => h.value.style instanceof Function ? h.value.style(h.value) : h.value.style), { handlePointerDown: _ } = Di({\n nodeId: y,\n handleId: S,\n type: V,\n isValidConnection: g.value,\n edgeUpdaterType: V,\n onEdgeUpdate: $,\n onEdgeUpdateEnd: D\n });\n return () => {\n const B = v(h.value.source), q = v(h.value.target);\n if (!B || !q || !h.value)\n return null;\n let te;\n o.value === Qe.Strict ? te = B.handleBounds.source : te = [...B.handleBounds.source || [], ...B.handleBounds.target || []];\n const re = Ao(te, h.value.sourceHandle);\n let k;\n o.value === Qe.Strict ? k = q.handleBounds.target : k = [...q.handleBounds.target || [], ...q.handleBounds.source || []];\n const H = Ao(k, h.value.targetHandle), f = re ? re.position : j.Bottom, b = H ? H.position : j.Top, { sourceX: L, sourceY: I, targetY: F, targetX: U } = wa(\n B,\n re,\n f,\n q,\n H,\n b\n );\n return h.value.sourceX = L, h.value.sourceY = I, h.value.targetX = U, h.value.targetY = F, ue(\n \"g\",\n {\n ref: p,\n key: e.id,\n \"data-id\": e.id,\n class: [\n \"vue-flow__edge\",\n `vue-flow__edge-${e.type === !1 ? \"default\" : e.name}`,\n s.value,\n N.value,\n {\n updating: d.value,\n selected: h.value.selected,\n animated: h.value.animated,\n inactive: !e.selectable\n }\n ],\n onClick: ee,\n onContextmenu: m,\n onDblclick: A,\n onMouseenter: E,\n onMousemove: G,\n onMouseleave: Z,\n onKeyDown: e.focusable ? W : void 0,\n tabIndex: e.focusable ? 0 : void 0,\n \"aria-label\": h.value.ariaLabel === null ? void 0 : h.value.ariaLabel || `Edge from ${h.value.source} to ${h.value.target}`,\n \"aria-describedby\": e.focusable ? `${Ji}-${t}` : void 0,\n role: e.focusable ? \"button\" : void 0\n },\n [\n w.value ? null : ue(e.type === !1 ? l.value.default : e.type, {\n id: e.id,\n sourceNode: B,\n targetNode: q,\n source: h.value.source,\n target: h.value.target,\n type: h.value.type,\n updatable: e.updatable,\n selected: h.value.selected,\n animated: h.value.animated,\n label: h.value.label,\n labelStyle: h.value.labelStyle,\n labelShowBg: h.value.labelShowBg,\n labelBgStyle: h.value.labelBgStyle,\n labelBgPadding: h.value.labelBgPadding,\n labelBgBorderRadius: h.value.labelBgBorderRadius,\n data: h.value.data,\n events: { ...h.value.events, ...x.on },\n style: T.value,\n markerStart: `url(#${Xe(h.value.markerStart, t)})`,\n markerEnd: `url(#${Xe(h.value.markerEnd, t)})`,\n sourcePosition: f,\n targetPosition: b,\n sourceX: L,\n sourceY: I,\n targetX: U,\n targetY: F,\n sourceHandleId: h.value.sourceHandle,\n targetHandleId: h.value.targetHandle,\n interactionWidth: h.value.interactionWidth\n }),\n [\n e.updatable === \"source\" || e.updatable === !0 ? [\n ue(\n \"g\",\n {\n onMousedown: K,\n onMouseenter: P,\n onMouseout: R\n },\n ue(Wo, {\n position: f,\n centerX: L,\n centerY: I,\n radius: i.value,\n type: \"source\",\n \"data-type\": \"source\"\n })\n )\n ] : null,\n e.updatable === \"target\" || e.updatable === !0 ? [\n ue(\n \"g\",\n {\n onMousedown: z,\n onMouseenter: P,\n onMouseout: R\n },\n ue(Wo, {\n position: b,\n centerX: U,\n centerY: F,\n radius: i.value,\n type: \"target\",\n \"data-type\": \"target\"\n })\n )\n ] : null\n ]\n ]\n );\n };\n function P() {\n d.value = !0;\n }\n function R() {\n d.value = !1;\n }\n function $(B, q) {\n x.emit.update({ event: B, edge: h.value, connection: q });\n }\n function D(B) {\n x.emit.updateEnd({ event: B, edge: h.value }), w.value = !1;\n }\n function Q(B, q) {\n B.button === 0 && (w.value = !0, y.value = q ? h.value.target : h.value.source, S.value = (q ? h.value.targetHandle : h.value.sourceHandle) ?? \"\", V.value = q ? \"target\" : \"source\", x.emit.updateStart({ event: B, edge: h.value }), _(B));\n }\n function ee(B) {\n const q = { event: B, edge: h.value };\n e.selectable && (a.value = !1, n([h.value])), x.emit.click(q);\n }\n function m(B) {\n x.emit.contextMenu({ event: B, edge: h.value });\n }\n function A(B) {\n x.emit.doubleClick({ event: B, edge: h.value });\n }\n function E(B) {\n x.emit.mouseEnter({ event: B, edge: h.value });\n }\n function G(B) {\n x.emit.mouseMove({ event: B, edge: h.value });\n }\n function Z(B) {\n x.emit.mouseLeave({ event: B, edge: h.value });\n }\n function K(B) {\n Q(B, !0);\n }\n function z(B) {\n Q(B, !1);\n }\n function W(B) {\n var q;\n er.includes(B.key) && e.selectable && (B.key === \"Escape\" ? ((q = p.value) == null || q.blur(), u([c(e.id)])) : n([c(e.id)]));\n }\n }\n}), Kl = Wl, ql = {\n height: \"0\",\n width: \"0\"\n}, jl = {\n name: \"EdgeLabelRenderer\",\n compatConfig: { MODE: 3 }\n}, Rd = /* @__PURE__ */ ge({\n ...jl,\n setup(e) {\n const { viewportRef: t } = fe(), n = J(() => {\n var o;\n return (o = t.value) == null ? void 0 : o.getElementsByClassName(\"vue-flow__edge-labels\")[0];\n });\n return (o, i) => (oe(), se(\"svg\", null, [\n (oe(), se(\"foreignObject\", ql, [\n (oe(), ze(Mr, {\n to: C(n),\n disabled: !C(n)\n }, [\n xe(o.$slots, \"default\")\n ], 8, [\"to\", \"disabled\"]))\n ]))\n ]));\n }\n}), Ql = { class: \"vue-flow__connection\" }, Jl = [\"d\", \"marker-end\", \"marker-start\"], eu = {\n name: \"ConnectionLine\",\n compatConfig: { MODE: 3 }\n}, tu = /* @__PURE__ */ ge({\n ...eu,\n props: {\n sourceNode: null\n },\n setup(e) {\n var R;\n const t = fe(), n = M(t, \"connectionMode\"), o = M(t, \"connectionStartHandle\"), i = M(t, \"connectionEndHandle\"), r = M(t, \"connectionPosition\"), a = M(t, \"connectionLineType\"), s = M(t, \"connectionLineStyle\"), l = M(t, \"connectionLineOptions\"), u = M(t, \"connectionStatus\"), c = M(t, \"viewport\"), v = M(t, \"findNode\"), g = {\n [j.Left]: j.Right,\n [j.Right]: j.Left,\n [j.Top]: j.Bottom,\n [j.Bottom]: j.Top\n }, x = (R = He(ln)) == null ? void 0 : R[\"connection-line\"], h = J(() => o.value.handleId), d = J(() => o.value.type), w = J(() => {\n var $;\n return (($ = i.value) == null ? void 0 : $.handleId) && v.value(i.value.nodeId) || null;\n }), y = J(\n () => {\n var $, D;\n return (n.value === Qe.Strict ? ($ = e.sourceNode.handleBounds[d.value]) == null ? void 0 : $.find((Q) => Q.id === h.value) : [...e.sourceNode.handleBounds.source || [], ...e.sourceNode.handleBounds.target || []].find((Q) => Q.id === h.value)) || ((D = e.sourceNode.handleBounds[d.value ?? \"source\"]) == null ? void 0 : D[0]);\n }\n ), S = J(() => {\n var $, D, Q;\n return w.value && (($ = i.value) == null ? void 0 : $.handleId) && ((n.value === Qe.Strict ? (D = w.value.handleBounds[d.value === \"source\" ? \"target\" : \"source\"]) == null ? void 0 : D.find(\n (ee) => {\n var m;\n return ee.id === ((m = i.value) == null ? void 0 : m.handleId);\n }\n ) : [...w.value.handleBounds.source || [], ...w.value.handleBounds.target || []].find(\n (ee) => {\n var m;\n return ee.id === ((m = i.value) == null ? void 0 : m.handleId);\n }\n )) || ((Q = w.value.handleBounds[d.value ?? \"target\"]) == null ? void 0 : Q[0])) || null;\n }), V = J(() => {\n var $;\n return ($ = y.value) == null ? void 0 : $.position;\n }), p = J(() => y.value ? Wt(\n V.value || j.Top,\n { ...e.sourceNode.dimensions, ...e.sourceNode.computedPosition },\n y.value\n ) : {\n x: e.sourceNode.dimensions.width / 2,\n y: e.sourceNode.dimensions.height / 2\n }), N = J(() => V.value ? g[V.value] : void 0), T = J(() => (r.value.x - c.value.x) / c.value.zoom), _ = J(() => (r.value.y - c.value.y) / c.value.zoom), P = J(() => {\n let $;\n const D = {\n sourceX: p.value.x,\n sourceY: p.value.y,\n sourcePosition: V.value,\n targetX: T.value,\n targetY: _.value,\n targetPosition: N.value\n };\n switch (a.value ?? l.value.type) {\n case Ye.Bezier:\n [$] = Kn(D);\n break;\n case Ye.Step:\n [$] = qn({\n ...D,\n borderRadius: 0\n });\n break;\n case Ye.SmoothStep:\n [$] = qn(D);\n break;\n case Ye.SimpleBezier:\n [$] = or(D);\n break;\n case Ye.Straight:\n [$] = rr(D);\n break;\n default:\n [$] = Kn(D);\n break;\n }\n return $;\n });\n return ($, D) => {\n var Q;\n return oe(), se(\"g\", Ql, [\n C(x) ? (oe(), ze(mi(C(x)), $r(vi({ key: 0 }, {\n sourceX: C(p).x,\n sourceY: C(p).y,\n sourcePosition: (Q = C(y)) == null ? void 0 : Q.position,\n targetX: C(T),\n targetY: C(_),\n targetPosition: C(N),\n sourceNode: e.sourceNode,\n sourceHandle: C(y),\n targetNode: C(w),\n targetHandle: C(S),\n markerEnd: `url(#${C(Xe)(C(l).markerEnd)})`,\n markerStart: `url(#${C(Xe)(C(l).markerStart)})`,\n connectionStatus: C(u)\n })), null, 16)) : (oe(), se(\"path\", {\n key: 1,\n d: C(P),\n class: Ke([\"vue-flow__connection-path\", [C(l).class, C(u)]]),\n style: Le(C(s) || C(l).style || {}),\n \"marker-end\": `url(#${C(Xe)(C(l).markerEnd)})`,\n \"marker-start\": `url(#${C(Xe)(C(l).markerStart)})`\n }, null, 14, Jl))\n ]);\n };\n }\n}), nu = [\"tabIndex\"], ou = {\n name: \"NodesSelection\",\n compatConfig: { MODE: 3 }\n}, iu = /* @__PURE__ */ ge({\n ...ou,\n setup(e) {\n const t = fe(), n = M(t, \"emits\"), o = M(t, \"viewport\"), i = M(t, \"getSelectedNodes\"), r = M(t, \"noPanClassName\"), a = M(t, \"disableKeyboardA11y\"), s = M(t, \"userSelectionActive\"), l = Ai(), u = ie(), c = ji({\n el: u,\n onStart(d) {\n n.value.selectionDragStart(d);\n },\n onDrag(d) {\n n.value.selectionDrag(d);\n },\n onStop(d) {\n n.value.selectionDragStop(d);\n }\n });\n Ve(() => {\n var d;\n a.value || (d = u.value) == null || d.focus({ preventScroll: !0 });\n });\n const v = J(() => co(i.value)), g = J(() => ({\n width: `${v.value.width}px`,\n height: `${v.value.height}px`,\n top: `${v.value.y}px`,\n left: `${v.value.x}px`\n }));\n function x(d) {\n n.value.selectionContextMenu({ event: d, nodes: i.value });\n }\n function h(d) {\n a.value || st[d.key] && l(\n {\n x: st[d.key].x,\n y: st[d.key].y\n },\n d.shiftKey\n );\n }\n return (d, w) => !C(s) && C(v).width && C(v).height ? (oe(), se(\"div\", {\n key: 0,\n class: Ke([\"vue-flow__nodesselection vue-flow__container\", C(r)]),\n style: Le({ transform: `translate(${C(o).x}px,${C(o).y}px) scale(${C(o).zoom})` })\n }, [\n ct(\"div\", {\n ref_key: \"el\",\n ref: u,\n class: Ke([{ dragging: C(c) }, \"vue-flow__nodesselection-rect\"]),\n style: Le(C(g)),\n tabIndex: C(a) ? void 0 : -1,\n onContextmenu: x,\n onKeydown: h\n }, null, 46, nu)\n ], 6)) : Ee(\"\", !0);\n }\n}), ru = {\n name: \"UserSelection\",\n compatConfig: { MODE: 3 }\n}, au = /* @__PURE__ */ ge({\n ...ru,\n setup(e) {\n const { userSelectionRect: t } = fe();\n return (n, o) => {\n var i, r, a, s;\n return oe(), se(\"div\", {\n class: \"vue-flow__selection vue-flow__container\",\n style: Le({\n width: `${(i = C(t)) == null ? void 0 : i.width}px`,\n height: `${(r = C(t)) == null ? void 0 : r.height}px`,\n transform: `translate(${(a = C(t)) == null ? void 0 : a.x}px, ${(s = C(t)) == null ? void 0 : s.y}px)`\n })\n }, null, 4);\n };\n }\n}), su = {\n input: Ta,\n default: Oa,\n output: Ia\n}, lu = {\n default: Bl,\n straight: Fl,\n step: Gl,\n smoothstep: ir,\n simplebezier: Rl\n};\nfunction uu() {\n return {\n vueFlowRef: null,\n viewportRef: null,\n nodes: [],\n edges: [],\n nodeTypes: {},\n edgeTypes: {},\n initialized: !1,\n dimensions: {\n width: 0,\n height: 0\n },\n viewport: { x: 0, y: 0, zoom: 1 },\n d3Zoom: null,\n d3Selection: null,\n d3ZoomHandler: null,\n minZoom: 0.5,\n maxZoom: 2,\n translateExtent: [\n [Number.NEGATIVE_INFINITY, Number.NEGATIVE_INFINITY],\n [Number.POSITIVE_INFINITY, Number.POSITIVE_INFINITY]\n ],\n nodeExtent: [\n [Number.NEGATIVE_INFINITY, Number.NEGATIVE_INFINITY],\n [Number.POSITIVE_INFINITY, Number.POSITIVE_INFINITY]\n ],\n selectionMode: fo.Full,\n paneDragging: !1,\n preventScrolling: !0,\n zoomOnScroll: !0,\n zoomOnPinch: !0,\n zoomOnDoubleClick: !0,\n panOnScroll: !1,\n panOnScrollSpeed: 0.5,\n panOnScrollMode: Ut.Free,\n panOnDrag: !0,\n edgeUpdaterRadius: 10,\n onlyRenderVisibleElements: !1,\n defaultViewport: { x: 0, y: 0, zoom: 1 },\n nodesSelectionActive: !1,\n userSelectionActive: !1,\n userSelectionRect: null,\n defaultMarkerColor: \"#b1b1b7\",\n connectionLineStyle: {},\n connectionLineType: null,\n connectionLineOptions: {\n type: Ye.Bezier,\n style: {}\n },\n connectionMode: Qe.Loose,\n connectionStartHandle: null,\n connectionEndHandle: null,\n connectionClickStartHandle: null,\n connectionPosition: { x: NaN, y: NaN },\n connectionRadius: 20,\n connectOnClick: !0,\n connectionStatus: null,\n isValidConnection: null,\n snapGrid: [15, 15],\n snapToGrid: !1,\n edgesUpdatable: !1,\n edgesFocusable: !0,\n nodesFocusable: !0,\n nodesConnectable: !0,\n nodesDraggable: !0,\n elementsSelectable: !0,\n selectNodesOnDrag: !0,\n multiSelectionActive: !1,\n selectionKeyCode: \"Shift\",\n multiSelectionKeyCode: \"Meta\",\n zoomActivationKeyCode: \"Meta\",\n deleteKeyCode: \"Backspace\",\n panActivationKeyCode: \"Space\",\n hooks: ca(),\n applyDefault: !0,\n autoConnect: !1,\n fitViewOnInit: !1,\n noDragClassName: \"nodrag\",\n noWheelClassName: \"nowheel\",\n noPanClassName: \"nopan\",\n defaultEdgeOptions: void 0,\n elevateEdgesOnSelect: !1,\n elevateNodesOnSelect: !0,\n autoPanOnNodeDrag: !0,\n autoPanOnConnect: !0,\n disableKeyboardA11y: !1,\n ariaLiveMessage: \"\",\n __experimentalFeatures: {\n nestedFlow: !1\n }\n };\n}\nfunction ar(e) {\n const t = uu();\n return e && Object.keys(e).forEach((n) => {\n const o = e[n];\n ce(o) && (t[n] = o);\n }), t;\n}\nfunction cu(e, t, n) {\n const o = J(() => (d) => e.nodes && !t.value.length ? e.nodes.find((w) => w.id === d) : e.nodes[t.value.indexOf(d)]), i = J(() => (d) => e.edges && !n.value.length ? e.edges.find((w) => w.id === d) : e.edges[n.value.indexOf(d)]), r = J(() => {\n var y;\n const d = {\n ...lu,\n ...e.edgeTypes\n }, w = Object.keys(d);\n return (y = e.edges) == null || y.forEach((S) => S.type && !w.includes(S.type) && (d[S.type] = S.type)), d;\n }), a = J(() => {\n var y;\n const d = {\n ...su,\n ...e.nodeTypes\n }, w = Object.keys(d);\n return (y = e.nodes) == null || y.forEach((S) => S.type && !w.includes(S.type) && (d[S.type] = S.type)), d;\n }), s = J(() => {\n const d = e.nodes.filter((w) => !w.hidden);\n return e.onlyRenderVisibleElements ? d && Ci(\n d,\n {\n x: 0,\n y: 0,\n width: e.dimensions.width,\n height: e.dimensions.height\n },\n e.viewport,\n !0\n ) : d ?? [];\n }), l = (d, w, y) => {\n if (w = w ?? o.value(d.source), y = y ?? o.value(d.target), !w || !y) {\n e.hooks.error.trigger(new ve(he.EDGE_ORPHANED, d.id));\n return;\n }\n return !d.hidden && !y.hidden && !w.hidden;\n }, u = J(() => e.onlyRenderVisibleElements ? e.edges.filter((d) => {\n const w = o.value(d.source), y = o.value(d.target);\n return l(d, w, y) && ba({\n sourcePos: w.computedPosition || { x: 0, y: 0 },\n targetPos: y.computedPosition || { x: 0, y: 0 },\n sourceWidth: w.dimensions.width,\n sourceHeight: w.dimensions.height,\n targetWidth: y.dimensions.width,\n targetHeight: y.dimensions.height,\n width: e.dimensions.width,\n height: e.dimensions.height,\n viewport: e.viewport\n });\n }) : e.edges.filter((d) => l(d))), c = J(() => [...s.value, ...u.value]), v = J(() => e.nodes.filter((d) => d.selected)), g = J(() => e.edges.filter((d) => d.selected)), x = J(() => [\n ...v.value ?? [],\n ...g.value ?? []\n ]), h = J(\n () => s.value.filter((d) => d.initialized && d.handleBounds !== void 0)\n );\n return {\n getNode: o,\n getEdge: i,\n getElements: c,\n getEdgeTypes: r,\n getNodeTypes: a,\n getEdges: u,\n getNodes: s,\n getSelectedElements: x,\n getSelectedNodes: v,\n getSelectedEdges: g,\n getNodesInitialized: h\n };\n}\nfunction yo(e, t, n) {\n e.prototype = t.prototype = n, n.constructor = e;\n}\nfunction sr(e, t) {\n var n = Object.create(e.prototype);\n for (var o in t)\n n[o] = t[o];\n return n;\n}\nfunction kt() {\n}\nvar Et = 0.7, jt = 1 / Et, lt = \"\\\\s*([+-]?\\\\d+)\\\\s*\", St = \"\\\\s*([+-]?(?:\\\\d*\\\\.)?\\\\d+(?:[eE][+-]?\\\\d+)?)\\\\s*\", Me = \"\\\\s*([+-]?(?:\\\\d*\\\\.)?\\\\d+(?:[eE][+-]?\\\\d+)?)%\\\\s*\", du = /^#([0-9a-f]{3,8})$/, fu = new RegExp(`^rgb\\\\(${lt},${lt},${lt}\\\\)$`), hu = new RegExp(`^rgb\\\\(${Me},${Me},${Me}\\\\)$`), gu = new RegExp(`^rgba\\\\(${lt},${lt},${lt},${St}\\\\)$`), vu = new RegExp(`^rgba\\\\(${Me},${Me},${Me},${St}\\\\)$`), mu = new RegExp(`^hsl\\\\(${St},${Me},${Me}\\\\)$`), pu = new RegExp(`^hsla\\\\(${St},${Me},${Me},${St}\\\\)$`), Ko = {\n aliceblue: 15792383,\n antiquewhite: 16444375,\n aqua: 65535,\n aquamarine: 8388564,\n azure: 15794175,\n beige: 16119260,\n bisque: 16770244,\n black: 0,\n blanchedalmond: 16772045,\n blue: 255,\n blueviolet: 9055202,\n brown: 10824234,\n burlywood: 14596231,\n cadetblue: 6266528,\n chartreuse: 8388352,\n chocolate: 13789470,\n coral: 16744272,\n cornflowerblue: 6591981,\n cornsilk: 16775388,\n crimson: 14423100,\n cyan: 65535,\n darkblue: 139,\n darkcyan: 35723,\n darkgoldenrod: 12092939,\n darkgray: 11119017,\n darkgreen: 25600,\n darkgrey: 11119017,\n darkkhaki: 12433259,\n darkmagenta: 9109643,\n darkolivegreen: 5597999,\n darkorange: 16747520,\n darkorchid: 10040012,\n darkred: 9109504,\n darksalmon: 15308410,\n darkseagreen: 9419919,\n darkslateblue: 4734347,\n darkslategray: 3100495,\n darkslategrey: 3100495,\n darkturquoise: 52945,\n darkviolet: 9699539,\n deeppink: 16716947,\n deepskyblue: 49151,\n dimgray: 6908265,\n dimgrey: 6908265,\n dodgerblue: 2003199,\n firebrick: 11674146,\n floralwhite: 16775920,\n forestgreen: 2263842,\n fuchsia: 16711935,\n gainsboro: 14474460,\n ghostwhite: 16316671,\n gold: 16766720,\n goldenrod: 14329120,\n gray: 8421504,\n green: 32768,\n greenyellow: 11403055,\n grey: 8421504,\n honeydew: 15794160,\n hotpink: 16738740,\n indianred: 13458524,\n indigo: 4915330,\n ivory: 16777200,\n khaki: 15787660,\n lavender: 15132410,\n lavenderblush: 16773365,\n lawngreen: 8190976,\n lemonchiffon: 16775885,\n lightblue: 11393254,\n lightcoral: 15761536,\n lightcyan: 14745599,\n lightgoldenrodyellow: 16448210,\n lightgray: 13882323,\n lightgreen: 9498256,\n lightgrey: 13882323,\n lightpink: 16758465,\n lightsalmon: 16752762,\n lightseagreen: 2142890,\n lightskyblue: 8900346,\n lightslategray: 7833753,\n lightslategrey: 7833753,\n lightsteelblue: 11584734,\n lightyellow: 16777184,\n lime: 65280,\n limegreen: 3329330,\n linen: 16445670,\n magenta: 16711935,\n maroon: 8388608,\n mediumaquamarine: 6737322,\n mediumblue: 205,\n mediumorchid: 12211667,\n mediumpurple: 9662683,\n mediumseagreen: 3978097,\n mediumslateblue: 8087790,\n mediumspringgreen: 64154,\n mediumturquoise: 4772300,\n mediumvioletred: 13047173,\n midnightblue: 1644912,\n mintcream: 16121850,\n mistyrose: 16770273,\n moccasin: 16770229,\n navajowhite: 16768685,\n navy: 128,\n oldlace: 16643558,\n olive: 8421376,\n olivedrab: 7048739,\n orange: 16753920,\n orangered: 16729344,\n orchid: 14315734,\n palegoldenrod: 15657130,\n palegreen: 10025880,\n paleturquoise: 11529966,\n palevioletred: 14381203,\n papayawhip: 16773077,\n peachpuff: 16767673,\n peru: 13468991,\n pink: 16761035,\n plum: 14524637,\n powderblue: 11591910,\n purple: 8388736,\n rebeccapurple: 6697881,\n red: 16711680,\n rosybrown: 12357519,\n royalblue: 4286945,\n saddlebrown: 9127187,\n salmon: 16416882,\n sandybrown: 16032864,\n seagreen: 3050327,\n seashell: 16774638,\n sienna: 10506797,\n silver: 12632256,\n skyblue: 8900331,\n slateblue: 6970061,\n slategray: 7372944,\n slategrey: 7372944,\n snow: 16775930,\n springgreen: 65407,\n steelblue: 4620980,\n tan: 13808780,\n teal: 32896,\n thistle: 14204888,\n tomato: 16737095,\n turquoise: 4251856,\n violet: 15631086,\n wheat: 16113331,\n white: 16777215,\n whitesmoke: 16119285,\n yellow: 16776960,\n yellowgreen: 10145074\n};\nyo(kt, Nt, {\n copy(e) {\n return Object.assign(new this.constructor(), this, e);\n },\n displayable() {\n return this.rgb().displayable();\n },\n hex: qo,\n // Deprecated! Use color.formatHex.\n formatHex: qo,\n formatHex8: yu,\n formatHsl: xu,\n formatRgb: jo,\n toString: jo\n});\nfunction qo() {\n return this.rgb().formatHex();\n}\nfunction yu() {\n return this.rgb().formatHex8();\n}\nfunction xu() {\n return lr(this).formatHsl();\n}\nfunction jo() {\n return this.rgb().formatRgb();\n}\nfunction Nt(e) {\n var t, n;\n return e = (e + \"\").trim().toLowerCase(), (t = du.exec(e)) ? (n = t[1].length, t = parseInt(t[1], 16), n === 6 ? Qo(t) : n === 3 ? new pe(t >> 8 & 15 | t >> 4 & 240, t >> 4 & 15 | t & 240, (t & 15) << 4 | t & 15, 1) : n === 8 ? zt(t >> 24 & 255, t >> 16 & 255, t >> 8 & 255, (t & 255) / 255) : n === 4 ? zt(t >> 12 & 15 | t >> 8 & 240, t >> 8 & 15 | t >> 4 & 240, t >> 4 & 15 | t & 240, ((t & 15) << 4 | t & 15) / 255) : null) : (t = fu.exec(e)) ? new pe(t[1], t[2], t[3], 1) : (t = hu.exec(e)) ? new pe(t[1] * 255 / 100, t[2] * 255 / 100, t[3] * 255 / 100, 1) : (t = gu.exec(e)) ? zt(t[1], t[2], t[3], t[4]) : (t = vu.exec(e)) ? zt(t[1] * 255 / 100, t[2] * 255 / 100, t[3] * 255 / 100, t[4]) : (t = mu.exec(e)) ? ti(t[1], t[2] / 100, t[3] / 100, 1) : (t = pu.exec(e)) ? ti(t[1], t[2] / 100, t[3] / 100, t[4]) : Ko.hasOwnProperty(e) ? Qo(Ko[e]) : e === \"transparent\" ? new pe(NaN, NaN, NaN, 0) : null;\n}\nfunction Qo(e) {\n return new pe(e >> 16 & 255, e >> 8 & 255, e & 255, 1);\n}\nfunction zt(e, t, n, o) {\n return o <= 0 && (e = t = n = NaN), new pe(e, t, n, o);\n}\nfunction _u(e) {\n return e instanceof kt || (e = Nt(e)), e ? (e = e.rgb(), new pe(e.r, e.g, e.b, e.opacity)) : new pe();\n}\nfunction jn(e, t, n, o) {\n return arguments.length === 1 ? _u(e) : new pe(e, t, n, o ?? 1);\n}\nfunction pe(e, t, n, o) {\n this.r = +e, this.g = +t, this.b = +n, this.opacity = +o;\n}\nyo(pe, jn, sr(kt, {\n brighter(e) {\n return e = e == null ? jt : Math.pow(jt, e), new pe(this.r * e, this.g * e, this.b * e, this.opacity);\n },\n darker(e) {\n return e = e == null ? Et : Math.pow(Et, e), new pe(this.r * e, this.g * e, this.b * e, this.opacity);\n },\n rgb() {\n return this;\n },\n clamp() {\n return new pe(We(this.r), We(this.g), We(this.b), Qt(this.opacity));\n },\n displayable() {\n return -0.5 <= this.r && this.r < 255.5 && -0.5 <= this.g && this.g < 255.5 && -0.5 <= this.b && this.b < 255.5 && 0 <= this.opacity && this.opacity <= 1;\n },\n hex: Jo,\n // Deprecated! Use color.formatHex.\n formatHex: Jo,\n formatHex8: wu,\n formatRgb: ei,\n toString: ei\n}));\nfunction Jo() {\n return `#${Ze(this.r)}${Ze(this.g)}${Ze(this.b)}`;\n}\nfunction wu() {\n return `#${Ze(this.r)}${Ze(this.g)}${Ze(this.b)}${Ze((isNaN(this.opacity) ? 1 : this.opacity) * 255)}`;\n}\nfunction ei() {\n const e = Qt(this.opacity);\n return `${e === 1 ? \"rgb(\" : \"rgba(\"}${We(this.r)}, ${We(this.g)}, ${We(this.b)}${e === 1 ? \")\" : `, ${e})`}`;\n}\nfunction Qt(e) {\n return isNaN(e) ? 1 : Math.max(0, Math.min(1, e));\n}\nfunction We(e) {\n return Math.max(0, Math.min(255, Math.round(e) || 0));\n}\nfunction Ze(e) {\n return e = We(e), (e < 16 ? \"0\" : \"\") + e.toString(16);\n}\nfunction ti(e, t, n, o) {\n return o <= 0 ? e = t = n = NaN : n <= 0 || n >= 1 ? e = t = NaN : t <= 0 && (e = NaN), new be(e, t, n, o);\n}\nfunction lr(e) {\n if (e instanceof be)\n return new be(e.h, e.s, e.l, e.opacity);\n if (e instanceof kt || (e = Nt(e)), !e)\n return new be();\n if (e instanceof be)\n return e;\n e = e.rgb();\n var t = e.r / 255, n = e.g / 255, o = e.b / 255, i = Math.min(t, n, o), r = Math.max(t, n, o), a = NaN, s = r - i, l = (r + i) / 2;\n return s ? (t === r ? a = (n - o) / s + (n < o) * 6 : n === r ? a = (o - t) / s + 2 : a = (t - n) / s + 4, s /= l < 0.5 ? r + i : 2 - r - i, a *= 60) : s = l > 0 && l < 1 ? 0 : a, new be(a, s, l, e.opacity);\n}\nfunction bu(e, t, n, o) {\n return arguments.length === 1 ? lr(e) : new be(e, t, n, o ?? 1);\n}\nfunction be(e, t, n, o) {\n this.h = +e, this.s = +t, this.l = +n, this.opacity = +o;\n}\nyo(be, bu, sr(kt, {\n brighter(e) {\n return e = e == null ? jt : Math.pow(jt, e), new be(this.h, this.s, this.l * e, this.opacity);\n },\n darker(e) {\n return e = e == null ? Et : Math.pow(Et, e), new be(this.h, this.s, this.l * e, this.opacity);\n },\n rgb() {\n var e = this.h % 360 + (this.h < 0) * 360, t = isNaN(e) || isNaN(this.s) ? 0 : this.s, n = this.l, o = n + (n < 0.5 ? n : 1 - n) * t, i = 2 * n - o;\n return new pe(\n kn(e >= 240 ? e - 240 : e + 120, i, o),\n kn(e, i, o),\n kn(e < 120 ? e + 240 : e - 120, i, o),\n this.opacity\n );\n },\n clamp() {\n return new be(ni(this.h), At(this.s), At(this.l), Qt(this.opacity));\n },\n displayable() {\n return (0 <= this.s && this.s <= 1 || isNaN(this.s)) && 0 <= this.l && this.l <= 1 && 0 <= this.opacity && this.opacity <= 1;\n },\n formatHsl() {\n const e = Qt(this.opacity);\n return `${e === 1 ? \"hsl(\" : \"hsla(\"}${ni(this.h)}, ${At(this.s) * 100}%, ${At(this.l) * 100}%${e === 1 ? \")\" : `, ${e})`}`;\n }\n}));\nfunction ni(e) {\n return e = (e || 0) % 360, e < 0 ? e + 360 : e;\n}\nfunction At(e) {\n return Math.max(0, Math.min(1, e || 0));\n}\nfunction kn(e, t, n) {\n return (e < 60 ? t + (n - t) * e / 60 : e < 180 ? n : e < 240 ? t + (n - t) * (240 - e) / 60 : t) * 255;\n}\nconst ur = (e) => () => e;\nfunction Eu(e, t) {\n return function(n) {\n return e + n * t;\n };\n}\nfunction Su(e, t, n) {\n return e = Math.pow(e, n), t = Math.pow(t, n) - e, n = 1 / n, function(o) {\n return Math.pow(e + o * t, n);\n };\n}\nfunction Nu(e) {\n return (e = +e) == 1 ? cr : function(t, n) {\n return n - t ? Su(t, n, e) : ur(isNaN(t) ? n : t);\n };\n}\nfunction cr(e, t) {\n var n = t - e;\n return n ? Eu(e, n) : ur(isNaN(e) ? t : e);\n}\nconst oi = function e(t) {\n var n = Nu(t);\n function o(i, r) {\n var a = n((i = jn(i)).r, (r = jn(r)).r), s = n(i.g, r.g), l = n(i.b, r.b), u = cr(i.opacity, r.opacity);\n return function(c) {\n return i.r = a(c), i.g = s(c), i.b = l(c), i.opacity = u(c), i + \"\";\n };\n }\n return o.gamma = e, o;\n}(1);\nfunction Re(e, t) {\n return e = +e, t = +t, function(n) {\n return e * (1 - n) + t * n;\n };\n}\nvar Qn = /[-+]?(?:\\d+\\.?\\d*|\\.?\\d+)(?:[eE][-+]?\\d+)?/g, On = new RegExp(Qn.source, \"g\");\nfunction Cu(e) {\n return function() {\n return e;\n };\n}\nfunction Mu(e) {\n return function(t) {\n return e(t) + \"\";\n };\n}\nfunction $u(e, t) {\n var n = Qn.lastIndex = On.lastIndex = 0, o, i, r, a = -1, s = [], l = [];\n for (e = e + \"\", t = t + \"\"; (o = Qn.exec(e)) && (i = On.exec(t)); )\n (r = i.index) > n && (r = t.slice(n, r), s[a] ? s[a] += r : s[++a] = r), (o = o[0]) === (i = i[0]) ? s[a] ? s[a] += i : s[++a] = i : (s[++a] = null, l.push({ i: a, x: Re(o, i) })), n = On.lastIndex;\n return n < t.length && (r = t.slice(n), s[a] ? s[a] += r : s[++a] = r), s.length < 2 ? l[0] ? Mu(l[0].x) : Cu(t) : (t = l.length, function(u) {\n for (var c = 0, v; c < t; ++c)\n s[(v = l[c]).i] = v.x(u);\n return s.join(\"\");\n });\n}\nvar ii = 180 / Math.PI, Jn = {\n translateX: 0,\n translateY: 0,\n rotate: 0,\n skewX: 0,\n scaleX: 1,\n scaleY: 1\n};\nfunction dr(e, t, n, o, i, r) {\n var a, s, l;\n return (a = Math.sqrt(e * e + t * t)) && (e /= a, t /= a), (l = e * n + t * o) && (n -= e * l, o -= t * l), (s = Math.sqrt(n * n + o * o)) && (n /= s, o /= s, l /= s), e * o < t * n && (e = -e, t = -t, l = -l, a = -a), {\n translateX: i,\n translateY: r,\n rotate: Math.atan2(t, e) * ii,\n skewX: Math.atan(l) * ii,\n scaleX: a,\n scaleY: s\n };\n}\nvar Bt;\nfunction ku(e) {\n const t = new (typeof DOMMatrix == \"function\" ? DOMMatrix : WebKitCSSMatrix)(e + \"\");\n return t.isIdentity ? Jn : dr(t.a, t.b, t.c, t.d, t.e, t.f);\n}\nfunction Ou(e) {\n return e == null || (Bt || (Bt = document.createElementNS(\"http://www.w3.org/2000/svg\", \"g\")), Bt.setAttribute(\"transform\", e), !(e = Bt.transform.baseVal.consolidate())) ? Jn : (e = e.matrix, dr(e.a, e.b, e.c, e.d, e.e, e.f));\n}\nfunction fr(e, t, n, o) {\n function i(u) {\n return u.length ? u.pop() + \" \" : \"\";\n }\n function r(u, c, v, g, x, h) {\n if (u !== v || c !== g) {\n var d = x.push(\"translate(\", null, t, null, n);\n h.push({ i: d - 4, x: Re(u, v) }, { i: d - 2, x: Re(c, g) });\n } else\n (v || g) && x.push(\"translate(\" + v + t + g + n);\n }\n function a(u, c, v, g) {\n u !== c ? (u - c > 180 ? c += 360 : c - u > 180 && (u += 360), g.push({ i: v.push(i(v) + \"rotate(\", null, o) - 2, x: Re(u, c) })) : c && v.push(i(v) + \"rotate(\" + c + o);\n }\n function s(u, c, v, g) {\n u !== c ? g.push({ i: v.push(i(v) + \"skewX(\", null, o) - 2, x: Re(u, c) }) : c && v.push(i(v) + \"skewX(\" + c + o);\n }\n function l(u, c, v, g, x, h) {\n if (u !== v || c !== g) {\n var d = x.push(i(x) + \"scale(\", null, \",\", null, \")\");\n h.push({ i: d - 4, x: Re(u, v) }, { i: d - 2, x: Re(c, g) });\n } else\n (v !== 1 || g !== 1) && x.push(i(x) + \"scale(\" + v + \",\" + g + \")\");\n }\n return function(u, c) {\n var v = [], g = [];\n return u = e(u), c = e(c), r(u.translateX, u.translateY, c.translateX, c.translateY, v, g), a(u.rotate, c.rotate, v, g), s(u.skewX, c.skewX, v, g), l(u.scaleX, u.scaleY, c.scaleX, c.scaleY, v, g), u = c = null, function(x) {\n for (var h = -1, d = g.length, w; ++h < d; )\n v[(w = g[h]).i] = w.x(x);\n return v.join(\"\");\n };\n };\n}\nvar Tu = fr(ku, \"px, \", \"px)\", \"deg)\"), Iu = fr(Ou, \", \", \")\", \")\"), Pu = 1e-12;\nfunction ri(e) {\n return ((e = Math.exp(e)) + 1 / e) / 2;\n}\nfunction Du(e) {\n return ((e = Math.exp(e)) - 1 / e) / 2;\n}\nfunction zu(e) {\n return ((e = Math.exp(2 * e)) - 1) / (e + 1);\n}\nconst Au = function e(t, n, o) {\n function i(r, a) {\n var s = r[0], l = r[1], u = r[2], c = a[0], v = a[1], g = a[2], x = c - s, h = v - l, d = x * x + h * h, w, y;\n if (d < Pu)\n y = Math.log(g / u) / t, w = function(_) {\n return [\n s + _ * x,\n l + _ * h,\n u * Math.exp(t * _ * y)\n ];\n };\n else {\n var S = Math.sqrt(d), V = (g * g - u * u + o * d) / (2 * u * n * S), p = (g * g - u * u - o * d) / (2 * g * n * S), N = Math.log(Math.sqrt(V * V + 1) - V), T = Math.log(Math.sqrt(p * p + 1) - p);\n y = (T - N) / t, w = function(_) {\n var P = _ * y, R = ri(N), $ = u / (n * S) * (R * zu(t * P + N) - Du(N));\n return [\n s + $ * x,\n l + $ * h,\n u * R / ri(t * P + N)\n ];\n };\n }\n return w.duration = y * 1e3 * t / Math.SQRT2, w;\n }\n return i.rho = function(r) {\n var a = Math.max(1e-3, +r), s = a * a, l = s * s;\n return e(a, s, l);\n }, i;\n}(Math.SQRT2, 2, 4);\nvar ht = 0, mt = 0, gt = 0, hr = 1e3, Jt, pt, en = 0, Je = 0, wn = 0, Ct = typeof performance == \"object\" && performance.now ? performance : Date, gr = typeof window == \"object\" && window.requestAnimationFrame ? window.requestAnimationFrame.bind(window) : function(e) {\n setTimeout(e, 17);\n};\nfunction xo() {\n return Je || (gr(Bu), Je = Ct.now() + wn);\n}\nfunction Bu() {\n Je = 0;\n}\nfunction tn() {\n this._call = this._time = this._next = null;\n}\ntn.prototype = vr.prototype = {\n constructor: tn,\n restart: function(e, t, n) {\n if (typeof e != \"function\")\n throw new TypeError(\"callback is not a function\");\n n = (n == null ? xo() : +n) + (t == null ? 0 : +t), !this._next && pt !== this && (pt ? pt._next = this : Jt = this, pt = this), this._call = e, this._time = n, eo();\n },\n stop: function() {\n this._call && (this._call = null, this._time = 1 / 0, eo());\n }\n};\nfunction vr(e, t, n) {\n var o = new tn();\n return o.restart(e, t, n), o;\n}\nfunction Ru() {\n xo(), ++ht;\n for (var e = Jt, t; e; )\n (t = Je - e._time) >= 0 && e._call.call(void 0, t), e = e._next;\n --ht;\n}\nfunction ai() {\n Je = (en = Ct.now()) + wn, ht = mt = 0;\n try {\n Ru();\n } finally {\n ht = 0, Hu(), Je = 0;\n }\n}\nfunction Vu() {\n var e = Ct.now(), t = e - en;\n t > hr && (wn -= t, en = e);\n}\nfunction Hu() {\n for (var e, t = Jt, n, o = 1 / 0; t; )\n t._call ? (o > t._time && (o = t._time), e = t, t = t._next) : (n = t._next, t._next = null, t = e ? e._next = n : Jt = n);\n pt = e, eo(o);\n}\nfunction eo(e) {\n if (!ht) {\n mt && (mt = clearTimeout(mt));\n var t = e - Je;\n t > 24 ? (e < 1 / 0 && (mt = setTimeout(ai, e - Ct.now() - wn)), gt && (gt = clearInterval(gt))) : (gt || (en = Ct.now(), gt = setInterval(Vu, hr)), ht = 1, gr(ai));\n }\n}\nfunction si(e, t, n) {\n var o = new tn();\n return t = t == null ? 0 : +t, o.restart((i) => {\n o.stop(), e(i + t);\n }, t, n), o;\n}\nvar Lu = fn(\"start\", \"end\", \"cancel\", \"interrupt\"), Gu = [], mr = 0, li = 1, to = 2, Lt = 3, ui = 4, no = 5, Gt = 6;\nfunction bn(e, t, n, o, i, r) {\n var a = e.__transition;\n if (!a)\n e.__transition = {};\n else if (n in a)\n return;\n Fu(e, n, {\n name: t,\n index: o,\n // For context during callback.\n group: i,\n // For context during callback.\n on: Lu,\n tween: Gu,\n time: r.time,\n delay: r.delay,\n duration: r.duration,\n ease: r.ease,\n timer: null,\n state: mr\n });\n}\nfunction _o(e, t) {\n var n = Se(e, t);\n if (n.state > mr)\n throw new Error(\"too late; already scheduled\");\n return n;\n}\nfunction ke(e, t) {\n var n = Se(e, t);\n if (n.state > Lt)\n throw new Error(\"too late; already running\");\n return n;\n}\nfunction Se(e, t) {\n var n = e.__transition;\n if (!n || !(n = n[t]))\n throw new Error(\"transition not found\");\n return n;\n}\nfunction Fu(e, t, n) {\n var o = e.__transition, i;\n o[t] = n, n.timer = vr(r, 0, n.time);\n function r(u) {\n n.state = li, n.timer.restart(a, n.delay, n.time), n.delay <= u && a(u - n.delay);\n }\n function a(u) {\n var c, v, g, x;\n if (n.state !== li)\n return l();\n for (c in o)\n if (x = o[c], x.name === n.name) {\n if (x.state === Lt)\n return si(a);\n x.state === ui ? (x.state = Gt, x.timer.stop(), x.on.call(\"interrupt\", e, e.__data__, x.index, x.group), delete o[c]) : +c < t && (x.state = Gt, x.timer.stop(), x.on.call(\"cancel\", e, e.__data__, x.index, x.group), delete o[c]);\n }\n if (si(function() {\n n.state === Lt && (n.state = ui, n.timer.restart(s, n.delay, n.time), s(u));\n }), n.state = to, n.on.call(\"start\", e, e.__data__, n.index, n.group), n.state === to) {\n for (n.state = Lt, i = new Array(g = n.tween.length), c = 0, v = -1; c < g; ++c)\n (x = n.tween[c].value.call(e, e.__data__, n.index, n.group)) && (i[++v] = x);\n i.length = v + 1;\n }\n }\n function s(u) {\n for (var c = u < n.duration ? n.ease.call(null, u / n.duration) : (n.timer.restart(l), n.state = no, 1), v = -1, g = i.length; ++v < g; )\n i[v].call(e, c);\n n.state === no && (n.on.call(\"end\", e, e.__data__, n.index, n.group), l());\n }\n function l() {\n n.state = Gt, n.timer.stop(), delete o[t];\n for (var u in o)\n return;\n delete e.__transition;\n }\n}\nfunction Ft(e, t) {\n var n = e.__transition, o, i, r = !0, a;\n if (n) {\n t = t == null ? null : t + \"\";\n for (a in n) {\n if ((o = n[a]).name !== t) {\n r = !1;\n continue;\n }\n i = o.state > to && o.state < no, o.state = Gt, o.timer.stop(), o.on.call(i ? \"interrupt\" : \"cancel\", e, e.__data__, o.index, o.group), delete n[a];\n }\n r && delete e.__transition;\n }\n}\nfunction Yu(e) {\n return this.each(function() {\n Ft(this, e);\n });\n}\nfunction Xu(e, t) {\n var n, o;\n return function() {\n var i = ke(this, e), r = i.tween;\n if (r !== n) {\n o = n = r;\n for (var a = 0, s = o.length; a < s; ++a)\n if (o[a].name === t) {\n o = o.slice(), o.splice(a, 1);\n break;\n }\n }\n i.tween = o;\n };\n}\nfunction Zu(e, t, n) {\n var o, i;\n if (typeof n != \"function\")\n throw new Error();\n return function() {\n var r = ke(this, e), a = r.tween;\n if (a !== o) {\n i = (o = a).slice();\n for (var s = { name: t, value: n }, l = 0, u = i.length; l < u; ++l)\n if (i[l].name === t) {\n i[l] = s;\n break;\n }\n l === u && i.push(s);\n }\n r.tween = i;\n };\n}\nfunction Uu(e, t) {\n var n = this._id;\n if (e += \"\", arguments.length < 2) {\n for (var o = Se(this.node(), n).tween, i = 0, r = o.length, a; i < r; ++i)\n if ((a = o[i]).name === e)\n return a.value;\n return null;\n }\n return this.each((t == null ? Xu : Zu)(n, e, t));\n}\nfunction wo(e, t, n) {\n var o = e._id;\n return e.each(function() {\n var i = ke(this, o);\n (i.value || (i.value = {}))[t] = n.apply(this, arguments);\n }), function(i) {\n return Se(i, o).value[t];\n };\n}\nfunction pr(e, t) {\n var n;\n return (typeof t == \"number\" ? Re : t instanceof Nt ? oi : (n = Nt(t)) ? (t = n, oi) : $u)(e, t);\n}\nfunction Wu(e) {\n return function() {\n this.removeAttribute(e);\n };\n}\nfunction Ku(e) {\n return function() {\n this.removeAttributeNS(e.space, e.local);\n };\n}\nfunction qu(e, t, n) {\n var o, i = n + \"\", r;\n return function() {\n var a = this.getAttribute(e);\n return a === i ? null : a === o ? r : r = t(o = a, n);\n };\n}\nfunction ju(e, t, n) {\n var o, i = n + \"\", r;\n return function() {\n var a = this.getAttributeNS(e.space, e.local);\n return a === i ? null : a === o ? r : r = t(o = a, n);\n };\n}\nfunction Qu(e, t, n) {\n var o, i, r;\n return function() {\n var a, s = n(this), l;\n return s == null ? void this.removeAttribute(e) : (a = this.getAttribute(e), l = s + \"\", a === l ? null : a === o && l === i ? r : (i = l, r = t(o = a, s)));\n };\n}\nfunction Ju(e, t, n) {\n var o, i, r;\n return function() {\n var a, s = n(this), l;\n return s == null ? void this.removeAttributeNS(e.space, e.local) : (a = this.getAttributeNS(e.space, e.local), l = s + \"\", a === l ? null : a === o && l === i ? r : (i = l, r = t(o = a, s)));\n };\n}\nfunction ec(e, t) {\n var n = hn(e), o = n === \"transform\" ? Iu : pr;\n return this.attrTween(e, typeof t == \"function\" ? (n.local ? Ju : Qu)(n, o, wo(this, \"attr.\" + e, t)) : t == null ? (n.local ? Ku : Wu)(n) : (n.local ? ju : qu)(n, o, t));\n}\nfunction tc(e, t) {\n return function(n) {\n this.setAttribute(e, t.call(this, n));\n };\n}\nfunction nc(e, t) {\n return function(n) {\n this.setAttributeNS(e.space, e.local, t.call(this, n));\n };\n}\nfunction oc(e, t) {\n var n, o;\n function i() {\n var r = t.apply(this, arguments);\n return r !== o && (n = (o = r) && nc(e, r)), n;\n }\n return i._value = t, i;\n}\nfunction ic(e, t) {\n var n, o;\n function i() {\n var r = t.apply(this, arguments);\n return r !== o && (n = (o = r) && tc(e, r)), n;\n }\n return i._value = t, i;\n}\nfunction rc(e, t) {\n var n = \"attr.\" + e;\n if (arguments.length < 2)\n return (n = this.tween(n)) && n._value;\n if (t == null)\n return this.tween(n, null);\n if (typeof t != \"function\")\n throw new Error();\n var o = hn(e);\n return this.tween(n, (o.local ? oc : ic)(o, t));\n}\nfunction ac(e, t) {\n return function() {\n _o(this, e).delay = +t.apply(this, arguments);\n };\n}\nfunction sc(e, t) {\n return t = +t, function() {\n _o(this, e).delay = t;\n };\n}\nfunction lc(e) {\n var t = this._id;\n return arguments.length ? this.each((typeof e == \"function\" ? ac : sc)(t, e)) : Se(this.node(), t).delay;\n}\nfunction uc(e, t) {\n return function() {\n ke(this, e).duration = +t.apply(this, arguments);\n };\n}\nfunction cc(e, t) {\n return t = +t, function() {\n ke(this, e).duration = t;\n };\n}\nfunction dc(e) {\n var t = this._id;\n return arguments.length ? this.each((typeof e == \"function\" ? uc : cc)(t, e)) : Se(this.node(), t).duration;\n}\nfunction fc(e, t) {\n if (typeof t != \"function\")\n throw new Error();\n return function() {\n ke(this, e).ease = t;\n };\n}\nfunction hc(e) {\n var t = this._id;\n return arguments.length ? this.each(fc(t, e)) : Se(this.node(), t).ease;\n}\nfunction gc(e, t) {\n return function() {\n var n = t.apply(this, arguments);\n if (typeof n != \"function\")\n throw new Error();\n ke(this, e).ease = n;\n };\n}\nfunction vc(e) {\n if (typeof e != \"function\")\n throw new Error();\n return this.each(gc(this._id, e));\n}\nfunction mc(e) {\n typeof e != \"function\" && (e = Vi(e));\n for (var t = this._groups, n = t.length, o = new Array(n), i = 0; i < n; ++i)\n for (var r = t[i], a = r.length, s = o[i] = [], l, u = 0; u < a; ++u)\n (l = r[u]) && e.call(l, l.__data__, u, r) && s.push(l);\n return new Be(o, this._parents, this._name, this._id);\n}\nfunction pc(e) {\n if (e._id !== this._id)\n throw new Error();\n for (var t = this._groups, n = e._groups, o = t.length, i = n.length, r = Math.min(o, i), a = new Array(o), s = 0; s < r; ++s)\n for (var l = t[s], u = n[s], c = l.length, v = a[s] = new Array(c), g, x = 0; x < c; ++x)\n (g = l[x] || u[x]) && (v[x] = g);\n for (; s < o; ++s)\n a[s] = t[s];\n return new Be(a, this._parents, this._name, this._id);\n}\nfunction yc(e) {\n return (e + \"\").trim().split(/^|\\s+/).every(function(t) {\n var n = t.indexOf(\".\");\n return n >= 0 && (t = t.slice(0, n)), !t || t === \"start\";\n });\n}\nfunction xc(e, t, n) {\n var o, i, r = yc(t) ? _o : ke;\n return function() {\n var a = r(this, e), s = a.on;\n s !== o && (i = (o = s).copy()).on(t, n), a.on = i;\n };\n}\nfunction _c(e, t) {\n var n = this._id;\n return arguments.length < 2 ? Se(this.node(), n).on.on(e) : this.each(xc(n, e, t));\n}\nfunction wc(e) {\n return function() {\n var t = this.parentNode;\n for (var n in this.__transition)\n if (+n !== e)\n return;\n t && t.removeChild(this);\n };\n}\nfunction bc() {\n return this.on(\"end.remove\", wc(this._id));\n}\nfunction Ec(e) {\n var t = this._name, n = this._id;\n typeof e != \"function\" && (e = vo(e));\n for (var o = this._groups, i = o.length, r = new Array(i), a = 0; a < i; ++a)\n for (var s = o[a], l = s.length, u = r[a] = new Array(l), c, v, g = 0; g < l; ++g)\n (c = s[g]) && (v = e.call(c, c.__data__, g, s)) && (\"__data__\" in c && (v.__data__ = c.__data__), u[g] = v, bn(u[g], t, n, g, u, Se(c, n)));\n return new Be(r, this._parents, t, n);\n}\nfunction Sc(e) {\n var t = this._name, n = this._id;\n typeof e != \"function\" && (e = Ri(e));\n for (var o = this._groups, i = o.length, r = [], a = [], s = 0; s < i; ++s)\n for (var l = o[s], u = l.length, c, v = 0; v < u; ++v)\n if (c = l[v]) {\n for (var g = e.call(c, c.__data__, v, l), x, h = Se(c, n), d = 0, w = g.length; d < w; ++d)\n (x = g[d]) && bn(x, t, n, d, g, h);\n r.push(g), a.push(c);\n }\n return new Be(r, a, t, n);\n}\nvar Nc = $t.prototype.constructor;\nfunction Cc() {\n return new Nc(this._groups, this._parents);\n}\nfunction Mc(e, t) {\n var n, o, i;\n return function() {\n var r = ft(this, e), a = (this.style.removeProperty(e), ft(this, e));\n return r === a ? null : r === n && a === o ? i : i = t(n = r, o = a);\n };\n}\nfunction yr(e) {\n return function() {\n this.style.removeProperty(e);\n };\n}\nfunction $c(e, t, n) {\n var o, i = n + \"\", r;\n return function() {\n var a = ft(this, e);\n return a === i ? null : a === o ? r : r = t(o = a, n);\n };\n}\nfunction kc(e, t, n) {\n var o, i, r;\n return function() {\n var a = ft(this, e), s = n(this), l = s + \"\";\n return s == null && (l = s = (this.style.removeProperty(e), ft(this, e))), a === l ? null : a === o && l === i ? r : (i = l, r = t(o = a, s));\n };\n}\nfunction Oc(e, t) {\n var n, o, i, r = \"style.\" + t, a = \"end.\" + r, s;\n return function() {\n var l = ke(this, e), u = l.on, c = l.value[r] == null ? s || (s = yr(t)) : void 0;\n (u !== n || i !== c) && (o = (n = u).copy()).on(a, i = c), l.on = o;\n };\n}\nfunction Tc(e, t, n) {\n var o = (e += \"\") == \"transform\" ? Tu : pr;\n return t == null ? this.styleTween(e, Mc(e, o)).on(\"end.style.\" + e, yr(e)) : typeof t == \"function\" ? this.styleTween(e, kc(e, o, wo(this, \"style.\" + e, t))).each(Oc(this._id, e)) : this.styleTween(e, $c(e, o, t), n).on(\"end.style.\" + e, null);\n}\nfunction Ic(e, t, n) {\n return function(o) {\n this.style.setProperty(e, t.call(this, o), n);\n };\n}\nfunction Pc(e, t, n) {\n var o, i;\n function r() {\n var a = t.apply(this, arguments);\n return a !== i && (o = (i = a) && Ic(e, a, n)), o;\n }\n return r._value = t, r;\n}\nfunction Dc(e, t, n) {\n var o = \"style.\" + (e += \"\");\n if (arguments.length < 2)\n return (o = this.tween(o)) && o._value;\n if (t == null)\n return this.tween(o, null);\n if (typeof t != \"function\")\n throw new Error();\n return this.tween(o, Pc(e, t, n ?? \"\"));\n}\nfunction zc(e) {\n return function() {\n this.textContent = e;\n };\n}\nfunction Ac(e) {\n return function() {\n var t = e(this);\n this.textContent = t ?? \"\";\n };\n}\nfunction Bc(e) {\n return this.tween(\"text\", typeof e == \"function\" ? Ac(wo(this, \"text\", e)) : zc(e == null ? \"\" : e + \"\"));\n}\nfunction Rc(e) {\n return function(t) {\n this.textContent = e.call(this, t);\n };\n}\nfunction Vc(e) {\n var t, n;\n function o() {\n var i = e.apply(this, arguments);\n return i !== n && (t = (n = i) && Rc(i)), t;\n }\n return o._value = e, o;\n}\nfunction Hc(e) {\n var t = \"text\";\n if (arguments.length < 1)\n return (t = this.tween(t)) && t._value;\n if (e == null)\n return this.tween(t, null);\n if (typeof e != \"function\")\n throw new Error();\n return this.tween(t, Vc(e));\n}\nfunction Lc() {\n for (var e = this._name, t = this._id, n = xr(), o = this._groups, i = o.length, r = 0; r < i; ++r)\n for (var a = o[r], s = a.length, l, u = 0; u < s; ++u)\n if (l = a[u]) {\n var c = Se(l, t);\n bn(l, e, n, u, a, {\n time: c.time + c.delay + c.duration,\n delay: 0,\n duration: c.duration,\n ease: c.ease\n });\n }\n return new Be(o, this._parents, e, n);\n}\nfunction Gc() {\n var e, t, n = this, o = n._id, i = n.size();\n return new Promise(function(r, a) {\n var s = { value: a }, l = { value: function() {\n --i === 0 && r();\n } };\n n.each(function() {\n var u = ke(this, o), c = u.on;\n c !== e && (t = (e = c).copy(), t._.cancel.push(s), t._.interrupt.push(s), t._.end.push(l)), u.on = t;\n }), i === 0 && r();\n });\n}\nvar Fc = 0;\nfunction Be(e, t, n, o) {\n this._groups = e, this._parents = t, this._name = n, this._id = o;\n}\nfunction xr() {\n return ++Fc;\n}\nvar Oe = $t.prototype;\nBe.prototype = {\n constructor: Be,\n select: Ec,\n selectAll: Sc,\n selectChild: Oe.selectChild,\n selectChildren: Oe.selectChildren,\n filter: mc,\n merge: pc,\n selection: Cc,\n transition: Lc,\n call: Oe.call,\n nodes: Oe.nodes,\n node: Oe.node,\n size: Oe.size,\n empty: Oe.empty,\n each: Oe.each,\n on: _c,\n attr: ec,\n attrTween: rc,\n style: Tc,\n styleTween: Dc,\n text: Bc,\n textTween: Hc,\n remove: bc,\n tween: Uu,\n delay: lc,\n duration: dc,\n ease: hc,\n easeVarying: vc,\n end: Gc,\n [Symbol.iterator]: Oe[Symbol.iterator]\n};\nfunction Yc(e) {\n return ((e *= 2) <= 1 ? e * e * e : (e -= 2) * e * e + 2) / 2;\n}\nvar Xc = {\n time: null,\n // Set on use.\n delay: 0,\n duration: 250,\n ease: Yc\n};\nfunction Zc(e, t) {\n for (var n; !(n = e.__transition) || !(n = n[t]); )\n if (!(e = e.parentNode))\n throw new Error(`transition ${t} not found`);\n return n;\n}\nfunction Uc(e) {\n var t, n;\n e instanceof Be ? (t = e._id, e = e._name) : (t = xr(), (n = Xc).time = xo(), e = e == null ? null : e + \"\");\n for (var o = this._groups, i = o.length, r = 0; r < i; ++r)\n for (var a = o[r], s = a.length, l, u = 0; u < s; ++u)\n (l = a[u]) && bn(l, e, t, u, a, n || Zc(l, t));\n return new Be(o, this._parents, e, t);\n}\n$t.prototype.interrupt = Yu;\n$t.prototype.transition = Uc;\nconst Rt = (e) => () => e;\nfunction Wc(e, {\n sourceEvent: t,\n target: n,\n transform: o,\n dispatch: i\n}) {\n Object.defineProperties(this, {\n type: { value: e, enumerable: !0, configurable: !0 },\n sourceEvent: { value: t, enumerable: !0, configurable: !0 },\n target: { value: n, enumerable: !0, configurable: !0 },\n transform: { value: o, enumerable: !0, configurable: !0 },\n _: { value: i }\n });\n}\nfunction De(e, t, n) {\n this.k = e, this.x = t, this.y = n;\n}\nDe.prototype = {\n constructor: De,\n scale: function(e) {\n return e === 1 ? this : new De(this.k * e, this.x, this.y);\n },\n translate: function(e, t) {\n return e === 0 & t === 0 ? this : new De(this.k, this.x + this.k * e, this.y + this.k * t);\n },\n apply: function(e) {\n return [e[0] * this.k + this.x, e[1] * this.k + this.y];\n },\n applyX: function(e) {\n return e * this.k + this.x;\n },\n applyY: function(e) {\n return e * this.k + this.y;\n },\n invert: function(e) {\n return [(e[0] - this.x) / this.k, (e[1] - this.y) / this.k];\n },\n invertX: function(e) {\n return (e - this.x) / this.k;\n },\n invertY: function(e) {\n return (e - this.y) / this.k;\n },\n rescaleX: function(e) {\n return e.copy().domain(e.range().map(this.invertX, this).map(e.invert, e));\n },\n rescaleY: function(e) {\n return e.copy().domain(e.range().map(this.invertY, this).map(e.invert, e));\n },\n toString: function() {\n return \"translate(\" + this.x + \",\" + this.y + \") scale(\" + this.k + \")\";\n }\n};\nvar et = new De(1, 0, 0);\nDe.prototype;\nfunction Tn(e) {\n e.stopImmediatePropagation();\n}\nfunction vt(e) {\n e.preventDefault(), e.stopImmediatePropagation();\n}\nfunction Kc(e) {\n return (!e.ctrlKey || e.type === \"wheel\") && !e.button;\n}\nfunction qc() {\n var e = this;\n return e instanceof SVGElement ? (e = e.ownerSVGElement || e, e.hasAttribute(\"viewBox\") ? (e = e.viewBox.baseVal, [[e.x, e.y], [e.x + e.width, e.y + e.height]]) : [[0, 0], [e.width.baseVal.value, e.height.baseVal.value]]) : [[0, 0], [e.clientWidth, e.clientHeight]];\n}\nfunction ci() {\n return this.__zoom || et;\n}\nfunction jc(e) {\n return -e.deltaY * (e.deltaMode === 1 ? 0.05 : e.deltaMode ? 1 : 2e-3) * (e.ctrlKey ? 10 : 1);\n}\nfunction Qc() {\n return navigator.maxTouchPoints || \"ontouchstart\" in this;\n}\nfunction Jc(e, t, n) {\n var o = e.invertX(t[0][0]) - n[0][0], i = e.invertX(t[1][0]) - n[1][0], r = e.invertY(t[0][1]) - n[0][1], a = e.invertY(t[1][1]) - n[1][1];\n return e.translate(\n i > o ? (o + i) / 2 : Math.min(0, o) || Math.max(0, i),\n a > r ? (r + a) / 2 : Math.min(0, r) || Math.max(0, a)\n );\n}\nfunction ed() {\n var e = Kc, t = qc, n = Jc, o = jc, i = Qc, r = [0, 1 / 0], a = [[-1 / 0, -1 / 0], [1 / 0, 1 / 0]], s = 250, l = Au, u = fn(\"start\", \"zoom\", \"end\"), c, v, g, x = 500, h = 150, d = 0, w = 10;\n function y(m) {\n m.property(\"__zoom\", ci).on(\"wheel.zoom\", P, { passive: !1 }).on(\"mousedown.zoom\", R).on(\"dblclick.zoom\", $).filter(i).on(\"touchstart.zoom\", D).on(\"touchmove.zoom\", Q).on(\"touchend.zoom touchcancel.zoom\", ee).style(\"-webkit-tap-highlight-color\", \"rgba(0,0,0,0)\");\n }\n y.transform = function(m, A, E, G) {\n var Z = m.selection ? m.selection() : m;\n Z.property(\"__zoom\", ci), m !== Z ? N(m, A, E, G) : Z.interrupt().each(function() {\n T(this, arguments).event(G).start().zoom(null, typeof A == \"function\" ? A.apply(this, arguments) : A).end();\n });\n }, y.scaleBy = function(m, A, E, G) {\n y.scaleTo(m, function() {\n var Z = this.__zoom.k, K = typeof A == \"function\" ? A.apply(this, arguments) : A;\n return Z * K;\n }, E, G);\n }, y.scaleTo = function(m, A, E, G) {\n y.transform(m, function() {\n var Z = t.apply(this, arguments), K = this.__zoom, z = E == null ? p(Z) : typeof E == \"function\" ? E.apply(this, arguments) : E, W = K.invert(z), B = typeof A == \"function\" ? A.apply(this, arguments) : A;\n return n(V(S(K, B), z, W), Z, a);\n }, E, G);\n }, y.translateBy = function(m, A, E, G) {\n y.transform(m, function() {\n return n(this.__zoom.translate(\n typeof A == \"function\" ? A.apply(this, arguments) : A,\n typeof E == \"function\" ? E.apply(this, arguments) : E\n ), t.apply(this, arguments), a);\n }, null, G);\n }, y.translateTo = function(m, A, E, G, Z) {\n y.transform(m, function() {\n var K = t.apply(this, arguments), z = this.__zoom, W = G == null ? p(K) : typeof G == \"function\" ? G.apply(this, arguments) : G;\n return n(et.translate(W[0], W[1]).scale(z.k).translate(\n typeof A == \"function\" ? -A.apply(this, arguments) : -A,\n typeof E == \"function\" ? -E.apply(this, arguments) : -E\n ), K, a);\n }, G, Z);\n };\n function S(m, A) {\n return A = Math.max(r[0], Math.min(r[1], A)), A === m.k ? m : new De(A, m.x, m.y);\n }\n function V(m, A, E) {\n var G = A[0] - E[0] * m.k, Z = A[1] - E[1] * m.k;\n return G === m.x && Z === m.y ? m : new De(m.k, G, Z);\n }\n function p(m) {\n return [(+m[0][0] + +m[1][0]) / 2, (+m[0][1] + +m[1][1]) / 2];\n }\n function N(m, A, E, G) {\n m.on(\"start.zoom\", function() {\n T(this, arguments).event(G).start();\n }).on(\"interrupt.zoom end.zoom\", function() {\n T(this, arguments).event(G).end();\n }).tween(\"zoom\", function() {\n var Z = this, K = arguments, z = T(Z, K).event(G), W = t.apply(Z, K), B = E == null ? p(W) : typeof E == \"function\" ? E.apply(Z, K) : E, q = Math.max(W[1][0] - W[0][0], W[1][1] - W[0][1]), te = Z.__zoom, re = typeof A == \"function\" ? A.apply(Z, K) : A, k = l(te.invert(B).concat(q / te.k), re.invert(B).concat(q / re.k));\n return function(H) {\n if (H === 1)\n H = re;\n else {\n var f = k(H), b = q / f[2];\n H = new De(b, B[0] - f[0] * b, B[1] - f[1] * b);\n }\n z.zoom(null, H);\n };\n });\n }\n function T(m, A, E) {\n return !E && m.__zooming || new _(m, A);\n }\n function _(m, A) {\n this.that = m, this.args = A, this.active = 0, this.sourceEvent = null, this.extent = t.apply(m, A), this.taps = 0;\n }\n _.prototype = {\n event: function(m) {\n return m && (this.sourceEvent = m), this;\n },\n start: function() {\n return ++this.active === 1 && (this.that.__zooming = this, this.emit(\"start\")), this;\n },\n zoom: function(m, A) {\n return this.mouse && m !== \"mouse\" && (this.mouse[1] = A.invert(this.mouse[0])), this.touch0 && m !== \"touch\" && (this.touch0[1] = A.invert(this.touch0[0])), this.touch1 && m !== \"touch\" && (this.touch1[1] = A.invert(this.touch1[0])), this.that.__zoom = A, this.emit(\"zoom\"), this;\n },\n end: function() {\n return --this.active === 0 && (delete this.that.__zooming, this.emit(\"end\")), this;\n },\n emit: function(m) {\n var A = we(this.that).datum();\n u.call(\n m,\n this.that,\n new Wc(m, {\n sourceEvent: this.sourceEvent,\n target: y,\n type: m,\n transform: this.that.__zoom,\n dispatch: u\n }),\n A\n );\n }\n };\n function P(m, ...A) {\n if (!e.apply(this, arguments))\n return;\n var E = T(this, A).event(m), G = this.__zoom, Z = Math.max(r[0], Math.min(r[1], G.k * Math.pow(2, o.apply(this, arguments)))), K = Ne(m);\n if (E.wheel)\n (E.mouse[0][0] !== K[0] || E.mouse[0][1] !== K[1]) && (E.mouse[1] = G.invert(E.mouse[0] = K)), clearTimeout(E.wheel);\n else {\n if (G.k === Z)\n return;\n E.mouse = [K, G.invert(K)], Ft(this), E.start();\n }\n vt(m), E.wheel = setTimeout(z, h), E.zoom(\"mouse\", n(V(S(G, Z), E.mouse[0], E.mouse[1]), E.extent, a));\n function z() {\n E.wheel = null, E.end();\n }\n }\n function R(m, ...A) {\n if (g || !e.apply(this, arguments))\n return;\n var E = m.currentTarget, G = T(this, A, !0).event(m), Z = we(m.view).on(\"mousemove.zoom\", B, !0).on(\"mouseup.zoom\", q, !0), K = Ne(m, E), z = m.clientX, W = m.clientY;\n Ki(m.view), Tn(m), G.mouse = [K, this.__zoom.invert(K)], Ft(this), G.start();\n function B(te) {\n if (vt(te), !G.moved) {\n var re = te.clientX - z, k = te.clientY - W;\n G.moved = re * re + k * k > d;\n }\n G.event(te).zoom(\"mouse\", n(V(G.that.__zoom, G.mouse[0] = Ne(te, E), G.mouse[1]), G.extent, a));\n }\n function q(te) {\n Z.on(\"mousemove.zoom mouseup.zoom\", null), qi(te.view, G.moved), vt(te), G.event(te).end();\n }\n }\n function $(m, ...A) {\n if (e.apply(this, arguments)) {\n var E = this.__zoom, G = Ne(m.changedTouches ? m.changedTouches[0] : m, this), Z = E.invert(G), K = E.k * (m.shiftKey ? 0.5 : 2), z = n(V(S(E, K), G, Z), t.apply(this, A), a);\n vt(m), s > 0 ? we(this).transition().duration(s).call(N, z, G, m) : we(this).call(y.transform, z, G, m);\n }\n }\n function D(m, ...A) {\n if (e.apply(this, arguments)) {\n var E = m.touches, G = E.length, Z = T(this, A, m.changedTouches.length === G).event(m), K, z, W, B;\n for (Tn(m), z = 0; z < G; ++z)\n W = E[z], B = Ne(W, this), B = [B, this.__zoom.invert(B), W.identifier], Z.touch0 ? !Z.touch1 && Z.touch0[2] !== B[2] && (Z.touch1 = B, Z.taps = 0) : (Z.touch0 = B, K = !0, Z.taps = 1 + !!c);\n c && (c = clearTimeout(c)), K && (Z.taps < 2 && (v = B[0], c = setTimeout(function() {\n c = null;\n }, x)), Ft(this), Z.start());\n }\n }\n function Q(m, ...A) {\n if (this.__zooming) {\n var E = T(this, A).event(m), G = m.changedTouches, Z = G.length, K, z, W, B;\n for (vt(m), K = 0; K < Z; ++K)\n z = G[K], W = Ne(z, this), E.touch0 && E.touch0[2] === z.identifier ? E.touch0[0] = W : E.touch1 && E.touch1[2] === z.identifier && (E.touch1[0] = W);\n if (z = E.that.__zoom, E.touch1) {\n var q = E.touch0[0], te = E.touch0[1], re = E.touch1[0], k = E.touch1[1], H = (H = re[0] - q[0]) * H + (H = re[1] - q[1]) * H, f = (f = k[0] - te[0]) * f + (f = k[1] - te[1]) * f;\n z = S(z, Math.sqrt(H / f)), W = [(q[0] + re[0]) / 2, (q[1] + re[1]) / 2], B = [(te[0] + k[0]) / 2, (te[1] + k[1]) / 2];\n } else if (E.touch0)\n W = E.touch0[0], B = E.touch0[1];\n else\n return;\n E.zoom(\"touch\", n(V(z, W, B), E.extent, a));\n }\n }\n function ee(m, ...A) {\n if (this.__zooming) {\n var E = T(this, A).event(m), G = m.changedTouches, Z = G.length, K, z;\n for (Tn(m), g && clearTimeout(g), g = setTimeout(function() {\n g = null;\n }, x), K = 0; K < Z; ++K)\n z = G[K], E.touch0 && E.touch0[2] === z.identifier ? delete E.touch0 : E.touch1 && E.touch1[2] === z.identifier && delete E.touch1;\n if (E.touch1 && !E.touch0 && (E.touch0 = E.touch1, delete E.touch1), E.touch0)\n E.touch0[1] = this.__zoom.invert(E.touch0[0]);\n else if (E.end(), E.taps === 2 && (z = Ne(z, this), Math.hypot(v[0] - z[0], v[1] - z[1]) < w)) {\n var W = we(this).on(\"dblclick.zoom\");\n W && W.apply(this, arguments);\n }\n }\n }\n return y.wheelDelta = function(m) {\n return arguments.length ? (o = typeof m == \"function\" ? m : Rt(+m), y) : o;\n }, y.filter = function(m) {\n return arguments.length ? (e = typeof m == \"function\" ? m : Rt(!!m), y) : e;\n }, y.touchable = function(m) {\n return arguments.length ? (i = typeof m == \"function\" ? m : Rt(!!m), y) : i;\n }, y.extent = function(m) {\n return arguments.length ? (t = typeof m == \"function\" ? m : Rt([[+m[0][0], +m[0][1]], [+m[1][0], +m[1][1]]]), y) : t;\n }, y.scaleExtent = function(m) {\n return arguments.length ? (r[0] = +m[0], r[1] = +m[1], y) : [r[0], r[1]];\n }, y.translateExtent = function(m) {\n return arguments.length ? (a[0][0] = +m[0][0], a[1][0] = +m[1][0], a[0][1] = +m[0][1], a[1][1] = +m[1][1], y) : [[a[0][0], a[0][1]], [a[1][0], a[1][1]]];\n }, y.constrain = function(m) {\n return arguments.length ? (n = m, y) : n;\n }, y.duration = function(m) {\n return arguments.length ? (s = +m, y) : s;\n }, y.interpolate = function(m) {\n return arguments.length ? (l = m, y) : l;\n }, y.on = function() {\n var m = u.on.apply(u, arguments);\n return m === u ? y : m;\n }, y.clickDistance = function(m) {\n return arguments.length ? (d = (m = +m) * m, y) : Math.sqrt(d);\n }, y.tapDistance = function(m) {\n return arguments.length ? (w = +m, y) : w;\n }, y;\n}\nconst In = 0.1;\nfunction Ge() {\n}\nconst td = {\n zoomIn: Ge,\n zoomOut: Ge,\n zoomTo: Ge,\n fitView: Ge,\n setCenter: Ge,\n fitBounds: Ge,\n project: (e) => e,\n setTransform: Ge,\n getTransform: () => ({ x: 0, y: 0, zoom: 1 }),\n initialized: !1\n}, nd = (e, t) => {\n const n = e, o = M(n, \"nodes\"), i = M(n, \"d3Zoom\"), r = M(n, \"d3Selection\"), a = M(n, \"dimensions\"), s = M(n, \"translateExtent\"), l = M(n, \"minZoom\"), u = M(n, \"maxZoom\"), c = M(n, \"viewport\"), v = M(n, \"snapToGrid\"), g = M(n, \"snapGrid\"), x = M(n, \"hooks\"), h = t, d = M(h, \"getNodes\"), w = ie(!1);\n x.value.nodesInitialized.on(() => {\n w.value = !0;\n });\n const y = J(() => !!i.value && !!r.value && !!a.value.width && !!a.value.height && w.value);\n function S(p, N) {\n r.value && i.value && i.value.scaleBy(Pn(r.value, N), p);\n }\n function V(p, N, T, _) {\n const { x: P, y: R } = so({ x: -p, y: -N }, s.value), $ = et.translate(-P, -R).scale(T);\n r.value && i.value && i.value.transform(Pn(r.value, _), $);\n }\n return J(() => y.value ? {\n initialized: !0,\n zoomIn: (p) => {\n S(1.2, p == null ? void 0 : p.duration);\n },\n zoomOut: (p) => {\n S(1 / 1.2, p == null ? void 0 : p.duration);\n },\n zoomTo: (p, N) => {\n r.value && i.value && i.value.scaleTo(Pn(r.value, N == null ? void 0 : N.duration), p);\n },\n setTransform: (p, N) => {\n V(p.x, p.y, p.zoom, N == null ? void 0 : N.duration);\n },\n getTransform: () => ({\n x: c.value.x,\n y: c.value.y,\n zoom: c.value.zoom\n }),\n fitView: (p = {\n padding: In,\n includeHiddenNodes: !1,\n duration: 0\n }) => {\n if (!o.value.length)\n return;\n const N = (p.includeHiddenNodes ? o.value : d.value).filter(($) => {\n var ee;\n const D = $.initialized && $.dimensions.width && $.dimensions.height;\n let Q = !0;\n return (ee = p.nodes) != null && ee.length && (Q = p.nodes.includes($.id)), D && Q;\n }), T = co(N), { x: _, y: P, zoom: R } = Zt(\n T,\n a.value.width,\n a.value.height,\n p.minZoom ?? l.value,\n p.maxZoom ?? u.value,\n p.padding ?? In,\n p.offset\n );\n V(_, P, R, p == null ? void 0 : p.duration);\n },\n setCenter: (p, N, T) => {\n const _ = typeof (T == null ? void 0 : T.zoom) < \"u\" ? T.zoom : u.value, P = a.value.width / 2 - p * _, R = a.value.height / 2 - N * _;\n V(P, R, _, T == null ? void 0 : T.duration);\n },\n fitBounds: (p, N = { padding: In }) => {\n const { x: T, y: _, zoom: P } = Zt(\n p,\n a.value.width,\n a.value.height,\n l.value,\n u.value,\n N.padding\n );\n V(T, _, P, N == null ? void 0 : N.duration);\n },\n project: (p) => uo(p, c.value, v.value, g.value)\n } : td);\n};\nfunction Pn(e, t = 0) {\n return e.transition().duration(t);\n}\nfunction Dn(e, t) {\n if (t) {\n const n = e.position.x + e.dimensions.width - t.dimensions.width, o = e.position.y + e.dimensions.height - t.dimensions.height;\n if (n > 0 || o > 0 || e.position.x < 0 || e.position.y < 0) {\n let i = {};\n if (Ae(t.style) ? i = { ...t.style(t) } : t.style && (i = { ...t.style }), i.width = i.width ?? `${t.dimensions.width}px`, i.height = i.height ?? `${t.dimensions.height}px`, n > 0)\n if (Pe(i.width)) {\n const r = Number(i.width.replace(\"px\", \"\"));\n i.width = `${r + n}px`;\n } else\n i.width += n;\n if (o > 0)\n if (Pe(i.height)) {\n const r = Number(i.height.replace(\"px\", \"\"));\n i.height = `${r + o}px`;\n } else\n i.height += o;\n if (e.position.x < 0) {\n const r = Math.abs(e.position.x);\n if (t.position.x = t.position.x - r, Pe(i.width)) {\n const a = Number(i.width.replace(\"px\", \"\"));\n i.width = `${a + r}px`;\n } else\n i.width += r;\n e.position.x = 0;\n }\n if (e.position.y < 0) {\n const r = Math.abs(e.position.y);\n if (t.position.y = t.position.y - r, Pe(i.height)) {\n const a = Number(i.height.replace(\"px\", \"\"));\n i.height = `${a + r}px`;\n } else\n i.height += r;\n e.position.y = 0;\n }\n t.dimensions.width = Number(i.width.toString().replace(\"px\", \"\")), t.dimensions.height = Number(i.height.toString().replace(\"px\", \"\")), Ae(t.style) ? t.style = (r) => {\n const a = t.style;\n return {\n ...a(r),\n ...i\n };\n } : t.style = {\n ...t.style,\n ...i\n };\n }\n }\n}\nfunction nn(e, t) {\n e.filter((i) => i.type === \"add\" || i.type === \"remove\").forEach((i) => {\n if (i.type === \"add\")\n t.findIndex((a) => a.id === i.item.id) === -1 && t.push(i.item);\n else if (i.type === \"remove\") {\n const r = t.findIndex((a) => a.id === i.id);\n r !== -1 && t.splice(r, 1);\n }\n });\n const o = t.map((i) => i.id);\n return t.forEach((i) => {\n var a, s;\n const r = e.filter((l) => l.id === i.id);\n for (const l of r)\n switch (l.type) {\n case \"select\":\n i.selected = l.selected;\n break;\n case \"position\":\n if (nt(i) && (typeof l.position < \"u\" && (i.position = l.position), typeof l.dragging < \"u\" && (i.dragging = l.dragging), i.expandParent && i.parentNode)) {\n const u = t[o.indexOf(i.parentNode)];\n u && nt(u) && Dn(i, u);\n }\n break;\n case \"dimensions\":\n if (nt(i)) {\n if (typeof l.dimensions < \"u\" && (i.dimensions = l.dimensions), typeof l.updateStyle < \"u\" && (i.style = {\n ...i.style || {},\n width: `${(a = l.dimensions) == null ? void 0 : a.width}px`,\n height: `${(s = l.dimensions) == null ? void 0 : s.height}px`\n }), typeof l.resizing < \"u\" && (i.resizing = l.resizing), i.expandParent && i.parentNode) {\n const u = t[o.indexOf(i.parentNode)];\n u && nt(u) && (u.initialized ? Dn(i, u) : Ue(() => {\n Dn(i, u);\n }));\n }\n i.initialized || (i.initialized = !0);\n }\n break;\n }\n }), t;\n}\nfunction Vd(e, t) {\n return nn(e, t);\n}\nfunction Hd(e, t) {\n return nn(e, t);\n}\nfunction Te(e, t) {\n return {\n id: e,\n type: \"select\",\n selected: t\n };\n}\nfunction di(e) {\n return {\n item: e,\n type: \"add\"\n };\n}\nfunction zn(e) {\n return {\n id: e,\n type: \"remove\"\n };\n}\nfunction An(e, t) {\n return e.reduce(\n (n, o) => {\n let i = t.includes(o.id);\n ce(o.selectable) && !o.selectable && (i = !1);\n const r = nt(o) ? \"changedNodes\" : \"changedEdges\";\n return !o.selected && i ? n[r].push(Te(o.id, !0)) : o.selected && !i && n[r].push(Te(o.id, !1)), n;\n },\n { changedNodes: [], changedEdges: [] }\n );\n}\nfunction od(e, t, n, o) {\n let i = !1;\n const r = nd(e, t), a = (f) => {\n const b = f ?? n.value ?? [];\n e.hooks.updateNodeInternals.trigger(b);\n }, s = (f) => {\n if (f)\n return e.nodes && !n.value.length ? e.nodes.find((b) => b.id === f) : e.nodes[n.value.indexOf(f)];\n }, l = (f) => {\n if (f)\n return e.edges && !o.value.length ? e.edges.find((b) => b.id === f) : e.edges[o.value.indexOf(f)];\n }, u = (f, b, L) => {\n const I = [];\n f.forEach((F) => {\n var Y, ne;\n const U = {\n id: F.id,\n type: \"position\",\n dragging: L,\n from: F.from\n };\n if (b && (U.position = F.position, F.parentNode)) {\n const O = s(F.parentNode);\n U.position = {\n x: U.position.x - (((Y = O == null ? void 0 : O.computedPosition) == null ? void 0 : Y.x) ?? 0),\n y: U.position.y - (((ne = O == null ? void 0 : O.computedPosition) == null ? void 0 : ne.y) ?? 0)\n };\n }\n I.push(U);\n }), I != null && I.length && e.hooks.nodesChange.trigger(I);\n }, c = (f) => {\n var F;\n if (!e.vueFlowRef)\n return;\n const b = e.vueFlowRef.querySelector(\".vue-flow__transformationpane\");\n if (!b)\n return;\n let L;\n if ((F = e.__experimentalFeatures) != null && F.nestedFlow) {\n let U = [b], Y = b, ne;\n for (; !ne && Y; )\n Y = Y.parentElement, ne = Y == null ? void 0 : Y.classList.contains(\"vue-flow__transformationpane\"), ne && (U = [Y, ...U]);\n U.forEach((O) => {\n const ae = window.getComputedStyle(O), { m22: me } = new window.DOMMatrixReadOnly(ae.transform);\n L ? L *= me : L = me;\n });\n } else {\n const U = window.getComputedStyle(b), { m22: Y } = new window.DOMMatrixReadOnly(U.transform);\n L = Y;\n }\n const I = f.reduce((U, Y) => {\n const ne = s(Y.id);\n if (ne) {\n const O = rn(Y.nodeElement);\n !!(O.width && O.height && (ne.dimensions.width !== O.width || ne.dimensions.height !== O.height || Y.forceUpdate)) && (ne.handleBounds.source = Lo(\".source\", Y.nodeElement, L), ne.handleBounds.target = Lo(\".target\", Y.nodeElement, L), ne.dimensions = O, ne.initialized = !0, U.push({\n id: ne.id,\n type: \"dimensions\",\n dimensions: O\n }));\n }\n return U;\n }, []);\n e.fitViewOnInit && !i && (ye(() => r.value.initialized).toBe(!0).then(() => {\n r.value.fitView();\n }), i = !0), I.length && e.hooks.nodesChange.trigger(I);\n }, v = (f, b) => {\n const L = f.map((U) => U.id);\n let I, F = [];\n if (e.multiSelectionActive)\n I = L.map((U) => Te(U, b));\n else {\n const U = An([...e.nodes, ...e.edges], L);\n I = U.changedNodes, F = U.changedEdges;\n }\n I.length && e.hooks.nodesChange.trigger(I), F.length && e.hooks.edgesChange.trigger(F);\n }, g = (f, b) => {\n const L = f.map((U) => U.id);\n let I = [], F;\n if (e.multiSelectionActive)\n F = L.map((U) => Te(U, b));\n else {\n const U = An([...e.nodes, ...e.edges], L);\n I = U.changedNodes, F = U.changedEdges;\n }\n I.length && e.hooks.nodesChange.trigger(I), F.length && e.hooks.edgesChange.trigger(F);\n }, x = (f, b) => {\n const L = f.filter(xt).map((Y) => Y.id), I = f.filter($e).map((Y) => Y.id);\n let { changedNodes: F, changedEdges: U } = An([...e.nodes, ...e.edges], [...L, ...I]);\n e.multiSelectionActive && (F = L.map((Y) => Te(Y, b)), U = I.map((Y) => Te(Y, b))), F.length && e.hooks.nodesChange.trigger(F), U.length && e.hooks.edgesChange.trigger(U);\n }, h = (f) => {\n v(f, !0);\n }, d = (f) => {\n g(f, !0);\n }, w = (f) => {\n x(f, !0);\n }, y = (f) => {\n if (!f.length)\n return v(f, !1);\n const L = f.map((I) => I.id).map((I) => Te(I, !1));\n L.length && e.hooks.nodesChange.trigger(L);\n }, S = (f) => {\n if (!f.length)\n return g(f, !1);\n const L = f.map((I) => I.id).map((I) => Te(I, !1));\n L.length && e.hooks.edgesChange.trigger(L);\n }, V = (f) => {\n if (!f || !f.length)\n return x([], !1);\n const { changedNodes: b, changedEdges: L } = f.reduce(\n (I, F) => {\n const U = Te(F.id, !1);\n return xt(F) ? I.changedNodes.push(U) : I.changedEdges.push(U), I;\n },\n { changedNodes: [], changedEdges: [] }\n );\n b.length && e.hooks.nodesChange.trigger(b), L.length && e.hooks.edgesChange.trigger(L);\n }, p = (f) => {\n var b;\n (b = e.d3Zoom) == null || b.scaleExtent([f, e.maxZoom]), e.minZoom = f;\n }, N = (f) => {\n var b;\n (b = e.d3Zoom) == null || b.scaleExtent([e.minZoom, f]), e.maxZoom = f;\n }, T = (f) => {\n var b;\n (b = e.d3Zoom) == null || b.translateExtent(f), e.translateExtent = f;\n }, _ = (f) => {\n e.nodeExtent = f, a(n.value);\n }, P = (f) => {\n e.nodesDraggable = f, e.nodesConnectable = f, e.elementsSelectable = f;\n }, R = (f) => {\n const b = f instanceof Function ? f(e.nodes) : f;\n !e.initialized && !b.length || (e.nodes = Do(b, e.nodes, s, e.hooks.error.trigger));\n }, $ = (f) => {\n const b = f instanceof Function ? f(e.edges) : f;\n if (!e.initialized && !b.length)\n return;\n const L = e.isValidConnection ? b.filter(\n (I) => e.isValidConnection(I, {\n edges: e.edges,\n sourceNode: s(I.source),\n targetNode: s(I.target)\n })\n ) : b;\n e.edges = L.reduce((I, F) => {\n const U = s(F.source), Y = s(F.target), ne = !U || typeof U > \"u\", O = !Y || typeof Y > \"u\";\n if (ne && O ? e.hooks.error.trigger(new ve(he.EDGE_SOURCE_TARGET_MISSING, F.id, F.source, F.target)) : (ne && e.hooks.error.trigger(new ve(he.EDGE_SOURCE_MISSING, F.id, F.source)), O && e.hooks.error.trigger(new ve(he.EDGE_TARGET_MISSING, F.id, F.target))), ne || O)\n return I;\n const ae = l(F.id);\n return I.push({\n ...lo(F, Object.assign({}, ae, e.defaultEdgeOptions)),\n sourceNode: U,\n targetNode: Y\n }), I;\n }, []);\n }, D = (f) => {\n const b = f instanceof Function ? f([...e.nodes, ...e.edges]) : f;\n !e.initialized && !b.length || (R(b.filter(xt)), $(b.filter($e)));\n }, Q = (f) => {\n const b = f instanceof Function ? f(e.nodes) : f, I = Do(b, e.nodes, s, e.hooks.error.trigger).map(di);\n I.length && e.hooks.nodesChange.trigger(I);\n }, ee = (f) => {\n const b = f instanceof Function ? f(e.edges) : f, I = (e.isValidConnection ? b.filter(\n (F) => e.isValidConnection(F, {\n edges: e.edges,\n sourceNode: s(F.source),\n targetNode: s(F.target)\n })\n ) : b).reduce((F, U) => {\n const Y = pa(\n {\n ...U,\n ...e.defaultEdgeOptions\n },\n e.edges,\n e.hooks.error.trigger\n );\n if (Y) {\n const ne = s(Y.source), O = s(Y.target), ae = !ne || typeof ne > \"u\", me = !O || typeof O > \"u\";\n if (ae && me ? e.hooks.error.trigger(new ve(he.EDGE_SOURCE_TARGET_MISSING, Y.id, Y.source, Y.target)) : (ae && e.hooks.error.trigger(new ve(he.EDGE_SOURCE_MISSING, Y.id, Y.source)), me && e.hooks.error.trigger(new ve(he.EDGE_TARGET_MISSING, Y.id, Y.target))), ae || me)\n return F;\n F.push(\n di({\n ...Y,\n sourceNode: ne,\n targetNode: O\n })\n );\n }\n return F;\n }, []);\n I.length && e.hooks.edgesChange.trigger(I);\n }, m = (f, b = !0) => {\n const L = f instanceof Function ? f(e.nodes) : f, I = [], F = [];\n L.forEach((U) => {\n const Y = typeof U == \"string\" ? s(U) : U;\n if (!(ce(Y.deletable) && !Y.deletable) && (I.push(zn(Y.id)), b)) {\n const ne = sn([Y], e.edges).filter((O) => ce(O.deletable) ? O.deletable : !0);\n F.push(...ne.map((O) => zn(O.id)));\n }\n }), F.length && e.hooks.edgesChange.trigger(F), I.length && e.hooks.nodesChange.trigger(I);\n }, A = (f) => {\n const b = f instanceof Function ? f(e.edges) : f, L = [];\n b.forEach((I) => {\n const F = typeof I == \"string\" ? l(I) : I;\n ce(F.deletable) && !F.deletable || L.push(zn(typeof I == \"string\" ? I : I.id));\n }), e.hooks.edgesChange.trigger(L);\n }, E = (f, b, L = !0) => ya(f, b, e.edges, l, L, e.hooks.error.trigger), G = (f) => nn(f, e.nodes), Z = (f) => nn(f, e.edges), K = (f, b, L, I = !1) => {\n I ? e.connectionClickStartHandle = f : e.connectionStartHandle = f, e.connectionEndHandle = null, e.connectionStatus = null, b && (e.connectionPosition = b);\n }, z = (f, b = null, L = null) => {\n e.connectionStartHandle && (e.connectionPosition = f, e.connectionEndHandle = b, e.connectionStatus = L);\n }, W = (f, b) => {\n e.connectionPosition = { x: NaN, y: NaN }, e.connectionStatus = null, b ? e.connectionClickStartHandle = null : e.connectionStartHandle = null;\n }, B = (f) => {\n const b = ha(f), L = b ? null : s(f.id);\n return !b && !L ? [null, null, b] : [b ? f : Io(L), L, b];\n }, q = (f, b = !0, L) => {\n const [I, F, U] = B(f);\n return I ? (L || e.nodes).filter((Y) => {\n if (!U && (Y.id === F.id || !Y.computedPosition))\n return !1;\n const ne = Io(Y), O = Fn(ne, I);\n return b && O > 0 || O >= Number(f.width) * Number(f.height);\n }) : [];\n }, te = (f, b, L = !0) => {\n const [I] = B(f);\n if (!I)\n return !1;\n const F = Fn(I, b);\n return L && F > 0 || F >= Number(f.width) * Number(f.height);\n }, re = (f) => {\n const { viewport: b, dimensions: L, d3Zoom: I, d3Selection: F, translateExtent: U } = e;\n if (!I || !F || !f.x && !f.y)\n return !1;\n const Y = et.translate(b.x + f.x, b.y + f.y).scale(b.zoom), ne = [\n [0, 0],\n [L.width, L.height]\n ], O = I.constrain()(Y, ne, U), ae = e.viewport.x !== O.x || e.viewport.y !== O.y || e.viewport.zoom !== O.k;\n return I.transform(F, O), ae;\n }, k = (f) => {\n const b = f instanceof Function ? f(e) : f, L = [\n \"modelValue\",\n \"nodes\",\n \"edges\",\n \"maxZoom\",\n \"minZoom\",\n \"translateExtent\",\n \"nodeExtent\",\n \"hooks\",\n \"defaultEdgeOptions\"\n ], I = [\n \"d3Zoom\",\n \"d3Selection\",\n \"d3ZoomHandler\",\n \"viewportRef\",\n \"vueFlowRef\",\n \"dimensions\",\n \"hooks\"\n ];\n ce(b.defaultEdgeOptions) && (e.defaultEdgeOptions = b.defaultEdgeOptions);\n const F = b.modelValue || b.nodes || b.edges ? [] : void 0;\n F && (b.modelValue && F.push(...b.modelValue), b.nodes && F.push(...b.nodes), b.edges && F.push(...b.edges), D(F));\n const U = () => {\n ce(b.maxZoom) && N(b.maxZoom), ce(b.minZoom) && p(b.minZoom), ce(b.translateExtent) && T(b.translateExtent), ce(b.nodeExtent) && _(b.nodeExtent);\n };\n Object.keys(b).forEach((Y) => {\n const ne = Y, O = b[ne];\n ![...L, ...I].includes(ne) && ce(O) && (e[ne] = O);\n }), e.d3Zoom ? U() : ye(() => e.d3Zoom).not.toBeUndefined().then(U), e.initialized || (e.initialized = !0);\n };\n return {\n updateNodePositions: u,\n updateNodeDimensions: c,\n setElements: D,\n setNodes: R,\n setEdges: $,\n addNodes: Q,\n addEdges: ee,\n removeNodes: m,\n removeEdges: A,\n findNode: s,\n findEdge: l,\n updateEdge: E,\n applyEdgeChanges: Z,\n applyNodeChanges: G,\n addSelectedElements: w,\n addSelectedNodes: h,\n addSelectedEdges: d,\n setMinZoom: p,\n setMaxZoom: N,\n setTranslateExtent: T,\n setNodeExtent: _,\n removeSelectedElements: V,\n removeSelectedNodes: y,\n removeSelectedEdges: S,\n startConnection: K,\n updateConnection: z,\n endConnection: W,\n setInteractive: P,\n setState: k,\n getIntersectingNodes: q,\n isNodeIntersecting: te,\n panBy: re,\n fitView: async (f = { padding: 0.1 }) => {\n await ye(() => r.value.initialized).toBe(!0), r.value.fitView(f);\n },\n zoomIn: async (f) => {\n await ye(() => r.value.initialized).toBe(!0), r.value.zoomIn(f);\n },\n zoomOut: async (f) => {\n await ye(() => r.value.initialized).toBe(!0), r.value.zoomOut(f);\n },\n zoomTo: async (f, b) => {\n await ye(() => r.value.initialized).toBe(!0), r.value.zoomTo(f, b);\n },\n setTransform: async (f, b) => {\n await ye(() => r.value.initialized).toBe(!0), r.value.setTransform(f, b);\n },\n getTransform: () => r.value.getTransform(),\n setCenter: async (f, b, L) => {\n await ye(() => r.value.initialized).toBe(!0), r.value.setCenter(f, b, L);\n },\n fitBounds: async (f, b) => {\n await ye(() => r.value.initialized).toBe(!0), r.value.fitBounds(f, b);\n },\n project: (f) => r.value.project(f),\n toObject: () => JSON.parse(\n JSON.stringify({\n nodes: e.nodes.map((f) => {\n const {\n computedPosition: b,\n handleBounds: L,\n selected: I,\n dimensions: F,\n isParent: U,\n resizing: Y,\n dragging: ne,\n initialized: O,\n ...ae\n } = f;\n return ae;\n }),\n edges: e.edges.map((f) => {\n const { selected: b, sourceNode: L, targetNode: I, ...F } = f;\n return F;\n }),\n position: [e.viewport.x, e.viewport.y],\n zoom: e.viewport.zoom\n })\n ),\n updateNodeInternals: a,\n $reset: () => {\n const f = ar();\n if (e.edges = [], e.nodes = [], e.d3Zoom && e.d3Selection) {\n const b = et.translate(f.defaultViewport.x ?? 0, f.defaultViewport.y ?? 0).scale(je(f.defaultViewport.zoom ?? 1, f.minZoom, f.maxZoom)), L = e.viewportRef.getBoundingClientRect(), I = [\n [0, 0],\n [L.width, L.height]\n ], F = e.d3Zoom.constrain()(b, I, f.translateExtent);\n e.d3Zoom.transform(e.d3Selection, F);\n }\n k(f);\n },\n $destroy: () => {\n }\n };\n}\nclass ot {\n constructor() {\n this.currentId = 0, this.flows = /* @__PURE__ */ new Map();\n }\n static getInstance() {\n return ot.instance || (ot.instance = new ot()), ot.instance;\n }\n set(t, n) {\n return this.flows.set(t, n);\n }\n get(t) {\n return this.flows.get(t);\n }\n remove(t) {\n return this.flows.delete(t);\n }\n create(t, n) {\n const o = ar(n), i = kr(o), r = J(() => i.nodes.map((g) => g.id)), a = J(() => i.edges.map((g) => g.id)), s = cu(i, r, a), l = od(i, s, r, a), u = {};\n Object.entries(i.hooks).forEach(([g, x]) => {\n const h = `on${g.charAt(0).toUpperCase() + g.slice(1)}`;\n u[h] = x.on;\n });\n const c = {};\n Object.entries(i.hooks).forEach(([g, x]) => {\n c[g] = x.trigger;\n }), l.setState(i);\n const v = {\n ...u,\n ...s,\n ...l,\n ...Or(i),\n emits: c,\n id: t,\n vueFlowVersion: \"1.19.4\",\n $destroy: () => {\n this.remove(t);\n }\n };\n return this.set(t, v), v;\n }\n getId() {\n return `vue-flow-${this.currentId++}`;\n }\n}\nconst fe = (e) => {\n const t = ot.getInstance(), n = hi(), o = e == null ? void 0 : e.id, i = (n == null ? void 0 : n.vueFlowId) || o;\n let r, a = !1;\n if (n) {\n const s = He(zo, null);\n typeof s < \"u\" && s !== null && (r = s);\n }\n if (r || i && (r = t.get(i)), !r || r && o && o !== r.id) {\n const s = o ?? t.getId();\n r = t.create(s, e), n && (a = !0);\n } else\n e && r.setState(e);\n return n && (ut(zo, r), n.vueFlowId = r.id, a && Mt(() => {\n if (r) {\n const s = t.get(r.id);\n s ? s.$destroy() : wt(`No store instance found for id ${r.id} in storage.`);\n }\n })), r;\n};\nfunction id(e, t, n) {\n const o = Tr();\n return o.run(() => {\n [\n () => {\n o.run(() => {\n let h, d, w = !!(n.nodes.value.length || n.edges.value.length);\n h = tt([e.modelValue, () => {\n var y, S;\n return (S = (y = e.modelValue) == null ? void 0 : y.value) == null ? void 0 : S.length;\n }], ([y]) => {\n y && Array.isArray(y) && (d == null || d.pause(), n.setElements(y), !d && !w && y.length ? w = !0 : d == null || d.resume());\n }), d = tt(\n [n.nodes, n.edges, () => n.edges.value.length, () => n.nodes.value.length],\n ([y, S]) => {\n var V;\n (V = e.modelValue) != null && V.value && Array.isArray(e.modelValue.value) && (h == null || h.pause(), e.modelValue.value = [...y, ...S], Ue(() => {\n h == null || h.resume();\n }));\n },\n { immediate: w }\n ), Vt(() => {\n h == null || h.stop(), d == null || d.stop();\n });\n });\n },\n () => {\n o.run(() => {\n let h, d, w = !!n.nodes.value.length;\n h = tt([e.nodes, () => {\n var y, S;\n return (S = (y = e.nodes) == null ? void 0 : y.value) == null ? void 0 : S.length;\n }], ([y]) => {\n y && Array.isArray(y) && (d == null || d.pause(), n.setNodes(y), !d && !w && y.length ? w = !0 : d == null || d.resume());\n }), d = tt(\n [n.nodes, () => n.nodes.value.length],\n ([y]) => {\n var S;\n (S = e.nodes) != null && S.value && Array.isArray(e.nodes.value) && (h == null || h.pause(), e.nodes.value = [...y], Ue(() => {\n h == null || h.resume();\n }));\n },\n { immediate: w }\n ), Vt(() => {\n h == null || h.stop(), d == null || d.stop();\n });\n });\n },\n () => {\n o.run(() => {\n let h, d, w = !!n.edges.value.length;\n h = tt([e.edges, () => {\n var y, S;\n return (S = (y = e.edges) == null ? void 0 : y.value) == null ? void 0 : S.length;\n }], ([y]) => {\n y && Array.isArray(y) && (d == null || d.pause(), n.setEdges(y), !d && !w && y.length ? w = !0 : d == null || d.resume());\n }), d = tt(\n [n.edges, () => n.edges.value.length],\n ([y]) => {\n var S;\n (S = e.edges) != null && S.value && Array.isArray(e.edges.value) && (h == null || h.pause(), e.edges.value = [...y], Ue(() => {\n h == null || h.resume();\n }));\n },\n { immediate: w }\n ), Vt(() => {\n h == null || h.stop(), d == null || d.stop();\n });\n });\n },\n () => {\n o.run(() => {\n de(\n () => t.minZoom,\n () => {\n t.minZoom && ce(t.minZoom) && n.setMinZoom(t.minZoom);\n }\n );\n });\n },\n () => {\n o.run(() => {\n de(\n () => t.maxZoom,\n () => {\n t.maxZoom && ce(t.maxZoom) && n.setMaxZoom(t.maxZoom);\n }\n );\n });\n },\n () => {\n o.run(() => {\n de(\n () => t.translateExtent,\n () => {\n t.translateExtent && ce(t.translateExtent) && n.setTranslateExtent(t.translateExtent);\n }\n );\n });\n },\n () => {\n o.run(() => {\n de(\n () => t.nodeExtent,\n () => {\n t.nodeExtent && ce(t.nodeExtent) && n.setNodeExtent(t.nodeExtent);\n }\n );\n });\n },\n () => {\n o.run(() => {\n de(\n () => t.applyDefault,\n () => {\n ce(t.applyDefault) && (n.applyDefault.value = t.applyDefault);\n }\n ), de(\n n.applyDefault,\n (h, d, w) => {\n n.applyDefault.value ? (n.onNodesChange(n.applyNodeChanges), n.onEdgesChange(n.applyEdgeChanges)) : (n.hooks.value.nodesChange.off(n.applyNodeChanges), n.hooks.value.edgesChange.off(n.applyEdgeChanges)), w(() => {\n n.hooks.value.nodesChange.off(n.applyNodeChanges), n.hooks.value.edgesChange.off(n.applyEdgeChanges);\n });\n },\n { immediate: !0 }\n );\n });\n },\n () => {\n o.run(() => {\n const h = async (d) => {\n let w = d;\n Ae(t.autoConnect) && (w = await t.autoConnect(d)), w !== !1 && n.addEdges([w]);\n };\n de(\n () => t.autoConnect,\n () => {\n ce(t.autoConnect) && (n.autoConnect.value = t.autoConnect);\n }\n ), de(\n n.autoConnect,\n (d, w, y) => {\n d ? n.onConnect(h) : n.hooks.value.connect.off(h), y(() => {\n n.hooks.value.connect.off(h);\n });\n },\n { immediate: !0 }\n );\n });\n },\n () => {\n const h = [\n \"id\",\n \"modelValue\",\n \"translateExtent\",\n \"nodeExtent\",\n \"edges\",\n \"nodes\",\n \"maxZoom\",\n \"minZoom\",\n \"applyDefault\",\n \"autoConnect\"\n ];\n Object.keys(t).forEach((d) => {\n if (!h.includes(d)) {\n const w = M(t, d), y = n[d];\n o.run(() => {\n de(\n w,\n (S) => {\n ce(S) && (y.value = S);\n },\n { flush: \"pre\" }\n );\n });\n }\n });\n }\n ].forEach((h) => h());\n }), () => o.stop();\n}\nfunction fi(e, t) {\n return {\n x: e.clientX - t.left,\n y: e.clientY - t.top\n };\n}\nconst rd = {\n name: \"Pane\",\n compatConfig: { MODE: 3 }\n}, ad = /* @__PURE__ */ ge({\n ...rd,\n props: {\n isSelecting: { type: Boolean }\n },\n setup(e) {\n const {\n id: t,\n vueFlowRef: n,\n getNodes: o,\n getEdges: i,\n viewport: r,\n emits: a,\n userSelectionActive: s,\n removeSelectedElements: l,\n panOnDrag: u,\n userSelectionRect: c,\n elementsSelectable: v,\n nodesSelectionActive: g,\n addSelectedElements: x,\n getSelectedEdges: h,\n getSelectedNodes: d,\n removeNodes: w,\n removeEdges: y,\n selectionMode: S,\n deleteKeyCode: V,\n multiSelectionKeyCode: p,\n multiSelectionActive: N\n } = fe(), T = ie(null), _ = ie(0), P = ie(0), R = ie(), $ = J(() => v.value && (e.isSelecting || s.value));\n _t(V, (z) => {\n if (!z)\n return;\n const W = o.value.reduce((B, q) => ((!q.selected && q.parentNode && B.find((te) => te.id === q.parentNode) || q.selected) && B.push(q), B), []);\n (W || h.value) && (h.value.length > 0 && y(h.value), W.length > 0 && w(W), g.value = !1, l());\n }), _t(p, (z) => {\n N.value = z;\n });\n function D() {\n s.value = !1, c.value = null, _.value = 0, P.value = 0;\n }\n function Q(z) {\n z.target !== T.value || $.value || (a.paneClick(z), l(), g.value = !1);\n }\n function ee(z) {\n var W;\n if (z.target === T.value) {\n if (Array.isArray(u.value) && ((W = u.value) != null && W.includes(2))) {\n z.preventDefault();\n return;\n }\n a.paneContextMenu(z);\n }\n }\n function m(z) {\n z.target === T.value && a.paneScroll(z);\n }\n function A(z) {\n if (R.value = n.value.getBoundingClientRect(), !$.value || !v || !e.isSelecting || z.button !== 0 || z.target !== T.value || !R.value)\n return;\n const { x: W, y: B } = fi(z, R.value);\n l(), c.value = {\n width: 0,\n height: 0,\n startX: W,\n startY: B,\n x: W,\n y: B\n }, s.value = !0, a.selectionStart(z);\n }\n function E(z) {\n if (!$.value)\n return a.paneMouseMove(z);\n if (!e.isSelecting || !R.value || !c.value)\n return;\n s.value || (s.value = !0), g.value && (g.value = !1);\n const W = fi(z, R.value), B = c.value.startX ?? 0, q = c.value.startY ?? 0, te = {\n ...c.value,\n x: W.x < B ? W.x : B,\n y: W.y < q ? W.y : q,\n width: Math.abs(W.x - B),\n height: Math.abs(W.y - q)\n }, re = Ci(\n o.value,\n c.value,\n r.value,\n S.value === fo.Partial\n ), k = sn(re, i.value);\n _.value = re.length, P.value = k.length, c.value = te, x([...re, ...k]);\n }\n function G(z) {\n $.value && z.button === 0 && (!s.value && c.value && z.target === T.value && Q(z), g.value = _.value > 0, D(), a.selectionEnd(z));\n }\n function Z(z) {\n var W;\n if (!$.value)\n return a.paneMouseLeave(z);\n s.value && (g.value = _.value > 0, (W = a.selectionEnd) == null || W.call(a, z)), D();\n }\n function K(z) {\n $.value || a.paneMouseEnter(z);\n }\n return (z, W) => (oe(), se(\"div\", {\n ref_key: \"container\",\n ref: T,\n key: `pane-${C(t)}`,\n class: Ke([\"vue-flow__pane vue-flow__container\", { selection: e.isSelecting }]),\n onClick: Q,\n onContextmenu: ee,\n onWheelPassive: m,\n onMouseenter: K,\n onMousedown: A,\n onMousemove: E,\n onMouseup: G,\n onMouseleave: Z\n }, [\n xe(z.$slots, \"default\"),\n C(s) && C(c) ? (oe(), ze(au, { key: 0 })) : Ee(\"\", !0),\n C(g) && C(d).length ? (oe(), ze(iu, { key: 1 })) : Ee(\"\", !0)\n ], 34));\n }\n}), sd = { class: \"vue-flow__nodes vue-flow__container\" }, ld = {\n name: \"Nodes\",\n compatConfig: { MODE: 3 }\n}, ud = /* @__PURE__ */ ge({\n ...ld,\n setup(e) {\n const t = He(ln), n = fe(), o = M(n, \"nodesDraggable\"), i = M(n, \"nodesFocusable\"), r = M(n, \"elementsSelectable\"), a = M(n, \"nodesConnectable\"), s = M(n, \"getNodes\"), l = M(n, \"getNodesInitialized\"), u = M(n, \"getNodeTypes\"), c = M(n, \"updateNodeDimensions\"), v = M(n, \"emits\");\n let g = ie();\n ye(() => s.value.length > 0 && l.value.length === s.value.length).toBe(!0).then(() => {\n Ue(() => {\n v.value.nodesInitialized(l.value);\n });\n }), Ve(() => {\n g.value = new ResizeObserver((S) => {\n const V = S.map((p) => ({\n id: p.target.getAttribute(\"data-id\"),\n nodeElement: p.target,\n forceUpdate: !0\n }));\n c.value(V);\n });\n }), gi(() => {\n var S;\n return (S = g.value) == null ? void 0 : S.disconnect();\n });\n function x(S) {\n return typeof S > \"u\" ? o.value : S;\n }\n function h(S) {\n return typeof S > \"u\" ? r.value : S;\n }\n function d(S) {\n return typeof S > \"u\" ? a.value : S;\n }\n function w(S) {\n return typeof S > \"u\" ? i.value : S;\n }\n function y(S, V) {\n const p = S || \"default\";\n let N = V ?? u.value[p];\n const T = on();\n if (typeof N == \"string\" && T) {\n const P = Object.keys(T.appContext.components);\n P && P.includes(p) && (N = pi(p, !1));\n }\n if (typeof N != \"string\")\n return N;\n const _ = t == null ? void 0 : t[`node-${p}`];\n return _ || (v.value.error(new ve(he.NODE_TYPE_MISSING, N)), !1);\n }\n return (S, V) => (oe(), se(\"div\", sd, [\n C(g) ? (oe(!0), se(Ce, { key: 0 }, dt(C(s), (p) => (oe(), ze(C(Tl), {\n id: p.id,\n key: p.id,\n \"resize-observer\": C(g),\n type: y(p.type, p.template),\n name: p.type || \"default\",\n draggable: x(p.draggable),\n selectable: h(p.selectable),\n connectable: d(p.connectable),\n focusable: w(p.focusable),\n node: p\n }, null, 8, [\"id\", \"resize-observer\", \"type\", \"name\", \"draggable\", \"selectable\", \"connectable\", \"focusable\", \"node\"]))), 128)) : Ee(\"\", !0)\n ]));\n }\n}), cd = [\"id\", \"markerWidth\", \"markerHeight\", \"markerUnits\", \"orient\"], dd = [\"stroke\", \"stroke-width\", \"fill\"], fd = [\"stroke\", \"stroke-width\"], hd = {\n name: \"MarkerType\",\n compatConfig: { MODE: 3 }\n}, gd = /* @__PURE__ */ ge({\n ...hd,\n props: {\n id: null,\n type: null,\n color: { default: \"none\" },\n width: { default: 12.5 },\n height: { default: 12.5 },\n markerUnits: { default: \"strokeWidth\" },\n orient: { default: \"auto-start-reverse\" },\n strokeWidth: { default: 1 }\n },\n setup(e) {\n return (t, n) => (oe(), se(\"marker\", {\n id: e.id,\n class: \"vue-flow__arrowhead\",\n viewBox: \"-10 -10 20 20\",\n refX: \"0\",\n refY: \"0\",\n markerWidth: `${e.width}`,\n markerHeight: `${e.height}`,\n markerUnits: e.markerUnits,\n orient: e.orient\n }, [\n e.type === C(Yn).ArrowClosed ? (oe(), se(\"polyline\", {\n key: 0,\n stroke: e.color,\n \"stroke-linecap\": \"round\",\n \"stroke-linejoin\": \"round\",\n \"stroke-width\": e.strokeWidth,\n fill: e.color,\n points: \"-5,-4 0,0 -5,4 -5,-4\"\n }, null, 8, dd)) : Ee(\"\", !0),\n e.type === C(Yn).Arrow ? (oe(), se(\"polyline\", {\n key: 1,\n stroke: e.color,\n \"stroke-linecap\": \"round\",\n \"stroke-linejoin\": \"round\",\n \"stroke-width\": e.strokeWidth,\n fill: \"none\",\n points: \"-5,-4 0,0 -5,4\"\n }, null, 8, fd)) : Ee(\"\", !0)\n ], 8, cd));\n }\n}), vd = {\n name: \"MarkerDefinitions\",\n compatConfig: { MODE: 3 }\n}, md = /* @__PURE__ */ ge({\n ...vd,\n setup(e) {\n const t = fe(), n = M(t, \"id\"), o = M(t, \"edges\"), i = M(t, \"connectionLineOptions\"), r = M(t, \"defaultMarkerColor\"), a = J(() => {\n const s = [], l = [], u = (c) => {\n if (c) {\n const v = Xe(c, n.value);\n s.includes(v) || (typeof c == \"object\" ? l.push({ ...c, id: v, color: c.color || r.value }) : l.push({ id: v, color: r.value, type: c }), s.push(v));\n }\n };\n return [i.value.markerEnd, i.value.markerStart].forEach(u), o.value.reduce((c, v) => ([v.markerStart, v.markerEnd].forEach(u), c.sort((g, x) => g.id.localeCompare(x.id))), l), l;\n });\n return (s, l) => (oe(), se(\"defs\", null, [\n (oe(!0), se(Ce, null, dt(C(a), (u) => (oe(), ze(gd, {\n id: u.id,\n key: u.id,\n type: u.type,\n color: u.color,\n width: u.width,\n height: u.height,\n markerUnits: u.markerUnits,\n \"stroke-width\": u.strokeWidth,\n orient: u.orient\n }, null, 8, [\"id\", \"type\", \"color\", \"width\", \"height\", \"markerUnits\", \"stroke-width\", \"orient\"]))), 128))\n ]));\n }\n}), pd = {\n key: 0,\n class: \"vue-flow__edges vue-flow__connectionline vue-flow__container\"\n}, yd = {\n name: \"Edges\",\n compatConfig: { MODE: 3 }\n}, xd = /* @__PURE__ */ ge({\n ...yd,\n setup(e) {\n const t = He(ln), n = fe(), o = M(n, \"connectionStartHandle\"), i = M(n, \"nodesConnectable\"), r = M(n, \"edgesUpdatable\"), a = M(n, \"edgesFocusable\"), s = M(n, \"elementsSelectable\"), l = M(n, \"getSelectedNodes\"), u = M(n, \"findNode\"), c = M(n, \"edges\"), v = M(n, \"getEdges\"), g = M(n, \"getNodesInitialized\"), x = M(n, \"getEdgeTypes\"), h = M(n, \"elevateEdgesOnSelect\"), d = M(n, \"dimensions\"), w = M(n, \"emits\"), y = Sn(\n () => {\n var P;\n return (P = o.value) == null ? void 0 : P.nodeId;\n },\n () => {\n var P;\n return (P = o.value) != null && P.nodeId ? u.value(o.value.nodeId) : !1;\n }\n ), S = Sn(\n () => {\n var P;\n return (P = o.value) == null ? void 0 : P.nodeId;\n },\n () => {\n var P, R;\n return !!(y.value && (typeof y.value.connectable > \"u\" ? i.value : y.value.connectable) && ((P = o.value) != null && P.nodeId) && ((R = o.value) != null && R.type));\n }\n ), V = Sn(\n [\n () => c.value.map((P) => P.zIndex),\n () => h.value ? [l.value.length] : [0],\n () => h.value ? g.value.map((P) => P.computedPosition.z) : []\n ],\n () => Ea(v.value, u.value, h.value)\n );\n function p(P) {\n return typeof P > \"u\" ? s.value : P;\n }\n function N(P) {\n return typeof P > \"u\" ? r.value : P;\n }\n function T(P) {\n return typeof P > \"u\" ? a.value : P;\n }\n function _(P, R) {\n const $ = P || \"default\";\n let D = R ?? x.value[$];\n const Q = on();\n if (typeof D == \"string\" && Q) {\n const m = Object.keys(Q.appContext.components);\n m && m.includes($) && (D = pi($, !1));\n }\n if (D && typeof D != \"string\")\n return D;\n const ee = t == null ? void 0 : t[`edge-${$}`];\n return ee || (w.value.error(new ve(he.EDGE_TYPE_MISSING, D)), !1);\n }\n return (P, R) => C(d).width && C(d).height ? (oe(), se(Ce, { key: 0 }, [\n (oe(!0), se(Ce, null, dt(C(V), ($) => (oe(), se(\"svg\", {\n key: $.level,\n class: \"vue-flow__edges vue-flow__container\",\n style: Le(`z-index: ${$.level}`)\n }, [\n $.isMaxLevel ? (oe(), ze(md, { key: 0 })) : Ee(\"\", !0),\n ct(\"g\", null, [\n (oe(!0), se(Ce, null, dt($.edges, (D) => (oe(), ze(C(Kl), {\n id: D.id,\n key: D.id,\n edge: D,\n type: _(D.type, D.template),\n name: D.type || \"default\",\n selectable: p(D.selectable),\n updatable: N(D.updatable),\n focusable: T(D.focusable)\n }, null, 8, [\"id\", \"edge\", \"type\", \"name\", \"selectable\", \"updatable\", \"focusable\"]))), 128))\n ])\n ], 4))), 128)),\n C(S) && C(y) ? (oe(), se(\"svg\", pd, [\n qe(tu, { \"source-node\": C(y) }, null, 8, [\"source-node\"])\n ])) : Ee(\"\", !0)\n ], 64)) : Ee(\"\", !0);\n }\n}), _d = /* @__PURE__ */ ct(\"div\", { class: \"vue-flow__edge-labels\" }, null, -1), wd = {\n name: \"Transform\",\n compatConfig: { MODE: 3 }\n}, bd = /* @__PURE__ */ ge({\n ...wd,\n setup(e) {\n const { id: t, viewport: n, emits: o, d3Zoom: i, d3Selection: r, dimensions: a, ...s } = fe(), l = ie(!oo);\n return ye(() => i.value && r.value && a.value.width > 0 && a.value.height > 0).toBeTruthy().then(() => {\n o.paneReady({\n id: t,\n viewport: n,\n emits: o,\n d3Zoom: i,\n d3Selection: r,\n dimensions: a,\n ...s\n }), setTimeout(() => {\n l.value = !0;\n }, 0);\n }), (u, c) => (oe(), se(\"div\", {\n key: `transform-${C(t)}`,\n class: \"vue-flow__transformationpane vue-flow__container\",\n style: Le({\n transform: `translate(${C(n).x}px,${C(n).y}px) scale(${C(n).zoom})`,\n opacity: C(l) ? void 0 : 0\n })\n }, [\n qe(xd),\n _d,\n qe(ud),\n xe(u.$slots, \"default\")\n ], 4));\n }\n}), Ed = {\n name: \"Viewport\",\n compatConfig: { MODE: 3 }\n}, Sd = /* @__PURE__ */ ge({\n ...Ed,\n setup(e) {\n const {\n id: t,\n minZoom: n,\n maxZoom: o,\n defaultViewport: i,\n translateExtent: r,\n dimensions: a,\n zoomActivationKeyCode: s,\n selectionKeyCode: l,\n panActivationKeyCode: u,\n panOnScroll: c,\n panOnScrollMode: v,\n panOnScrollSpeed: g,\n panOnDrag: x,\n zoomOnDoubleClick: h,\n zoomOnPinch: d,\n zoomOnScroll: w,\n preventScrolling: y,\n noWheelClassName: S,\n noPanClassName: V,\n emits: p,\n connectionStartHandle: N,\n userSelectionActive: T,\n paneDragging: _,\n d3Zoom: P,\n d3Selection: R,\n d3ZoomHandler: $,\n viewport: D,\n viewportRef: Q\n } = fe(), ee = ie(), m = ie(!1), A = ie(!1);\n let E = !1, G = 0, Z = {\n x: 0,\n y: 0,\n zoom: 0\n };\n const K = _t(u), z = J(() => !m.value && x.value && K.value), W = J(\n () => l.value !== !0 && m.value || l.value === !0 && !z.value\n );\n Ve(() => {\n oa(ee, re);\n const H = ao();\n ro(H, \"resize\", re);\n }), Ve(() => {\n const H = ee.value, f = H.getBoundingClientRect(), b = ed().scaleExtent([n.value, o.value]).translateExtent(r.value), L = we(H).call(b), I = L.on(\"wheel.zoom\"), F = et.translate(i.value.x ?? 0, i.value.y ?? 0).scale(je(i.value.zoom ?? 1, n.value, o.value)), U = [\n [0, 0],\n [f.width, f.height]\n ], Y = b.constrain()(F, U, r.value);\n b.transform(L, Y), P.value = b, R.value = L, $.value = I, D.value = { x: Y.x, y: Y.y, zoom: Y.k }, Q.value = H, _t(l, (O) => {\n m.value = O;\n });\n const ne = _t(s);\n bo(() => {\n m.value && T.value && !A.value ? b.on(\"zoom\", null) : !m.value && !T.value && b.on(\"zoom\", (O) => {\n D.value = { x: O.transform.x, y: O.transform.y, zoom: O.transform.k };\n const ae = te(O.transform);\n E = B(x.value, G ?? 0), p.viewportChange(ae), p.move({ event: O, flowTransform: ae });\n });\n }), b.on(\"start\", (O) => {\n var me;\n if (!O.sourceEvent)\n return null;\n G = O.sourceEvent.button, A.value = !0;\n const ae = te(O.transform);\n ((me = O.sourceEvent) == null ? void 0 : me.type) === \"mousedown\" && (_.value = !0), Z = ae, p.viewportChangeStart(ae), p.moveStart({ event: O, flowTransform: ae });\n }), b.on(\"end\", (O) => {\n if (!O.sourceEvent)\n return null;\n if (A.value = !1, _.value = !1, B(x.value, G ?? 0) && !E && p.paneContextMenu(O.sourceEvent), E = !1, q(Z, O.transform)) {\n const ae = te(O.transform);\n Z = ae, p.viewportChangeEnd(ae), p.moveEnd({ event: O, flowTransform: ae });\n }\n }), bo(() => {\n c.value && !ne.value && !T.value ? L.on(\n \"wheel.zoom\",\n (O) => {\n if (k(O, S.value))\n return !1;\n O.preventDefault(), O.stopImmediatePropagation();\n const ae = L.property(\"__zoom\").k || 1;\n if (O.ctrlKey && d.value) {\n const Tt = Ne(O), _r = -O.deltaY * (O.deltaMode === 1 ? 0.05 : O.deltaMode ? 1 : 2e-3) * 10, wr = ae * 2 ** _r;\n b.scaleTo(L, wr, Tt);\n return;\n }\n const me = O.deltaMode === 1 ? 20 : 1, En = v.value === Ut.Vertical ? 0 : O.deltaX * me, Ot = v.value === Ut.Horizontal ? 0 : O.deltaY * me;\n b.translateBy(\n L,\n -(En / ae) * g.value,\n -(Ot / ae) * g.value\n );\n },\n { passive: !1 }\n ) : typeof I < \"u\" && L.on(\n \"wheel.zoom\",\n function(O, ae) {\n if (!y.value || k(O, S.value))\n return null;\n O.preventDefault(), I.call(this, O, ae);\n },\n { passive: !1 }\n );\n }), b.filter((O) => {\n var Ot, Tt;\n const ae = ne.value || w.value, me = d.value && O.ctrlKey;\n if (O.button === 1 && O.type === \"mousedown\" && ((Ot = O.target) != null && Ot.closest(\".vue-flow__node\") || (Tt = O.target) != null && Tt.closest(\".vue-flow__edge\")))\n return !0;\n if (!x.value && !ae && !c.value && !h.value && !d.value || T.value || !h.value && O.type === \"dblclick\" || k(O, S.value) && O.type === \"wheel\" || k(O, V.value) && O.type !== \"wheel\" || !d.value && O.ctrlKey && O.type === \"wheel\" || !ae && !c.value && !me && O.type === \"wheel\" || !x.value && (O.type === \"mousedown\" || O.type === \"touchstart\") || Array.isArray(x.value) && !x.value.includes(O.button) && (O.type === \"mousedown\" || O.type === \"touchstart\"))\n return !1;\n const En = Array.isArray(x.value) && x.value.includes(O.button) || !O.button || O.button <= 1;\n return (!O.ctrlKey || O.type === \"wheel\") && En;\n });\n });\n function B(H, f) {\n return f === 2 && Array.isArray(H) && H.includes(2);\n }\n function q(H, f) {\n return H.x !== f.x && !isNaN(f.x) || H.y !== f.y && !isNaN(f.y) || H.zoom !== f.k && !isNaN(f.k);\n }\n function te(H) {\n return {\n x: H.x,\n y: H.y,\n zoom: H.k\n };\n }\n function re() {\n if (!ee.value)\n return;\n const { width: H, height: f } = rn(ee.value);\n (H === 0 || f === 0) && p.error(new ve(he.MISSING_VIEWPORT_DIMENSIONS)), a.value.width = H || 500, a.value.height = f || 500;\n }\n function k(H, f) {\n return H.target.closest(`.${f}`);\n }\n return (H, f) => (oe(), se(Ce, null, [\n (oe(), se(\"div\", {\n ref_key: \"viewportEl\",\n ref: ee,\n key: `viewport-${C(t)}`,\n class: \"vue-flow__viewport vue-flow__container\"\n }, [\n qe(ad, {\n \"is-selecting\": C(W),\n class: Ke({ connecting: !!C(N), dragging: C(_), draggable: !!C(x) })\n }, {\n default: Fe(() => [\n qe(bd, null, {\n default: Fe(() => [\n xe(H.$slots, \"zoom-pane\")\n ]),\n _: 3\n })\n ]),\n _: 3\n }, 8, [\"is-selecting\", \"class\"])\n ])),\n xe(H.$slots, \"default\")\n ], 64));\n }\n}), Nd = [\"id\"], Cd = [\"id\"], Md = [\"id\"], $d = {\n name: \"A11yDescriptions\",\n compatConfig: { MODE: 3 }\n}, kd = /* @__PURE__ */ ge({\n ...$d,\n setup(e) {\n const { id: t, disableKeyboardA11y: n, ariaLiveMessage: o } = fe(), i = {\n position: \"absolute\",\n width: 1,\n height: 1,\n margin: -1,\n border: 0,\n padding: 0,\n overflow: \"hidden\",\n clip: \"rect(0px, 0px, 0px, 0px)\",\n clipPath: \"inset(100%)\"\n };\n return (r, a) => (oe(), se(Ce, null, [\n ct(\"div\", {\n id: `${C(Qi)}-${C(t)}`,\n style: { display: \"none\" }\n }, \" Press enter or space to select a node. \" + Vn(C(n) ? \"\" : \"You can then use the arrow keys to move the node around.\") + \" You can then use the arrow keys to move the node around, press delete to remove it and press escape to cancel. \", 9, Nd),\n ct(\"div\", {\n id: `${C(Ji)}-${C(t)}`,\n style: { display: \"none\" }\n }, \" Press enter or space to select an edge. You can then press delete to remove it or press escape to cancel. \", 8, Cd),\n C(n) ? Ee(\"\", !0) : (oe(), se(\"div\", {\n key: 0,\n id: `${C(Ml)}-${C(t)}`,\n \"aria-live\": \"assertive\",\n \"aria-atomic\": \"true\",\n style: i\n }, Vn(C(o)), 9, Md))\n ], 64));\n }\n}), Od = {\n name: \"VueFlow\",\n compatConfig: { MODE: 3 }\n}, Ld = /* @__PURE__ */ ge({\n ...Od,\n props: {\n id: null,\n modelValue: null,\n nodes: null,\n edges: null,\n edgeTypes: null,\n nodeTypes: null,\n connectionMode: null,\n connectionLineType: null,\n connectionLineStyle: { default: void 0 },\n connectionLineOptions: { default: void 0 },\n connectionRadius: null,\n isValidConnection: { type: [Function, null], default: void 0 },\n deleteKeyCode: null,\n selectionKeyCode: null,\n multiSelectionKeyCode: null,\n zoomActivationKeyCode: null,\n panActivationKeyCode: null,\n snapToGrid: { type: Boolean, default: void 0 },\n snapGrid: null,\n onlyRenderVisibleElements: { type: Boolean, default: void 0 },\n edgesUpdatable: { type: [Boolean, String], default: void 0 },\n nodesDraggable: { type: Boolean, default: void 0 },\n nodesConnectable: { type: Boolean, default: void 0 },\n elementsSelectable: { type: Boolean, default: void 0 },\n selectNodesOnDrag: { type: Boolean, default: void 0 },\n panOnDrag: { type: [Boolean, Array], default: void 0 },\n minZoom: null,\n maxZoom: null,\n defaultViewport: null,\n translateExtent: null,\n nodeExtent: null,\n defaultMarkerColor: null,\n zoomOnScroll: { type: Boolean, default: void 0 },\n zoomOnPinch: { type: Boolean, default: void 0 },\n panOnScroll: { type: Boolean, default: void 0 },\n panOnScrollSpeed: null,\n panOnScrollMode: null,\n zoomOnDoubleClick: { type: Boolean, default: void 0 },\n preventScrolling: { type: Boolean, default: void 0 },\n selectionMode: null,\n edgeUpdaterRadius: null,\n fitViewOnInit: { type: Boolean, default: void 0 },\n connectOnClick: { type: Boolean, default: void 0 },\n applyDefault: { type: Boolean, default: void 0 },\n autoConnect: { type: [Boolean, Function], default: void 0 },\n noDragClassName: null,\n noWheelClassName: null,\n noPanClassName: null,\n defaultEdgeOptions: null,\n elevateEdgesOnSelect: { type: Boolean, default: void 0 },\n elevateNodesOnSelect: { type: Boolean, default: void 0 },\n disableKeyboardA11y: { type: Boolean, default: void 0 },\n edgesFocusable: { type: Boolean, default: void 0 },\n nodesFocusable: { type: Boolean, default: void 0 },\n autoPanOnConnect: { type: Boolean, default: void 0 },\n autoPanOnNodeDrag: { type: Boolean, default: void 0 },\n __experimentalFeatures: null\n },\n emits: [\"nodesChange\", \"edgesChange\", \"nodeDoubleClick\", \"nodeClick\", \"nodeMouseEnter\", \"nodeMouseMove\", \"nodeMouseLeave\", \"nodeContextMenu\", \"nodeDragStart\", \"nodeDrag\", \"nodeDragStop\", \"nodesInitialized\", \"miniMapNodeClick\", \"miniMapNodeDoubleClick\", \"miniMapNodeMouseEnter\", \"miniMapNodeMouseMove\", \"miniMapNodeMouseLeave\", \"connect\", \"connectStart\", \"connectEnd\", \"clickConnectStart\", \"clickConnectEnd\", \"moveStart\", \"move\", \"moveEnd\", \"selectionDragStart\", \"selectionDrag\", \"selectionDragStop\", \"selectionContextMenu\", \"selectionStart\", \"selectionEnd\", \"viewportChangeStart\", \"viewportChange\", \"viewportChangeEnd\", \"paneReady\", \"paneScroll\", \"paneClick\", \"paneContextMenu\", \"paneMouseEnter\", \"paneMouseMove\", \"paneMouseLeave\", \"edgeContextMenu\", \"edgeMouseEnter\", \"edgeMouseMove\", \"edgeMouseLeave\", \"edgeDoubleClick\", \"edgeClick\", \"edgeUpdateStart\", \"edgeUpdate\", \"edgeUpdateEnd\", \"updateNodeInternals\", \"error\", \"update:modelValue\", \"update:nodes\", \"update:edges\"],\n setup(e, { expose: t, emit: n }) {\n const o = e, i = yt(o, \"modelValue\", n), r = yt(o, \"nodes\", n), a = yt(o, \"edges\", n), { vueFlowRef: s, hooks: l, getNodeTypes: u, getEdgeTypes: c, ...v } = fe(o), g = id({ modelValue: i, nodes: r, edges: a }, o, {\n vueFlowRef: s,\n hooks: l,\n getNodeTypes: u,\n getEdgeTypes: c,\n ...v\n });\n da(n, l);\n const x = ie();\n return ut(ln, Ir()), Pr(() => {\n g();\n }), Ve(() => {\n s.value = x.value;\n }), t({\n vueFlowRef: s,\n hooks: l,\n getNodeTypes: u,\n getEdgeTypes: c,\n ...v\n }), (h, d) => (oe(), se(\"div\", {\n ref_key: \"el\",\n ref: x,\n class: \"vue-flow\"\n }, [\n qe(Sd, null, {\n nodes: Fe(() => [\n (oe(!0), se(Ce, null, dt(Object.keys(C(u)), (w) => xe(h.$slots, `node-${w}`)), 256))\n ]),\n edges: Fe(() => [\n (oe(!0), se(Ce, null, dt(Object.keys(C(c)), (w) => xe(h.$slots, `edge-${w}`)), 256))\n ]),\n \"connection-name\": Fe(() => [\n xe(h.$slots, \"connection-line\")\n ]),\n \"zoom-pane\": Fe(() => [\n xe(h.$slots, \"zoom-pane\")\n ]),\n default: Fe(() => [\n xe(h.$slots, \"default\")\n ]),\n _: 3\n }),\n qe(kd)\n ], 512));\n }\n}), Td = {\n name: \"Panel\",\n compatConfig: { MODE: 3 }\n}, Gd = /* @__PURE__ */ ge({\n ...Td,\n props: {\n position: null\n },\n setup(e) {\n const t = e, { userSelectionActive: n } = fe(), o = J(() => `${t.position}`.split(\"-\"));\n return (i, r) => (oe(), se(\"div\", {\n class: Ke([\"vue-flow__panel\", C(o)]),\n style: Le({ pointerEvents: C(n) ? \"none\" : \"all\" })\n }, [\n xe(i.$slots, \"default\")\n ], 6));\n }\n}), Bn = 0.1, Fd = (e) => {\n const t = fe({ id: e }), n = M(t, \"nodes\"), o = M(t, \"d3Zoom\"), i = M(t, \"d3Selection\"), r = M(t, \"dimensions\"), a = M(t, \"translateExtent\"), s = M(t, \"minZoom\"), l = M(t, \"maxZoom\"), u = M(t, \"viewport\"), c = M(t, \"snapToGrid\"), v = M(t, \"snapGrid\"), g = M(t, \"getNodes\");\n return {\n zoomIn: (d) => {\n x(1.2, d == null ? void 0 : d.duration);\n },\n zoomOut: (d) => {\n x(1 / 1.2, d == null ? void 0 : d.duration);\n },\n zoomTo: (d, w) => {\n i.value && o.value && o.value.scaleTo(Rn(i.value, w == null ? void 0 : w.duration), d);\n },\n setTransform: (d, w) => {\n h(d.x, d.y, d.zoom, w == null ? void 0 : w.duration);\n },\n getTransform: () => ({\n x: u.value.x,\n y: u.value.y,\n zoom: u.value.zoom\n }),\n fitView: (d = {\n padding: Bn,\n includeHiddenNodes: !1,\n duration: 0\n }) => {\n if (!n.value.length)\n return;\n const w = (d.includeHiddenNodes ? n.value : g.value).filter((N) => {\n var P;\n const T = N.initialized && N.dimensions.width && N.dimensions.height;\n let _ = !0;\n return (P = d.nodes) != null && P.length && (_ = d.nodes.includes(N.id)), T && _;\n }), y = co(w), { x: S, y: V, zoom: p } = Zt(\n y,\n r.value.width,\n r.value.height,\n d.minZoom ?? s.value,\n d.maxZoom ?? l.value,\n d.padding ?? Bn,\n d.offset\n );\n h(S, V, p, d == null ? void 0 : d.duration);\n },\n setCenter: (d, w, y) => {\n const S = typeof (y == null ? void 0 : y.zoom) < \"u\" ? y.zoom : l.value, V = r.value.width / 2 - d * S, p = r.value.height / 2 - w * S;\n h(V, p, S, y == null ? void 0 : y.duration);\n },\n fitBounds: (d, w = { padding: Bn }) => {\n const { x: y, y: S, zoom: V } = Zt(d, r.value.width, r.value.height, s.value, l.value, w.padding);\n h(y, S, V, w == null ? void 0 : w.duration);\n },\n project: (d) => uo(d, u.value, c.value, v.value)\n };\n function x(d, w) {\n i.value && o.value && o.value.scaleBy(Rn(i.value, w), d);\n }\n function h(d, w, y, S) {\n const { x: V, y: p } = so({ x: -d, y: -w }, a.value), N = et.translate(-V, -p).scale(y);\n i.value && o.value && o.value.transform(Rn(i.value, S), N);\n }\n};\nfunction Rn(e, t = 0) {\n return e.transition().duration(t);\n}\nfunction Yd(e) {\n const t = e ?? He(Oi, \"\"), n = He(Ti, null), { findEdge: o, emits: i } = fe(), r = o(t);\n return r || i.error(new ve(he.EDGE_NOT_FOUND, t)), {\n id: t,\n edge: r,\n edgeEl: n\n };\n}\nexport {\n vn as BaseEdge,\n Bl as BezierEdge,\n Ye as ConnectionLineType,\n Qe as ConnectionMode,\n Rd as EdgeLabelRenderer,\n Al as EdgeText,\n he as ErrorCode,\n ot as GlobalVueFlowStorage,\n Kt as Handle,\n Yn as MarkerType,\n $i as NodeIdInjection,\n Ut as PanOnScrollMode,\n Gd as Panel,\n xa as PanelPosition,\n j as Position,\n fo as SelectionMode,\n Rl as SimpleBezierEdge,\n ir as SmoothStepEdge,\n Gl as StepEdge,\n Fl as StraightEdge,\n Ld as VueFlow,\n ve as VueFlowError,\n zo as VueFlowInjection,\n zd as addEdge,\n nn as applyChanges,\n Vd as applyEdgeChanges,\n Hd as applyNodeChanges,\n je as clamp,\n Ei as connectionExists,\n lu as defaultEdgeTypes,\n su as defaultNodeTypes,\n nr as getBezierEdgeCenter,\n Kn as getBezierPath,\n Bd as getBoundsofRects,\n sn as getConnectedEdges,\n Dd as getIncomers,\n Xe as getMarkerId,\n Ci as getNodesInside,\n Pd as getOutgoers,\n co as getRectOfNodes,\n or as getSimpleBezierPath,\n tr as getSimpleEdgeCenter,\n qn as getSmoothStepPath,\n rr as getStraightPath,\n Zt as getTransformForBounds,\n va as graphPosToZoomedPos,\n $e as isEdge,\n fa as isGraphEdge,\n nt as isGraphNode,\n xt as isNode,\n uo as pointToRendererPoint,\n va as rendererPointToPoint,\n Ad as updateEdge,\n Yd as useEdge,\n Ra as useGetPointerPosition,\n Di as useHandle,\n _a as useNode,\n fe as useVueFlow,\n Fd as useZoomPanHelper\n};\n","\n\n\n\n\n","\n\n\n\n\n\n\n","\n\n\n","\n\n\n","import { App } from 'vue'\n\nimport NodeEditor from '@/components/NodeEditor.vue'\nimport StateEditor from '@/components/StateEditor.vue'\n\nfunction install(app: App /* options */) {\n\tapp.component('NodeEditor', NodeEditor)\n\tapp.component('StateEditor', StateEditor)\n}\n\nexport { install, NodeEditor, StateEditor }\n"],"names":["Eo","oo","Dr","zr","Ae","Ie","Pe","Ar","C","Br","i","r","yi","Rr","ie","Er","So","Vr","Sn","a","de","s","l","u","br","v","g","Mt","hi","Vt","Hr","on","Ve","Ue","Hn","x","h","d","w","S","V","p","Sr","y","N","T","ye","No","Lr","Gr","Fr","Yr","Xr","Zr","Ur","Yt","xi","_i","Co","Wr","Kr","qr","tt","wi","io","ro","jr","Mo","Qr","Jr","Ln","Gn","$o","ea","ta","na","oa","ko","ia","Oo","ra","aa","To","sa","la","yt","J","X","ua","wt","ca","da","Nr","he","Nn","ve","ao","Io","Fn","rn","je","so","Po","$e","fa","xt","nt","ha","ga","it","ce","lo","an","Ei","va","uo","Si","Xt","Ni","co","Ci","sn","Zt","ma","Mi","Xe","o","pa","ya","Do","j","fo","Ye","Qe","Yn","zo","$i","ki","Oi","Ti","ln","_a","He","fe","ho","rt","n","Wt","Ao","wa","ba","Ea","Cn","Bo","Sa","Ro","Ii","Na","Ca","Vo","Pi","It","Di","_","P","R","$","D","Q","m","G","A","E","Z","Y","L","f","B","F","I","U","ne","W","b","K","q","z","te","k","H","ee","Ma","$a","ka","Kt","ge","M","oe","se","Ke","xe","un","ue","Oa","cn","Ta","dn","Ia","Ho","Pa","Mn","zi","Da","za","go","Ai","Aa","Ba","Ra","Lo","Xn","Va","fn","Ht","Ha","La","Go","Zn","Fo","hn","Ga","Fa","Bi","Ya","vo","Xa","_e","Za","Ua","Ri","Wa","Ka","Vi","Hi","qa","ja","Qa","Ja","es","ts","ns","os","is","Li","rs","qt","as","ss","ls","us","cs","ds","fs","hs","gs","vs","ms","ps","ys","xs","_s","ws","bs","Es","Ss","Ns","Cs","Ms","$s","ks","Os","Gi","Ts","Is","Ps","Ds","ft","zs","As","Bs","Rs","Fi","mo","Yi","Xi","Zi","Vs","Hs","Ls","Gs","Fs","Ys","Xs","Zs","Us","Ws","Ks","qs","js","Qs","Js","el","tl","nl","ol","il","rl","al","sl","ll","ul","cl","dl","fl","hl","gl","Ui","vl","ml","pl","yl","Wi","$t","xl","we","_l","Ne","wl","bt","$n","Ki","qi","Pt","Un","bl","El","Sl","Nl","Cl","ji","Qi","Ji","Ml","er","st","Wn","t","$l","kl","_t","Ol","ut","gi","Tl","Il","Pl","Dl","zl","Al","Le","Ee","ct","vi","Ce","Cr","Vn","ze","mi","gn","tr","nr","Dt","Yo","Kn","mn","Bl","Xo","or","pn","Rl","Zo","Vl","Uo","Hl","Ll","qn","yn","ir","xn","Gl","rr","_n","Fl","Yl","Xl","po","Wo","Zl","Ul","Wl","Kl","ql","jl","Rd","Mr","Ql","Jl","eu","tu","c","$r","nu","ou","iu","ru","au","su","lu","uu","ar","cu","yo","sr","kt","jt","lt","Me","du","fu","hu","gu","vu","mu","pu","Ko","qo","yu","xu","jo","lr","Qo","pe","zt","ti","_u","jn","We","Qt","Jo","wu","ei","Ze","be","bu","ni","At","ur","Eu","Su","Nu","cr","oi","Re","Qn","On","Cu","Mu","$u","ii","Jn","dr","Bt","ku","Ou","fr","Tu","Iu","Pu","ri","Du","zu","Au","ht","mt","gt","hr","Jt","pt","en","Je","wn","Ct","gr","xo","Bu","tn","vr","eo","Ru","ai","Hu","Vu","si","Lu","Gu","mr","li","to","Lt","ui","no","Gt","Fu","_o","Se","ke","Ft","Yu","Xu","Zu","Uu","wo","pr","Wu","Ku","qu","ju","Qu","Ju","ec","tc","nc","oc","ic","rc","ac","lc","uc","cc","dc","hc","gc","vc","mc","Be","pc","yc","wc","bc","Ec","Sc","Nc","Cc","Mc","yr","$c","kc","Oc","Tc","Ic","Pc","Dc","Ac","Bc","Rc","Vc","Hc","Lc","xr","Gc","Yc","Xc","Uc","Rt","De","et","Tn","vt","Kc","qc","ci","jc","Qc","Jc","ed","In","Ge","td","nd","Pn","Dn","nn","Te","di","zn","An","od","O","ae","me","ot","kr","Or","id","Tr","fi","rd","ad","ld","ud","pi","dt","cd","dd","hd","gd","vd","md","pd","yd","qe","wd","bd","Ed","Sd","bo","Tt","_r","wr","En","Ot","Fe","Nd","Cd","Md","$d","kd","Od","Ld","Ir","Pr","props","__props","emit","__emit","positionMap","Position","sourcePosition","computed","targetPosition","labelInput","ref","newLabel","showInput","lastClick","nodeOnClick","now","showLabelInput","nextTick","submitNewLabel","__default__","useVueFlow","labelOnClick","path","getBezierPath","containerClass","vueFlowInstance","hover","activeElementKey","vueFlowElements","activeElementIndex","elements","_elements","key","newValue","getNodes","onPaneReady","onMounted","handleKeypress","onBeforeUnmount","shiftTerminal","currentTerminal","shiftOutput","shiftInput","onWheel","$event","e","fitView","addNode","newNodePosition","makeEdge","activeNode","nodeId","edgeId","onConnect","onEdgeDoubleClick","labelChanged","states","stateHash","hasInputs","stateElements","edges","edgeKey","target","onElementsChange","idToLabel","label","install","app","NodeEditor","StateEditor"],"mappings":";AACA,IAAIA;AACJ,MAAMC,KAAK,OAAO,SAAS,KAAKC,KAAK,CAAC,MAAM,OAAO,IAAI,KAAKC,KAAK,CAAC,MAAM,OAAO,KAAK,WAAWC,KAAK,CAAC,MAAM,OAAO,KAAK,YAAYC,KAAK,CAAC,MAAM,OAAO,KAAK,UAAUC,KAAK,CAAC,MAAM,OAAO,KAAK,UAAUC,KAAK,MAAM;AAClN;AACAN,OAAQD,KAAK,UAAU,OAAO,SAAS,OAAO,cAAc,QAAQA,GAAG,aAAc,iBAAiB,KAAK,OAAO,UAAU,SAAS;AACrI,SAAS,GAAG,GAAG;AACb,SAAO,OAAO,KAAK,aAAa,EAAC,IAAKQ,EAAE,CAAC;AAC3C;AACA,SAASC,GAAG,GAAG,GAAG;AAChB,WAAS,KAAK,GAAG;AACf,WAAO,IAAI,QAAQ,CAACC,GAAGC,MAAM;AAC3B,cAAQ,QAAQ,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC,GAAG,EAAE,IAAI,GAAG,SAAS,MAAM,MAAM,GAAG,CAAC,EAAE,KAAKD,CAAC,EAAE,MAAMC,CAAC;AAAA,IACnG,CAAK;AAAA,EACF;AACD,SAAO;AACT;AACA,MAAMC,KAAK,CAAC,MAAM;AAClB,SAASC,GAAG,IAAID,IAAI;AAClB,QAAM,IAAIE,GAAG,EAAE;AACf,WAAS,IAAI;AACX,MAAE,QAAQ;AAAA,EACX;AACD,WAAS,IAAI;AACX,MAAE,QAAQ;AAAA,EACX;AACD,QAAMJ,IAAI,IAAIC,MAAM;AAClB,MAAE,SAAS,EAAE,GAAGA,CAAC;AAAA,EACrB;AACE,SAAO,EAAE,UAAUI,GAAG,CAAC,GAAG,OAAO,GAAG,QAAQ,GAAG,aAAaL,EAAC;AAC/D;AACA,SAASM,GAAG,GAAG,IAAI,IAAI,IAAI,WAAW;AACpC,SAAO,IAAI,QAAQ,CAAC,GAAGN,MAAM;AAC3B,eAAW,IAAI,MAAMA,EAAE,CAAC,IAAI,GAAG,CAAC;AAAA,EACpC,CAAG;AACH;AACA,SAASO,GAAG,GAAG;AACb,SAAO;AACT;AACA,SAASC,GAAG,GAAG,GAAG;AAChB,MAAI,GAAG,GAAGR;AACV,QAAMC,IAAIG,GAAG,EAAE,GAAGK,IAAI,MAAM;AAC1B,IAAAR,EAAE,QAAQ,IAAID,EAAC;AAAA,EACnB;AACEU,EAAAA,GAAG,GAAGD,GAAG,EAAE,OAAO,OAAQ,CAAA;AAC1B,QAAME,IAAIjB,GAAG,CAAC,IAAI,IAAI,EAAE,KAAKkB,IAAIlB,GAAG,CAAC,IAAI,SAAS,EAAE,KAAKmB,IAAIC,GAAG,CAAC,GAAGC,OAAO,IAAI,GAAGf,IAAIe,GAAG;AAAA,IACvF,MAAM;AACJ,aAAOd,EAAE,UAAU,IAAIU,EAAC,GAAIV,EAAE,QAAQ,KAAK,EAAC,GAAI;AAAA,IACjD;AAAA,IACD,IAAIe,GAAG;AACL,MAAAJ,KAAK,QAAQA,EAAEI,CAAC;AAAA,IACjB;AAAA,EACF,EAAC;AACF,SAAO,OAAO,aAAaH,CAAC,MAAMA,EAAE,UAAUJ,IAAII;AACpD;AACA,SAASI,GAAG,GAAG;AACb,SAAOC,GAAI,KAAIC,GAAG,CAAC,GAAG,MAAM;AAC9B;AACA,SAASC,GAAG,GAAG,IAAI,IAAI;AACrBC,EAAAA,GAAI,IAAGC,GAAG,CAAC,IAAI,IAAI,EAAG,IAAGC,GAAG,CAAC;AAC/B;AACA,SAASC,GAAG,GAAG,IAAI,IAAI;AACrB,WAAS,EAAET,GAAG,EAAE,OAAOC,IAAI,QAAQ,MAAMS,IAAI,IAAI,SAASC,GAAG,gBAAgBC,EAAG,IAAG,IAAI;AACrF,QAAIC,IAAI;AACR,UAAMC,IAAI,CAAC,IAAI,QAAQ,CAACC,MAAM;AAC5B,MAAAF,IAAIlB,GAAG,GAAG,CAACqB,MAAM;AACf,QAAAhB,EAAEgB,CAAC,MAAM,MAAMH,KAAK,QAAQA,KAAKE,EAAEC,CAAC;AAAA,MAC5C,GAAS;AAAA,QACD,OAAOf;AAAA,QACP,MAAMS;AAAA,QACN,WAAW;AAAA,MACnB,CAAO;AAAA,IACF,CAAA,CAAC;AACF,WAAOC,KAAK,QAAQG,EAAE,KAAKvB,GAAGoB,GAAGC,CAAC,EAAE,KAAK,MAAM,GAAG,CAAC,CAAC,EAAE,QAAQ,MAAMC,KAAK,OAAO,SAASA,EAAG,CAAA,CAAC,GAAG,QAAQ,KAAKC,CAAC;AAAA,EAC/G;AACD,WAAS,EAAEd,GAAGC,GAAG;AACf,QAAI,CAACgB,GAAGjB,CAAC;AACP,aAAO,EAAE,CAACgB,MAAMA,MAAMhB,GAAGC,CAAC;AAC5B,UAAM,EAAE,OAAOS,IAAI,QAAQ,MAAMC,IAAI,IAAI,SAASC,GAAG,gBAAgBC,EAAC,IAAKZ,KAAK,CAAA;AAChF,QAAIiB,IAAI;AACR,UAAMH,IAAI,CAAC,IAAI,QAAQ,CAACC,MAAM;AAC5B,MAAAE,IAAIvB,GAAG,CAAC,GAAGK,CAAC,GAAG,CAAC,CAACmB,GAAGC,CAAC,MAAM;AACzB,eAAOD,MAAMC,OAAOF,KAAK,QAAQA,KAAKF,EAAEG,CAAC;AAAA,MACjD,GAAS;AAAA,QACD,OAAOT;AAAA,QACP,MAAMC;AAAA,QACN,WAAW;AAAA,MACnB,CAAO;AAAA,IACF,CAAA,CAAC;AACF,WAAOC,KAAK,QAAQG,EAAE,KAAKxB,GAAGqB,GAAGC,CAAC,EAAE,KAAK,MAAM,GAAG,CAAC,CAAC,EAAE,QAAQ,OAAOK,KAAK,QAAQA,EAAG,GAAE,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,KAAKH,CAAC;AAAA,EAChH;AACD,WAAS9B,EAAEe,GAAG;AACZ,WAAO,EAAE,CAACC,MAAM,EAAQA,GAAID,CAAC;AAAA,EAC9B;AACD,WAASd,EAAEc,GAAG;AACZ,WAAO,EAAE,MAAMA,CAAC;AAAA,EACjB;AACD,WAASN,EAAEM,GAAG;AACZ,WAAO,EAAE,QAAQA,CAAC;AAAA,EACnB;AACD,WAASJ,EAAEI,GAAG;AACZ,WAAO,EAAE,OAAO,OAAOA,CAAC;AAAA,EACzB;AACD,WAASH,EAAEG,GAAGC,GAAG;AACf,WAAO,EAAE,CAACS,MAAM;AACd,YAAMC,IAAI,MAAM,KAAKD,CAAC;AACtB,aAAOC,EAAE,SAASX,CAAC,KAAKW,EAAE,SAAS,GAAGX,CAAC,CAAC;AAAA,IACzC,GAAEC,CAAC;AAAA,EACL;AACD,WAASH,EAAEE,GAAG;AACZ,WAAO,EAAE,GAAGA,CAAC;AAAA,EACd;AACD,WAAS,EAAEA,IAAI,GAAGC,GAAG;AACnB,QAAIS,IAAI;AACR,WAAO,EAAE,OAAOA,KAAK,GAAGA,KAAKV,IAAIC,CAAC;AAAA,EACnC;AACD,SAAO,MAAM,QAAQ,GAAG,CAAC,CAAC,IAAI;AAAA,IAC5B,SAAS;AAAA,IACT,YAAYJ;AAAA,IACZ,SAASC;AAAA,IACT,cAAc;AAAA,IACd,IAAI,MAAM;AACR,aAAOW,GAAG,GAAG,CAAC,CAAC;AAAA,IAChB;AAAA,EACL,IAAM;AAAA,IACF,SAAS;AAAA,IACT,MAAM;AAAA,IACN,YAAYxB;AAAA,IACZ,UAAUC;AAAA,IACV,SAASU;AAAA,IACT,eAAeF;AAAA,IACf,SAASI;AAAA,IACT,cAAc;AAAA,IACd,IAAI,MAAM;AACR,aAAOW,GAAG,GAAG,CAAC,CAAC;AAAA,IAChB;AAAA,EACL;AACA;AACA,SAASY,GAAG,GAAG;AACb,SAAOZ,GAAG,CAAC;AACb;AACA,IAAIa,KAAK,OAAO,uBAAuBC,KAAK,OAAO,UAAU,gBAAgBC,KAAK,OAAO,UAAU,sBAAsBC,KAAK,CAAC,GAAG,MAAM;AACtI,MAAI,IAAI,CAAA;AACR,WAAS,KAAK;AACZ,IAAAF,GAAG,KAAK,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC;AAClD,MAAI,KAAK,QAAQD;AACf,aAAS,KAAKA,GAAG,CAAC;AAChB,QAAE,QAAQ,CAAC,IAAI,KAAKE,GAAG,KAAK,GAAG,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC;AACpD,SAAO;AACT;AACA,SAASE,GAAG,GAAG,GAAG,IAAI,CAAA,GAAI;AACxB,QAAM,IAAI,GAAG;AAAA,IACX,aAAazC,IAAIE;AAAA,EAClB,IAAG,GAAGD,IAAIuC,GAAG,GAAG;AAAA,IACf;AAAA,EACJ,CAAG;AACD,SAAO9B,GAAG,GAAGX,GAAGC,GAAG,CAAC,GAAGC,CAAC;AAC1B;AACA,IAAIyC,KAAK,OAAO,gBAAgBC,KAAK,OAAO,kBAAkBC,KAAK,OAAO,2BAA2BC,KAAK,OAAO,uBAAuBC,KAAK,OAAO,UAAU,gBAAgBC,KAAK,OAAO,UAAU,sBAAsBC,KAAK,CAAC,GAAG,GAAG,MAAM,KAAK,IAAIN,GAAG,GAAG,GAAG,EAAE,YAAY,IAAI,cAAc,IAAI,UAAU,IAAI,OAAO,EAAG,CAAA,IAAI,EAAE,CAAC,IAAI,GAAGO,KAAK,CAAC,GAAG,MAAM;AACrV,WAAS,KAAK,MAAM,IAAI,CAAA;AACtB,IAAAH,GAAG,KAAK,GAAG,CAAC,KAAKE,GAAG,GAAG,GAAG,EAAE,CAAC,CAAC;AAChC,MAAIH;AACF,aAAS,KAAKA,GAAG,CAAC;AAChB,MAAAE,GAAG,KAAK,GAAG,CAAC,KAAKC,GAAG,GAAG,GAAG,EAAE,CAAC,CAAC;AAClC,SAAO;AACT,GAAGE,KAAK,CAAC,GAAG,MAAMP,GAAG,GAAGC,GAAG,CAAC,CAAC,GAAGO,KAAK,CAAC,GAAG,MAAM;AAC7C,MAAI,IAAI,CAAA;AACR,WAAS,KAAK;AACZ,IAAAL,GAAG,KAAK,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC;AAClD,MAAI,KAAK,QAAQD;AACf,aAAS,KAAKA,GAAG,CAAC;AAChB,QAAE,QAAQ,CAAC,IAAI,KAAKE,GAAG,KAAK,GAAG,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC;AACpD,SAAO;AACT;AACA,SAASK,GAAG,GAAG,GAAG,IAAI,CAAA,GAAI;AACxB,QAAM,IAAI,GAAG;AAAA,IACX,aAAapD;AAAA,EACd,IAAG,GAAGC,IAAIkD,GAAG,GAAG;AAAA,IACf;AAAA,EACD,CAAA,GAAG,EAAE,aAAa1C,GAAG,OAAOE,GAAG,QAAQC,GAAG,UAAUC,EAAC,IAAKV,GAAGH,CAAC;AAC/D,SAAO,EAAE,MAAMyC,GAAG,GAAG,GAAGS,GAAGD,GAAG,IAAIhD,CAAC,GAAG;AAAA,IACpC,aAAaQ;AAAA,EACjB,CAAG,CAAC,GAAG,OAAOE,GAAG,QAAQC,GAAG,UAAUC;AACtC;AACA,SAASwC,GAAG,GAAG;AACb,MAAI;AACJ,QAAM,IAAI,GAAG,CAAC;AACd,UAAQ,IAAI,KAAK,OAAO,SAAS,EAAE,QAAQ,OAAO,IAAI;AACxD;AACA,MAAMC,KAAK/D,KAAK,SAAS;AACzB,SAASgE,MAAM,GAAG;AAChB,MAAI,GAAG,GAAG,GAAGvD;AACb,MAAIJ,GAAG,EAAE,CAAC,CAAC,KAAK,MAAM,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,GAAGI,CAAC,IAAI,GAAG,IAAIsD,MAAM,CAAC,GAAG,GAAG,GAAGtD,CAAC,IAAI,GAAG,CAAC;AACjF,WAAOH;AACT,QAAM,QAAQ,CAAC,MAAM,IAAI,CAAC,CAAC,IAAI,MAAM,QAAQ,CAAC,MAAM,IAAI,CAAC,CAAC;AAC1D,QAAMI,IAAI,IAAIQ,IAAI,MAAM;AACtB,IAAAR,EAAE,QAAQ,CAAC,MAAM,EAAG,CAAA,GAAGA,EAAE,SAAS;AAAA,EACnC,GAAEU,IAAI,CAAC,GAAGI,GAAGC,GAAGS,OAAO,EAAE,iBAAiBV,GAAGC,GAAGS,CAAC,GAAG,MAAM,EAAE,oBAAoBV,GAAGC,GAAGS,CAAC,IAAIb,IAAIF,GAAG,MAAM,CAAC2C,GAAG,CAAC,GAAG,GAAGrD,CAAC,CAAC,GAAG,CAAC,CAAC,GAAGe,CAAC,MAAM;AACnI,IAAAN,EAAG,GAAE,KAAKR,EAAE,KAAK,GAAG,EAAE,QAAQ,CAACe,MAAM,EAAE,IAAI,CAACS,MAAMd,EAAE,GAAGK,GAAGS,GAAGV,CAAC,CAAC,CAAC,CAAC;AAAA,EACrE,GAAK,EAAE,WAAW,IAAI,OAAO,OAAQ,CAAA,GAAGF,IAAI,MAAM;AAC9C,IAAAD,EAAC,GAAIH;EACT;AACE,SAAOQ,GAAGJ,CAAC,GAAGA;AAChB;AACA,MAAM2C,KAAK,CAAC,MAAM,OAAO,KAAK,aAAa,IAAI,OAAO,KAAK,WAAW,CAAC,MAAM,EAAE,QAAQ,IAAI,MAAM,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI,MAAM;AAC/I,SAASC,MAAM,GAAG;AAChB,MAAI,GAAG,GAAG,IAAI;AACd,IAAE,WAAW,KAAK,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,KAAK,EAAE,WAAW,IAAI,OAAO,EAAE,CAAC,KAAK,YAAY,IAAI,IAAI,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,MAAM,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,MAAM,IAAI,IAAI,IAAI,EAAE,CAAC;AACnK,QAAM,EAAE,QAAQzD,IAAIsD,IAAI,WAAWrD,IAAI,WAAW,SAASQ,IAAI,GAAE,IAAK,GAAGE,IAAI6C,GAAG,CAAC;AACjF,SAAOD,GAAGvD,GAAGC,GAAG,CAAC,MAAM;AACrB,IAAAU,EAAE,CAAC,KAAK,EAAE,CAAC;AAAA,EACZ,GAAEF,CAAC;AACN;AACA,SAASiD,GAAG,GAAG,IAAI,IAAI;AACrB,QAAM,IAAItD,GAAI,GAAE,IAAI,MAAM,EAAE,QAAQ,EAAQ,EAAC;AAC7C,SAAO,EAAG,GAAEgB,GAAG,GAAG,CAAC,GAAG;AACxB;AACA,SAASuC,GAAG,GAAG;AACb,SAAO,KAAK,MAAM,KAAK,UAAU,CAAC,CAAC;AACrC;AACA,MAAMC,KAAK,OAAO,aAAa,MAAM,aAAa,OAAO,SAAS,MAAM,SAAS,OAAO,SAAS,MAAM,SAAS,OAAO,OAAO,MAAM,OAAO,CAAE,GAAEC,KAAK;AACpJD,GAAGC,EAAE,IAAID,GAAGC,EAAE,KAAK,CAAA;AAEnB,IAAIC,KAAK,OAAO,uBAAuBC,KAAK,OAAO,UAAU,gBAAgBC,KAAK,OAAO,UAAU,sBAAsBC,KAAK,CAAC,GAAG,MAAM;AACtI,MAAI,IAAI,CAAA;AACR,WAAS,KAAK;AACZ,IAAAF,GAAG,KAAK,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC;AAClD,MAAI,KAAK,QAAQD;AACf,aAAS,KAAKA,GAAG,CAAC;AAChB,QAAE,QAAQ,CAAC,IAAI,KAAKE,GAAG,KAAK,GAAG,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC;AACpD,SAAO;AACT;AACA,SAASE,GAAG,GAAG,GAAG,IAAI,CAAA,GAAI;AACxB,QAAM,IAAI,GAAG,EAAE,QAAQlE,IAAIsD,GAAE,IAAK,GAAGrD,IAAIgE,GAAG,GAAG,CAAC,QAAQ,CAAC;AACzD,MAAIxD;AACJ,QAAME,IAAI+C,GAAG,MAAM1D,KAAK,oBAAoBA,CAAC,GAAGY,IAAI,MAAM;AACxD,IAAAH,MAAMA,EAAE,WAAU,GAAIA,IAAI;AAAA,EAC9B,GAAKI,IAAIH,GAAG,MAAM2C,GAAG,CAAC,GAAG,CAACtC,MAAM;AAC5B,IAAAH,EAAC,GAAID,EAAE,SAASX,KAAKe,MAAMN,IAAI,IAAI,eAAe,CAAC,GAAGA,EAAE,QAAQM,GAAGd,CAAC;AAAA,EACxE,GAAK,EAAE,WAAW,IAAI,OAAO,OAAQ,CAAA,GAAG,IAAI,MAAM;AAC9C,IAAAW,EAAC,GAAIC;EACT;AACE,SAAOI,GAAG,CAAC,GAAG;AAAA,IACZ,aAAaN;AAAA,IACb,MAAM;AAAA,EACV;AACA;AACA,IAAIwD;AAAA,CACH,SAAS,GAAG;AACX,IAAE,KAAK,MAAM,EAAE,QAAQ,SAAS,EAAE,OAAO,QAAQ,EAAE,OAAO,QAAQ,EAAE,OAAO;AAC7E,GAAGA,OAAOA,KAAK,CAAE,EAAC;AAClB,IAAIC,KAAK,OAAO,gBAAgBC,KAAK,OAAO,uBAAuBC,KAAK,OAAO,UAAU,gBAAgBC,KAAK,OAAO,UAAU,sBAAsBC,KAAK,CAAC,GAAG,GAAG,MAAM,KAAK,IAAIJ,GAAG,GAAG,GAAG,EAAE,YAAY,IAAI,cAAc,IAAI,UAAU,IAAI,OAAO,EAAC,CAAE,IAAI,EAAE,CAAC,IAAI,GAAGK,KAAK,CAAC,GAAG,MAAM;AAChR,WAAS,KAAK,MAAM,IAAI,CAAA;AACtB,IAAAH,GAAG,KAAK,GAAG,CAAC,KAAKE,GAAG,GAAG,GAAG,EAAE,CAAC,CAAC;AAChC,MAAIH;AACF,aAAS,KAAKA,GAAG,CAAC;AAChB,MAAAE,GAAG,KAAK,GAAG,CAAC,KAAKC,GAAG,GAAG,GAAG,EAAE,CAAC,CAAC;AAClC,SAAO;AACT;AACA,MAAME,KAAK;AAAA,EACT,YAAY,CAAC,MAAM,GAAG,MAAM,CAAC;AAAA,EAC7B,aAAa,CAAC,MAAM,GAAG,MAAM,CAAC;AAAA,EAC9B,eAAe,CAAC,MAAM,GAAG,MAAM,CAAC;AAAA,EAChC,YAAY,CAAC,MAAM,GAAG,KAAK,CAAC;AAAA,EAC5B,aAAa,CAAC,KAAK,GAAG,MAAM,CAAC;AAAA,EAC7B,eAAe,CAAC,MAAM,GAAG,MAAM,CAAC;AAAA,EAChC,aAAa,CAAC,MAAM,GAAG,MAAM,CAAC;AAAA,EAC9B,cAAc,CAAC,MAAM,GAAG,MAAM,CAAC;AAAA,EAC/B,gBAAgB,CAAC,MAAM,GAAG,MAAM,CAAC;AAAA,EACjC,aAAa,CAAC,KAAK,GAAG,MAAM,CAAC;AAAA,EAC7B,cAAc,CAAC,MAAM,GAAG,KAAK,CAAC;AAAA,EAC9B,gBAAgB,CAAC,MAAM,GAAG,MAAM,CAAC;AAAA,EACjC,aAAa,CAAC,MAAM,GAAG,MAAM,CAAC;AAAA,EAC9B,cAAc,CAAC,MAAM,GAAG,MAAM,CAAC;AAAA,EAC/B,gBAAgB,CAAC,MAAM,GAAG,MAAM,CAAC;AAAA,EACjC,YAAY,CAAC,KAAK,GAAG,MAAM,CAAC;AAAA,EAC5B,aAAa,CAAC,MAAM,GAAG,KAAK,CAAC;AAAA,EAC7B,eAAe,CAAC,MAAM,GAAG,MAAM,CAAC;AAAA,EAChC,YAAY,CAAC,MAAM,GAAG,GAAG,IAAI;AAAA,EAC7B,aAAa,CAAC,GAAG,MAAM,MAAM,CAAC;AAAA,EAC9B,eAAe,CAAC,MAAM,GAAG,MAAM,CAAC;AAAA,EAChC,YAAY,CAAC,MAAM,GAAG,MAAM,KAAK;AAAA,EACjC,aAAa,CAAC,MAAM,MAAM,MAAM,CAAC;AAAA,EACjC,eAAe,CAAC,MAAM,MAAM,MAAM,GAAG;AACvC;AACAD,GAAG;AAAA,EACD,QAAQlE;AACV,GAAGmE,EAAE;AACL,SAASC,GAAG,GAAG,GAAG,GAAG,IAAI,CAAA,GAAI;AAC3B,MAAI3E,GAAGC,GAAGQ;AACV,QAAM;AAAA,IACJ,OAAOE,IAAI;AAAA,IACX,SAASC,IAAI;AAAA,IACb,WAAWC;AAAA,IACX,MAAM,IAAI;AAAA,IACV,cAAcE;AAAA,EACf,IAAG,GAAGC,IAAIK,GAAE,GAAII,IAAI,MAAMT,KAAK,OAAO,SAASA,EAAE,WAAWhB,IAAIgB,KAAK,OAAO,SAASA,EAAE,UAAU,OAAO,SAAShB,EAAE,KAAKgB,CAAC,QAAQP,KAAKR,IAAIe,KAAK,OAAO,SAASA,EAAE,UAAU,OAAO,SAASf,EAAE,UAAU,OAAO,SAASQ,EAAE,KAAKO,KAAK,OAAO,SAASA,EAAE,KAAK;AAC3P,MAAIU,IAAIb;AACR,QAAM,IAAI,eAAea,IAAIb,KAAKa,KAAK,UAAU,EAAE,SAAQ,CAAE;AAC7D,QAAMC,IAAI,CAACM,MAAMtB,IAAIjB,GAAGiB,CAAC,IAAIA,EAAEsB,CAAC,IAAI0B,GAAG1B,CAAC,IAAIA,GAAGL,IAAI,MAAMpC,GAAG,EAAE,CAAC,CAAC,IAAImC,EAAE,EAAE,CAAC,CAAC,IAAIZ;AAC9E,MAAIH,GAAG;AACL,UAAMqB,IAAIL,EAAG,GAAEC,IAAIzB,GAAG6B,CAAC;AACvB,WAAOvB,GAAG,MAAM,EAAE,CAAC,GAAG,CAACoB,MAAMD,EAAE,QAAQF,EAAEG,CAAC,CAAC,GAAGpB,GAAGmB,GAAG,CAACC,MAAM;AACzD,OAACA,MAAM,EAAE,CAAC,KAAK,MAAML,EAAEC,GAAGI,CAAC;AAAA,IAC5B,GAAE,EAAE,MAAM,EAAG,CAAA,GAAGD;AAAA,EAClB;AACC,WAAO+C,EAAE;AAAA,MACP,MAAM;AACJ,eAAOhD,EAAC;AAAA,MACT;AAAA,MACD,IAAIK,GAAG;AACL,QAAAR,EAAEC,GAAGO,CAAC;AAAA,MACP;AAAA,IACP,CAAK;AACL;AACA,SAAS4C,EAAE,IAAI,MAAM;AACrB,GAAG;AACD,QAAM,IAAIzE,GAAmB,oBAAI,IAAK,CAAA;AACtC,OAAK,EAAE,MAAM,IAAI,CAAC;AAClB,QAAM,IAAI,CAACH,MAAM;AACf,MAAE,MAAM,OAAOA,CAAC;AAAA,EACpB;AACE,SAAO;AAAA,IACL,IAAI,CAACA,MAAM;AACT,QAAE,MAAM,IAAI,CAAC,KAAK,EAAE,MAAM,OAAO,CAAC,GAAG,EAAE,MAAM,IAAIA,CAAC;AAClD,YAAM,IAAI,MAAM,EAAEA,CAAC;AACnB,aAAOgB,GAAG,CAAC,GAAG;AAAA,QACZ,KAAK;AAAA,MACb;AAAA,IACK;AAAA,IACD,KAAK;AAAA,IACL,SAAS,CAAChB,MAAM,QAAQ,IAAI,MAAM,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,EAAEA,CAAC,CAAC,CAAC;AAAA,IAChE,KAAK;AAAA,EACT;AACA;AACA,MAAM6E,KAAK,CAAC,cAAc,MAAM;AAChC,SAASC,GAAG,MAAM,GAAG;AACnB,EAAAD,GAAG,SAAS,QAAQ,IAAI,YAAY,EAAE,KAAK,QAAQ,KAAK,eAAe,CAAC,IAAI,GAAG,CAAC;AAClF;AACA,SAASE,KAAK;AACZ,SAAO;AAAA,IACL,aAAaH,EAAG;AAAA,IAChB,aAAaA,EAAG;AAAA,IAChB,iBAAiBA,EAAG;AAAA,IACpB,WAAWA,EAAG;AAAA,IACd,gBAAgBA,EAAG;AAAA,IACnB,eAAeA,EAAG;AAAA,IAClB,gBAAgBA,EAAG;AAAA,IACnB,iBAAiBA,EAAG;AAAA,IACpB,eAAeA,EAAG;AAAA,IAClB,UAAUA,EAAG;AAAA,IACb,cAAcA,EAAG;AAAA,IACjB,kBAAkBA,EAAG;AAAA,IACrB,kBAAkBA,EAAG;AAAA,IACrB,wBAAwBA,EAAG;AAAA,IAC3B,uBAAuBA,EAAG;AAAA,IAC1B,sBAAsBA,EAAG;AAAA,IACzB,uBAAuBA,EAAG;AAAA,IAC1B,SAASA,EAAG;AAAA,IACZ,cAAcA,EAAG;AAAA,IACjB,YAAYA,EAAG;AAAA,IACf,mBAAmBA,EAAG;AAAA,IACtB,iBAAiBA,EAAG;AAAA,IACpB,WAAWA,EAAG;AAAA,IACd,MAAMA,EAAG;AAAA,IACT,WAAWA,EAAG;AAAA,IACd,SAASA,EAAG;AAAA,IACZ,oBAAoBA,EAAG;AAAA,IACvB,eAAeA,EAAG;AAAA,IAClB,mBAAmBA,EAAG;AAAA,IACtB,sBAAsBA,EAAG;AAAA,IACzB,gBAAgBA,EAAG;AAAA,IACnB,cAAcA,EAAG;AAAA,IACjB,qBAAqBA,EAAG;AAAA,IACxB,gBAAgBA,EAAG;AAAA,IACnB,mBAAmBA,EAAG;AAAA,IACtB,YAAYA,EAAG;AAAA,IACf,WAAWA,EAAG;AAAA,IACd,iBAAiBA,EAAG;AAAA,IACpB,gBAAgBA,EAAG;AAAA,IACnB,eAAeA,EAAG;AAAA,IAClB,gBAAgBA,EAAG;AAAA,IACnB,iBAAiBA,EAAG;AAAA,IACpB,gBAAgBA,EAAG;AAAA,IACnB,eAAeA,EAAG;AAAA,IAClB,gBAAgBA,EAAG;AAAA,IACnB,iBAAiBA,EAAG;AAAA,IACpB,WAAWA,EAAG;AAAA,IACd,iBAAiBA,EAAG;AAAA,IACpB,YAAYA,EAAG;AAAA,IACf,eAAeA,EAAG;AAAA,IAClB,qBAAqBA,EAAG;AAAA,IACxB,OAAOA,EAAE,CAAC,MAAME,GAAG,EAAE,OAAO,CAAC;AAAA,EACjC;AACA;AACA,SAASE,GAAG,GAAG,GAAG;AAChBC,EAAAA,GAAG,MAAM;AACP,eAAW,CAAC,GAAG,CAAC,KAAK,OAAO,QAAQ,EAAE,KAAK,GAAG;AAC5C,YAAMlF,IAAI,CAACC,MAAM;AACf,UAAE,GAAGA,CAAC;AAAA,MACd;AACM,QAAE,GAAGD,CAAC,GAAGiB,GAAG,MAAM;AAChB,UAAE,IAAIjB,CAAC;AAAA,MACf,CAAO;AAAA,IACF;AAAA,EACL,CAAG;AACH;AACA,IAAImF,KAAsB,kBAAC,OAAO,EAAE,8BAA8B,+BAA+B,EAAE,iBAAiB,kBAAkB,EAAE,sBAAsB,uBAAuB,EAAE,oBAAoB,qBAAqB,EAAE,sBAAsB,uBAAuB,EAAE,eAAe,gBAAgB,EAAE,iBAAiB,kBAAkB,EAAE,sBAAsB,uBAAuB,EAAE,sBAAsB,uBAAuB,EAAE,oBAAoB,qBAAqB,EAAE,0BAA0B,2BAA2B,EAAE,6BAA6B,8BAA8B,EAAE,gBAAgB,iBAAiB,IAAIA,MAAM,CAAA,CAAE;AACjoB,MAAMC,KAAK;AAAA,EACT,6BAA6B,MAAM;AAAA,EACnC,gBAAgB,CAAC,MAAM;AAAA,QACjB,CAAC;AAAA,EACP,qBAAqB,CAAC,GAAG,MAAM;AAAA,QACzB,CAAC;AAAA,UACC,CAAC;AAAA,EACT,mBAAmB,CAAC,MAAM;AAAA,QACpB,CAAC;AAAA,EACP,qBAAqB,CAAC,MAAM;AAAA,QACtB,CAAC;AAAA,EACP,cAAc,CAAC,MAAM;AAAA,QACf,CAAC;AAAA,EACP,qBAAqB,CAAC,GAAG,MAAM;AAAA,QACzB,CAAC;AAAA,UACC,CAAC;AAAA,EACT,qBAAqB,CAAC,GAAG,MAAM;AAAA,QACzB,CAAC;AAAA,UACC,CAAC;AAAA,EACT,mBAAmB,CAAC,MAAM;AAAA,QACpB,CAAC;AAAA,EACP,yBAAyB,CAAC,GAAG,GAAG,MAAM;AAAA,QAChC,CAAC;AAAA,UACC,CAAC;AAAA,UACD,CAAC;AAAA,EACT,4BAA4B,CAAC,GAAG,GAAG,MAAM;AAAA,QACnC,CAAC;AAAA,UACC,CAAC;AAAA,UACD,CAAC;AAAA,EACT,eAAe,CAAC,MAAM;AAAA,QAChB,CAAC;AAAA,EACP,gBAAgB,CAAC,MAAM;AAAA,QACjB,CAAC;AACT;AACA,MAAMC,WAAW,MAAM;AAAA,EACrB,YAAY,MAAM,GAAG;AACnB,QAAI;AACJ,WAAO,IAAID,GAAG,CAAC,MAAM,OAAO,SAAS,EAAE,KAAKA,IAAI,GAAG,CAAC,CAAC,GAAG,KAAK,OAAO;AAAA,EACrE;AACH;AACA,MAAME,KAAK,MAAM,OAAO,SAAS,MAAM,SAAS,EAAE,QAAQ;AAC1D,SAASC,GAAG,GAAG;AACb,SAAO;AAAA,IACL,GAAG,EAAE,oBAAoB,EAAE,GAAG,GAAG,GAAG,EAAG;AAAA,IACvC,OAAO,EAAE,WAAW,SAAS;AAAA,IAC7B,QAAQ,EAAE,WAAW,UAAU;AAAA,EACnC;AACA;AACA,SAASC,GAAG,GAAG,GAAG;AAChB,QAAM,IAAI,KAAK,IAAI,GAAG,KAAK,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,IAAI,KAAK,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,IAAI,KAAK,IAAI,GAAG,KAAK,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,IAAI,KAAK,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC;AACjK,SAAO,KAAK,KAAK,IAAI,CAAC;AACxB;AACA,SAASC,GAAG,GAAG;AACb,SAAO;AAAA,IACL,OAAO,EAAE;AAAA,IACT,QAAQ,EAAE;AAAA,EACd;AACA;AACA,SAASC,GAAG,GAAG,IAAI,GAAG,IAAI,GAAG;AAC3B,SAAO,KAAK,IAAI,KAAK,IAAI,GAAG,CAAC,GAAG,CAAC;AACnC;AACA,SAASC,GAAG,GAAG,GAAG;AAChB,SAAO;AAAA,IACL,GAAGD,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;AAAA,IAC3B,GAAGA,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;AAAA,EAC/B;AACA;AACA,SAASE,GAAG,GAAG;AACb,QAAM,IAAI,EAAE,YAAa,GAAE,IAAIN,GAAE;AACjC,SAAO,sBAAsB,IAAI,IAAI,EAAE;AACzC;AACA,SAASO,GAAG,GAAG;AACb,SAAO,KAAK,QAAQ,KAAK,YAAY,KAAK,YAAY;AACxD;AACA,SAASC,GAAG,GAAG;AACb,SAAOD,GAAG,CAAC,KAAK,gBAAgB,KAAK,gBAAgB;AACvD;AACA,SAASE,GAAG,GAAG;AACb,SAAO,KAAK,QAAQ,KAAK,CAACF,GAAG,CAAC;AAChC;AACA,SAASG,GAAG,GAAG;AACb,SAAOD,GAAG,CAAC,KAAK,sBAAsB;AACxC;AACA,SAASE,GAAG,GAAG;AACb,SAAO,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE;AACjD;AACA,SAASC,GAAG,GAAG,IAAI,IAAI;AACrB,MAAI,IAAI;AACR,SAAOF,GAAG,CAAC,MAAM,IAAI;AAAA,IACnB,MAAM,EAAE,QAAQ,EAAE,QAAQ;AAAA,IAC1B,YAAYG,GAAG;AAAA,MACb,OAAO;AAAA,MACP,QAAQ;AAAA,IACd,CAAK;AAAA,IACD,cAAc;AAAA,MACZ,QAAQ,CAAE;AAAA,MACV,QAAQ,CAAE;AAAA,IACX;AAAA,IACD,kBAAkBA,GAAG;AAAA,MACnB,GAAG;AAAA,MACH,GAAG,EAAE;AAAA,IACX,CAAK;AAAA,IACD,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,WAAW;AAAA,IACX,UAAU;AAAA,IACV,UAAU;AAAA,IACV,UAAU;AAAA,IACV,aAAa;AAAA,IACb,GAAG;AAAA,IACH,MAAMC,GAAG,EAAE,IAAI,IAAI,EAAE,OAAO,CAAE;AAAA,IAC9B,QAAQD,GAAGC,GAAG,EAAE,MAAM,IAAI,EAAE,SAAS,EAAE;AAAA,EACxC,IAAG,OAAO,OAAO,CAAA,GAAI,GAAG,GAAG,EAAE,IAAI,EAAE,GAAG,SAAQ,EAAI,CAAA;AACrD;AACA,SAASC,GAAG,GAAG,IAAI,IAAI;AACrB,QAAM,IAAID,GAAG,EAAE,MAAM,IAAI,EAAE,SAAS,EAAE,UAAUA,GAAG,EAAE,MAAM,IAAI,EAAE,SAAS,CAAA,GAAI,IAAIA,GAAG,EAAE,IAAI,IAAI,EAAE,OAAO,EAAE,QAAQA,GAAG,EAAE,IAAI,IAAI,EAAE,OAAO,CAAA;AACxI,SAAO,IAAIN,GAAG,CAAC,IAAI,IAAI;AAAA,IACrB,GAAG;AAAA,IACH,eAAe,EAAE,eAAe,EAAE,aAAa,aAAa,WAAW,EAAE;AAAA,IACzE,eAAe,EAAE,eAAe,EAAE,aAAa,aAAa,WAAW,EAAE;AAAA,IACzE,MAAM,EAAE,QAAQ,EAAE,QAAQ;AAAA,IAC1B,QAAQ,EAAE,OAAO,SAAU,KAAI,EAAE;AAAA,IACjC,QAAQ,EAAE,OAAO,SAAU,KAAI,EAAE;AAAA,IACjC,WAAW,EAAE,aAAa,EAAE;AAAA,IAC5B,YAAY,EAAE,cAAc,EAAE;AAAA,IAC9B,WAAW,EAAE,aAAa,EAAE;AAAA,IAC5B,MAAM;AAAA,IACN,QAAQK,GAAG,CAAC;AAAA,IACZ,QAAQ,EAAE,SAAS,CAACvG,GAAG,EAAE,KAAK,IAAIuG,GAAG,EAAE,KAAK,IAAI,EAAE,UAAU,EAAE;AAAA,IAC9D,kBAAkB,EAAE,oBAAoB,EAAE;AAAA,EAC3C,GAAE,OAAO,OAAO,CAAE,GAAE,GAAG,GAAG,EAAE,IAAI,EAAE,GAAG,SAAQ,EAAI,CAAA;AACpD;AAaA,SAASG,GAAG,EAAE,QAAQ,GAAG,cAAc,GAAG,QAAQ,GAAG,cAAc,KAAK;AACtE,SAAO,iBAAiB,CAAC,GAAG,KAAK,EAAE,IAAI,CAAC,GAAG,KAAK,EAAE;AACpD;AACA,SAASC,GAAG,GAAG,GAAG;AAChB,SAAO,EAAE;AAAA,IACP,CAAC,MAAMV,GAAG,CAAC,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,WAAW,EAAE,WAAW,EAAE,iBAAiB,EAAE,gBAAgB,CAAC,EAAE,gBAAgB,CAAC,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,gBAAgB,CAAC,EAAE,gBAAgB,CAAC,EAAE;AAAA,EAC/M;AACA;AA0BA,SAASW,GAAG,EAAE,GAAG,GAAG,GAAG,EAAG,GAAE,EAAE,GAAG,GAAG,GAAG,GAAG,MAAMxG,EAAC,GAAI;AACnD,SAAO;AAAA,IACL,GAAG,IAAIA,IAAI;AAAA,IACX,GAAG,IAAIA,IAAI;AAAA,EACf;AACA;AACA,SAASyG,GAAG,EAAE,GAAG,GAAG,GAAG,EAAC,GAAI,EAAE,GAAG,GAAG,GAAG,GAAG,MAAMzG,EAAC,GAAIC,GAAG,CAACQ,GAAGE,CAAC,GAAG;AAC9D,QAAMC,IAAI;AAAA,IACR,IAAI,IAAI,KAAKZ;AAAA,IACb,IAAI,IAAI,KAAKA;AAAA,EACjB;AACE,SAAOC,IAAI;AAAA,IACT,GAAGQ,IAAI,KAAK,MAAMG,EAAE,IAAIH,CAAC;AAAA,IACzB,GAAGE,IAAI,KAAK,MAAMC,EAAE,IAAID,CAAC;AAAA,EAC1B,IAAGC;AACN;AACA,SAAS8F,GAAG,GAAG,GAAG;AAChB,SAAO;AAAA,IACL,GAAG,KAAK,IAAI,EAAE,GAAG,EAAE,CAAC;AAAA,IACpB,GAAG,KAAK,IAAI,EAAE,GAAG,EAAE,CAAC;AAAA,IACpB,IAAI,KAAK,IAAI,EAAE,IAAI,EAAE,EAAE;AAAA,IACvB,IAAI,KAAK,IAAI,EAAE,IAAI,EAAE,EAAE;AAAA,EAC3B;AACA;AACA,SAASC,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,OAAO,GAAG,QAAQ,KAAK;AAC/C,SAAO;AAAA,IACL,GAAG;AAAA,IACH,GAAG;AAAA,IACH,IAAI,IAAI;AAAA,IACR,IAAI,IAAI;AAAA,EACZ;AACA;AACA,SAASC,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,KAAK;AACxC,SAAO;AAAA,IACL,GAAG;AAAA,IACH,GAAG;AAAA,IACH,OAAO,IAAI;AAAA,IACX,QAAQ,IAAI;AAAA,EAChB;AACA;AAIA,SAASC,GAAG,GAAG;AACb,QAAM,IAAI,EAAE;AAAA,IACV,CAAC,GAAG,EAAE,kBAAkB,IAAI,EAAE,GAAG,GAAG,GAAG,EAAC,GAAI,YAAY7G,IAAI,EAAE,OAAO,GAAG,QAAQ,EAAG,EAAA,IAAK,CAAA,MAAO0G;AAAA,MAC7F;AAAA,MACAC,GAAG;AAAA,QACD,GAAG;AAAA,QACH,GAAG3G;AAAA,MACX,CAAO;AAAA,IACF;AAAA,IACD,EAAE,GAAG,OAAO,GAAG,OAAO,IAAI,QAAQ,IAAI,OAAQ;AAAA,EAClD;AACE,SAAO4G,GAAG,CAAC;AACb;AACA,SAASE,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,MAAM9G,MAAM,EAAE,GAAG,GAAG,GAAG,GAAG,MAAM,EAAC,GAAIC,IAAI,IAAIQ,IAAI,IAAI;AACnF,QAAME,IAAI;AAAA,IACR,IAAI,EAAE,IAAI,KAAKX;AAAA,IACf,IAAI,EAAE,IAAI,KAAKA;AAAA,IACf,OAAO,EAAE,QAAQA;AAAA,IACjB,QAAQ,EAAE,SAASA;AAAA,EACvB;AACE,SAAO,EAAE,OAAO,CAACY,MAAM;AACrB,UAAM,EAAE,kBAAkBC,IAAI,EAAE,GAAG,GAAG,GAAG,EAAC,GAAI,YAAY,IAAI,EAAE,OAAO,GAAG,QAAQ,EAAG,GAAE,YAAYE,EAAG,IAAGH;AACzG,QAAIH,KAAK,CAACM;AACR,aAAO;AACT,UAAMC,IAAI,EAAE,GAAGH,GAAG,OAAO,EAAE,SAAS,GAAG,QAAQ,EAAE,UAAU,EAAC,GAAIY,IAAI+D,GAAG7E,GAAGK,CAAC,GAAGU,IAAI,OAAO,EAAE,QAAQ,OAAO,OAAO,EAAE,SAAS,OAAO,EAAE,UAAU,KAAK,EAAE,WAAW,GAAGC,IAAI1B,KAAKwB,IAAI,GAAGG,IAAI,EAAE,QAAQ,EAAE;AACpM,WAAOF,KAAKC,KAAKF,KAAKG;AAAA,EAC1B,CAAG;AACH;AACA,SAASmF,GAAG,GAAG,GAAG;AAChB,QAAM,IAAI,EAAE,IAAI,CAAC,MAAMnH,GAAG,CAAC,IAAI,IAAI,EAAE,EAAE;AACvC,SAAO,EAAE,OAAO,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,EAAE,SAAS,EAAE,MAAM,CAAC;AACrE;AACA,SAASoH,GAAG,GAAG,GAAG,GAAG,GAAGhH,GAAGC,IAAI,KAAKQ,IAAI,EAAE,GAAG,GAAG,GAAG,EAAC,GAAI;AACtD,QAAME,IAAI,KAAK,EAAE,SAAS,IAAIV,KAAKW,IAAI,KAAK,EAAE,UAAU,IAAIX,KAAKY,IAAI,KAAK,IAAIF,GAAGC,CAAC,GAAG,IAAI8E,GAAG7E,GAAG,GAAGb,CAAC,GAAGe,IAAI,EAAE,IAAI,EAAE,QAAQ,GAAGC,IAAI,EAAE,IAAI,EAAE,SAAS,GAAGS,IAAI,IAAI,IAAIV,IAAI,KAAKN,EAAE,KAAK,IAAIiB,IAAI,IAAI,IAAIV,IAAI,KAAKP,EAAE,KAAK;AACjN,SAAO,EAAE,GAAAgB,GAAG,GAAGC,GAAG,MAAM,EAAC;AAC3B;AACA,SAASuF,GAAG,GAAG,GAAG;AAChB,SAAO;AAAA,IACL,GAAG,EAAE,IAAI,EAAE;AAAA,IACX,GAAG,EAAE,IAAI,EAAE;AAAA,IACX,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK;AAAA,EACjC;AACA;AACA,SAASC,GAAG,GAAG,GAAG;AAChB,MAAI,CAAC,EAAE;AACL,WAAO;AACT,QAAM,IAAI,EAAE,EAAE,UAAU;AACxB,SAAO,IAAI,EAAE,WAAW,KAAKA,GAAG,GAAG,CAAC,IAAI;AAC1C;AACA,SAASC,GAAG,GAAG,GAAG;AAChB,SAAO,OAAO,IAAI,MAAM,KAAK,OAAO,KAAK,WAAW,IAAI,GAAG,IAAI,GAAG,CAAC,OAAO,EAAE,GAAG,OAAO,KAAK,CAAC,EAAE,KAAI,EAAG,IAAI,CAACC,MAAM,GAAGA,CAAC,IAAI,EAAEA,CAAC,CAAC,EAAE,EAAE,KAAK,GAAG,CAAC;AAC3I;AACA,SAAShB,GAAG,GAAG;AACb,SAAO,OAAOtG,EAAE,CAAC,IAAI;AACvB;AACA,SAASuH,GAAG,GAAG,GAAG,GAAG;AACnB,MAAI,CAAC,EAAE,UAAU,CAAC,EAAE;AAClB,WAAO,EAAE,IAAIhC,GAAGF,GAAG,cAAc,EAAE,EAAE,CAAC,GAAG;AAC3C,MAAI;AACJ,SAAOU,GAAG,CAAC,IAAI,IAAI,IAAI,IAAI;AAAA,IACzB,GAAG;AAAA,IACH,IAAIS,GAAG,CAAC;AAAA,EACZ,GAAK,IAAID,GAAG,CAAC,GAAGE,GAAG,GAAG,CAAC,IAAI,KAAK;AAChC;AACA,SAASe,GAAG,GAAG,GAAG,GAAG,GAAGtH,GAAGC,GAAG;AAC5B,MAAI,CAAC,EAAE,UAAU,CAAC,EAAE;AAClB,WAAOA,EAAE,IAAIoF,GAAGF,GAAG,cAAc,EAAE,EAAE,CAAC,GAAG;AAC3C,QAAM1E,IAAI,EAAE,EAAE,EAAE;AAChB,MAAI,CAACA;AACH,WAAOR,EAAE,IAAIoF,GAAGF,GAAG,gBAAgB,EAAE,EAAE,CAAC,GAAG;AAC7C,QAAM,EAAE,IAAIxE,GAAG,GAAGC,EAAG,IAAG,GAAGC,IAAI;AAAA,IAC7B,GAAGD;AAAA,IACH,IAAIZ,IAAIsG,GAAG,CAAC,IAAI3F;AAAA,IAChB,QAAQ,EAAE;AAAA,IACV,QAAQ,EAAE;AAAA,IACV,cAAc,EAAE;AAAA,IAChB,cAAc,EAAE;AAAA,EACpB;AACE,SAAO,EAAE,OAAO,EAAE,QAAQF,CAAC,GAAG,GAAGI,CAAC,GAAGA;AACvC;AACA,SAAS0G,GAAG,GAAG,GAAG,GAAG,GAAG;AACtB,QAAMvH,IAAI,CAAA,GAAIC,IAAI,EAAE,IAAI,CAACU,MAAM;AAC7B,UAAMC,IAAIsF,GAAGvF,GAAG;AAAA,MACd,GAAG,EAAEA,EAAE,EAAE;AAAA,MACT,YAAYA,EAAE;AAAA,IACpB,CAAK;AACD,WAAOA,EAAE,eAAeX,EAAEW,EAAE,UAAU,IAAI,KAAKC;AAAA,EAChD,CAAA,GAAGH,IAAI,CAAC,GAAGR,GAAG,GAAG,CAAC;AACnB,SAAOA,EAAE,QAAQ,CAACU,MAAM;AACtB,UAAMC,IAAIH,EAAE,KAAK,CAACI,MAAMA,EAAE,OAAOF,EAAE,UAAU;AAC7C,IAAAA,EAAE,cAAc,CAACC,KAAK,EAAE,IAAIyE,GAAGF,GAAG,qBAAqBxE,EAAE,IAAIA,EAAE,UAAU,CAAC,IAAIA,EAAE,cAAcX,EAAEW,EAAE,EAAE,OAAOX,EAAEW,EAAE,EAAE,MAAMA,EAAE,WAAW,KAAKC,MAAMA,EAAE,WAAW;AAAA,EAC7J,CAAA,GAAGX;AACN;AACG,IAACuH,IAAqB,kBAAC,OAAO,EAAE,OAAO,QAAQ,EAAE,MAAM,OAAO,EAAE,QAAQ,SAAS,EAAE,SAAS,UAAU,IAAIA,KAAK,EAAE,GAAGC,KAAsB,kBAAC,OAAO,EAAE,UAAU,WAAW,EAAE,OAAO,QAAQ,IAAIA,MAAM,CAAA,CAAE,GAAGC,KAAsB,kBAAC,OAAO,EAAE,SAAS,WAAW,EAAE,eAAe,iBAAiB,EAAE,WAAW,YAAY,EAAE,OAAO,QAAQ,EAAE,aAAa,cAAc,IAAIA,MAAM,EAAE,GAAGC,KAAsB,kBAAC,OAAO,EAAE,SAAS,UAAU,EAAE,QAAQ,SAAS,IAAIA,MAAM,CAAA,CAAE,GAAGC,KAAsB,kBAAC,OAAO,EAAE,QAAQ,SAAS,EAAE,cAAc,eAAe,IAAIA,MAAM,CAAE,CAAA,GAAG,KAAsB,kBAAC,OAAO,EAAE,OAAO,QAAQ,EAAE,WAAW,YAAY,EAAE,aAAa,cAAc,IAAI,MAAM,CAAE,CAAA;AAC7pB,MAAMC,KAAK,OAAO,SAAS,GAAGC,KAAK,OAAO,QAAQ,GAAGC,KAAK,OAAO,SAAS,GAAGC,KAAK,OAAO,QAAQ,GAAGC,KAAK,OAAO,SAAS,GAAGC,KAAK,OAAO,OAAO;AAC/I,SAASC,GAAG,GAAG;AACb,QAAM,IAAI,KAAKC,GAAGN,IAAI,EAAE,GAAG,IAAIM,GAAGL,IAAI,IAAI,GAAG,EAAE,UAAU,GAAG,OAAO/H,GAAG,OAAOC,EAAC,IAAKoI,GAAE,GAAI5H,IAAI,EAAE,CAAC;AAChG,SAAOA,KAAKR,EAAE,MAAM,IAAIoF,GAAGF,GAAG,gBAAgB,CAAC,CAAC,GAAG;AAAA,IACjD,IAAI;AAAA,IACJ,QAAQ;AAAA,IACR,MAAM1E;AAAA,IACN,YAAYmE,EAAE,MAAM,EAAEnE,EAAE,UAAU,CAAC;AAAA,IACnC,gBAAgBmE,EAAE,MAAMmC,GAAG,CAACtG,CAAC,GAAGT,EAAE,KAAK,CAAC;AAAA,EAC5C;AACA;AACA,SAASsI,GAAG,GAAG;AACb,SAAO,aAAa;AACtB;AACA,SAASC,GAAG,GAAG,GAAG;AAChB,MAAItI,GAAGQ;AACP,QAAM+H,IAAIF,GAAG,CAAC,GAAGlB,IAAIoB,IAAI,EAAE,WAAWvI,IAAI,EAAE,YAAY,OAAO,SAASA,EAAE,CAAC,EAAE,SAASD,IAAIwI,IAAI,EAAE,WAAW/H,IAAI,EAAE,YAAY,OAAO,SAASA,EAAE,CAAC,EAAE;AAClJ,SAAO;AAAA,IACL,GAAG2G,MAAM,KAAK,OAAO,SAAS,EAAE,SAAS;AAAA,IACzC,GAAGpH,MAAM,KAAK,OAAO,SAAS,EAAE,QAAQ;AAAA,EAC5C;AACA;AACA,SAASyI,GAAG,GAAG,GAAG,GAAG;AACnB,QAAM,MAAM,KAAK,OAAO,SAAS,EAAE,MAAM,KAAK,EAAE,GAAGzI,MAAM,KAAK,OAAO,SAAS,EAAE,MAAM,KAAK,EAAE,GAAGC,KAAK,KAAK,OAAO,SAAS,EAAE,UAAU,EAAE,OAAOQ,KAAK,KAAK,OAAO,SAAS,EAAE,WAAW,EAAE;AACxL,UAAQ,GAAC;AAAA,IACP,KAAK+G,EAAE;AACL,aAAO;AAAA,QACL,GAAG,IAAIvH,IAAI;AAAA,QACX,GAAGD;AAAA,MACX;AAAA,IACI,KAAKwH,EAAE;AACL,aAAO;AAAA,QACL,GAAG,IAAIvH;AAAA,QACP,GAAGD,IAAIS,IAAI;AAAA,MACnB;AAAA,IACI,KAAK+G,EAAE;AACL,aAAO;AAAA,QACL,GAAG,IAAIvH,IAAI;AAAA,QACX,GAAGD,IAAIS;AAAA,MACf;AAAA,IACI,KAAK+G,EAAE;AACL,aAAO;AAAA,QACL,GAAG;AAAA,QACH,GAAGxH,IAAIS,IAAI;AAAA,MACnB;AAAA,EACG;AACH;AACA,SAASiI,GAAG,IAAI,CAAE,GAAE,GAAG;AACrB,SAAO,EAAE,SAAS,CAAC,KAAK,EAAE,WAAW,IAAI,EAAE,CAAC,IAAI,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO;AAC3F;AACA,SAASC,GAAG,GAAG,GAAG,GAAG,GAAG3I,GAAGC,GAAG;AAC5B,QAAMQ,IAAIgI;AAAA,IACR;AAAA,IACA;AAAA,MACE,GAAG,EAAE;AAAA,MACL,GAAG,EAAE;AAAA,IACN;AAAA,IACD;AAAA,EACD,GAAE9H,IAAI8H;AAAA,IACLxI;AAAA,IACA;AAAA,MACE,GAAG,EAAE;AAAA,MACL,GAAG,EAAE;AAAA,IACN;AAAA,IACDD;AAAA,EACJ;AACE,SAAO;AAAA,IACL,SAASS,EAAE;AAAA,IACX,SAASA,EAAE;AAAA,IACX,SAASE,EAAE;AAAA,IACX,SAASA,EAAE;AAAA,EACf;AACA;AACA,SAASiI,GAAG;AAAA,EACV,WAAW;AAAA,EACX,WAAW;AAAA,EACX,aAAa;AAAA,EACb,cAAc;AAAA,EACd,aAAa5I;AAAA,EACb,cAAcC;AAAA,EACd,OAAOQ;AAAA,EACP,QAAQE;AAAA,EACR,UAAUC;AACZ,GAAG;AACD,QAAMC,IAAI;AAAA,IACR,GAAG,KAAK,IAAI,EAAE,GAAG,EAAE,CAAC;AAAA,IACpB,GAAG,KAAK,IAAI,EAAE,GAAG,EAAE,CAAC;AAAA,IACpB,IAAI,KAAK,IAAI,EAAE,IAAI,GAAG,EAAE,IAAIb,CAAC;AAAA,IAC7B,IAAI,KAAK,IAAI,EAAE,IAAI,GAAG,EAAE,IAAIC,CAAC;AAAA,EACjC;AACE,EAAAY,EAAE,MAAMA,EAAE,OAAOA,EAAE,MAAM,IAAIA,EAAE,MAAMA,EAAE,OAAOA,EAAE,MAAM;AACtD,QAAM,IAAI8F,GAAG;AAAA,IACX,IAAI,IAAI/F,EAAE,KAAKA,EAAE;AAAA,IACjB,IAAI,IAAIA,EAAE,KAAKA,EAAE;AAAA,IACjB,OAAOH,IAAIG,EAAE;AAAA,IACb,QAAQD,IAAIC,EAAE;AAAA,EAClB,CAAG,GAAGG,IAAI,KAAK,IAAI,GAAG,KAAK,IAAI,EAAE,IAAIF,EAAE,EAAE,IAAI,KAAK,IAAI,EAAE,GAAGA,EAAE,CAAC,CAAC,GAAGG,IAAI,KAAK,IAAI,GAAG,KAAK,IAAI,EAAE,IAAIH,EAAE,EAAE,IAAI,KAAK,IAAI,EAAE,GAAGA,EAAE,CAAC,CAAC;AACzH,SAAO,KAAK,KAAKE,IAAIC,CAAC,IAAI;AAC5B;AACA,SAAS6H,GAAG,GAAG,GAAG,IAAI,IAAI;AACxB,MAAI,IAAI;AACR,QAAM7I,IAAI,EAAE,OAAO,CAACC,GAAGQ,MAAM;AAC3B,UAAME,IAAIhB,GAAGc,EAAE,MAAM;AACrB,QAAIG,IAAID,IAAIF,EAAE,SAAS;AACvB,UAAMI,IAAI,EAAEJ,EAAE,MAAM,GAAG,IAAI,EAAEA,EAAE,MAAM;AACrC,WAAO,CAACI,KAAK,CAAC,MAAM,MAAMD,IAAID,IAAIF,EAAE,SAAS,KAAK,IAAII,EAAE,iBAAiB,KAAK,GAAG,EAAE,iBAAiB,KAAK,CAAC,IAAIZ,EAAEW,CAAC,IAAIX,EAAEW,CAAC,EAAE,KAAKH,CAAC,IAAIR,EAAEW,CAAC,IAAI,CAACH,CAAC,GAAG,IAAIG,IAAI,IAAIA,IAAI,IAAIX;AAAA,EACrK,GAAE,CAAE,CAAA;AACL,SAAO,OAAO,QAAQ,OAAO,KAAKD,CAAC,EAAE,SAASA,IAAI,EAAE,GAAG,CAAE,EAAA,CAAE,EAAE,IAAI,CAAC,CAACC,GAAGQ,CAAC,MAAM;AAC3E,UAAME,IAAI,CAACV;AACX,WAAO;AAAA,MACL,OAAOQ;AAAA,MACP,OAAOE;AAAA,MACP,YAAYA,MAAM;AAAA,IACxB;AAAA,EACA,CAAG;AACH;AACA,SAASmI,GAAG,GAAG;AACb,OAAK,QAAQ,EAAE,UAAU,OAAO,SAAS,cAAc,0BAA0B,6BAA6B;AAChH;AACA,SAASC,GAAG,GAAG,GAAG,GAAG,GAAG;AACtB,UAAQ,EAAE,CAAC,KAAK,CAAA,GAAI,OAAO,CAAC/I,GAAGC,OAAO,GAAG,EAAE,EAAE,IAAIA,EAAE,EAAE,IAAI,CAAC,OAAO,KAAKD,EAAE,KAAK;AAAA,IAC3E,IAAIC,EAAE,MAAM;AAAA,IACZ,MAAM;AAAA,IACN,QAAQ,EAAE;AAAA,IACV,GAAGwI;AAAA,MACDxI,EAAE;AAAA,MACF;AAAA,QACE,GAAG,EAAE;AAAA,QACL,GAAG,EAAE;AAAA,MACN;AAAA,MACDA;AAAA,IACD;AAAA,EACL,CAAG,GAAGD,IAAI,CAAA,CAAE;AACZ;AACA,SAASgJ,GAAG,GAAG,GAAG,GAAG;AACnB,MAAI,IAAI,MAAMhJ,IAAI,IAAI;AACtB,SAAO,EAAE,QAAQ,CAACC,MAAM;AACtB,UAAMQ,IAAI,KAAK,MAAMR,EAAE,IAAI,EAAE,MAAM,KAAKA,EAAE,IAAI,EAAE,MAAM,CAAC;AACvD,IAAAQ,KAAK,KAAKA,IAAIT,MAAMA,IAAIS,GAAG,IAAIR;AAAA,EAChC,CAAA,GAAG;AACN;AACA,SAASgJ,GAAG,GAAG,GAAG,GAAG,GAAGjJ,GAAGC,GAAGQ,GAAGE,GAAGC,GAAGC,GAAG;AACxC,QAAM,IAAIZ,MAAM,UAAUc,IAAIJ,EAAE,cAAc,8BAA8B,KAAK,OAAO,SAAS,EAAE,MAAM,IAAI,KAAK,OAAO,SAAS,EAAE,EAAE,IAAI,KAAK,OAAO,SAAS,EAAE,IAAI,IAAI,GAAG,EAAE,GAAGK,GAAG,GAAGS,EAAG,IAAG8G,GAAG,CAAC,GAAG7G,IAAIf,EAAE,iBAAiBK,GAAGS,CAAC,GAAGE,IAAID,KAAK,QAAQA,EAAE,UAAU,SAAS,kBAAkB,IAAIA,IAAIX,GAAGa,IAAI;AAAA,IACvS,eAAeD;AAAA,IACf,SAAS;AAAA,IACT,YAAY,EAAE,QAAQ,IAAI,QAAQ,IAAI,cAAc,MAAM,cAAc,KAAM;AAAA,IAC9E,WAAW;AAAA,EACf;AACE,MAAIA,GAAG;AACL,UAAMM,IAAIiH,GAAG,QAAQvH,CAAC,GAAGE,IAAIF,EAAE,aAAa,aAAa,GAAGG,IAAIH,EAAE,aAAa,eAAe,GAAGI,IAAIJ,EAAE,UAAU,SAAS,aAAa,GAAGO,IAAIP,EAAE,UAAU,SAAS,gBAAgB,GAAGQ,IAAI;AAAA,MACxL,QAAQ,IAAIN,IAAI;AAAA,MAChB,cAAc,IAAIC,IAAI9B;AAAA,MACtB,QAAQ,IAAI,IAAI6B;AAAA,MAChB,cAAc,IAAI7B,IAAI8B;AAAA,IAC5B;AACI,IAAAF,EAAE,aAAaO,GAAGJ,KAAKG,MAAM,MAAMyF,GAAG,SAAS,KAAK1F,MAAM,YAAY,CAAC,KAAKA,MAAM,WAAWJ,MAAM,KAAKC,MAAM9B,OAAO4B,EAAE,YAAY;AAAA,MACjI,QAAQC;AAAA,MACR,UAAUC;AAAA,MACV,MAAMG;AAAA,IACP,GAAEL,EAAE,UAAUnB,EAAE0B,GAAG;AAAA,MAClB,OAAOvB;AAAA,MACP,YAAYC,EAAEsB,EAAE,MAAM;AAAA,MACtB,YAAYtB,EAAEsB,EAAE,MAAM;AAAA,IACvB,CAAA;AAAA,EACF;AACD,SAAOP;AACT;AACA,SAASuH,GAAG,EAAE,OAAO,GAAG,QAAQ,GAAG,UAAU,GAAG,YAAY,KAAK;AAC/D,SAAO,EAAE,OAAO,CAACnJ,GAAGC,MAAM;AACxB,UAAM,EAAE,cAAcQ,EAAG,IAAGR;AAC5B,QAAIU,IAAI,CAAA,GAAIC,IAAI;AAChB,WAAOH,MAAME,IAAIoI,GAAG9I,GAAGQ,GAAG,UAAU,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,GAAGG,IAAImI,GAAG9I,GAAGQ,GAAG,UAAU,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAIT,EAAE,KAAK,GAAGW,GAAG,GAAGC,CAAC,GAAGZ;AAAA,EACvH,GAAE,CAAE,CAAA;AACP;AACA,SAASkJ,GAAG,GAAG,GAAG;AAChB,SAAO,MAAM,KAAK,QAAQ,EAAE,UAAU,SAAS,QAAQ,IAAI,WAAW,KAAK,QAAQ,EAAE,UAAU,SAAS,QAAQ,IAAI,WAAW;AACjI;AACA,SAASE,GAAG,GAAG,GAAG;AAChB,MAAI,IAAI;AACR,SAAO,IAAI,IAAI,UAAU,KAAK,CAAC,MAAM,IAAI,YAAY;AACvD;AACA,SAASC,GAAG,GAAG,GAAG,GAAG;AACnB,SAAO,IAAI,IAAI3D,GAAG,KAAK,IAAI,IAAI,CAAC,GAAG,GAAG,EAAE,IAAI,KAAK,IAAI,IAAI,CAACA,GAAG,KAAK,IAAI,IAAI,CAAC,GAAG,GAAG,EAAE,IAAI,KAAK;AAC9F;AACA,SAAS4D,GAAG,GAAG,GAAG;AAChB,QAAM,IAAID,GAAG,EAAE,GAAG,IAAI,EAAE,QAAQ,EAAE,IAAI,IAAI,IAAIA,GAAG,EAAE,GAAG,IAAI,EAAE,SAAS,EAAE,IAAI;AAC3E,SAAO,CAAC,GAAG,CAAC;AACd;AACA,SAASE,KAAK;AACZ,SAAO;AACT;AACA,SAASC,GAAG;AAAA,EACV,UAAU;AAAA,EACV,QAAQ;AAAA,EACR,MAAM;AAAA,EACN,mBAAmB;AAAA,EACnB,iBAAiBxJ;AAAA,EACjB,cAAcC;AAAA,EACd,iBAAiBQ;AACnB,GAAG;AACD,QAAME,IAAIiE,EAAE,MAAM,GAAG,CAAC,MAAM,QAAQ,GAAG;AAAA,IACrC,YAAYhE;AAAA,IACZ,gBAAgBC;AAAA,IAChB,kBAAkB;AAAA,IAClB,gBAAgBE;AAAA,IAChB,4BAA4BC;AAAA,IAC5B,kBAAkBS;AAAA,IAClB,kBAAkBC;AAAA,IAClB,UAAUC;AAAA,IACV,OAAOC;AAAA,IACP,UAAUK;AAAA,IACV,iBAAiBJ;AAAA,IACjB,kBAAkBC;AAAA,IAClB,eAAeC;AAAA,IACf,OAAOG;AAAA,IACP,UAAUC;AAAA,IACV,OAAOsH;AAAA,IACP,mBAAmBC;AAAA,EACpB,IAAGrB,GAAE;AACN,MAAIsB,IAAI,MAAMC,IAAI,IAAIC,IAAI;AAC1B,WAASC,EAAEC,GAAG;AACZ,QAAIC;AACJ,UAAMC,IAAI3B,GAAGyB,CAAC,GAAGG,IAAItE,GAAGmE,EAAE,MAAM;AAChC,QAAIE,KAAKF,EAAE,WAAW,KAAK,CAACE,GAAG;AAC7B,UAAIE,IAAI,SAASC,GAAG;AAClB,QAAAC,IAAI9B,GAAG6B,GAAGE,CAAC,GAAGC,IAAIvB;AAAA,UAChBvC,GAAG4D,GAAGlI,EAAE,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC;AAAA,UACzB,EAAE;AAAA,UACFqI;AAAA,QACD,GAAEC,MAAMC,EAAC,GAAID,IAAI;AAClB,cAAME,KAAK1B;AAAA,UACTmB;AAAA,UACAG;AAAA,UACA1J,EAAE;AAAA,UACF,GAAG,CAAC;AAAA,UACJ,GAAG,CAAC;AAAA,UACJF,EAAE,QAAQ,WAAW;AAAA,UACrBiK;AAAA,UACAV;AAAA,UACAT,EAAE;AAAA,UACF9H;AAAA,QACV;AACQ,YAAIgI,IAAIgB,GAAG,YAAYf,IAAIe,GAAG,SAASd,IAAIc,GAAG,eAAe7I;AAAA,UAC3DyI,KAAKX,IAAIpD;AAAA,YACP;AAAA,cACE,GAAG+D,EAAE;AAAA,cACL,GAAGA,EAAE;AAAA,YACN;AAAA,YACDpI,EAAE;AAAA,UACd,IAAckI;AAAA,UACJM,GAAG;AAAA,UACHvB,GAAG,CAAC,CAACmB,GAAGX,CAAC;AAAA,QACV,GAAE,CAACW,KAAK,CAACX,KAAK,CAACC;AACd,iBAAOf,GAAG+B,CAAC;AACb,QAAAlB,KAAKA,EAAE,WAAWA,EAAE,UAAUE,MAAMf,GAAG+B,CAAC,GAAGA,IAAIhB,GAAGA,EAAE,UAAU,IAAI,cAAc,6BAA6B,GAAGA,EAAE,UAAU,OAAO,SAASD,CAAC,GAAGC,EAAE,UAAU,OAAO,0BAA0BD,CAAC;AAAA,MACtM,GAASkB,IAAI,SAASV,GAAG;AACjB,SAACG,KAAKV,MAAMF,KAAKC,MAAM3J,IAAIA,EAAEmK,GAAGT,CAAC,IAAIzH,EAAE,QAAQyH,CAAC,IAAIzH,EAAE,WAAWkI,CAAC,GAAGpK,MAAMS,KAAK,QAAQA,EAAE2J,CAAC,IAAItB,GAAG+B,CAAC,GAAG,qBAAqBE,CAAC,GAAGhJ,EAAEqI,CAAC,GAAGK,IAAI,IAAIb,IAAI,IAAID,IAAI,MAAME,IAAI,MAAMK,EAAE,oBAAoB,aAAaC,CAAC,GAAGD,EAAE,oBAAoB,WAAWY,CAAC,GAAGZ,EAAE,oBAAoB,aAAaC,CAAC,GAAGD,EAAE,oBAAoB,YAAYY,CAAC;AAAA,MACvU;AACM,YAAME,IAAIrJ,EAAE,GAAG,CAAC,CAAC;AACjB,UAAIiJ,IAAI,KAAKlB,EAAE,SAASH;AACxB,OAACqB,KAAKI,MAAMJ,KAAKjK,IAAIqK,EAAE,mBAAmBA,EAAE,qBAAqBzB;AACjE,UAAIgB,GAAGQ,IAAI;AACX,YAAM,EAAE,GAAGE,IAAI,GAAG,GAAE,IAAK1C,GAAGwB,CAAC,GAAGmB,IAAIhB,KAAK,OAAO,SAASA,EAAE,iBAAiBe,IAAI,EAAE,GAAGE,IAAIjC,GAAG,GAAGlJ,CAAC,GAAGkL,CAAC,GAAGZ,KAAKN,IAAIpJ,EAAE,UAAU,OAAO,SAASoJ,EAAE;AAC9I,UAAI,CAACM,KAAK,CAACa;AACT;AACF,UAAIN,GAAGR,IAAI9B,GAAGwB,GAAGO,CAAC,GAAGG,IAAI;AACzB,YAAMD,IAAIrB,GAAG;AAAA,QACX,OAAOlH,EAAE;AAAA,QACT,QAAQ,GAAG,CAAC;AAAA,QACZ,UAAU,GAAG,CAAC;AAAA,QACd,YAAYkJ;AAAA,MACpB,CAAO,GAAGT,IAAI,MAAM;AACZ,YAAI,CAAChJ;AACH;AACF,cAAM,CAAC0I,GAAGO,EAAE,IAAIrB,GAAGe,GAAGC,CAAC;AACvB,QAAA1I,EAAE,EAAE,GAAGwI,GAAG,GAAGO,GAAI,CAAA,GAAGI,IAAI,sBAAsBL,CAAC;AAAA,MACvD;AACM,MAAA7I;AAAA,QACE;AAAA,UACE,QAAQ,GAAG,CAAC;AAAA,UACZ,UAAU,GAAG,CAAC;AAAA,UACd,MAAMsJ;AAAA,QACP;AAAA,QACD;AAAA,UACE,GAAGF,KAAKX,EAAE;AAAA,UACV,GAAG,KAAKA,EAAE;AAAA,QACX;AAAA,QACDP;AAAA,MACR,GAAS7H,EAAE,aAAa,EAAE,OAAO6H,GAAG,QAAQ,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,YAAYoB,EAAG,CAAA,GAAGjB,EAAE,iBAAiB,aAAaC,CAAC,GAAGD,EAAE,iBAAiB,WAAWY,CAAC,GAAGZ,EAAE,iBAAiB,aAAaC,CAAC,GAAGD,EAAE,iBAAiB,YAAYY,CAAC;AAAA,IAC3N;AAAA,EACF;AACD,WAASM,GAAGrB,GAAG;AACb,QAAIhJ,EAAE;AACJ,UAAI,CAACC,EAAE;AACL,QAAAkB,EAAE,kBAAkB,EAAE,OAAO6H,GAAG,QAAQ,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,EAAC,CAAE,GAAGlI;AAAA,UACjE,EAAE,QAAQ,GAAG,CAAC,GAAG,MAAM,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,EAAG;AAAA,UAC/C;AAAA,UACAkI;AAAA,UACA;AAAA,QACV;AAAA,WACW;AACH,YAAIE,IAAI,KAAKP,EAAE,SAASH;AACxB,cAAMW,IAAIvI,EAAE,GAAG,CAAC,CAAC;AACjB,YAAI,CAACsI,KAAKC,MAAMD,KAAKtJ,IAAIuJ,EAAE,mBAAmBA,EAAE,qBAAqBX,KAAKW,MAAM,OAAOA,EAAE,cAAc,MAAMzI,EAAE,QAAQyI,EAAE,iBAAiB;AACxI;AACF,cAAMF,IAAIpE,GAAGmE,EAAE,MAAM,GAAG,EAAE,YAAYI,GAAG,SAASW,EAAC,IAAK7B;AAAA,UACtDc;AAAA,UACA;AAAA,YACE,QAAQ,GAAG,CAAC;AAAA,YACZ,IAAI,GAAG,CAAC;AAAA,YACR,MAAM,GAAG,CAAC;AAAA,UACX;AAAA,UACDlJ,EAAE;AAAA,UACFG,EAAE,MAAM;AAAA,UACRA,EAAE,MAAM,YAAY;AAAA,UACpBA,EAAE,MAAM;AAAA,UACRiJ;AAAA,UACAD;AAAA,UACAP,EAAE;AAAA,UACF9H;AAAA,QACD,GAAEqJ,IAAIb,EAAE,WAAWA,EAAE;AACtB,QAAAW,KAAK,CAACE,KAAK9I,EAAE,QAAQiI,CAAC,GAAGjI,EAAE,gBAAgB6H,CAAC,GAAGhI,EAAEgI,GAAG,EAAE;AAAA,MACvD;AAAA,EACJ;AACD,SAAO;AAAA,IACL,mBAAmBD;AAAA,IACnB,aAAasB;AAAA,EACjB;AACA;AACA,SAASC,GAAG,GAAG,GAAG;AAChB,QAAM,IAAI,CAAA;AACV,aAAW,KAAK;AACd,MAAE,SAAS,CAAC,KAAK,OAAO,eAAe,GAAG,GAAG;AAAA,MAC3C,YAAY;AAAA,MACZ,KAAK,MAAM,EAAE,CAAC;AAAA,IACpB,CAAK;AACH,SAAO;AACT;AACA,MAAMC,KAAK,CAAC,WAAW,iBAAiB,eAAe,gBAAgB,GAAGC,KAAK;AAAA,EAC7E,MAAM;AAAA,EACN,cAAc,EAAE,MAAM,EAAG;AAC3B,GAAGC,KAAqBC,gBAAAA,GAAG;AAAA,EACzB,GAAGF;AAAA,EACH,OAAO;AAAA,IACL,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,UAAU,EAAE,SAAS/D,EAAE,IAAK;AAAA,IAC5B,mBAAmB,EAAE,MAAM,SAAU;AAAA,IACrC,aAAa,EAAE,MAAM,CAAC,SAAS,QAAQ,QAAQ,GAAG,SAAS,OAAQ;AAAA,IACnE,kBAAkB,EAAE,MAAM,SAAS,SAAS,GAAI;AAAA,IAChD,gBAAgB,EAAE,MAAM,SAAS,SAAS,GAAI;AAAA,EAC/C;AAAA,EACD,MAAM,GAAG;AACP,UAAM,IAAI6D,GAAG,GAAG,CAAC,YAAY,eAAe,oBAAoB,kBAAkB,MAAM,mBAAmB,CAAC,GAAG,IAAIK,EAAE,GAAG,QAAQ,QAAQ,GAAG;AAAA,MACzI,uBAAuB;AAAA,MACvB,4BAA4B1L;AAAA,MAC5B,qBAAqBC;AAAA,MACrB,YAAYQ;AAAA,MACZ,kBAAkBE;AAAA,MAClB,iBAAiBC;AAAA,MACjB,gBAAgBC;AAAA,IACjB,IAAGwH,GAAI,GAAE,EAAE,IAAI,GAAG,MAAMtH,GAAG,QAAQC,GAAG,gBAAgBS,EAAG,IAAG0G,GAAE,GAAIzG,IAAItB,GAAI,GAAEuB,IAAIiD,EAAE,MAAM,EAAE,MAAM,GAAG,CAAC,YAAY,EAAE,QAAQ,EAAE,GAAGhD,IAAIgD,EAAE,MAAM,OAAO,EAAE,mBAAmB,MAAM,EAAE,mBAAmB,EAAE,GAAG3C,IAAI2C,EAAE,MAAM,OAAO,EAAE,iBAAiB,MAAM,EAAE,iBAAiB,EAAE,GAAG,EAAE,mBAAmB/C,GAAG,aAAaC,EAAC,IAAK0H,GAAG;AAAA,MACxT,QAAQ;AAAA,MACR,UAAU7H;AAAA,MACV,mBAAmB,EAAE;AAAA,MACrB,MAAM;AAAA,IACZ,CAAK,GAAGI,IAAI6C,EAAE,MAAMhF,GAAG,EAAE,WAAW,KAAK,EAAE,gBAAgB,WAAW,CAAC6B,EAAE,MAAM,KAAK,CAACkI,MAAM;AACrF,YAAMC,IAAID,EAAE,GAAG,EAAE,KAAK,QAAQ;AAC9B,aAAOA,EAAE,EAAE,KAAK,MAAM,IAAI,KAAKC,IAAIA,MAAMjI,EAAE,QAAQ;AAAA,IACzD,CAAK,IAAIjC,GAAG,EAAE,WAAW,IAAI,EAAE,YAAYqB,GAAGU,EAAE,KAAK,IAAI2E,GAAG,EAAE,WAAW,IAAI,EAAE,cAAczF,EAAE,KAAK,GAAGuB,IAAI0C;AAAAA,MACrG,MAAM;AACJ,YAAI+E,GAAGC,GAAGC,GAAGC,GAAGsB,IAAIrB;AACpB,iBAASJ,IAAI,EAAE,UAAU,OAAO,SAASA,EAAE,YAAY,OAAOC,IAAI,EAAE,UAAU,OAAO,SAASA,EAAE,cAAcjI,EAAE,WAAWkI,IAAI,EAAE,UAAU,OAAO,SAASA,EAAE,UAAU,EAAE,WAAWC,IAAI7J,EAAE,UAAU,OAAO,SAAS6J,EAAE,YAAY,OAAOsB,KAAKnL,EAAE,UAAU,OAAO,SAASmL,GAAG,cAAczJ,EAAE,WAAWoI,IAAI9J,EAAE,UAAU,OAAO,SAAS8J,EAAE,UAAU,EAAE;AAAA,MACvV;AAAA,IACF,GAAE5H,IAAIyC;AAAAA,MACL,MAAM;AACJ,YAAI+E,GAAGC,GAAGC;AACV,iBAASF,IAAI3J,EAAE,UAAU,OAAO,SAAS2J,EAAE,YAAY,OAAOC,IAAI5J,EAAE,UAAU,OAAO,SAAS4J,EAAE,cAAcjI,EAAE,WAAWkI,IAAI7J,EAAE,UAAU,OAAO,SAAS6J,EAAE,UAAU,EAAE;AAAA,MAC1K;AAAA,IACP;AACI,IAAAzH,GAAG,MAAMrB,EAAE,WAAW,EAAE,KAAK,IAAI,EAAE,OAAO,QAAQ,EAAE,KAAK,MAAM;AAC7D,UAAImJ;AACJ,YAAMP,KAAKO,IAAInJ,EAAE,aAAa,EAAE,KAAK,MAAM,OAAO,SAASmJ,EAAE,KAAK,CAACF,MAAMA,EAAE,OAAOrI,EAAE,KAAK;AACzF,UAAI,CAAClB,EAAE,SAASkJ;AACd;AACF,YAAMC,IAAInJ,EAAE,MAAM,cAAc,+BAA+B;AAC/D,UAAI,CAACO,KAAK,CAACU,EAAE,SAAS,CAACkI,KAAK,CAACjI,EAAE;AAC7B;AACF,YAAMkI,IAAI7I,EAAE,MAAM,sBAAuB,GAAE8I,KAAIpI,EAAE,MAAM,sBAAuB,GAAE0J,IAAK,OAAO,iBAAiBxB,CAAC,GAAG,EAAE,KAAKG,EAAG,IAAG,IAAI,OAAO,kBAAkBqB,EAAG,SAAS,GAAGnB,IAAI;AAAA,QAC5K,IAAItI,EAAE;AAAA,QACN,UAAU,EAAE;AAAA,QACZ,IAAImI,GAAE,OAAOD,EAAE,QAAQE;AAAA,QACvB,IAAID,GAAE,MAAMD,EAAE,OAAOE;AAAA,QACrB,GAAGtE,GAAG/D,EAAE,KAAK;AAAA,MACrB;AACM,MAAAX,EAAE,aAAa,EAAE,KAAK,IAAI,CAAC,GAAGA,EAAE,aAAa,EAAE,KAAK,KAAK,CAAE,GAAEkJ,CAAC;AAAA,IACpE,CAAK;AACD,aAASR,EAAEE,GAAG;AACZ,YAAMC,IAAItB,GAAGqB,CAAC;AACd,MAAA5H,EAAE,SAASH,EAAE,UAAUgI,KAAKD,EAAE,WAAW,KAAK,CAACC,MAAM/H,EAAE8H,CAAC;AAAA,IACzD;AACD,aAASD,EAAEC,GAAG;AACZ,OAAC,KAAK,CAAC3J,EAAE,SAAS,CAAC4B,EAAE,SAASG,EAAE,SAASD,EAAE6H,CAAC;AAAA,IAC7C;AACD,WAAO,CAACA,GAAGC,OAAO+B,GAAE,GAAIC,GAAG,OAAO;AAAA,MAChC,SAAS;AAAA,MACT,KAAKlK;AAAA,MACL,WAAW,GAAG5B,EAAE,CAAC,CAAC,IAAIA,EAAE6B,CAAC,CAAC,IAAI7B,EAAE,CAAC,CAAC;AAAA,MAClC,iBAAiBA,EAAE6B,CAAC;AAAA,MACpB,eAAe7B,EAAE,CAAC;AAAA,MAClB,kBAAkB,EAAE;AAAA,MACpB,OAAO+L,GAAG,CAAC,oBAAoB;AAAA,QAC7B,oBAAoB,EAAE,QAAQ;AAAA,QAC9B,oBAAoB/L,EAAE6B,CAAC,CAAC;AAAA,QACxB7B,EAAEc,CAAC;AAAA,QACHd,EAAEe,CAAC;AAAA,QACHf,EAAE,CAAC;AAAA,QACH;AAAA,UACE,aAAaA,EAAEiC,CAAC;AAAA,UAChB,YAAYjC,EAAEqC,CAAC;AAAA,UACf,kBAAkBrC,EAAE8B,CAAC;AAAA,UACrB,gBAAgB9B,EAAEmC,CAAC;AAAA,UACnB,qBAAqBnC,EAAEiC,CAAC,MAAMjC,EAAE8B,CAAC,KAAK,CAAC9B,EAAEoC,CAAC,KAAKpC,EAAEmC,CAAC,KAAKnC,EAAEoC,CAAC;AAAA,QAC3D;AAAA,MACT,CAAO,CAAC;AAAA,MACF,aAAauH;AAAA,MACb,qBAAqBA;AAAA,MACrB,SAASC;AAAA,IACf,GAAO;AAAA,MACDoC,GAAGnC,EAAE,QAAQ,WAAW,EAAE,IAAI,EAAE,IAAI;AAAA,IAC1C,GAAO,IAAI2B,EAAE;AAAA,EACV;AACH,CAAC,GAAGS,KAAK,SAAS;AAAA,EAChB,gBAAgB,IAAIvE,EAAE;AAAA,EACtB,gBAAgB,IAAIA,EAAE;AAAA,EACtB,OAAO;AAAA,EACP,aAAa,IAAI;AAAA,EACjB,kBAAkBxH;AAAA,EAClB,kBAAkBC;AACpB,GAAG;AACD,SAAO;AAAA,IACL+L,GAAGR,IAAI,EAAE,MAAM,UAAU,UAAU,GAAG,aAAa,GAAG,mBAAmBxL,EAAC,CAAE;AAAA,IAC5E,OAAO,KAAK,YAAY,IAAIgM,GAAG,CAAC,IAAIA,GAAG,OAAO,EAAE,WAAW,EAAC,CAAE;AAAA,IAC9DA,GAAGR,IAAI,EAAE,MAAM,UAAU,UAAU,GAAG,aAAa,GAAG,mBAAmBvL,EAAC,CAAE;AAAA,EAChF;AACA;AACA8L,GAAG,QAAQ,CAAC,kBAAkB,kBAAkB,SAAS,oBAAoB,oBAAoB,aAAa;AAC9GA,GAAG,eAAe;AAClBA,GAAG,eAAe,EAAE,MAAM;AAC1B,MAAME,KAAKF,IAAIG,KAAK,SAAS;AAAA,EAC3B,gBAAgB,IAAI1E,EAAE;AAAA,EACtB,OAAO;AAAA,EACP,aAAa,IAAI;AAAA,EACjB,kBAAkB;AACpB,GAAG;AACD,SAAO;AAAA,IACL,OAAO,KAAK,YAAY,IAAIwE,GAAG,CAAC,IAAIA,GAAG,OAAO,EAAE,WAAW,EAAC,CAAE;AAAA,IAC9DA,GAAGR,IAAI,EAAE,MAAM,UAAU,UAAU,GAAG,aAAa,GAAG,mBAAmB,EAAC,CAAE;AAAA,EAChF;AACA;AACAU,GAAG,QAAQ,CAAC,kBAAkB,SAAS,oBAAoB,aAAa;AACxEA,GAAG,eAAe;AAClBA,GAAG,eAAe,EAAE,MAAM;AAC1B,MAAMC,KAAKD,IAAIE,KAAK,SAAS;AAAA,EAC3B,gBAAgB,IAAI5E,EAAE;AAAA,EACtB,OAAO;AAAA,EACP,aAAa,IAAI;AAAA,EACjB,kBAAkB;AACpB,GAAG;AACD,SAAO;AAAA,IACLwE,GAAGR,IAAI,EAAE,MAAM,UAAU,UAAU,GAAG,aAAa,GAAG,mBAAmB,EAAC,CAAE;AAAA,IAC5E,OAAO,KAAK,YAAY,IAAIQ,GAAG,CAAC,IAAIA,GAAG,OAAO,EAAE,WAAW,EAAC,CAAE;AAAA,EAClE;AACA;AACAI,GAAG,QAAQ,CAAC,kBAAkB,SAAS,oBAAoB,aAAa;AACxEA,GAAG,eAAe;AAClBA,GAAG,eAAe,EAAE,MAAM;AAC1B,MAAMC,KAAKD;AACX,SAASE,GAAG,GAAG,GAAG,GAAG;AACnB,MAAI,IAAI;AACR,KAAG;AACD,QAAI,KAAK,EAAE,QAAQ,CAAC;AAClB,aAAO;AACT,QAAI,MAAM;AACR,aAAO;AACT,QAAI,EAAE;AAAA,EACP,SAAQ;AACT,SAAO;AACT;AACA,SAASC,GAAG,GAAG,GAAG,GAAG,GAAGvM,GAAG;AACzB,SAAO,EAAE;AAAA,IACP,CAACC,OAAOA,EAAE,YAAYA,EAAE,OAAOD,OAAO,CAACC,EAAE,cAAc,CAACiH,GAAGjH,GAAG,CAAC,OAAOA,EAAE,aAAa,KAAK,OAAOA,EAAE,YAAY;AAAA,EACnH,EAAI;AAAA,IACA,CAACA,MAAM;AACL,UAAIQ,GAAGE;AACP,aAAOwF,GAAG;AAAA,QACR,IAAIlG,EAAE;AAAA,QACN,UAAUA,EAAE,YAAY,EAAE,GAAG,GAAG,GAAG,EAAG;AAAA,QACtC,UAAU;AAAA,UACR,GAAG,EAAE,MAAMQ,IAAIR,EAAE,qBAAqB,OAAO,SAASQ,EAAE,MAAM;AAAA,UAC9D,GAAG,EAAE,MAAME,IAAIV,EAAE,qBAAqB,OAAO,SAASU,EAAE,MAAM;AAAA,QAC/D;AAAA,QACD,MAAMV,EAAE;AAAA,QACR,QAAQA,EAAE;AAAA,QACV,YAAYA,EAAE;AAAA,QACd,YAAYA,EAAE;AAAA,MACtB,CAAO;AAAA,IACF;AAAA,EACL;AACA;AACA,SAASuM,GAAG;AAAA,EACV,IAAI;AAAA,EACJ,WAAW;AAAA,EACX,UAAU;AACZ,GAAG;AACD,QAAM,IAAI,EAAE,OAAO,CAACxM,GAAGC,MAAM;AAC3B,UAAMQ,IAAI,EAAER,EAAE,EAAE;AAChB,WAAOQ,KAAKT,EAAE,KAAKS,CAAC,GAAGT;AAAA,EACxB,GAAE,CAAE,CAAA;AACL,SAAO,CAAC,IAAI,EAAE,KAAK,CAACA,MAAMA,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC;AACjD;AACA,SAASyM,GAAG,GAAG;AACb,MAAI,MAAM,QAAQ,CAAC;AACjB,YAAQ,EAAE,QAAM;AAAA,MACd,KAAK;AACH,eAAO,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAAA,MAChC,KAAK;AACH,eAAO,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAAA,MAChC,KAAK;AACH,eAAO,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAAA,MAChC,KAAK;AACH,eAAO;AAAA,MACT;AACE,eAAO,CAAC,GAAG,GAAG,GAAG,CAAC;AAAA,IACrB;AACH,SAAO,CAAC,GAAG,GAAG,GAAG,CAAC;AACpB;AACA,SAASC,GAAG,GAAG,GAAG,GAAG;AACnB,QAAM,CAAC,GAAG1M,GAAGC,GAAGQ,CAAC,IAAI,OAAO,KAAK,WAAWgM,GAAG,EAAE,OAAO,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;AACvE,SAAO,KAAK9M,GAAG,EAAE,iBAAiB,CAAC,KAAKA,GAAG,EAAE,iBAAiB,CAAC,KAAKA,GAAG,EAAE,WAAW,KAAK,KAAKA,GAAG,EAAE,WAAW,MAAM,IAAI;AAAA,IACtH,CAAC,EAAE,iBAAiB,IAAIc,GAAG,EAAE,iBAAiB,IAAI,CAAC;AAAA,IACnD;AAAA,MACE,EAAE,iBAAiB,KAAK,EAAE,WAAW,QAAQ,EAAE,WAAW,SAAST;AAAA,MACnE,EAAE,iBAAiB,KAAK,EAAE,WAAW,SAAS,EAAE,WAAW,UAAUC;AAAA,IACtE;AAAA,EACF,IAAG;AACN;AACA,SAAS0M,GAAG,GAAG,GAAG,GAAG,GAAG;AACtB,MAAI3M,IAAI,EAAE,UAAU;AACpB,MAAIA,MAAM,YAAY,CAAC,MAAM,QAAQA,CAAC,MAAMA,KAAK,OAAO,SAASA,EAAE,WAAW;AAC5E,QAAI,EAAE,cAAc,KAAK,EAAE,WAAW,SAAS,EAAE,WAAW,QAAQ;AAClE,YAAMC,IAAIyM,GAAG1M,GAAG,GAAG,CAAC;AACpB,MAAAC,MAAMD,IAAIC;AAAA,IACX;AACC,QAAE,IAAIoF,GAAGF,GAAG,qBAAqB,EAAE,EAAE,CAAC,GAAGnF,IAAI;AAAA,WACxC,MAAM,QAAQA,CAAC,GAAG;AACzB,UAAMC,KAAK,KAAK,OAAO,SAAS,EAAE,iBAAiB,MAAM,GAAGQ,KAAK,KAAK,OAAO,SAAS,EAAE,iBAAiB,MAAM;AAC/G,IAAAT,IAAI;AAAA,MACF,CAACA,EAAE,CAAC,EAAE,CAAC,IAAIC,GAAGD,EAAE,CAAC,EAAE,CAAC,IAAIS,CAAC;AAAA,MACzB,CAACT,EAAE,CAAC,EAAE,CAAC,IAAIC,GAAGD,EAAE,CAAC,EAAE,CAAC,IAAIS,CAAC;AAAA,IAC/B;AAAA,EACA,WAAaT,KAAK,QAAQA,EAAE,SAAS,MAAM,QAAQA,EAAE,KAAK,GAAG;AACzD,UAAM,CAACC,GAAGQ,GAAGE,GAAGC,CAAC,IAAI6L,GAAGzM,EAAE,OAAO,GAAGa,KAAK,KAAK,OAAO,SAAS,EAAE,iBAAiB,MAAM,GAAG,KAAK,KAAK,OAAO,SAAS,EAAE,iBAAiB,MAAM;AAC7I,IAAAb,IAAI;AAAA,MACF,CAACA,EAAE,MAAM,CAAC,EAAE,CAAC,IAAIa,IAAID,GAAGZ,EAAE,MAAM,CAAC,EAAE,CAAC,IAAI,IAAIC,CAAC;AAAA,MAC7C,CAACD,EAAE,MAAM,CAAC,EAAE,CAAC,IAAIa,IAAIJ,GAAGT,EAAE,MAAM,CAAC,EAAE,CAAC,IAAI,IAAIW,CAAC;AAAA,IACnD;AAAA,EACG;AACD,SAAOX;AACT;AACA,SAAS4M,GAAG,GAAG,GAAG,GAAG,GAAG5M,GAAG;AACzB,QAAMC,IAAI0M,GAAG,GAAG,GAAG,GAAG3M,CAAC,GAAGS,IAAIkF,GAAG,GAAG1F,CAAC;AACrC,SAAO;AAAA,IACL,UAAU;AAAA,MACR,GAAGQ,EAAE,MAAMT,KAAK,OAAO,SAASA,EAAE,iBAAiB,MAAM;AAAA,MACzD,GAAGS,EAAE,MAAMT,KAAK,OAAO,SAASA,EAAE,iBAAiB,MAAM;AAAA,IAC1D;AAAA,IACD,kBAAkBS;AAAA,EACtB;AACA;AACA,SAASoM,KAAK;AACZ,QAAM,EAAE,kBAAkB,GAAG,YAAY,GAAG,qBAAqB,GAAG,UAAU,GAAG,UAAU7M,GAAG,YAAYC,GAAG,gBAAgBQ,GAAG,OAAOE,MAAM0H;AAC7I,SAAO,CAACzH,GAAGC,IAAI,OAAO;AACpB,UAAM,IAAIZ,EAAE,QAAQD,EAAE,MAAM,CAAC,IAAI,GAAGe,IAAId,EAAE,QAAQD,EAAE,MAAM,CAAC,IAAI,GAAGgB,IAAIH,IAAI,IAAI,GAAGY,IAAIb,EAAE,IAAI,IAAII,GAAGU,IAAId,EAAE,IAAIG,IAAIC,GAAGW,IAAI,EAAE,MAAM,OAAO,CAACC,MAAMA,EAAE,aAAanB,KAAK,OAAOmB,EAAE,YAAY,GAAG,EAAE,IAAI,CAACA,MAAM;AACpM,YAAMK,IAAI,EAAE,GAAGL,EAAE,iBAAiB,IAAIH,GAAG,GAAGG,EAAE,iBAAiB,IAAIF,EAAC,GAAI,EAAE,kBAAkBG,EAAC,IAAK+K;AAAA,QAChGhL;AAAA,QACAK;AAAA,QACAtB,EAAE;AAAA,QACF,EAAE;AAAA,QACFiB,EAAE,aAAa,EAAEA,EAAE,UAAU,IAAI;AAAA,MACzC;AACM,aAAO;AAAA,QACL,IAAIA,EAAE;AAAA,QACN,UAAUC;AAAA,QACV,MAAMD,EAAE;AAAA,QACR,UAAU,EAAE,GAAGhB,EAAE,GAAG,GAAGA,EAAE,EAAG;AAAA,QAC5B,YAAYgB,EAAE;AAAA,MACtB;AAAA,IACA,CAAK;AACD,MAAED,GAAG,IAAI,EAAE;AAAA,EACf;AACA;AACA,SAASmL,KAAK;AACZ,SAAO;AAAA,IACL,aAAajI,EAAG;AAAA,IAChB,OAAOA,EAAG;AAAA,IACV,YAAYA,EAAG;AAAA,IACf,WAAWA,EAAG;AAAA,IACd,YAAYA,EAAG;AAAA,IACf,aAAaA,EAAG;AAAA,IAChB,WAAWA,EAAG;AAAA,IACd,MAAMA,EAAG;AAAA,IACT,UAAUA,EAAG;AAAA,EACjB;AACA;AACA,SAASkI,GAAG,GAAG,GAAG;AAChB,QAAM,IAAID;AACV,SAAO,EAAE,YAAY,GAAG,CAAC,MAAM;AAC7B,QAAI9M,GAAGC;AACP,MAAE,gBAAgB,CAAC,IAAIA,KAAKD,IAAI,EAAE,WAAW,OAAO,SAASA,EAAE,gBAAgB,QAAQC,EAAE,KAAKD,GAAG,CAAC;AAAA,EACnG,CAAA,GAAG,EAAE,MAAM,GAAG,CAAC,MAAM;AACpB,QAAIA,GAAGC;AACP,MAAE,UAAU,CAAC,IAAIA,KAAKD,IAAI,EAAE,WAAW,OAAO,SAASA,EAAE,UAAU,QAAQC,EAAE,KAAKD,GAAG,CAAC;AAAA,EACvF,CAAA,GAAG,EAAE,WAAW,GAAG,CAAC,MAAM;AACzB,QAAIA,GAAGC;AACP,MAAE,eAAe,CAAC,IAAIA,KAAKD,IAAI,EAAE,WAAW,OAAO,SAASA,EAAE,eAAe,QAAQC,EAAE,KAAKD,GAAG,CAAC;AAAA,EACjG,CAAA,GAAG,EAAE,UAAU,GAAG,CAAC,MAAM;AACxB,QAAIA,GAAGC;AACP,MAAE,cAAc,CAAC,IAAIA,KAAKD,IAAI,EAAE,WAAW,OAAO,SAASA,EAAE,cAAc,QAAQC,EAAE,KAAKD,GAAG,CAAC;AAAA,EAC/F,CAAA,GAAG,EAAE,WAAW,GAAG,CAAC,MAAM;AACzB,QAAIA,GAAGC;AACP,MAAE,eAAe,CAAC,IAAIA,KAAKD,IAAI,EAAE,WAAW,OAAO,SAASA,EAAE,eAAe,QAAQC,EAAE,KAAKD,GAAG,CAAC;AAAA,EACjG,CAAA,GAAG,EAAE,YAAY,GAAG,CAAC,MAAM;AAC1B,QAAIA,GAAGC;AACP,MAAE,gBAAgB,CAAC,IAAIA,KAAKD,IAAI,EAAE,WAAW,OAAO,SAASA,EAAE,gBAAgB,QAAQC,EAAE,KAAKD,GAAG,CAAC;AAAA,EACnG,CAAA,GAAG,EAAE,UAAU,GAAG,CAAC,MAAM;AACxB,QAAIA,GAAGC;AACP,MAAE,cAAc,CAAC,IAAIA,KAAKD,IAAI,EAAE,WAAW,OAAO,SAASA,EAAE,cAAc,QAAQC,EAAE,KAAKD,GAAG,CAAC;AAAA,EAC/F,CAAA,GAAG,EAAE,KAAK,GAAG,CAAC,MAAM;AACnB,QAAIA,GAAGC;AACP,MAAE,SAAS,CAAC,IAAIA,KAAKD,IAAI,EAAE,WAAW,OAAO,SAASA,EAAE,SAAS,QAAQC,EAAE,KAAKD,GAAG,CAAC;AAAA,EACrF,CAAA,GAAG,EAAE,SAAS,GAAG,CAAC,MAAM;AACvB,QAAIA,GAAGC;AACP,MAAE,aAAa,CAAC,IAAIA,KAAKD,IAAI,EAAE,WAAW,OAAO,SAASA,EAAE,aAAa,QAAQC,EAAE,KAAKD,GAAG,CAAC;AAAA,EAC7F,CAAA,GAAG,OAAO,QAAQ,CAAC,EAAE;AAAA,IACpB,CAAC,GAAG,CAACA,GAAGC,CAAC,OAAO,EAAE,KAAKD,CAAC,IAAIC,EAAE,SAAS,EAAE,GAAGD,CAAC,IAAIC,EAAE,IAAI;AAAA,IACvD,EAAE,MAAM,CAAA,GAAI,IAAI,GAAI;AAAA,EACxB;AACA;AACA,SAAS+M,KAAK;AACZ,QAAM,EAAE,UAAU,GAAG,UAAU,GAAG,YAAY,MAAM3E;AACpD,SAAO,CAAC,EAAE,aAAa,QAAQ;AAC7B,UAAMrI,IAAI,EAAE,UAAU,EAAE,QAAQ,CAAC,EAAE,UAAU,EAAE,SAASC,IAAI,EAAE,UAAU,EAAE,QAAQ,CAAC,EAAE,UAAU,EAAE,SAASQ,IAAI;AAAA,MAC5G,IAAIT,IAAI,EAAE,MAAM,KAAK,EAAE,MAAM;AAAA,MAC7B,IAAIC,IAAI,EAAE,MAAM,KAAK,EAAE,MAAM;AAAA,IACnC;AACI,WAAO;AAAA,MACL,UAAU,EAAE,QAAQ,EAAE,MAAM,CAAC,IAAI,KAAK,MAAMQ,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,IAAIA,EAAE;AAAA,MAClE,UAAU,EAAE,QAAQ,EAAE,MAAM,CAAC,IAAI,KAAK,MAAMA,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,IAAIA,EAAE;AAAA,MAClE,GAAGA;AAAA,IACT;AAAA,EACA;AACA;AACA,SAASwM,GAAG,GAAG,GAAG,GAAG;AACnB,QAAM,IAAI,EAAE,iBAAiB,oBAAoB,CAAC,EAAE;AACpD,MAAI,CAAC,KAAK,CAAC,EAAE;AACX;AACF,QAAMjN,IAAI,MAAM,KAAK,CAAC,GAAGC,IAAI,EAAE;AAC/B,SAAOD,EAAE,IAAI,CAACS,MAAM;AAClB,UAAME,IAAIF,EAAE;AACZ,WAAO;AAAA,MACL,IAAIA,EAAE,aAAa,eAAe;AAAA,MAClC,UAAUA,EAAE,aAAa,gBAAgB;AAAA,MACzC,IAAIE,EAAE,OAAOV,EAAE,QAAQ;AAAA,MACvB,IAAIU,EAAE,MAAMV,EAAE,OAAO;AAAA,MACrB,GAAGwF,GAAGhF,CAAC;AAAA,IACb;AAAA,EACA,CAAG;AACH;AACA,SAASyM,GAAG,GAAG,GAAG,GAAG,GAAGlN,GAAGC,IAAI,IAAIQ,GAAG;AACpC,EAAAT,EAAE,QAAQ,IAAI,EAAE,YAAYC,KAAK,EAAE,YAAY,OAAO,EAAE,CAAC,CAAC,CAAC,GAAGsB,GAAGd,EAAE,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC;AACnF;AACA,IAAI0M,KAAK,EAAE,OAAO,MAAM;AACxB;AACA,SAASC,KAAK;AACZ,WAAS,IAAI,GAAG,IAAI,UAAU,QAAQ,IAAI,CAAA,GAAI,GAAG,IAAI,GAAG,EAAE,GAAG;AAC3D,QAAI,EAAE,IAAI,UAAU,CAAC,IAAI,OAAO,KAAK,KAAK,QAAQ,KAAK,CAAC;AACtD,YAAM,IAAI,MAAM,mBAAmB,CAAC;AACtC,MAAE,CAAC,IAAI;EACR;AACD,SAAO,IAAIC,GAAG,CAAC;AACjB;AACA,SAASA,GAAG,GAAG;AACb,OAAK,IAAI;AACX;AACA,SAASC,GAAG,GAAG,GAAG;AAChB,SAAO,EAAE,OAAO,MAAM,OAAO,EAAE,IAAI,SAAS,GAAG;AAC7C,QAAI,IAAI,IAAItN,IAAI,EAAE,QAAQ,GAAG;AAC7B,QAAIA,KAAK,MAAM,IAAI,EAAE,MAAMA,IAAI,CAAC,GAAG,IAAI,EAAE,MAAM,GAAGA,CAAC,IAAI,KAAK,CAAC,EAAE,eAAe,CAAC;AAC7E,YAAM,IAAI,MAAM,mBAAmB,CAAC;AACtC,WAAO,EAAE,MAAM,GAAG,MAAM,EAAC;AAAA,EAC7B,CAAG;AACH;AACAqN,GAAG,YAAYD,GAAG,YAAY;AAAA,EAC5B,aAAaC;AAAA,EACb,IAAI,SAAS,GAAG,GAAG;AACjB,QAAI,IAAI,KAAK,GAAG,IAAIC,GAAG,IAAI,IAAI,CAAC,GAAGtN,GAAGC,IAAI,IAAIQ,IAAI,EAAE;AACpD,QAAI,UAAU,SAAS,GAAG;AACxB,aAAO,EAAER,IAAIQ;AACX,aAAKT,KAAK,IAAI,EAAEC,CAAC,GAAG,UAAUD,IAAIuN,GAAG,EAAEvN,CAAC,GAAG,EAAE,IAAI;AAC/C,iBAAOA;AACX;AAAA,IACD;AACD,QAAI,KAAK,QAAQ,OAAO,KAAK;AAC3B,YAAM,IAAI,MAAM,uBAAuB,CAAC;AAC1C,WAAO,EAAEC,IAAIQ;AACX,UAAIT,KAAK,IAAI,EAAEC,CAAC,GAAG;AACjB,UAAED,CAAC,IAAIwN,GAAG,EAAExN,CAAC,GAAG,EAAE,MAAM,CAAC;AAAA,eAClB,KAAK;AACZ,aAAKA,KAAK;AACR,YAAEA,CAAC,IAAIwN,GAAG,EAAExN,CAAC,GAAG,EAAE,MAAM,IAAI;AAClC,WAAO;AAAA,EACR;AAAA,EACD,MAAM,WAAW;AACf,QAAI,IAAI,CAAE,GAAE,IAAI,KAAK;AACrB,aAAS,KAAK;AACZ,QAAE,CAAC,IAAI,EAAE,CAAC,EAAE,MAAK;AACnB,WAAO,IAAIqN,GAAG,CAAC;AAAA,EAChB;AAAA,EACD,MAAM,SAAS,GAAG,GAAG;AACnB,SAAKrN,IAAI,UAAU,SAAS,KAAK;AAC/B,eAAS,IAAI,IAAI,MAAMA,CAAC,GAAG,IAAI,GAAGA,GAAGC,GAAG,IAAID,GAAG,EAAE;AAC/C,UAAE,CAAC,IAAI,UAAU,IAAI,CAAC;AAC1B,QAAI,CAAC,KAAK,EAAE,eAAe,CAAC;AAC1B,YAAM,IAAI,MAAM,mBAAmB,CAAC;AACtC,SAAKC,IAAI,KAAK,EAAE,CAAC,GAAG,IAAI,GAAGD,IAAIC,EAAE,QAAQ,IAAID,GAAG,EAAE;AAChD,MAAAC,EAAE,CAAC,EAAE,MAAM,MAAM,GAAG,CAAC;AAAA,EACxB;AAAA,EACD,OAAO,SAAS,GAAG,GAAG,GAAG;AACvB,QAAI,CAAC,KAAK,EAAE,eAAe,CAAC;AAC1B,YAAM,IAAI,MAAM,mBAAmB,CAAC;AACtC,aAAS,IAAI,KAAK,EAAE,CAAC,GAAGD,IAAI,GAAGC,IAAI,EAAE,QAAQD,IAAIC,GAAG,EAAED;AACpD,QAAEA,CAAC,EAAE,MAAM,MAAM,GAAG,CAAC;AAAA,EACxB;AACH;AACA,SAASuN,GAAG,GAAG,GAAG;AAChB,WAAS,IAAI,GAAG,IAAI,EAAE,QAAQvN,GAAG,IAAI,GAAG,EAAE;AACxC,SAAKA,IAAI,EAAE,CAAC,GAAG,SAAS;AACtB,aAAOA,EAAE;AACf;AACA,SAASwN,GAAG,GAAG,GAAG,GAAG;AACnB,WAAS,IAAI,GAAGxN,IAAI,EAAE,QAAQ,IAAIA,GAAG,EAAE;AACrC,QAAI,EAAE,CAAC,EAAE,SAAS,GAAG;AACnB,QAAE,CAAC,IAAImN,IAAI,IAAI,EAAE,MAAM,GAAG,CAAC,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC,CAAC;AAClD;AAAA,IACD;AACH,SAAO,KAAK,QAAQ,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,EAAG,CAAA,GAAG;AACrD;AACA,IAAIM,KAAK;AACT,MAAMC,KAAK;AAAA,EACT,KAAK;AAAA,EACL,OAAOD;AAAA,EACP,OAAO;AAAA,EACP,KAAK;AAAA,EACL,OAAO;AACT;AACA,SAASE,GAAG,GAAG;AACb,MAAI,IAAI,KAAK,IAAI,IAAI,EAAE,QAAQ,GAAG;AAClC,SAAO,KAAK,MAAM,IAAI,EAAE,MAAM,GAAG,CAAC,OAAO,YAAY,IAAI,EAAE,MAAM,IAAI,CAAC,IAAID,GAAG,eAAe,CAAC,IAAI,EAAE,OAAOA,GAAG,CAAC,GAAG,OAAO,EAAC,IAAK;AAChI;AACA,SAASE,GAAG,GAAG;AACb,SAAO,WAAW;AAChB,QAAI,IAAI,KAAK,eAAe,IAAI,KAAK;AACrC,WAAO,MAAMH,MAAM,EAAE,gBAAgB,iBAAiBA,KAAK,EAAE,cAAc,CAAC,IAAI,EAAE,gBAAgB,GAAG,CAAC;AAAA,EAC1G;AACA;AACA,SAASI,GAAG,GAAG;AACb,SAAO,WAAW;AAChB,WAAO,KAAK,cAAc,gBAAgB,EAAE,OAAO,EAAE,KAAK;AAAA,EAC9D;AACA;AACA,SAASC,GAAG,GAAG;AACb,MAAI,IAAIH,GAAG,CAAC;AACZ,UAAQ,EAAE,QAAQE,KAAKD,IAAI,CAAC;AAC9B;AACA,SAASG,KAAK;AACd;AACA,SAASC,GAAG,GAAG;AACb,SAAO,KAAK,OAAOD,KAAK,WAAW;AACjC,WAAO,KAAK,cAAc,CAAC;AAAA,EAC/B;AACA;AACA,SAASE,GAAG,GAAG;AACb,SAAO,KAAK,eAAe,IAAID,GAAG,CAAC;AACnC,WAAS,IAAI,KAAK,SAAS,IAAI,EAAE,QAAQ,IAAI,IAAI,MAAM,CAAC,GAAGhO,IAAI,GAAGA,IAAI,GAAG,EAAEA;AACzE,aAASC,IAAI,EAAED,CAAC,GAAGS,IAAIR,EAAE,QAAQU,IAAI,EAAEX,CAAC,IAAI,IAAI,MAAMS,CAAC,GAAGG,GAAGC,GAAG,IAAI,GAAG,IAAIJ,GAAG,EAAE;AAC9E,OAACG,IAAIX,EAAE,CAAC,OAAOY,IAAI,EAAE,KAAKD,GAAGA,EAAE,UAAU,GAAGX,CAAC,OAAO,cAAcW,MAAMC,EAAE,WAAWD,EAAE,WAAWD,EAAE,CAAC,IAAIE;AAC7G,SAAO,IAAIqN,GAAG,GAAG,KAAK,QAAQ;AAChC;AACA,SAASC,GAAG,GAAG;AACb,SAAO,KAAK,OAAO,CAAE,IAAG,MAAM,QAAQ,CAAC,IAAI,IAAI,MAAM,KAAK,CAAC;AAC7D;AACA,SAASC,KAAK;AACZ,SAAO;AACT;AACA,SAASC,GAAG,GAAG;AACb,SAAO,KAAK,OAAOD,KAAK,WAAW;AACjC,WAAO,KAAK,iBAAiB,CAAC;AAAA,EAClC;AACA;AACA,SAASE,GAAG,GAAG;AACb,SAAO,WAAW;AAChB,WAAOH,GAAG,EAAE,MAAM,MAAM,SAAS,CAAC;AAAA,EACtC;AACA;AACA,SAASI,GAAG,GAAG;AACb,SAAO,KAAK,aAAa,IAAID,GAAG,CAAC,IAAI,IAAID,GAAG,CAAC;AAC7C,WAAS,IAAI,KAAK,SAAS,IAAI,EAAE,QAAQ,IAAI,CAAA,GAAIrO,IAAI,CAAA,GAAIC,IAAI,GAAGA,IAAI,GAAG,EAAEA;AACvE,aAASQ,IAAI,EAAER,CAAC,GAAGU,IAAIF,EAAE,QAAQG,GAAGC,IAAI,GAAGA,IAAIF,GAAG,EAAEE;AAClD,OAACD,IAAIH,EAAEI,CAAC,OAAO,EAAE,KAAK,EAAE,KAAKD,GAAGA,EAAE,UAAUC,GAAGJ,CAAC,CAAC,GAAGT,EAAE,KAAKY,CAAC;AAChE,SAAO,IAAIsN,GAAG,GAAGlO,CAAC;AACpB;AACA,SAASwO,GAAG,GAAG;AACb,SAAO,WAAW;AAChB,WAAO,KAAK,QAAQ,CAAC;AAAA,EACzB;AACA;AACA,SAASC,GAAG,GAAG;AACb,SAAO,SAAS,GAAG;AACjB,WAAO,EAAE,QAAQ,CAAC;AAAA,EACtB;AACA;AACA,IAAIC,KAAK,MAAM,UAAU;AACzB,SAASC,GAAG,GAAG;AACb,SAAO,WAAW;AAChB,WAAOD,GAAG,KAAK,KAAK,UAAU,CAAC;AAAA,EACnC;AACA;AACA,SAASE,KAAK;AACZ,SAAO,KAAK;AACd;AACA,SAASC,GAAG,GAAG;AACb,SAAO,KAAK,OAAO,KAAK,OAAOD,KAAKD,GAAG,OAAO,KAAK,aAAa,IAAIF,GAAG,CAAC,CAAC,CAAC;AAC5E;AACA,IAAIK,KAAK,MAAM,UAAU;AACzB,SAASC,KAAK;AACZ,SAAO,MAAM,KAAK,KAAK,QAAQ;AACjC;AACA,SAASC,GAAG,GAAG;AACb,SAAO,WAAW;AAChB,WAAOF,GAAG,KAAK,KAAK,UAAU,CAAC;AAAA,EACnC;AACA;AACA,SAASG,GAAG,GAAG;AACb,SAAO,KAAK,UAAU,KAAK,OAAOF,KAAKC,GAAG,OAAO,KAAK,aAAa,IAAIP,GAAG,CAAC,CAAC,CAAC;AAC/E;AACA,SAASS,GAAG,GAAG;AACb,SAAO,KAAK,eAAe,IAAIV,GAAG,CAAC;AACnC,WAAS,IAAI,KAAK,SAAS,IAAI,EAAE,QAAQ,IAAI,IAAI,MAAM,CAAC,GAAGxO,IAAI,GAAGA,IAAI,GAAG,EAAEA;AACzE,aAASC,IAAI,EAAED,CAAC,GAAGS,IAAIR,EAAE,QAAQU,IAAI,EAAEX,CAAC,IAAI,CAAE,GAAEY,GAAGC,IAAI,GAAGA,IAAIJ,GAAG,EAAEI;AACjE,OAACD,IAAIX,EAAEY,CAAC,MAAM,EAAE,KAAKD,GAAGA,EAAE,UAAUC,GAAGZ,CAAC,KAAKU,EAAE,KAAKC,CAAC;AACzD,SAAO,IAAIsN,GAAG,GAAG,KAAK,QAAQ;AAChC;AACA,SAASiB,GAAG,GAAG;AACb,SAAO,IAAI,MAAM,EAAE,MAAM;AAC3B;AACA,SAASC,KAAK;AACZ,SAAO,IAAIlB,GAAG,KAAK,UAAU,KAAK,QAAQ,IAAIiB,EAAE,GAAG,KAAK,QAAQ;AAClE;AACA,SAASE,GAAG,GAAG,GAAG;AAChB,OAAK,gBAAgB,EAAE,eAAe,KAAK,eAAe,EAAE,cAAc,KAAK,QAAQ,MAAM,KAAK,UAAU,GAAG,KAAK,WAAW;AACjI;AACAA,GAAG,YAAY;AAAA,EACb,aAAaA;AAAA,EACb,aAAa,SAAS,GAAG;AACvB,WAAO,KAAK,QAAQ,aAAa,GAAG,KAAK,KAAK;AAAA,EAC/C;AAAA,EACD,cAAc,SAAS,GAAG,GAAG;AAC3B,WAAO,KAAK,QAAQ,aAAa,GAAG,CAAC;AAAA,EACtC;AAAA,EACD,eAAe,SAAS,GAAG;AACzB,WAAO,KAAK,QAAQ,cAAc,CAAC;AAAA,EACpC;AAAA,EACD,kBAAkB,SAAS,GAAG;AAC5B,WAAO,KAAK,QAAQ,iBAAiB,CAAC;AAAA,EACvC;AACH;AACA,SAASC,GAAG,GAAG;AACb,SAAO,WAAW;AAChB,WAAO;AAAA,EACX;AACA;AACA,SAASC,GAAG,GAAG,GAAG,GAAG,GAAGvP,GAAGC,GAAG;AAC5B,WAASQ,IAAI,GAAGE,GAAGC,IAAI,EAAE,QAAQC,IAAIZ,EAAE,QAAQQ,IAAII,GAAG,EAAEJ;AACtD,KAACE,IAAI,EAAEF,CAAC,MAAME,EAAE,WAAWV,EAAEQ,CAAC,GAAG,EAAEA,CAAC,IAAIE,KAAK,EAAEF,CAAC,IAAI,IAAI4O,GAAG,GAAGpP,EAAEQ,CAAC,CAAC;AACpE,SAAOA,IAAIG,GAAG,EAAEH;AACd,KAACE,IAAI,EAAEF,CAAC,OAAOT,EAAES,CAAC,IAAIE;AAC1B;AACA,SAAS6O,GAAG,GAAG,GAAG,GAAG,GAAGxP,GAAGC,GAAGQ,GAAG;AAC/B,MAAIE,GAAGC,GAAGC,IAAoB,oBAAI,IAAK,GAAE,IAAI,EAAE,QAAQE,IAAId,EAAE,QAAQe,IAAI,IAAI,MAAM,CAAC,GAAGS;AACvF,OAAKd,IAAI,GAAGA,IAAI,GAAG,EAAEA;AACnB,KAACC,IAAI,EAAED,CAAC,OAAOK,EAAEL,CAAC,IAAIc,IAAIhB,EAAE,KAAKG,GAAGA,EAAE,UAAUD,GAAG,CAAC,IAAI,IAAIE,EAAE,IAAIY,CAAC,IAAIzB,EAAEW,CAAC,IAAIC,IAAIC,EAAE,IAAIY,GAAGb,CAAC;AAC9F,OAAKD,IAAI,GAAGA,IAAII,GAAG,EAAEJ;AACnB,IAAAc,IAAIhB,EAAE,KAAK,GAAGR,EAAEU,CAAC,GAAGA,GAAGV,CAAC,IAAI,KAAKW,IAAIC,EAAE,IAAIY,CAAC,MAAM,EAAEd,CAAC,IAAIC,GAAGA,EAAE,WAAWX,EAAEU,CAAC,GAAGE,EAAE,OAAOY,CAAC,KAAK,EAAEd,CAAC,IAAI,IAAI0O,GAAG,GAAGpP,EAAEU,CAAC,CAAC;AACrH,OAAKA,IAAI,GAAGA,IAAI,GAAG,EAAEA;AACnB,KAACC,IAAI,EAAED,CAAC,MAAME,EAAE,IAAIG,EAAEL,CAAC,CAAC,MAAMC,MAAMZ,EAAEW,CAAC,IAAIC;AAC/C;AACA,SAAS6O,GAAG,GAAG;AACb,SAAO,EAAE;AACX;AACA,SAASC,GAAG,GAAG,GAAG;AAChB,MAAI,CAAC,UAAU;AACb,WAAO,MAAM,KAAK,MAAMD,EAAE;AAC5B,MAAI,IAAI,IAAID,KAAKD,IAAI,IAAI,KAAK,UAAUvP,IAAI,KAAK;AACjD,SAAO,KAAK,eAAe,IAAIsP,GAAG,CAAC;AACnC,WAASrP,IAAID,EAAE,QAAQS,IAAI,IAAI,MAAMR,CAAC,GAAGU,IAAI,IAAI,MAAMV,CAAC,GAAGW,IAAI,IAAI,MAAMX,CAAC,GAAGY,IAAI,GAAGA,IAAIZ,GAAG,EAAEY,GAAG;AAC9F,QAAI,IAAI,EAAEA,CAAC,GAAGE,IAAIf,EAAEa,CAAC,GAAGG,IAAID,EAAE,QAAQU,IAAIkO,GAAG,EAAE,KAAK,GAAG,KAAK,EAAE,UAAU9O,GAAG,CAAC,CAAC,GAAGa,IAAID,EAAE,QAAQE,IAAIhB,EAAEE,CAAC,IAAI,IAAI,MAAMa,CAAC,GAAGE,IAAInB,EAAEI,CAAC,IAAI,IAAI,MAAMa,CAAC,GAAGO,IAAIrB,EAAEC,CAAC,IAAI,IAAI,MAAMG,CAAC;AACtK,MAAE,GAAGD,GAAGY,GAAGC,GAAGK,GAAGR,GAAG,CAAC;AACrB,aAASI,IAAI,GAAGC,IAAI,GAAGC,GAAGG,GAAGL,IAAIH,GAAG,EAAEG;AACpC,UAAIE,IAAIJ,EAAEE,CAAC,GAAG;AACZ,aAAKA,KAAKC,MAAMA,IAAID,IAAI,IAAI,EAAEK,IAAIN,EAAEE,CAAC,MAAM,EAAEA,IAAIJ;AAC/C;AACF,QAAAK,EAAE,QAAQG,KAAK;AAAA,MAChB;AAAA,EACJ;AACD,SAAOzB,IAAI,IAAIyN,GAAGzN,GAAG,CAAC,GAAGA,EAAE,SAASE,GAAGF,EAAE,QAAQG,GAAGH;AACtD;AACA,SAASkP,GAAG,GAAG;AACb,SAAO,OAAO,KAAK,YAAY,YAAY,IAAI,IAAI,MAAM,KAAK,CAAC;AACjE;AACA,SAASC,KAAK;AACZ,SAAO,IAAI1B,GAAG,KAAK,SAAS,KAAK,QAAQ,IAAIiB,EAAE,GAAG,KAAK,QAAQ;AACjE;AACA,SAASU,GAAG,GAAG,GAAG,GAAG;AACnB,MAAI,IAAI,KAAK,SAAS7P,IAAI,MAAMC,IAAI,KAAK;AACzC,SAAO,OAAO,KAAK,cAAc,IAAI,EAAE,CAAC,GAAG,MAAM,IAAI,EAAE,UAAW,MAAK,IAAI,EAAE,OAAO,IAAI,EAAE,GAAG,KAAK,SAASD,IAAI,EAAEA,CAAC,GAAGA,MAAMA,IAAIA,EAAE,UAAS,KAAM,KAAK,OAAOC,EAAE,OAAM,IAAK,EAAEA,CAAC,GAAG,KAAKD,IAAI,EAAE,MAAMA,CAAC,EAAE,MAAO,IAAGA;AAC/M;AACA,SAAS8P,GAAG,GAAG;AACb,WAAS,IAAI,EAAE,YAAY,EAAE,UAAS,IAAK,GAAG,IAAI,KAAK,SAAS,IAAI,EAAE,SAAS9P,IAAI,EAAE,QAAQC,IAAI,EAAE,QAAQQ,IAAI,KAAK,IAAIT,GAAGC,CAAC,GAAGU,IAAI,IAAI,MAAMX,CAAC,GAAGY,IAAI,GAAGA,IAAIH,GAAG,EAAEG;AAC/J,aAASC,IAAI,EAAED,CAAC,GAAG,IAAI,EAAEA,CAAC,GAAGG,IAAIF,EAAE,QAAQG,IAAIL,EAAEC,CAAC,IAAI,IAAI,MAAMG,CAAC,GAAGU,GAAGC,IAAI,GAAGA,IAAIX,GAAG,EAAEW;AACrF,OAACD,IAAIZ,EAAEa,CAAC,KAAK,EAAEA,CAAC,OAAOV,EAAEU,CAAC,IAAID;AAClC,SAAOb,IAAIZ,GAAG,EAAEY;AACd,IAAAD,EAAEC,CAAC,IAAI,EAAEA,CAAC;AACZ,SAAO,IAAIsN,GAAGvN,GAAG,KAAK,QAAQ;AAChC;AACA,SAASoP,KAAK;AACZ,WAAS,IAAI,KAAK,SAAS,IAAI,IAAI,IAAI,EAAE,QAAQ,EAAE,IAAI;AACrD,aAAS,IAAI,EAAE,CAAC,GAAG/P,IAAI,EAAE,SAAS,GAAGC,IAAI,EAAED,CAAC,GAAGS,GAAG,EAAET,KAAK;AACvD,OAACS,IAAI,EAAET,CAAC,OAAOC,KAAKQ,EAAE,wBAAwBR,CAAC,IAAI,KAAKA,EAAE,WAAW,aAAaQ,GAAGR,CAAC,GAAGA,IAAIQ;AACjG,SAAO;AACT;AACA,SAASuP,GAAG,GAAG;AACb,QAAM,IAAIC;AACV,WAAS,EAAElP,GAAGC,GAAG;AACf,WAAOD,KAAKC,IAAI,EAAED,EAAE,UAAUC,EAAE,QAAQ,IAAI,CAACD,IAAI,CAACC;AAAA,EACnD;AACD,WAAS,IAAI,KAAK,SAAS,IAAI,EAAE,QAAQhB,IAAI,IAAI,MAAM,CAAC,GAAGC,IAAI,GAAGA,IAAI,GAAG,EAAEA,GAAG;AAC5E,aAASQ,IAAI,EAAER,CAAC,GAAGU,IAAIF,EAAE,QAAQG,IAAIZ,EAAEC,CAAC,IAAI,IAAI,MAAMU,CAAC,GAAGE,GAAG,IAAI,GAAG,IAAIF,GAAG,EAAE;AAC3E,OAACE,IAAIJ,EAAE,CAAC,OAAOG,EAAE,CAAC,IAAIC;AACxB,IAAAD,EAAE,KAAK,CAAC;AAAA,EACT;AACD,SAAO,IAAIsN,GAAGlO,GAAG,KAAK,QAAQ,EAAE;AAClC;AACA,SAASiQ,GAAG,GAAG,GAAG;AAChB,SAAO,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI;AAC/C;AACA,SAASC,KAAK;AACZ,MAAI,IAAI,UAAU,CAAC;AACnB,SAAO,UAAU,CAAC,IAAI,MAAM,EAAE,MAAM,MAAM,SAAS,GAAG;AACxD;AACA,SAASC,KAAK;AACZ,SAAO,MAAM,KAAK,IAAI;AACxB;AACA,SAASC,KAAK;AACZ,WAAS,IAAI,KAAK,SAAS,IAAI,GAAG,IAAI,EAAE,QAAQ,IAAI,GAAG,EAAE;AACvD,aAAS,IAAI,EAAE,CAAC,GAAGpQ,IAAI,GAAGC,IAAI,EAAE,QAAQD,IAAIC,GAAG,EAAED,GAAG;AAClD,UAAIS,IAAI,EAAET,CAAC;AACX,UAAIS;AACF,eAAOA;AAAA,IACV;AACH,SAAO;AACT;AACA,SAAS4P,KAAK;AACZ,MAAI,IAAI;AACR,aAAW,KAAK;AACd,MAAE;AACJ,SAAO;AACT;AACA,SAASC,KAAK;AACZ,SAAO,CAAC,KAAK;AACf;AACA,SAASC,GAAG,GAAG;AACb,WAAS,IAAI,KAAK,SAAS,IAAI,GAAG,IAAI,EAAE,QAAQ,IAAI,GAAG,EAAE;AACvD,aAASvQ,IAAI,EAAE,CAAC,GAAGC,IAAI,GAAGQ,IAAIT,EAAE,QAAQW,GAAGV,IAAIQ,GAAG,EAAER;AAClD,OAACU,IAAIX,EAAEC,CAAC,MAAM,EAAE,KAAKU,GAAGA,EAAE,UAAUV,GAAGD,CAAC;AAC5C,SAAO;AACT;AACA,SAASwQ,GAAG,GAAG;AACb,SAAO,WAAW;AAChB,SAAK,gBAAgB,CAAC;AAAA,EAC1B;AACA;AACA,SAASC,GAAG,GAAG;AACb,SAAO,WAAW;AAChB,SAAK,kBAAkB,EAAE,OAAO,EAAE,KAAK;AAAA,EAC3C;AACA;AACA,SAASC,GAAG,GAAG,GAAG;AAChB,SAAO,WAAW;AAChB,SAAK,aAAa,GAAG,CAAC;AAAA,EAC1B;AACA;AACA,SAASC,GAAG,GAAG,GAAG;AAChB,SAAO,WAAW;AAChB,SAAK,eAAe,EAAE,OAAO,EAAE,OAAO,CAAC;AAAA,EAC3C;AACA;AACA,SAASC,GAAG,GAAG,GAAG;AAChB,SAAO,WAAW;AAChB,QAAI,IAAI,EAAE,MAAM,MAAM,SAAS;AAC/B,SAAK,OAAO,KAAK,gBAAgB,CAAC,IAAI,KAAK,aAAa,GAAG,CAAC;AAAA,EAChE;AACA;AACA,SAASC,GAAG,GAAG,GAAG;AAChB,SAAO,WAAW;AAChB,QAAI,IAAI,EAAE,MAAM,MAAM,SAAS;AAC/B,SAAK,OAAO,KAAK,kBAAkB,EAAE,OAAO,EAAE,KAAK,IAAI,KAAK,eAAe,EAAE,OAAO,EAAE,OAAO,CAAC;AAAA,EAClG;AACA;AACA,SAASC,GAAG,GAAG,GAAG;AAChB,MAAI,IAAInD,GAAG,CAAC;AACZ,MAAI,UAAU,SAAS,GAAG;AACxB,QAAI,IAAI,KAAK;AACb,WAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,OAAO,EAAE,KAAK,IAAI,EAAE,aAAa,CAAC;AAAA,EACvE;AACD,SAAO,KAAK,MAAM,KAAK,OAAO,EAAE,QAAQ8C,KAAKD,KAAK,OAAO,KAAK,aAAa,EAAE,QAAQK,KAAKD,KAAK,EAAE,QAAQD,KAAKD,IAAI,GAAG,CAAC,CAAC;AACzH;AACA,SAASK,GAAG,GAAG;AACb,SAAO,EAAE,iBAAiB,EAAE,cAAc,eAAe,EAAE,YAAY,KAAK,EAAE;AAChF;AACA,SAASC,GAAG,GAAG;AACb,SAAO,WAAW;AAChB,SAAK,MAAM,eAAe,CAAC;AAAA,EAC/B;AACA;AACA,SAASC,GAAG,GAAG,GAAG,GAAG;AACnB,SAAO,WAAW;AAChB,SAAK,MAAM,YAAY,GAAG,GAAG,CAAC;AAAA,EAClC;AACA;AACA,SAASC,GAAG,GAAG,GAAG,GAAG;AACnB,SAAO,WAAW;AAChB,QAAI,IAAI,EAAE,MAAM,MAAM,SAAS;AAC/B,SAAK,OAAO,KAAK,MAAM,eAAe,CAAC,IAAI,KAAK,MAAM,YAAY,GAAG,GAAG,CAAC;AAAA,EAC7E;AACA;AACA,SAASC,GAAG,GAAG,GAAG,GAAG;AACnB,SAAO,UAAU,SAAS,IAAI,KAAK,MAAM,KAAK,OAAOH,KAAK,OAAO,KAAK,aAAaE,KAAKD,IAAI,GAAG,GAAG,KAAK,EAAE,CAAC,IAAIG,GAAG,KAAK,KAAM,GAAE,CAAC;AACjI;AACA,SAASA,GAAG,GAAG,GAAG;AAChB,SAAO,EAAE,MAAM,iBAAiB,CAAC,KAAKL,GAAG,CAAC,EAAE,iBAAiB,GAAG,IAAI,EAAE,iBAAiB,CAAC;AAC1F;AACA,SAASM,GAAG,GAAG;AACb,SAAO,WAAW;AAChB,WAAO,KAAK,CAAC;AAAA,EACjB;AACA;AACA,SAASC,GAAG,GAAG,GAAG;AAChB,SAAO,WAAW;AAChB,SAAK,CAAC,IAAI;AAAA,EACd;AACA;AACA,SAASC,GAAG,GAAG,GAAG;AAChB,SAAO,WAAW;AAChB,QAAI,IAAI,EAAE,MAAM,MAAM,SAAS;AAC/B,SAAK,OAAO,OAAO,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI;AAAA,EAC3C;AACA;AACA,SAASC,GAAG,GAAG,GAAG;AAChB,SAAO,UAAU,SAAS,IAAI,KAAK,MAAM,KAAK,OAAOH,KAAK,OAAO,KAAK,aAAaE,KAAKD,IAAI,GAAG,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC;AACpH;AACA,SAASG,GAAG,GAAG;AACb,SAAO,EAAE,KAAI,EAAG,MAAM,OAAO;AAC/B;AACA,SAASC,GAAG,GAAG;AACb,SAAO,EAAE,aAAa,IAAIC,GAAG,CAAC;AAChC;AACA,SAASA,GAAG,GAAG;AACb,OAAK,QAAQ,GAAG,KAAK,SAASF,GAAG,EAAE,aAAa,OAAO,KAAK,EAAE;AAChE;AACAE,GAAG,YAAY;AAAA,EACb,KAAK,SAAS,GAAG;AACf,QAAI,IAAI,KAAK,OAAO,QAAQ,CAAC;AAC7B,QAAI,MAAM,KAAK,OAAO,KAAK,CAAC,GAAG,KAAK,MAAM,aAAa,SAAS,KAAK,OAAO,KAAK,GAAG,CAAC;AAAA,EACtF;AAAA,EACD,QAAQ,SAAS,GAAG;AAClB,QAAI,IAAI,KAAK,OAAO,QAAQ,CAAC;AAC7B,SAAK,MAAM,KAAK,OAAO,OAAO,GAAG,CAAC,GAAG,KAAK,MAAM,aAAa,SAAS,KAAK,OAAO,KAAK,GAAG,CAAC;AAAA,EAC5F;AAAA,EACD,UAAU,SAAS,GAAG;AACpB,WAAO,KAAK,OAAO,QAAQ,CAAC,KAAK;AAAA,EAClC;AACH;AACA,SAASC,GAAG,GAAG,GAAG;AAChB,WAAS,IAAIF,GAAG,CAAC,GAAG,IAAI,IAAI1R,IAAI,EAAE,QAAQ,EAAE,IAAIA;AAC9C,MAAE,IAAI,EAAE,CAAC,CAAC;AACd;AACA,SAAS6R,GAAG,GAAG,GAAG;AAChB,WAAS,IAAIH,GAAG,CAAC,GAAG,IAAI,IAAI1R,IAAI,EAAE,QAAQ,EAAE,IAAIA;AAC9C,MAAE,OAAO,EAAE,CAAC,CAAC;AACjB;AACA,SAAS8R,GAAG,GAAG;AACb,SAAO,WAAW;AAChB,IAAAF,GAAG,MAAM,CAAC;AAAA,EACd;AACA;AACA,SAASG,GAAG,GAAG;AACb,SAAO,WAAW;AAChB,IAAAF,GAAG,MAAM,CAAC;AAAA,EACd;AACA;AACA,SAASG,GAAG,GAAG,GAAG;AAChB,SAAO,WAAW;AAChB,KAAC,EAAE,MAAM,MAAM,SAAS,IAAIJ,KAAKC,IAAI,MAAM,CAAC;AAAA,EAChD;AACA;AACA,SAASI,GAAG,GAAG,GAAG;AAChB,MAAI,IAAIR,GAAG,IAAI,EAAE;AACjB,MAAI,UAAU,SAAS,GAAG;AACxB,aAAS,IAAIC,GAAG,KAAK,KAAM,CAAA,GAAG1R,IAAI,IAAIC,IAAI,EAAE,QAAQ,EAAED,IAAIC;AACxD,UAAI,CAAC,EAAE,SAAS,EAAED,CAAC,CAAC;AAClB,eAAO;AACX,WAAO;AAAA,EACR;AACD,SAAO,KAAK,MAAM,OAAO,KAAK,aAAagS,KAAK,IAAIF,KAAKC,IAAI,GAAG,CAAC,CAAC;AACpE;AACA,SAASG,KAAK;AACZ,OAAK,cAAc;AACrB;AACA,SAASC,GAAG,GAAG;AACb,SAAO,WAAW;AAChB,SAAK,cAAc;AAAA,EACvB;AACA;AACA,SAASC,GAAG,GAAG;AACb,SAAO,WAAW;AAChB,QAAI,IAAI,EAAE,MAAM,MAAM,SAAS;AAC/B,SAAK,cAAc,KAAK;AAAA,EAC5B;AACA;AACA,SAASC,GAAG,GAAG;AACb,SAAO,UAAU,SAAS,KAAK,KAAK,KAAK,OAAOH,MAAM,OAAO,KAAK,aAAaE,KAAKD,IAAI,CAAC,CAAC,IAAI,KAAK,KAAM,EAAC;AAC5G;AACA,SAASG,KAAK;AACZ,OAAK,YAAY;AACnB;AACA,SAASC,GAAG,GAAG;AACb,SAAO,WAAW;AAChB,SAAK,YAAY;AAAA,EACrB;AACA;AACA,SAASC,GAAG,GAAG;AACb,SAAO,WAAW;AAChB,QAAI,IAAI,EAAE,MAAM,MAAM,SAAS;AAC/B,SAAK,YAAY,KAAK;AAAA,EAC1B;AACA;AACA,SAASC,GAAG,GAAG;AACb,SAAO,UAAU,SAAS,KAAK,KAAK,KAAK,OAAOH,MAAM,OAAO,KAAK,aAAaE,KAAKD,IAAI,CAAC,CAAC,IAAI,KAAK,KAAM,EAAC;AAC5G;AACA,SAASG,KAAK;AACZ,OAAK,eAAe,KAAK,WAAW,YAAY,IAAI;AACtD;AACA,SAASC,KAAK;AACZ,SAAO,KAAK,KAAKD,EAAE;AACrB;AACA,SAASE,KAAK;AACZ,OAAK,mBAAmB,KAAK,WAAW,aAAa,MAAM,KAAK,WAAW,UAAU;AACvF;AACA,SAASC,KAAK;AACZ,SAAO,KAAK,KAAKD,EAAE;AACrB;AACA,SAASE,GAAG,GAAG;AACb,MAAI,IAAI,OAAO,KAAK,aAAa,IAAIhF,GAAG,CAAC;AACzC,SAAO,KAAK,OAAO,WAAW;AAC5B,WAAO,KAAK,YAAY,EAAE,MAAM,MAAM,SAAS,CAAC;AAAA,EACpD,CAAG;AACH;AACA,SAASiF,KAAK;AACZ,SAAO;AACT;AACA,SAASC,GAAG,GAAG,GAAG;AAChB,MAAI,IAAI,OAAO,KAAK,aAAa,IAAIlF,GAAG,CAAC,GAAG,IAAI,KAAK,OAAOiF,KAAK,OAAO,KAAK,aAAa,IAAI/E,GAAG,CAAC;AAClG,SAAO,KAAK,OAAO,WAAW;AAC5B,WAAO,KAAK,aAAa,EAAE,MAAM,MAAM,SAAS,GAAG,EAAE,MAAM,MAAM,SAAS,KAAK,IAAI;AAAA,EACvF,CAAG;AACH;AACA,SAASiF,KAAK;AACZ,MAAI,IAAI,KAAK;AACb,OAAK,EAAE,YAAY,IAAI;AACzB;AACA,SAASC,KAAK;AACZ,SAAO,KAAK,KAAKD,EAAE;AACrB;AACA,SAASE,KAAK;AACZ,MAAI,IAAI,KAAK,UAAU,EAAE,GAAG,IAAI,KAAK;AACrC,SAAO,IAAI,EAAE,aAAa,GAAG,KAAK,WAAW,IAAI;AACnD;AACA,SAASC,KAAK;AACZ,MAAI,IAAI,KAAK,UAAU,EAAE,GAAG,IAAI,KAAK;AACrC,SAAO,IAAI,EAAE,aAAa,GAAG,KAAK,WAAW,IAAI;AACnD;AACA,SAASC,GAAG,GAAG;AACb,SAAO,KAAK,OAAO,IAAID,KAAKD,EAAE;AAChC;AACA,SAASG,GAAG,GAAG;AACb,SAAO,UAAU,SAAS,KAAK,SAAS,YAAY,CAAC,IAAI,KAAK,KAAM,EAAC;AACvE;AACA,SAASC,GAAG,GAAG;AACb,SAAO,SAAS,GAAG;AACjB,MAAE,KAAK,MAAM,GAAG,KAAK,QAAQ;AAAA,EACjC;AACA;AACA,SAASC,GAAG,GAAG;AACb,SAAO,EAAE,OAAO,MAAM,OAAO,EAAE,IAAI,SAAS,GAAG;AAC7C,QAAI,IAAI,IAAI,IAAI,EAAE,QAAQ,GAAG;AAC7B,WAAO,KAAK,MAAM,IAAI,EAAE,MAAM,IAAI,CAAC,GAAG,IAAI,EAAE,MAAM,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;EAC/E,CAAG;AACH;AACA,SAASC,GAAG,GAAG;AACb,SAAO,WAAW;AAChB,QAAI,IAAI,KAAK;AACb,QAAI,GAAG;AACL,eAAS,IAAI,GAAG,IAAI,IAAIzT,IAAI,EAAE,QAAQC,GAAG,IAAID,GAAG,EAAE;AAChD,QAAAC,IAAI,EAAE,CAAC,IAAI,CAAC,EAAE,QAAQA,EAAE,SAAS,EAAE,SAASA,EAAE,SAAS,EAAE,OAAO,KAAK,oBAAoBA,EAAE,MAAMA,EAAE,UAAUA,EAAE,OAAO,IAAI,EAAE,EAAE,CAAC,IAAIA;AACrI,QAAE,IAAI,EAAE,SAAS,IAAI,OAAO,KAAK;AAAA,IAClC;AAAA,EACL;AACA;AACA,SAASyT,GAAG,GAAG,GAAG,GAAG;AACnB,SAAO,WAAW;AAChB,QAAI,IAAI,KAAK,MAAM1T,GAAGC,IAAIsT,GAAG,CAAC;AAC9B,QAAI;AACF,eAAS9S,IAAI,GAAGE,IAAI,EAAE,QAAQF,IAAIE,GAAG,EAAEF;AACrC,aAAKT,IAAI,EAAES,CAAC,GAAG,SAAS,EAAE,QAAQT,EAAE,SAAS,EAAE,MAAM;AACnD,eAAK,oBAAoBA,EAAE,MAAMA,EAAE,UAAUA,EAAE,OAAO,GAAG,KAAK,iBAAiBA,EAAE,MAAMA,EAAE,WAAWC,GAAGD,EAAE,UAAU,CAAC,GAAGA,EAAE,QAAQ;AACjI;AAAA,QACD;AAAA;AAEL,SAAK,iBAAiB,EAAE,MAAMC,GAAG,CAAC,GAAGD,IAAI,EAAE,MAAM,EAAE,MAAM,MAAM,EAAE,MAAM,OAAO,GAAG,UAAUC,GAAG,SAAS,EAAG,GAAE,IAAI,EAAE,KAAKD,CAAC,IAAI,KAAK,OAAO,CAACA,CAAC;AAAA,EAC9I;AACA;AACA,SAAS2T,GAAG,GAAG,GAAG,GAAG;AACnB,MAAI,IAAIH,GAAG,IAAI,EAAE,GAAGxT,GAAGC,IAAI,EAAE,QAAQQ;AACrC,MAAI,UAAU,SAAS,GAAG;AACxB,QAAIE,IAAI,KAAK,KAAI,EAAG;AACpB,QAAIA;AACF,eAASC,IAAI,GAAGC,IAAIF,EAAE,QAAQ,GAAGC,IAAIC,GAAG,EAAED;AACxC,aAAKZ,IAAI,GAAG,IAAIW,EAAEC,CAAC,GAAGZ,IAAIC,GAAG,EAAED;AAC7B,eAAKS,IAAI,EAAET,CAAC,GAAG,SAAS,EAAE,QAAQS,EAAE,SAAS,EAAE;AAC7C,mBAAO,EAAE;AAAA;AAEjB;AAAA,EACD;AACD,OAAKE,IAAI,IAAI+S,KAAKD,IAAIzT,IAAI,GAAGA,IAAIC,GAAG,EAAED;AACpC,SAAK,KAAKW,EAAE,EAAEX,CAAC,GAAG,GAAG,CAAC,CAAC;AACzB,SAAO;AACT;AACA,SAAS4T,GAAG,GAAG,GAAG,GAAG;AACnB,MAAI,IAAI7C,GAAG,CAAC,GAAG/Q,IAAI,EAAE;AACrB,SAAOA,KAAK,aAAaA,IAAI,IAAIA,EAAE,GAAG,CAAC,KAAKA,IAAI,EAAE,SAAS,YAAY,OAAO,GAAG,KAAKA,EAAE,UAAU,GAAG,EAAE,SAAS,EAAE,UAAU,GAAGA,EAAE,SAAS,EAAE,UAAUA,EAAE,UAAU,GAAG,IAAI,EAAE,IAAI,EAAE,cAAcA,CAAC;AAClM;AACA,SAAS6T,GAAG,GAAG,GAAG;AAChB,SAAO,WAAW;AAChB,WAAOD,GAAG,MAAM,GAAG,CAAC;AAAA,EACxB;AACA;AACA,SAASE,GAAG,GAAG,GAAG;AAChB,SAAO,WAAW;AAChB,WAAOF,GAAG,MAAM,GAAG,EAAE,MAAM,MAAM,SAAS,CAAC;AAAA,EAC/C;AACA;AACA,SAASG,GAAG,GAAG,GAAG;AAChB,SAAO,KAAK,MAAM,OAAO,KAAK,aAAaD,KAAKD,IAAI,GAAG,CAAC,CAAC;AAC3D;AACA,UAAUG,KAAK;AACb,WAAS,IAAI,KAAK,SAAS,IAAI,GAAG,IAAI,EAAE,QAAQ,IAAI,GAAG,EAAE;AACvD,aAAS,IAAI,EAAE,CAAC,GAAGhU,IAAI,GAAGC,IAAI,EAAE,QAAQQ,GAAGT,IAAIC,GAAG,EAAED;AAClD,OAACS,IAAI,EAAET,CAAC,OAAO,MAAMS;AAC3B;AACA,IAAIwT,KAAK,CAAC,IAAI;AACd,SAAS/F,GAAG,GAAG,GAAG;AAChB,OAAK,UAAU,GAAG,KAAK,WAAW;AACpC;AACA,SAASgG,KAAK;AACZ,SAAO,IAAIhG,GAAG,CAAC,CAAC,SAAS,eAAe,CAAC,GAAG+F,EAAE;AAChD;AACA,SAASE,KAAK;AACZ,SAAO;AACT;AACAjG,GAAG,YAAYgG,GAAG,YAAY;AAAA,EAC5B,aAAahG;AAAA,EACb,QAAQD;AAAA,EACR,WAAWM;AAAA,EACX,aAAaM;AAAA,EACb,gBAAgBI;AAAA,EAChB,QAAQC;AAAA,EACR,MAAMQ;AAAA,EACN,OAAON;AAAA,EACP,MAAMQ;AAAA,EACN,MAAMC;AAAA,EACN,OAAOC;AAAA,EACP,WAAWqE;AAAA,EACX,OAAOpE;AAAA,EACP,MAAMC;AAAA,EACN,MAAME;AAAA,EACN,OAAOC;AAAA,EACP,MAAMC;AAAA,EACN,MAAMC;AAAA,EACN,OAAOC;AAAA,EACP,MAAMC;AAAA,EACN,MAAMO;AAAA,EACN,OAAOK;AAAA,EACP,UAAUK;AAAA,EACV,SAASS;AAAA,EACT,MAAMI;AAAA,EACN,MAAMI;AAAA,EACN,OAAOE;AAAA,EACP,OAAOE;AAAA,EACP,QAAQC;AAAA,EACR,QAAQE;AAAA,EACR,QAAQE;AAAA,EACR,OAAOG;AAAA,EACP,OAAOC;AAAA,EACP,IAAIK;AAAA,EACJ,UAAUI;AAAA,EACV,CAAC,OAAO,QAAQ,GAAGC;AACrB;AACA,SAASI,GAAG,GAAG;AACb,SAAO,OAAO,KAAK,WAAW,IAAIlG,GAAG,CAAC,CAAC,SAAS,cAAc,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,eAAe,CAAC,IAAI,IAAIA,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG+F,EAAE;AACpH;AACA,SAASI,GAAG,GAAG;AACb,MAAI;AACJ,SAAO,IAAI,EAAE;AACX,QAAI;AACN,SAAO;AACT;AACA,SAASC,GAAG,GAAG,GAAG;AAChB,MAAI,IAAID,GAAG,CAAC,GAAG,MAAM,WAAW,IAAI,EAAE,gBAAgB,GAAG;AACvD,QAAI,IAAI,EAAE,mBAAmB;AAC7B,QAAI,EAAE,gBAAgB;AACpB,UAAI,IAAI,EAAE;AACV,aAAO,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,IAAI,EAAE,gBAAgB,EAAE,aAAc,EAAC,QAAS,CAAA,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC;AAAA,IACtG;AACD,QAAI,EAAE,uBAAuB;AAC3B,UAAIrU,IAAI,EAAE;AACV,aAAO,CAAC,EAAE,UAAUA,EAAE,OAAO,EAAE,YAAY,EAAE,UAAUA,EAAE,MAAM,EAAE,SAAS;AAAA,IAC3E;AAAA,EACF;AACD,SAAO,CAAC,EAAE,OAAO,EAAE,KAAK;AAC1B;AACA,MAAMuU,KAAK,EAAE,SAAS,GAAI,GAAEC,KAAK,EAAE,SAAS,IAAI,SAAS,GAAE;AAC3D,SAASC,GAAG,GAAG;AACb,IAAE,yBAAwB;AAC5B;AACA,SAAS,GAAG,GAAG;AACb,IAAE,eAAc,GAAI,EAAE,yBAAwB;AAChD;AACA,SAASC,GAAG,GAAG;AACb,MAAI,IAAI,EAAE,SAAS,iBAAiB,IAAIN,GAAG,CAAC,EAAE,GAAG,kBAAkB,IAAII,EAAE;AACzE,qBAAmB,IAAI,EAAE,GAAG,oBAAoB,IAAIA,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,EAAE,MAAM,gBAAgB;AAC3H;AACA,SAASG,GAAG,GAAG,GAAG;AAChB,MAAI,IAAI,EAAE,SAAS,iBAAiB,IAAIP,GAAG,CAAC,EAAE,GAAG,kBAAkB,IAAI;AACvE,QAAM,EAAE,GAAG,cAAc,IAAII,EAAE,GAAG,WAAW,WAAW;AACtD,MAAE,GAAG,cAAc,IAAI;AAAA,EAC3B,GAAK,CAAC,IAAI,mBAAmB,IAAI,EAAE,GAAG,oBAAoB,IAAI,KAAK,EAAE,MAAM,gBAAgB,EAAE,YAAY,OAAO,EAAE;AAClH;AACA,MAAMI,KAAK,CAAC,MAAM,MAAM;AACxB,SAASC,GAAG,GAAG;AAAA,EACb,aAAa;AAAA,EACb,SAAS;AAAA,EACT,QAAQ;AAAA,EACR,YAAY7U;AAAA,EACZ,QAAQC;AAAA,EACR,GAAGQ;AAAA,EACH,GAAGE;AAAA,EACH,IAAIC;AAAA,EACJ,IAAIC;AAAA,EACJ,UAAU;AACZ,GAAG;AACD,SAAO,iBAAiB,MAAM;AAAA,IAC5B,MAAM,EAAE,OAAO,GAAG,YAAY,IAAI,cAAc,GAAI;AAAA,IACpD,aAAa,EAAE,OAAO,GAAG,YAAY,IAAI,cAAc,GAAI;AAAA,IAC3D,SAAS,EAAE,OAAO,GAAG,YAAY,IAAI,cAAc,GAAI;AAAA,IACvD,QAAQ,EAAE,OAAO,GAAG,YAAY,IAAI,cAAc,GAAI;AAAA,IACtD,YAAY,EAAE,OAAOb,GAAG,YAAY,IAAI,cAAc,GAAI;AAAA,IAC1D,QAAQ,EAAE,OAAOC,GAAG,YAAY,IAAI,cAAc,GAAI;AAAA,IACtD,GAAG,EAAE,OAAOQ,GAAG,YAAY,IAAI,cAAc,GAAI;AAAA,IACjD,GAAG,EAAE,OAAOE,GAAG,YAAY,IAAI,cAAc,GAAI;AAAA,IACjD,IAAI,EAAE,OAAOC,GAAG,YAAY,IAAI,cAAc,GAAI;AAAA,IAClD,IAAI,EAAE,OAAOC,GAAG,YAAY,IAAI,cAAc,GAAI;AAAA,IAClD,GAAG,EAAE,OAAO,EAAG;AAAA,EACnB,CAAG;AACH;AACAgU,GAAG,UAAU,KAAK,WAAW;AAC3B,MAAI,IAAI,KAAK,EAAE,GAAG,MAAM,KAAK,GAAG,SAAS;AACzC,SAAO,MAAM,KAAK,IAAI,OAAO;AAC/B;AACA,SAASC,GAAG,GAAG;AACb,SAAO,CAAC,EAAE,WAAW,CAAC,EAAE;AAC1B;AACA,SAASC,KAAK;AACZ,SAAO,KAAK;AACd;AACA,SAASC,GAAG,GAAG,GAAG;AAChB,SAAO,KAAK,EAAE,GAAG,EAAE,GAAG,GAAG,EAAE;AAC7B;AACA,SAASC,KAAK;AACZ,SAAO,UAAU,kBAAkB,kBAAkB;AACvD;AACA,SAASC,KAAK;AACZ,MAAI,IAAIJ,IAAI,IAAIC,IAAI,IAAIC,IAAI,IAAIC,IAAIjV,IAAI,CAAE,GAAEC,IAAImN,GAAG,SAAS,QAAQ,KAAK,GAAG3M,IAAI,GAAGE,GAAGC,GAAGC,GAAG,GAAGE,IAAI;AACnG,WAASC,EAAEe,GAAG;AACZ,IAAAA,EAAE,GAAG,kBAAkBN,CAAC,EAAE,OAAO,CAAC,EAAE,GAAG,mBAAmBG,CAAC,EAAE,GAAG,kBAAkBK,GAAGsS,EAAE,EAAE,GAAG,kCAAkC1S,CAAC,EAAE,MAAM,gBAAgB,MAAM,EAAE,MAAM,+BAA+B,eAAe;AAAA,EACpN;AACD,WAASJ,EAAEM,GAAGG,GAAG;AACf,QAAI,EAAE,KAAK,CAAC,EAAE,KAAK,MAAMH,GAAGG,CAAC,IAAI;AAC/B,UAAIC,IAAIL,EAAE,MAAM,EAAE,KAAK,MAAMC,GAAGG,CAAC,GAAGH,GAAGG,GAAG,OAAO;AACjD,MAAAC,MAAMiS,GAAGrS,EAAE,IAAI,EAAE,GAAG,kBAAkBL,GAAG8S,EAAE,EAAE,GAAG,gBAAgB7S,GAAG6S,EAAE,GAAGE,GAAG3S,EAAE,IAAI,GAAG0S,GAAG1S,CAAC,GAAGlB,IAAI,IAAIF,IAAIoB,EAAE,SAASnB,IAAImB,EAAE,SAASI,EAAE,SAASJ,CAAC;AAAA,IAC9I;AAAA,EACF;AACD,WAASL,EAAEK,GAAG;AACZ,QAAI,GAAGA,CAAC,GAAG,CAAClB,GAAG;AACb,UAAIqB,IAAIH,EAAE,UAAUpB,GAAGwB,IAAIJ,EAAE,UAAUnB;AACvC,MAAAC,IAAIqB,IAAIA,IAAIC,IAAIA,IAAIpB;AAAA,IACrB;AACD,IAAAf,EAAE,MAAM,QAAQ+B,CAAC;AAAA,EAClB;AACD,WAASJ,EAAEI,GAAG;AACZ,IAAAqS,GAAGrS,EAAE,IAAI,EAAE,GAAG,+BAA+B,IAAI,GAAG4S,GAAG5S,EAAE,MAAMlB,CAAC,GAAG,GAAGkB,CAAC,GAAG/B,EAAE,MAAM,OAAO+B,CAAC;AAAA,EAC3F;AACD,WAASH,EAAEG,GAAGG,GAAG;AACf,QAAI,EAAE,KAAK,MAAMH,GAAGG,CAAC,GAAG;AACtB,UAAIC,IAAIJ,EAAE,gBAAgB0H,IAAI,EAAE,KAAK,MAAM1H,GAAGG,CAAC,GAAGwH,IAAIvH,EAAE,QAAQwH,GAAGC;AACnE,WAAKD,IAAI,GAAGA,IAAID,GAAG,EAAEC;AACnB,SAACC,IAAI9H,EAAE,MAAM2H,GAAG1H,GAAGG,GAAGC,EAAEwH,CAAC,EAAE,YAAYxH,EAAEwH,CAAC,CAAC,OAAO8K,GAAG1S,CAAC,GAAG6H,EAAE,SAAS7H,GAAGI,EAAEwH,CAAC,CAAC;AAAA,IAC9E;AAAA,EACF;AACD,WAAS1H,EAAEF,GAAG;AACZ,QAAIG,IAAIH,EAAE,gBAAgBI,IAAID,EAAE,QAAQuH,GAAGC;AAC3C,SAAKD,IAAI,GAAGA,IAAItH,GAAG,EAAEsH;AACnB,OAACC,IAAI1J,EAAEkC,EAAEuH,CAAC,EAAE,UAAU,OAAO,GAAG1H,CAAC,GAAG2H,EAAE,QAAQ3H,GAAGG,EAAEuH,CAAC,CAAC;AAAA,EACxD;AACD,WAAS5H,EAAEE,GAAG;AACZ,QAAIG,IAAIH,EAAE,gBAAgBI,IAAID,EAAE,QAAQuH,GAAGC;AAC3C,SAAK,KAAK,aAAa,CAAC,GAAG,IAAI,WAAW,WAAW;AACnD,UAAI;AAAA,IACV,GAAO,GAAG,GAAGD,IAAI,GAAGA,IAAItH,GAAG,EAAEsH;AACvB,OAACC,IAAI1J,EAAEkC,EAAEuH,CAAC,EAAE,UAAU,OAAOgL,GAAG1S,CAAC,GAAG2H,EAAE,OAAO3H,GAAGG,EAAEuH,CAAC,CAAC;AAAA,EACvD;AACD,WAAS3H,EAAEC,GAAGG,GAAGC,GAAGsH,GAAGC,GAAGC,GAAG;AAC3B,QAAIC,IAAI3J,EAAE,KAAM,GAAE4J,IAAIyK,GAAG3K,KAAKxH,GAAGD,CAAC,GAAG4H,GAAGsB,IAAIrB;AAC5C,SAAKA,IAAI,EAAE,KAAKhI,GAAG,IAAI8S,GAAG,eAAe;AAAA,MACvC,aAAa1S;AAAA,MACb,QAAQnB;AAAA,MACR,YAAY0I;AAAA,MACZ,QAAQjJ;AAAA,MACR,GAAGoJ,EAAE,CAAC;AAAA,MACN,GAAGA,EAAE,CAAC;AAAA,MACN,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,UAAUD;AAAA,IAChB,CAAK,GAAGH,CAAC,MAAM;AACT,aAAOK,IAAIC,EAAE,IAAIF,EAAE,CAAC,KAAK,GAAGuB,KAAKrB,EAAE,IAAIF,EAAE,CAAC,KAAK,GAAG,SAASI,EAAEC,GAAGF,GAAGG,GAAG;AACpE,YAAIW,IAAIjB,GAAGmB;AACX,gBAAQd,GAAC;AAAA,UACP,KAAK;AACH,YAAAlK,EAAE0J,CAAC,IAAIO,GAAGe,IAAIvK;AACd;AAAA,UACF,KAAK;AACH,mBAAOT,EAAE0J,CAAC,GAAG,EAAEjJ;AAAA,UACjB,KAAK;AACH,YAAAoJ,IAAIyK,GAAGnK,KAAKH,GAAG9H,CAAC,GAAG8I,IAAIvK;AACvB;AAAA,QACH;AACD,QAAAmJ,EAAE;AAAA,UACAM;AAAA,UACAnI;AAAA,UACA,IAAI8S,GAAG3K,GAAG;AAAA,YACR,aAAaF;AAAA,YACb,SAASD;AAAA,YACT,QAAQ/I;AAAA,YACR,YAAY0I;AAAA,YACZ,QAAQsB;AAAA,YACR,GAAGnB,EAAE,CAAC,IAAIC;AAAA,YACV,GAAGD,EAAE,CAAC,IAAIuB;AAAA,YACV,IAAIvB,EAAE,CAAC,IAAIiB,EAAE,CAAC;AAAA,YACd,IAAIjB,EAAE,CAAC,IAAIiB,EAAE,CAAC;AAAA,YACd,UAAUlB;AAAA,UACtB,CAAW;AAAA,UACDH;AAAA,QACV;AAAA,MACA;AAAA,EACG;AACD,SAAOzI,EAAE,SAAS,SAASe,GAAG;AAC5B,WAAO,UAAU,UAAU,IAAI,OAAOA,KAAK,aAAaA,IAAI6S,GAAG,CAAC,CAAC7S,CAAC,GAAGf,KAAK;AAAA,EAC9E,GAAKA,EAAE,YAAY,SAASe,GAAG;AAC3B,WAAO,UAAU,UAAU,IAAI,OAAOA,KAAK,aAAaA,IAAI6S,GAAG7S,CAAC,GAAGf,KAAK;AAAA,EAC5E,GAAKA,EAAE,UAAU,SAASe,GAAG;AACzB,WAAO,UAAU,UAAU,IAAI,OAAOA,KAAK,aAAaA,IAAI6S,GAAG7S,CAAC,GAAGf,KAAK;AAAA,EAC5E,GAAKA,EAAE,YAAY,SAASe,GAAG;AAC3B,WAAO,UAAU,UAAU,IAAI,OAAOA,KAAK,aAAaA,IAAI6S,GAAG,CAAC,CAAC7S,CAAC,GAAGf,KAAK;AAAA,EAC9E,GAAKA,EAAE,KAAK,WAAW;AACnB,QAAIe,IAAI9B,EAAE,GAAG,MAAMA,GAAG,SAAS;AAC/B,WAAO8B,MAAM9B,IAAIe,IAAIe;AAAA,EACzB,GAAKf,EAAE,gBAAgB,SAASe,GAAG;AAC/B,WAAO,UAAU,UAAUhB,KAAKgB,IAAI,CAACA,KAAKA,GAAGf,KAAK,KAAK,KAAKD,CAAC;AAAA,EAC9D,GAAEC;AACL;AACA,SAASmU,GAAG,GAAG;AACb,QAAM,IAAI9M,MAAM,IAAIqD,EAAE,GAAG,YAAY,GAAG,IAAIA,EAAE,GAAG,YAAY,GAAG1L,IAAI0L,EAAE,GAAG,UAAU,GAAGzL,IAAIyL,EAAE,GAAG,iBAAiB,GAAGjL,IAAIiL,EAAE,GAAG,OAAO,GAAG/K,IAAI+K,EAAE,GAAG,YAAY,GAAG9K,IAAI8K,EAAE,GAAG,UAAU,GAAG7K,IAAI6K,EAAE,GAAG,mBAAmB,GAAG,IAAIA,EAAE,GAAG,gBAAgB,GAAG3K,IAAI2K,EAAE,GAAG,OAAO,GAAG1K,IAAI0K,EAAE,GAAG,UAAU,GAAGjK,IAAIiK,EAAE,GAAG,sBAAsB,GAAGhK,IAAIgK,EAAE,GAAG,sBAAsB,GAAG/J,IAAI+J,EAAE,GAAG,mBAAmB,GAAG9J,IAAI8J,EAAE,GAAG,wBAAwB,GAAGzJ,IAAIyJ,EAAE,GAAG,kBAAkB,GAAG7J,IAAI6J,EAAE,GAAG,qBAAqB,GAAG5J,IAAI4J,EAAE,GAAG,OAAO,GAAG,EAAE,SAAS3J,GAAG,QAAQG,GAAG,QAAQC,GAAG,IAAIsH,GAAG,UAAUC,GAAG,IAAIC,GAAG,YAAYC,EAAG,IAAG,GAAGC,IAAIzJ,GAAG,EAAE;AAC9kB,MAAI0J,IAAI1J,GAAG,CAAE,CAAA,GAAGgL,KAAKhL,GAAE,GAAI2J,IAAI3J,GAAG,IAAI,GAAG6J,IAAI7J,GAAG,EAAE,GAAG,QAAQ,GAAG,OAAQ,CAAA,GAAG8J,IAAI9J,GAAG,EAAE,GAAG,GAAG,GAAG,EAAC,CAAE,GAAG4J,IAAI5J,GAAG,IAAI,GAAG+J,IAAI/J,GAAG,CAAC,GAAG0K,IAAI1K,GAAG,EAAE;AACrI,QAAM4K,IAAIgC,GAAI,GAAEpC,IAAI,CAAC,EAAE,GAAGG,GAAG,GAAGE,SAAS;AACvC,IAAAhB,EAAE,QAAQ,EAAE,GAAGc,GAAG,GAAGE;AACrB,QAAI,KAAK;AACT,QAAInB,EAAE,QAAQA,EAAE,MAAM,IAAI,CAACoB,MAAM;AAC/B,YAAMC,IAAI,EAAE,GAAGJ,IAAIG,EAAE,SAAS,GAAG,GAAGD,KAAKC,EAAE,SAAS,EAAC;AACrD,QAAE,UAAUC,EAAE,IAAInL,EAAE,MAAM,CAAC,IAAI,KAAK,MAAMmL,EAAE,IAAInL,EAAE,MAAM,CAAC,CAAC,GAAGmL,EAAE,IAAInL,EAAE,MAAM,CAAC,IAAI,KAAK,MAAMmL,EAAE,IAAInL,EAAE,MAAM,CAAC,CAAC;AAC3G,YAAM,EAAE,kBAAkBsK,EAAC,IAAKsC;AAAA,QAC9B1B;AAAA,QACAC;AAAA,QACArJ,EAAE,MAAM;AAAA,QACRnB,EAAE;AAAA,QACFuK,EAAE,aAAalK,EAAE,MAAMkK,EAAE,UAAU,IAAI;AAAA,MAC/C;AACM,aAAO,KAAK,MAAMA,EAAE,SAAS,MAAMZ,EAAE,KAAKY,EAAE,SAAS,MAAMZ,EAAE,GAAGY,EAAE,WAAWZ,GAAGY;AAAA,IACtF,CAAK,GAAG,CAAC,CAAC,OAAOrJ,EAAE,MAAMiI,EAAE,OAAO,IAAI,EAAE,GAAGD,EAAE,QAAQ,IAAIG,EAAE,QAAQ;AAC7D,YAAM,CAACkB,GAAGC,CAAC,IAAIqB,GAAG;AAAA,QAChB,IAAI7C;AAAA,QACJ,WAAWG,EAAE;AAAA,QACb,UAAU9I,EAAE;AAAA,MACpB,CAAO;AACD,MAAAkB,EAAE,EAAE,OAAO8H,EAAE,OAAO,MAAMkB,GAAG,OAAOC,EAAC,CAAE;AAAA,IACxC;AAAA,EACF,GAAEZ,IAAI,MAAM;AACX,QAAI,CAACR,EAAE;AACL;AACF,UAAM,CAACgB,GAAGE,EAAE,IAAI3B,GAAGY,EAAE,OAAOH,EAAE,KAAK;AACnC,QAAIgB,MAAM,KAAKE,OAAO,GAAG;AACvB,YAAM,KAAK;AAAA,QACT,IAAIhB,EAAE,MAAM,KAAK,KAAKc,IAAInK,EAAE,MAAM;AAAA,QAClC,IAAIqJ,EAAE,MAAM,KAAK,KAAKgB,KAAKrK,EAAE,MAAM;AAAA,MAC3C;AACM,MAAAG,EAAE,MAAM,EAAE,GAAGgK,GAAG,GAAGE,IAAI,KAAKL,EAAE,EAAE;AAAA,IACjC;AACD,IAAAT,EAAE,QAAQ,sBAAsBI,CAAC;AAAA,EACrC;AACE,SAAO7J,GAAG,CAAC,MAAM,GAAGgJ,CAAC,GAAGD,CAAC,GAAG,CAAC,CAACsB,GAAGE,EAAE,MAAM;AACvC,QAAIA,IAAI;AACN,YAAM,KAAKmJ,GAAGnJ,EAAE;AAChB,UAAIF;AACF,WAAG,GAAG,SAAS,IAAI;AAAA,WAChB;AACH,cAAMG,IAAIlK,EAAE,MAAM2I,CAAC;AACnB,QAAAyB,GAAG,QAAQ8J,GAAE,EAAG,GAAG,SAAS,CAAC/J,MAAM;AACjC,cAAIN;AACJ,WAAClJ,EAAE,SAAS,CAACF,EAAE,SAASyJ,MAAMA,EAAE,YAAYtJ,EAAE,MAAK,IAAKsJ,KAAK,GAAGtB,CAAC,KAAKjI,EAAE,SAASuL;AAAA,YAC/EhC;AAAA,YACAzJ,EAAE;AAAA,YACFQ,EAAE;AAAA,YACFL,EAAE;AAAA,YACFF;AAAA,YACA;AAAA,YACAuJ;AAAA,UACZ;AACU,gBAAMX,IAAIU,EAAEG,CAAC;AACb,cAAIlB,EAAE,QAAQK,GAAGR,EAAE,QAAQyC,GAAG9L,EAAE,OAAO,EAAE,OAAO6J,GAAGtJ,EAAE,OAAO2I,CAAC,GAAGG,EAAE,MAAM,QAAQ;AAC9E,kBAAM,CAACO,GAAGI,CAAC,IAAI+B,GAAG;AAAA,cAChB,IAAI7C;AAAA,cACJ,WAAWG,EAAE;AAAA,cACb,UAAU9I,EAAE;AAAA,YAC1B,CAAa;AACD,YAAAe,EAAE,EAAE,OAAOoJ,EAAE,aAAa,MAAMd,GAAG,OAAOI,EAAC,CAAE;AAAA,UAC9C;AACD,UAAAV,EAAE,UAAUc,IAAI,EAAE,UAAU,OAAO,SAASA,EAAE,sBAAqB,MAAO,MAAMX,EAAE,QAAQ3B,GAAG4C,EAAE,aAAapB,EAAE,KAAK;AAAA,QACpH,CAAA,EAAE,GAAG,QAAQ,CAACoB,MAAM;AACnB,gBAAMb,IAAIU,EAAEG,CAAC;AACb,WAACL,EAAE,SAASjK,EAAE,UAAUiK,EAAE,QAAQ,IAAIP,EAAG,KAAIN,EAAE,MAAM,MAAMK,EAAE,YAAYL,EAAE,MAAM,MAAMK,EAAE,aAAaR,EAAE,MAAM,WAAWE,EAAE,QAAQmB,EAAE,aAAajB,EAAE,QAAQ3B,GAAG4C,EAAE,aAAapB,EAAE,KAAK,GAAGa,EAAEN,CAAC;AAAA,QAC5L,CAAA,EAAE,GAAG,OAAO,CAACa,MAAM;AAClB,cAAItB,EAAE,QAAQ,IAAIiB,EAAE,QAAQ,IAAI,qBAAqBX,EAAE,KAAK,GAAGL,EAAE,MAAM,QAAQ;AAC7E,YAAAjI,EAAE,MAAMiI,EAAE,OAAO,IAAI,EAAE;AACvB,kBAAM,CAACQ,GAAGO,CAAC,IAAI2B,GAAG;AAAA,cAChB,IAAI7C;AAAA,cACJ,WAAWG,EAAE;AAAA,cACb,UAAU9I,EAAE;AAAA,YAC1B,CAAa;AACD,YAAAmB,EAAE,EAAE,OAAOgJ,EAAE,aAAa,MAAMb,GAAG,OAAOO,EAAC,CAAE;AAAA,UAC9C;AAAA,QACX,CAAS,EAAE,OAAO,CAACM,MAAM;AACf,gBAAMb,IAAIa,EAAE;AACZ,iBAAO,CAACA,EAAE,WAAW,CAAClL,EAAE,SAAS,CAACqM,GAAGhC,GAAG,IAAIrK,EAAE,KAAK,IAAIgL,EAAE,MAAM,EAAEC,KAAK,QAAQA,EAAE,eAAeoB,GAAGhC,GAAGY,EAAE,YAAYD,EAAE;AAAA,QACtH,CAAA,GAAG,GAAG,KAAKG,GAAG,KAAK;AAAA,MACrB;AAAA,IACF;AAAA,EACF,CAAA,GAAGvB;AACN;AACA,MAAMuL,KAAK,uBAAuBC,KAAK,uBAAuBC,KAAK,uBAAuBC,KAAK,CAAC,SAAS,KAAK,QAAQ,GAAGC,KAAK;AAAA,EAC5H,SAAS,EAAE,GAAG,GAAG,GAAG,GAAI;AAAA,EACxB,WAAW,EAAE,GAAG,GAAG,GAAG,EAAG;AAAA,EACzB,WAAW,EAAE,GAAG,IAAI,GAAG,EAAG;AAAA,EAC1B,YAAY,EAAE,GAAG,GAAG,GAAG,EAAG;AAC5B;AACA,SAASC,GAAG,GAAG;AACb,MAAIzV,GAAGC;AACP,QAAMyV,MAAMzV,KAAKD,IAAI,EAAE,iBAAiB,OAAO,SAASA,EAAE,KAAK,CAAC,MAAM,OAAO,SAASC,EAAE,CAAC,MAAM,EAAE,QAAQuI,IAAI9I,GAAGgW,EAAE,YAAY,IAAIA,EAAE,aAAa,iBAAiB,IAAI,IAAItO,IAAI1H,GAAGgW,EAAE,OAAO,IAAIA,EAAE,QAAQ,QAAQ,IAAI;AACpN,SAAO,CAAC,SAAS,UAAU,UAAU,EAAE,SAASA,KAAK,OAAO,SAASA,EAAE,QAAQ,KAAKlN,KAAK,CAAC,CAACpB;AAC7F;AACA,SAASuO,GAAG,GAAG;AACb,SAAO,EAAE,WAAW,EAAE,WAAW,EAAE;AACrC;AACA,SAASC,GAAG,GAAG,GAAG;AAChB,SAAO,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM;AAC1B,UAAM5V,IAAI,EAAE,MAAM,GAAG,EAAE,IAAI,CAACC,MAAMA,EAAE,OAAO,YAAa,CAAA;AACxD,WAAOD,EAAE,WAAW,IAAI,EAAE,QAAQ,KAAK,EAAE,IAAI,EAAE,IAAI,aAAa,GAAGA,EAAE,MAAM,CAACC,MAAM,EAAE,IAAIA,CAAC,CAAC;AAAA,EAC9F,CAAG;AACH;AACA,MAAM4V,KAAK,CAAC,GAAG,MAAM;AACnB,QAAM,IAAIvQ,MAAM,IAAIlF,GAAG,GAAG,CAAC,MAAM,EAAE,GAAGJ,IAAII,GAAG,EAAE,GAAGH,IAAIG,GAAmB,oBAAI,IAAG,CAAE;AAClF,SAAOM,GAAG,GAAG,MAAM;AACjB,SAAK,QAAQ,EAAE,EAAE,KAAK;AAAA,EACvB,CAAA,GAAGA;AAAAA,IACF,MAAM,GAAG,CAAC;AAAA,IACV,CAACD,MAAM;AACL,UAAI,KAAK,OAAO,EAAE,mBAAmB,OAAO8C,GAAG,GAAG,QAAQ,MAAM;AAC9D,UAAE,QAAQ;AAAA,MAClB,CAAO,GAAG9D,GAAGgB,CAAC,GAAG;AACT,UAAE,QAAQA;AACV;AAAA,MACD;AACD,YAAM,QAAQA,CAAC,MAAMA,IAAImV,GAAGnV,GAAGR,EAAE,KAAK,IAAIQ,MAAMgD;AAAA,QAC9ChD;AAAA,QACA,CAACE,MAAM;AACL,UAAAX,EAAE,QAAQ2V,GAAGhV,CAAC,GAAG,EAAE,CAACX,EAAE,SAASyV,GAAG9U,CAAC,OAAOA,EAAE,eAAc,GAAI,EAAE,QAAQ;AAAA,QACzE;AAAA,QACD,EAAE,WAAW,UAAW;AAAA,MAChC,GAAS8C;AAAA,QACDhD;AAAA,QACA,CAACE,MAAM;AACL,cAAI,EAAE,OAAO;AACX,gBAAI,CAACX,EAAE,SAASyV,GAAG9U,CAAC;AAClB;AACF,YAAAX,EAAE,QAAQ,IAAIC,EAAE,MAAM,MAAK,GAAI,EAAE,QAAQ;AAAA,UAC1C;AAAA,QACF;AAAA,QACD,EAAE,WAAW,QAAS;AAAA,MAC9B;AAAA,IACK;AAAA,IACD;AAAA,MACE,WAAW;AAAA,IACZ;AAAA,EACF,GAAE;AACL,GAAG6V,KAAKrK,GAAG;AAAA,EACT,MAAM;AAAA,EACN,cAAc,EAAE,MAAM,EAAG;AAAA,EACzB,OAAO,CAAC,QAAQ,QAAQ,MAAM,aAAa,cAAc,aAAa,eAAe,QAAQ,gBAAgB;AAAA,EAC7G,MAAM,GAAG;AACPsK,IAAAA,GAAGjO,IAAI,EAAE,EAAE;AACX,UAAM,IAAIO,GAAE,GAAI,IAAIqD,EAAE,GAAG,IAAI,GAAG,IAAIA,EAAE,GAAG,OAAO,GAAG1L,IAAI0L,EAAE,GAAG,gBAAgB,GAAGzL,IAAIyL,EAAE,GAAG,mBAAmB,GAAGjL,IAAIiL,EAAE,GAAG,sBAAsB,GAAG/K,IAAI+K,EAAE,GAAG,sBAAsB,GAAG9K,IAAI8K,EAAE,GAAG,OAAO,GAAG7K,IAAI6K,EAAE,GAAG,UAAU,GAAG,IAAIA,EAAE,GAAG,qBAAqB,GAAG3K,IAAI2K,EAAE,GAAG,kBAAkB,GAAG1K,IAAI0K,EAAE,GAAG,sBAAsB,GAAGjK,IAAIiK,EAAE,GAAG,uBAAuB,GAAGhK,IAAIgK,EAAE,GAAG,sBAAsB,GAAG/J,IAAI+J,EAAE,GAAG,cAAc,GAAG9J,IAAI8J,EAAE,GAAG,YAAY,GAAGzJ,IAAIyJ,EAAE,GAAG,sBAAsB,GAAG7J,IAAI6J,EAAE,GAAG,qBAAqB,GAAG5J,IAAI4J,EAAE,GAAG,iBAAiB,GAAG3J,IAAI2J,EAAE,GAAG,YAAY,GAAGxJ,IAAIwJ,EAAE,GAAG,UAAU,GAAGvJ,IAAI0K,GAAE,GAAIpD,IAAI9E,GAAG,GAAG,MAAM,GAAG+E,IAAI9E,EAAE,MAAM/D,EAAE,MAAM4I,EAAE,MAAM,UAAU,CAAC,GAAGE,IAAI/E,EAAE,MAAMmC,GAAG,CAAC0C,EAAE,KAAK,GAAG,EAAE,KAAK,CAAC,GAAGG,IAAIxJ,GAAE;AACnrB2V,IAAAA,GAAGhO,IAAI6B,CAAC;AACR,UAAM,EAAE,MAAMC,GAAG,IAAIC,EAAC,IAAKiD,GAAGtD,EAAE,OAAO7I,EAAE,KAAK,GAAGwK,KAAK+J,GAAG;AAAA,MACvD,IAAI,EAAE;AAAA,MACN,IAAIvL;AAAA,MACJ,UAAU,MAAM,CAAC,EAAE;AAAA,MACnB,YAAY,MAAM,EAAE;AAAA,MACpB,QAAQsB,GAAG;AACT,QAAArB,EAAE,UAAU,EAAE,GAAGqB,GAAG,eAAexJ,EAAE,MAAM+H,EAAE,KAAK,EAAC,CAAE;AAAA,MACtD;AAAA,MACD,OAAOyB,GAAG;AACR,QAAArB,EAAE,KAAK,EAAE,GAAGqB,GAAG,eAAexJ,EAAE,MAAM+H,EAAE,KAAK,EAAC,CAAE;AAAA,MACjD;AAAA,MACD,OAAOyB,GAAG;AACR,QAAArB,EAAE,SAAS,EAAE,GAAGqB,GAAG,eAAexJ,EAAE,MAAM+H,EAAE,KAAK,EAAC,CAAE;AAAA,MACrD;AAAA,IACP,CAAK,GAAGM,IAAInF,EAAE,MAAM6E,EAAE,MAAM,iBAAiB,WAAWA,EAAE,MAAM,MAAMA,EAAE,KAAK,IAAIA,EAAE,MAAM,KAAK,GAAGQ,IAAIrF,EAAE,MAAM;AACvG,YAAMsG,KAAKzB,EAAE,MAAM,iBAAiB,WAAWA,EAAE,MAAM,MAAMA,EAAE,KAAK,IAAIA,EAAE,MAAM,UAAU,CAAE,GAAE0B,IAAI1B,EAAE,MAAM,iBAAiB,WAAWA,EAAE,MAAM,MAAMA,EAAE,KAAK,IAAIA,EAAE,MAAM,OAAOa,IAAIb,EAAE,MAAM,kBAAkB,WAAWA,EAAE,MAAM,OAAOA,EAAE,KAAK,IAAIA,EAAE,MAAM;AACzP,aAAO0B,MAAMD,EAAE,QAAQ,OAAOC,KAAK,WAAWA,IAAI,GAAGA,CAAC,OAAOb,MAAMY,EAAE,SAAS,OAAOZ,KAAK,WAAWA,IAAI,GAAGA,CAAC,OAAOY;AAAA,IACrH,CAAA,GAAGhB,IAAI,MAAM,OAAOT,EAAE,MAAM,UAAUQ,EAAE,MAAM,UAAU,CAAC;AAC1D,WAAOxI,EAAE,MAAM,CAACyJ,MAAM;AACpB,MAAAA,EAAE,SAAS,EAAE,EAAE,KAAKf,EAAC;AAAA,IAC3B,CAAK,GAAG7I,GAAG,MAAM;AACX,QAAE,eAAe,QAAQsI,EAAE,KAAK;AAAA,IACtC,CAAK,GAAGoM,GAAG,MAAM;AACX,QAAE,eAAe,UAAUpM,EAAE,KAAK;AAAA,IACnC,CAAA,GAAGlJ;AAAAA,MACF,CAAC,MAAM+I,EAAE,MAAM,MAAM,MAAMA,EAAE,MAAM,gBAAgB,MAAMA,EAAE,MAAM,cAAc;AAAA,MAC/E,MAAM;AACJ,QAAAzI,EAAE,MAAM,CAAC,EAAE,IAAI,EAAE,IAAI,aAAa4I,EAAE,OAAO,aAAa,GAAE,CAAE,CAAC;AAAA,MAC9D;AAAA,MACD,EAAE,OAAO,MAAO;AAAA,IACtB,GAAOlJ;AAAAA,MACD;AAAA,QACE,MAAM+I,EAAE,MAAM,SAAS;AAAA,QACvB,MAAMA,EAAE,MAAM,SAAS;AAAA,QACvB,MAAM;AACJ,cAAIyB;AACJ,kBAAQA,IAAIxB,EAAE,UAAU,OAAO,SAASwB,EAAE,iBAAiB;AAAA,QAC5D;AAAA,QACD,MAAM;AACJ,cAAIA;AACJ,kBAAQA,IAAIxB,EAAE,UAAU,OAAO,SAASwB,EAAE,iBAAiB;AAAA,QAC5D;AAAA,QACD,MAAM;AACJ,cAAIA;AACJ,kBAAQA,IAAIxB,EAAE,UAAU,OAAO,SAASwB,EAAE,iBAAiB;AAAA,QAC5D;AAAA,QACD,MAAMhB,EAAG;AAAA,QACT,MAAMT,EAAE,MAAM;AAAA,QACd,MAAMA,EAAE,MAAM,WAAW;AAAA,QACzB,MAAMA,EAAE,MAAM,WAAW;AAAA,QACzB,MAAM;AACJ,cAAIyB;AACJ,kBAAQA,IAAIxB,EAAE,UAAU,OAAO,SAASwB,EAAE,WAAW;AAAA,QACtD;AAAA,QACD,MAAM;AACJ,cAAIA;AACJ,kBAAQA,IAAIxB,EAAE,UAAU,OAAO,SAASwB,EAAE,WAAW;AAAA,QACtD;AAAA,MACF;AAAA,MACD,CAAC,CAACA,GAAGC,GAAGb,GAAGO,GAAGR,GAAGI,CAAC,MAAM;AACtB,cAAMD,IAAI;AAAA,UACR,GAAGU;AAAA,UACH,GAAGC;AAAA,UACH,GAAGV,KAAKxI,EAAE,SAASwH,EAAE,MAAM,WAAW,MAAM;AAAA,QACtD;AACQ,QAAA9J,GAAG2K,CAAC,KAAK3K,GAAGkL,CAAC,IAAIpB,EAAE,MAAM,mBAAmBxC,GAAG,EAAE,GAAGqD,GAAG,GAAGO,GAAG,GAAGR,EAAG,GAAEG,CAAC,IAAIf,EAAE,MAAM,mBAAmBe;AAAA,MACtG;AAAA,MACD,EAAE,OAAO,OAAO,WAAW,GAAI;AAAA,IACrC,GAAO9J,GAAG,CAAC,MAAM+I,EAAE,MAAM,QAAQ,MAAM7H,EAAE,KAAK,GAAG,CAAC,CAACsJ,GAAGC,CAAC,GAAG,CAACb,GAAGO,CAAC,MAAM;AAC/D,OAACK,MAAMZ,KAAKa,MAAMN,MAAMb,EAAC;AAAA,IAC/B,CAAK,GAAGP,EAAE,MAAM,WAAW,YAAY,OAAOA,EAAE,MAAM,UAAU,YAAY,WAAWA,EAAE,MAAM,UAAUA,EAAE,MAAM,OAAO,UAAU,WAAWrH,GAAG,MAAMqH,EAAE,MAAM,WAAW,EAAE,KAAK,EAAE,EAAE,KAAKO,CAAC,IAAIA,EAAG,GAAE,MAAMgC;AAAAA,MACnM;AAAA,MACA;AAAA,QACE,KAAKpC;AAAA,QACL,WAAWH,EAAE,MAAM;AAAA,QACnB,OAAO;AAAA,UACL;AAAA,UACA,kBAAkB,EAAE,SAAS,KAAK,YAAY,EAAE,IAAI;AAAA,UACpD;AAAA,YACE,CAACzJ,EAAE,KAAK,GAAG,EAAE;AAAA,YACb,UAAUoL,MAAM,OAAO,SAASA,GAAG;AAAA,YACnC,UAAU3B,EAAE,MAAM;AAAA,YAClB,YAAY,EAAE;AAAA,UACf;AAAA,UACDM,EAAE;AAAA,QACH;AAAA,QACD,OAAO;AAAA,UACL,QAAQN,EAAE,MAAM,iBAAiB,KAAKS,EAAG;AAAA,UACzC,WAAW,aAAaT,EAAE,MAAM,iBAAiB,CAAC,MAAMA,EAAE,MAAM,iBAAiB,CAAC;AAAA,UAClF,eAAe,EAAE,cAAc,EAAE,YAAY,QAAQ;AAAA,UACrD,YAAYA,EAAE,MAAM,cAAc,YAAY;AAAA,UAC9C,GAAGQ,EAAE;AAAA,QACN;AAAA,QACD,UAAU,EAAE,YAAY,IAAI;AAAA,QAC5B,MAAM,EAAE,YAAY,WAAW;AAAA,QAC/B,oBAAoBpI,EAAE,QAAQ,SAAS,GAAGuT,EAAE,IAAI,EAAE,KAAK;AAAA,QACvD,cAAc3L,EAAE,MAAM;AAAA,QACtB,cAAcqB;AAAA,QACd,aAAaE;AAAA,QACb,cAAcJ;AAAA,QACd,eAAeL;AAAA,QACf,SAASU;AAAA,QACT,YAAYF;AAAA,QACZ,WAAW;AAAA,MACZ;AAAA,MACD;AAAA,QACEiB,GAAG,EAAE,SAAS,KAAKrK,EAAE,MAAM,UAAU,EAAE,MAAM;AAAA,UAC3C,IAAI8H,EAAE,MAAM;AAAA,UACZ,MAAMA,EAAE,MAAM;AAAA,UACd,MAAMA,EAAE,MAAM;AAAA,UACd,QAAQ,EAAE,GAAGA,EAAE,MAAM,QAAQ,GAAGK,EAAG;AAAA,UACnC,UAAU,CAAC,CAACL,EAAE,MAAM;AAAA,UACpB,UAAU,CAAC,CAACA,EAAE,MAAM;AAAA,UACpB,UAAU2B,GAAG;AAAA,UACb,aAAa,EAAE;AAAA,UACf,UAAU3B,EAAE,MAAM;AAAA,UAClB,YAAYA,EAAE,MAAM;AAAA,UACpB,kBAAkBA,EAAE,MAAM;AAAA,UAC1B,kBAAkBA,EAAE,MAAM;AAAA,UAC1B,QAAQA,EAAE,MAAM;AAAA,UAChB,QAAQA,EAAE,MAAM,iBAAiB;AAAA,UACjC,gBAAgBA,EAAE,MAAM;AAAA,UACxB,gBAAgBA,EAAE,MAAM;AAAA,UACxB,OAAOA,EAAE,MAAM;AAAA,UACf,YAAYA,EAAE,MAAM;AAAA,UACpB,uBAAuBU;AAAA,QACjC,CAAS;AAAA,MACF;AAAA,IACP;AACI,aAASH,IAAI;AACX,YAAMkB,IAAIzB,EAAE,MAAM;AAClB,MAAA1H,EAAE,UAAUmJ,EAAE,IAAIhJ,EAAE,MAAM,CAAC,IAAI,KAAK,MAAMgJ,EAAE,IAAIhJ,EAAE,MAAM,CAAC,CAAC,GAAGgJ,EAAE,IAAIhJ,EAAE,MAAM,CAAC,IAAI,KAAK,MAAMgJ,EAAE,IAAIhJ,EAAE,MAAM,CAAC,CAAC;AAC3G,YAAM,EAAE,kBAAkBiJ,GAAG,UAAUb,EAAG,IAAGsC,GAAGnD,EAAE,OAAOyB,GAAGtK,EAAE,MAAM,OAAOgB,EAAE,OAAO8H,EAAE,KAAK;AAC3F,OAACD,EAAE,MAAM,iBAAiB,MAAM0B,EAAE,KAAK1B,EAAE,MAAM,iBAAiB,MAAM0B,EAAE,OAAO1B,EAAE,MAAM,mBAAmB,EAAE,GAAGA,EAAE,MAAM,kBAAkB,GAAG0B,EAAG,KAAI1B,EAAE,MAAM,SAAS,MAAMa,EAAE,KAAKb,EAAE,MAAM,SAAS,MAAMa,EAAE,OAAOb,EAAE,MAAM,WAAWa;AAAA,IACrO;AACD,aAASH,IAAI;AACX,MAAAP,EAAE,SAAS5I,EAAE,MAAM,CAAC,EAAE,IAAI,EAAE,IAAI,aAAa4I,EAAE,OAAO,aAAa,GAAI,CAAA,CAAC;AAAA,IACzE;AACD,aAASkB,EAAEI,GAAG;AACZ,MAAAE,MAAM,QAAQA,GAAG,SAASvB,EAAE,WAAW,EAAE,OAAOqB,GAAG,MAAMzB,EAAE,OAAO,gBAAgBE,EAAE,MAAK,CAAE;AAAA,IAC5F;AACD,aAASqB,EAAEE,GAAG;AACZ,MAAAE,MAAM,QAAQA,GAAG,SAASvB,EAAE,UAAU,EAAE,OAAOqB,GAAG,MAAMzB,EAAE,OAAO,gBAAgBE,EAAE,MAAK,CAAE;AAAA,IAC3F;AACD,aAASiB,EAAEM,GAAG;AACZ,MAAAE,MAAM,QAAQA,GAAG,SAASvB,EAAE,WAAW,EAAE,OAAOqB,GAAG,MAAMzB,EAAE,OAAO,gBAAgBE,EAAE,MAAK,CAAE;AAAA,IAC5F;AACD,aAASY,EAAEW,GAAG;AACZ,aAAOrB,EAAE,YAAY,EAAE,OAAOqB,GAAG,MAAMzB,EAAE,OAAO,gBAAgBE,EAAE,MAAO,CAAA;AAAA,IAC1E;AACD,aAASoB,EAAEG,GAAG;AACZ,aAAOrB,EAAE,YAAY,EAAE,OAAOqB,GAAG,MAAMzB,EAAE,OAAO,gBAAgBE,EAAE,MAAO,CAAA;AAAA,IAC1E;AACD,aAASsB,GAAGC,GAAG;AACb,QAAE,eAAe,CAACjL,EAAE,SAAS,CAAC,EAAE,cAAciN;AAAA,QAC5CzD,EAAE;AAAA,QACF9I,EAAE;AAAA,QACFI,EAAE;AAAA,QACF,EAAE;AAAA,QACFN;AAAA,QACA;AAAA,QACAmJ,EAAE;AAAA,MACH,GAAEC,EAAE,MAAM,EAAE,OAAOqB,GAAG,MAAMzB,EAAE,OAAO,gBAAgBE,EAAE,MAAO,CAAA;AAAA,IAChE;AACD,aAAS,GAAGuB,GAAG;AACb,UAAIC;AACJ,UAAI,CAACsK,GAAGvK,CAAC;AACP,YAAIqK,GAAG,SAASrK,EAAE,GAAG,KAAK,EAAE,YAAY;AACtC,gBAAMZ,IAAIY,EAAE,QAAQ;AACpB,UAAAZ,OAAOa,IAAIvB,EAAE,UAAU,QAAQuB,EAAE,KAAM,IAAG+B;AAAA,YACxCzD,EAAE;AAAA,YACF9I,EAAE;AAAA,YACFI,EAAE;AAAA,YACF,EAAE;AAAA,YACFN;AAAA,YACA6J;AAAA,YACAV,EAAE;AAAA,UACd;AAAA,QACS;AACC,WAAC/H,EAAE,SAAS,EAAE,aAAa4H,EAAE,MAAM,YAAY+L,GAAGtK,EAAE,GAAG,MAAMpJ,EAAE,QAAQ,uBAAuBoJ,EAAE,IAAI,QAAQ,SAAS,EAAE,EAAE,YAAa,CAAA,sBAAsB,CAAC,CAACzB,EAAE,MAAM,SAAS,CAAC,QAAQ,CAAC,CAACA,EAAE,MAAM,SAAS,CAAC,IAAItH;AAAA,YAC9M;AAAA,cACE,GAAGqT,GAAGtK,EAAE,GAAG,EAAE;AAAA,cACb,GAAGsK,GAAGtK,EAAE,GAAG,EAAE;AAAA,YACd;AAAA,YACDA,EAAE;AAAA,UACd;AAAA,IACK;AAAA,EACF;AACH,CAAC,GAAG+K,KAAKH,IAAII,KAAK,CAAC,WAAW,GAAGC,KAAK,CAAC,SAAS,UAAU,KAAK,KAAK,MAAM,IAAI,GAAGC,KAAK,CAAC,GAAG,GAAGC,KAAK;AAAA,EAChG,MAAM;AAAA,EACN,cAAc,EAAE,MAAM,EAAG;AAC3B,GAAGC,KAAqB7K,gBAAAA,GAAG;AAAA,EACzB,GAAG4K;AAAA,EACH,OAAO;AAAA,IACL,GAAG;AAAA,IACH,GAAG;AAAA,IACH,OAAO;AAAA,IACP,YAAY,EAAE,SAAS,GAAI;AAAA,IAC3B,aAAa,EAAE,MAAM,SAAS,SAAS,GAAI;AAAA,IAC3C,cAAc,EAAE,SAAS,GAAI;AAAA,IAC7B,gBAAgB,EAAE,SAAS,CAAC,GAAG,CAAC,EAAG;AAAA,IACnC,qBAAqB,EAAE,SAAS,EAAG;AAAA,EACpC;AAAA,EACD,MAAM,GAAG;AACP,QAAI,IAAIjW,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,OAAO,GAAG,QAAQ,EAAG,CAAA;AAC9C,UAAM,IAAIA,GAAG,IAAI,GAAG,IAAIwE,EAAE,MAAM,aAAa,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC,GAAG;AACnGtD,IAAAA,GAAGtB,CAAC,GAAGU,GAAG,CAAC,MAAM,EAAE,GAAG,MAAM,EAAE,GAAG,GAAG,MAAM,EAAE,KAAK,GAAGV,CAAC;AACrD,aAASA,IAAI;AACX,UAAI,CAAC,EAAE;AACL;AACF,YAAMC,IAAI,EAAE,MAAM,QAAO;AACzB,OAACA,EAAE,UAAU,EAAE,MAAM,SAASA,EAAE,WAAW,EAAE,MAAM,YAAY,EAAE,QAAQA;AAAA,IAC1E;AACD,WAAO,CAACA,GAAGQ,OAAOkL,GAAE,GAAIC,GAAG,KAAK;AAAA,MAC9B,WAAW9L,EAAE,CAAC;AAAA,MACd,OAAO;AAAA,IACb,GAAO;AAAA,MACD,EAAE,eAAe6L,MAAMC,GAAG,QAAQ;AAAA,QAChC,KAAK;AAAA,QACL,OAAO;AAAA,QACP,OAAO,GAAG9L,EAAE,CAAC,EAAE,QAAQ,IAAI,EAAE,eAAe,CAAC,CAAC;AAAA,QAC9C,QAAQ,GAAGA,EAAE,CAAC,EAAE,SAAS,IAAI,EAAE,eAAe,CAAC,CAAC;AAAA,QAChD,GAAG,CAAC,EAAE,eAAe,CAAC;AAAA,QACtB,GAAG,CAAC,EAAE,eAAe,CAAC;AAAA,QACtB,OAAOyW,GAAG,EAAE,YAAY;AAAA,QACxB,IAAI,EAAE;AAAA,QACN,IAAI,EAAE;AAAA,MACd,GAAS,MAAM,IAAIJ,EAAE,KAAKK,GAAG,IAAI,EAAE;AAAA,MAC7BC,GAAG,QAAQC,GAAGzW,EAAE,QAAQ;AAAA,QACtB,SAAS;AAAA,QACT,KAAK;AAAA,QACL,OAAO;AAAA,QACP,GAAGH,EAAE,CAAC,EAAE,SAAS;AAAA,QACjB,IAAI;AAAA,QACJ,OAAO,EAAE;AAAA,MACjB,CAAO,GAAG;AAAA,QACFgM,GAAG7L,EAAE,QAAQ,WAAW,CAAE,GAAE,MAAM;AAAA,UAChCH,EAAEF,EAAE,EAAE,EAAE,KAAK,KAAK+L,MAAMC,GAAG+K,IAAI,EAAE,KAAK,EAAC,GAAI;AAAA,YACzCC,GAAGC,GAAG,EAAE,KAAK,GAAG,CAAC;AAAA,UAClB,GAAE,EAAE,MAAMlL,GAAI,GAAEmL,GAAGC,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,EAAG,CAAA;AAAA,QACrD,CAAS;AAAA,MACT,GAAS,IAAIX,EAAE;AAAA,IACf,GAAO,GAAGF,EAAE;AAAA,EACT;AACH,CAAC,GAAGc,KAAK,SAAS;AAAA,EAChB,MAAM;AAAA,EACN,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,qBAAqBhX;AAAA,EACrB,gBAAgBC;AAAA,EAChB,cAAcQ;AAAA,EACd,aAAaE,IAAI;AAAA,EACjB,YAAYC;AAAA,EACZ,aAAaC;AAAA,EACb,WAAW;AAAA,EACX,kBAAkBE,IAAI;AACxB,GAAG,EAAE,OAAOC,KAAK;AACf,SAAO;AAAA,IACLgL,GAAG,QAAQ;AAAA,MACT,OAAOhL,EAAE;AAAA,MACT,OAAO,CAAC,uBAAuBA,EAAE,KAAK,EAAE,KAAK,GAAG;AAAA,MAChD,GAAG;AAAA,MACH,cAAc;AAAA,MACd,gBAAgBH;AAAA,IACtB,CAAK;AAAA,IACDE,IAAIiL,GAAG,QAAQ;AAAA,MACb,GAAG;AAAA,MACH,MAAM;AAAA,MACN,kBAAkB;AAAA,MAClB,gBAAgBjL;AAAA,IACjB,CAAA,IAAI;AAAA,IACL,KAAKpB,GAAG,CAAC,KAAKA,GAAG,CAAC,IAAIqM,GAAGsK,IAAI;AAAA,MAC3B,GAAG;AAAA,MACH,GAAG;AAAA,MACH,OAAO;AAAA,MACP,YAAY1V;AAAA,MACZ,aAAaD;AAAA,MACb,cAAcF;AAAA,MACd,gBAAgBR;AAAA,MAChB,qBAAqBD;AAAA,IACtB,CAAA,IAAI;AAAA,EACT;AACA;AACAgX,GAAG,QAAQ;AAAA,EACT;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AACAA,GAAG,eAAe;AAClBA,GAAG,eAAe,EAAE,MAAM;AAC1B,MAAM,KAAKA;AACX,SAASC,GAAG;AAAA,EACV,SAAS;AAAA,EACT,SAAS;AAAA,EACT,SAAS;AAAA,EACT,SAAS;AACX,GAAG;AACD,QAAMjX,IAAI,KAAK,IAAI,IAAI,CAAC,IAAI,GAAGC,IAAI,IAAI,IAAI,IAAID,IAAI,IAAIA,GAAGS,IAAI,KAAK,IAAI,IAAI,CAAC,IAAI,GAAGE,IAAI,IAAI,IAAI,IAAIF,IAAI,IAAIA;AAC3G,SAAO,CAACR,GAAGU,GAAGX,GAAGS,CAAC;AACpB;AACA,SAASyW,GAAG;AAAA,EACV,SAAS;AAAA,EACT,SAAS;AAAA,EACT,SAAS;AAAA,EACT,SAAS;AAAA,EACT,gBAAgBlX;AAAA,EAChB,gBAAgBC;AAAA,EAChB,gBAAgBQ;AAAA,EAChB,gBAAgBE;AAClB,GAAG;AACD,QAAMC,IAAI,IAAI,QAAQZ,IAAI,QAAQS,IAAI,QAAQ,IAAI,OAAOI,IAAI,IAAI,QAAQZ,IAAI,QAAQU,IAAI,QAAQ,IAAI,OAAO,IAAI,KAAK,IAAIC,IAAI,CAAC,GAAGG,IAAI,KAAK,IAAIF,IAAI,CAAC;AACnJ,SAAO,CAACD,GAAGC,GAAG,GAAGE,CAAC;AACpB;AACA,SAASoW,GAAG,GAAG,GAAG;AAChB,SAAO,KAAK,IAAI,MAAM,IAAI,IAAI,KAAK,KAAK,KAAK,CAAC,CAAC;AACjD;AACA,SAASC,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAIpX,GAAG,GAAGC,EAAC,GAAI;AACxD,MAAIQ,GAAGE;AACP,UAAQ,GAAC;AAAA,IACP,KAAK6G,EAAE;AACL,MAAA/G,IAAI,IAAI0W,GAAG,IAAI,GAAGlX,CAAC,GAAGU,IAAI;AAC1B;AAAA,IACF,KAAK6G,EAAE;AACL,MAAA/G,IAAI,IAAI0W,GAAG,IAAI,GAAGlX,CAAC,GAAGU,IAAI;AAC1B;AAAA,IACF,KAAK6G,EAAE;AACL,MAAA/G,IAAI,GAAGE,IAAI,IAAIwW,GAAG,IAAInX,GAAGC,CAAC;AAC1B;AAAA,IACF,KAAKuH,EAAE;AACL,MAAA/G,IAAI,GAAGE,IAAI,IAAIwW,GAAGnX,IAAI,GAAGC,CAAC;AAC1B;AAAA,EACH;AACD,SAAO,CAACQ,GAAGE,CAAC;AACd;AACA,SAAS0W,GAAG;AAAA,EACV,SAAS;AAAA,EACT,SAAS;AAAA,EACT,gBAAgB,IAAI7P,EAAE;AAAA,EACtB,SAAS;AAAA,EACT,SAASxH;AAAA,EACT,gBAAgBC,IAAIuH,EAAE;AAAA,EACtB,WAAW/G,IAAI;AACjB,GAAG;AACD,QAAM,CAACE,GAAGC,CAAC,IAAIwW,GAAG;AAAA,IAChB,KAAK;AAAA,IACL,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAIpX;AAAA,IACJ,GAAGS;AAAA,EACJ,CAAA,GAAG,CAACI,GAAG,CAAC,IAAIuW,GAAG;AAAA,IACd,KAAKnX;AAAA,IACL,IAAI;AAAA,IACJ,IAAID;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,GAAGS;AAAA,EACP,CAAG,GAAG,CAACM,GAAGC,GAAGS,GAAGC,CAAC,IAAIwV,GAAG;AAAA,IACpB,SAAS;AAAA,IACT,SAAS;AAAA,IACT,SAAS;AAAA,IACT,SAASlX;AAAA,IACT,gBAAgBW;AAAA,IAChB,gBAAgBC;AAAA,IAChB,gBAAgBC;AAAA,IAChB,gBAAgB;AAAA,EACpB,CAAG;AACD,SAAO;AAAA,IACL,IAAI,CAAC,IAAI,CAAC,KAAKF,CAAC,IAAIC,CAAC,IAAIC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAIb,CAAC;AAAA,IACzCe;AAAA,IACAC;AAAA,IACAS;AAAA,IACAC;AAAA,EACJ;AACA;AACA,MAAM4V,KAAK,SAAS,EAAE,gBAAgB,IAAI9P,EAAE,QAAQ,gBAAgB,IAAIA,EAAE,KAAK,GAAG,EAAG,GAAE,EAAE,OAAO,KAAK;AACnG,QAAM,CAACxH,GAAGC,GAAGQ,CAAC,IAAI4W,GAAG;AAAA,IACnB,gBAAgB;AAAA,IAChB,gBAAgB;AAAA,IAChB,GAAG;AAAA,EACP,CAAG;AACD,SAAOrL,GAAG,IAAI;AAAA,IACZ,MAAMhM;AAAA,IACN,QAAQC;AAAA,IACR,QAAQQ;AAAA,IACR,GAAG;AAAA,IACH,GAAG;AAAA,EACP,CAAG;AACH;AACA6W,GAAG,QAAQ;AAAA,EACT;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AACAA,GAAG,eAAe;AAClBA,GAAG,eAAe,EAAE,MAAM;AAC1B,MAAMC,KAAKD;AACX,SAASE,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAIxX,EAAC,GAAI;AAClD,MAAIC,GAAGQ;AACP,UAAQ,GAAC;AAAA,IACP,KAAK+G,EAAE;AAAA,IACP,KAAKA,EAAE;AACL,MAAAvH,IAAI,OAAO,IAAI,IAAIQ,IAAI;AACvB;AAAA,IACF,KAAK+G,EAAE;AAAA,IACP,KAAKA,EAAE;AACL,MAAAvH,IAAI,GAAGQ,IAAI,OAAO,IAAIT;AACtB;AAAA,EACH;AACD,SAAO,CAACC,GAAGQ,CAAC;AACd;AACA,SAASgX,GAAG;AAAA,EACV,SAAS;AAAA,EACT,SAAS;AAAA,EACT,gBAAgB,IAAIjQ,EAAE;AAAA,EACtB,SAAS;AAAA,EACT,SAASxH;AAAA,EACT,gBAAgBC,IAAIuH,EAAE;AACxB,GAAG;AACD,QAAM,CAAC/G,GAAGE,CAAC,IAAI6W,GAAG;AAAA,IAChB,KAAK;AAAA,IACL,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAIxX;AAAA,EACL,CAAA,GAAG,CAACY,GAAGC,CAAC,IAAI2W,GAAG;AAAA,IACd,KAAKvX;AAAA,IACL,IAAI;AAAA,IACJ,IAAID;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,EACR,CAAG,GAAG,CAAC,GAAGe,GAAGC,GAAGS,CAAC,IAAIyV,GAAG;AAAA,IACpB,SAAS;AAAA,IACT,SAAS;AAAA,IACT,SAAS;AAAA,IACT,SAASlX;AAAA,IACT,gBAAgBS;AAAA,IAChB,gBAAgBE;AAAA,IAChB,gBAAgBC;AAAA,IAChB,gBAAgBC;AAAA,EACpB,CAAG;AACD,SAAO;AAAA,IACL,IAAI,CAAC,IAAI,CAAC,KAAKJ,CAAC,IAAIE,CAAC,IAAIC,CAAC,IAAIC,CAAC,IAAI,CAAC,IAAIb,CAAC;AAAA,IACzC;AAAA,IACAe;AAAA,IACAC;AAAA,IACAS;AAAA,EACJ;AACA;AACA,MAAMiW,KAAK,SAAS,EAAE,gBAAgB,IAAIlQ,EAAE,QAAQ,gBAAgB,IAAIA,EAAE,KAAK,GAAG,EAAG,GAAE,EAAE,OAAO,KAAK;AACnG,QAAM,CAACxH,GAAGC,GAAGQ,CAAC,IAAIgX,GAAG;AAAA,IACnB,gBAAgB;AAAA,IAChB,gBAAgB;AAAA,IAChB,GAAG;AAAA,EACP,CAAG;AACD,SAAOzL,GAAG,IAAI;AAAA,IACZ,MAAMhM;AAAA,IACN,QAAQC;AAAA,IACR,QAAQQ;AAAA,IACR,GAAG;AAAA,IACH,GAAG;AAAA,EACP,CAAG;AACH;AACAiX,GAAG,QAAQ;AAAA,EACT;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AACAA,GAAG,eAAe;AAClBA,GAAG,eAAe,EAAE,MAAM;AAC1B,MAAMC,KAAKD,IAAIE,KAAK;AAAA,EAClB,CAACpQ,EAAE,IAAI,GAAG,EAAE,GAAG,IAAI,GAAG,EAAG;AAAA,EACzB,CAACA,EAAE,KAAK,GAAG,EAAE,GAAG,GAAG,GAAG,EAAG;AAAA,EACzB,CAACA,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAI;AAAA,EACxB,CAACA,EAAE,MAAM,GAAG,EAAE,GAAG,GAAG,GAAG,EAAG;AAC5B;AACA,SAASqQ,GAAG;AAAA,EACV,QAAQ;AAAA,EACR,gBAAgB,IAAIrQ,EAAE;AAAA,EACtB,QAAQ;AACV,GAAG;AACD,SAAO,MAAMA,EAAE,QAAQ,MAAMA,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,GAAG,GAAG,EAAC,IAAK,EAAE,GAAG,IAAI,GAAG,EAAC,IAAK,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,GAAG,GAAG,EAAC,IAAK,EAAE,GAAG,GAAG,GAAG;AAChI;AACA,SAASsQ,GAAG,GAAG,GAAG;AAChB,SAAO,KAAK,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,EAAE,IAAI,EAAE,MAAM,CAAC;AACtD;AACA,SAASC,GAAG;AAAA,EACV,QAAQ;AAAA,EACR,gBAAgB,IAAIvQ,EAAE;AAAA,EACtB,QAAQ;AAAA,EACR,gBAAgB,IAAIA,EAAE;AAAA,EACtB,QAAQxH;AAAA,EACR,QAAQC;AACV,GAAG;AACD,QAAMQ,IAAImX,GAAG,CAAC,GAAGjX,IAAIiX,GAAG,CAAC,GAAGhX,IAAI,EAAE,GAAG,EAAE,IAAIH,EAAE,IAAIR,GAAG,GAAG,EAAE,IAAIQ,EAAE,IAAIR,EAAG,GAAEY,IAAI,EAAE,GAAG,EAAE,IAAIF,EAAE,IAAIV,GAAG,GAAG,EAAE,IAAIU,EAAE,IAAIV,EAAG,GAAE,IAAI4X,GAAG;AAAA,IACzH,QAAQjX;AAAA,IACR,gBAAgB;AAAA,IAChB,QAAQC;AAAA,EACT,CAAA,GAAGE,IAAI,EAAE,MAAM,IAAI,MAAM,KAAKC,IAAI,EAAED,CAAC;AACtC,MAAIU,GAAGC,GAAGC;AACV,QAAM,CAACC,GAAGK,GAAGJ,GAAGC,CAAC,IAAImV,GAAG;AAAA,IACtB,SAAS,EAAE;AAAA,IACX,SAAS,EAAE;AAAA,IACX,SAAS,EAAE;AAAA,IACX,SAAS,EAAE;AAAA,EACf,CAAG;AACD,MAAIxW,EAAEM,CAAC,IAAIJ,EAAEI,CAAC,MAAM,IAAI;AACtB,IAAAW,IAAI1B,EAAE,KAAK4B,GAAGD,IAAI3B,EAAE,KAAKiC;AACzB,UAAMC,IAAI;AAAA,MACR,EAAE,GAAGR,GAAG,GAAGd,EAAE,EAAG;AAAA,MAChB,EAAE,GAAGc,GAAG,GAAGb,EAAE,EAAG;AAAA,IACjB,GAAEsB,IAAI;AAAA,MACL,EAAE,GAAGvB,EAAE,GAAG,GAAGe,EAAG;AAAA,MAChB,EAAE,GAAGd,EAAE,GAAG,GAAGc,EAAG;AAAA,IACtB;AACI,IAAAlB,EAAEM,CAAC,MAAMC,IAAIS,IAAIV,MAAM,MAAMmB,IAAIC,IAAIV,IAAIV,MAAM,MAAMoB,IAAID;AAAA,EAC7D,OAAS;AACL,UAAMA,IAAI,CAAC,EAAE,GAAGtB,EAAE,GAAG,GAAGC,EAAE,EAAG,CAAA,GAAGsB,IAAI,CAAC,EAAE,GAAGtB,EAAE,GAAG,GAAGD,EAAE,EAAC,CAAE;AACvD,QAAIG,MAAM,MAAMU,IAAIhB,EAAE,MAAMO,IAAImB,IAAID,IAAIT,IAAIhB,EAAE,MAAMO,IAAIkB,IAAIC,GAAG,MAAM,GAAG;AACtE,YAAMsH,IAAI1I,MAAM,MAAM,MAAM,KAAK2I,IAAIjJ,EAAEM,CAAC,MAAMJ,EAAE8I,CAAC,GAAGE,IAAI/I,EAAE6I,CAAC,IAAI5I,EAAE4I,CAAC,GAAGG,IAAIhJ,EAAE6I,CAAC,IAAI5I,EAAE4I,CAAC;AACnF,OAAChJ,EAAEM,CAAC,MAAM,MAAM,CAAC2I,KAAKC,KAAKD,KAAKE,MAAMnJ,EAAEM,CAAC,MAAM,MAAM,CAAC2I,KAAKE,KAAKF,KAAKC,QAAQlI,IAAIV,MAAM,MAAMmB,IAAIC;AAAA,IAClG;AACD,IAAAT,IAAID,EAAE,CAAC,EAAE,GAAGE,IAAIF,EAAE,CAAC,EAAE;AAAA,EACtB;AACD,SAAO,CAAC,CAAC,GAAGb,GAAG,GAAGa,GAAGZ,GAAG,CAAC,GAAGa,GAAGC,GAAGE,GAAGC,CAAC;AACxC;AACA,SAASkW,GAAG,GAAG,GAAG,GAAG,GAAG;AACtB,QAAMhY,IAAI,KAAK,IAAI8X,GAAG,GAAG,CAAC,IAAI,GAAGA,GAAG,GAAG,CAAC,IAAI,GAAG,CAAC,GAAG,EAAE,GAAG7X,GAAG,GAAGQ,EAAG,IAAG;AACpE,MAAI,EAAE,MAAMR,KAAKA,MAAM,EAAE,KAAK,EAAE,MAAMQ,KAAKA,MAAM,EAAE;AACjD,WAAO,IAAIR,CAAC,IAAIQ,CAAC;AACnB,MAAI,EAAE,MAAMA,GAAG;AACb,UAAMI,IAAI,EAAE,IAAI,EAAE,IAAI,KAAK,GAAG,IAAI,EAAE,IAAI,EAAE,IAAI,IAAI;AAClD,WAAO,KAAKZ,IAAID,IAAIa,CAAC,IAAIJ,CAAC,KAAKR,CAAC,IAAIQ,CAAC,IAAIR,CAAC,IAAIQ,IAAIT,IAAI,CAAC;AAAA,EACxD;AACD,QAAMW,IAAI,EAAE,IAAI,EAAE,IAAI,IAAI,IAAIC,IAAI,EAAE,IAAI,EAAE,IAAI,KAAK;AACnD,SAAO,KAAKX,CAAC,IAAIQ,IAAIT,IAAIY,CAAC,KAAKX,CAAC,IAAIQ,CAAC,IAAIR,IAAID,IAAIW,CAAC,IAAIF,CAAC;AACzD;AACA,SAASwX,GAAG;AAAA,EACV,SAAS;AAAA,EACT,SAAS;AAAA,EACT,gBAAgB,IAAIzQ,EAAE;AAAA,EACtB,SAAS;AAAA,EACT,SAASxH;AAAA,EACT,gBAAgBC,IAAIuH,EAAE;AAAA,EACtB,cAAc/G,IAAI;AAAA,EAClB,SAASE;AAAA,EACT,SAASC;AAAA,EACT,QAAQC,IAAI;AACd,GAAG;AACD,QAAM,CAAC,GAAGE,GAAGC,GAAGS,GAAGC,CAAC,IAAIqW,GAAG;AAAA,IACzB,QAAQ,EAAE,GAAG,GAAG,GAAG,EAAG;AAAA,IACtB,gBAAgB;AAAA,IAChB,QAAQ,EAAE,GAAG,GAAG,GAAG/X,EAAG;AAAA,IACtB,gBAAgBC;AAAA,IAChB,QAAQ,EAAE,GAAGU,GAAG,GAAGC,EAAG;AAAA,IACtB,QAAQC;AAAA,EACZ,CAAG;AACD,SAAO,CAAC,EAAE,OAAO,CAAC,GAAGoB,GAAGJ,MAAM;AAC5B,QAAIC;AACJ,WAAOD,IAAI,KAAKA,IAAI,EAAE,SAAS,IAAIC,IAAIkW,GAAG,EAAEnW,IAAI,CAAC,GAAGI,GAAG,EAAEJ,IAAI,CAAC,GAAGpB,CAAC,IAAIqB,IAAI,GAAGD,MAAM,IAAI,MAAM,GAAG,GAAGI,EAAE,CAAC,IAAIA,EAAE,CAAC,IAAI,KAAKH,GAAG;AAAA,EAC7H,GAAK,EAAE,GAAGf,GAAGC,GAAGS,GAAGC,CAAC;AACpB;AACA,MAAMwW,KAAK,SAAS,EAAE,gBAAgB,IAAI1Q,EAAE,QAAQ,gBAAgB,IAAIA,EAAE,KAAK,GAAG,EAAG,GAAE,EAAE,OAAO,KAAK;AACnG,QAAM,CAACxH,GAAGC,GAAGQ,CAAC,IAAIwX,GAAG;AAAA,IACnB,gBAAgB;AAAA,IAChB,gBAAgB;AAAA,IAChB,GAAG;AAAA,EACP,CAAG;AACD,SAAOjM,GAAG,IAAI;AAAA,IACZ,MAAMhM;AAAA,IACN,QAAQC;AAAA,IACR,QAAQQ;AAAA,IACR,GAAG;AAAA,IACH,GAAG;AAAA,EACP,CAAG;AACH;AACAyX,GAAG,QAAQ;AAAA,EACT;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AACAA,GAAG,eAAe;AAClBA,GAAG,eAAe,EAAE,MAAM;AAC1B,MAAMC,KAAKD,IAAIE,KAAK,SAAS,GAAG,EAAE,OAAO,KAAK;AAC5C,SAAOpM,GAAGmM,IAAI,EAAE,GAAG,GAAG,GAAG,GAAG,cAAc,EAAC,CAAE;AAC/C;AACAC,GAAG,QAAQ;AAAA,EACT;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AACAA,GAAG,eAAe;AAClBA,GAAG,eAAe,EAAE,MAAM;AAC1B,MAAMC,KAAKD;AACX,SAASE,GAAG;AAAA,EACV,SAAS;AAAA,EACT,SAAS;AAAA,EACT,SAAS;AAAA,EACT,SAAS;AACX,GAAG;AACD,QAAM,CAACtY,GAAGC,GAAGQ,GAAGE,CAAC,IAAIsW,GAAG;AAAA,IACtB,SAAS;AAAA,IACT,SAAS;AAAA,IACT,SAAS;AAAA,IACT,SAAS;AAAA,EACb,CAAG;AACD,SAAO,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAIjX,GAAGC,GAAGQ,GAAGE,CAAC;AAC9C;AACA,MAAM4X,KAAK,SAAS,GAAG,EAAE,OAAO,EAAC,GAAI;AACnC,QAAM,CAAC,GAAG,GAAGvY,CAAC,IAAIsY,GAAG,CAAC;AACtB,SAAOtM,GAAG,IAAI;AAAA,IACZ,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,QAAQhM;AAAA,IACR,GAAG;AAAA,IACH,GAAG;AAAA,EACP,CAAG;AACH;AACAuY,GAAG,QAAQ;AAAA,EACT;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AACAA,GAAG,eAAe;AAClBA,GAAG,eAAe,EAAE,MAAM;AAC1B,MAAMC,KAAKD;AACX,SAASE,GAAG,GAAG,GAAG,GAAG;AACnB,SAAO,MAAMjR,EAAE,OAAO,IAAI,IAAI,MAAMA,EAAE,QAAQ,IAAI,IAAI;AACxD;AACA,SAASkR,GAAG,GAAG,GAAG,GAAG;AACnB,SAAO,MAAMlR,EAAE,MAAM,IAAI,IAAI,MAAMA,EAAE,SAAS,IAAI,IAAI;AACxD;AACA,MAAMmR,KAAK,SAAS;AAAA,EAClB,QAAQ,IAAI;AAAA,EACZ,SAAS,IAAI;AAAA,EACb,SAAS,IAAI;AAAA,EACb,UAAU,IAAInR,EAAE;AAAA,EAChB,MAAMxH;AACR,GAAG;AACD,SAAOgM,GAAG,UAAU;AAAA,IAClB,OAAO,+CAA+ChM,CAAC;AAAA,IACvD,IAAIyY,GAAG,GAAG,GAAG,CAAC;AAAA,IACd,IAAIC,GAAG,GAAG,GAAG,CAAC;AAAA,IACd,GAAG;AAAA,IACH,QAAQ;AAAA,IACR,MAAM;AAAA,EACV,CAAG;AACH;AACAC,GAAG,QAAQ,CAAC,UAAU,WAAW,WAAW,YAAY,MAAM;AAC9DA,GAAG,eAAe,EAAE,MAAM;AAC1B,MAAMC,KAAKD;AACX,SAASE,KAAK;AACZ,SAAO;AAAA,IACL,aAAahU,EAAG;AAAA,IAChB,OAAOA,EAAG;AAAA,IACV,YAAYA,EAAG;AAAA,IACf,WAAWA,EAAG;AAAA,IACd,YAAYA,EAAG;AAAA,IACf,aAAaA,EAAG;AAAA,IAChB,aAAaA,EAAG;AAAA,IAChB,QAAQA,EAAG;AAAA,IACX,WAAWA,EAAG;AAAA,EAClB;AACA;AACA,SAASiU,GAAG,GAAG,GAAG;AAChB,QAAM,IAAID;AACV,SAAO,EAAE,YAAY,GAAG,CAAC,MAAM;AAC7B,QAAI7Y,GAAGC;AACP,MAAE,gBAAgB,CAAC,IAAIA,KAAKD,IAAI,EAAE,WAAW,OAAO,SAASA,EAAE,gBAAgB,QAAQC,EAAE,KAAKD,GAAG,CAAC;AAAA,EACnG,CAAA,GAAG,EAAE,MAAM,GAAG,CAAC,MAAM;AACpB,QAAIA,GAAGC;AACP,MAAE,UAAU,CAAC,IAAIA,KAAKD,IAAI,EAAE,WAAW,OAAO,SAASA,EAAE,UAAU,QAAQC,EAAE,KAAKD,GAAG,CAAC;AAAA,EACvF,CAAA,GAAG,EAAE,WAAW,GAAG,CAAC,MAAM;AACzB,QAAIA,GAAGC;AACP,MAAE,eAAe,CAAC,IAAIA,KAAKD,IAAI,EAAE,WAAW,OAAO,SAASA,EAAE,eAAe,QAAQC,EAAE,KAAKD,GAAG,CAAC;AAAA,EACjG,CAAA,GAAG,EAAE,UAAU,GAAG,CAAC,MAAM;AACxB,QAAIA,GAAGC;AACP,MAAE,cAAc,CAAC,IAAIA,KAAKD,IAAI,EAAE,WAAW,OAAO,SAASA,EAAE,cAAc,QAAQC,EAAE,KAAKD,GAAG,CAAC;AAAA,EAC/F,CAAA,GAAG,EAAE,WAAW,GAAG,CAAC,MAAM;AACzB,QAAIA,GAAGC;AACP,MAAE,eAAe,CAAC,IAAIA,KAAKD,IAAI,EAAE,WAAW,OAAO,SAASA,EAAE,eAAe,QAAQC,EAAE,KAAKD,GAAG,CAAC;AAAA,EACjG,CAAA,GAAG,EAAE,YAAY,GAAG,CAAC,MAAM;AAC1B,QAAIA,GAAGC;AACP,MAAE,gBAAgB,CAAC,IAAIA,KAAKD,IAAI,EAAE,WAAW,OAAO,SAASA,EAAE,gBAAgB,QAAQC,EAAE,KAAKD,GAAG,CAAC;AAAA,EACnG,CAAA,GAAG,EAAE,YAAY,GAAG,CAAC,MAAM;AAC1B,QAAIA,GAAGC;AACP,MAAE,gBAAgB,CAAC,IAAIA,KAAKD,IAAI,EAAE,WAAW,OAAO,SAASA,EAAE,gBAAgB,QAAQC,EAAE,KAAKD,GAAG,CAAC;AAAA,EACnG,CAAA,GAAG,EAAE,OAAO,GAAG,CAAC,MAAM;AACrB,QAAIA,GAAGC;AACP,MAAE,WAAW,CAAC,IAAIA,KAAKD,IAAI,EAAE,WAAW,OAAO,SAASA,EAAE,WAAW,QAAQC,EAAE,KAAKD,GAAG,CAAC;AAAA,EACzF,CAAA,GAAG,EAAE,UAAU,GAAG,CAAC,MAAM;AACxB,QAAIA,GAAGC;AACP,MAAE,cAAc,CAAC,IAAIA,KAAKD,IAAI,EAAE,WAAW,OAAO,SAASA,EAAE,cAAc,QAAQC,EAAE,KAAKD,GAAG,CAAC;AAAA,EAC/F,CAAA,GAAG,OAAO,QAAQ,CAAC,EAAE;AAAA,IACpB,CAAC,GAAG,CAACA,GAAGC,CAAC,OAAO,EAAE,KAAKD,CAAC,IAAIC,EAAE,SAAS,EAAE,GAAGD,CAAC,IAAIC,EAAE,IAAI;AAAA,IACvD,EAAE,MAAM,CAAA,GAAI,IAAI,GAAI;AAAA,EACxB;AACA;AACA,MAAM8Y,KAAKtN,GAAG;AAAA,EACZ,MAAM;AAAA,EACN,cAAc,EAAE,MAAM,EAAG;AAAA,EACzB,OAAO,CAAC,QAAQ,QAAQ,MAAM,aAAa,cAAc,aAAa,MAAM;AAAA,EAC5E,MAAM,GAAG;AACP,UAAM;AAAA,MACJ,IAAI;AAAA,MACJ,kBAAkB;AAAA,MAClB,gBAAgB;AAAA,MAChB,mBAAmBzL;AAAA,MACnB,OAAOC;AAAA,MACP,sBAAsBQ;AAAA,MACtB,gBAAgBE;AAAA,MAChB,cAAcC;AAAA,MACd,qBAAqBC;AAAA,MACrB,UAAU;AAAA,MACV,UAAUE;AAAA,MACV,mBAAmBC;AAAA,IACpB,IAAGqH,GAAI,GAAE5G,IAAIqX,GAAG,EAAE,MAAM7Y,CAAC,GAAGyB,IAAIiD,GAAG,GAAG,MAAM;AAC7C,QAAIhD,IAAIvB,GAAG,EAAE,GAAGwB,IAAIxB,GAAG,EAAE;AACzB,UAAM6B,IAAI7B,GAAG,EAAE,GAAGyB,IAAIzB,GAAG,IAAI,GAAG0B,IAAI1B,GAAG,QAAQ,GAAG2B,IAAI3B,GAAE;AACxD2V,IAAAA,GAAG/N,IAAI,EAAE,EAAE,GAAG+N,GAAG9N,IAAIlG,CAAC;AACtB,UAAMG,IAAI0C,EAAE,MAAMlD,EAAE,MAAM,iBAAiB,WAAWA,EAAE,MAAM,MAAMA,EAAE,KAAK,IAAIA,EAAE,MAAM,KAAK,GAAGS,IAAIyC,EAAE,MAAMlD,EAAE,MAAM,iBAAiB,WAAWA,EAAE,MAAM,MAAMA,EAAE,KAAK,IAAIA,EAAE,MAAM,KAAK,GAAG,EAAE,mBAAmB+H,EAAG,IAAGD,GAAG;AAAA,MACpN,QAAQvH;AAAA,MACR,UAAUJ;AAAA,MACV,MAAMC;AAAA,MACN,mBAAmBd,EAAE;AAAA,MACrB,iBAAiBc;AAAA,MACjB,cAAc8H;AAAA,MACd,iBAAiBC;AAAA,IACvB,CAAK;AACD,WAAO,MAAM;AACX,YAAMU,IAAIxJ,EAAEW,EAAE,MAAM,MAAM,GAAGqJ,IAAIhK,EAAEW,EAAE,MAAM,MAAM;AACjD,UAAI,CAAC6I,KAAK,CAACQ,KAAK,CAACrJ,EAAE;AACjB,eAAO;AACT,UAAIuJ;AACJ,QAAE,UAAUtD,GAAG,SAASsD,KAAKV,EAAE,aAAa,SAASU,KAAK,CAAC,GAAGV,EAAE,aAAa,UAAU,CAAE,GAAE,GAAGA,EAAE,aAAa,UAAU,CAAA,CAAE;AACzH,YAAM,KAAK7B,GAAGuC,IAAIvJ,EAAE,MAAM,YAAY;AACtC,UAAIwJ;AACJ,QAAE,UAAUvD,GAAG,SAASuD,IAAIH,EAAE,aAAa,SAASG,IAAI,CAAC,GAAGH,EAAE,aAAa,UAAU,CAAE,GAAE,GAAGA,EAAE,aAAa,UAAU,CAAA,CAAE;AACvH,YAAMI,IAAIzC,GAAGwC,GAAGxJ,EAAE,MAAM,YAAY,GAAG4I,IAAI,KAAK,GAAG,WAAW9C,EAAE,QAAQqD,IAAIM,IAAIA,EAAE,WAAW3D,EAAE,KAAK,EAAE,SAAS6C,GAAG,SAASI,GAAG,SAASD,GAAG,SAASE,EAAG,IAAG/B;AAAA,QACvJ4B;AAAA,QACA;AAAA,QACAD;AAAA,QACAS;AAAA,QACAI;AAAA,QACAN;AAAA,MACR;AACM,aAAOnJ,EAAE,MAAM,UAAU2I,GAAG3I,EAAE,MAAM,UAAU+I,GAAG/I,EAAE,MAAM,UAAUgJ,GAAGhJ,EAAE,MAAM,UAAU8I,GAAGwB;AAAAA,QACzF;AAAA,QACA;AAAA,UACE,KAAKjK;AAAA,UACL,KAAK,EAAE;AAAA,UACP,WAAW,EAAE;AAAA,UACb,OAAO;AAAA,YACL;AAAA,YACA,kBAAkB,EAAE,SAAS,KAAK,YAAY,EAAE,IAAI;AAAA,YACpDpB,EAAE;AAAA,YACFuB,EAAE;AAAA,YACF;AAAA,cACE,UAAUP,EAAE;AAAA,cACZ,UAAUD,EAAE,MAAM;AAAA,cAClB,UAAUA,EAAE,MAAM;AAAA,cAClB,UAAU,CAAC,EAAE;AAAA,YACd;AAAA,UACF;AAAA,UACD,SAAS0J;AAAA,UACT,eAAerB;AAAA,UACf,YAAYE;AAAA,UACZ,cAAcC;AAAA,UACd,aAAaF;AAAA,UACb,cAAcG;AAAA,UACd,WAAW,EAAE,YAAYS,IAAI;AAAA,UAC7B,UAAU,EAAE,YAAY,IAAI;AAAA,UAC5B,cAAclJ,EAAE,MAAM,cAAc,OAAO,SAASA,EAAE,MAAM,aAAa,aAAaA,EAAE,MAAM,MAAM,OAAOA,EAAE,MAAM,MAAM;AAAA,UACzH,oBAAoB,EAAE,YAAY,GAAG2T,EAAE,IAAI,CAAC,KAAK;AAAA,UACjD,MAAM,EAAE,YAAY,WAAW;AAAA,QAChC;AAAA,QACD;AAAA,UACEzT,EAAE,QAAQ,OAAOoK,GAAG,EAAE,SAAS,KAAKpL,EAAE,MAAM,UAAU,EAAE,MAAM;AAAA,YAC5D,IAAI,EAAE;AAAA,YACN,YAAY2J;AAAA,YACZ,YAAYQ;AAAA,YACZ,QAAQrJ,EAAE,MAAM;AAAA,YAChB,QAAQA,EAAE,MAAM;AAAA,YAChB,MAAMA,EAAE,MAAM;AAAA,YACd,WAAW,EAAE;AAAA,YACb,UAAUA,EAAE,MAAM;AAAA,YAClB,UAAUA,EAAE,MAAM;AAAA,YAClB,OAAOA,EAAE,MAAM;AAAA,YACf,YAAYA,EAAE,MAAM;AAAA,YACpB,aAAaA,EAAE,MAAM;AAAA,YACrB,cAAcA,EAAE,MAAM;AAAA,YACtB,gBAAgBA,EAAE,MAAM;AAAA,YACxB,qBAAqBA,EAAE,MAAM;AAAA,YAC7B,MAAMA,EAAE,MAAM;AAAA,YACd,QAAQ,EAAE,GAAGA,EAAE,MAAM,QAAQ,GAAGD,EAAE,GAAI;AAAA,YACtC,OAAOU,EAAE;AAAA,YACT,aAAa,QAAQgF,GAAGzF,EAAE,MAAM,aAAa,CAAC,CAAC;AAAA,YAC/C,WAAW,QAAQyF,GAAGzF,EAAE,MAAM,WAAW,CAAC,CAAC;AAAA,YAC3C,gBAAgB4I;AAAA,YAChB,gBAAgBO;AAAA,YAChB,SAASR;AAAA,YACT,SAASI;AAAA,YACT,SAASC;AAAA,YACT,SAASF;AAAA,YACT,gBAAgB9I,EAAE,MAAM;AAAA,YACxB,gBAAgBA,EAAE,MAAM;AAAA,YACxB,kBAAkBA,EAAE,MAAM;AAAA,UACtC,CAAW;AAAA,UACD;AAAA,YACE,EAAE,cAAc,YAAY,EAAE,cAAc,KAAK;AAAA,cAC/CsK;AAAAA,gBACE;AAAA,gBACA;AAAA,kBACE,aAAalB;AAAA,kBACb,cAAcpB;AAAA,kBACd,YAAYC;AAAA,gBACb;AAAA,gBACDqC,GAAG4M,IAAI;AAAA,kBACL,UAAUtO;AAAA,kBACV,SAASD;AAAA,kBACT,SAASI;AAAA,kBACT,QAAQzK,EAAE;AAAA,kBACV,MAAM;AAAA,kBACN,aAAa;AAAA,gBAC/B,CAAiB;AAAA,cACF;AAAA,YACf,IAAgB;AAAA,YACJ,EAAE,cAAc,YAAY,EAAE,cAAc,KAAK;AAAA,cAC/CgM;AAAAA,gBACE;AAAA,gBACA;AAAA,kBACE,aAAahB;AAAA,kBACb,cAActB;AAAA,kBACd,YAAYC;AAAA,gBACb;AAAA,gBACDqC,GAAG4M,IAAI;AAAA,kBACL,UAAU/N;AAAA,kBACV,SAASH;AAAA,kBACT,SAASF;AAAA,kBACT,QAAQxK,EAAE;AAAA,kBACV,MAAM;AAAA,kBACN,aAAa;AAAA,gBAC/B,CAAiB;AAAA,cACF;AAAA,YACf,IAAgB;AAAA,UACL;AAAA,QACF;AAAA,MACT;AAAA,IACA;AACI,aAAS0J,IAAI;AACX,MAAA/H,EAAE,QAAQ;AAAA,IACX;AACD,aAASgI,IAAI;AACX,MAAAhI,EAAE,QAAQ;AAAA,IACX;AACD,aAASiI,EAAEW,GAAGQ,GAAG;AACf,MAAAtJ,EAAE,KAAK,OAAO,EAAE,OAAO8I,GAAG,MAAM7I,EAAE,OAAO,YAAYqJ,EAAG,CAAA;AAAA,IACzD;AACD,aAASlB,EAAEU,GAAG;AACZ,MAAA9I,EAAE,KAAK,UAAU,EAAE,OAAO8I,GAAG,MAAM7I,EAAE,MAAK,CAAE,GAAGE,EAAE,QAAQ;AAAA,IAC1D;AACD,aAASkI,EAAES,GAAGQ,GAAG;AACf,MAAAR,EAAE,WAAW,MAAM3I,EAAE,QAAQ,IAAIK,EAAE,QAAQ8I,IAAIrJ,EAAE,MAAM,SAASA,EAAE,MAAM,QAAQG,EAAE,SAASkJ,IAAIrJ,EAAE,MAAM,eAAeA,EAAE,MAAM,iBAAiB,IAAII,EAAE,QAAQiJ,IAAI,WAAW,UAAUtJ,EAAE,KAAK,YAAY,EAAE,OAAO8I,GAAG,MAAM7I,EAAE,MAAK,CAAE,GAAG+H,EAAEc,CAAC;AAAA,IAC3O;AACD,aAASa,GAAGb,GAAG;AACb,YAAMQ,IAAI,EAAE,OAAOR,GAAG,MAAM7I,EAAE;AAC9B,QAAE,eAAejB,EAAE,QAAQ,IAAI,EAAE,CAACiB,EAAE,KAAK,CAAC,IAAID,EAAE,KAAK,MAAMsJ,CAAC;AAAA,IAC7D;AACD,aAAShB,EAAEQ,GAAG;AACZ,MAAA9I,EAAE,KAAK,YAAY,EAAE,OAAO8I,GAAG,MAAM7I,EAAE,MAAK,CAAE;AAAA,IAC/C;AACD,aAASuI,EAAEM,GAAG;AACZ,MAAA9I,EAAE,KAAK,YAAY,EAAE,OAAO8I,GAAG,MAAM7I,EAAE,MAAK,CAAE;AAAA,IAC/C;AACD,aAASwI,EAAEK,GAAG;AACZ,MAAA9I,EAAE,KAAK,WAAW,EAAE,OAAO8I,GAAG,MAAM7I,EAAE,MAAK,CAAE;AAAA,IAC9C;AACD,aAASsI,EAAEO,GAAG;AACZ,MAAA9I,EAAE,KAAK,UAAU,EAAE,OAAO8I,GAAG,MAAM7I,EAAE,MAAK,CAAE;AAAA,IAC7C;AACD,aAASyI,EAAEI,GAAG;AACZ,MAAA9I,EAAE,KAAK,WAAW,EAAE,OAAO8I,GAAG,MAAM7I,EAAE,MAAK,CAAE;AAAA,IAC9C;AACD,aAASoJ,EAAEP,GAAG;AACZ,MAAAT,EAAES,GAAG,EAAE;AAAA,IACR;AACD,aAASS,EAAET,GAAG;AACZ,MAAAT,EAAES,GAAG,EAAE;AAAA,IACR;AACD,aAASK,EAAEL,GAAG;AACZ,UAAIQ;AACJ,MAAAwK,GAAG,SAAShL,EAAE,GAAG,KAAK,EAAE,eAAeA,EAAE,QAAQ,aAAaQ,IAAIhJ,EAAE,UAAU,QAAQgJ,EAAE,KAAM,GAAElK,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;AAAA,IAC5H;AAAA,EACF;AACH,CAAC,GAAGmY,KAAKD,IAAIE,KAAK;AAAA,EAChB,QAAQ;AAAA,EACR,OAAO;AACT,GAAGC,KAAK;AAAA,EACN,MAAM;AAAA,EACN,cAAc,EAAE,MAAM,EAAG;AAC3B,GAAGC,KAAqB1N,gBAAAA,GAAG;AAAA,EACzB,GAAGyN;AAAA,EACH,MAAM,GAAG;AACP,UAAM,EAAE,aAAa,EAAG,IAAG7Q,GAAE,GAAI,IAAIzD,EAAE,MAAM;AAC3C,UAAI;AACJ,cAAQ,IAAI,EAAE,UAAU,OAAO,SAAS,EAAE,uBAAuB,uBAAuB,EAAE,CAAC;AAAA,IACjG,CAAK;AACD,WAAO,CAAC,GAAG5E,OAAO2L,GAAI,GAAEC,GAAG,OAAO,MAAM;AAAA,OACrCD,MAAMC,GAAG,iBAAiBqN,IAAI;AAAA,SAC5BtN,GAAI,GAAEmL,GAAGsC,IAAI;AAAA,UACZ,IAAItZ,EAAE,CAAC;AAAA,UACP,UAAU,CAACA,EAAE,CAAC;AAAA,QACxB,GAAW;AAAA,UACDgM,GAAG,EAAE,QAAQ,SAAS;AAAA,QACvB,GAAE,GAAG,CAAC,MAAM,UAAU,CAAC;AAAA,MAChC,CAAO;AAAA,IACF,CAAA;AAAA,EACF;AACH,CAAC,GAAGuN,KAAK,EAAE,OAAO,uBAAwB,GAAEC,KAAK,CAAC,KAAK,cAAc,cAAc,GAAGC,KAAK;AAAA,EACzF,MAAM;AAAA,EACN,cAAc,EAAE,MAAM,EAAG;AAC3B,GAAGC,KAAqB/N,gBAAAA,GAAG;AAAA,EACzB,GAAG8N;AAAA,EACH,OAAO;AAAA,IACL,YAAY;AAAA,EACb;AAAA,EACD,MAAM,GAAG;AACP,QAAI5P;AACJ,UAAM+L,IAAIrN,MAAMG,IAAIkD,EAAEgK,GAAG,gBAAgB,GAAGtO,IAAIsE,EAAEgK,GAAG,uBAAuB,GAAG,IAAIhK,EAAEgK,GAAG,qBAAqB,GAAG,IAAIhK,EAAEgK,GAAG,oBAAoB,GAAGjV,IAAIiL,EAAEgK,GAAG,oBAAoB,GAAG/U,IAAI+K,EAAEgK,GAAG,qBAAqB,GAAG9U,IAAI8K,EAAEgK,GAAG,uBAAuB,GAAG7U,IAAI6K,EAAEgK,GAAG,kBAAkB,GAAG+D,IAAI/N,EAAEgK,GAAG,UAAU,GAAG3U,IAAI2K,EAAEgK,GAAG,UAAU,GAAG1U,IAAI;AAAA,MAChU,CAACwG,EAAE,IAAI,GAAGA,EAAE;AAAA,MACZ,CAACA,EAAE,KAAK,GAAGA,EAAE;AAAA,MACb,CAACA,EAAE,GAAG,GAAGA,EAAE;AAAA,MACX,CAACA,EAAE,MAAM,GAAGA,EAAE;AAAA,IACf,GAAE/F,KAAKkI,IAAIvB,GAAGF,EAAE,MAAM,OAAO,SAASyB,EAAE,iBAAiB,GAAGjI,IAAIkD,EAAE,MAAMwC,EAAE,MAAM,QAAQ,GAAGzF,IAAIiD,EAAE,MAAMwC,EAAE,MAAM,IAAI,GAAGxF,IAAIgD,EAAE,MAAM;AACjI,UAAIgF;AACJ,eAASA,IAAI,EAAE,UAAU,OAAO,SAASA,EAAE,aAAa7I,EAAE,MAAM,EAAE,MAAM,MAAM,KAAK;AAAA,IACzF,CAAK,GAAGkB,IAAI2C;AAAAA,MACN,MAAM;AACJ,YAAIgF,GAAGC;AACP,gBAAQrB,EAAE,UAAUb,GAAG,UAAUiC,IAAI,EAAE,WAAW,aAAajI,EAAE,KAAK,MAAM,OAAO,SAASiI,EAAE,KAAK,CAACE,MAAMA,EAAE,OAAOpI,EAAE,KAAK,IAAI,CAAC,GAAG,EAAE,WAAW,aAAa,UAAU,CAAE,GAAE,GAAG,EAAE,WAAW,aAAa,UAAU,CAAE,CAAA,EAAE,KAAK,CAACoI,MAAMA,EAAE,OAAOpI,EAAE,KAAK,QAAQmI,IAAI,EAAE,WAAW,aAAalI,EAAE,SAAS,QAAQ,MAAM,OAAO,SAASkI,EAAE,CAAC;AAAA,MACpU;AAAA,IACP,GAAOhI,IAAI+C,EAAE,MAAM;AACb,UAAIgF,GAAGC,GAAGC;AACV,aAAOlI,EAAE,WAAWgI,IAAI,EAAE,UAAU,OAAO,SAASA,EAAE,eAAepB,EAAE,UAAUb,GAAG,UAAUkC,IAAIjI,EAAE,MAAM,aAAaD,EAAE,UAAU,WAAW,WAAW,QAAQ,MAAM,OAAO,SAASkI,EAAE;AAAA,QACvL,CAACuB,OAAO;AACN,cAAIrB;AACJ,iBAAOqB,GAAG,SAASrB,IAAI,EAAE,UAAU,OAAO,SAASA,EAAE;AAAA,QACtD;AAAA,MACF,IAAG,CAAC,GAAGnI,EAAE,MAAM,aAAa,UAAU,CAAA,GAAI,GAAGA,EAAE,MAAM,aAAa,UAAU,CAAA,CAAE,EAAE;AAAA,QAC/E,CAACwJ,OAAO;AACN,cAAIrB;AACJ,iBAAOqB,GAAG,SAASrB,IAAI,EAAE,UAAU,OAAO,SAASA,EAAE;AAAA,QACtD;AAAA,MACT,QAAcD,IAAIlI,EAAE,MAAM,aAAaD,EAAE,SAAS,QAAQ,MAAM,OAAO,SAASmI,EAAE,CAAC,OAAO;AAAA,IAC1F,CAAK,GAAGhI,IAAI8C,EAAE,MAAM;AACd,UAAIgF;AACJ,cAAQA,IAAI3H,EAAE,UAAU,OAAO,SAAS2H,EAAE;AAAA,IAC3C,CAAA,GAAG7H,IAAI6C,EAAE,MAAM3C,EAAE,QAAQwG;AAAA,MACxB3G,EAAE,SAAS0F,EAAE;AAAA,MACb,EAAE,GAAG,EAAE,WAAW,YAAY,GAAG,EAAE,WAAW,iBAAkB;AAAA,MAChEvF,EAAE;AAAA,IACR,IAAQ;AAAA,MACF,GAAG,EAAE,WAAW,WAAW,QAAQ;AAAA,MACnC,GAAG,EAAE,WAAW,WAAW,SAAS;AAAA,IAC1C,CAAK,GAAGC,IAAI0C,EAAE,MAAM9C,EAAE,QAAQd,EAAEc,EAAE,KAAK,IAAI,MAAM,GAAGK,IAAIyC,EAAE,OAAO,EAAE,MAAM,IAAI6U,EAAE,MAAM,KAAKA,EAAE,MAAM,IAAI,GAAGhQ,IAAI7E,EAAE,OAAO,EAAE,MAAM,IAAI6U,EAAE,MAAM,KAAKA,EAAE,MAAM,IAAI,GAAG/P,IAAI9E,EAAE,MAAM;AACpK,UAAIgF;AACJ,YAAMC,IAAI;AAAA,QACR,SAAS9H,EAAE,MAAM;AAAA,QACjB,SAASA,EAAE,MAAM;AAAA,QACjB,gBAAgBD,EAAE;AAAA,QAClB,SAASK,EAAE;AAAA,QACX,SAASsH,EAAE;AAAA,QACX,gBAAgBvH,EAAE;AAAA,MAC1B;AACM,cAAQzB,EAAE,SAASG,EAAE,MAAM,MAAI;AAAA,QAC7B,KAAK8G,GAAG;AACN,WAACkC,CAAC,IAAIyN,GAAGxN,CAAC;AACV;AAAA,QACF,KAAKnC,GAAG;AACN,WAACkC,CAAC,IAAIqO,GAAG;AAAA,YACP,GAAGpO;AAAA,YACH,cAAc;AAAA,UAC1B,CAAW;AACD;AAAA,QACF,KAAKnC,GAAG;AACN,WAACkC,CAAC,IAAIqO,GAAGpO,CAAC;AACV;AAAA,QACF,KAAKnC,GAAG;AACN,WAACkC,CAAC,IAAI6N,GAAG5N,CAAC;AACV;AAAA,QACF,KAAKnC,GAAG;AACN,WAACkC,CAAC,IAAI0O,GAAGzO,CAAC;AACV;AAAA,QACF;AACE,WAACD,CAAC,IAAIyN,GAAGxN,CAAC;AACV;AAAA,MACH;AACD,aAAOD;AAAA,IACb,CAAK;AACD,WAAO,CAACA,GAAGC,MAAM;AACf,UAAIC;AACJ,aAAO6B,GAAI,GAAEC,GAAG,KAAKyN,IAAI;AAAA,QACvBvZ,EAAE2B,CAAC,KAAKkK,GAAE,GAAImL,GAAGC,GAAGjX,EAAE2B,CAAC,CAAC,GAAGiY,GAAGhD,GAAG,EAAE,KAAK,EAAC,GAAI;AAAA,UAC3C,SAAS5W,EAAEiC,CAAC,EAAE;AAAA,UACd,SAASjC,EAAEiC,CAAC,EAAE;AAAA,UACd,iBAAiB+H,IAAIhK,EAAEmC,CAAC,MAAM,OAAO,SAAS6H,EAAE;AAAA,UAChD,SAAShK,EAAEqC,CAAC;AAAA,UACZ,SAASrC,EAAE2J,CAAC;AAAA,UACZ,gBAAgB3J,EAAEoC,CAAC;AAAA,UACnB,YAAY,EAAE;AAAA,UACd,cAAcpC,EAAEmC,CAAC;AAAA,UACjB,YAAYnC,EAAE8B,CAAC;AAAA,UACf,cAAc9B,EAAE+B,CAAC;AAAA,UACjB,WAAW,QAAQ/B,EAAEqH,EAAE,EAAErH,EAAEc,CAAC,EAAE,SAAS,CAAC;AAAA,UACxC,aAAa,QAAQd,EAAEqH,EAAE,EAAErH,EAAEc,CAAC,EAAE,WAAW,CAAC;AAAA,UAC5C,kBAAkBd,EAAEe,CAAC;AAAA,QAC/B,CAAS,CAAC,GAAG,MAAM,EAAE,MAAM8K,GAAI,GAAEC,GAAG,QAAQ;AAAA,UAClC,KAAK;AAAA,UACL,GAAG9L,EAAE4J,CAAC;AAAA,UACN,OAAOmC,GAAG,CAAC,6BAA6B,CAAC/L,EAAEc,CAAC,EAAE,OAAOd,EAAEe,CAAC,CAAC,CAAC,CAAC;AAAA,UAC3D,OAAO0V,GAAGzW,EAAEa,CAAC,KAAKb,EAAEc,CAAC,EAAE,SAAS,EAAE;AAAA,UAClC,cAAc,QAAQd,EAAEqH,EAAE,EAAErH,EAAEc,CAAC,EAAE,SAAS,CAAC;AAAA,UAC3C,gBAAgB,QAAQd,EAAEqH,EAAE,EAAErH,EAAEc,CAAC,EAAE,WAAW,CAAC;AAAA,QACzD,GAAW,MAAM,IAAI0Y,EAAE;AAAA,MACvB,CAAO;AAAA,IACP;AAAA,EACG;AACH,CAAC,GAAGK,KAAK,CAAC,UAAU,GAAGC,KAAK;AAAA,EAC1B,MAAM;AAAA,EACN,cAAc,EAAE,MAAM,EAAG;AAC3B,GAAGC,KAAqBpO,gBAAAA,GAAG;AAAA,EACzB,GAAGmO;AAAA,EACH,MAAM,GAAG;AACP,UAAM,IAAIvR,MAAM,IAAIqD,EAAE,GAAG,OAAO,GAAG,IAAIA,EAAE,GAAG,UAAU,GAAG1L,IAAI0L,EAAE,GAAG,kBAAkB,GAAGzL,IAAIyL,EAAE,GAAG,gBAAgB,GAAGjL,IAAIiL,EAAE,GAAG,qBAAqB,GAAG/K,IAAI+K,EAAE,GAAG,qBAAqB,GAAG9K,IAAIiM,GAAI,GAAEhM,IAAIT,GAAI,GAAE,IAAI+U,GAAG;AAAA,MAC9M,IAAItU;AAAA,MACJ,QAAQc,GAAG;AACT,UAAE,MAAM,mBAAmBA,CAAC;AAAA,MAC7B;AAAA,MACD,OAAOA,GAAG;AACR,UAAE,MAAM,cAAcA,CAAC;AAAA,MACxB;AAAA,MACD,OAAOA,GAAG;AACR,UAAE,MAAM,kBAAkBA,CAAC;AAAA,MAC5B;AAAA,IACP,CAAK;AACDL,IAAAA,GAAG,MAAM;AACP,UAAIK;AACJ,MAAAlB,EAAE,UAAUkB,IAAId,EAAE,UAAU,QAAQc,EAAE,MAAM,EAAE,eAAe,GAAI,CAAA;AAAA,IACvE,CAAK;AACD,UAAMZ,IAAI6D,EAAE,MAAMiC,GAAG7G,EAAE,KAAK,CAAC,GAAGgB,IAAI4D,EAAE,OAAO;AAAA,MAC3C,OAAO,GAAG7D,EAAE,MAAM,KAAK;AAAA,MACvB,QAAQ,GAAGA,EAAE,MAAM,MAAM;AAAA,MACzB,KAAK,GAAGA,EAAE,MAAM,CAAC;AAAA,MACjB,MAAM,GAAGA,EAAE,MAAM,CAAC;AAAA,IACnB,EAAC;AACF,aAASU,EAAEE,GAAG;AACZ,QAAE,MAAM,qBAAqB,EAAE,OAAOA,GAAG,OAAO3B,EAAE,MAAK,CAAE;AAAA,IAC1D;AACD,aAAS0B,EAAEC,GAAG;AACZ,MAAAlB,EAAE,SAAS+U,GAAG7T,EAAE,GAAG,KAAKf;AAAA,QACtB;AAAA,UACE,GAAG4U,GAAG7T,EAAE,GAAG,EAAE;AAAA,UACb,GAAG6T,GAAG7T,EAAE,GAAG,EAAE;AAAA,QACd;AAAA,QACDA,EAAE;AAAA,MACV;AAAA,IACK;AACD,WAAO,CAACA,GAAGC,MAAM,CAAC9B,EAAEa,CAAC,KAAKb,EAAEiB,CAAC,EAAE,SAASjB,EAAEiB,CAAC,EAAE,UAAU4K,GAAI,GAAEC,GAAG,OAAO;AAAA,MACrE,KAAK;AAAA,MACL,OAAOC,GAAG,CAAC,gDAAgD/L,EAAEG,CAAC,CAAC,CAAC;AAAA,MAChE,OAAOsW,GAAG,EAAE,WAAW,aAAazW,EAAE,CAAC,EAAE,CAAC,MAAMA,EAAE,CAAC,EAAE,CAAC,aAAaA,EAAE,CAAC,EAAE,IAAI,KAAK;AAAA,IACvF,GAAO;AAAA,MACD2W,GAAG,OAAO;AAAA,QACR,SAAS;AAAA,QACT,KAAK5V;AAAA,QACL,OAAOgL,GAAG,CAAC,EAAE,UAAU/L,EAAE,CAAC,EAAC,GAAI,+BAA+B,CAAC;AAAA,QAC/D,OAAOyW,GAAGzW,EAAEkB,CAAC,CAAC;AAAA,QACd,UAAUlB,EAAEW,CAAC,IAAI,SAAS;AAAA,QAC1B,eAAegB;AAAA,QACf,WAAWC;AAAA,MACnB,GAAS,MAAM,IAAIiY,EAAE;AAAA,IAChB,GAAE,CAAC,KAAKnD,GAAG,IAAI,EAAE;AAAA,EACnB;AACH,CAAC,GAAGsD,KAAK;AAAA,EACP,MAAM;AAAA,EACN,cAAc,EAAE,MAAM,EAAG;AAC3B,GAAGC,KAAqBtO,gBAAAA,GAAG;AAAA,EACzB,GAAGqO;AAAA,EACH,MAAM,GAAG;AACP,UAAM,EAAE,mBAAmB,EAAG,IAAGzR,GAAE;AACnC,WAAO,CAAC,GAAG,MAAM;AACf,UAAIrI,GAAGC,GAAGQ,GAAGE;AACb,aAAOgL,GAAE,GAAIC,GAAG,OAAO;AAAA,QACrB,OAAO;AAAA,QACP,OAAO2K,GAAG;AAAA,UACR,OAAO,IAAIvW,IAAIF,EAAE,CAAC,MAAM,OAAO,SAASE,EAAE,KAAK;AAAA,UAC/C,QAAQ,IAAIC,IAAIH,EAAE,CAAC,MAAM,OAAO,SAASG,EAAE,MAAM;AAAA,UACjD,WAAW,cAAcQ,IAAIX,EAAE,CAAC,MAAM,OAAO,SAASW,EAAE,CAAC,QAAQE,IAAIb,EAAE,CAAC,MAAM,OAAO,SAASa,EAAE,CAAC;AAAA,QAC3G,CAAS;AAAA,MACT,GAAS,MAAM,CAAC;AAAA,IAChB;AAAA,EACG;AACH,CAAC,GAAGqZ,KAAK;AAAA,EACP,OAAO7N;AAAA,EACP,SAASF;AAAA,EACT,QAAQI;AACV,GAAG4N,KAAK;AAAA,EACN,SAAS1C;AAAA,EACT,UAAUiB;AAAA,EACV,MAAMH;AAAA,EACN,YAAYF;AAAA,EACZ,cAAcR;AAChB;AACA,SAASuC,KAAK;AACZ,SAAO;AAAA,IACL,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,OAAO,CAAE;AAAA,IACT,OAAO,CAAE;AAAA,IACT,WAAW,CAAE;AAAA,IACb,WAAW,CAAE;AAAA,IACb,aAAa;AAAA,IACb,YAAY;AAAA,MACV,OAAO;AAAA,MACP,QAAQ;AAAA,IACT;AAAA,IACD,UAAU,EAAE,GAAG,GAAG,GAAG,GAAG,MAAM,EAAG;AAAA,IACjC,QAAQ;AAAA,IACR,aAAa;AAAA,IACb,eAAe;AAAA,IACf,SAAS;AAAA,IACT,SAAS;AAAA,IACT,iBAAiB;AAAA,MACf,CAAC,OAAO,mBAAmB,OAAO,iBAAiB;AAAA,MACnD,CAAC,OAAO,mBAAmB,OAAO,iBAAiB;AAAA,IACpD;AAAA,IACD,YAAY;AAAA,MACV,CAAC,OAAO,mBAAmB,OAAO,iBAAiB;AAAA,MACnD,CAAC,OAAO,mBAAmB,OAAO,iBAAiB;AAAA,IACpD;AAAA,IACD,eAAezS,GAAG;AAAA,IAClB,cAAc;AAAA,IACd,kBAAkB;AAAA,IAClB,cAAc;AAAA,IACd,aAAa;AAAA,IACb,mBAAmB;AAAA,IACnB,aAAa;AAAA,IACb,kBAAkB;AAAA,IAClB,iBAAiB,GAAG;AAAA,IACpB,WAAW;AAAA,IACX,mBAAmB;AAAA,IACnB,2BAA2B;AAAA,IAC3B,iBAAiB,EAAE,GAAG,GAAG,GAAG,GAAG,MAAM,EAAG;AAAA,IACxC,sBAAsB;AAAA,IACtB,qBAAqB;AAAA,IACrB,mBAAmB;AAAA,IACnB,oBAAoB;AAAA,IACpB,qBAAqB,CAAE;AAAA,IACvB,oBAAoB;AAAA,IACpB,uBAAuB;AAAA,MACrB,MAAMC,GAAG;AAAA,MACT,OAAO,CAAE;AAAA,IACV;AAAA,IACD,gBAAgBC,GAAG;AAAA,IACnB,uBAAuB;AAAA,IACvB,qBAAqB;AAAA,IACrB,4BAA4B;AAAA,IAC5B,oBAAoB,EAAE,GAAG,KAAK,GAAG,IAAK;AAAA,IACtC,kBAAkB;AAAA,IAClB,gBAAgB;AAAA,IAChB,kBAAkB;AAAA,IAClB,mBAAmB;AAAA,IACnB,UAAU,CAAC,IAAI,EAAE;AAAA,IACjB,YAAY;AAAA,IACZ,gBAAgB;AAAA,IAChB,gBAAgB;AAAA,IAChB,gBAAgB;AAAA,IAChB,kBAAkB;AAAA,IAClB,gBAAgB;AAAA,IAChB,oBAAoB;AAAA,IACpB,mBAAmB;AAAA,IACnB,sBAAsB;AAAA,IACtB,kBAAkB;AAAA,IAClB,uBAAuB;AAAA,IACvB,uBAAuB;AAAA,IACvB,eAAe;AAAA,IACf,sBAAsB;AAAA,IACtB,OAAO3C,GAAI;AAAA,IACX,cAAc;AAAA,IACd,aAAa;AAAA,IACb,eAAe;AAAA,IACf,iBAAiB;AAAA,IACjB,kBAAkB;AAAA,IAClB,gBAAgB;AAAA,IAChB,oBAAoB;AAAA,IACpB,sBAAsB;AAAA,IACtB,sBAAsB;AAAA,IACtB,mBAAmB;AAAA,IACnB,kBAAkB;AAAA,IAClB,qBAAqB;AAAA,IACrB,iBAAiB;AAAA,IACjB,wBAAwB;AAAA,MACtB,YAAY;AAAA,IACb;AAAA,EACL;AACA;AACA,SAASmV,GAAG,GAAG;AACb,QAAM,IAAID;AACV,SAAO,KAAK,OAAO,KAAK,CAAC,EAAE,QAAQ,CAAC,MAAM;AACxC,UAAM,IAAI,EAAE,CAAC;AACb,IAAA9T,GAAG,CAAC,MAAM,EAAE,CAAC,IAAI;AAAA,EAClB,CAAA,GAAG;AACN;AACA,SAASgU,GAAG,GAAG,GAAG,GAAG;AACnB,QAAM,IAAIxV,EAAE,MAAM,CAACjD,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,SAAS,EAAE,MAAM,KAAK,CAACC,MAAMA,EAAE,OAAOD,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,QAAQA,CAAC,CAAC,CAAC,GAAG3B,IAAI4E,EAAE,MAAM,CAACjD,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,SAAS,EAAE,MAAM,KAAK,CAACC,MAAMA,EAAE,OAAOD,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,QAAQA,CAAC,CAAC,CAAC,GAAG1B,IAAI2E,EAAE,MAAM;AAChP,QAAI3C;AACJ,UAAMN,IAAI;AAAA,MACR,GAAGsY;AAAA,MACH,GAAG,EAAE;AAAA,IACN,GAAErY,IAAI,OAAO,KAAKD,CAAC;AACpB,YAAQM,IAAI,EAAE,UAAU,QAAQA,EAAE,QAAQ,CAACJ,MAAMA,EAAE,QAAQ,CAACD,EAAE,SAASC,EAAE,IAAI,MAAMF,EAAEE,EAAE,IAAI,IAAIA,EAAE,KAAK,GAAGF;AAAA,EAC7G,CAAG,GAAGlB,IAAImE,EAAE,MAAM;AACd,QAAI3C;AACJ,UAAMN,IAAI;AAAA,MACR,GAAGqY;AAAA,MACH,GAAG,EAAE;AAAA,IACN,GAAEpY,IAAI,OAAO,KAAKD,CAAC;AACpB,YAAQM,IAAI,EAAE,UAAU,QAAQA,EAAE,QAAQ,CAACJ,MAAMA,EAAE,QAAQ,CAACD,EAAE,SAASC,EAAE,IAAI,MAAMF,EAAEE,EAAE,IAAI,IAAIA,EAAE,KAAK,GAAGF;AAAA,EAC7G,CAAG,GAAGhB,IAAIiE,EAAE,MAAM;AACd,UAAMjD,IAAI,EAAE,MAAM,OAAO,CAACC,MAAM,CAACA,EAAE,MAAM;AACzC,WAAO,EAAE,4BAA4BD,KAAKmF;AAAA,MACxCnF;AAAA,MACA;AAAA,QACE,GAAG;AAAA,QACH,GAAG;AAAA,QACH,OAAO,EAAE,WAAW;AAAA,QACpB,QAAQ,EAAE,WAAW;AAAA,MACtB;AAAA,MACD,EAAE;AAAA,MACF;AAAA,IACN,IAAQA,KAAK,CAAA;AAAA,EACV,CAAA,GAAGf,IAAI,CAACe,GAAGC,GAAGK,MAAM;AACnB,QAAIL,IAAIA,KAAK,EAAE,MAAMD,EAAE,MAAM,GAAGM,IAAIA,KAAK,EAAE,MAAMN,EAAE,MAAM,GAAG,CAACC,KAAK,CAACK,GAAG;AACpE,QAAE,MAAM,MAAM,QAAQ,IAAIoD,GAAGF,GAAG,eAAexD,EAAE,EAAE,CAAC;AACpD;AAAA,IACD;AACD,WAAO,CAACA,EAAE,UAAU,CAACM,EAAE,UAAU,CAACL,EAAE;AAAA,EACxC,GAAKf,IAAI+D,EAAE,MAAM,EAAE,4BAA4B,EAAE,MAAM,OAAO,CAACjD,MAAM;AACjE,UAAMC,IAAI,EAAE,MAAMD,EAAE,MAAM,GAAGM,IAAI,EAAE,MAAMN,EAAE,MAAM;AACjD,WAAOf,EAAEe,GAAGC,GAAGK,CAAC,KAAK2G,GAAG;AAAA,MACtB,WAAWhH,EAAE,oBAAoB,EAAE,GAAG,GAAG,GAAG,EAAG;AAAA,MAC/C,WAAWK,EAAE,oBAAoB,EAAE,GAAG,GAAG,GAAG,EAAG;AAAA,MAC/C,aAAaL,EAAE,WAAW;AAAA,MAC1B,cAAcA,EAAE,WAAW;AAAA,MAC3B,aAAaK,EAAE,WAAW;AAAA,MAC1B,cAAcA,EAAE,WAAW;AAAA,MAC3B,OAAO,EAAE,WAAW;AAAA,MACpB,QAAQ,EAAE,WAAW;AAAA,MACrB,UAAU,EAAE;AAAA,IAClB,CAAK;AAAA,EACL,CAAG,IAAI,EAAE,MAAM,OAAO,CAACN,MAAMf,EAAEe,CAAC,CAAC,CAAC,GAAG,IAAIiD,EAAE,MAAM,CAAC,GAAGjE,EAAE,OAAO,GAAGE,EAAE,KAAK,CAAC,GAAGE,IAAI6D,EAAE,MAAM,EAAE,MAAM,OAAO,CAACjD,MAAMA,EAAE,QAAQ,CAAC,GAAGX,IAAI4D,EAAE,MAAM,EAAE,MAAM,OAAO,CAACjD,MAAMA,EAAE,QAAQ,CAAC,GAAGF,IAAImD,EAAE,MAAM;AAAA,IACpL,GAAG7D,EAAE,SAAS,CAAE;AAAA,IAChB,GAAGC,EAAE,SAAS,CAAE;AAAA,EACpB,CAAG,GAAGU,IAAIkD;AAAAA,IACN,MAAMjE,EAAE,MAAM,OAAO,CAACgB,MAAMA,EAAE,eAAeA,EAAE,iBAAiB,MAAM;AAAA,EAC1E;AACE,SAAO;AAAA,IACL,SAAS;AAAA,IACT,SAAS3B;AAAA,IACT,aAAa;AAAA,IACb,cAAcC;AAAA,IACd,cAAcQ;AAAA,IACd,UAAUI;AAAA,IACV,UAAUF;AAAA,IACV,qBAAqBc;AAAA,IACrB,kBAAkBV;AAAA,IAClB,kBAAkBC;AAAA,IAClB,qBAAqBU;AAAA,EACzB;AACA;AACA,SAAS2Y,GAAG,GAAG,GAAG,GAAG;AACnB,IAAE,YAAY,EAAE,YAAY,GAAG,EAAE,cAAc;AACjD;AACA,SAASC,GAAG,GAAG,GAAG;AAChB,MAAI,IAAI,OAAO,OAAO,EAAE,SAAS;AACjC,WAAS,KAAK;AACZ,MAAE,CAAC,IAAI,EAAE,CAAC;AACZ,SAAO;AACT;AACA,SAASC,KAAK;AACd;AACA,IAAI,KAAK,KAAKC,KAAK,IAAI,IAAIC,KAAK,uBAAuB,KAAK,qDAAqDC,KAAK,sDAAsDC,KAAK,sBAAsBC,KAAK,IAAI,OAAO,UAAUH,EAAE,IAAIA,EAAE,IAAIA,EAAE,MAAM,GAAGI,KAAK,IAAI,OAAO,UAAUH,EAAE,IAAIA,EAAE,IAAIA,EAAE,MAAM,GAAGI,KAAK,IAAI,OAAO,WAAWL,EAAE,IAAIA,EAAE,IAAIA,EAAE,IAAI,EAAE,MAAM,GAAGM,KAAK,IAAI,OAAO,WAAWL,EAAE,IAAIA,EAAE,IAAIA,EAAE,IAAI,EAAE,MAAM,GAAGM,KAAK,IAAI,OAAO,UAAU,EAAE,IAAIN,EAAE,IAAIA,EAAE,MAAM,GAAGO,KAAK,IAAI,OAAO,WAAW,EAAE,IAAIP,EAAE,IAAIA,EAAE,IAAI,EAAE,MAAM,GAAGQ,KAAK;AAAA,EACrgB,WAAW;AAAA,EACX,cAAc;AAAA,EACd,MAAM;AAAA,EACN,YAAY;AAAA,EACZ,OAAO;AAAA,EACP,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,gBAAgB;AAAA,EAChB,MAAM;AAAA,EACN,YAAY;AAAA,EACZ,OAAO;AAAA,EACP,WAAW;AAAA,EACX,WAAW;AAAA,EACX,YAAY;AAAA,EACZ,WAAW;AAAA,EACX,OAAO;AAAA,EACP,gBAAgB;AAAA,EAChB,UAAU;AAAA,EACV,SAAS;AAAA,EACT,MAAM;AAAA,EACN,UAAU;AAAA,EACV,UAAU;AAAA,EACV,eAAe;AAAA,EACf,UAAU;AAAA,EACV,WAAW;AAAA,EACX,UAAU;AAAA,EACV,WAAW;AAAA,EACX,aAAa;AAAA,EACb,gBAAgB;AAAA,EAChB,YAAY;AAAA,EACZ,YAAY;AAAA,EACZ,SAAS;AAAA,EACT,YAAY;AAAA,EACZ,cAAc;AAAA,EACd,eAAe;AAAA,EACf,eAAe;AAAA,EACf,eAAe;AAAA,EACf,eAAe;AAAA,EACf,YAAY;AAAA,EACZ,UAAU;AAAA,EACV,aAAa;AAAA,EACb,SAAS;AAAA,EACT,SAAS;AAAA,EACT,YAAY;AAAA,EACZ,WAAW;AAAA,EACX,aAAa;AAAA,EACb,aAAa;AAAA,EACb,SAAS;AAAA,EACT,WAAW;AAAA,EACX,YAAY;AAAA,EACZ,MAAM;AAAA,EACN,WAAW;AAAA,EACX,MAAM;AAAA,EACN,OAAO;AAAA,EACP,aAAa;AAAA,EACb,MAAM;AAAA,EACN,UAAU;AAAA,EACV,SAAS;AAAA,EACT,WAAW;AAAA,EACX,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,OAAO;AAAA,EACP,UAAU;AAAA,EACV,eAAe;AAAA,EACf,WAAW;AAAA,EACX,cAAc;AAAA,EACd,WAAW;AAAA,EACX,YAAY;AAAA,EACZ,WAAW;AAAA,EACX,sBAAsB;AAAA,EACtB,WAAW;AAAA,EACX,YAAY;AAAA,EACZ,WAAW;AAAA,EACX,WAAW;AAAA,EACX,aAAa;AAAA,EACb,eAAe;AAAA,EACf,cAAc;AAAA,EACd,gBAAgB;AAAA,EAChB,gBAAgB;AAAA,EAChB,gBAAgB;AAAA,EAChB,aAAa;AAAA,EACb,MAAM;AAAA,EACN,WAAW;AAAA,EACX,OAAO;AAAA,EACP,SAAS;AAAA,EACT,QAAQ;AAAA,EACR,kBAAkB;AAAA,EAClB,YAAY;AAAA,EACZ,cAAc;AAAA,EACd,cAAc;AAAA,EACd,gBAAgB;AAAA,EAChB,iBAAiB;AAAA,EACjB,mBAAmB;AAAA,EACnB,iBAAiB;AAAA,EACjB,iBAAiB;AAAA,EACjB,cAAc;AAAA,EACd,WAAW;AAAA,EACX,WAAW;AAAA,EACX,UAAU;AAAA,EACV,aAAa;AAAA,EACb,MAAM;AAAA,EACN,SAAS;AAAA,EACT,OAAO;AAAA,EACP,WAAW;AAAA,EACX,QAAQ;AAAA,EACR,WAAW;AAAA,EACX,QAAQ;AAAA,EACR,eAAe;AAAA,EACf,WAAW;AAAA,EACX,eAAe;AAAA,EACf,eAAe;AAAA,EACf,YAAY;AAAA,EACZ,WAAW;AAAA,EACX,MAAM;AAAA,EACN,MAAM;AAAA,EACN,MAAM;AAAA,EACN,YAAY;AAAA,EACZ,QAAQ;AAAA,EACR,eAAe;AAAA,EACf,KAAK;AAAA,EACL,WAAW;AAAA,EACX,WAAW;AAAA,EACX,aAAa;AAAA,EACb,QAAQ;AAAA,EACR,YAAY;AAAA,EACZ,UAAU;AAAA,EACV,UAAU;AAAA,EACV,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,SAAS;AAAA,EACT,WAAW;AAAA,EACX,WAAW;AAAA,EACX,WAAW;AAAA,EACX,MAAM;AAAA,EACN,aAAa;AAAA,EACb,WAAW;AAAA,EACX,KAAK;AAAA,EACL,MAAM;AAAA,EACN,SAAS;AAAA,EACT,QAAQ;AAAA,EACR,WAAW;AAAA,EACX,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,OAAO;AAAA,EACP,YAAY;AAAA,EACZ,QAAQ;AAAA,EACR,aAAa;AACf;AACAb,GAAGE,IAAI,IAAI;AAAA,EACT,KAAK,GAAG;AACN,WAAO,OAAO,OAAO,IAAI,KAAK,eAAe,MAAM,CAAC;AAAA,EACrD;AAAA,EACD,cAAc;AACZ,WAAO,KAAK,MAAM;EACnB;AAAA,EACD,KAAKY;AAAA;AAAA,EAEL,WAAWA;AAAA,EACX,YAAYC;AAAA,EACZ,WAAWC;AAAA,EACX,WAAWC;AAAA,EACX,UAAUA;AACZ,CAAC;AACD,SAASH,KAAK;AACZ,SAAO,KAAK,MAAM;AACpB;AACA,SAASC,KAAK;AACZ,SAAO,KAAK,MAAM;AACpB;AACA,SAASC,KAAK;AACZ,SAAOE,GAAG,IAAI,EAAE;AAClB;AACA,SAASD,KAAK;AACZ,SAAO,KAAK,MAAM;AACpB;AACA,SAAS,GAAG,GAAG;AACb,MAAI,GAAG;AACP,SAAO,KAAK,IAAI,IAAI,KAAM,EAAC,YAAa,IAAG,IAAIX,GAAG,KAAK,CAAC,MAAM,IAAI,EAAE,CAAC,EAAE,QAAQ,IAAI,SAAS,EAAE,CAAC,GAAG,EAAE,GAAG,MAAM,IAAIa,GAAG,CAAC,IAAI,MAAM,IAAI,IAAIC,GAAG,KAAK,IAAI,KAAK,KAAK,IAAI,KAAK,KAAK,IAAI,KAAK,IAAI,MAAM,IAAI,OAAO,IAAI,IAAI,IAAI,CAAC,IAAI,MAAM,IAAIC,GAAG,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,MAAM,IAAI,OAAO,GAAG,IAAI,MAAM,IAAIA,GAAG,KAAK,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,IAAI,KAAK,KAAK,IAAI,KAAK,KAAK,IAAI,KAAK,IAAI,OAAO,IAAI,OAAO,IAAI,IAAI,MAAM,GAAG,IAAI,SAAS,IAAId,GAAG,KAAK,CAAC,KAAK,IAAIa,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,KAAK,IAAIZ,GAAG,KAAK,CAAC,KAAK,IAAIY,GAAG,EAAE,CAAC,IAAI,MAAM,KAAK,EAAE,CAAC,IAAI,MAAM,KAAK,EAAE,CAAC,IAAI,MAAM,KAAK,CAAC,KAAK,IAAIX,GAAG,KAAK,CAAC,KAAKY,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,KAAK,IAAIX,GAAG,KAAK,CAAC,KAAKW,GAAG,EAAE,CAAC,IAAI,MAAM,KAAK,EAAE,CAAC,IAAI,MAAM,KAAK,EAAE,CAAC,IAAI,MAAM,KAAK,EAAE,CAAC,CAAC,KAAK,IAAIV,GAAG,KAAK,CAAC,KAAKW,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,IAAI,KAAK,EAAE,CAAC,IAAI,KAAK,CAAC,KAAK,IAAIV,GAAG,KAAK,CAAC,KAAKU,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,IAAI,KAAK,EAAE,CAAC,IAAI,KAAK,EAAE,CAAC,CAAC,IAAIT,GAAG,eAAe,CAAC,IAAIM,GAAGN,GAAG,CAAC,CAAC,IAAI,MAAM,gBAAgB,IAAIO,GAAG,KAAK,KAAK,KAAK,CAAC,IAAI;AACl4B;AACA,SAASD,GAAG,GAAG;AACb,SAAO,IAAIC,GAAG,KAAK,KAAK,KAAK,KAAK,IAAI,KAAK,IAAI,KAAK,CAAC;AACvD;AACA,SAASC,GAAG,GAAG,GAAG,GAAG,GAAG;AACtB,SAAO,KAAK,MAAM,IAAI,IAAI,IAAI,MAAM,IAAID,GAAG,GAAG,GAAG,GAAG,CAAC;AACvD;AACA,SAASG,GAAG,GAAG;AACb,SAAO,aAAarB,OAAO,IAAI,GAAG,CAAC,IAAI,KAAK,IAAI,EAAE,IAAK,GAAE,IAAIkB,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,OAAO,KAAK,IAAIA,GAAE;AACrG;AACA,SAASI,GAAG,GAAG,GAAG,GAAG,GAAG;AACtB,SAAO,UAAU,WAAW,IAAID,GAAG,CAAC,IAAI,IAAIH,GAAG,GAAG,GAAG,GAAG,KAAK,CAAC;AAChE;AACA,SAASA,GAAG,GAAG,GAAG,GAAG,GAAG;AACtB,OAAK,IAAI,CAAC,GAAG,KAAK,IAAI,CAAC,GAAG,KAAK,IAAI,CAAC,GAAG,KAAK,UAAU,CAAC;AACzD;AACApB,GAAGoB,IAAII,IAAIvB,GAAGC,IAAI;AAAA,EAChB,SAAS,GAAG;AACV,WAAO,IAAI,KAAK,OAAOC,KAAK,KAAK,IAAIA,IAAI,CAAC,GAAG,IAAIiB,GAAG,KAAK,IAAI,GAAG,KAAK,IAAI,GAAG,KAAK,IAAI,GAAG,KAAK,OAAO;AAAA,EACrG;AAAA,EACD,OAAO,GAAG;AACR,WAAO,IAAI,KAAK,OAAO,KAAK,KAAK,IAAI,IAAI,CAAC,GAAG,IAAIA,GAAG,KAAK,IAAI,GAAG,KAAK,IAAI,GAAG,KAAK,IAAI,GAAG,KAAK,OAAO;AAAA,EACrG;AAAA,EACD,MAAM;AACJ,WAAO;AAAA,EACR;AAAA,EACD,QAAQ;AACN,WAAO,IAAIA,GAAGK,GAAG,KAAK,CAAC,GAAGA,GAAG,KAAK,CAAC,GAAGA,GAAG,KAAK,CAAC,GAAGC,GAAG,KAAK,OAAO,CAAC;AAAA,EACnE;AAAA,EACD,cAAc;AACZ,WAAO,QAAQ,KAAK,KAAK,KAAK,IAAI,SAAS,QAAQ,KAAK,KAAK,KAAK,IAAI,SAAS,QAAQ,KAAK,KAAK,KAAK,IAAI,SAAS,KAAK,KAAK,WAAW,KAAK,WAAW;AAAA,EACzJ;AAAA,EACD,KAAKC;AAAA;AAAA,EAEL,WAAWA;AAAA,EACX,YAAYC;AAAA,EACZ,WAAWC;AAAA,EACX,UAAUA;AACZ,CAAC,CAAC;AACF,SAASF,KAAK;AACZ,SAAO,IAAIG,GAAG,KAAK,CAAC,CAAC,GAAGA,GAAG,KAAK,CAAC,CAAC,GAAGA,GAAG,KAAK,CAAC,CAAC;AACjD;AACA,SAASF,KAAK;AACZ,SAAO,IAAIE,GAAG,KAAK,CAAC,CAAC,GAAGA,GAAG,KAAK,CAAC,CAAC,GAAGA,GAAG,KAAK,CAAC,CAAC,GAAGA,IAAI,MAAM,KAAK,OAAO,IAAI,IAAI,KAAK,WAAW,GAAG,CAAC;AACtG;AACA,SAASD,KAAK;AACZ,QAAM,IAAIH,GAAG,KAAK,OAAO;AACzB,SAAO,GAAG,MAAM,IAAI,SAAS,OAAO,GAAGD,GAAG,KAAK,CAAC,CAAC,KAAKA,GAAG,KAAK,CAAC,CAAC,KAAKA,GAAG,KAAK,CAAC,CAAC,GAAG,MAAM,IAAI,MAAM,KAAK,CAAC,GAAG;AAC7G;AACA,SAASC,GAAG,GAAG;AACb,SAAO,MAAM,CAAC,IAAI,IAAI,KAAK,IAAI,GAAG,KAAK,IAAI,GAAG,CAAC,CAAC;AAClD;AACA,SAASD,GAAG,GAAG;AACb,SAAO,KAAK,IAAI,GAAG,KAAK,IAAI,KAAK,KAAK,MAAM,CAAC,KAAK,CAAC,CAAC;AACtD;AACA,SAASK,GAAG,GAAG;AACb,SAAO,IAAIL,GAAG,CAAC,IAAI,IAAI,KAAK,MAAM,MAAM,EAAE,SAAS,EAAE;AACvD;AACA,SAASH,GAAG,GAAG,GAAG,GAAG,GAAG;AACtB,SAAO,KAAK,IAAI,IAAI,IAAI,IAAI,MAAM,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,MAAM,KAAK,MAAM,IAAI,MAAM,IAAIS,GAAG,GAAG,GAAG,GAAG,CAAC;AAC3G;AACA,SAASb,GAAG,GAAG;AACb,MAAI,aAAaa;AACf,WAAO,IAAIA,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,OAAO;AACxC,MAAI,aAAa7B,OAAO,IAAI,GAAG,CAAC,IAAI,CAAC;AACnC,WAAO,IAAI6B,GAAE;AACf,MAAI,aAAaA;AACf,WAAO;AACT,MAAI,EAAE;AACN,MAAI,IAAI,EAAE,IAAI,KAAK,IAAI,EAAE,IAAI,KAAK,IAAI,EAAE,IAAI,KAAKpc,IAAI,KAAK,IAAI,GAAG,GAAG,CAAC,GAAGC,IAAI,KAAK,IAAI,GAAG,GAAG,CAAC,GAAGQ,IAAI,KAAKE,IAAIV,IAAID,GAAGY,KAAKX,IAAID,KAAK;AACjI,SAAOW,KAAK,MAAMV,IAAIQ,KAAK,IAAI,KAAKE,KAAK,IAAI,KAAK,IAAI,MAAMV,IAAIQ,KAAK,IAAI,KAAKE,IAAI,IAAIF,KAAK,IAAI,KAAKE,IAAI,GAAGA,KAAKC,IAAI,MAAMX,IAAID,IAAI,IAAIC,IAAID,GAAGS,KAAK,MAAME,IAAIC,IAAI,KAAKA,IAAI,IAAI,IAAIH,GAAG,IAAI2b,GAAG3b,GAAGE,GAAGC,GAAG,EAAE,OAAO;AAC/M;AACA,SAASyb,GAAG,GAAG,GAAG,GAAG,GAAG;AACtB,SAAO,UAAU,WAAW,IAAId,GAAG,CAAC,IAAI,IAAIa,GAAG,GAAG,GAAG,GAAG,KAAK,CAAC;AAChE;AACA,SAASA,GAAG,GAAG,GAAG,GAAG,GAAG;AACtB,OAAK,IAAI,CAAC,GAAG,KAAK,IAAI,CAAC,GAAG,KAAK,IAAI,CAAC,GAAG,KAAK,UAAU,CAAC;AACzD;AACA/B,GAAG+B,IAAIC,IAAI/B,GAAGC,IAAI;AAAA,EAChB,SAAS,GAAG;AACV,WAAO,IAAI,KAAK,OAAOC,KAAK,KAAK,IAAIA,IAAI,CAAC,GAAG,IAAI4B,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,IAAI,GAAG,KAAK,OAAO;AAAA,EAC7F;AAAA,EACD,OAAO,GAAG;AACR,WAAO,IAAI,KAAK,OAAO,KAAK,KAAK,IAAI,IAAI,CAAC,GAAG,IAAIA,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,IAAI,GAAG,KAAK,OAAO;AAAA,EAC7F;AAAA,EACD,MAAM;AACJ,QAAI,IAAI,KAAK,IAAI,OAAO,KAAK,IAAI,KAAK,KAAK,IAAI,MAAM,CAAC,KAAK,MAAM,KAAK,CAAC,IAAI,IAAI,KAAK,GAAG,IAAI,KAAK,GAAG,IAAI,KAAK,IAAI,MAAM,IAAI,IAAI,KAAK,GAAGpc,IAAI,IAAI,IAAI;AAClJ,WAAO,IAAIyb;AAAA,MACT,GAAG,KAAK,MAAM,IAAI,MAAM,IAAI,KAAKzb,GAAG,CAAC;AAAA,MACrC,GAAG,GAAGA,GAAG,CAAC;AAAA,MACV,GAAG,IAAI,MAAM,IAAI,MAAM,IAAI,KAAKA,GAAG,CAAC;AAAA,MACpC,KAAK;AAAA,IACX;AAAA,EACG;AAAA,EACD,QAAQ;AACN,WAAO,IAAIoc,GAAGE,GAAG,KAAK,CAAC,GAAGC,GAAG,KAAK,CAAC,GAAGA,GAAG,KAAK,CAAC,GAAGR,GAAG,KAAK,OAAO,CAAC;AAAA,EACnE;AAAA,EACD,cAAc;AACZ,YAAQ,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,KAAK,CAAC,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,WAAW,KAAK,WAAW;AAAA,EAC5H;AAAA,EACD,YAAY;AACV,UAAM,IAAIA,GAAG,KAAK,OAAO;AACzB,WAAO,GAAG,MAAM,IAAI,SAAS,OAAO,GAAGO,GAAG,KAAK,CAAC,CAAC,KAAKC,GAAG,KAAK,CAAC,IAAI,GAAG,MAAMA,GAAG,KAAK,CAAC,IAAI,GAAG,IAAI,MAAM,IAAI,MAAM,KAAK,CAAC,GAAG;AAAA,EAC1H;AACH,CAAC,CAAC;AACF,SAASD,GAAG,GAAG;AACb,SAAO,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,MAAM;AAC/C;AACA,SAASC,GAAG,GAAG;AACb,SAAO,KAAK,IAAI,GAAG,KAAK,IAAI,GAAG,KAAK,CAAC,CAAC;AACxC;AACA,SAAS,GAAG,GAAG,GAAG,GAAG;AACnB,UAAQ,IAAI,KAAK,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,IAAI,IAAI,MAAM,KAAK,IAAI,MAAM,MAAM,KAAK,KAAK,KAAK;AACtG;AACA,MAAMC,KAAK,CAAC,MAAM,MAAM;AACxB,SAASC,GAAG,GAAG,GAAG;AAChB,SAAO,SAAS,GAAG;AACjB,WAAO,IAAI,IAAI;AAAA,EACnB;AACA;AACA,SAASC,GAAG,GAAG,GAAG,GAAG;AACnB,SAAO,IAAI,KAAK,IAAI,GAAG,CAAC,GAAG,IAAI,KAAK,IAAI,GAAG,CAAC,IAAI,GAAG,IAAI,IAAI,GAAG,SAAS,GAAG;AACxE,WAAO,KAAK,IAAI,IAAI,IAAI,GAAG,CAAC;AAAA,EAChC;AACA;AACA,SAASC,GAAG,GAAG;AACb,UAAQ,IAAI,CAAC,MAAM,IAAIC,KAAK,SAAS,GAAG,GAAG;AACzC,WAAO,IAAI,IAAIF,GAAG,GAAG,GAAG,CAAC,IAAIF,GAAG,MAAM,CAAC,IAAI,IAAI,CAAC;AAAA,EACpD;AACA;AACA,SAASI,GAAG,GAAG,GAAG;AAChB,MAAI,IAAI,IAAI;AACZ,SAAO,IAAIH,GAAG,GAAG,CAAC,IAAID,GAAG,MAAM,CAAC,IAAI,IAAI,CAAC;AAC3C;AACA,MAAMK,KAAK,SAAS,EAAE,GAAG;AACvB,MAAI,IAAIF,GAAG,CAAC;AACZ,WAAS,EAAE3c,GAAGC,GAAG;AACf,QAAIQ,IAAI,GAAGT,IAAI6b,GAAG7b,CAAC,GAAG,IAAIC,IAAI4b,GAAG5b,CAAC,GAAG,CAAC,GAAGU,IAAI,EAAEX,EAAE,GAAGC,EAAE,CAAC,GAAGW,IAAI,EAAEZ,EAAE,GAAGC,EAAE,CAAC,GAAGY,IAAI+b,GAAG5c,EAAE,SAASC,EAAE,OAAO;AACtG,WAAO,SAAS,GAAG;AACjB,aAAOD,EAAE,IAAIS,EAAE,CAAC,GAAGT,EAAE,IAAIW,EAAE,CAAC,GAAGX,EAAE,IAAIY,EAAE,CAAC,GAAGZ,EAAE,UAAUa,EAAE,CAAC,GAAGb,IAAI;AAAA,IACvE;AAAA,EACG;AACD,SAAO,EAAE,QAAQ,GAAG;AACtB,EAAE,CAAC;AACH,SAAS8c,GAAG,GAAG,GAAG;AAChB,SAAO,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,SAAS,GAAG;AACjC,WAAO,KAAK,IAAI,KAAK,IAAI;AAAA,EAC7B;AACA;AACA,IAAIC,KAAK,+CAA+CC,KAAK,IAAI,OAAOD,GAAG,QAAQ,GAAG;AACtF,SAASE,GAAG,GAAG;AACb,SAAO,WAAW;AAChB,WAAO;AAAA,EACX;AACA;AACA,SAASC,GAAG,GAAG;AACb,SAAO,SAAS,GAAG;AACjB,WAAO,EAAE,CAAC,IAAI;AAAA,EAClB;AACA;AACA,SAASC,GAAG,GAAG,GAAG;AAChB,MAAI,IAAIJ,GAAG,YAAYC,GAAG,YAAY,GAAG,GAAGhd,GAAGC,GAAGQ,IAAI,IAAIE,IAAI,CAAE,GAAEC,IAAI;AACtE,OAAK,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAImc,GAAG,KAAK,CAAC,OAAO/c,IAAIgd,GAAG,KAAK,CAAC;AAC7D,KAAC/c,IAAID,EAAE,SAAS,MAAMC,IAAI,EAAE,MAAM,GAAGA,CAAC,GAAGU,EAAEF,CAAC,IAAIE,EAAEF,CAAC,KAAKR,IAAIU,EAAE,EAAEF,CAAC,IAAIR,KAAK,IAAI,EAAE,CAAC,QAAQD,IAAIA,EAAE,CAAC,KAAKW,EAAEF,CAAC,IAAIE,EAAEF,CAAC,KAAKT,IAAIW,EAAE,EAAEF,CAAC,IAAIT,KAAKW,EAAE,EAAEF,CAAC,IAAI,MAAMG,EAAE,KAAK,EAAE,GAAGH,GAAG,GAAGqc,GAAG,GAAG9c,CAAC,EAAC,CAAE,IAAI,IAAIgd,GAAG;AAC9L,SAAO,IAAI,EAAE,WAAW/c,IAAI,EAAE,MAAM,CAAC,GAAGU,EAAEF,CAAC,IAAIE,EAAEF,CAAC,KAAKR,IAAIU,EAAE,EAAEF,CAAC,IAAIR,IAAIU,EAAE,SAAS,IAAIC,EAAE,CAAC,IAAIsc,GAAGtc,EAAE,CAAC,EAAE,CAAC,IAAIqc,GAAG,CAAC,KAAK,IAAIrc,EAAE,QAAQ,SAASC,GAAG;AAC5I,aAAS,IAAI,GAAGE,GAAG,IAAI,GAAG,EAAE;AAC1B,MAAAJ,GAAGI,IAAIH,EAAE,CAAC,GAAG,CAAC,IAAIG,EAAE,EAAEF,CAAC;AACzB,WAAOF,EAAE,KAAK,EAAE;AAAA,EACpB;AACA;AACA,IAAIyc,KAAK,MAAM,KAAK,IAAIC,KAAK;AAAA,EAC3B,YAAY;AAAA,EACZ,YAAY;AAAA,EACZ,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,QAAQ;AACV;AACA,SAASC,GAAG,GAAG,GAAG,GAAG,GAAGtd,GAAGC,GAAG;AAC5B,MAAIQ,GAAGE,GAAGC;AACV,UAAQH,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,CAAC,OAAO,KAAKA,GAAG,KAAKA,KAAKG,IAAI,IAAI,IAAI,IAAI,OAAO,KAAK,IAAIA,GAAG,KAAK,IAAIA,KAAKD,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,CAAC,OAAO,KAAKA,GAAG,KAAKA,GAAGC,KAAKD,IAAI,IAAI,IAAI,IAAI,MAAM,IAAI,CAAC,GAAG,IAAI,CAAC,GAAGC,IAAI,CAACA,GAAGH,IAAI,CAACA,IAAI;AAAA,IACzN,YAAYT;AAAA,IACZ,YAAYC;AAAA,IACZ,QAAQ,KAAK,MAAM,GAAG,CAAC,IAAImd;AAAA,IAC3B,OAAO,KAAK,KAAKxc,CAAC,IAAIwc;AAAA,IACtB,QAAQ3c;AAAA,IACR,QAAQE;AAAA,EACZ;AACA;AACA,IAAI4c;AACJ,SAASC,GAAG,GAAG;AACb,QAAM,IAAI,KAAK,OAAO,aAAa,aAAa,YAAY,iBAAiB,IAAI,EAAE;AACnF,SAAO,EAAE,aAAaH,KAAKC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;AAC5D;AACA,SAASG,GAAG,GAAG;AACb,SAAO,KAAK,SAASF,OAAOA,KAAK,SAAS,gBAAgB,8BAA8B,GAAG,IAAIA,GAAG,aAAa,aAAa,CAAC,GAAG,EAAE,IAAIA,GAAG,UAAU,QAAQ,YAAa,MAAKF,MAAM,IAAI,EAAE,QAAQC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;AAClO;AACA,SAASI,GAAG,GAAG,GAAG,GAAG,GAAG;AACtB,WAAS1d,EAAEa,GAAG;AACZ,WAAOA,EAAE,SAASA,EAAE,IAAK,IAAG,MAAM;AAAA,EACnC;AACD,WAASZ,EAAEY,GAAG,GAAGE,GAAGC,GAAGS,GAAGC,GAAG;AAC3B,QAAIb,MAAME,KAAK,MAAMC,GAAG;AACtB,UAAIW,IAAIF,EAAE,KAAK,cAAc,MAAM,GAAG,MAAM,CAAC;AAC7C,MAAAC,EAAE,KAAK,EAAE,GAAGC,IAAI,GAAG,GAAGmb,GAAGjc,GAAGE,CAAC,EAAG,GAAE,EAAE,GAAGY,IAAI,GAAG,GAAGmb,GAAG,GAAG9b,CAAC,EAAC,CAAE;AAAA,IAC5D;AACC,OAACD,KAAKC,MAAMS,EAAE,KAAK,eAAeV,IAAI,IAAIC,IAAI,CAAC;AAAA,EAClD;AACD,WAASP,EAAEI,GAAG,GAAGE,GAAGC,GAAG;AACrB,IAAAH,MAAM,KAAKA,IAAI,IAAI,MAAM,KAAK,MAAM,IAAIA,IAAI,QAAQA,KAAK,MAAMG,EAAE,KAAK,EAAE,GAAGD,EAAE,KAAKf,EAAEe,CAAC,IAAI,WAAW,MAAM,CAAC,IAAI,GAAG,GAAG+b,GAAGjc,GAAG,CAAC,EAAC,CAAE,KAAK,KAAKE,EAAE,KAAKf,EAAEe,CAAC,IAAI,YAAY,IAAI,CAAC;AAAA,EACzK;AACD,WAASJ,EAAEE,GAAG,GAAGE,GAAGC,GAAG;AACrB,IAAAH,MAAM,IAAIG,EAAE,KAAK,EAAE,GAAGD,EAAE,KAAKf,EAAEe,CAAC,IAAI,UAAU,MAAM,CAAC,IAAI,GAAG,GAAG+b,GAAGjc,GAAG,CAAC,EAAG,CAAA,IAAI,KAAKE,EAAE,KAAKf,EAAEe,CAAC,IAAI,WAAW,IAAI,CAAC;AAAA,EACjH;AACD,WAASH,EAAEC,GAAG,GAAGE,GAAGC,GAAGS,GAAGC,GAAG;AAC3B,QAAIb,MAAME,KAAK,MAAMC,GAAG;AACtB,UAAIW,IAAIF,EAAE,KAAKzB,EAAEyB,CAAC,IAAI,UAAU,MAAM,KAAK,MAAM,GAAG;AACpD,MAAAC,EAAE,KAAK,EAAE,GAAGC,IAAI,GAAG,GAAGmb,GAAGjc,GAAGE,CAAC,EAAG,GAAE,EAAE,GAAGY,IAAI,GAAG,GAAGmb,GAAG,GAAG9b,CAAC,EAAC,CAAE;AAAA,IAC5D;AACC,OAACD,MAAM,KAAKC,MAAM,MAAMS,EAAE,KAAKzB,EAAEyB,CAAC,IAAI,WAAWV,IAAI,MAAMC,IAAI,GAAG;AAAA,EACrE;AACD,SAAO,SAASH,GAAG,GAAG;AACpB,QAAIE,IAAI,CAAA,GAAIC,IAAI;AAChB,WAAOH,IAAI,EAAEA,CAAC,GAAG,IAAI,EAAE,CAAC,GAAGZ,EAAEY,EAAE,YAAYA,EAAE,YAAY,EAAE,YAAY,EAAE,YAAYE,GAAGC,CAAC,GAAGP,EAAEI,EAAE,QAAQ,EAAE,QAAQE,GAAGC,CAAC,GAAGL,EAAEE,EAAE,OAAO,EAAE,OAAOE,GAAGC,CAAC,GAAGJ,EAAEC,EAAE,QAAQA,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQE,GAAGC,CAAC,GAAGH,IAAI,IAAI,MAAM,SAASY,GAAG;AAC7N,eAASC,IAAI,IAAIC,IAAIX,EAAE,QAAQY,GAAG,EAAEF,IAAIC;AACtC,QAAAZ,GAAGa,IAAIZ,EAAEU,CAAC,GAAG,CAAC,IAAIE,EAAE,EAAEH,CAAC;AACzB,aAAOV,EAAE,KAAK,EAAE;AAAA,IACtB;AAAA,EACA;AACA;AACA,IAAI4c,KAAKD,GAAGF,IAAI,QAAQ,OAAO,MAAM,GAAGI,KAAKF,GAAGD,IAAI,MAAM,KAAK,GAAG,GAAGI,KAAK;AAC1E,SAASC,GAAG,GAAG;AACb,WAAS,IAAI,KAAK,IAAI,CAAC,KAAK,IAAI,KAAK;AACvC;AACA,SAASC,GAAG,GAAG;AACb,WAAS,IAAI,KAAK,IAAI,CAAC,KAAK,IAAI,KAAK;AACvC;AACA,SAASC,GAAG,GAAG;AACb,WAAS,IAAI,KAAK,IAAI,IAAI,CAAC,KAAK,MAAM,IAAI;AAC5C;AACA,MAAMC,KAAK,SAAS,EAAE,GAAG,GAAG,GAAG;AAC7B,WAASje,EAAEC,GAAGQ,GAAG;AACf,QAAIE,IAAIV,EAAE,CAAC,GAAGW,IAAIX,EAAE,CAAC,GAAGY,IAAIZ,EAAE,CAAC,GAAG,IAAIQ,EAAE,CAAC,GAAGM,IAAIN,EAAE,CAAC,GAAGO,IAAIP,EAAE,CAAC,GAAGgB,IAAI,IAAId,GAAGe,IAAIX,IAAIH,GAAGe,IAAIF,IAAIA,IAAIC,IAAIA,GAAGE,GAAGK;AAC5G,QAAIN,IAAIkc;AACN,MAAA5b,IAAI,KAAK,IAAIjB,IAAIH,CAAC,IAAI,GAAGe,IAAI,SAAS6H,GAAG;AACvC,eAAO;AAAA,UACL9I,IAAI8I,IAAIhI;AAAA,UACRb,IAAI6I,IAAI/H;AAAA,UACRb,IAAI,KAAK,IAAI,IAAI4I,IAAIxH,CAAC;AAAA,QAChC;AAAA,MACA;AAAA,SACS;AACH,UAAIJ,IAAI,KAAK,KAAKF,CAAC,GAAGG,KAAKd,IAAIA,IAAIH,IAAIA,IAAI,IAAIc,MAAM,IAAId,IAAI,IAAIgB,IAAIE,KAAKf,IAAIA,IAAIH,IAAIA,IAAI,IAAIc,MAAM,IAAIX,IAAI,IAAIa,IAAIK,IAAI,KAAK,IAAI,KAAK,KAAKJ,IAAIA,IAAI,CAAC,IAAIA,CAAC,GAAGK,IAAI,KAAK,IAAI,KAAK,KAAKJ,IAAIA,IAAI,CAAC,IAAIA,CAAC;AACjM,MAAAE,KAAKE,IAAID,KAAK,GAAGN,IAAI,SAAS6H,GAAG;AAC/B,YAAIC,IAAID,IAAIxH,GAAG0H,IAAImU,GAAG5b,CAAC,GAAG0H,IAAI/I,KAAK,IAAIgB,MAAM8H,IAAIqU,GAAG,IAAItU,IAAIxH,CAAC,IAAI6b,GAAG7b,CAAC;AACrE,eAAO;AAAA,UACLvB,IAAIiJ,IAAInI;AAAA,UACRb,IAAIgJ,IAAIlI;AAAA,UACRb,IAAI8I,IAAImU,GAAG,IAAIpU,IAAIxH,CAAC;AAAA,QAC9B;AAAA,MACA;AAAA,IACK;AACD,WAAON,EAAE,WAAWK,IAAI,MAAM,IAAI,KAAK,OAAOL;AAAA,EAC/C;AACD,SAAO5B,EAAE,MAAM,SAASC,GAAG;AACzB,QAAIQ,IAAI,KAAK,IAAI,MAAM,CAACR,CAAC,GAAGU,IAAIF,IAAIA,GAAGG,IAAID,IAAIA;AAC/C,WAAO,EAAEF,GAAGE,GAAGC,CAAC;AAAA,EACjB,GAAEZ;AACL,EAAE,KAAK,OAAO,GAAG,CAAC;AAClB,IAAIke,KAAK,GAAGC,KAAK,GAAGC,KAAK,GAAGC,KAAK,KAAKC,IAAIC,IAAIC,KAAK,GAAGC,KAAK,GAAGC,KAAK,GAAGC,KAAK,OAAO,eAAe,YAAY,YAAY,MAAM,cAAc,MAAMC,KAAK,OAAO,UAAU,YAAY,OAAO,wBAAwB,OAAO,sBAAsB,KAAK,MAAM,IAAI,SAAS,GAAG;AAC1Q,aAAW,GAAG,EAAE;AAClB;AACA,SAASC,KAAK;AACZ,SAAOJ,OAAOG,GAAGE,EAAE,GAAGL,KAAKE,GAAG,QAAQD;AACxC;AACA,SAASI,KAAK;AACZ,EAAAL,KAAK;AACP;AACA,SAASM,KAAK;AACZ,OAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ;AACzC;AACAA,GAAG,YAAYC,GAAG,YAAY;AAAA,EAC5B,aAAaD;AAAA,EACb,SAAS,SAAS,GAAG,GAAG,GAAG;AACzB,QAAI,OAAO,KAAK;AACd,YAAM,IAAI,UAAU,4BAA4B;AAClD,SAAK,KAAK,OAAOF,GAAI,IAAG,CAAC,MAAM,KAAK,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,SAASN,OAAO,SAASA,KAAKA,GAAG,QAAQ,OAAOD,KAAK,MAAMC,KAAK,OAAO,KAAK,QAAQ,GAAG,KAAK,QAAQ,GAAGU;EAClK;AAAA,EACD,MAAM,WAAW;AACf,SAAK,UAAU,KAAK,QAAQ,MAAM,KAAK,QAAQ,IAAI,GAAGA,GAAI;AAAA,EAC3D;AACH;AACA,SAASD,GAAG,GAAG,GAAG,GAAG;AACnB,MAAI,IAAI,IAAID;AACZ,SAAO,EAAE,QAAQ,GAAG,GAAG,CAAC,GAAG;AAC7B;AACA,SAASG,KAAK;AACZ,EAAAL,GAAE,GAAI,EAAEX;AACR,WAAS,IAAII,IAAI,GAAG;AAClB,KAAC,IAAIG,KAAK,EAAE,UAAU,KAAK,EAAE,MAAM,KAAK,QAAQ,CAAC,GAAG,IAAI,EAAE;AAC5D,IAAEP;AACJ;AACA,SAASiB,KAAK;AACZ,EAAAV,MAAMD,KAAKG,GAAG,IAAK,KAAID,IAAIR,KAAKC,KAAK;AACrC,MAAI;AACF,IAAAe;EACJ,UAAY;AACR,IAAAhB,KAAK,GAAGkB,MAAMX,KAAK;AAAA,EACpB;AACH;AACA,SAASY,KAAK;AACZ,MAAI,IAAIV,GAAG,IAAK,GAAE,IAAI,IAAIH;AAC1B,MAAIH,OAAOK,MAAM,GAAGF,KAAK;AAC3B;AACA,SAASY,KAAK;AACZ,WAAS,GAAG,IAAId,IAAI,GAAG,IAAI,IAAI,GAAG;AAChC,MAAE,SAAS,IAAI,EAAE,UAAU,IAAI,EAAE,QAAQ,IAAI,GAAG,IAAI,EAAE,UAAU,IAAI,EAAE,OAAO,EAAE,QAAQ,MAAM,IAAI,IAAI,EAAE,QAAQ,IAAIA,KAAK;AAC1H,EAAAC,KAAK,GAAGU,GAAG,CAAC;AACd;AACA,SAASA,GAAG,GAAG;AACb,MAAI,CAACf,IAAI;AACP,IAAAC,OAAOA,KAAK,aAAaA,EAAE;AAC3B,QAAI,IAAI,IAAIM;AACZ,QAAI,MAAM,IAAI,IAAI,MAAMN,KAAK,WAAWgB,IAAI,IAAIR,GAAG,IAAK,IAAGD,EAAE,IAAIN,OAAOA,KAAK,cAAcA,EAAE,OAAOA,OAAOI,KAAKG,GAAG,IAAK,GAAEP,KAAK,YAAYiB,IAAIhB,EAAE,IAAIH,KAAK,GAAGU,GAAGO,EAAE;AAAA,EACnK;AACH;AACA,SAASG,GAAG,GAAG,GAAG,GAAG;AACnB,MAAI,IAAI,IAAIP;AACZ,SAAO,IAAI,KAAK,OAAO,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC/e,MAAM;AAC9C,MAAE,KAAM,GAAE,EAAEA,IAAI,CAAC;AAAA,EACrB,GAAK,GAAG,CAAC,GAAG;AACZ;AACA,IAAIuf,KAAKnS,GAAG,SAAS,OAAO,UAAU,WAAW,GAAGoS,KAAK,CAAA,GAAIC,KAAK,GAAGC,KAAK,GAAGC,KAAK,GAAGC,KAAK,GAAGC,KAAK,GAAGC,KAAK,GAAGC,KAAK;AAClH,SAAS,GAAG,GAAG,GAAG,GAAG,GAAG/f,GAAGC,GAAG;AAC5B,MAAIQ,IAAI,EAAE;AACV,MAAI,CAACA;AACH,MAAE,eAAe;WACV,KAAKA;AACZ;AACF,EAAAuf,GAAG,GAAG,GAAG;AAAA,IACP,MAAM;AAAA,IACN,OAAO;AAAA;AAAA,IAEP,OAAOhgB;AAAA;AAAA,IAEP,IAAIuf;AAAA,IACJ,OAAOC;AAAA,IACP,MAAMvf,EAAE;AAAA,IACR,OAAOA,EAAE;AAAA,IACT,UAAUA,EAAE;AAAA,IACZ,MAAMA,EAAE;AAAA,IACR,OAAO;AAAA,IACP,OAAOwf;AAAA,EACX,CAAG;AACH;AACA,SAASQ,GAAG,GAAG,GAAG;AAChB,MAAI,IAAIC,GAAG,GAAG,CAAC;AACf,MAAI,EAAE,QAAQT;AACZ,UAAM,IAAI,MAAM,6BAA6B;AAC/C,SAAO;AACT;AACA,SAASU,GAAG,GAAG,GAAG;AAChB,MAAI,IAAID,GAAG,GAAG,CAAC;AACf,MAAI,EAAE,QAAQN;AACZ,UAAM,IAAI,MAAM,2BAA2B;AAC7C,SAAO;AACT;AACA,SAASM,GAAG,GAAG,GAAG;AAChB,MAAI,IAAI,EAAE;AACV,MAAI,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC;AACjB,UAAM,IAAI,MAAM,sBAAsB;AACxC,SAAO;AACT;AACA,SAASF,GAAG,GAAG,GAAG,GAAG;AACnB,MAAI,IAAI,EAAE,cAAchgB;AACxB,IAAE,CAAC,IAAI,GAAG,EAAE,QAAQgf,GAAG/e,GAAG,GAAG,EAAE,IAAI;AACnC,WAASA,EAAEY,GAAG;AACZ,MAAE,QAAQ6e,IAAI,EAAE,MAAM,QAAQjf,GAAG,EAAE,OAAO,EAAE,IAAI,GAAG,EAAE,SAASI,KAAKJ,EAAEI,IAAI,EAAE,KAAK;AAAA,EACjF;AACD,WAASJ,EAAEI,GAAG;AACZ,QAAI,GAAGE,GAAGC,GAAGS;AACb,QAAI,EAAE,UAAUie;AACd,aAAO9e,EAAC;AACV,SAAK,KAAK;AACR,UAAIa,IAAI,EAAE,CAAC,GAAGA,EAAE,SAAS,EAAE,MAAM;AAC/B,YAAIA,EAAE,UAAUme;AACd,iBAAON,GAAG7e,CAAC;AACb,QAAAgB,EAAE,UAAUoe,MAAMpe,EAAE,QAAQse,IAAIte,EAAE,MAAM,KAAM,GAAEA,EAAE,GAAG,KAAK,aAAa,GAAG,EAAE,UAAUA,EAAE,OAAOA,EAAE,KAAK,GAAG,OAAO,EAAE,CAAC,KAAK,CAAC,IAAI,MAAMA,EAAE,QAAQse,IAAIte,EAAE,MAAM,KAAI,GAAIA,EAAE,GAAG,KAAK,UAAU,GAAG,EAAE,UAAUA,EAAE,OAAOA,EAAE,KAAK,GAAG,OAAO,EAAE,CAAC;AAAA,MAClO;AACH,QAAI6d,GAAG,WAAW;AAChB,QAAE,UAAUM,OAAO,EAAE,QAAQC,IAAI,EAAE,MAAM,QAAQlf,GAAG,EAAE,OAAO,EAAE,IAAI,GAAGA,EAAEE,CAAC;AAAA,IAC/E,CAAK,GAAG,EAAE,QAAQ8e,IAAI,EAAE,GAAG,KAAK,SAAS,GAAG,EAAE,UAAU,EAAE,OAAO,EAAE,KAAK,GAAG,EAAE,UAAUA,IAAI;AACrF,WAAK,EAAE,QAAQC,IAAI5f,IAAI,IAAI,MAAMgB,IAAI,EAAE,MAAM,MAAM,GAAG,IAAI,GAAGD,IAAI,IAAI,IAAIC,GAAG,EAAE;AAC5E,SAACS,IAAI,EAAE,MAAM,CAAC,EAAE,MAAM,KAAK,GAAG,EAAE,UAAU,EAAE,OAAO,EAAE,KAAK,OAAOzB,EAAE,EAAEe,CAAC,IAAIU;AAC5E,MAAAzB,EAAE,SAASe,IAAI;AAAA,IAChB;AAAA,EACF;AACD,WAASJ,EAAEE,GAAG;AACZ,aAAS,IAAIA,IAAI,EAAE,WAAW,EAAE,KAAK,KAAK,MAAMA,IAAI,EAAE,QAAQ,KAAK,EAAE,MAAM,QAAQD,CAAC,GAAG,EAAE,QAAQkf,IAAI,IAAI/e,IAAI,IAAIC,IAAIhB,EAAE,QAAQ,EAAEe,IAAIC;AACnI,MAAAhB,EAAEe,CAAC,EAAE,KAAK,GAAG,CAAC;AAChB,MAAE,UAAU+e,OAAO,EAAE,GAAG,KAAK,OAAO,GAAG,EAAE,UAAU,EAAE,OAAO,EAAE,KAAK,GAAGlf,EAAC;AAAA,EACxE;AACD,WAASA,IAAI;AACX,MAAE,QAAQmf,IAAI,EAAE,MAAM,QAAQ,OAAO,EAAE,CAAC;AACxC,aAASlf,KAAK;AACZ;AACF,WAAO,EAAE;AAAA,EACV;AACH;AACA,SAASuf,GAAG,GAAG,GAAG;AAChB,MAAI,IAAI,EAAE,cAAc,GAAGpgB,GAAGC,IAAI,IAAIQ;AACtC,MAAI,GAAG;AACL,QAAI,KAAK,OAAO,OAAO,IAAI;AAC3B,SAAKA,KAAK,GAAG;AACX,WAAK,IAAI,EAAEA,CAAC,GAAG,SAAS,GAAG;AACzB,QAAAR,IAAI;AACJ;AAAA,MACD;AACD,MAAAD,IAAI,EAAE,QAAQ2f,MAAM,EAAE,QAAQG,IAAI,EAAE,QAAQC,IAAI,EAAE,MAAM,KAAM,GAAE,EAAE,GAAG,KAAK/f,IAAI,cAAc,UAAU,GAAG,EAAE,UAAU,EAAE,OAAO,EAAE,KAAK,GAAG,OAAO,EAAES,CAAC;AAAA,IACnJ;AACD,IAAAR,KAAK,OAAO,EAAE;AAAA,EACf;AACH;AACA,SAASogB,GAAG,GAAG;AACb,SAAO,KAAK,KAAK,WAAW;AAC1B,IAAAD,GAAG,MAAM,CAAC;AAAA,EACd,CAAG;AACH;AACA,SAASE,GAAG,GAAG,GAAG;AAChB,MAAI,GAAG;AACP,SAAO,WAAW;AAChB,QAAItgB,IAAImgB,GAAG,MAAM,CAAC,GAAGlgB,IAAID,EAAE;AAC3B,QAAIC,MAAM,GAAG;AACX,UAAI,IAAIA;AACR,eAASQ,IAAI,GAAGE,IAAI,EAAE,QAAQF,IAAIE,GAAG,EAAEF;AACrC,YAAI,EAAEA,CAAC,EAAE,SAAS,GAAG;AACnB,cAAI,EAAE,MAAO,GAAE,EAAE,OAAOA,GAAG,CAAC;AAC5B;AAAA,QACD;AAAA,IACJ;AACD,IAAAT,EAAE,QAAQ;AAAA,EACd;AACA;AACA,SAASugB,GAAG,GAAG,GAAG,GAAG;AACnB,MAAI,GAAGvgB;AACP,MAAI,OAAO,KAAK;AACd,UAAM,IAAI,MAAK;AACjB,SAAO,WAAW;AAChB,QAAIC,IAAIkgB,GAAG,MAAM,CAAC,GAAG1f,IAAIR,EAAE;AAC3B,QAAIQ,MAAM,GAAG;AACX,MAAAT,KAAK,IAAIS,GAAG,MAAK;AACjB,eAASE,IAAI,EAAE,MAAM,GAAG,OAAO,EAAG,GAAEC,IAAI,GAAGC,IAAIb,EAAE,QAAQY,IAAIC,GAAG,EAAED;AAChE,YAAIZ,EAAEY,CAAC,EAAE,SAAS,GAAG;AACnB,UAAAZ,EAAEY,CAAC,IAAID;AACP;AAAA,QACD;AACH,MAAAC,MAAMC,KAAKb,EAAE,KAAKW,CAAC;AAAA,IACpB;AACD,IAAAV,EAAE,QAAQD;AAAA,EACd;AACA;AACA,SAASwgB,GAAG,GAAG,GAAG;AAChB,MAAI,IAAI,KAAK;AACb,MAAI,KAAK,IAAI,UAAU,SAAS,GAAG;AACjC,aAAS,IAAIN,GAAG,KAAK,KAAM,GAAE,CAAC,EAAE,OAAOlgB,IAAI,GAAGC,IAAI,EAAE,QAAQQ,GAAGT,IAAIC,GAAG,EAAED;AACtE,WAAKS,IAAI,EAAET,CAAC,GAAG,SAAS;AACtB,eAAOS,EAAE;AACb,WAAO;AAAA,EACR;AACD,SAAO,KAAK,MAAM,KAAK,OAAO6f,KAAKC,IAAI,GAAG,GAAG,CAAC,CAAC;AACjD;AACA,SAASE,GAAG,GAAG,GAAG,GAAG;AACnB,MAAI,IAAI,EAAE;AACV,SAAO,EAAE,KAAK,WAAW;AACvB,QAAIzgB,IAAImgB,GAAG,MAAM,CAAC;AAClB,KAACngB,EAAE,UAAUA,EAAE,QAAQ,CAAE,IAAG,CAAC,IAAI,EAAE,MAAM,MAAM,SAAS;AAAA,EAC5D,CAAG,GAAG,SAASA,GAAG;AACd,WAAOkgB,GAAGlgB,GAAG,CAAC,EAAE,MAAM,CAAC;AAAA,EAC3B;AACA;AACA,SAAS0gB,GAAG,GAAG,GAAG;AAChB,MAAI;AACJ,UAAQ,OAAO,KAAK,WAAW5D,KAAK,aAAa,KAAKD,MAAM,IAAI,GAAG,CAAC,MAAM,IAAI,GAAGA,MAAMM,IAAI,GAAG,CAAC;AACjG;AACA,SAASwD,GAAG,GAAG;AACb,SAAO,WAAW;AAChB,SAAK,gBAAgB,CAAC;AAAA,EAC1B;AACA;AACA,SAASC,GAAG,GAAG;AACb,SAAO,WAAW;AAChB,SAAK,kBAAkB,EAAE,OAAO,EAAE,KAAK;AAAA,EAC3C;AACA;AACA,SAASC,GAAG,GAAG,GAAG,GAAG;AACnB,MAAI,GAAG7gB,IAAI,IAAI,IAAIC;AACnB,SAAO,WAAW;AAChB,QAAIQ,IAAI,KAAK,aAAa,CAAC;AAC3B,WAAOA,MAAMT,IAAI,OAAOS,MAAM,IAAIR,IAAIA,IAAI,EAAE,IAAIQ,GAAG,CAAC;AAAA,EACxD;AACA;AACA,SAASqgB,GAAG,GAAG,GAAG,GAAG;AACnB,MAAI,GAAG9gB,IAAI,IAAI,IAAIC;AACnB,SAAO,WAAW;AAChB,QAAIQ,IAAI,KAAK,eAAe,EAAE,OAAO,EAAE,KAAK;AAC5C,WAAOA,MAAMT,IAAI,OAAOS,MAAM,IAAIR,IAAIA,IAAI,EAAE,IAAIQ,GAAG,CAAC;AAAA,EACxD;AACA;AACA,SAASsgB,GAAG,GAAG,GAAG,GAAG;AACnB,MAAI,GAAG/gB,GAAGC;AACV,SAAO,WAAW;AAChB,QAAIQ,GAAGE,IAAI,EAAE,IAAI,GAAGC;AACpB,WAAOD,KAAK,OAAO,KAAK,KAAK,gBAAgB,CAAC,KAAKF,IAAI,KAAK,aAAa,CAAC,GAAGG,IAAID,IAAI,IAAIF,MAAMG,IAAI,OAAOH,MAAM,KAAKG,MAAMZ,IAAIC,KAAKD,IAAIY,GAAGX,IAAI,EAAE,IAAIQ,GAAGE,CAAC;AAAA,EAC7J;AACA;AACA,SAASqgB,GAAG,GAAG,GAAG,GAAG;AACnB,MAAI,GAAGhhB,GAAGC;AACV,SAAO,WAAW;AAChB,QAAIQ,GAAGE,IAAI,EAAE,IAAI,GAAGC;AACpB,WAAOD,KAAK,OAAO,KAAK,KAAK,kBAAkB,EAAE,OAAO,EAAE,KAAK,KAAKF,IAAI,KAAK,eAAe,EAAE,OAAO,EAAE,KAAK,GAAGG,IAAID,IAAI,IAAIF,MAAMG,IAAI,OAAOH,MAAM,KAAKG,MAAMZ,IAAIC,KAAKD,IAAIY,GAAGX,IAAI,EAAE,IAAIQ,GAAGE,CAAC;AAAA,EAC/L;AACA;AACA,SAASsgB,GAAG,GAAG,GAAG;AAChB,MAAI,IAAItT,GAAG,CAAC,GAAG,IAAI,MAAM,cAAciQ,KAAK8C;AAC5C,SAAO,KAAK,UAAU,GAAG,OAAO,KAAK,cAAc,EAAE,QAAQM,KAAKD,IAAI,GAAG,GAAGN,GAAG,MAAM,UAAU,GAAG,CAAC,CAAC,IAAI,KAAK,QAAQ,EAAE,QAAQG,KAAKD,IAAI,CAAC,KAAK,EAAE,QAAQG,KAAKD,IAAI,GAAG,GAAG,CAAC,CAAC;AAC3K;AACA,SAASK,GAAG,GAAG,GAAG;AAChB,SAAO,SAAS,GAAG;AACjB,SAAK,aAAa,GAAG,EAAE,KAAK,MAAM,CAAC,CAAC;AAAA,EACxC;AACA;AACA,SAASC,GAAG,GAAG,GAAG;AAChB,SAAO,SAAS,GAAG;AACjB,SAAK,eAAe,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,MAAM,CAAC,CAAC;AAAA,EACzD;AACA;AACA,SAASC,GAAG,GAAG,GAAG;AAChB,MAAI,GAAG;AACP,WAASphB,IAAI;AACX,QAAIC,IAAI,EAAE,MAAM,MAAM,SAAS;AAC/B,WAAOA,MAAM,MAAM,KAAK,IAAIA,MAAMkhB,GAAG,GAAGlhB,CAAC,IAAI;AAAA,EAC9C;AACD,SAAOD,EAAE,SAAS,GAAGA;AACvB;AACA,SAASqhB,GAAG,GAAG,GAAG;AAChB,MAAI,GAAG;AACP,WAASrhB,IAAI;AACX,QAAIC,IAAI,EAAE,MAAM,MAAM,SAAS;AAC/B,WAAOA,MAAM,MAAM,KAAK,IAAIA,MAAMihB,GAAG,GAAGjhB,CAAC,IAAI;AAAA,EAC9C;AACD,SAAOD,EAAE,SAAS,GAAGA;AACvB;AACA,SAASshB,GAAG,GAAG,GAAG;AAChB,MAAI,IAAI,UAAU;AAClB,MAAI,UAAU,SAAS;AACrB,YAAQ,IAAI,KAAK,MAAM,CAAC,MAAM,EAAE;AAClC,MAAI,KAAK;AACP,WAAO,KAAK,MAAM,GAAG,IAAI;AAC3B,MAAI,OAAO,KAAK;AACd,UAAM,IAAI,MAAK;AACjB,MAAI,IAAI3T,GAAG,CAAC;AACZ,SAAO,KAAK,MAAM,IAAI,EAAE,QAAQyT,KAAKC,IAAI,GAAG,CAAC,CAAC;AAChD;AACA,SAASE,GAAG,GAAG,GAAG;AAChB,SAAO,WAAW;AAChB,IAAAtB,GAAG,MAAM,CAAC,EAAE,QAAQ,CAAC,EAAE,MAAM,MAAM,SAAS;AAAA,EAChD;AACA;AACA,SAAS,GAAG,GAAG,GAAG;AAChB,SAAO,IAAI,CAAC,GAAG,WAAW;AACxB,IAAAA,GAAG,MAAM,CAAC,EAAE,QAAQ;AAAA,EACxB;AACA;AACA,SAASuB,GAAG,GAAG;AACb,MAAI,IAAI,KAAK;AACb,SAAO,UAAU,SAAS,KAAK,MAAM,OAAO,KAAK,aAAaD,KAAK,IAAI,GAAG,CAAC,CAAC,IAAIrB,GAAG,KAAK,QAAQ,CAAC,EAAE;AACrG;AACA,SAASuB,GAAG,GAAG,GAAG;AAChB,SAAO,WAAW;AAChB,IAAAtB,GAAG,MAAM,CAAC,EAAE,WAAW,CAAC,EAAE,MAAM,MAAM,SAAS;AAAA,EACnD;AACA;AACA,SAASuB,GAAG,GAAG,GAAG;AAChB,SAAO,IAAI,CAAC,GAAG,WAAW;AACxB,IAAAvB,GAAG,MAAM,CAAC,EAAE,WAAW;AAAA,EAC3B;AACA;AACA,SAASwB,GAAG,GAAG;AACb,MAAI,IAAI,KAAK;AACb,SAAO,UAAU,SAAS,KAAK,MAAM,OAAO,KAAK,aAAaF,KAAKC,IAAI,GAAG,CAAC,CAAC,IAAIxB,GAAG,KAAK,QAAQ,CAAC,EAAE;AACrG;AACA,SAAS,GAAG,GAAG,GAAG;AAChB,MAAI,OAAO,KAAK;AACd,UAAM,IAAI,MAAK;AACjB,SAAO,WAAW;AAChB,IAAAC,GAAG,MAAM,CAAC,EAAE,OAAO;AAAA,EACvB;AACA;AACA,SAASyB,GAAG,GAAG;AACb,MAAI,IAAI,KAAK;AACb,SAAO,UAAU,SAAS,KAAK,KAAK,GAAG,GAAG,CAAC,CAAC,IAAI1B,GAAG,KAAK,KAAM,GAAE,CAAC,EAAE;AACrE;AACA,SAAS2B,GAAG,GAAG,GAAG;AAChB,SAAO,WAAW;AAChB,QAAI,IAAI,EAAE,MAAM,MAAM,SAAS;AAC/B,QAAI,OAAO,KAAK;AACd,YAAM,IAAI,MAAK;AACjB,IAAA1B,GAAG,MAAM,CAAC,EAAE,OAAO;AAAA,EACvB;AACA;AACA,SAAS2B,GAAG,GAAG;AACb,MAAI,OAAO,KAAK;AACd,UAAM,IAAI,MAAK;AACjB,SAAO,KAAK,KAAKD,GAAG,KAAK,KAAK,CAAC,CAAC;AAClC;AACA,SAASE,GAAG,GAAG;AACb,SAAO,KAAK,eAAe,IAAIvT,GAAG,CAAC;AACnC,WAAS,IAAI,KAAK,SAAS,IAAI,EAAE,QAAQ,IAAI,IAAI,MAAM,CAAC,GAAGxO,IAAI,GAAGA,IAAI,GAAG,EAAEA;AACzE,aAASC,IAAI,EAAED,CAAC,GAAGS,IAAIR,EAAE,QAAQU,IAAI,EAAEX,CAAC,IAAI,CAAE,GAAEY,GAAGC,IAAI,GAAGA,IAAIJ,GAAG,EAAEI;AACjE,OAACD,IAAIX,EAAEY,CAAC,MAAM,EAAE,KAAKD,GAAGA,EAAE,UAAUC,GAAGZ,CAAC,KAAKU,EAAE,KAAKC,CAAC;AACzD,SAAO,IAAIohB,GAAG,GAAG,KAAK,UAAU,KAAK,OAAO,KAAK,GAAG;AACtD;AACA,SAASC,GAAG,GAAG;AACb,MAAI,EAAE,QAAQ,KAAK;AACjB,UAAM,IAAI,MAAK;AACjB,WAAS,IAAI,KAAK,SAAS,IAAI,EAAE,SAAS,IAAI,EAAE,QAAQjiB,IAAI,EAAE,QAAQC,IAAI,KAAK,IAAI,GAAGD,CAAC,GAAGS,IAAI,IAAI,MAAM,CAAC,GAAGE,IAAI,GAAGA,IAAIV,GAAG,EAAEU;AAC1H,aAASC,IAAI,EAAED,CAAC,GAAGE,IAAI,EAAEF,CAAC,GAAG,IAAIC,EAAE,QAAQG,IAAIN,EAAEE,CAAC,IAAI,IAAI,MAAM,CAAC,GAAGK,GAAGS,IAAI,GAAGA,IAAI,GAAG,EAAEA;AACrF,OAACT,IAAIJ,EAAEa,CAAC,KAAKZ,EAAEY,CAAC,OAAOV,EAAEU,CAAC,IAAIT;AAClC,SAAOL,IAAI,GAAG,EAAEA;AACd,IAAAF,EAAEE,CAAC,IAAI,EAAEA,CAAC;AACZ,SAAO,IAAIqhB,GAAGvhB,GAAG,KAAK,UAAU,KAAK,OAAO,KAAK,GAAG;AACtD;AACA,SAASyhB,GAAG,GAAG;AACb,UAAQ,IAAI,IAAI,KAAM,EAAC,MAAM,OAAO,EAAE,MAAM,SAAS,GAAG;AACtD,QAAI,IAAI,EAAE,QAAQ,GAAG;AACrB,WAAO,KAAK,MAAM,IAAI,EAAE,MAAM,GAAG,CAAC,IAAI,CAAC,KAAK,MAAM;AAAA,EACtD,CAAG;AACH;AACA,SAAS,GAAG,GAAG,GAAG,GAAG;AACnB,MAAI,GAAGliB,GAAGC,IAAIiiB,GAAG,CAAC,IAAIjC,KAAKE;AAC3B,SAAO,WAAW;AAChB,QAAI1f,IAAIR,EAAE,MAAM,CAAC,GAAGU,IAAIF,EAAE;AAC1B,IAAAE,MAAM,MAAMX,KAAK,IAAIW,GAAG,KAAM,GAAE,GAAG,GAAG,CAAC,GAAGF,EAAE,KAAKT;AAAA,EACrD;AACA;AACA,SAAS,GAAG,GAAG,GAAG;AAChB,MAAI,IAAI,KAAK;AACb,SAAO,UAAU,SAAS,IAAIkgB,GAAG,KAAK,KAAI,GAAI,CAAC,EAAE,GAAG,GAAG,CAAC,IAAI,KAAK,KAAK,GAAG,GAAG,GAAG,CAAC,CAAC;AACnF;AACA,SAASiC,GAAG,GAAG;AACb,SAAO,WAAW;AAChB,QAAI,IAAI,KAAK;AACb,aAAS,KAAK,KAAK;AACjB,UAAI,CAAC,MAAM;AACT;AACJ,SAAK,EAAE,YAAY,IAAI;AAAA,EAC3B;AACA;AACA,SAASC,KAAK;AACZ,SAAO,KAAK,GAAG,cAAcD,GAAG,KAAK,GAAG,CAAC;AAC3C;AACA,SAASE,GAAG,GAAG;AACb,MAAI,IAAI,KAAK,OAAO,IAAI,KAAK;AAC7B,SAAO,KAAK,eAAe,IAAIrU,GAAG,CAAC;AACnC,WAAS,IAAI,KAAK,SAAShO,IAAI,EAAE,QAAQC,IAAI,IAAI,MAAMD,CAAC,GAAGS,IAAI,GAAGA,IAAIT,GAAG,EAAES;AACzE,aAASE,IAAI,EAAEF,CAAC,GAAGG,IAAID,EAAE,QAAQE,IAAIZ,EAAEQ,CAAC,IAAI,IAAI,MAAMG,CAAC,GAAG,GAAGG,GAAGC,IAAI,GAAGA,IAAIJ,GAAG,EAAEI;AAC9E,OAAC,IAAIL,EAAEK,CAAC,OAAOD,IAAI,EAAE,KAAK,GAAG,EAAE,UAAUC,GAAGL,CAAC,OAAO,cAAc,MAAMI,EAAE,WAAW,EAAE,WAAWF,EAAEG,CAAC,IAAID,GAAG,GAAGF,EAAEG,CAAC,GAAG,GAAG,GAAGA,GAAGH,GAAGqf,GAAG,GAAG,CAAC,CAAC;AAC7I,SAAO,IAAI8B,GAAG/hB,GAAG,KAAK,UAAU,GAAG,CAAC;AACtC;AACA,SAASqiB,GAAG,GAAG;AACb,MAAI,IAAI,KAAK,OAAO,IAAI,KAAK;AAC7B,SAAO,KAAK,eAAe,IAAIjU,GAAG,CAAC;AACnC,WAAS,IAAI,KAAK,SAASrO,IAAI,EAAE,QAAQC,IAAI,CAAA,GAAIQ,IAAI,CAAA,GAAIE,IAAI,GAAGA,IAAIX,GAAG,EAAEW;AACvE,aAASC,IAAI,EAAED,CAAC,GAAGE,IAAID,EAAE,QAAQ,GAAGG,IAAI,GAAGA,IAAIF,GAAG,EAAEE;AAClD,UAAI,IAAIH,EAAEG,CAAC,GAAG;AACZ,iBAASC,IAAI,EAAE,KAAK,GAAG,EAAE,UAAUD,GAAGH,CAAC,GAAGa,GAAGC,IAAIwe,GAAG,GAAG,CAAC,GAAGve,IAAI,GAAGC,IAAIZ,EAAE,QAAQW,IAAIC,GAAG,EAAED;AACvF,WAACF,IAAIT,EAAEW,CAAC,MAAM,GAAGF,GAAG,GAAG,GAAGE,GAAGX,GAAGU,CAAC;AACnC,QAAAzB,EAAE,KAAKe,CAAC,GAAGP,EAAE,KAAK,CAAC;AAAA,MACpB;AACL,SAAO,IAAIuhB,GAAG/hB,GAAGQ,GAAG,GAAG,CAAC;AAC1B;AACA,IAAI8hB,KAAKrO,GAAG,UAAU;AACtB,SAASsO,KAAK;AACZ,SAAO,IAAID,GAAG,KAAK,SAAS,KAAK,QAAQ;AAC3C;AACA,SAASE,GAAG,GAAG,GAAG;AAChB,MAAI,GAAG,GAAGziB;AACV,SAAO,WAAW;AAChB,QAAIC,IAAImR,GAAG,MAAM,CAAC,GAAG3Q,KAAK,KAAK,MAAM,eAAe,CAAC,GAAG2Q,GAAG,MAAM,CAAC;AAClE,WAAOnR,MAAMQ,IAAI,OAAOR,MAAM,KAAKQ,MAAM,IAAIT,IAAIA,IAAI,EAAE,IAAIC,GAAG,IAAIQ,CAAC;AAAA,EACvE;AACA;AACA,SAASiiB,GAAG,GAAG;AACb,SAAO,WAAW;AAChB,SAAK,MAAM,eAAe,CAAC;AAAA,EAC/B;AACA;AACA,SAASC,GAAG,GAAG,GAAG,GAAG;AACnB,MAAI,GAAG3iB,IAAI,IAAI,IAAIC;AACnB,SAAO,WAAW;AAChB,QAAIQ,IAAI2Q,GAAG,MAAM,CAAC;AAClB,WAAO3Q,MAAMT,IAAI,OAAOS,MAAM,IAAIR,IAAIA,IAAI,EAAE,IAAIQ,GAAG,CAAC;AAAA,EACxD;AACA;AACA,SAASmiB,GAAG,GAAG,GAAG,GAAG;AACnB,MAAI,GAAG5iB,GAAGC;AACV,SAAO,WAAW;AAChB,QAAIQ,IAAI2Q,GAAG,MAAM,CAAC,GAAGzQ,IAAI,EAAE,IAAI,GAAGC,IAAID,IAAI;AAC1C,WAAOA,KAAK,SAASC,IAAID,KAAK,KAAK,MAAM,eAAe,CAAC,GAAGyQ,GAAG,MAAM,CAAC,KAAK3Q,MAAMG,IAAI,OAAOH,MAAM,KAAKG,MAAMZ,IAAIC,KAAKD,IAAIY,GAAGX,IAAI,EAAE,IAAIQ,GAAGE,CAAC;AAAA,EAC/I;AACA;AACA,SAASkiB,GAAG,GAAG,GAAG;AAChB,MAAI,GAAG,GAAG7iB,GAAGC,IAAI,WAAW,GAAGQ,IAAI,SAASR,GAAGU;AAC/C,SAAO,WAAW;AAChB,QAAIC,IAAIuf,GAAG,MAAM,CAAC,GAAGtf,IAAID,EAAE,IAAI,IAAIA,EAAE,MAAMX,CAAC,KAAK,OAAOU,MAAMA,IAAI+hB,GAAG,CAAC,KAAK;AAC3E,KAAC7hB,MAAM,KAAKb,MAAM,OAAO,KAAK,IAAIa,GAAG,KAAI,GAAI,GAAGJ,GAAGT,IAAI,CAAC,GAAGY,EAAE,KAAK;AAAA,EACtE;AACA;AACA,SAASkiB,GAAG,GAAG,GAAG,GAAG;AACnB,MAAI,KAAK,KAAK,OAAO,cAAcnF,KAAK+C;AACxC,SAAO,KAAK,OAAO,KAAK,WAAW,GAAG+B,GAAG,GAAG,CAAC,CAAC,EAAE,GAAG,eAAe,GAAGC,GAAG,CAAC,CAAC,IAAI,OAAO,KAAK,aAAa,KAAK,WAAW,GAAGE,GAAG,GAAG,GAAGnC,GAAG,MAAM,WAAW,GAAG,CAAC,CAAC,CAAC,EAAE,KAAKoC,GAAG,KAAK,KAAK,CAAC,CAAC,IAAI,KAAK,WAAW,GAAGF,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,EAAE,GAAG,eAAe,GAAG,IAAI;AACrP;AACA,SAASI,GAAG,GAAG,GAAG,GAAG;AACnB,SAAO,SAAS,GAAG;AACjB,SAAK,MAAM,YAAY,GAAG,EAAE,KAAK,MAAM,CAAC,GAAG,CAAC;AAAA,EAChD;AACA;AACA,SAASC,GAAG,GAAG,GAAG,GAAG;AACnB,MAAI,GAAGhjB;AACP,WAASC,IAAI;AACX,QAAIQ,IAAI,EAAE,MAAM,MAAM,SAAS;AAC/B,WAAOA,MAAMT,MAAM,KAAKA,IAAIS,MAAMsiB,GAAG,GAAGtiB,GAAG,CAAC,IAAI;AAAA,EACjD;AACD,SAAOR,EAAE,SAAS,GAAGA;AACvB;AACA,SAASgjB,GAAG,GAAG,GAAG,GAAG;AACnB,MAAI,IAAI,YAAY,KAAK;AACzB,MAAI,UAAU,SAAS;AACrB,YAAQ,IAAI,KAAK,MAAM,CAAC,MAAM,EAAE;AAClC,MAAI,KAAK;AACP,WAAO,KAAK,MAAM,GAAG,IAAI;AAC3B,MAAI,OAAO,KAAK;AACd,UAAM,IAAI,MAAK;AACjB,SAAO,KAAK,MAAM,GAAGD,GAAG,GAAG,GAAG,KAAK,EAAE,CAAC;AACxC;AACA,SAAS,GAAG,GAAG;AACb,SAAO,WAAW;AAChB,SAAK,cAAc;AAAA,EACvB;AACA;AACA,SAASE,GAAG,GAAG;AACb,SAAO,WAAW;AAChB,QAAI,IAAI,EAAE,IAAI;AACd,SAAK,cAAc,KAAK;AAAA,EAC5B;AACA;AACA,SAASC,GAAG,GAAG;AACb,SAAO,KAAK,MAAM,QAAQ,OAAO,KAAK,aAAaD,GAAGzC,GAAG,MAAM,QAAQ,CAAC,CAAC,IAAI,GAAG,KAAK,OAAO,KAAK,IAAI,EAAE,CAAC;AAC1G;AACA,SAAS2C,GAAG,GAAG;AACb,SAAO,SAAS,GAAG;AACjB,SAAK,cAAc,EAAE,KAAK,MAAM,CAAC;AAAA,EACrC;AACA;AACA,SAASC,GAAG,GAAG;AACb,MAAI,GAAG;AACP,WAAS,IAAI;AACX,QAAIrjB,IAAI,EAAE,MAAM,MAAM,SAAS;AAC/B,WAAOA,MAAM,MAAM,KAAK,IAAIA,MAAMojB,GAAGpjB,CAAC,IAAI;AAAA,EAC3C;AACD,SAAO,EAAE,SAAS,GAAG;AACvB;AACA,SAASsjB,GAAG,GAAG;AACb,MAAI,IAAI;AACR,MAAI,UAAU,SAAS;AACrB,YAAQ,IAAI,KAAK,MAAM,CAAC,MAAM,EAAE;AAClC,MAAI,KAAK;AACP,WAAO,KAAK,MAAM,GAAG,IAAI;AAC3B,MAAI,OAAO,KAAK;AACd,UAAM,IAAI,MAAK;AACjB,SAAO,KAAK,MAAM,GAAGD,GAAG,CAAC,CAAC;AAC5B;AACA,SAASE,KAAK;AACZ,WAAS,IAAI,KAAK,OAAO,IAAI,KAAK,KAAK,IAAIC,MAAM,IAAI,KAAK,SAASxjB,IAAI,EAAE,QAAQC,IAAI,GAAGA,IAAID,GAAG,EAAEC;AAC/F,aAASQ,IAAI,EAAER,CAAC,GAAGU,IAAIF,EAAE,QAAQG,GAAGC,IAAI,GAAGA,IAAIF,GAAG,EAAEE;AAClD,UAAID,IAAIH,EAAEI,CAAC,GAAG;AACZ,YAAI,IAAIqf,GAAGtf,GAAG,CAAC;AACf,WAAGA,GAAG,GAAG,GAAGC,GAAGJ,GAAG;AAAA,UAChB,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE;AAAA,UAC3B,OAAO;AAAA,UACP,UAAU,EAAE;AAAA,UACZ,MAAM,EAAE;AAAA,QAClB,CAAS;AAAA,MACF;AACL,SAAO,IAAIuhB,GAAG,GAAG,KAAK,UAAU,GAAG,CAAC;AACtC;AACA,SAASyB,KAAK;AACZ,MAAI,GAAG,GAAG,IAAI,MAAM,IAAI,EAAE,KAAKzjB,IAAI,EAAE,KAAI;AACzC,SAAO,IAAI,QAAQ,SAASC,GAAGQ,GAAG;AAChC,QAAIE,IAAI,EAAE,OAAOF,EAAG,GAAEG,IAAI,EAAE,OAAO,WAAW;AAC5C,QAAEZ,MAAM,KAAKC;IACnB;AACI,MAAE,KAAK,WAAW;AAChB,UAAIY,IAAIsf,GAAG,MAAM,CAAC,GAAG,IAAItf,EAAE;AAC3B,YAAM,MAAM,KAAK,IAAI,GAAG,QAAQ,EAAE,EAAE,OAAO,KAAKF,CAAC,GAAG,EAAE,EAAE,UAAU,KAAKA,CAAC,GAAG,EAAE,EAAE,IAAI,KAAKC,CAAC,IAAIC,EAAE,KAAK;AAAA,IACrG,CAAA,GAAGb,MAAM,KAAKC;EACnB,CAAG;AACH;AACA,IAAI,KAAK;AACT,SAAS+hB,GAAG,GAAG,GAAG,GAAG,GAAG;AACtB,OAAK,UAAU,GAAG,KAAK,WAAW,GAAG,KAAK,QAAQ,GAAG,KAAK,MAAM;AAClE;AACA,SAASwB,KAAK;AACZ,SAAO,EAAE;AACX;AACA,IAAI,KAAKtP,GAAG;AACZ8N,GAAG,YAAY;AAAA,EACb,aAAaA;AAAA,EACb,QAAQK;AAAA,EACR,WAAWC;AAAA,EACX,aAAa,GAAG;AAAA,EAChB,gBAAgB,GAAG;AAAA,EACnB,QAAQP;AAAA,EACR,OAAOE;AAAA,EACP,WAAWO;AAAA,EACX,YAAYe;AAAA,EACZ,MAAM,GAAG;AAAA,EACT,OAAO,GAAG;AAAA,EACV,MAAM,GAAG;AAAA,EACT,MAAM,GAAG;AAAA,EACT,OAAO,GAAG;AAAA,EACV,MAAM,GAAG;AAAA,EACT,IAAI;AAAA,EACJ,MAAMtC;AAAA,EACN,WAAWK;AAAA,EACX,OAAOwB;AAAA,EACP,YAAYG;AAAA,EACZ,MAAME;AAAA,EACN,WAAWG;AAAA,EACX,QAAQlB;AAAA,EACR,OAAO5B;AAAA,EACP,OAAOgB;AAAA,EACP,UAAUG;AAAA,EACV,MAAMC;AAAA,EACN,aAAaE;AAAA,EACb,KAAK2B;AAAA,EACL,CAAC,OAAO,QAAQ,GAAG,GAAG,OAAO,QAAQ;AACvC;AACA,SAASC,GAAG,GAAG;AACb,WAAS,KAAK,MAAM,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,IAAI,KAAK;AAC9D;AACA,IAAIC,KAAK;AAAA,EACP,MAAM;AAAA;AAAA,EAEN,OAAO;AAAA,EACP,UAAU;AAAA,EACV,MAAMD;AACR;AACA,SAAS,GAAG,GAAG,GAAG;AAChB,WAAS,GAAG,EAAE,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,CAAC;AAC5C,QAAI,EAAE,IAAI,EAAE;AACV,YAAM,IAAI,MAAM,cAAc,CAAC,YAAY;AAC/C,SAAO;AACT;AACA,SAASE,GAAG,GAAG;AACb,MAAI,GAAG;AACP,eAAa5B,MAAM,IAAI,EAAE,KAAK,IAAI,EAAE,UAAU,IAAIwB,GAAI,IAAG,IAAIG,IAAI,OAAO9E,GAAE,GAAI,IAAI,KAAK,OAAO,OAAO,IAAI;AACzG,WAAS,IAAI,KAAK,SAAS7e,IAAI,EAAE,QAAQC,IAAI,GAAGA,IAAID,GAAG,EAAEC;AACvD,aAASQ,IAAI,EAAER,CAAC,GAAGU,IAAIF,EAAE,QAAQG,GAAGC,IAAI,GAAGA,IAAIF,GAAG,EAAEE;AAClD,OAACD,IAAIH,EAAEI,CAAC,MAAM,GAAGD,GAAG,GAAG,GAAGC,GAAGJ,GAAG,KAAK,GAAGG,GAAG,CAAC,CAAC;AACjD,SAAO,IAAIohB,GAAG,GAAG,KAAK,UAAU,GAAG,CAAC;AACtC;AACA9N,GAAG,UAAU,YAAYmM;AACzBnM,GAAG,UAAU,aAAa0P;AAC1B,MAAMC,KAAK,CAAC,MAAM,MAAM;AACxB,SAAS,GAAG,GAAG;AAAA,EACb,aAAa;AAAA,EACb,QAAQ;AAAA,EACR,WAAW;AAAA,EACX,UAAU7jB;AACZ,GAAG;AACD,SAAO,iBAAiB,MAAM;AAAA,IAC5B,MAAM,EAAE,OAAO,GAAG,YAAY,IAAI,cAAc,GAAI;AAAA,IACpD,aAAa,EAAE,OAAO,GAAG,YAAY,IAAI,cAAc,GAAI;AAAA,IAC3D,QAAQ,EAAE,OAAO,GAAG,YAAY,IAAI,cAAc,GAAI;AAAA,IACtD,WAAW,EAAE,OAAO,GAAG,YAAY,IAAI,cAAc,GAAI;AAAA,IACzD,GAAG,EAAE,OAAOA,EAAG;AAAA,EACnB,CAAG;AACH;AACA,SAAS8jB,GAAG,GAAG,GAAG,GAAG;AACnB,OAAK,IAAI,GAAG,KAAK,IAAI,GAAG,KAAK,IAAI;AACnC;AACAA,GAAG,YAAY;AAAA,EACb,aAAaA;AAAA,EACb,OAAO,SAAS,GAAG;AACjB,WAAO,MAAM,IAAI,OAAO,IAAIA,GAAG,KAAK,IAAI,GAAG,KAAK,GAAG,KAAK,CAAC;AAAA,EAC1D;AAAA,EACD,WAAW,SAAS,GAAG,GAAG;AACxB,WAAO,MAAM,IAAI,MAAM,IAAI,OAAO,IAAIA,GAAG,KAAK,GAAG,KAAK,IAAI,KAAK,IAAI,GAAG,KAAK,IAAI,KAAK,IAAI,CAAC;AAAA,EAC1F;AAAA,EACD,OAAO,SAAS,GAAG;AACjB,WAAO,CAAC,EAAE,CAAC,IAAI,KAAK,IAAI,KAAK,GAAG,EAAE,CAAC,IAAI,KAAK,IAAI,KAAK,CAAC;AAAA,EACvD;AAAA,EACD,QAAQ,SAAS,GAAG;AAClB,WAAO,IAAI,KAAK,IAAI,KAAK;AAAA,EAC1B;AAAA,EACD,QAAQ,SAAS,GAAG;AAClB,WAAO,IAAI,KAAK,IAAI,KAAK;AAAA,EAC1B;AAAA,EACD,QAAQ,SAAS,GAAG;AAClB,WAAO,EAAE,EAAE,CAAC,IAAI,KAAK,KAAK,KAAK,IAAI,EAAE,CAAC,IAAI,KAAK,KAAK,KAAK,CAAC;AAAA,EAC3D;AAAA,EACD,SAAS,SAAS,GAAG;AACnB,YAAQ,IAAI,KAAK,KAAK,KAAK;AAAA,EAC5B;AAAA,EACD,SAAS,SAAS,GAAG;AACnB,YAAQ,IAAI,KAAK,KAAK,KAAK;AAAA,EAC5B;AAAA,EACD,UAAU,SAAS,GAAG;AACpB,WAAO,EAAE,KAAM,EAAC,OAAO,EAAE,MAAK,EAAG,IAAI,KAAK,SAAS,IAAI,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;AAAA,EAC1E;AAAA,EACD,UAAU,SAAS,GAAG;AACpB,WAAO,EAAE,KAAM,EAAC,OAAO,EAAE,MAAK,EAAG,IAAI,KAAK,SAAS,IAAI,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;AAAA,EAC1E;AAAA,EACD,UAAU,WAAW;AACnB,WAAO,eAAe,KAAK,IAAI,MAAM,KAAK,IAAI,aAAa,KAAK,IAAI;AAAA,EACrE;AACH;AACA,IAAIC,KAAK,IAAID,GAAG,GAAG,GAAG,CAAC;AACvBA,GAAG;AACH,SAASE,GAAG,GAAG;AACb,IAAE,yBAAwB;AAC5B;AACA,SAASC,GAAG,GAAG;AACb,IAAE,eAAc,GAAI,EAAE,yBAAwB;AAChD;AACA,SAASC,GAAG,GAAG;AACb,UAAQ,CAAC,EAAE,WAAW,EAAE,SAAS,YAAY,CAAC,EAAE;AAClD;AACA,SAASC,KAAK;AACZ,MAAI,IAAI;AACR,SAAO,aAAa,cAAc,IAAI,EAAE,mBAAmB,GAAG,EAAE,aAAa,SAAS,KAAK,IAAI,EAAE,QAAQ,SAAS,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,MAAM,QAAQ,OAAO,EAAE,OAAO,QAAQ,KAAK,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,aAAa,EAAE,YAAY,CAAC;AAC1Q;AACA,SAASC,KAAK;AACZ,SAAO,KAAK,UAAUL;AACxB;AACA,SAASM,GAAG,GAAG;AACb,SAAO,CAAC,EAAE,UAAU,EAAE,cAAc,IAAI,OAAO,EAAE,YAAY,IAAI,SAAS,EAAE,UAAU,KAAK;AAC7F;AACA,SAASC,KAAK;AACZ,SAAO,UAAU,kBAAkB,kBAAkB;AACvD;AACA,SAASC,GAAG,GAAG,GAAG,GAAG;AACnB,MAAI,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,GAAGvkB,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,GAAGC,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,GAAGQ,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;AACzI,SAAO,EAAE;AAAA,IACPT,IAAI,KAAK,IAAIA,KAAK,IAAI,KAAK,IAAI,GAAG,CAAC,KAAK,KAAK,IAAI,GAAGA,CAAC;AAAA,IACrDS,IAAIR,KAAKA,IAAIQ,KAAK,IAAI,KAAK,IAAI,GAAGR,CAAC,KAAK,KAAK,IAAI,GAAGQ,CAAC;AAAA,EACzD;AACA;AACA,SAAS+jB,KAAK;AACZ,MAAI,IAAIN,IAAI,IAAIC,IAAI,IAAII,IAAI,IAAIF,IAAIrkB,IAAIskB,IAAIrkB,IAAI,CAAC,GAAG,IAAI,CAAC,GAAGQ,IAAI,CAAC,CAAC,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,GAAGE,IAAI,KAAKC,IAAIqd,IAAIpd,IAAIuM,GAAG,SAAS,QAAQ,KAAK,GAAG,GAAGrM,GAAGC,GAAGS,IAAI,KAAKC,IAAI,KAAKC,IAAI,GAAGC,IAAI;AAC3L,WAASK,EAAE8H,GAAG;AACZ,IAAAA,EAAE,SAAS,UAAUqa,EAAE,EAAE,GAAG,cAAc1a,GAAG,EAAE,SAAS,GAAI,CAAA,EAAE,GAAG,kBAAkBC,CAAC,EAAE,GAAG,iBAAiBC,CAAC,EAAE,OAAO5J,CAAC,EAAE,GAAG,mBAAmB6J,CAAC,EAAE,GAAG,kBAAkBC,CAAC,EAAE,GAAG,kCAAkCsB,EAAE,EAAE,MAAM,+BAA+B,eAAe;AAAA,EACtQ;AACD,EAAAnJ,EAAE,YAAY,SAAS8H,GAAGE,GAAGC,GAAGF,GAAG;AACjC,QAAIG,IAAIJ,EAAE,YAAYA,EAAE,UAAW,IAAGA;AACtC,IAAAI,EAAE,SAAS,UAAUia,EAAE,GAAGra,MAAMI,IAAIjI,EAAE6H,GAAGE,GAAGC,GAAGF,CAAC,IAAIG,EAAE,UAAS,EAAG,KAAK,WAAW;AAChF,MAAAhI,EAAE,MAAM,SAAS,EAAE,MAAM6H,CAAC,EAAE,QAAQ,KAAK,MAAM,OAAOC,KAAK,aAAaA,EAAE,MAAM,MAAM,SAAS,IAAIA,CAAC,EAAE;IAC5G,CAAK;AAAA,EACL,GAAKhI,EAAE,UAAU,SAAS8H,GAAGE,GAAGC,GAAGF,GAAG;AAClC,IAAA/H,EAAE,QAAQ8H,GAAG,WAAW;AACtB,UAAII,IAAI,KAAK,OAAO,GAAGW,IAAI,OAAOb,KAAK,aAAaA,EAAE,MAAM,MAAM,SAAS,IAAIA;AAC/E,aAAOE,IAAIW;AAAA,IACjB,GAAOZ,GAAGF,CAAC;AAAA,EACX,GAAK/H,EAAE,UAAU,SAAS8H,GAAGE,GAAGC,GAAGF,GAAG;AAClC,IAAA/H,EAAE,UAAU8H,GAAG,WAAW;AACxB,UAAII,IAAI,EAAE,MAAM,MAAM,SAAS,GAAGW,IAAI,KAAK,QAAQE,IAAId,KAAK,OAAOnI,EAAEoI,CAAC,IAAI,OAAOD,KAAK,aAAaA,EAAE,MAAM,MAAM,SAAS,IAAIA,GAAGU,IAAIE,EAAE,OAAOE,CAAC,GAAGT,IAAI,OAAON,KAAK,aAAaA,EAAE,MAAM,MAAM,SAAS,IAAIA;AAC1M,aAAO,EAAEnI,EAAED,EAAEiJ,GAAGP,CAAC,GAAGS,GAAGJ,CAAC,GAAGT,GAAG1J,CAAC;AAAA,IACrC,GAAOyJ,GAAGF,CAAC;AAAA,EACX,GAAK/H,EAAE,cAAc,SAAS8H,GAAGE,GAAGC,GAAGF,GAAG;AACtC,IAAA/H,EAAE,UAAU8H,GAAG,WAAW;AACxB,aAAO,EAAE,KAAK,OAAO;AAAA,QACnB,OAAOE,KAAK,aAAaA,EAAE,MAAM,MAAM,SAAS,IAAIA;AAAA,QACpD,OAAOC,KAAK,aAAaA,EAAE,MAAM,MAAM,SAAS,IAAIA;AAAA,MAC5D,GAAS,EAAE,MAAM,MAAM,SAAS,GAAGzJ,CAAC;AAAA,IACpC,GAAO,MAAMuJ,CAAC;AAAA,EACd,GAAK/H,EAAE,cAAc,SAAS8H,GAAGE,GAAGC,GAAGF,GAAGG,GAAG;AACzC,IAAAlI,EAAE,UAAU8H,GAAG,WAAW;AACxB,UAAIe,IAAI,EAAE,MAAM,MAAM,SAAS,GAAGE,IAAI,KAAK,QAAQJ,IAAIZ,KAAK,OAAOjI,EAAE+I,CAAC,IAAI,OAAOd,KAAK,aAAaA,EAAE,MAAM,MAAM,SAAS,IAAIA;AAC9H,aAAO,EAAE+Z,GAAG,UAAUnZ,EAAE,CAAC,GAAGA,EAAE,CAAC,CAAC,EAAE,MAAMI,EAAE,CAAC,EAAE;AAAA,QAC3C,OAAOf,KAAK,aAAa,CAACA,EAAE,MAAM,MAAM,SAAS,IAAI,CAACA;AAAA,QACtD,OAAOC,KAAK,aAAa,CAACA,EAAE,MAAM,MAAM,SAAS,IAAI,CAACA;AAAA,MAC9D,GAASY,GAAGrK,CAAC;AAAA,IACb,GAAOuJ,GAAGG,CAAC;AAAA,EACX;AACE,WAAStI,EAAEkI,GAAGE,GAAG;AACf,WAAOA,IAAI,KAAK,IAAIhK,EAAE,CAAC,GAAG,KAAK,IAAIA,EAAE,CAAC,GAAGgK,CAAC,CAAC,GAAGA,MAAMF,EAAE,IAAIA,IAAI,IAAI+Z,GAAG7Z,GAAGF,EAAE,GAAGA,EAAE,CAAC;AAAA,EACjF;AACD,WAASjI,EAAEiI,GAAGE,GAAGC,GAAG;AAClB,QAAIF,IAAIC,EAAE,CAAC,IAAIC,EAAE,CAAC,IAAIH,EAAE,GAAGI,IAAIF,EAAE,CAAC,IAAIC,EAAE,CAAC,IAAIH,EAAE;AAC/C,WAAOC,MAAMD,EAAE,KAAKI,MAAMJ,EAAE,IAAIA,IAAI,IAAI+Z,GAAG/Z,EAAE,GAAGC,GAAGG,CAAC;AAAA,EACrD;AACD,WAASpI,EAAEgI,GAAG;AACZ,WAAO,EAAE,CAACA,EAAE,CAAC,EAAE,CAAC,IAAI,CAACA,EAAE,CAAC,EAAE,CAAC,KAAK,IAAI,CAACA,EAAE,CAAC,EAAE,CAAC,IAAI,CAACA,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;AAAA,EAC7D;AACD,WAAS7H,EAAE6H,GAAGE,GAAGC,GAAGF,GAAG;AACrB,IAAAD,EAAE,GAAG,cAAc,WAAW;AAC5B,MAAA5H,EAAE,MAAM,SAAS,EAAE,MAAM6H,CAAC,EAAE;IAClC,CAAK,EAAE,GAAG,2BAA2B,WAAW;AAC1C,MAAA7H,EAAE,MAAM,SAAS,EAAE,MAAM6H,CAAC,EAAE;IAClC,CAAK,EAAE,MAAM,QAAQ,WAAW;AAC1B,UAAIG,IAAI,MAAMW,IAAI,WAAWE,IAAI7I,EAAEgI,GAAGW,CAAC,EAAE,MAAMd,CAAC,GAAGY,IAAI,EAAE,MAAMT,GAAGW,CAAC,GAAGP,IAAIL,KAAK,OAAOnI,EAAE6I,CAAC,IAAI,OAAOV,KAAK,aAAaA,EAAE,MAAMC,GAAGW,CAAC,IAAIZ,GAAGa,IAAI,KAAK,IAAIH,EAAE,CAAC,EAAE,CAAC,IAAIA,EAAE,CAAC,EAAE,CAAC,GAAGA,EAAE,CAAC,EAAE,CAAC,IAAIA,EAAE,CAAC,EAAE,CAAC,CAAC,GAAGK,KAAKd,EAAE,QAAQ,KAAK,OAAOF,KAAK,aAAaA,EAAE,MAAME,GAAGW,CAAC,IAAIb,GAAGiB,IAAItK,EAAEqK,GAAG,OAAOV,CAAC,EAAE,OAAOQ,IAAIE,GAAG,CAAC,GAAG,GAAG,OAAOV,CAAC,EAAE,OAAOQ,IAAI,GAAG,CAAC,CAAC;AAC/T,aAAO,SAASI,GAAG;AACjB,YAAIA,MAAM;AACR,UAAAA,IAAI;AAAA,aACD;AACH,cAAIb,IAAIY,EAAEC,CAAC,GAAGN,IAAIE,IAAIT,EAAE,CAAC;AACzB,UAAAa,IAAI,IAAI2Y,GAAGjZ,GAAGN,EAAE,CAAC,IAAID,EAAE,CAAC,IAAIO,GAAGN,EAAE,CAAC,IAAID,EAAE,CAAC,IAAIO,CAAC;AAAA,QAC/C;AACD,QAAAG,EAAE,KAAK,MAAMG,CAAC;AAAA,MACtB;AAAA,IACA,CAAK;AAAA,EACF;AACD,WAAShJ,EAAE4H,GAAGE,GAAGC,GAAG;AAClB,WAAO,CAACA,KAAKH,EAAE,aAAa,IAAIN,EAAEM,GAAGE,CAAC;AAAA,EACvC;AACD,WAASR,EAAEM,GAAGE,GAAG;AACf,SAAK,OAAOF,GAAG,KAAK,OAAOE,GAAG,KAAK,SAAS,GAAG,KAAK,cAAc,MAAM,KAAK,SAAS,EAAE,MAAMF,GAAGE,CAAC,GAAG,KAAK,OAAO;AAAA,EAClH;AACD,EAAAR,EAAE,YAAY;AAAA,IACZ,OAAO,SAASM,GAAG;AACjB,aAAOA,MAAM,KAAK,cAAcA,IAAI;AAAA,IACrC;AAAA,IACD,OAAO,WAAW;AAChB,aAAO,EAAE,KAAK,WAAW,MAAM,KAAK,KAAK,YAAY,MAAM,KAAK,KAAK,OAAO,IAAI;AAAA,IACjF;AAAA,IACD,MAAM,SAASA,GAAGE,GAAG;AACnB,aAAO,KAAK,SAASF,MAAM,YAAY,KAAK,MAAM,CAAC,IAAIE,EAAE,OAAO,KAAK,MAAM,CAAC,CAAC,IAAI,KAAK,UAAUF,MAAM,YAAY,KAAK,OAAO,CAAC,IAAIE,EAAE,OAAO,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,UAAUF,MAAM,YAAY,KAAK,OAAO,CAAC,IAAIE,EAAE,OAAO,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,KAAK,SAASA,GAAG,KAAK,KAAK,MAAM,GAAG;AAAA,IACrR;AAAA,IACD,KAAK,WAAW;AACd,aAAO,EAAE,KAAK,WAAW,MAAM,OAAO,KAAK,KAAK,WAAW,KAAK,KAAK,KAAK,IAAI;AAAA,IAC/E;AAAA,IACD,MAAM,SAASF,GAAG;AAChB,UAAIE,IAAImK,GAAG,KAAK,IAAI,EAAE,MAAK;AAC3B,MAAAvT,EAAE;AAAA,QACAkJ;AAAA,QACA,KAAK;AAAA,QACL,IAAI,GAAGA,GAAG;AAAA,UACR,aAAa,KAAK;AAAA,UAClB,QAAQ9H;AAAA,UACR,MAAM8H;AAAA,UACN,WAAW,KAAK,KAAK;AAAA,UACrB,UAAUlJ;AAAA,QACpB,CAAS;AAAA,QACDoJ;AAAA,MACR;AAAA,IACK;AAAA,EACL;AACE,WAASP,EAAEK,MAAME,GAAG;AAClB,QAAI,CAAC,EAAE,MAAM,MAAM,SAAS;AAC1B;AACF,QAAIC,IAAI/H,EAAE,MAAM8H,CAAC,EAAE,MAAMF,CAAC,GAAGC,IAAI,KAAK,QAAQG,IAAI,KAAK,IAAIlK,EAAE,CAAC,GAAG,KAAK,IAAIA,EAAE,CAAC,GAAG+J,EAAE,IAAI,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,SAAS,CAAC,CAAC,CAAC,GAAGc,IAAIwJ,GAAGvK,CAAC;AACvI,QAAIG,EAAE;AACJ,OAACA,EAAE,MAAM,CAAC,EAAE,CAAC,MAAMY,EAAE,CAAC,KAAKZ,EAAE,MAAM,CAAC,EAAE,CAAC,MAAMY,EAAE,CAAC,OAAOZ,EAAE,MAAM,CAAC,IAAIF,EAAE,OAAOE,EAAE,MAAM,CAAC,IAAIY,CAAC,IAAI,aAAaZ,EAAE,KAAK;AAAA,SAChH;AACH,UAAIF,EAAE,MAAMG;AACV;AACF,MAAAD,EAAE,QAAQ,CAACY,GAAGd,EAAE,OAAOc,CAAC,CAAC,GAAGsV,GAAG,IAAI,GAAGlW,EAAE,MAAK;AAAA,IAC9C;AACD,IAAA+Z,GAAGla,CAAC,GAAGG,EAAE,QAAQ,WAAWc,GAAGtJ,CAAC,GAAGwI,EAAE,KAAK,SAAS,EAAEpI,EAAED,EAAEmI,GAAGG,CAAC,GAAGD,EAAE,MAAM,CAAC,GAAGA,EAAE,MAAM,CAAC,CAAC,GAAGA,EAAE,QAAQzJ,CAAC,CAAC;AACrG,aAASuK,IAAI;AACX,MAAAd,EAAE,QAAQ,MAAMA,EAAE,IAAG;AAAA,IACtB;AAAA,EACF;AACD,WAASP,EAAEI,MAAME,GAAG;AAClB,QAAIjJ,KAAK,CAAC,EAAE,MAAM,MAAM,SAAS;AAC/B;AACF,QAAIkJ,IAAIH,EAAE,eAAeC,IAAI7H,EAAE,MAAM8H,GAAG,EAAE,EAAE,MAAMF,CAAC,GAAGI,IAAIiK,GAAGrK,EAAE,IAAI,EAAE,GAAG,kBAAkBQ,GAAG,EAAE,EAAE,GAAG,gBAAgBQ,GAAG,EAAE,GAAGD,IAAIwJ,GAAGvK,GAAGG,CAAC,GAAGc,IAAIjB,EAAE,SAASa,IAAIb,EAAE;AAC/J,IAAA2K,GAAG3K,EAAE,IAAI,GAAGia,GAAGja,CAAC,GAAGC,EAAE,QAAQ,CAACc,GAAG,KAAK,OAAO,OAAOA,CAAC,CAAC,GAAGsV,GAAG,IAAI,GAAGpW,EAAE;AACrE,aAASO,EAAEU,IAAI;AACb,UAAIgZ,GAAGhZ,EAAE,GAAG,CAACjB,EAAE,OAAO;AACpB,YAAI,KAAKiB,GAAG,UAAUD,GAAGE,IAAID,GAAG,UAAUL;AAC1C,QAAAZ,EAAE,QAAQ,KAAK,KAAKkB,IAAIA,IAAIvJ;AAAA,MAC7B;AACD,MAAAqI,EAAE,MAAMiB,EAAE,EAAE,KAAK,SAAS,EAAEnJ,EAAEkI,EAAE,KAAK,QAAQA,EAAE,MAAM,CAAC,IAAIsK,GAAGrJ,IAAIf,CAAC,GAAGF,EAAE,MAAM,CAAC,CAAC,GAAGA,EAAE,QAAQvJ,CAAC,CAAC;AAAA,IAC/F;AACD,aAASsK,EAAEE,IAAI;AACb,MAAAd,EAAE,GAAG,+BAA+B,IAAI,GAAGwK,GAAG1J,GAAG,MAAMjB,EAAE,KAAK,GAAGia,GAAGhZ,EAAE,GAAGjB,EAAE,MAAMiB,EAAE,EAAE;IACtF;AAAA,EACF;AACD,WAASrB,EAAEG,MAAME,GAAG;AAClB,QAAI,EAAE,MAAM,MAAM,SAAS,GAAG;AAC5B,UAAIC,IAAI,KAAK,QAAQF,IAAIsK,GAAGvK,EAAE,iBAAiBA,EAAE,eAAe,CAAC,IAAIA,GAAG,IAAI,GAAGI,IAAID,EAAE,OAAOF,CAAC,GAAGc,IAAIZ,EAAE,KAAKH,EAAE,WAAW,MAAM,IAAIiB,IAAI,EAAElJ,EAAED,EAAEqI,GAAGY,CAAC,GAAGd,GAAGG,CAAC,GAAG,EAAE,MAAM,MAAMF,CAAC,GAAGxJ,CAAC;AAC7K,MAAAwjB,GAAGla,CAAC,GAAGpJ,IAAI,IAAIyT,GAAG,IAAI,EAAE,WAAU,EAAG,SAASzT,CAAC,EAAE,KAAKuB,GAAG8I,GAAGhB,GAAGD,CAAC,IAAIqK,GAAG,IAAI,EAAE,KAAKnS,EAAE,WAAW+I,GAAGhB,GAAGD,CAAC;AAAA,IACvG;AAAA,EACF;AACD,WAASF,EAAEE,MAAME,GAAG;AAClB,QAAI,EAAE,MAAM,MAAM,SAAS,GAAG;AAC5B,UAAIC,IAAIH,EAAE,SAASC,IAAIE,EAAE,QAAQC,IAAIhI,EAAE,MAAM8H,GAAGF,EAAE,eAAe,WAAWC,CAAC,EAAE,MAAMD,CAAC,GAAGe,GAAGE,GAAGJ,GAAGL;AAClG,WAAKyZ,GAAGja,CAAC,GAAGiB,IAAI,GAAGA,IAAIhB,GAAG,EAAEgB;AAC1B,QAAAJ,IAAIV,EAAEc,CAAC,GAAGT,IAAI+J,GAAG1J,GAAG,IAAI,GAAGL,IAAI,CAACA,GAAG,KAAK,OAAO,OAAOA,CAAC,GAAGK,EAAE,UAAU,GAAGT,EAAE,SAAS,CAACA,EAAE,UAAUA,EAAE,OAAO,CAAC,MAAMI,EAAE,CAAC,MAAMJ,EAAE,SAASI,GAAGJ,EAAE,OAAO,MAAMA,EAAE,SAASI,GAAGO,IAAI,IAAIX,EAAE,OAAO,IAAI,CAAC,CAAC;AAC9L,YAAM,IAAI,aAAa,CAAC,IAAIW,MAAMX,EAAE,OAAO,MAAMpJ,IAAIwJ,EAAE,CAAC,GAAG,IAAI,WAAW,WAAW;AACnF,YAAI;AAAA,MACZ,GAAS9I,CAAC,IAAI2e,GAAG,IAAI,GAAGjW,EAAE,MAAK;AAAA,IAC1B;AAAA,EACF;AACD,WAASL,EAAEC,MAAME,GAAG;AAClB,QAAI,KAAK,WAAW;AAClB,UAAIC,IAAI/H,EAAE,MAAM8H,CAAC,EAAE,MAAMF,CAAC,GAAGC,IAAID,EAAE,gBAAgBI,IAAIH,EAAE,QAAQc,GAAGE,GAAGJ,GAAGL;AAC1E,WAAK0Z,GAAGla,CAAC,GAAGe,IAAI,GAAGA,IAAIX,GAAG,EAAEW;AAC1B,QAAAE,IAAIhB,EAAEc,CAAC,GAAGF,IAAI0J,GAAGtJ,GAAG,IAAI,GAAGd,EAAE,UAAUA,EAAE,OAAO,CAAC,MAAMc,EAAE,aAAad,EAAE,OAAO,CAAC,IAAIU,IAAIV,EAAE,UAAUA,EAAE,OAAO,CAAC,MAAMc,EAAE,eAAed,EAAE,OAAO,CAAC,IAAIU;AACrJ,UAAII,IAAId,EAAE,KAAK,QAAQA,EAAE,QAAQ;AAC/B,YAAIa,IAAIb,EAAE,OAAO,CAAC,GAAGe,KAAKf,EAAE,OAAO,CAAC,GAAG,KAAKA,EAAE,OAAO,CAAC,GAAGgB,IAAIhB,EAAE,OAAO,CAAC,GAAGiB,KAAKA,IAAI,GAAG,CAAC,IAAIJ,EAAE,CAAC,KAAKI,KAAKA,IAAI,GAAG,CAAC,IAAIJ,EAAE,CAAC,KAAKI,GAAGb,KAAKA,IAAIY,EAAE,CAAC,IAAID,GAAG,CAAC,KAAKX,KAAKA,IAAIY,EAAE,CAAC,IAAID,GAAG,CAAC,KAAKX;AACjL,QAAAU,IAAInJ,EAAEmJ,GAAG,KAAK,KAAKG,IAAIb,CAAC,CAAC,GAAGM,IAAI,EAAEG,EAAE,CAAC,IAAI,GAAG,CAAC,KAAK,IAAIA,EAAE,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,GAAGR,IAAI,EAAEU,GAAG,CAAC,IAAIC,EAAE,CAAC,KAAK,IAAID,GAAG,CAAC,IAAIC,EAAE,CAAC,KAAK,CAAC;AAAA,MAC7H,WAAiBhB,EAAE;AACX,QAAAU,IAAIV,EAAE,OAAO,CAAC,GAAGK,IAAIL,EAAE,OAAO,CAAC;AAAA;AAE/B;AACF,MAAAA,EAAE,KAAK,SAAS,EAAEpI,EAAEkJ,GAAGJ,GAAGL,CAAC,GAAGL,EAAE,QAAQzJ,CAAC,CAAC;AAAA,IAC3C;AAAA,EACF;AACD,WAAS2K,GAAGrB,MAAME,GAAG;AACnB,QAAI,KAAK,WAAW;AAClB,UAAIC,IAAI/H,EAAE,MAAM8H,CAAC,EAAE,MAAMF,CAAC,GAAGC,IAAID,EAAE,gBAAgBI,IAAIH,EAAE,QAAQc,GAAGE;AACpE,WAAKgZ,GAAGja,CAAC,GAAG/I,KAAK,aAAaA,CAAC,GAAGA,IAAI,WAAW,WAAW;AAC1D,QAAAA,IAAI;AAAA,MACZ,GAASS,CAAC,GAAGqJ,IAAI,GAAGA,IAAIX,GAAG,EAAEW;AACrB,QAAAE,IAAIhB,EAAEc,CAAC,GAAGZ,EAAE,UAAUA,EAAE,OAAO,CAAC,MAAMc,EAAE,aAAa,OAAOd,EAAE,SAASA,EAAE,UAAUA,EAAE,OAAO,CAAC,MAAMc,EAAE,cAAc,OAAOd,EAAE;AAC9H,UAAIA,EAAE,UAAU,CAACA,EAAE,WAAWA,EAAE,SAASA,EAAE,QAAQ,OAAOA,EAAE,SAASA,EAAE;AACrE,QAAAA,EAAE,OAAO,CAAC,IAAI,KAAK,OAAO,OAAOA,EAAE,OAAO,CAAC,CAAC;AAAA,eACrCA,EAAE,OAAOA,EAAE,SAAS,MAAMc,IAAIsJ,GAAGtJ,GAAG,IAAI,GAAG,KAAK,MAAMjK,EAAE,CAAC,IAAIiK,EAAE,CAAC,GAAGjK,EAAE,CAAC,IAAIiK,EAAE,CAAC,CAAC,IAAIpJ,IAAI;AAC7F,YAAIgJ,IAAIwJ,GAAG,IAAI,EAAE,GAAG,eAAe;AACnC,QAAAxJ,KAAKA,EAAE,MAAM,MAAM,SAAS;AAAA,MAC7B;AAAA,IACF;AAAA,EACF;AACD,SAAO3I,EAAE,aAAa,SAAS8H,GAAG;AAChC,WAAO,UAAU,UAAU,IAAI,OAAOA,KAAK,aAAaA,IAAI8Z,GAAG,CAAC9Z,CAAC,GAAG9H,KAAK;AAAA,EAC7E,GAAKA,EAAE,SAAS,SAAS8H,GAAG;AACxB,WAAO,UAAU,UAAU,IAAI,OAAOA,KAAK,aAAaA,IAAI8Z,GAAG,CAAC,CAAC9Z,CAAC,GAAG9H,KAAK;AAAA,EAC9E,GAAKA,EAAE,YAAY,SAAS8H,GAAG;AAC3B,WAAO,UAAU,UAAU/J,IAAI,OAAO+J,KAAK,aAAaA,IAAI8Z,GAAG,CAAC,CAAC9Z,CAAC,GAAG9H,KAAKjC;AAAA,EAC9E,GAAKiC,EAAE,SAAS,SAAS8H,GAAG;AACxB,WAAO,UAAU,UAAU,IAAI,OAAOA,KAAK,aAAaA,IAAI8Z,GAAG,CAAC,CAAC,CAAC9Z,EAAE,CAAC,EAAE,CAAC,GAAG,CAACA,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAACA,EAAE,CAAC,EAAE,CAAC,GAAG,CAACA,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG9H,KAAK;AAAA,EACvH,GAAKA,EAAE,cAAc,SAAS8H,GAAG;AAC7B,WAAO,UAAU,UAAU9J,EAAE,CAAC,IAAI,CAAC8J,EAAE,CAAC,GAAG9J,EAAE,CAAC,IAAI,CAAC8J,EAAE,CAAC,GAAG9H,KAAK,CAAChC,EAAE,CAAC,GAAGA,EAAE,CAAC,CAAC;AAAA,EAC3E,GAAKgC,EAAE,kBAAkB,SAAS8H,GAAG;AACjC,WAAO,UAAU,UAAUtJ,EAAE,CAAC,EAAE,CAAC,IAAI,CAACsJ,EAAE,CAAC,EAAE,CAAC,GAAGtJ,EAAE,CAAC,EAAE,CAAC,IAAI,CAACsJ,EAAE,CAAC,EAAE,CAAC,GAAGtJ,EAAE,CAAC,EAAE,CAAC,IAAI,CAACsJ,EAAE,CAAC,EAAE,CAAC,GAAGtJ,EAAE,CAAC,EAAE,CAAC,IAAI,CAACsJ,EAAE,CAAC,EAAE,CAAC,GAAG9H,KAAK,CAAC,CAACxB,EAAE,CAAC,EAAE,CAAC,GAAGA,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,CAACA,EAAE,CAAC,EAAE,CAAC,GAAGA,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAAA,EAC3J,GAAKwB,EAAE,YAAY,SAAS8H,GAAG;AAC3B,WAAO,UAAU,UAAU,IAAIA,GAAG9H,KAAK;AAAA,EAC3C,GAAKA,EAAE,WAAW,SAAS8H,GAAG;AAC1B,WAAO,UAAU,UAAUpJ,IAAI,CAACoJ,GAAG9H,KAAKtB;AAAA,EAC5C,GAAKsB,EAAE,cAAc,SAAS8H,GAAG;AAC7B,WAAO,UAAU,UAAUnJ,IAAImJ,GAAG9H,KAAKrB;AAAA,EAC3C,GAAKqB,EAAE,KAAK,WAAW;AACnB,QAAI8H,IAAIlJ,EAAE,GAAG,MAAMA,GAAG,SAAS;AAC/B,WAAOkJ,MAAMlJ,IAAIoB,IAAI8H;AAAA,EACzB,GAAK9H,EAAE,gBAAgB,SAAS8H,GAAG;AAC/B,WAAO,UAAU,UAAUpI,KAAKoI,IAAI,CAACA,KAAKA,GAAG9H,KAAK,KAAK,KAAKN,CAAC;AAAA,EACjE,GAAKM,EAAE,cAAc,SAAS8H,GAAG;AAC7B,WAAO,UAAU,UAAUnI,IAAI,CAACmI,GAAG9H,KAAKL;AAAA,EACzC,GAAEK;AACL;AACA,MAAMwiB,KAAK;AACX,SAASC,KAAK;AACd;AACA,MAAMC,KAAK;AAAA,EACT,QAAQD;AAAA,EACR,SAASA;AAAA,EACT,QAAQA;AAAA,EACR,SAASA;AAAA,EACT,WAAWA;AAAA,EACX,WAAWA;AAAA,EACX,SAAS,CAAC,MAAM;AAAA,EAChB,cAAcA;AAAA,EACd,cAAc,OAAO,EAAE,GAAG,GAAG,GAAG,GAAG,MAAM;EACzC,aAAa;AACf,GAAGE,KAAK,CAAC,GAAG,MAAM;AAChB,QAAM,IAAI,GAAG,IAAIlZ,EAAE,GAAG,OAAO,GAAG1L,IAAI0L,EAAE,GAAG,QAAQ,GAAGzL,IAAIyL,EAAE,GAAG,aAAa,GAAGjL,IAAIiL,EAAE,GAAG,YAAY,GAAG/K,IAAI+K,EAAE,GAAG,iBAAiB,GAAG9K,IAAI8K,EAAE,GAAG,SAAS,GAAG7K,IAAI6K,EAAE,GAAG,SAAS,GAAG,IAAIA,EAAE,GAAG,UAAU,GAAG3K,IAAI2K,EAAE,GAAG,YAAY,GAAG1K,IAAI0K,EAAE,GAAG,UAAU,GAAGjK,IAAIiK,EAAE,GAAG,OAAO,GAAGhK,IAAI,GAAGC,IAAI+J,EAAEhK,GAAG,UAAU,GAAGE,IAAIxB,GAAG,EAAE;AACzS,EAAAqB,EAAE,MAAM,iBAAiB,GAAG,MAAM;AAChC,IAAAG,EAAE,QAAQ;AAAA,EACd,CAAG;AACD,QAAMK,IAAI2C,EAAE,MAAM,CAAC,CAAC5E,EAAE,SAAS,CAAC,CAACC,EAAE,SAAS,CAAC,CAACQ,EAAE,MAAM,SAAS,CAAC,CAACA,EAAE,MAAM,UAAUmB,EAAE,KAAK;AAC1F,WAASC,EAAEE,GAAGG,GAAG;AACf,IAAAjC,EAAE,SAASD,EAAE,SAASA,EAAE,MAAM,QAAQ6kB,GAAG5kB,EAAE,OAAOiC,CAAC,GAAGH,CAAC;AAAA,EACxD;AACD,WAASD,EAAEC,GAAGG,GAAGC,GAAGsH,GAAG;AACrB,UAAM,EAAEC,GAAM,GAAGC,EAAC,IAAKhE,GAAG,EAAE,GAAG,CAAC5D,GAAG,GAAG,CAACG,KAAKvB,EAAE,KAAK,GAAGiJ,IAAIma,GAAG,UAAU,CAACra,GAAG,CAACC,CAAC,EAAE,MAAMxH,CAAC;AACtF,IAAAlC,EAAE,SAASD,EAAE,SAASA,EAAE,MAAM,UAAU6kB,GAAG5kB,EAAE,OAAOwJ,CAAC,GAAGG,CAAC;AAAA,EAC1D;AACD,SAAOhF,EAAE,MAAM3C,EAAE,QAAQ;AAAA,IACvB,aAAa;AAAA,IACb,QAAQ,CAACF,MAAM;AACb,MAAAF,EAAE,KAAKE,KAAK,OAAO,SAASA,EAAE,QAAQ;AAAA,IACvC;AAAA,IACD,SAAS,CAACA,MAAM;AACd,MAAAF,EAAE,IAAI,KAAKE,KAAK,OAAO,SAASA,EAAE,QAAQ;AAAA,IAC3C;AAAA,IACD,QAAQ,CAACA,GAAGG,MAAM;AAChB,MAAAjC,EAAE,SAASD,EAAE,SAASA,EAAE,MAAM,QAAQ6kB,GAAG5kB,EAAE,OAAOiC,KAAK,OAAO,SAASA,EAAE,QAAQ,GAAGH,CAAC;AAAA,IACtF;AAAA,IACD,cAAc,CAACA,GAAGG,MAAM;AACtB,MAAAJ,EAAEC,EAAE,GAAGA,EAAE,GAAGA,EAAE,MAAMG,KAAK,OAAO,SAASA,EAAE,QAAQ;AAAA,IACpD;AAAA,IACD,cAAc,OAAO;AAAA,MACnB,GAAG,EAAE,MAAM;AAAA,MACX,GAAG,EAAE,MAAM;AAAA,MACX,MAAM,EAAE,MAAM;AAAA,IACpB;AAAA,IACI,SAAS,CAACH,IAAI;AAAA,MACZ,SAAS0iB;AAAA,MACT,oBAAoB;AAAA,MACpB,UAAU;AAAA,IAChB,MAAU;AACJ,UAAI,CAAC,EAAE,MAAM;AACX;AACF,YAAMviB,KAAKH,EAAE,qBAAqB,EAAE,QAAQJ,EAAE,OAAO,OAAO,CAACiI,MAAM;AACjE,YAAIwB;AACJ,cAAMvB,IAAID,EAAE,eAAeA,EAAE,WAAW,SAASA,EAAE,WAAW;AAC9D,YAAIE,KAAI;AACR,gBAAQsB,IAAKrJ,EAAE,UAAU,QAAQqJ,EAAG,WAAWtB,KAAI/H,EAAE,MAAM,SAAS6H,EAAE,EAAE,IAAIC,KAAKC;AAAA,MAClF,CAAA,GAAG3H,IAAI0E,GAAG3E,CAAC,GAAG,EAAE,GAAGuH,GAAG,GAAGC,GAAG,MAAMC,EAAG,IAAG3C;AAAA,QACvC7E;AAAA,QACA1B,EAAE,MAAM;AAAA,QACRA,EAAE,MAAM;AAAA,QACRsB,EAAE,WAAWnB,EAAE;AAAA,QACfmB,EAAE,WAAWlB,EAAE;AAAA,QACfkB,EAAE,WAAW0iB;AAAA,QACb1iB,EAAE;AAAA,MACV;AACM,MAAAD,EAAE2H,GAAGC,GAAGC,GAAG5H,KAAK,OAAO,SAASA,EAAE,QAAQ;AAAA,IAC3C;AAAA,IACD,WAAW,CAACA,GAAGG,GAAGC,MAAM;AACtB,YAAMsH,IAAI,QAAQtH,KAAK,OAAO,SAASA,EAAE,QAAQ,MAAMA,EAAE,OAAOtB,EAAE,OAAO6I,IAAIjJ,EAAE,MAAM,QAAQ,IAAIsB,IAAI0H,GAAGE,IAAIlJ,EAAE,MAAM,SAAS,IAAIyB,IAAIuH;AACrI,MAAA3H,EAAE4H,GAAGC,GAAGF,GAAGtH,KAAK,OAAO,SAASA,EAAE,QAAQ;AAAA,IAC3C;AAAA,IACD,WAAW,CAACJ,GAAGG,IAAI,EAAE,SAASuiB,GAAE,MAAO;AACrC,YAAM,EAAE,GAAGtiB,GAAG,GAAGsH,GAAG,MAAMC,EAAC,IAAK1C;AAAA,QAC9BjF;AAAA,QACAtB,EAAE,MAAM;AAAA,QACRA,EAAE,MAAM;AAAA,QACRG,EAAE;AAAA,QACFC,EAAE;AAAA,QACFqB,EAAE;AAAA,MACV;AACM,MAAAJ,EAAEK,GAAGsH,GAAGC,GAAGxH,KAAK,OAAO,SAASA,EAAE,QAAQ;AAAA,IAC3C;AAAA,IACD,SAAS,CAACH,MAAM0E,GAAG1E,GAAG,EAAE,OAAOhB,EAAE,OAAOC,EAAE,KAAK;AAAA,EAChD,IAAG2jB,EAAE;AACR;AACA,SAASE,GAAG,GAAG,IAAI,GAAG;AACpB,SAAO,EAAE,WAAU,EAAG,SAAS,CAAC;AAClC;AACA,SAASC,GAAG,GAAG,GAAG;AAChB,MAAI,GAAG;AACL,UAAM,IAAI,EAAE,SAAS,IAAI,EAAE,WAAW,QAAQ,EAAE,WAAW,OAAO,IAAI,EAAE,SAAS,IAAI,EAAE,WAAW,SAAS,EAAE,WAAW;AACxH,QAAI,IAAI,KAAK,IAAI,KAAK,EAAE,SAAS,IAAI,KAAK,EAAE,SAAS,IAAI,GAAG;AAC1D,UAAI9kB,IAAI,CAAA;AACR,UAAIN,GAAG,EAAE,KAAK,IAAIM,IAAI,EAAE,GAAG,EAAE,MAAM,CAAC,EAAC,IAAK,EAAE,UAAUA,IAAI,EAAE,GAAG,EAAE,MAAK,IAAKA,EAAE,QAAQA,EAAE,SAAS,GAAG,EAAE,WAAW,KAAK,MAAMA,EAAE,SAASA,EAAE,UAAU,GAAG,EAAE,WAAW,MAAM,MAAM,IAAI;AAChL,YAAIJ,GAAGI,EAAE,KAAK,GAAG;AACf,gBAAMC,IAAI,OAAOD,EAAE,MAAM,QAAQ,MAAM,EAAE,CAAC;AAC1C,UAAAA,EAAE,QAAQ,GAAGC,IAAI,CAAC;AAAA,QACnB;AACC,UAAAD,EAAE,SAAS;AACf,UAAI,IAAI;AACN,YAAIJ,GAAGI,EAAE,MAAM,GAAG;AAChB,gBAAMC,IAAI,OAAOD,EAAE,OAAO,QAAQ,MAAM,EAAE,CAAC;AAC3C,UAAAA,EAAE,SAAS,GAAGC,IAAI,CAAC;AAAA,QACpB;AACC,UAAAD,EAAE,UAAU;AAChB,UAAI,EAAE,SAAS,IAAI,GAAG;AACpB,cAAMC,IAAI,KAAK,IAAI,EAAE,SAAS,CAAC;AAC/B,YAAI,EAAE,SAAS,IAAI,EAAE,SAAS,IAAIA,GAAGL,GAAGI,EAAE,KAAK,GAAG;AAChD,gBAAMS,IAAI,OAAOT,EAAE,MAAM,QAAQ,MAAM,EAAE,CAAC;AAC1C,UAAAA,EAAE,QAAQ,GAAGS,IAAIR,CAAC;AAAA,QACnB;AACC,UAAAD,EAAE,SAASC;AACb,UAAE,SAAS,IAAI;AAAA,MAChB;AACD,UAAI,EAAE,SAAS,IAAI,GAAG;AACpB,cAAMA,IAAI,KAAK,IAAI,EAAE,SAAS,CAAC;AAC/B,YAAI,EAAE,SAAS,IAAI,EAAE,SAAS,IAAIA,GAAGL,GAAGI,EAAE,MAAM,GAAG;AACjD,gBAAMS,IAAI,OAAOT,EAAE,OAAO,QAAQ,MAAM,EAAE,CAAC;AAC3C,UAAAA,EAAE,SAAS,GAAGS,IAAIR,CAAC;AAAA,QACpB;AACC,UAAAD,EAAE,UAAUC;AACd,UAAE,SAAS,IAAI;AAAA,MAChB;AACD,QAAE,WAAW,QAAQ,OAAOD,EAAE,MAAM,SAAU,EAAC,QAAQ,MAAM,EAAE,CAAC,GAAG,EAAE,WAAW,SAAS,OAAOA,EAAE,OAAO,SAAQ,EAAG,QAAQ,MAAM,EAAE,CAAC,GAAGN,GAAG,EAAE,KAAK,IAAI,EAAE,QAAQ,CAACO,MAAM;AACrK,cAAMQ,IAAI,EAAE;AACZ,eAAO;AAAA,UACL,GAAGA,EAAER,CAAC;AAAA,UACN,GAAGD;AAAA,QACb;AAAA,MACA,IAAU,EAAE,QAAQ;AAAA,QACZ,GAAG,EAAE;AAAA,QACL,GAAGA;AAAA,MACX;AAAA,IACK;AAAA,EACF;AACH;AACA,SAAS+kB,GAAG,GAAG,GAAG;AAChB,IAAE,OAAO,CAAC/kB,MAAMA,EAAE,SAAS,SAASA,EAAE,SAAS,QAAQ,EAAE,QAAQ,CAACA,MAAM;AACtE,QAAIA,EAAE,SAAS;AACb,QAAE,UAAU,CAAC,MAAM,EAAE,OAAOA,EAAE,KAAK,EAAE,MAAM,MAAM,EAAE,KAAKA,EAAE,IAAI;AAAA,aACvDA,EAAE,SAAS,UAAU;AAC5B,YAAMC,IAAI,EAAE,UAAU,CAACQ,MAAMA,EAAE,OAAOT,EAAE,EAAE;AAC1C,MAAAC,MAAM,MAAM,EAAE,OAAOA,GAAG,CAAC;AAAA,IAC1B;AAAA,EACL,CAAG;AACD,QAAMmH,IAAI,EAAE,IAAI,CAACpH,MAAMA,EAAE,EAAE;AAC3B,SAAO,EAAE,QAAQ,CAACA,MAAM;AACtB,QAAI,GAAGW;AACP,UAAM,IAAI,EAAE,OAAO,CAAC,MAAM,EAAE,OAAOX,EAAE,EAAE;AACvC,eAAW,KAAK;AACd,cAAQ,EAAE,MAAI;AAAA,QACZ,KAAK;AACH,UAAAA,EAAE,WAAW,EAAE;AACf;AAAA,QACF,KAAK;AACH,cAAIgG,GAAGhG,CAAC,MAAM,OAAO,EAAE,WAAW,QAAQA,EAAE,WAAW,EAAE,WAAW,OAAO,EAAE,WAAW,QAAQA,EAAE,WAAW,EAAE,WAAWA,EAAE,gBAAgBA,EAAE,aAAa;AACzJ,kBAAM,IAAI,EAAEoH,EAAE,QAAQpH,EAAE,UAAU,CAAC;AACnC,iBAAKgG,GAAG,CAAC,KAAK8e,GAAG9kB,GAAG,CAAC;AAAA,UACtB;AACD;AAAA,QACF,KAAK;AACH,cAAIgG,GAAGhG,CAAC,GAAG;AACT,gBAAI,OAAO,EAAE,aAAa,QAAQA,EAAE,aAAa,EAAE,aAAa,OAAO,EAAE,cAAc,QAAQA,EAAE,QAAQ;AAAA,cACvG,GAAGA,EAAE,SAAS,CAAE;AAAA,cAChB,OAAO,IAAI,IAAI,EAAE,eAAe,OAAO,SAAS,EAAE,KAAK;AAAA,cACvD,QAAQ,IAAIW,IAAI,EAAE,eAAe,OAAO,SAASA,EAAE,MAAM;AAAA,YAC1D,IAAG,OAAO,EAAE,WAAW,QAAQX,EAAE,WAAW,EAAE,WAAWA,EAAE,gBAAgBA,EAAE,YAAY;AACxF,oBAAM,IAAI,EAAEoH,EAAE,QAAQpH,EAAE,UAAU,CAAC;AACnC,mBAAKgG,GAAG,CAAC,MAAM,EAAE,cAAc8e,GAAG9kB,GAAG,CAAC,IAAIuB,GAAG,MAAM;AACjD,gBAAAujB,GAAG9kB,GAAG,CAAC;AAAA,cACR,CAAA;AAAA,YACF;AACD,YAAAA,EAAE,gBAAgBA,EAAE,cAAc;AAAA,UACnC;AACD;AAAA,MACH;AAAA,EACJ,CAAA,GAAG;AACN;AAOA,SAASglB,GAAG,GAAG,GAAG;AAChB,SAAO;AAAA,IACL,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,UAAU;AAAA,EACd;AACA;AACA,SAASC,GAAG,GAAG;AACb,SAAO;AAAA,IACL,MAAM;AAAA,IACN,MAAM;AAAA,EACV;AACA;AACA,SAASC,GAAG,GAAG;AACb,SAAO;AAAA,IACL,IAAI;AAAA,IACJ,MAAM;AAAA,EACV;AACA;AACA,SAASC,GAAG,GAAG,GAAG;AAChB,SAAO,EAAE;AAAA,IACP,CAAC,GAAG,MAAM;AACR,UAAInlB,IAAI,EAAE,SAAS,EAAE,EAAE;AACvB,MAAAoG,GAAG,EAAE,UAAU,KAAK,CAAC,EAAE,eAAepG,IAAI;AAC1C,YAAMC,IAAI+F,GAAG,CAAC,IAAI,iBAAiB;AACnC,aAAO,CAAC,EAAE,YAAYhG,IAAI,EAAEC,CAAC,EAAE,KAAK+kB,GAAG,EAAE,IAAI,EAAE,CAAC,IAAI,EAAE,YAAY,CAAChlB,KAAK,EAAEC,CAAC,EAAE,KAAK+kB,GAAG,EAAE,IAAI,EAAE,CAAC,GAAG;AAAA,IAClG;AAAA,IACD,EAAE,cAAc,CAAA,GAAI,cAAc,GAAI;AAAA,EAC1C;AACA;AACA,SAASI,GAAG,GAAG,GAAG,GAAG,GAAG;AACtB,MAAIplB,IAAI;AACR,QAAMC,IAAI2kB,GAAG,GAAG,CAAC,GAAGnkB,IAAI,CAAC6J,MAAM;AAC7B,UAAMO,IAAIP,KAAK,EAAE,SAAS,CAAA;AAC1B,MAAE,MAAM,oBAAoB,QAAQO,CAAC;AAAA,EACzC,GAAKlK,IAAI,CAAC2J,MAAM;AACZ,QAAIA;AACF,aAAO,EAAE,SAAS,CAAC,EAAE,MAAM,SAAS,EAAE,MAAM,KAAK,CAACO,MAAMA,EAAE,OAAOP,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,QAAQA,CAAC,CAAC;AAAA,EACtG,GAAK1J,IAAI,CAAC0J,MAAM;AACZ,QAAIA;AACF,aAAO,EAAE,SAAS,CAAC,EAAE,MAAM,SAAS,EAAE,MAAM,KAAK,CAACO,MAAMA,EAAE,OAAOP,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,QAAQA,CAAC,CAAC;AAAA,EACnG,GAAEzJ,IAAI,CAACyJ,GAAGO,GAAGR,MAAM;AAClB,UAAMI,IAAI,CAAA;AACV,IAAAH,EAAE,QAAQ,CAACE,MAAM;AACf,UAAI,GAAGG;AACP,YAAMD,IAAI;AAAA,QACR,IAAIF,EAAE;AAAA,QACN,MAAM;AAAA,QACN,UAAUH;AAAA,QACV,MAAMG,EAAE;AAAA,MAChB;AACM,UAAIK,MAAMH,EAAE,WAAWF,EAAE,UAAUA,EAAE,aAAa;AAChD,cAAM6a,KAAI1kB,EAAE6J,EAAE,UAAU;AACxB,QAAAE,EAAE,WAAW;AAAA,UACX,GAAGA,EAAE,SAAS,OAAO,IAAI2a,MAAK,OAAO,SAASA,GAAE,qBAAqB,OAAO,SAAS,EAAE,MAAM;AAAA,UAC7F,GAAG3a,EAAE,SAAS,OAAOC,IAAK0a,MAAK,OAAO,SAASA,GAAE,qBAAqB,OAAO,SAAS1a,EAAG,MAAM;AAAA,QACzG;AAAA,MACO;AACD,MAAAF,EAAE,KAAKC,CAAC;AAAA,IACT,CAAA,GAAGD,KAAK,QAAQA,EAAE,UAAU,EAAE,MAAM,YAAY,QAAQA,CAAC;AAAA,EAC9D,GAAK,IAAI,CAACH,MAAM;AACZ,QAAIE;AACJ,QAAI,CAAC,EAAE;AACL;AACF,UAAMK,IAAI,EAAE,WAAW,cAAc,+BAA+B;AACpE,QAAI,CAACA;AACH;AACF,QAAIR;AACJ,SAAKG,IAAI,EAAE,2BAA2B,QAAQA,EAAE,YAAY;AAC1D,UAAIE,IAAI,CAACG,CAAC,GAAGT,IAAIS,GAAGF;AACpB,aAAO,CAACA,KAAMP;AACZ,QAAAA,IAAIA,EAAE,eAAeO,IAAKP,KAAK,OAAO,SAASA,EAAE,UAAU,SAAS,8BAA8B,GAAGO,MAAOD,IAAI,CAACN,GAAG,GAAGM,CAAC;AAC1H,MAAAA,EAAE,QAAQ,CAAC2a,OAAM;AACf,cAAMC,IAAK,OAAO,iBAAiBD,EAAC,GAAG,EAAE,KAAKE,GAAE,IAAK,IAAI,OAAO,kBAAkBD,EAAG,SAAS;AAC9F,QAAAjb,IAAIA,KAAKkb,KAAKlb,IAAIkb;AAAA,MAC1B,CAAO;AAAA,IACP,OAAW;AACL,YAAM7a,IAAI,OAAO,iBAAiBG,CAAC,GAAG,EAAE,KAAKT,EAAC,IAAK,IAAI,OAAO,kBAAkBM,EAAE,SAAS;AAC3F,MAAAL,IAAID;AAAA,IACL;AACD,UAAMK,IAAIH,EAAE,OAAO,CAACI,GAAGN,MAAM;AAC3B,YAAMO,IAAKhK,EAAEyJ,EAAE,EAAE;AACjB,UAAIO,GAAI;AACN,cAAM0a,KAAI5f,GAAG2E,EAAE,WAAW;AAC1B,QAAGib,GAAE,SAASA,GAAE,WAAW1a,EAAG,WAAW,UAAU0a,GAAE,SAAS1a,EAAG,WAAW,WAAW0a,GAAE,UAAUjb,EAAE,iBAAkBO,EAAG,aAAa,SAASsC,GAAG,WAAW7C,EAAE,aAAaC,CAAC,GAAGM,EAAG,aAAa,SAASsC,GAAG,WAAW7C,EAAE,aAAaC,CAAC,GAAGM,EAAG,aAAa0a,IAAG1a,EAAG,cAAc,IAAID,EAAE,KAAK;AAAA,UACxR,IAAIC,EAAG;AAAA,UACP,MAAM;AAAA,UACN,YAAY0a;AAAA,QACb,CAAA;AAAA,MACF;AACD,aAAO3a;AAAA,IACR,GAAE,CAAE,CAAA;AACL,MAAE,iBAAiB,CAAC1K,MAAMoC,GAAG,MAAMnC,EAAE,MAAM,WAAW,EAAE,KAAK,EAAE,EAAE,KAAK,MAAM;AAC1E,MAAAA,EAAE,MAAM;IACT,CAAA,GAAGD,IAAI,KAAKyK,EAAE,UAAU,EAAE,MAAM,YAAY,QAAQA,CAAC;AAAA,EAC1D,GAAK1J,IAAI,CAACuJ,GAAGO,MAAM;AACf,UAAMR,IAAIC,EAAE,IAAI,CAACI,MAAMA,EAAE,EAAE;AAC3B,QAAID,GAAGD,IAAI;AACX,QAAI,EAAE;AACJ,MAAAC,IAAIJ,EAAE,IAAI,CAACK,MAAMsa,GAAGta,GAAGG,CAAC,CAAC;AAAA,SACtB;AACH,YAAMH,IAAIya,GAAG,CAAC,GAAG,EAAE,OAAO,GAAG,EAAE,KAAK,GAAG9a,CAAC;AACxC,MAAAI,IAAIC,EAAE,cAAcF,IAAIE,EAAE;AAAA,IAC3B;AACD,IAAAD,EAAE,UAAU,EAAE,MAAM,YAAY,QAAQA,CAAC,GAAGD,EAAE,UAAU,EAAE,MAAM,YAAY,QAAQA,CAAC;AAAA,EACzF,GAAKxJ,IAAI,CAACsJ,GAAGO,MAAM;AACf,UAAMR,IAAIC,EAAE,IAAI,CAACI,MAAMA,EAAE,EAAE;AAC3B,QAAID,IAAI,CAAE,GAAED;AACZ,QAAI,EAAE;AACJ,MAAAA,IAAIH,EAAE,IAAI,CAACK,MAAMsa,GAAGta,GAAGG,CAAC,CAAC;AAAA,SACtB;AACH,YAAMH,IAAIya,GAAG,CAAC,GAAG,EAAE,OAAO,GAAG,EAAE,KAAK,GAAG9a,CAAC;AACxC,MAAAI,IAAIC,EAAE,cAAcF,IAAIE,EAAE;AAAA,IAC3B;AACD,IAAAD,EAAE,UAAU,EAAE,MAAM,YAAY,QAAQA,CAAC,GAAGD,EAAE,UAAU,EAAE,MAAM,YAAY,QAAQA,CAAC;AAAA,EACzF,GAAK/I,IAAI,CAAC6I,GAAGO,MAAM;AACf,UAAMR,IAAIC,EAAE,OAAOvE,EAAE,EAAE,IAAI,CAACqE,MAAMA,EAAE,EAAE,GAAGK,IAAIH,EAAE,OAAOzE,EAAE,EAAE,IAAI,CAACuE,MAAMA,EAAE,EAAE;AACzE,QAAI,EAAE,cAAcI,GAAG,cAAcE,EAAG,IAAGya,GAAG,CAAC,GAAG,EAAE,OAAO,GAAG,EAAE,KAAK,GAAG,CAAC,GAAG9a,GAAG,GAAGI,CAAC,CAAC;AACpF,MAAE,yBAAyBD,IAAIH,EAAE,IAAI,CAACD,MAAM4a,GAAG5a,GAAGS,CAAC,CAAC,GAAGH,IAAID,EAAE,IAAI,CAACL,MAAM4a,GAAG5a,GAAGS,CAAC,CAAC,IAAIL,EAAE,UAAU,EAAE,MAAM,YAAY,QAAQA,CAAC,GAAGE,EAAE,UAAU,EAAE,MAAM,YAAY,QAAQA,CAAC;AAAA,EAC7K,GAAKhJ,IAAI,CAAC4I,MAAM;AACZ,IAAAvJ,EAAEuJ,GAAG,EAAE;AAAA,EACX,GAAK3I,IAAI,CAAC2I,MAAM;AACZ,IAAAtJ,EAAEsJ,GAAG,EAAE;AAAA,EACX,GAAK1I,IAAI,CAAC0I,MAAM;AACZ,IAAA7I,EAAE6I,GAAG,EAAE;AAAA,EACX,GAAKrI,IAAI,CAACqI,MAAM;AACZ,QAAI,CAACA,EAAE;AACL,aAAOvJ,EAAEuJ,GAAG,EAAE;AAChB,UAAMD,IAAIC,EAAE,IAAI,CAACG,MAAMA,EAAE,EAAE,EAAE,IAAI,CAACA,MAAMua,GAAGva,GAAG,EAAE,CAAC;AACjD,IAAAJ,EAAE,UAAU,EAAE,MAAM,YAAY,QAAQA,CAAC;AAAA,EAC7C,GAAKxI,IAAI,CAACyI,MAAM;AACZ,QAAI,CAACA,EAAE;AACL,aAAOtJ,EAAEsJ,GAAG,EAAE;AAChB,UAAMD,IAAIC,EAAE,IAAI,CAACG,MAAMA,EAAE,EAAE,EAAE,IAAI,CAACA,MAAMua,GAAGva,GAAG,EAAE,CAAC;AACjD,IAAAJ,EAAE,UAAU,EAAE,MAAM,YAAY,QAAQA,CAAC;AAAA,EAC7C,GAAKvI,IAAI,CAACwI,MAAM;AACZ,QAAI,CAACA,KAAK,CAACA,EAAE;AACX,aAAO7I,EAAE,CAAA,GAAI,EAAE;AACjB,UAAM,EAAE,cAAcoJ,GAAG,cAAcR,EAAC,IAAKC,EAAE;AAAA,MAC7C,CAACG,GAAGD,MAAM;AACR,cAAME,IAAIsa,GAAGxa,EAAE,IAAI,EAAE;AACrB,eAAOzE,GAAGyE,CAAC,IAAIC,EAAE,aAAa,KAAKC,CAAC,IAAID,EAAE,aAAa,KAAKC,CAAC,GAAGD;AAAA,MACjE;AAAA,MACD,EAAE,cAAc,CAAA,GAAI,cAAc,GAAI;AAAA,IAC5C;AACI,IAAAI,EAAE,UAAU,EAAE,MAAM,YAAY,QAAQA,CAAC,GAAGR,EAAE,UAAU,EAAE,MAAM,YAAY,QAAQA,CAAC;AAAA,EACzF,GAAKtI,IAAI,CAACuI,MAAM;AACZ,QAAIO;AACJ,KAACA,IAAI,EAAE,WAAW,QAAQA,EAAE,YAAY,CAACP,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,UAAUA;AAAA,EACzE,GAAKpI,IAAI,CAACoI,MAAM;AACZ,QAAIO;AACJ,KAACA,IAAI,EAAE,WAAW,QAAQA,EAAE,YAAY,CAAC,EAAE,SAASP,CAAC,CAAC,GAAG,EAAE,UAAUA;AAAA,EACzE,GAAKnI,IAAI,CAACmI,MAAM;AACZ,QAAIO;AACJ,KAACA,IAAI,EAAE,WAAW,QAAQA,EAAE,gBAAgBP,CAAC,GAAG,EAAE,kBAAkBA;AAAA,EACxE,GAAKb,IAAI,CAACa,MAAM;AACZ,MAAE,aAAaA,GAAG7J,EAAE,EAAE,KAAK;AAAA,EAC/B,GAAKiJ,IAAI,CAACY,MAAM;AACZ,MAAE,iBAAiBA,GAAG,EAAE,mBAAmBA,GAAG,EAAE,qBAAqBA;AAAA,EACzE,GAAKX,IAAI,CAACW,MAAM;AACZ,UAAMO,IAAIP,aAAa,WAAWA,EAAE,EAAE,KAAK,IAAIA;AAC/C,KAAC,EAAE,eAAe,CAACO,EAAE,WAAW,EAAE,QAAQtD,GAAGsD,GAAG,EAAE,OAAOlK,GAAG,EAAE,MAAM,MAAM,OAAO;AAAA,EACrF,GAAKiJ,IAAI,CAACU,MAAM;AACZ,UAAMO,IAAIP,aAAa,WAAWA,EAAE,EAAE,KAAK,IAAIA;AAC/C,QAAI,CAAC,EAAE,eAAe,CAACO,EAAE;AACvB;AACF,UAAMR,IAAI,EAAE,oBAAoBQ,EAAE;AAAA,MAChC,CAACJ,MAAM,EAAE,kBAAkBA,GAAG;AAAA,QAC5B,OAAO,EAAE;AAAA,QACT,YAAY9J,EAAE8J,EAAE,MAAM;AAAA,QACtB,YAAY9J,EAAE8J,EAAE,MAAM;AAAA,MAC9B,CAAO;AAAA,IACF,IAAGI;AACJ,MAAE,QAAQR,EAAE,OAAO,CAACI,GAAGD,MAAM;AAC3B,YAAME,IAAI/J,EAAE6J,EAAE,MAAM,GAAGJ,IAAIzJ,EAAE6J,EAAE,MAAM,GAAGG,IAAK,CAACD,KAAK,OAAOA,IAAI,KAAK2a,KAAI,CAACjb,KAAK,OAAOA,IAAI;AACxF,UAAIO,KAAM0a,KAAI,EAAE,MAAM,MAAM,QAAQ,IAAIhgB,GAAGF,GAAG,4BAA4BqF,EAAE,IAAIA,EAAE,QAAQA,EAAE,MAAM,CAAC,KAAKG,KAAM,EAAE,MAAM,MAAM,QAAQ,IAAItF,GAAGF,GAAG,qBAAqBqF,EAAE,IAAIA,EAAE,MAAM,CAAC,GAAG6a,MAAK,EAAE,MAAM,MAAM,QAAQ,IAAIhgB,GAAGF,GAAG,qBAAqBqF,EAAE,IAAIA,EAAE,MAAM,CAAC,IAAIG,KAAM0a;AACtQ,eAAO5a;AACT,YAAM6a,IAAK1kB,EAAE4J,EAAE,EAAE;AACjB,aAAOC,EAAE,KAAK;AAAA,QACZ,GAAGpE,GAAGmE,GAAG,OAAO,OAAO,CAAA,GAAI8a,GAAI,EAAE,kBAAkB,CAAC;AAAA,QACpD,YAAY5a;AAAA,QACZ,YAAYN;AAAA,MACb,CAAA,GAAGK;AAAA,IACL,GAAE,CAAE,CAAA;AAAA,EACT,GAAKZ,IAAI,CAACS,MAAM;AACZ,UAAMO,IAAIP,aAAa,WAAWA,EAAE,CAAC,GAAG,EAAE,OAAO,GAAG,EAAE,KAAK,CAAC,IAAIA;AAChE,KAAC,EAAE,eAAe,CAACO,EAAE,WAAWlB,EAAEkB,EAAE,OAAO9E,EAAE,CAAC,GAAG6D,EAAEiB,EAAE,OAAOhF,EAAE,CAAC;AAAA,EACnE,GAAKiE,IAAI,CAACQ,MAAM;AACZ,UAAMO,IAAIP,aAAa,WAAWA,EAAE,EAAE,KAAK,IAAIA,GAAGG,IAAIlD,GAAGsD,GAAG,EAAE,OAAOlK,GAAG,EAAE,MAAM,MAAM,OAAO,EAAE,IAAIskB,EAAE;AACrG,IAAAxa,EAAE,UAAU,EAAE,MAAM,YAAY,QAAQA,CAAC;AAAA,EAC7C,GAAKW,KAAK,CAACd,MAAM;AACb,UAAMO,IAAIP,aAAa,WAAWA,EAAE,EAAE,KAAK,IAAIA,GAAGG,KAAK,EAAE,oBAAoBI,EAAE;AAAA,MAC7E,CAACL,MAAM,EAAE,kBAAkBA,GAAG;AAAA,QAC5B,OAAO,EAAE;AAAA,QACT,YAAY7J,EAAE6J,EAAE,MAAM;AAAA,QACtB,YAAY7J,EAAE6J,EAAE,MAAM;AAAA,MAC9B,CAAO;AAAA,IACF,IAAGK,GAAG,OAAO,CAACL,GAAGE,MAAM;AACtB,YAAM,IAAIrD;AAAA,QACR;AAAA,UACE,GAAGqD;AAAA,UACH,GAAG,EAAE;AAAA,QACN;AAAA,QACD,EAAE;AAAA,QACF,EAAE,MAAM,MAAM;AAAA,MACtB;AACM,UAAI,GAAG;AACL,cAAMC,IAAKhK,EAAE,EAAE,MAAM,GAAG0kB,IAAI1kB,EAAE,EAAE,MAAM,GAAG2kB,KAAK,CAAC3a,KAAM,OAAOA,IAAK,KAAK4a,IAAK,CAACF,KAAK,OAAOA,IAAI;AAC5F,YAAIC,MAAMC,IAAK,EAAE,MAAM,MAAM,QAAQ,IAAIlgB,GAAGF,GAAG,4BAA4B,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,CAAC,KAAKmgB,MAAM,EAAE,MAAM,MAAM,QAAQ,IAAIjgB,GAAGF,GAAG,qBAAqB,EAAE,IAAI,EAAE,MAAM,CAAC,GAAGogB,KAAM,EAAE,MAAM,MAAM,QAAQ,IAAIlgB,GAAGF,GAAG,qBAAqB,EAAE,IAAI,EAAE,MAAM,CAAC,IAAImgB,MAAMC;AACxQ,iBAAO/a;AACT,QAAAA,EAAE;AAAA,UACAya,GAAG;AAAA,YACD,GAAG;AAAA,YACH,YAAYta;AAAA,YACZ,YAAY0a;AAAA,UACxB,CAAW;AAAA,QACX;AAAA,MACO;AACD,aAAO7a;AAAA,IACR,GAAE,CAAE,CAAA;AACL,IAAAC,EAAE,UAAU,EAAE,MAAM,YAAY,QAAQA,CAAC;AAAA,EAC1C,GAAEV,IAAI,CAACO,GAAGO,IAAI,OAAO;AACpB,UAAMR,IAAIC,aAAa,WAAWA,EAAE,EAAE,KAAK,IAAIA,GAAGG,IAAI,IAAID,IAAI,CAAA;AAC9D,IAAAH,EAAE,QAAQ,CAACK,MAAM;AACf,YAAMN,IAAI,OAAOM,KAAK,WAAW/J,EAAE+J,CAAC,IAAIA;AACxC,UAAI,EAAEtE,GAAGgE,EAAE,SAAS,KAAK,CAACA,EAAE,eAAeK,EAAE,KAAKya,GAAG9a,EAAE,EAAE,CAAC,GAAGS,IAAI;AAC/D,cAAMF,IAAK5D,GAAG,CAACqD,CAAC,GAAG,EAAE,KAAK,EAAE,OAAO,CAACib,OAAMjf,GAAGif,GAAE,SAAS,IAAIA,GAAE,YAAY,EAAE;AAC5E,QAAA7a,EAAE,KAAK,GAAGG,EAAG,IAAI,CAAC0a,OAAMH,GAAGG,GAAE,EAAE,CAAC,CAAC;AAAA,MAClC;AAAA,IACP,CAAK,GAAG7a,EAAE,UAAU,EAAE,MAAM,YAAY,QAAQA,CAAC,GAAGC,EAAE,UAAU,EAAE,MAAM,YAAY,QAAQA,CAAC;AAAA,EAC7F,GAAKR,IAAI,CAACK,MAAM;AACZ,UAAMO,IAAIP,aAAa,WAAWA,EAAE,EAAE,KAAK,IAAIA,GAAGD,IAAI;AACtD,IAAAQ,EAAE,QAAQ,CAACJ,MAAM;AACf,YAAMD,IAAI,OAAOC,KAAK,WAAW7J,EAAE6J,CAAC,IAAIA;AACxC,MAAArE,GAAGoE,EAAE,SAAS,KAAK,CAACA,EAAE,aAAaH,EAAE,KAAK6a,GAAG,OAAOza,KAAK,WAAWA,IAAIA,EAAE,EAAE,CAAC;AAAA,IACnF,CAAK,GAAG,EAAE,MAAM,YAAY,QAAQJ,CAAC;AAAA,EACrC,GAAKH,IAAI,CAACI,GAAGO,GAAGR,IAAI,OAAO/C,GAAGgD,GAAGO,GAAG,EAAE,OAAOjK,GAAGyJ,GAAG,EAAE,MAAM,MAAM,OAAO,GAAGL,IAAI,CAACM,MAAMya,GAAGza,GAAG,EAAE,KAAK,GAAGH,IAAI,CAACG,MAAMya,GAAGza,GAAG,EAAE,KAAK,GAAGQ,IAAI,CAACR,GAAGO,GAAGR,GAAGI,IAAI,OAAO;AACtJ,IAAAA,IAAI,EAAE,6BAA6BH,IAAI,EAAE,wBAAwBA,GAAG,EAAE,sBAAsB,MAAM,EAAE,mBAAmB,MAAMO,MAAM,EAAE,qBAAqBA;AAAA,EAC9J,GAAKG,IAAI,CAACV,GAAGO,IAAI,MAAMR,IAAI,SAAS;AAChC,MAAE,0BAA0B,EAAE,qBAAqBC,GAAG,EAAE,sBAAsBO,GAAG,EAAE,mBAAmBR;AAAA,EAC1G,GAAKO,IAAI,CAACN,GAAGO,MAAM;AACf,MAAE,qBAAqB,EAAE,GAAG,KAAK,GAAG,IAAG,GAAI,EAAE,mBAAmB,MAAMA,IAAI,EAAE,6BAA6B,OAAO,EAAE,wBAAwB;AAAA,EAC9I,GAAKN,IAAI,CAACD,MAAM;AACZ,UAAMO,IAAI5E,GAAGqE,CAAC,GAAGD,IAAIQ,IAAI,OAAOlK,EAAE2J,EAAE,EAAE;AACtC,WAAO,CAACO,KAAK,CAACR,IAAI,CAAC,MAAM,MAAMQ,CAAC,IAAI,CAACA,IAAIP,IAAI/E,GAAG8E,CAAC,GAAGA,GAAGQ,CAAC;AAAA,EAC5D,GAAKE,IAAI,CAACT,GAAGO,IAAI,IAAIR,MAAM;AACvB,UAAM,CAACI,GAAGD,GAAGE,CAAC,IAAIH,EAAED,CAAC;AACrB,WAAOG,KAAKJ,KAAK,EAAE,OAAO,OAAO,CAACD,MAAM;AACtC,UAAI,CAACM,MAAMN,EAAE,OAAOI,EAAE,MAAM,CAACJ,EAAE;AAC7B,eAAO;AACT,YAAMO,IAAKpF,GAAG6E,CAAC,GAAGib,KAAI7f,GAAGmF,GAAIF,CAAC;AAC9B,aAAOI,KAAKwa,KAAI,KAAKA,MAAK,OAAO/a,EAAE,KAAK,IAAI,OAAOA,EAAE,MAAM;AAAA,IAC5D,CAAA,IAAI,CAAA;AAAA,EACT,GAAKW,KAAK,CAACX,GAAGO,GAAGR,IAAI,OAAO;AACxB,UAAM,CAACI,CAAC,IAAIF,EAAED,CAAC;AACf,QAAI,CAACG;AACH,aAAO;AACT,UAAMD,IAAIhF,GAAGiF,GAAGI,CAAC;AACjB,WAAOR,KAAKG,IAAI,KAAKA,KAAK,OAAOF,EAAE,KAAK,IAAI,OAAOA,EAAE,MAAM;AAAA,EAC/D,GAAK,KAAK,CAACA,MAAM;AACb,UAAM,EAAE,UAAUO,GAAG,YAAYR,GAAG,QAAQI,GAAG,aAAaD,GAAG,iBAAiBE,EAAC,IAAK;AACtF,QAAI,CAACD,KAAK,CAACD,KAAK,CAACF,EAAE,KAAK,CAACA,EAAE;AACzB,aAAO;AACT,UAAMF,IAAI2Z,GAAG,UAAUlZ,EAAE,IAAIP,EAAE,GAAGO,EAAE,IAAIP,EAAE,CAAC,EAAE,MAAMO,EAAE,IAAI,GAAGF,IAAK;AAAA,MAC/D,CAAC,GAAG,CAAC;AAAA,MACL,CAACN,EAAE,OAAOA,EAAE,MAAM;AAAA,IACnB,GAAEgb,KAAI5a,EAAE,UAAS,EAAGL,GAAGO,GAAID,CAAC,GAAG4a,IAAK,EAAE,SAAS,MAAMD,GAAE,KAAK,EAAE,SAAS,MAAMA,GAAE,KAAK,EAAE,SAAS,SAASA,GAAE;AAC3G,WAAO5a,EAAE,UAAUD,GAAG6a,EAAC,GAAGC;AAAA,EAC9B,GAAKpa,IAAI,CAACZ,MAAM;AACZ,UAAMO,IAAIP,aAAa,WAAWA,EAAE,CAAC,IAAIA,GAAGD,IAAI;AAAA,MAC9C;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACD,GAAEI,IAAI;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACN;AACI,IAAArE,GAAGyE,EAAE,kBAAkB,MAAM,EAAE,qBAAqBA,EAAE;AACtD,UAAML,IAAIK,EAAE,cAAcA,EAAE,SAASA,EAAE,QAAQ,KAAK;AACpD,IAAAL,MAAMK,EAAE,cAAcL,EAAE,KAAK,GAAGK,EAAE,UAAU,GAAGA,EAAE,SAASL,EAAE,KAAK,GAAGK,EAAE,KAAK,GAAGA,EAAE,SAASL,EAAE,KAAK,GAAGK,EAAE,KAAK,GAAGhB,EAAEW,CAAC;AAChH,UAAME,IAAI,MAAM;AACd,MAAAtE,GAAGyE,EAAE,OAAO,KAAK3I,EAAE2I,EAAE,OAAO,GAAGzE,GAAGyE,EAAE,OAAO,KAAK9I,EAAE8I,EAAE,OAAO,GAAGzE,GAAGyE,EAAE,eAAe,KAAK1I,EAAE0I,EAAE,eAAe,GAAGzE,GAAGyE,EAAE,UAAU,KAAKpB,EAAEoB,EAAE,UAAU;AAAA,IACrJ;AACI,WAAO,KAAKA,CAAC,EAAE,QAAQ,CAACT,MAAM;AAC5B,YAAMO,IAAKP,GAAGib,KAAIxa,EAAEF,CAAE;AACtB,OAAC,CAAC,GAAGN,GAAG,GAAGI,CAAC,EAAE,SAASE,CAAE,KAAKvE,GAAGif,EAAC,MAAM,EAAE1a,CAAE,IAAI0a;AAAA,IACtD,CAAK,GAAG,EAAE,SAAS3a,EAAC,IAAKtI,GAAG,MAAM,EAAE,MAAM,EAAE,IAAI,cAAa,EAAG,KAAKsI,CAAC,GAAG,EAAE,gBAAgB,EAAE,cAAc;AAAA,EAC3G;AACE,SAAO;AAAA,IACL,qBAAqB7J;AAAA,IACrB,sBAAsB;AAAA,IACtB,aAAagJ;AAAA,IACb,UAAUF;AAAA,IACV,UAAUC;AAAA,IACV,UAAUE;AAAA,IACV,UAAUsB;AAAA,IACV,aAAarB;AAAA,IACb,aAAaE;AAAA,IACb,UAAUtJ;AAAA,IACV,UAAUC;AAAA,IACV,YAAYsJ;AAAA,IACZ,kBAAkBC;AAAA,IAClB,kBAAkBH;AAAA,IAClB,qBAAqBpI;AAAA,IACrB,kBAAkBF;AAAA,IAClB,kBAAkBC;AAAA,IAClB,YAAYI;AAAA,IACZ,YAAYG;AAAA,IACZ,oBAAoBC;AAAA,IACpB,eAAesH;AAAA,IACf,wBAAwB3H;AAAA,IACxB,qBAAqBG;AAAA,IACrB,qBAAqBJ;AAAA,IACrB,iBAAiBiJ;AAAA,IACjB,kBAAkBE;AAAA,IAClB,eAAeJ;AAAA,IACf,gBAAgBlB;AAAA,IAChB,UAAUwB;AAAA,IACV,sBAAsBH;AAAA,IACtB,oBAAoBE;AAAA,IACpB,OAAO;AAAA,IACP,SAAS,OAAOX,IAAI,EAAE,SAAS,IAAG,MAAO;AACvC,YAAMlI,GAAG,MAAMnC,EAAE,MAAM,WAAW,EAAE,KAAK,EAAE,GAAGA,EAAE,MAAM,QAAQqK,CAAC;AAAA,IAChE;AAAA,IACD,QAAQ,OAAOA,MAAM;AACnB,YAAMlI,GAAG,MAAMnC,EAAE,MAAM,WAAW,EAAE,KAAK,EAAE,GAAGA,EAAE,MAAM,OAAOqK,CAAC;AAAA,IAC/D;AAAA,IACD,SAAS,OAAOA,MAAM;AACpB,YAAMlI,GAAG,MAAMnC,EAAE,MAAM,WAAW,EAAE,KAAK,EAAE,GAAGA,EAAE,MAAM,QAAQqK,CAAC;AAAA,IAChE;AAAA,IACD,QAAQ,OAAOA,GAAGO,MAAM;AACtB,YAAMzI,GAAG,MAAMnC,EAAE,MAAM,WAAW,EAAE,KAAK,EAAE,GAAGA,EAAE,MAAM,OAAOqK,GAAGO,CAAC;AAAA,IAClE;AAAA,IACD,cAAc,OAAOP,GAAGO,MAAM;AAC5B,YAAMzI,GAAG,MAAMnC,EAAE,MAAM,WAAW,EAAE,KAAK,EAAE,GAAGA,EAAE,MAAM,aAAaqK,GAAGO,CAAC;AAAA,IACxE;AAAA,IACD,cAAc,MAAM5K,EAAE,MAAM,aAAc;AAAA,IAC1C,WAAW,OAAOqK,GAAGO,GAAGR,MAAM;AAC5B,YAAMjI,GAAG,MAAMnC,EAAE,MAAM,WAAW,EAAE,KAAK,EAAE,GAAGA,EAAE,MAAM,UAAUqK,GAAGO,GAAGR,CAAC;AAAA,IACxE;AAAA,IACD,WAAW,OAAOC,GAAGO,MAAM;AACzB,YAAMzI,GAAG,MAAMnC,EAAE,MAAM,WAAW,EAAE,KAAK,EAAE,GAAGA,EAAE,MAAM,UAAUqK,GAAGO,CAAC;AAAA,IACrE;AAAA,IACD,SAAS,CAACP,MAAMrK,EAAE,MAAM,QAAQqK,CAAC;AAAA,IACjC,UAAU,MAAM,KAAK;AAAA,MACnB,KAAK,UAAU;AAAA,QACb,OAAO,EAAE,MAAM,IAAI,CAACA,MAAM;AACxB,gBAAM;AAAA,YACJ,kBAAkBO;AAAA,YAClB,cAAcR;AAAA,YACd,UAAUI;AAAA,YACV,YAAYD;AAAA,YACZ,UAAUE;AAAA,YACV,UAAUN;AAAA,YACV,UAAUO;AAAA,YACV,aAAa0a;AAAA,YACb,GAAGC;AAAA,UACJ,IAAGhb;AACJ,iBAAOgb;AAAA,QACjB,CAAS;AAAA,QACD,OAAO,EAAE,MAAM,IAAI,CAAChb,MAAM;AACxB,gBAAM,EAAE,UAAUO,GAAG,YAAYR,GAAG,YAAYI,GAAG,GAAGD,EAAG,IAAGF;AAC5D,iBAAOE;AAAA,QACjB,CAAS;AAAA,QACD,UAAU,CAAC,EAAE,SAAS,GAAG,EAAE,SAAS,CAAC;AAAA,QACrC,MAAM,EAAE,SAAS;AAAA,MACzB,CAAO;AAAA,IACF;AAAA,IACD,qBAAqB/J;AAAA,IACrB,QAAQ,MAAM;AACZ,YAAM6J,IAAI6P;AACV,UAAI,EAAE,QAAQ,CAAE,GAAE,EAAE,QAAQ,CAAE,GAAE,EAAE,UAAU,EAAE,aAAa;AACzD,cAAMtP,IAAIkZ,GAAG,UAAUzZ,EAAE,gBAAgB,KAAK,GAAGA,EAAE,gBAAgB,KAAK,CAAC,EAAE,MAAM5E,GAAG4E,EAAE,gBAAgB,QAAQ,GAAGA,EAAE,SAASA,EAAE,OAAO,CAAC,GAAGD,IAAI,EAAE,YAAY,sBAAqB,GAAII,IAAI;AAAA,UACtL,CAAC,GAAG,CAAC;AAAA,UACL,CAACJ,EAAE,OAAOA,EAAE,MAAM;AAAA,QAC5B,GAAWG,IAAI,EAAE,OAAO,UAAS,EAAGK,GAAGJ,GAAGH,EAAE,eAAe;AACnD,UAAE,OAAO,UAAU,EAAE,aAAaE,CAAC;AAAA,MACpC;AACD,MAAAU,EAAEZ,CAAC;AAAA,IACJ;AAAA,IACD,UAAU,MAAM;AAAA,IACf;AAAA,EACL;AACA;AACA,MAAMkb,GAAG;AAAA,EACP,cAAc;AACZ,SAAK,YAAY,GAAG,KAAK,QAAwB,oBAAI;EACtD;AAAA,EACD,OAAO,cAAc;AACnB,WAAOA,GAAG,aAAaA,GAAG,WAAW,IAAIA,GAAI,IAAGA,GAAG;AAAA,EACpD;AAAA,EACD,IAAI,GAAG,GAAG;AACR,WAAO,KAAK,MAAM,IAAI,GAAG,CAAC;AAAA,EAC3B;AAAA,EACD,IAAI,GAAG;AACL,WAAO,KAAK,MAAM,IAAI,CAAC;AAAA,EACxB;AAAA,EACD,OAAO,GAAG;AACR,WAAO,KAAK,MAAM,OAAO,CAAC;AAAA,EAC3B;AAAA,EACD,OAAO,GAAG,GAAG;AACX,UAAM,IAAIrL,GAAG,CAAC,GAAGna,IAAIylB,GAAG,CAAC,GAAGxlB,IAAI2E,EAAE,MAAM5E,EAAE,MAAM,IAAI,CAACgB,MAAMA,EAAE,EAAE,CAAC,GAAGP,IAAImE,EAAE,MAAM5E,EAAE,MAAM,IAAI,CAACgB,MAAMA,EAAE,EAAE,CAAC,GAAGL,IAAIyZ,GAAGpa,GAAGC,GAAGQ,CAAC,GAAGG,IAAIwkB,GAAGplB,GAAGW,GAAGV,GAAGQ,CAAC,GAAGI,IAAI;AACnJ,WAAO,QAAQb,EAAE,KAAK,EAAE,QAAQ,CAAC,CAACgB,GAAGS,CAAC,MAAM;AAC1C,YAAMC,IAAI,KAAKV,EAAE,OAAO,CAAC,EAAE,YAAW,IAAKA,EAAE,MAAM,CAAC,CAAC;AACrD,MAAAH,EAAEa,CAAC,IAAID,EAAE;AAAA,IACf,CAAK;AACD,UAAM,IAAI,CAAA;AACV,WAAO,QAAQzB,EAAE,KAAK,EAAE,QAAQ,CAAC,CAACgB,GAAGS,CAAC,MAAM;AAC1C,QAAET,CAAC,IAAIS,EAAE;AAAA,IACV,CAAA,GAAGb,EAAE,SAASZ,CAAC;AAChB,UAAMe,IAAI;AAAA,MACR,GAAGF;AAAA,MACH,GAAGF;AAAA,MACH,GAAGC;AAAA,MACH,GAAG8kB,GAAG1lB,CAAC;AAAA,MACP,OAAO;AAAA,MACP,IAAI;AAAA,MACJ,gBAAgB;AAAA,MAChB,UAAU,MAAM;AACd,aAAK,OAAO,CAAC;AAAA,MACd;AAAA,IACP;AACI,WAAO,KAAK,IAAI,GAAGe,CAAC,GAAGA;AAAA,EACxB;AAAA,EACD,QAAQ;AACN,WAAO,YAAY,KAAK,WAAW;AAAA,EACpC;AACH;AACA,MAAMsH,KAAK,CAAC,MAAM;AAChB,QAAM,IAAImd,GAAG,eAAe,IAAItkB,MAAM,IAAI,KAAK,OAAO,SAAS,EAAE,IAAIlB,KAAK,KAAK,OAAO,SAAS,EAAE,cAAc;AAC/G,MAAIC,GAAGQ,IAAI;AACX,MAAI,GAAG;AACL,UAAME,IAAIyH,GAAGP,IAAI,IAAI;AACrB,WAAOlH,IAAI,OAAOA,MAAM,SAASV,IAAIU;AAAA,EACtC;AACD,MAAIV,KAAKD,MAAMC,IAAI,EAAE,IAAID,CAAC,IAAI,CAACC,KAAKA,KAAK,KAAK,MAAMA,EAAE,IAAI;AACxD,UAAMU,IAAI,KAAK,EAAE,MAAK;AACtB,IAAAV,IAAI,EAAE,OAAOU,GAAG,CAAC,GAAG,MAAMF,IAAI;AAAA,EAC/B;AACC,SAAKR,EAAE,SAAS,CAAC;AACnB,SAAO,MAAM8V,GAAGlO,IAAI5H,CAAC,GAAG,EAAE,YAAYA,EAAE,IAAIQ,KAAKQ,GAAG,MAAM;AACxD,QAAIhB,GAAG;AACL,YAAMU,IAAI,EAAE,IAAIV,EAAE,EAAE;AACpB,MAAAU,IAAIA,EAAE,SAAQ,IAAKoE,GAAG,kCAAkC9E,EAAE,EAAE,cAAc;AAAA,IAC3E;AAAA,EACL,CAAG,IAAIA;AACP;AACA,SAAS0lB,GAAG,GAAG,GAAG,GAAG;AACnB,QAAM,IAAIC;AACV,SAAO,EAAE,IAAI,MAAM;AACjB;AAAA,MACE,MAAM;AACJ,UAAE,IAAI,MAAM;AACV,cAAIlkB,GAAGC,GAAGC,IAAI,CAAC,EAAE,EAAE,MAAM,MAAM,UAAU,EAAE,MAAM,MAAM;AACvD,UAAAF,IAAI0B,GAAG,CAAC,EAAE,YAAY,MAAM;AAC1B,gBAAInB,GAAGJ;AACP,oBAAQA,KAAKI,IAAI,EAAE,eAAe,OAAO,SAASA,EAAE,UAAU,OAAO,SAASJ,EAAE;AAAA,UAC5F,CAAW,GAAG,CAAC,CAACI,CAAC,MAAM;AACX,YAAAA,KAAK,MAAM,QAAQA,CAAC,MAAMN,KAAK,QAAQA,EAAE,MAAK,GAAI,EAAE,YAAYM,CAAC,GAAG,CAACN,KAAK,CAACC,KAAKK,EAAE,SAASL,IAAI,KAAKD,KAAK,QAAQA,EAAE,OAAQ;AAAA,UACvI,CAAW,GAAGA,IAAIyB;AAAA,YACN,CAAC,EAAE,OAAO,EAAE,OAAO,MAAM,EAAE,MAAM,MAAM,QAAQ,MAAM,EAAE,MAAM,MAAM,MAAM;AAAA,YACzE,CAAC,CAACnB,GAAGJ,CAAC,MAAM;AACV,kBAAIC;AACJ,eAACA,IAAI,EAAE,eAAe,QAAQA,EAAE,SAAS,MAAM,QAAQ,EAAE,WAAW,KAAK,MAAMJ,KAAK,QAAQA,EAAE,MAAO,GAAE,EAAE,WAAW,QAAQ,CAAC,GAAGO,GAAG,GAAGJ,CAAC,GAAGN,GAAG,MAAM;AACjJ,gBAAAG,KAAK,QAAQA,EAAE;cAChB,CAAA;AAAA,YACF;AAAA,YACD,EAAE,WAAWE,EAAG;AAAA,UACjB,GAAET,GAAG,MAAM;AACV,YAAAO,KAAK,QAAQA,EAAE,KAAI,GAAIC,KAAK,QAAQA,EAAE;UAClD,CAAW;AAAA,QACX,CAAS;AAAA,MACF;AAAA,MACD,MAAM;AACJ,UAAE,IAAI,MAAM;AACV,cAAID,GAAGC,GAAGC,IAAI,CAAC,CAAC,EAAE,MAAM,MAAM;AAC9B,UAAAF,IAAI0B,GAAG,CAAC,EAAE,OAAO,MAAM;AACrB,gBAAInB,GAAGJ;AACP,oBAAQA,KAAKI,IAAI,EAAE,UAAU,OAAO,SAASA,EAAE,UAAU,OAAO,SAASJ,EAAE;AAAA,UACvF,CAAW,GAAG,CAAC,CAACI,CAAC,MAAM;AACX,YAAAA,KAAK,MAAM,QAAQA,CAAC,MAAMN,KAAK,QAAQA,EAAE,MAAK,GAAI,EAAE,SAASM,CAAC,GAAG,CAACN,KAAK,CAACC,KAAKK,EAAE,SAASL,IAAI,KAAKD,KAAK,QAAQA,EAAE,OAAQ;AAAA,UACpI,CAAW,GAAGA,IAAIyB;AAAA,YACN,CAAC,EAAE,OAAO,MAAM,EAAE,MAAM,MAAM,MAAM;AAAA,YACpC,CAAC,CAACnB,CAAC,MAAM;AACP,kBAAIJ;AACJ,eAACA,IAAI,EAAE,UAAU,QAAQA,EAAE,SAAS,MAAM,QAAQ,EAAE,MAAM,KAAK,MAAMH,KAAK,QAAQA,EAAE,MAAK,GAAI,EAAE,MAAM,QAAQ,CAAC,GAAGO,CAAC,GAAGV,GAAG,MAAM;AAC5H,gBAAAG,KAAK,QAAQA,EAAE;cAChB,CAAA;AAAA,YACF;AAAA,YACD,EAAE,WAAWE,EAAG;AAAA,UACjB,GAAET,GAAG,MAAM;AACV,YAAAO,KAAK,QAAQA,EAAE,KAAI,GAAIC,KAAK,QAAQA,EAAE;UAClD,CAAW;AAAA,QACX,CAAS;AAAA,MACF;AAAA,MACD,MAAM;AACJ,UAAE,IAAI,MAAM;AACV,cAAID,GAAGC,GAAGC,IAAI,CAAC,CAAC,EAAE,MAAM,MAAM;AAC9B,UAAAF,IAAI0B,GAAG,CAAC,EAAE,OAAO,MAAM;AACrB,gBAAInB,GAAGJ;AACP,oBAAQA,KAAKI,IAAI,EAAE,UAAU,OAAO,SAASA,EAAE,UAAU,OAAO,SAASJ,EAAE;AAAA,UACvF,CAAW,GAAG,CAAC,CAACI,CAAC,MAAM;AACX,YAAAA,KAAK,MAAM,QAAQA,CAAC,MAAMN,KAAK,QAAQA,EAAE,MAAK,GAAI,EAAE,SAASM,CAAC,GAAG,CAACN,KAAK,CAACC,KAAKK,EAAE,SAASL,IAAI,KAAKD,KAAK,QAAQA,EAAE,OAAQ;AAAA,UACpI,CAAW,GAAGA,IAAIyB;AAAA,YACN,CAAC,EAAE,OAAO,MAAM,EAAE,MAAM,MAAM,MAAM;AAAA,YACpC,CAAC,CAACnB,CAAC,MAAM;AACP,kBAAIJ;AACJ,eAACA,IAAI,EAAE,UAAU,QAAQA,EAAE,SAAS,MAAM,QAAQ,EAAE,MAAM,KAAK,MAAMH,KAAK,QAAQA,EAAE,MAAK,GAAI,EAAE,MAAM,QAAQ,CAAC,GAAGO,CAAC,GAAGV,GAAG,MAAM;AAC5H,gBAAAG,KAAK,QAAQA,EAAE;cAChB,CAAA;AAAA,YACF;AAAA,YACD,EAAE,WAAWE,EAAG;AAAA,UACjB,GAAET,GAAG,MAAM;AACV,YAAAO,KAAK,QAAQA,EAAE,KAAI,GAAIC,KAAK,QAAQA,EAAE;UAClD,CAAW;AAAA,QACX,CAAS;AAAA,MACF;AAAA,MACD,MAAM;AACJ,UAAE,IAAI,MAAM;AACVjB,UAAAA;AAAAA,YACE,MAAM,EAAE;AAAA,YACR,MAAM;AACJ,gBAAE,WAAW0F,GAAG,EAAE,OAAO,KAAK,EAAE,WAAW,EAAE,OAAO;AAAA,YACrD;AAAA,UACb;AAAA,QACA,CAAS;AAAA,MACF;AAAA,MACD,MAAM;AACJ,UAAE,IAAI,MAAM;AACV1F,UAAAA;AAAAA,YACE,MAAM,EAAE;AAAA,YACR,MAAM;AACJ,gBAAE,WAAW0F,GAAG,EAAE,OAAO,KAAK,EAAE,WAAW,EAAE,OAAO;AAAA,YACrD;AAAA,UACb;AAAA,QACA,CAAS;AAAA,MACF;AAAA,MACD,MAAM;AACJ,UAAE,IAAI,MAAM;AACV1F,UAAAA;AAAAA,YACE,MAAM,EAAE;AAAA,YACR,MAAM;AACJ,gBAAE,mBAAmB0F,GAAG,EAAE,eAAe,KAAK,EAAE,mBAAmB,EAAE,eAAe;AAAA,YACrF;AAAA,UACb;AAAA,QACA,CAAS;AAAA,MACF;AAAA,MACD,MAAM;AACJ,UAAE,IAAI,MAAM;AACV1F,UAAAA;AAAAA,YACE,MAAM,EAAE;AAAA,YACR,MAAM;AACJ,gBAAE,cAAc0F,GAAG,EAAE,UAAU,KAAK,EAAE,cAAc,EAAE,UAAU;AAAA,YACjE;AAAA,UACb;AAAA,QACA,CAAS;AAAA,MACF;AAAA,MACD,MAAM;AACJ,UAAE,IAAI,MAAM;AACV1F,UAAAA;AAAAA,YACE,MAAM,EAAE;AAAA,YACR,MAAM;AACJ,cAAA0F,GAAG,EAAE,YAAY,MAAM,EAAE,aAAa,QAAQ,EAAE;AAAA,YACjD;AAAA,UACb,GAAa1F;AAAAA,YACD,EAAE;AAAA,YACF,CAACgB,GAAGC,GAAGC,MAAM;AACX,gBAAE,aAAa,SAAS,EAAE,cAAc,EAAE,gBAAgB,GAAG,EAAE,cAAc,EAAE,gBAAgB,MAAM,EAAE,MAAM,MAAM,YAAY,IAAI,EAAE,gBAAgB,GAAG,EAAE,MAAM,MAAM,YAAY,IAAI,EAAE,gBAAgB,IAAIA,EAAE,MAAM;AAClN,kBAAE,MAAM,MAAM,YAAY,IAAI,EAAE,gBAAgB,GAAG,EAAE,MAAM,MAAM,YAAY,IAAI,EAAE,gBAAgB;AAAA,cACnH,CAAe;AAAA,YACF;AAAA,YACD,EAAE,WAAW,GAAI;AAAA,UAC7B;AAAA,QACA,CAAS;AAAA,MACF;AAAA,MACD,MAAM;AACJ,UAAE,IAAI,MAAM;AACV,gBAAMF,IAAI,OAAOC,MAAM;AACrB,gBAAIC,IAAID;AACR,YAAAjC,GAAG,EAAE,WAAW,MAAMkC,IAAI,MAAM,EAAE,YAAYD,CAAC,IAAIC,MAAM,MAAM,EAAE,SAAS,CAACA,CAAC,CAAC;AAAA,UACzF;AACUlB,UAAAA;AAAAA,YACE,MAAM,EAAE;AAAA,YACR,MAAM;AACJ,cAAA0F,GAAG,EAAE,WAAW,MAAM,EAAE,YAAY,QAAQ,EAAE;AAAA,YAC/C;AAAA,UACb,GAAa1F;AAAAA,YACD,EAAE;AAAA,YACF,CAACiB,GAAGC,GAAGK,MAAM;AACX,cAAAN,IAAI,EAAE,UAAUD,CAAC,IAAI,EAAE,MAAM,MAAM,QAAQ,IAAIA,CAAC,GAAGO,EAAE,MAAM;AACzD,kBAAE,MAAM,MAAM,QAAQ,IAAIP,CAAC;AAAA,cAC3C,CAAe;AAAA,YACF;AAAA,YACD,EAAE,WAAW,GAAI;AAAA,UAC7B;AAAA,QACA,CAAS;AAAA,MACF;AAAA,MACD,MAAM;AACJ,cAAMA,IAAI;AAAA,UACR;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QACV;AACQ,eAAO,KAAK,CAAC,EAAE,QAAQ,CAACC,MAAM;AAC5B,cAAI,CAACD,EAAE,SAASC,CAAC,GAAG;AAClB,kBAAMC,IAAI8J,EAAE,GAAG/J,CAAC,GAAGM,IAAI,EAAEN,CAAC;AAC1B,cAAE,IAAI,MAAM;AACVjB,cAAAA;AAAAA,gBACEkB;AAAA,gBACA,CAACC,MAAM;AACL,kBAAAuE,GAAGvE,CAAC,MAAMI,EAAE,QAAQJ;AAAA,gBACrB;AAAA,gBACD,EAAE,OAAO,MAAO;AAAA,cAChC;AAAA,YACA,CAAa;AAAA,UACF;AAAA,QACX,CAAS;AAAA,MACF;AAAA,IACF,EAAC,QAAQ,CAACH,MAAMA,EAAG,CAAA;AAAA,EACxB,CAAG,GAAG,MAAM,EAAE;AACd;AACA,SAASmkB,GAAG,GAAG,GAAG;AAChB,SAAO;AAAA,IACL,GAAG,EAAE,UAAU,EAAE;AAAA,IACjB,GAAG,EAAE,UAAU,EAAE;AAAA,EACrB;AACA;AACK,MAACC,KAAK;AAAA,EACT,MAAM;AAAA,EACN,cAAc,EAAE,MAAM,EAAG;AAC3B,GAAGC,KAAqBta,gBAAAA,GAAG;AAAA,EACzB,GAAGqa;AAAA,EACH,OAAO;AAAA,IACL,aAAa,EAAE,MAAM,QAAS;AAAA,EAC/B;AAAA,EACD,MAAM,GAAG;AACP,UAAM;AAAA,MACJ,IAAI;AAAA,MACJ,YAAY;AAAA,MACZ,UAAU;AAAA,MACV,UAAU9lB;AAAA,MACV,UAAUC;AAAA,MACV,OAAOQ;AAAA,MACP,qBAAqBE;AAAA,MACrB,wBAAwBC;AAAA,MACxB,WAAWC;AAAA,MACX,mBAAmB;AAAA,MACnB,oBAAoBE;AAAA,MACpB,sBAAsBC;AAAA,MACtB,qBAAqBS;AAAA,MACrB,kBAAkBC;AAAA,MAClB,kBAAkBC;AAAA,MAClB,aAAaC;AAAA,MACb,aAAaK;AAAA,MACb,eAAeJ;AAAA,MACf,eAAeC;AAAA,MACf,uBAAuBC;AAAA,MACvB,sBAAsBG;AAAA,IACvB,IAAGmG,GAAI,GAAElG,IAAI/B,GAAG,IAAI,GAAGqJ,IAAIrJ,GAAG,CAAC,GAAGsJ,IAAItJ,GAAG,CAAC,GAAGuJ,IAAIvJ,GAAI,GAAEwJ,IAAIhF,EAAE,MAAM7D,EAAE,UAAU,EAAE,eAAeJ,EAAE,MAAM;AACzG,IAAAkV,GAAG/T,GAAG,CAACkJ,MAAM;AACX,UAAI,CAACA;AACH;AACF,YAAMJ,IAAI,EAAE,MAAM,OAAO,CAACL,GAAGQ,QAAQ,CAACA,EAAE,YAAYA,EAAE,cAAcR,EAAE,KAAK,CAACU,OAAOA,GAAG,OAAOF,EAAE,UAAU,KAAKA,EAAE,aAAaR,EAAE,KAAKQ,CAAC,GAAGR,IAAI,CAAE,CAAA;AAC9I,OAACK,KAAKlJ,EAAE,WAAWA,EAAE,MAAM,SAAS,KAAKO,EAAEP,EAAE,KAAK,GAAGkJ,EAAE,SAAS,KAAKhJ,EAAEgJ,CAAC,GAAG5J,EAAE,QAAQ,IAAIJ,EAAC;AAAA,IAC3F,CAAA,GAAGiV,GAAG9T,GAAG,CAACiJ,MAAM;AACf,MAAA9I,EAAE,QAAQ8I;AAAA,IAChB,CAAK;AACD,aAASnB,IAAI;AACX,MAAAlJ,EAAE,QAAQ,IAAI,EAAE,QAAQ,MAAM8I,EAAE,QAAQ,GAAGC,EAAE,QAAQ;AAAA,IACtD;AACD,aAASI,EAAEkB,GAAG;AACZ,MAAAA,EAAE,WAAW7I,EAAE,SAASyH,EAAE,UAAUnJ,EAAE,UAAUuK,CAAC,GAAGpK,EAAG,GAAEI,EAAE,QAAQ;AAAA,IACpE;AACD,aAASoK,GAAGJ,GAAG;AACb,UAAIJ;AACJ,UAAII,EAAE,WAAW7I,EAAE,OAAO;AACxB,YAAI,MAAM,QAAQtB,EAAE,KAAK,MAAO+J,IAAI/J,EAAE,UAAU,QAAQ+J,EAAE,SAAS,CAAC,GAAI;AACtE,UAAAI,EAAE,eAAc;AAChB;AAAA,QACD;AACD,QAAAvK,EAAE,gBAAgBuK,CAAC;AAAA,MACpB;AAAA,IACF;AACD,aAASjB,EAAEiB,GAAG;AACZ,MAAAA,EAAE,WAAW7I,EAAE,SAAS1B,EAAE,WAAWuK,CAAC;AAAA,IACvC;AACD,aAASf,EAAEe,GAAG;AACZ,UAAIrB,EAAE,QAAQ,EAAE,MAAM,sBAAuB,GAAE,CAACC,EAAE,SAAS,CAAC7I,KAAK,CAAC,EAAE,eAAeiK,EAAE,WAAW,KAAKA,EAAE,WAAW7I,EAAE,SAAS,CAACwH,EAAE;AAC9H;AACF,YAAM,EAAE,GAAGiB,GAAG,GAAGL,MAAMsb,GAAG7a,GAAGrB,EAAE,KAAK;AACpC,MAAA/I,EAAG,GAAE,EAAE,QAAQ;AAAA,QACb,OAAO;AAAA,QACP,QAAQ;AAAA,QACR,QAAQgK;AAAA,QACR,QAAQL;AAAA,QACR,GAAGK;AAAA,QACH,GAAGL;AAAA,MACX,GAAS5J,EAAE,QAAQ,IAAIF,EAAE,eAAeuK,CAAC;AAAA,IACpC;AACD,aAASd,EAAEc,GAAG;AACZ,UAAI,CAACpB,EAAE;AACL,eAAOnJ,EAAE,cAAcuK,CAAC;AAC1B,UAAI,CAAC,EAAE,eAAe,CAACrB,EAAE,SAAS,CAAC,EAAE;AACnC;AACF,MAAAhJ,EAAE,UAAUA,EAAE,QAAQ,KAAKK,EAAE,UAAUA,EAAE,QAAQ;AACjD,YAAM4J,IAAIib,GAAG7a,GAAGrB,EAAE,KAAK,GAAGY,IAAI,EAAE,MAAM,UAAU,GAAGQ,IAAI,EAAE,MAAM,UAAU,GAAGE,KAAK;AAAA,QAC/E,GAAG,EAAE;AAAA,QACL,GAAGL,EAAE,IAAIL,IAAIK,EAAE,IAAIL;AAAA,QACnB,GAAGK,EAAE,IAAIG,IAAIH,EAAE,IAAIG;AAAA,QACnB,OAAO,KAAK,IAAIH,EAAE,IAAIL,CAAC;AAAA,QACvB,QAAQ,KAAK,IAAIK,EAAE,IAAIG,CAAC;AAAA,MACzB,GAAE,KAAKjE;AAAA,QACN,EAAE;AAAA,QACF,EAAE;AAAA,QACF7G,EAAE;AAAA,QACF4B,EAAE,UAAU4F,GAAG;AAAA,MAChB,GAAEyD,IAAInE,GAAG,IAAI/G,EAAE,KAAK;AACrB,MAAAyJ,EAAE,QAAQ,GAAG,QAAQC,EAAE,QAAQwB,EAAE,QAAQ,EAAE,QAAQD,IAAIxJ,EAAE,CAAC,GAAG,IAAI,GAAGyJ,CAAC,CAAC;AAAA,IACvE;AACD,aAASlB,EAAEgB,GAAG;AACZ,MAAApB,EAAE,SAASoB,EAAE,WAAW,MAAM,CAACrK,EAAE,SAAS,EAAE,SAASqK,EAAE,WAAW7I,EAAE,SAAS2H,EAAEkB,CAAC,GAAGhK,EAAE,QAAQyI,EAAE,QAAQ,GAAGI,EAAG,GAAEpJ,EAAE,aAAauK,CAAC;AAAA,IAChI;AACD,aAASb,EAAEa,GAAG;AACZ,UAAIJ;AACJ,UAAI,CAAChB,EAAE;AACL,eAAOnJ,EAAE,eAAeuK,CAAC;AAC3B,MAAArK,EAAE,UAAUK,EAAE,QAAQyI,EAAE,QAAQ,IAAImB,IAAInK,EAAE,iBAAiB,QAAQmK,EAAE,KAAKnK,GAAGuK,CAAC,IAAInB;IACnF;AACD,aAASiB,EAAEE,GAAG;AACZ,MAAApB,EAAE,SAASnJ,EAAE,eAAeuK,CAAC;AAAA,IAC9B;AACD,WAAO,CAACA,GAAGJ,OAAOe,GAAE,GAAIC,GAAG,OAAO;AAAA,MAChC,SAAS;AAAA,MACT,KAAKzJ;AAAA,MACL,KAAK,QAAQrC,EAAE,CAAC,CAAC;AAAA,MACjB,OAAO+L,GAAG,CAAC,sCAAsC,EAAE,WAAW,EAAE,YAAW,CAAE,CAAC;AAAA,MAC9E,SAAS/B;AAAA,MACT,eAAesB;AAAA,MACf,gBAAgBrB;AAAA,MAChB,cAAce;AAAA,MACd,aAAab;AAAA,MACb,aAAaC;AAAA,MACb,WAAWF;AAAA,MACX,cAAcG;AAAA,IACpB,GAAO;AAAA,MACD2B,GAAGd,EAAE,QAAQ,SAAS;AAAA,MACtBlL,EAAEa,CAAC,KAAKb,EAAE,CAAC,KAAK6L,GAAE,GAAImL,GAAGiD,IAAI,EAAE,KAAK,EAAG,CAAA,KAAKvD,GAAG,IAAI,EAAE;AAAA,MACrD1W,EAAEkB,CAAC,KAAKlB,EAAE6B,CAAC,EAAE,UAAUgK,MAAMmL,GAAG+C,IAAI,EAAE,KAAK,EAAG,CAAA,KAAKrD,GAAG,IAAI,EAAE;AAAA,IAClE,GAAO,EAAE;AAAA,EACN;AACH,CAAC,GAAG,KAAK,EAAE,OAAO,sCAAqC,GAAIwP,KAAK;AAAA,EAC9D,MAAM;AAAA,EACN,cAAc,EAAE,MAAM,EAAG;AAC3B,GAAGC,KAAqBxa,gBAAAA,GAAG;AAAA,EACzB,GAAGua;AAAA,EACH,MAAM,GAAG;AACP,UAAM,IAAI5d,GAAGF,EAAE,GAAG,IAAIG,GAAI,GAAE,IAAIqD,EAAE,GAAG,gBAAgB,GAAG1L,IAAI0L,EAAE,GAAG,gBAAgB,GAAGzL,IAAIyL,EAAE,GAAG,oBAAoB,GAAGjL,IAAIiL,EAAE,GAAG,kBAAkB,GAAG/K,IAAI+K,EAAE,GAAG,UAAU,GAAG9K,IAAI8K,EAAE,GAAG,qBAAqB,GAAG7K,IAAI6K,EAAE,GAAG,cAAc,GAAG,IAAIA,EAAE,GAAG,sBAAsB,GAAG3K,IAAI2K,EAAE,GAAG,OAAO;AACrR,QAAI1K,IAAIZ;AACR,IAAAgC,GAAG,MAAMzB,EAAE,MAAM,SAAS,KAAKC,EAAE,MAAM,WAAWD,EAAE,MAAM,MAAM,EAAE,KAAK,EAAE,EAAE,KAAK,MAAM;AACpFY,MAAAA,GAAG,MAAM;AACP,QAAAR,EAAE,MAAM,iBAAiBH,EAAE,KAAK;AAAA,MACxC,CAAO;AAAA,IACP,CAAK,GAAGU,GAAG,MAAM;AACX,MAAAN,EAAE,QAAQ,IAAI,eAAe,CAACa,MAAM;AAClC,cAAMC,IAAID,EAAE,IAAI,CAACE,OAAO;AAAA,UACtB,IAAIA,EAAE,OAAO,aAAa,SAAS;AAAA,UACnC,aAAaA,EAAE;AAAA,UACf,aAAa;AAAA,QACd,EAAC;AACF,UAAE,MAAMD,CAAC;AAAA,MACjB,CAAO;AAAA,IACP,CAAK,GAAGkU,GAAG,MAAM;AACX,UAAInU;AACJ,cAAQA,IAAIb,EAAE,UAAU,OAAO,SAASa,EAAE;IAChD,CAAK;AACD,aAASJ,EAAEI,GAAG;AACZ,aAAO,OAAOA,IAAI,MAAM,EAAE,QAAQA;AAAA,IACnC;AACD,aAASH,EAAEG,GAAG;AACZ,aAAO,OAAOA,IAAI,MAAM5B,EAAE,QAAQ4B;AAAA,IACnC;AACD,aAASF,EAAEE,GAAG;AACZ,aAAO,OAAOA,IAAI,MAAMpB,EAAE,QAAQoB;AAAA,IACnC;AACD,aAASD,EAAEC,GAAG;AACZ,aAAO,OAAOA,IAAI,MAAM7B,EAAE,QAAQ6B;AAAA,IACnC;AACD,aAASI,EAAEJ,GAAGC,GAAG;AACf,YAAMC,IAAIF,KAAK;AACf,UAAIK,IAAIJ,KAAKjB,EAAE,MAAMkB,CAAC;AACtB,YAAMI,IAAId;AACV,UAAI,OAAOa,KAAK,YAAYC,GAAG;AAC7B,cAAMuH,IAAI,OAAO,KAAKvH,EAAE,WAAW,UAAU;AAC7C,QAAAuH,KAAKA,EAAE,SAAS3H,CAAC,MAAMG,IAAIgkB,GAAGnkB,GAAG,EAAE;AAAA,MACpC;AACD,aAAI,OAAOG,KAAK,WACPA,KACC,KAAK,OAAO,SAAS,EAAE,QAAQH,CAAC,EAAE,OAC/BhB,EAAE,MAAM,MAAM,IAAIsE,GAAGF,GAAG,mBAAmBjD,CAAC,CAAC,GAAG;AAAA,IAC9D;AACD,WAAO,CAACL,GAAGC,OAAO6J,GAAI,GAAEC,GAAG,OAAO,IAAI;AAAA,MACpC9L,EAAEkB,CAAC,KAAK2K,GAAG,EAAE,GAAGC,GAAG+K,IAAI,EAAE,KAAK,EAAC,GAAIwP,GAAGrmB,EAAEa,CAAC,GAAG,CAACoB,OAAO4J,GAAE,GAAImL,GAAGhX,EAAEmW,EAAE,GAAG;AAAA,QAClE,IAAIlU,EAAE;AAAA,QACN,KAAKA,EAAE;AAAA,QACP,mBAAmBjC,EAAEkB,CAAC;AAAA,QACtB,MAAMiB,EAAEF,EAAE,MAAMA,EAAE,QAAQ;AAAA,QAC1B,MAAMA,EAAE,QAAQ;AAAA,QAChB,WAAWN,EAAEM,EAAE,SAAS;AAAA,QACxB,YAAYL,EAAEK,EAAE,UAAU;AAAA,QAC1B,aAAaJ,EAAEI,EAAE,WAAW;AAAA,QAC5B,WAAWH,EAAEG,EAAE,SAAS;AAAA,QACxB,MAAMA;AAAA,MACd,GAAS,MAAM,GAAG,CAAC,MAAM,mBAAmB,QAAQ,QAAQ,aAAa,cAAc,eAAe,aAAa,MAAM,CAAC,EAAE,GAAG,GAAG,KAAKyU,GAAG,IAAI,EAAE;AAAA,IAC3I,CAAA;AAAA,EACF;AACH,CAAC,GAAG4P,KAAK,CAAC,MAAM,eAAe,gBAAgB,eAAe,QAAQ,GAAGC,KAAK,CAAC,UAAU,gBAAgB,MAAM,GAAG,KAAK,CAAC,UAAU,cAAc,GAAGC,KAAK;AAAA,EACtJ,MAAM;AAAA,EACN,cAAc,EAAE,MAAM,EAAG;AAC3B,GAAGC,KAAqB9a,gBAAAA,GAAG;AAAA,EACzB,GAAG6a;AAAA,EACH,OAAO;AAAA,IACL,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,OAAO,EAAE,SAAS,OAAQ;AAAA,IAC1B,OAAO,EAAE,SAAS,KAAM;AAAA,IACxB,QAAQ,EAAE,SAAS,KAAM;AAAA,IACzB,aAAa,EAAE,SAAS,cAAe;AAAA,IACvC,QAAQ,EAAE,SAAS,qBAAsB;AAAA,IACzC,aAAa,EAAE,SAAS,EAAG;AAAA,EAC5B;AAAA,EACD,MAAM,GAAG;AACP,WAAO,CAAC,GAAG,OAAO3a,GAAE,GAAIC,GAAG,UAAU;AAAA,MACnC,IAAI,EAAE;AAAA,MACN,OAAO;AAAA,MACP,SAAS;AAAA,MACT,MAAM;AAAA,MACN,MAAM;AAAA,MACN,aAAa,GAAG,EAAE,KAAK;AAAA,MACvB,cAAc,GAAG,EAAE,MAAM;AAAA,MACzB,aAAa,EAAE;AAAA,MACf,QAAQ,EAAE;AAAA,IAChB,GAAO;AAAA,MACD,EAAE,SAAS9L,EAAE8H,EAAE,EAAE,eAAe+D,GAAE,GAAIC,GAAG,YAAY;AAAA,QACnD,KAAK;AAAA,QACL,QAAQ,EAAE;AAAA,QACV,kBAAkB;AAAA,QAClB,mBAAmB;AAAA,QACnB,gBAAgB,EAAE;AAAA,QAClB,MAAM,EAAE;AAAA,QACR,QAAQ;AAAA,MAChB,GAAS,MAAM,GAAGya,EAAE,KAAK7P,GAAG,IAAI,EAAE;AAAA,MAC5B,EAAE,SAAS1W,EAAE8H,EAAE,EAAE,SAAS+D,GAAE,GAAIC,GAAG,YAAY;AAAA,QAC7C,KAAK;AAAA,QACL,QAAQ,EAAE;AAAA,QACV,kBAAkB;AAAA,QAClB,mBAAmB;AAAA,QACnB,gBAAgB,EAAE;AAAA,QAClB,MAAM;AAAA,QACN,QAAQ;AAAA,MAChB,GAAS,MAAM,GAAG,EAAE,KAAK4K,GAAG,IAAI,EAAE;AAAA,IAClC,GAAO,GAAG4P,EAAE;AAAA,EACT;AACH,CAAC,GAAGI,KAAK;AAAA,EACP,MAAM;AAAA,EACN,cAAc,EAAE,MAAM,EAAG;AAC3B,GAAGC,KAAqBhb,gBAAAA,GAAG;AAAA,EACzB,GAAG+a;AAAA,EACH,MAAM,GAAG;AACP,UAAM,IAAIne,MAAM,IAAIqD,EAAE,GAAG,IAAI,GAAG,IAAIA,EAAE,GAAG,OAAO,GAAG1L,IAAI0L,EAAE,GAAG,uBAAuB,GAAGzL,IAAIyL,EAAE,GAAG,oBAAoB,GAAGjL,IAAImE,EAAE,MAAM;AAChI,YAAMjE,IAAI,CAAA,GAAIC,IAAI,CAAA,GAAIC,IAAI,CAAC,MAAM;AAC/B,YAAI,GAAG;AACL,gBAAME,IAAIoG,GAAG,GAAG,EAAE,KAAK;AACvB,UAAAxG,EAAE,SAASI,CAAC,MAAM,OAAO,KAAK,WAAWH,EAAE,KAAK,EAAE,GAAG,GAAG,IAAIG,GAAG,OAAO,EAAE,SAASd,EAAE,MAAK,CAAE,IAAIW,EAAE,KAAK,EAAE,IAAIG,GAAG,OAAOd,EAAE,OAAO,MAAM,EAAC,CAAE,GAAGU,EAAE,KAAKI,CAAC;AAAA,QACnJ;AAAA,MACT;AACM,aAAO,CAACf,EAAE,MAAM,WAAWA,EAAE,MAAM,WAAW,EAAE,QAAQa,CAAC,GAAG,EAAE,MAAM,OAAO,CAAC,GAAGE,OAAO,CAACA,EAAE,aAAaA,EAAE,SAAS,EAAE,QAAQF,CAAC,GAAG,EAAE,KAAK,CAACG,GAAGS,MAAMT,EAAE,GAAG,cAAcS,EAAE,EAAE,CAAC,IAAIb,CAAC,GAAGA;AAAA,IACtL,CAAK;AACD,WAAO,CAACD,GAAGC,OAAO+K,GAAI,GAAEC,GAAG,QAAQ,MAAM;AAAA,OACtCD,GAAG,EAAE,GAAGC,GAAG+K,IAAI,MAAMwP,GAAGrmB,EAAEW,CAAC,GAAG,CAACI,OAAO8K,GAAE,GAAImL,GAAGyP,IAAI;AAAA,QAClD,IAAI1lB,EAAE;AAAA,QACN,KAAKA,EAAE;AAAA,QACP,MAAMA,EAAE;AAAA,QACR,OAAOA,EAAE;AAAA,QACT,OAAOA,EAAE;AAAA,QACT,QAAQA,EAAE;AAAA,QACV,aAAaA,EAAE;AAAA,QACf,gBAAgBA,EAAE;AAAA,QAClB,QAAQA,EAAE;AAAA,MACX,GAAE,MAAM,GAAG,CAAC,MAAM,QAAQ,SAAS,SAAS,UAAU,eAAe,gBAAgB,QAAQ,CAAC,EAAE,GAAG,GAAG;AAAA,IACxG,CAAA;AAAA,EACF;AACH,CAAC,GAAG6lB,KAAK;AAAA,EACP,KAAK;AAAA,EACL,OAAO;AACT,GAAGC,KAAK;AAAA,EACN,MAAM;AAAA,EACN,cAAc,EAAE,MAAM,EAAG;AAC3B,GAAG,KAAqBlb,gBAAAA,GAAG;AAAA,EACzB,GAAGkb;AAAA,EACH,MAAM,GAAG;AACP,UAAM,IAAIve,GAAGF,EAAE,GAAG,IAAIG,GAAI,GAAE,IAAIqD,EAAE,GAAG,uBAAuB,GAAG1L,IAAI0L,EAAE,GAAG,kBAAkB,GAAGzL,IAAIyL,EAAE,GAAG,gBAAgB,GAAGjL,IAAIiL,EAAE,GAAG,gBAAgB,GAAG/K,IAAI+K,EAAE,GAAG,oBAAoB,GAAG9K,IAAI8K,EAAE,GAAG,kBAAkB,GAAG7K,IAAI6K,EAAE,GAAG,UAAU,GAAG,IAAIA,EAAE,GAAG,OAAO,GAAG3K,IAAI2K,EAAE,GAAG,UAAU,GAAG1K,IAAI0K,EAAE,GAAG,qBAAqB,GAAGjK,IAAIiK,EAAE,GAAG,cAAc,GAAGhK,IAAIgK,EAAE,GAAG,sBAAsB,GAAG/J,IAAI+J,EAAE,GAAG,YAAY,GAAG9J,IAAI8J,EAAE,GAAG,OAAO,GAAGzJ,IAAIzB;AAAA,MAC5Z,MAAM;AACJ,YAAIkJ;AACJ,gBAAQA,IAAI,EAAE,UAAU,OAAO,SAASA,EAAE;AAAA,MAC3C;AAAA,MACD,MAAM;AACJ,YAAIA;AACJ,gBAAQA,IAAI,EAAE,UAAU,QAAQA,EAAE,SAAS7I,EAAE,MAAM,EAAE,MAAM,MAAM,IAAI;AAAA,MACtE;AAAA,IACF,GAAEgB,IAAIrB;AAAA,MACL,MAAM;AACJ,YAAIkJ;AACJ,gBAAQA,IAAI,EAAE,UAAU,OAAO,SAASA,EAAE;AAAA,MAC3C;AAAA,MACD,MAAM;AACJ,YAAIA,GAAGC;AACP,eAAO,CAAC,EAAE1H,EAAE,UAAU,OAAOA,EAAE,MAAM,cAAc,MAAMjC,EAAE,QAAQiC,EAAE,MAAM,iBAAkByH,IAAI,EAAE,UAAU,QAAQA,EAAE,WAAaC,IAAI,EAAE,UAAU,QAAQA,EAAE;AAAA,MAC/J;AAAA,IACF,GAAE7H,IAAItB;AAAA,MACL;AAAA,QACE,MAAM,EAAE,MAAM,IAAI,CAACkJ,MAAMA,EAAE,MAAM;AAAA,QACjC,MAAMhI,EAAE,QAAQ,CAACd,EAAE,MAAM,MAAM,IAAI,CAAC,CAAC;AAAA,QACrC,MAAMc,EAAE,QAAQV,EAAE,MAAM,IAAI,CAAC0I,MAAMA,EAAE,iBAAiB,CAAC,IAAI,CAAE;AAAA,MAC9D;AAAA,MACD,MAAMb,GAAG9H,EAAE,OAAOF,EAAE,OAAOa,EAAE,KAAK;AAAA,IACxC;AACI,aAASK,EAAE2H,GAAG;AACZ,aAAO,OAAOA,IAAI,MAAM/I,EAAE,QAAQ+I;AAAA,IACnC;AACD,aAASxH,EAAEwH,GAAG;AACZ,aAAO,OAAOA,IAAI,MAAMzJ,EAAE,QAAQyJ;AAAA,IACnC;AACD,aAASvH,EAAEuH,GAAG;AACZ,aAAO,OAAOA,IAAI,MAAMjJ,EAAE,QAAQiJ;AAAA,IACnC;AACD,aAASD,EAAEC,GAAGC,GAAG;AACf,YAAMC,IAAIF,KAAK;AACf,UAAIG,IAAIF,KAAKlI,EAAE,MAAMmI,CAAC;AACtB,YAAME,IAAIzI;AACV,UAAI,OAAOwI,KAAK,YAAYC,GAAG;AAC7B,cAAMC,IAAI,OAAO,KAAKD,EAAE,WAAW,UAAU;AAC7C,QAAAC,KAAKA,EAAE,SAASH,CAAC,MAAMC,IAAIqc,GAAGtc,GAAG,EAAE;AAAA,MACpC;AACD,aAAIC,KAAK,OAAOA,KAAK,WACZA,KACE,KAAK,OAAO,SAAS,EAAE,QAAQD,CAAC,EAAE,OAC/BhI,EAAE,MAAM,MAAM,IAAIyD,GAAGF,GAAG,mBAAmB0E,CAAC,CAAC,GAAG;AAAA,IAC/D;AACD,WAAO,CAACH,GAAGC,MAAM7J,EAAE6B,CAAC,EAAE,SAAS7B,EAAE6B,CAAC,EAAE,UAAUgK,GAAE,GAAIC,GAAG+K,IAAI,EAAE,KAAK,KAAK;AAAA,OACpEhL,GAAG,EAAE,GAAGC,GAAG+K,IAAI,MAAMwP,GAAGrmB,EAAEgC,CAAC,GAAG,CAAC8H,OAAO+B,GAAE,GAAIC,GAAG,OAAO;AAAA,QACrD,KAAKhC,EAAE;AAAA,QACP,OAAO;AAAA,QACP,OAAO2M,GAAG,YAAY3M,EAAE,KAAK,EAAE;AAAA,MACvC,GAAS;AAAA,QACDA,EAAE,cAAc+B,MAAMmL,GAAG2P,IAAI,EAAE,KAAK,EAAG,CAAA,KAAKjQ,GAAG,IAAI,EAAE;AAAA,QACrDC,GAAG,KAAK,MAAM;AAAA,WACX9K,GAAG,EAAE,GAAGC,GAAG+K,IAAI,MAAMwP,GAAGvc,EAAE,OAAO,CAACC,OAAO8B,GAAE,GAAImL,GAAGhX,EAAEkZ,EAAE,GAAG;AAAA,YACxD,IAAInP,EAAE;AAAA,YACN,KAAKA,EAAE;AAAA,YACP,MAAMA;AAAA,YACN,MAAMJ,EAAEI,EAAE,MAAMA,EAAE,QAAQ;AAAA,YAC1B,MAAMA,EAAE,QAAQ;AAAA,YAChB,YAAY9H,EAAE8H,EAAE,UAAU;AAAA,YAC1B,WAAW3H,EAAE2H,EAAE,SAAS;AAAA,YACxB,WAAW1H,EAAE0H,EAAE,SAAS;AAAA,UACzB,GAAE,MAAM,GAAG,CAAC,MAAM,QAAQ,QAAQ,QAAQ,cAAc,aAAa,WAAW,CAAC,EAAE,GAAG,GAAG;AAAA,QACpG,CAAS;AAAA,MACT,GAAS,CAAC,EAAE,GAAG,GAAG;AAAA,MACZ/J,EAAE+B,CAAC,KAAK/B,EAAEmC,CAAC,KAAK0J,MAAMC,GAAG,OAAO8a,IAAI;AAAA,QAClCE,GAAGpN,IAAI,EAAE,eAAe1Z,EAAEmC,CAAC,EAAG,GAAE,MAAM,GAAG,CAAC,aAAa,CAAC;AAAA,MACzD,CAAA,KAAKuU,GAAG,IAAI,EAAE;AAAA,IAChB,GAAE,EAAE,KAAKA,GAAG,IAAI,EAAE;AAAA,EACpB;AACH,CAAC,GAAG,KAAqBC,gBAAAA,GAAG,OAAO,EAAE,OAAO,wBAAuB,GAAI,MAAM,EAAE,GAAGoQ,KAAK;AAAA,EACrF,MAAM;AAAA,EACN,cAAc,EAAE,MAAM,EAAG;AAC3B,GAAGC,KAAqBrb,gBAAAA,GAAG;AAAA,EACzB,GAAGob;AAAA,EACH,MAAM,GAAG;AACP,UAAM,EAAE,IAAI,GAAG,UAAU,GAAG,OAAO,GAAG,QAAQ7mB,GAAG,aAAaC,GAAG,YAAYQ,GAAG,GAAGE,MAAM0H,GAAI,GAAEzH,IAAIR,GAAG,CAACb,EAAE;AACzG,WAAO6C,GAAG,MAAMpC,EAAE,SAASC,EAAE,SAASQ,EAAE,MAAM,QAAQ,KAAKA,EAAE,MAAM,SAAS,CAAC,EAAE,WAAU,EAAG,KAAK,MAAM;AACrG,QAAE,UAAU;AAAA,QACV,IAAI;AAAA,QACJ,UAAU;AAAA,QACV,OAAO;AAAA,QACP,QAAQT;AAAA,QACR,aAAaC;AAAA,QACb,YAAYQ;AAAA,QACZ,GAAGE;AAAA,MACX,CAAO,GAAG,WAAW,MAAM;AACnB,QAAAC,EAAE,QAAQ;AAAA,MACX,GAAE,CAAC;AAAA,IACV,CAAK,GAAG,CAACC,GAAG,OAAO8K,GAAI,GAAEC,GAAG,OAAO;AAAA,MAC7B,KAAK,aAAa9L,EAAE,CAAC,CAAC;AAAA,MACtB,OAAO;AAAA,MACP,OAAOyW,GAAG;AAAA,QACR,WAAW,aAAazW,EAAE,CAAC,EAAE,CAAC,MAAMA,EAAE,CAAC,EAAE,CAAC,aAAaA,EAAE,CAAC,EAAE,IAAI;AAAA,QAChE,SAASA,EAAEc,CAAC,IAAI,SAAS;AAAA,MACjC,CAAO;AAAA,IACP,GAAO;AAAA,MACDgmB,GAAG,EAAE;AAAA,MACL;AAAA,MACAA,GAAGX,EAAE;AAAA,MACLna,GAAGjL,EAAE,QAAQ,SAAS;AAAA,IAC5B,GAAO,CAAC;AAAA,EACL;AACH,CAAC,GAAGkmB,KAAK;AAAA,EACP,MAAM;AAAA,EACN,cAAc,EAAE,MAAM,EAAG;AAC3B,GAAGC,KAAqBvb,gBAAAA,GAAG;AAAA,EACzB,GAAGsb;AAAA,EACH,MAAM,GAAG;AACP,UAAM;AAAA,MACJ,IAAI;AAAA,MACJ,SAAS;AAAA,MACT,SAAS;AAAA,MACT,iBAAiB/mB;AAAA,MACjB,iBAAiBC;AAAA,MACjB,YAAYQ;AAAA,MACZ,uBAAuBE;AAAA,MACvB,kBAAkBC;AAAA,MAClB,sBAAsBC;AAAA,MACtB,aAAa;AAAA,MACb,iBAAiBE;AAAA,MACjB,kBAAkBC;AAAA,MAClB,WAAWS;AAAA,MACX,mBAAmBC;AAAA,MACnB,aAAaC;AAAA,MACb,cAAcC;AAAA,MACd,kBAAkBK;AAAA,MAClB,kBAAkBJ;AAAA,MAClB,gBAAgBC;AAAA,MAChB,OAAOC;AAAA,MACP,uBAAuBG;AAAA,MACvB,qBAAqBC;AAAA,MACrB,cAAcsH;AAAA,MACd,QAAQC;AAAA,MACR,aAAaC;AAAA,MACb,eAAeC;AAAA,MACf,UAAUC;AAAA,MACV,aAAaC;AAAA,IACd,IAAGzB,GAAE,GAAI+C,KAAKhL,GAAE,GAAI2J,IAAI3J,GAAG,EAAE,GAAG6J,IAAI7J,GAAG,EAAE;AAC1C,QAAI8J,IAAI,IAAIF,IAAI,GAAGG,IAAI;AAAA,MACrB,GAAG;AAAA,MACH,GAAG;AAAA,MACH,MAAM;AAAA,IACZ;AACI,UAAMW,IAAI+K,GAAGhV,CAAC,GAAGmK,IAAIpG,EAAE,MAAM,CAACmF,EAAE,SAAStI,EAAE,SAASqJ,EAAE,KAAK,GAAGF,IAAIhG;AAAAA,MAChE,MAAMhE,EAAE,UAAU,MAAMmJ,EAAE,SAASnJ,EAAE,UAAU,MAAM,CAACoK,EAAE;AAAA,IAC9D;AACI1J,IAAAA,GAAG,MAAM;AACP,MAAA4C,GAAGkH,IAAI,EAAE;AACT,YAAMD,IAAI7F;AACV,MAAA/B,GAAG4H,GAAG,UAAU,EAAE;AAAA,IACxB,CAAK,GAAG7J,GAAG,MAAM;AACX,YAAM6J,IAAIC,GAAG,OAAOd,IAAIa,EAAE,sBAAuB,GAAEN,IAAI2Z,GAAE,EAAG,YAAY,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,gBAAgBvkB,EAAE,KAAK,GAAGoK,IAAI+J,GAAGjJ,CAAC,EAAE,KAAKN,CAAC,GAAGJ,IAAIJ,EAAE,GAAG,YAAY,GAAGG,IAAIuZ,GAAG,UAAU/jB,EAAE,MAAM,KAAK,GAAGA,EAAE,MAAM,KAAK,CAAC,EAAE,MAAM0F,GAAG1F,EAAE,MAAM,QAAQ,GAAG,EAAE,OAAO,EAAE,KAAK,CAAC,GAAG0K,IAAI;AAAA,QACpQ,CAAC,GAAG,CAAC;AAAA,QACL,CAACJ,EAAE,OAAOA,EAAE,MAAM;AAAA,MAC1B,GAASF,IAAIS,EAAE,UAAW,EAACL,GAAGE,GAAGzK,EAAE,KAAK;AAClC,MAAA4K,EAAE,UAAUR,GAAGD,CAAC,GAAGV,EAAE,QAAQmB,GAAGlB,EAAE,QAAQU,GAAGT,EAAE,QAAQa,GAAGZ,EAAE,QAAQ,EAAE,GAAGO,EAAE,GAAG,GAAGA,EAAE,GAAG,MAAMA,EAAE,EAAC,GAAIN,EAAE,QAAQqB,GAAG0K,GAAGjV,GAAG,CAACykB,MAAM;AAC3H,QAAAtb,EAAE,QAAQsb;AAAA,MAClB,CAAO;AACD,YAAM1a,KAAKkL,GAAGlV,CAAC;AACfsmB,MAAAA,GAAG,MAAM;AACP,QAAAld,EAAE,SAAS5H,EAAE,SAAS,CAAC8H,EAAE,QAAQY,EAAE,GAAG,QAAQ,IAAI,IAAI,CAACd,EAAE,SAAS,CAAC5H,EAAE,SAAS0I,EAAE,GAAG,QAAQ,CAACwa,MAAM;AAChG,UAAAxb,EAAE,QAAQ,EAAE,GAAGwb,EAAE,UAAU,GAAG,GAAGA,EAAE,UAAU,GAAG,MAAMA,EAAE,UAAU;AAClE,gBAAMC,KAAKra,GAAGoa,EAAE,SAAS;AACzB,UAAAnb,IAAIK,EAAE9I,EAAE,OAAOuI,KAAK,CAAC,GAAGjI,EAAE,eAAeujB,EAAE,GAAGvjB,EAAE,KAAK,EAAE,OAAOsjB,GAAG,eAAeC,GAAE,CAAE;AAAA,QAC9F,CAAS;AAAA,MACF,CAAA,GAAGza,EAAE,GAAG,SAAS,CAACwa,MAAM;AACvB,YAAIE;AACJ,YAAI,CAACF,EAAE;AACL,iBAAO;AACT,QAAArb,IAAIqb,EAAE,YAAY,QAAQpb,EAAE,QAAQ;AACpC,cAAMqb,KAAKra,GAAGoa,EAAE,SAAS;AACzB,UAAEE,KAAKF,EAAE,gBAAgB,OAAO,SAASE,GAAG,UAAU,gBAAgB9b,EAAE,QAAQ,KAAKU,IAAImb,IAAIvjB,EAAE,oBAAoBujB,EAAE,GAAGvjB,EAAE,UAAU,EAAE,OAAOsjB,GAAG,eAAeC,GAAI,CAAA;AAAA,MACpK,CAAA,GAAGza,EAAE,GAAG,OAAO,CAACwa,MAAM;AACrB,YAAI,CAACA,EAAE;AACL,iBAAO;AACT,YAAIpb,EAAE,QAAQ,IAAIR,EAAE,QAAQ,IAAIc,EAAE9I,EAAE,OAAOuI,KAAK,CAAC,KAAK,CAACE,KAAKnI,EAAE,gBAAgBsjB,EAAE,WAAW,GAAGnb,IAAI,IAAIa,EAAEZ,GAAGkb,EAAE,SAAS,GAAG;AACvH,gBAAMC,KAAKra,GAAGoa,EAAE,SAAS;AACzB,UAAAlb,IAAImb,IAAIvjB,EAAE,kBAAkBujB,EAAE,GAAGvjB,EAAE,QAAQ,EAAE,OAAOsjB,GAAG,eAAeC,GAAI,CAAA;AAAA,QAC3E;AAAA,MACT,CAAO,GAAG2B,GAAG,MAAM;AACX,UAAE,SAAS,CAACtc,GAAG,SAAS,CAACxI,EAAE,QAAQkI,EAAE;AAAA,UACnC;AAAA,UACA,CAACgb,MAAM;AACL,gBAAIna,EAAEma,GAAGxjB,EAAE,KAAK;AACd,qBAAO;AACT,YAAAwjB,EAAE,eAAc,GAAIA,EAAE,yBAAwB;AAC9C,kBAAMC,KAAKjb,EAAE,SAAS,QAAQ,EAAE,KAAK;AACrC,gBAAIgb,EAAE,WAAW1jB,EAAE,OAAO;AACxB,oBAAMulB,KAAK5S,GAAG+Q,CAAC,GAAG8B,KAAK,CAAC9B,EAAE,UAAUA,EAAE,cAAc,IAAI,OAAOA,EAAE,YAAY,IAAI,QAAQ,IAAI+B,KAAK9B,KAAK,KAAK6B;AAC5G,cAAAtc,EAAE,QAAQR,GAAG+c,IAAIF,EAAE;AACnB;AAAA,YACD;AACD,kBAAM3B,KAAKF,EAAE,cAAc,IAAI,KAAK,GAAGgC,KAAKtmB,EAAE,UAAU,GAAG,WAAW,IAAIskB,EAAE,SAASE,IAAI+B,KAAKvmB,EAAE,UAAU,GAAG,aAAa,IAAIskB,EAAE,SAASE;AACzI,YAAA1a,EAAE;AAAA,cACAR;AAAA,cACA,EAAEgd,KAAK/B,MAAMtkB,EAAE;AAAA,cACf,EAAEsmB,KAAKhC,MAAMtkB,EAAE;AAAA,YAC7B;AAAA,UACW;AAAA,UACD,EAAE,SAAS,GAAI;AAAA,QAChB,IAAG,OAAOyJ,IAAI,OAAOJ,EAAE;AAAA,UACtB;AAAA,UACA,SAASgb,GAAGC,IAAI;AACd,gBAAI,CAACrjB,EAAE,SAASiJ,EAAEma,GAAGxjB,EAAE,KAAK;AAC1B,qBAAO;AACT,YAAAwjB,EAAE,eAAc,GAAI5a,EAAE,KAAK,MAAM4a,GAAGC,EAAE;AAAA,UACvC;AAAA,UACD,EAAE,SAAS,GAAI;AAAA,QACzB;AAAA,MACO,CAAA,GAAGza,EAAE,OAAO,CAACwa,MAAM;AAClB,YAAIiC,IAAIJ;AACR,cAAM5B,KAAK3a,GAAG,SAAS/I,EAAE,OAAO2jB,KAAK5jB,EAAE,SAAS0jB,EAAE;AAClD,YAAIA,EAAE,WAAW,KAAKA,EAAE,SAAS,iBAAiBiC,KAAKjC,EAAE,WAAW,QAAQiC,GAAG,QAAQ,iBAAiB,MAAMJ,KAAK7B,EAAE,WAAW,QAAQ6B,GAAG,QAAQ,iBAAiB;AAClK,iBAAO;AACT,YAAI,CAACzlB,EAAE,SAAS,CAAC6jB,MAAM,CAAC,EAAE,SAAS,CAAC5jB,EAAE,SAAS,CAACC,EAAE,SAASQ,EAAE,SAAS,CAACT,EAAE,SAAS2jB,EAAE,SAAS,cAAcna,EAAEma,GAAGxjB,EAAE,KAAK,KAAKwjB,EAAE,SAAS,WAAWna,EAAEma,GAAGvjB,EAAE,KAAK,KAAKujB,EAAE,SAAS,WAAW,CAAC1jB,EAAE,SAAS0jB,EAAE,WAAWA,EAAE,SAAS,WAAW,CAACC,MAAM,CAAC,EAAE,SAAS,CAACC,MAAMF,EAAE,SAAS,WAAW,CAAC5jB,EAAE,UAAU4jB,EAAE,SAAS,eAAeA,EAAE,SAAS,iBAAiB,MAAM,QAAQ5jB,EAAE,KAAK,KAAK,CAACA,EAAE,MAAM,SAAS4jB,EAAE,MAAM,MAAMA,EAAE,SAAS,eAAeA,EAAE,SAAS;AACxb,iBAAO;AACT,cAAMgC,KAAK,MAAM,QAAQ5lB,EAAE,KAAK,KAAKA,EAAE,MAAM,SAAS4jB,EAAE,MAAM,KAAK,CAACA,EAAE,UAAUA,EAAE,UAAU;AAC5F,gBAAQ,CAACA,EAAE,WAAWA,EAAE,SAAS,YAAYgC;AAAA,MACrD,CAAO;AAAA,IACP,CAAK;AACD,aAAS9c,EAAEY,GAAGb,GAAG;AACf,aAAOA,MAAM,KAAK,MAAM,QAAQa,CAAC,KAAKA,EAAE,SAAS,CAAC;AAAA,IACnD;AACD,aAASJ,EAAEI,GAAGb,GAAG;AACf,aAAOa,EAAE,MAAMb,EAAE,KAAK,CAAC,MAAMA,EAAE,CAAC,KAAKa,EAAE,MAAMb,EAAE,KAAK,CAAC,MAAMA,EAAE,CAAC,KAAKa,EAAE,SAASb,EAAE,KAAK,CAAC,MAAMA,EAAE,CAAC;AAAA,IAChG;AACD,aAASW,GAAGE,GAAG;AACb,aAAO;AAAA,QACL,GAAGA,EAAE;AAAA,QACL,GAAGA,EAAE;AAAA,QACL,MAAMA,EAAE;AAAA,MAChB;AAAA,IACK;AACD,aAAS,KAAK;AACZ,UAAI,CAACC,GAAG;AACN;AACF,YAAM,EAAE,OAAOD,GAAG,QAAQb,EAAC,IAAK7E,GAAG2F,GAAG,KAAK;AAC3C,OAACD,MAAM,KAAKb,MAAM,MAAMvI,EAAE,MAAM,IAAIsD,GAAGF,GAAG,2BAA2B,CAAC,GAAG1E,EAAE,MAAM,QAAQ0K,KAAK,KAAK1K,EAAE,MAAM,SAAS6J,KAAK;AAAA,IAC1H;AACD,aAASY,EAAEC,GAAGb,GAAG;AACf,aAAOa,EAAE,OAAO,QAAQ,IAAIb,CAAC,EAAE;AAAA,IAChC;AACD,WAAO,CAACa,GAAGb,OAAOqB,GAAI,GAAEC,GAAG+K,IAAI,MAAM;AAAA,OAClChL,GAAI,GAAEC,GAAG,OAAO;AAAA,QACf,SAAS;AAAA,QACT,KAAKR;AAAA,QACL,KAAK,YAAYtL,EAAE,CAAC,CAAC;AAAA,QACrB,OAAO;AAAA,MACf,GAAS;AAAA,QACD8mB,GAAGb,IAAI;AAAA,UACL,gBAAgBjmB,EAAE8K,CAAC;AAAA,UACnB,OAAOiB,GAAG,EAAE,YAAY,CAAC,CAAC/L,EAAEoC,CAAC,GAAG,UAAUpC,EAAE2J,CAAC,GAAG,WAAW,CAAC,CAAC3J,EAAE2B,CAAC,GAAG;AAAA,QAC7E,GAAW;AAAA,UACD,SAAS8lB,GAAG,MAAM;AAAA,YAChBX,GAAGE,IAAI,MAAM;AAAA,cACX,SAASS,GAAG,MAAM;AAAA,gBAChBzb,GAAGX,EAAE,QAAQ,WAAW;AAAA,cACxC,CAAe;AAAA,cACD,GAAG;AAAA,YACjB,CAAa;AAAA,UACb,CAAW;AAAA,UACD,GAAG;AAAA,QACJ,GAAE,GAAG,CAAC,gBAAgB,OAAO,CAAC;AAAA,MACvC,CAAO;AAAA,MACDW,GAAGX,EAAE,QAAQ,SAAS;AAAA,IAC5B,GAAO,EAAE;AAAA,EACN;AACH,CAAC,GAAGqc,KAAK,CAAC,IAAI,GAAGC,KAAK,CAAC,IAAI,GAAGC,KAAK,CAAC,IAAI,GAAGC,KAAK;AAAA,EAC9C,MAAM;AAAA,EACN,cAAc,EAAE,MAAM,EAAG;AAC3B,GAAGC,KAAqBnc,gBAAAA,GAAG;AAAA,EACzB,GAAGkc;AAAA,EACH,MAAM,GAAG;AACP,UAAM,EAAE,IAAI,GAAG,qBAAqB,GAAG,iBAAiB,EAAG,IAAGtf,GAAI,GAAErI,IAAI;AAAA,MACtE,UAAU;AAAA,MACV,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,QAAQ;AAAA,MACR,QAAQ;AAAA,MACR,SAAS;AAAA,MACT,UAAU;AAAA,MACV,MAAM;AAAA,MACN,UAAU;AAAA,IAChB;AACI,WAAO,CAACC,GAAGQ,OAAOkL,GAAI,GAAEC,GAAG+K,IAAI,MAAM;AAAA,MACnCF,GAAG,OAAO;AAAA,QACR,IAAI,GAAG3W,EAAEsV,EAAE,CAAC,IAAItV,EAAE,CAAC,CAAC;AAAA,QACpB,OAAO,EAAE,SAAS,OAAQ;AAAA,MAC3B,GAAE,6CAA6C+W,GAAG/W,EAAE,CAAC,IAAI,KAAK,0DAA0D,IAAI,oHAAoH,GAAG0nB,EAAE;AAAA,MACtP/Q,GAAG,OAAO;AAAA,QACR,IAAI,GAAG3W,EAAEuV,EAAE,CAAC,IAAIvV,EAAE,CAAC,CAAC;AAAA,QACpB,OAAO,EAAE,SAAS,OAAQ;AAAA,MAClC,GAAS,+GAA+G,GAAG2nB,EAAE;AAAA,MACvH3nB,EAAE,CAAC,IAAI0W,GAAG,IAAI,EAAE,KAAK7K,GAAE,GAAIC,GAAG,OAAO;AAAA,QACnC,KAAK;AAAA,QACL,IAAI,GAAG9L,EAAEwV,EAAE,CAAC,IAAIxV,EAAE,CAAC,CAAC;AAAA,QACpB,aAAa;AAAA,QACb,eAAe;AAAA,QACf,OAAOE;AAAA,MACf,GAAS6W,GAAG/W,EAAE,CAAC,CAAC,GAAG,GAAG4nB,EAAE;AAAA,IACxB,GAAO,EAAE;AAAA,EACN;AACH,CAAC,GAAGG,KAAK;AAAA,EACP,MAAM;AAAA,EACN,cAAc,EAAE,MAAM,EAAG;AAC3B,GAAGC,KAAqBrc,gBAAAA,GAAG;AAAA,EACzB,GAAGoc;AAAA,EACH,OAAO;AAAA,IACL,IAAI;AAAA,IACJ,YAAY;AAAA,IACZ,OAAO;AAAA,IACP,OAAO;AAAA,IACP,WAAW;AAAA,IACX,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,oBAAoB;AAAA,IACpB,qBAAqB,EAAE,SAAS,OAAQ;AAAA,IACxC,uBAAuB,EAAE,SAAS,OAAQ;AAAA,IAC1C,kBAAkB;AAAA,IAClB,mBAAmB,EAAE,MAAM,CAAC,UAAU,IAAI,GAAG,SAAS,OAAQ;AAAA,IAC9D,eAAe;AAAA,IACf,kBAAkB;AAAA,IAClB,uBAAuB;AAAA,IACvB,uBAAuB;AAAA,IACvB,sBAAsB;AAAA,IACtB,YAAY,EAAE,MAAM,SAAS,SAAS,OAAQ;AAAA,IAC9C,UAAU;AAAA,IACV,2BAA2B,EAAE,MAAM,SAAS,SAAS,OAAQ;AAAA,IAC7D,gBAAgB,EAAE,MAAM,CAAC,SAAS,MAAM,GAAG,SAAS,OAAQ;AAAA,IAC5D,gBAAgB,EAAE,MAAM,SAAS,SAAS,OAAQ;AAAA,IAClD,kBAAkB,EAAE,MAAM,SAAS,SAAS,OAAQ;AAAA,IACpD,oBAAoB,EAAE,MAAM,SAAS,SAAS,OAAQ;AAAA,IACtD,mBAAmB,EAAE,MAAM,SAAS,SAAS,OAAQ;AAAA,IACrD,WAAW,EAAE,MAAM,CAAC,SAAS,KAAK,GAAG,SAAS,OAAQ;AAAA,IACtD,SAAS;AAAA,IACT,SAAS;AAAA,IACT,iBAAiB;AAAA,IACjB,iBAAiB;AAAA,IACjB,YAAY;AAAA,IACZ,oBAAoB;AAAA,IACpB,cAAc,EAAE,MAAM,SAAS,SAAS,OAAQ;AAAA,IAChD,aAAa,EAAE,MAAM,SAAS,SAAS,OAAQ;AAAA,IAC/C,aAAa,EAAE,MAAM,SAAS,SAAS,OAAQ;AAAA,IAC/C,kBAAkB;AAAA,IAClB,iBAAiB;AAAA,IACjB,mBAAmB,EAAE,MAAM,SAAS,SAAS,OAAQ;AAAA,IACrD,kBAAkB,EAAE,MAAM,SAAS,SAAS,OAAQ;AAAA,IACpD,eAAe;AAAA,IACf,mBAAmB;AAAA,IACnB,eAAe,EAAE,MAAM,SAAS,SAAS,OAAQ;AAAA,IACjD,gBAAgB,EAAE,MAAM,SAAS,SAAS,OAAQ;AAAA,IAClD,cAAc,EAAE,MAAM,SAAS,SAAS,OAAQ;AAAA,IAChD,aAAa,EAAE,MAAM,CAAC,SAAS,QAAQ,GAAG,SAAS,OAAQ;AAAA,IAC3D,iBAAiB;AAAA,IACjB,kBAAkB;AAAA,IAClB,gBAAgB;AAAA,IAChB,oBAAoB;AAAA,IACpB,sBAAsB,EAAE,MAAM,SAAS,SAAS,OAAQ;AAAA,IACxD,sBAAsB,EAAE,MAAM,SAAS,SAAS,OAAQ;AAAA,IACxD,qBAAqB,EAAE,MAAM,SAAS,SAAS,OAAQ;AAAA,IACvD,gBAAgB,EAAE,MAAM,SAAS,SAAS,OAAQ;AAAA,IAClD,gBAAgB,EAAE,MAAM,SAAS,SAAS,OAAQ;AAAA,IAClD,kBAAkB,EAAE,MAAM,SAAS,SAAS,OAAQ;AAAA,IACpD,mBAAmB,EAAE,MAAM,SAAS,SAAS,OAAQ;AAAA,IACrD,wBAAwB;AAAA,EACzB;AAAA,EACD,OAAO,CAAC,eAAe,eAAe,mBAAmB,aAAa,kBAAkB,iBAAiB,kBAAkB,mBAAmB,iBAAiB,YAAY,gBAAgB,oBAAoB,oBAAoB,0BAA0B,yBAAyB,wBAAwB,yBAAyB,WAAW,gBAAgB,cAAc,qBAAqB,mBAAmB,aAAa,QAAQ,WAAW,sBAAsB,iBAAiB,qBAAqB,wBAAwB,kBAAkB,gBAAgB,uBAAuB,kBAAkB,qBAAqB,aAAa,cAAc,aAAa,mBAAmB,kBAAkB,iBAAiB,kBAAkB,mBAAmB,kBAAkB,iBAAiB,kBAAkB,mBAAmB,aAAa,mBAAmB,cAAc,iBAAiB,uBAAuB,SAAS,qBAAqB,gBAAgB,cAAc;AAAA,EACz8B,MAAM,GAAG,EAAE,QAAQ,GAAG,MAAM,KAAK;AAC/B,UAAM,IAAI,GAAG7nB,IAAI2E,GAAG,GAAG,cAAc,CAAC,GAAG1E,IAAI0E,GAAG,GAAG,SAAS,CAAC,GAAGlE,IAAIkE,GAAG,GAAG,SAAS,CAAC,GAAG,EAAE,YAAYhE,GAAG,OAAOC,GAAG,cAAcC,GAAG,cAAc,GAAG,GAAGE,MAAMsH,GAAG,CAAC,GAAGrH,IAAI2kB,GAAG,EAAE,YAAY3lB,GAAG,OAAOC,GAAG,OAAOQ,EAAG,GAAE,GAAG;AAAA,MACnN,YAAYE;AAAA,MACZ,OAAOC;AAAA,MACP,cAAcC;AAAA,MACd,cAAc;AAAA,MACd,GAAGE;AAAA,IACT,CAAK;AACD,IAAAkE,GAAG,GAAGrE,CAAC;AACP,UAAMa,IAAIrB;AACV,WAAO2V,GAAG7N,IAAI6f,GAAE,CAAE,GAAGC,GAAG,MAAM;AAC5B,MAAAhnB;IACN,CAAK,GAAGM,GAAG,MAAM;AACX,MAAAX,EAAE,QAAQc,EAAE;AAAA,IACb,CAAA,GAAG,EAAE;AAAA,MACJ,YAAYd;AAAA,MACZ,OAAOC;AAAA,MACP,cAAcC;AAAA,MACd,cAAc;AAAA,MACd,GAAGE;AAAA,IACT,CAAK,GAAG,CAACW,GAAGC,OAAOgK,GAAI,GAAEC,GAAG,OAAO;AAAA,MAC7B,SAAS;AAAA,MACT,KAAKnK;AAAA,MACL,OAAO;AAAA,IACb,GAAO;AAAA,MACDmlB,GAAGI,IAAI,MAAM;AAAA,QACX,OAAOO,GAAG,MAAM;AAAA,WACb5b,GAAG,EAAE,GAAGC,GAAG+K,IAAI,MAAMwP,GAAG,OAAO,KAAKrmB,EAAEe,CAAC,CAAC,GAAG,CAACe,MAAMkK,GAAGpK,EAAE,QAAQ,QAAQE,CAAC,EAAE,CAAC,GAAG,GAAG;AAAA,QAC5F,CAAS;AAAA,QACD,OAAO2lB,GAAG,MAAM;AAAA,WACb5b,GAAG,EAAE,GAAGC,GAAG+K,IAAI,MAAMwP,GAAG,OAAO,KAAKrmB,EAAE,CAAC,CAAC,GAAG,CAAC8B,MAAMkK,GAAGpK,EAAE,QAAQ,QAAQE,CAAC,EAAE,CAAC,GAAG,GAAG;AAAA,QAC5F,CAAS;AAAA,QACD,mBAAmB2lB,GAAG,MAAM;AAAA,UAC1Bzb,GAAGpK,EAAE,QAAQ,iBAAiB;AAAA,QACxC,CAAS;AAAA,QACD,aAAa6lB,GAAG,MAAM;AAAA,UACpBzb,GAAGpK,EAAE,QAAQ,WAAW;AAAA,QAClC,CAAS;AAAA,QACD,SAAS6lB,GAAG,MAAM;AAAA,UAChBzb,GAAGpK,EAAE,QAAQ,SAAS;AAAA,QAChC,CAAS;AAAA,QACD,GAAG;AAAA,MACX,CAAO;AAAA,MACDklB,GAAGgB,EAAE;AAAA,IACX,GAAO,GAAG;AAAA,EACP;AACH,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC98MD,UAAMK,IAAQC,GAERC,IAAOC,GAEPC,IAAc;AAAA,MACnB,KAAKC,EAAS;AAAA,MACd,OAAOA,EAAS;AAAA,MAChB,QAAQA,EAAS;AAAA,MACjB,MAAMA,EAAS;AAAA,IAAA,GAGVC,IAAiBC,EAAS,MAAMH,EAAYJ,EAAM,cAAc,CAAC,GACjEQ,IAAiBD,EAAS,MAAMH,EAAYJ,EAAM,cAAc,CAAC,GAEjES,IAAaC,MACbC,IAAWD,GAAI,EAAE,GACjBE,IAAYF,GAAI,EAAK;AAC3B,QAAIG,IAAY;AAEhB,UAAMC,IAAc,MAAM;AACrB,UAAAC,IAAM,KAAK;AACf,MAAIA,IAAMF,IAAY,OAAO,CAACD,EAAU,SACxBI,KAEJH,IAAAE;AAAA,IAAA,GAGPC,IAAiB,YAAY;AAClC,MAAAL,EAAS,QAAQX,EAAM,OACvBY,EAAU,QAAQ,IAClB,MAAMK,GAAS,GACfR,EAAW,MAAM;IAAM,GAGlBS,IAAiB,MAAM;AAC5B,MAAAN,EAAU,QAAQ,IACbV,EAAA,UAAUS,EAAS,KAAK;AAAA,IAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GCO9BQ,KAAe;AAAA,EACd,cAAc;AACf;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AArCA,UAAMnB,IAAQC;AAEUmB,IAAAA,GAAW;AAEnC,UAAMlB,IAAOC,GAEPM,IAAaC,MACbC,IAAWD,GAAI,EAAE,GACjBE,IAAYF,GAAI,EAAK;AAC3B,QAAIG,IAAY;AAEhB,UAAMQ,IAAe,MAAM;AACtB,UAAAN,IAAM,KAAK;AACf,MAAIA,IAAMF,IAAY,OAAO,CAACD,EAAU,SACxBI,KAEJH,IAAAE;AAAA,IAAA,GAGPC,IAAiB,YAAY;AAClC,MAAAL,EAAS,QAAQX,EAAM,OACvBY,EAAU,QAAQ,IAClB,MAAMK,GAAS,GACfR,EAAW,MAAM;IAAM,GAGlBS,IAAiB,MAAM;AAC5B,MAAAN,EAAU,QAAQ,IACbV,EAAA,UAAUS,EAAS,KAAK;AAAA,IAAA,GAGxBW,IAAOf,EAAS,MAAMgB,GAAcvB,CAAK,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACAhD,UAAMA,IAAQC,GAORC,IAAOC,GAIPqB,IAAiBd,GAAI,EAAE,GACvBe,IAAkBf,GAAI,CAAA,CAAE,GACxBgB,IAAQhB,GAAI,EAAK;AACH,IAAAA,GAAI;AAAA,MACvB,GAAG;AAAA,MACH,GAAG;AAAA,IAAA,CACH;AAEK,UAAAiB,IAAmBjB,GAAI,EAAE,GAEzBkB,IAAkBlB,GAAI,CAAA,CAAE,GAIxBmB,IAAqBtB,EAAS,MAAM;AACzC,eAAShhB,IAAI,GAAGA,IAAIqiB,EAAgB,MAAM,QAAQriB;AACjD,YAAIqiB,EAAgB,MAAMriB,CAAC,EAAE,MAAMoiB,EAAiB;AAAc,iBAAApiB;AAE5D,aAAA;AAAA,IAAA,CACP,GAEKuiB,IAAWvB,EAAS;AAAA,MACzB,KAAK,MAAM;AACV,YAAIwB,IAAY/B,EAAM;AACtB,QAAIA,EAAM,qBACTwB,EAAe,QAAQxB,EAAM,qBAE7BwB,EAAe,QAAQ;AAGxB,iBAASjiB,IAAI,GAAGA,IAAIwiB,EAAU,QAAQxiB;AAC3B,UAAAwiB,EAAAxiB,CAAC,EAAE,OAAO,IAChBwiB,EAAUxiB,CAAC,EAAE,QAAQ,WACdwiB,EAAAxiB,CAAC,EAAE,KAAK,WAAW,IACnBwiB,EAAAxiB,CAAC,EAAE,KAAK,YAAY,MACpBwiB,EAAUxiB,CAAC,EAAE,QAAQ,YACrBwiB,EAAAxiB,CAAC,EAAE,KAAK,WAAW,IACnBwiB,EAAAxiB,CAAC,EAAE,KAAK,YAAY,OAEpBwiB,EAAAxiB,CAAC,EAAE,KAAK,WAAW,IACnBwiB,EAAAxiB,CAAC,EAAE,KAAK,YAAY,KAErBwiB,EAAAxiB,CAAC,EAAE,QAAQ,0BACXwiB,EAAAxiB,CAAC,EAAE,OAAO;AAGrB,iBAASA,IAAI,GAAGA,IAAIwiB,EAAU,QAAQxiB,KAAK;AACtC,cAAAyiB,IAAMD,EAAUxiB,CAAC,EAAE;AACd,UAAAwiB,EAAUxiB,CAAC,GACVwiB,EAAAxiB,CAAC,EAAE,SAAS;AAAA,YACrB,OAAO,MAAM;AACZ,cAAAoiB,EAAiB,QAAQK;AAAA,YAC1B;AAAA,UAAA;AAAA,QAEF;AAEO,eAAAD;AAAA,MACR;AAAA,MACA,KAAK,CAAYE,MAAA;AAChB,QAAA/B,EAAK,qBAAqB,KAAK,MAAM,KAAK,UAAU+B,CAAQ,CAAC,CAAC;AAAA,MAC/D;AAAA,IAAA,CACA,GAIK,EAAE,UAAAC,GAAU,aAAAC,EAAgB,IAAAf,GAAW,CAAE,CAAA;AAE/C,IAAAe,EAAY,CAAKpqB,MAAA;AAChB,MAAA0pB,EAAgB,QAAQ1pB;AAAA,IAAA,CACxB,GAID6pB,EAAgB,QAAQE,EAAS,OAIjCM,GAAU,MAAM;AACN,eAAA,oBAAoB,YAAYC,CAAc,GAC9C,SAAA,iBAAiB,YAAYA,CAAc;AAAA,IAAA,CACpD,GAEDC,GAAgB,MAAM;AACZ,eAAA,oBAAoB,YAAYD,CAAc;AAAA,IAAA,CACvD;AAID,UAAME,IAAgB,CAAmBC,OACjC;AAAA,MACN,KAAK;AAAA,MACL,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,MAAM;AAAA,OACLA,CAAe,GAGZC,IAAc,MAAM;AACrB,MAAAZ,EAAmB,QAAQ,OAC9BD,EAAgB,MAAMC,EAAmB,KAAK,EAAE,iBAAiBU;AAAA,QAChEX,EAAgB,MAAMC,EAAmB,KAAK,EAAE;AAAA,MAAA;AAAA,IAElD,GAGKa,IAAa,MAAM;AACpB,MAAAb,EAAmB,QAAQ,OAC9BD,EAAgB,MAAMC,EAAmB,KAAK,EAAE,iBAAiBU;AAAA,QAChEX,EAAgB,MAAMC,EAAmB,KAAK,EAAE;AAAA,MAAA;AAAA,IAElD,GAGKc,IAAU,CAAUC,MAAA;AAClB,aAAA,SAAS,GAAGA,EAAO,MAAM;AAAA,IAAA,GAG3BP,IAAiB,CAAKQ,MAAA;AAC3B,MAAInB,EAAM,SAASmB,EAAE,WAAW,QAC3BA,EAAE,OAAO,OAAOA,EAAE,OAAO,QAC5BpB,EAAgB,MAAM,UAEnBoB,EAAE,OAAO,OACZpB,EAAgB,MAAM;IAExB,GAGKqB,IAAU,MAAM;AACrB,MAAArB,EAAgB,MAAM;IAAQ,GAGzBsB,IAAU,MAAM;AACjB,UAAAC,IAAkB,EAAE,GAAG,KAAK,OAAW,IAAA,KAAK,GAAG,KAAK,OAAO,IAAI,IAAI,GACnEC,IAAW;AACX,UAAApB,EAAmB,QAAQ,IAAI;AAClC,cAAMqB,IAAatB,EAAgB,MAAMC,EAAmB,KAAK;AAC7D,QAAAqB,EAAW,KAAK,cACDF,IAAA,EAAE,GAAGE,EAAW,SAAS,IAAI,KAAK,GAAGA,EAAW,SAAS,IAAI,GAAG,GACvED,IAAA;AAAA,MAEb;AAEI,UAAAvF,IAAKkE,EAAgB,MAAM,QAC3BuB,IAAS,QAAQzF,CAAE;AAqBvB,UApBAkE,EAAgB,MAAM,KAAK;AAAA,QAC1B,IAAIuB;AAAA,QACJ,OAAO,UAAUzF;AAAA,QACjB,gBAAgB;AAAA,QAChB,gBAAgB;AAAA,QAChB,OAAO;AAAA,QACP,MAAM;AAAA,QACN,MAAM;AAAA,UACL,UAAU;AAAA,UACV,WAAW;AAAA,QACZ;AAAA,QACA,QAAQ;AAAA,UACP,OAAO,MAAM;AACZ,YAAAiE,EAAiB,QAAQwB;AAAA,UAC1B;AAAA,QACD;AAAA;AAAA,QAEA,UAAUH;AAAA,MAAA,CACV,GAEGC,GAAU;AACT,YAAAG,IAAS,QAAQ1F,IAAK,CAAC;AAC3B,QAAAkE,EAAgB,MAAM,KAAK;AAAA,UAC1B,IAAIwB;AAAA,UACJ,QAAQzB,EAAiB;AAAA,UACzB,QAAQwB;AAAA,UACR,MAAM;AAAA,UACN,OAAO,QAAQzF,IAAK,CAAC;AAAA,UACrB,UAAU;AAAA,UACV,QAAQ;AAAA,YACP,OAAO,MAAM;AACZ,cAAAiE,EAAiB,QAAQyB;AAAA,YAC1B;AAAA,UACD;AAAA,QAAA,CACA;AAAA,MACF;AAAA,IAAA,GAGKC,IAAY,CAAKR,MAAA;AACd,cAAA,IAAI,gBAAgBA,CAAC;AAAA,IAAA,GAGxBS,IAAoB,CAAKT,MAAA;AACtB,cAAA,IAAI,qBAAqBA,CAAC;AAAA,IAAA,GAG7BU,IAAe,CAACV,GAAGnF,MAAO;AAC/B,eAASne,IAAI,GAAGA,IAAIqiB,EAAgB,MAAM,QAAQriB;AACjD,YAAIqiB,EAAgB,MAAMriB,CAAC,EAAE,MAAMme,GAAI;AACtB,UAAAkE,EAAA,MAAMriB,CAAC,EAAE,QAAQsjB;AACjC;AAAA,QACD;AAAA,IACD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACrPD,UAAM7C,IAAQC,GAIRC,IAAOC,GAIP2B,IAAWvB,EAAS;AAAA,MACzB,KAAK,MAAM;AACV,YAAIiD,IAASxD,EAAM,YACfyD,IAAY,CAAA,GACZC,IAAY,CAAA,GACZnkB,IAAI,GACJokB,IAAgB,CAAA;AACpB,iBAAS3B,KAAOwB,GAAQ;AACb,UAAAG,EAAc;AACxB,cAAI/Y,IAAK;AAAA,YACR,IAAIoX;AAAA,YACJ,OAAOA;AAAA,YACP,UAAUhC,EAAM,OAAOgC,CAAG,KAAKhC,EAAM,OAAOgC,CAAG,EAAE,WAAWhC,EAAM,OAAOgC,CAAG,EAAE,WAAW,EAAE,GAAG,MAAMziB,GAAG,GAAG,IAAI;AAAA,YAC9G,gBACCygB,EAAM,OAAOgC,CAAG,KAAKhC,EAAM,OAAOgC,CAAG,EAAE,iBAAiBhC,EAAM,OAAOgC,CAAG,EAAE,iBAAiB;AAAA,YAC5F,gBACChC,EAAM,OAAOgC,CAAG,KAAKhC,EAAM,OAAOgC,CAAG,EAAE,iBAAiBhC,EAAM,OAAOgC,CAAG,EAAE,iBAAiB;AAAA,UAAA;AAEzF,UAAAwB,EAAOxB,CAAG,EAAE,QAAQwB,EAAOxB,CAAG,EAAE,QAAQ,YAC3CpX,EAAG,OAAO,UACVA,EAAG,QAAQ,wBAEZ6Y,EAAUzB,CAAG,IAAIpX;AACb,cAAAgZ,IAAQJ,EAAOxB,CAAG,EAAE;AACxB,mBAAS6B,KAAWL,EAAOxB,CAAG,EAAE,IAAI;AAC/B,gBAAA8B,IAASF,EAAMC,CAAO;AAC1B,YAAI,OAAOC,KAAW,YAAYA,EAAO,gBAAgB,WACxDA,IAASA,EAAO,SAEjBH,EAAc,KAAK;AAAA,cAClB,IAAI,GAAG3B,CAAG,IAAI4B,EAAMC,CAAO,CAAC,IAAIA,CAAO;AAAA,cACvC,QAAAC;AAAA,cACA,QAAQ9B;AAAA,cACR,OAAO6B;AAAA,cACP,UAAU;AAAA,YAAA,CACV,GACDH,EAAUI,CAAM,IAAI;AAAA,UACrB;AACA,UAAAvkB;AAAA,QACD;AACA,iBAASyiB,KAAOyB;AACX,UAACC,EAAU1B,CAAG,MACPyB,EAAAzB,CAAG,EAAE,OAAU,SACfyB,EAAAzB,CAAG,EAAE,QAAW,uBAEb2B,EAAA,KAAKF,EAAUzB,CAAG,CAAC;AAE3B,eAAA2B;AAAA,MACR;AAAA,MACA,KAAK,CAAY1B,MAAA;AAEhB,QAAA8B,EAAiB9B,CAAQ;AAAA,MAE1B;AAAA,IAAA,CACA,GAIK8B,IAAmB,CAAAjC,MAAY;AACpC,UAAI0B,IAAS,CAAA,GACTI,IAAQ,CAAA,GACRI,IAAY,CAAA;AAChB,eAASjsB,IAAI,GAAGA,IAAI+pB,EAAS,QAAQ/pB,KAAK;AACrC,YAAA6S,IAAKkX,EAAS/pB,CAAC;AACf,QAAA6S,EAAG,QAAQ,UAEP4Y,EAAA5Y,EAAG,KAAK,IAAI;AAAA,UAClB,IAAI,CAAC;AAAA,QAAA,IAEIA,EAAG,QAAQ,WAEd4Y,EAAA5Y,EAAG,KAAK,IAAI;AAAA,UAClB,MAAM;AAAA,QAAA,IAEGA,EAAG,UAAUA,EAAG,UAE1BgZ,EAAMhZ,EAAG,MAAM,IAAIgZ,EAAMhZ,EAAG,MAAM,KAAK,IACvCgZ,EAAMhZ,EAAG,MAAM,EAAEA,EAAG,KAAK,IAAI;AAAA,UAC5B,QAAQA,EAAG;AAAA,QAAA,KAIL4Y,EAAA5Y,EAAG,KAAK,IAAI;AAAA,UAClB,IAAI,CAAC;AAAA,QAAA,GAGGoZ,EAAApZ,EAAG,EAAE,IAAIA,EAAG;AAAA,MACvB;AAEA,eAASoX,KAAO4B,GAAO;AAElB,YAAAK,IAAQD,EAAUhC,CAAG;AAChB,iBAAA6B,KAAWD,EAAM5B,CAAG;AACrB,UAAAwB,EAAAS,CAAK,EAAE,GAAGJ,CAAO,IAAID,EAAM5B,CAAG,EAAE6B,CAAO;AAAA,MAEhD;AACA,MAAA3D,EAAK,qBAAqBsD,CAAM;AAAA,IAAA;;;;;;;;;;ACjHjC,SAASU,GAAQC,GAAwB;AACpC,EAAAA,EAAA,UAAU,cAAcC,EAAU,GAClCD,EAAA,UAAU,eAAeE,EAAW;AACzC;","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/node_editor/dist/node-editor.umd.cjs b/node_editor/dist/node-editor.umd.cjs new file mode 100644 index 00000000..f0d4a0e7 --- /dev/null +++ b/node_editor/dist/node-editor.umd.cjs @@ -0,0 +1,21 @@ +(function(ye,a){typeof exports=="object"&&typeof module<"u"?a(exports,require("vue")):typeof define=="function"&&define.amd?define(["exports","vue"],a):(ye=typeof globalThis<"u"?globalThis:ye||self,a(ye["@stonecrop/node-editor"]={},ye.Vue))})(this,function(ye,a){"use strict";var Dn;const jt=typeof window<"u",zr=e=>typeof e<"u",Ar=e=>typeof e=="boolean",ve=e=>typeof e=="function",we=e=>typeof e=="number",be=e=>typeof e=="string",Vr=()=>{};jt&&(Dn=window==null?void 0:window.navigator)!=null&&Dn.userAgent&&/iP(ad|hone|od)/.test(window.navigator.userAgent);function ne(e){return typeof e=="function"?e():a.unref(e)}function Lr(e,t){function n(...o){return new Promise((r,i)=>{Promise.resolve(e(()=>t.apply(this,o),{fn:t,thisArg:this,args:o})).then(r).catch(i)})}return n}const zn=e=>e();function Yr(e=zn){const t=a.ref(!0);function n(){t.value=!1}function o(){t.value=!0}const r=(...i)=>{t.value&&e(...i)};return{isActive:a.readonly(t),pause:n,resume:o,eventFilter:r}}function An(e,t=!1,n="Timeout"){return new Promise((o,r)=>{setTimeout(t?()=>r(n):o,e)})}function Xr(e){return e}function Zt(e,t){let n,o,r;const i=a.ref(!0),l=()=>{i.value=!0,r()};a.watch(e,l,{flush:"sync"});const s=ve(t)?t:t.get,u=ve(t)?void 0:t.set,c=a.customRef((d,f)=>(o=d,r=f,{get(){return i.value&&(n=s(),i.value=!1),o(),n},set(p){u==null||u(p)}}));return Object.isExtensible(c)&&(c.trigger=l),c}function je(e){return a.getCurrentScope()?(a.onScopeDispose(e),!0):!1}function Gr(e,t=!0){a.getCurrentInstance()?a.onMounted(e):t?e():a.nextTick(e)}function Kt(e,t=!1){function n(f,{flush:p="sync",deep:b=!1,timeout:v,throwOnTimeout:x}={}){let k=null;const E=[new Promise(B=>{k=a.watch(e,G=>{f(G)!==t&&(k==null||k(),B(G))},{flush:p,deep:b,immediate:!0})})];return v!=null&&E.push(An(v,x).then(()=>ne(e)).finally(()=>k==null?void 0:k())),Promise.race(E)}function o(f,p){if(!a.isRef(f))return n(G=>G===f,p);const{flush:b="sync",deep:v=!1,timeout:x,throwOnTimeout:k}=p??{};let E=null;const B=[new Promise(G=>{E=a.watch([e,f],([w,P])=>{t!==(w===P)&&(E==null||E(),G(w))},{flush:b,deep:v,immediate:!0})})];return x!=null&&B.push(An(x,k).then(()=>ne(e)).finally(()=>(E==null||E(),ne(e)))),Promise.race(B)}function r(f){return n(p=>!!p,f)}function i(f){return o(null,f)}function l(f){return o(void 0,f)}function s(f){return n(Number.isNaN,f)}function u(f,p){return n(b=>{const v=Array.from(b);return v.includes(f)||v.includes(ne(f))},p)}function c(f){return d(1,f)}function d(f=1,p){let b=-1;return n(()=>(b+=1,b>=f),p)}return Array.isArray(ne(e))?{toMatch:n,toContains:u,changed:c,changedTimes:d,get not(){return Kt(e,!t)}}:{toMatch:n,toBe:o,toBeTruthy:r,toBeNull:i,toBeNaN:s,toBeUndefined:l,changed:c,changedTimes:d,get not(){return Kt(e,!t)}}}function ue(e){return Kt(e)}var Vn=Object.getOwnPropertySymbols,Fr=Object.prototype.hasOwnProperty,Hr=Object.prototype.propertyIsEnumerable,Ur=(e,t)=>{var n={};for(var o in e)Fr.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(e!=null&&Vn)for(var o of Vn(e))t.indexOf(o)<0&&Hr.call(e,o)&&(n[o]=e[o]);return n};function jr(e,t,n={}){const o=n,{eventFilter:r=zn}=o,i=Ur(o,["eventFilter"]);return a.watch(e,Lr(r,t),i)}var Zr=Object.defineProperty,Kr=Object.defineProperties,Wr=Object.getOwnPropertyDescriptors,lt=Object.getOwnPropertySymbols,Ln=Object.prototype.hasOwnProperty,Yn=Object.prototype.propertyIsEnumerable,Xn=(e,t,n)=>t in e?Zr(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,qr=(e,t)=>{for(var n in t||(t={}))Ln.call(t,n)&&Xn(e,n,t[n]);if(lt)for(var n of lt(t))Yn.call(t,n)&&Xn(e,n,t[n]);return e},Qr=(e,t)=>Kr(e,Wr(t)),Jr=(e,t)=>{var n={};for(var o in e)Ln.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(e!=null&<)for(var o of lt(e))t.indexOf(o)<0&&Yn.call(e,o)&&(n[o]=e[o]);return n};function Oe(e,t,n={}){const o=n,{eventFilter:r}=o,i=Jr(o,["eventFilter"]),{eventFilter:l,pause:s,resume:u,isActive:c}=Yr(r);return{stop:jr(e,t,Qr(qr({},i),{eventFilter:l})),pause:s,resume:u,isActive:c}}function Gn(e){var t;const n=ne(e);return(t=n==null?void 0:n.$el)!=null?t:n}const Wt=jt?window:void 0;function qt(...e){let t,n,o,r;if(be(e[0])||Array.isArray(e[0])?([n,o,r]=e,t=Wt):[t,n,o,r]=e,!t)return Vr;Array.isArray(n)||(n=[n]),Array.isArray(o)||(o=[o]);const i=[],l=()=>{i.forEach(d=>d()),i.length=0},s=(d,f,p,b)=>(d.addEventListener(f,p,b),()=>d.removeEventListener(f,p,b)),u=a.watch(()=>[Gn(t),ne(r)],([d,f])=>{l(),d&&i.push(...n.flatMap(p=>o.map(b=>s(d,p,b,f))))},{immediate:!0,flush:"post"}),c=()=>{u(),l()};return je(c),c}const ea=e=>typeof e=="function"?e:typeof e=="string"?t=>t.key===e:Array.isArray(e)?t=>e.includes(t.key):()=>!0;function Fn(...e){let t,n,o={};e.length===3?(t=e[0],n=e[1],o=e[2]):e.length===2?typeof e[1]=="object"?(t=!0,n=e[0],o=e[1]):(t=e[0],n=e[1]):(t=!0,n=e[0]);const{target:r=Wt,eventName:i="keydown",passive:l=!1}=o,s=ea(t);return qt(r,i,u=>{s(u)&&n(u)},l)}function ta(e,t=!1){const n=a.ref(),o=()=>n.value=!!e();return o(),Gr(o,t),n}function na(e){return JSON.parse(JSON.stringify(e))}const Hn=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},Un="__vueuse_ssr_handlers__";Hn[Un]=Hn[Un]||{};var jn=Object.getOwnPropertySymbols,oa=Object.prototype.hasOwnProperty,ra=Object.prototype.propertyIsEnumerable,aa=(e,t)=>{var n={};for(var o in e)oa.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(e!=null&&jn)for(var o of jn(e))t.indexOf(o)<0&&ra.call(e,o)&&(n[o]=e[o]);return n};function ia(e,t,n={}){const o=n,{window:r=Wt}=o,i=aa(o,["window"]);let l;const s=ta(()=>r&&"ResizeObserver"in r),u=()=>{l&&(l.disconnect(),l=void 0)},c=a.watch(()=>Gn(e),f=>{u(),s.value&&r&&f&&(l=new ResizeObserver(t),l.observe(f,i))},{immediate:!0,flush:"post"}),d=()=>{u(),c()};return je(d),{isSupported:s,stop:d}}var Zn;(function(e){e.UP="UP",e.RIGHT="RIGHT",e.DOWN="DOWN",e.LEFT="LEFT",e.NONE="NONE"})(Zn||(Zn={}));var la=Object.defineProperty,Kn=Object.getOwnPropertySymbols,sa=Object.prototype.hasOwnProperty,ua=Object.prototype.propertyIsEnumerable,Wn=(e,t,n)=>t in e?la(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,ca=(e,t)=>{for(var n in t||(t={}))sa.call(t,n)&&Wn(e,n,t[n]);if(Kn)for(var n of Kn(t))ua.call(t,n)&&Wn(e,n,t[n]);return e};ca({linear:Xr},{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]});function Ze(e,t,n,o={}){var r,i,l;const{clone:s=!1,passive:u=!1,eventName:c,deep:d=!1,defaultValue:f}=o,p=a.getCurrentInstance(),b=n||(p==null?void 0:p.emit)||((r=p==null?void 0:p.$emit)==null?void 0:r.bind(p))||((l=(i=p==null?void 0:p.proxy)==null?void 0:i.$emit)==null?void 0:l.bind(p==null?void 0:p.proxy));let v=c;t||(t="modelValue"),v=c||v||`update:${t.toString()}`;const x=E=>s?ve(s)?s(E):na(E):E,k=()=>zr(e[t])?x(e[t]):f;if(u){const E=k(),B=a.ref(E);return a.watch(()=>e[t],G=>B.value=x(G)),a.watch(B,G=>{(G!==e[t]||d)&&b(v,G)},{deep:d}),B}else return a.computed({get(){return k()},set(E){b(v,E)}})}function X(e=()=>{}){const t=a.ref(new Set);e&&t.value.add(e);const n=o=>{t.value.delete(o)};return{on:o=>{t.value.has(e)&&t.value.delete(e),t.value.add(o);const r=()=>n(o);return je(r),{off:r}},off:n,trigger:o=>Promise.all(Array.from(t.value).map(r=>r(o))),fns:t}}const da=["production","prod"];function qn(e,...t){da.includes(process.env.NODE_ENV||"")||console.warn(`[Vue Flow]: ${e}`,...t)}function fa(){return{edgesChange:X(),nodesChange:X(),nodeDoubleClick:X(),nodeClick:X(),nodeMouseEnter:X(),nodeMouseMove:X(),nodeMouseLeave:X(),nodeContextMenu:X(),nodeDragStart:X(),nodeDrag:X(),nodeDragStop:X(),nodesInitialized:X(),miniMapNodeClick:X(),miniMapNodeDoubleClick:X(),miniMapNodeMouseEnter:X(),miniMapNodeMouseMove:X(),miniMapNodeMouseLeave:X(),connect:X(),connectStart:X(),connectEnd:X(),clickConnectStart:X(),clickConnectEnd:X(),paneReady:X(),move:X(),moveStart:X(),moveEnd:X(),selectionDragStart:X(),selectionDrag:X(),selectionDragStop:X(),selectionContextMenu:X(),selectionStart:X(),selectionEnd:X(),viewportChangeStart:X(),viewportChange:X(),viewportChangeEnd:X(),paneScroll:X(),paneClick:X(),paneContextMenu:X(),paneMouseEnter:X(),paneMouseMove:X(),paneMouseLeave:X(),edgeContextMenu:X(),edgeMouseEnter:X(),edgeMouseMove:X(),edgeMouseLeave:X(),edgeDoubleClick:X(),edgeClick:X(),edgeUpdateStart:X(),edgeUpdate:X(),edgeUpdateEnd:X(),updateNodeInternals:X(),error:X(e=>qn(e.message))}}function ha(e,t){a.onBeforeMount(()=>{for(const[n,o]of Object.entries(t.value)){const r=i=>{e(n,i)};o.on(r),je(()=>{o.off(r)})}})}var ie=(e=>(e.MISSING_VIEWPORT_DIMENSIONS="MISSING_VIEWPORT_DIMENSIONS",e.NODE_NOT_FOUND="NODE_NOT_FOUND",e.NODE_MISSING_PARENT="NODE_MISSING_PARENT",e.NODE_TYPE_MISSING="NODE_TYPE_MISSING",e.NODE_EXTENT_INVALID="NODE_EXTENT_INVALID",e.EDGE_INVALID="EDGE_INVALID",e.EDGE_NOT_FOUND="EDGE_NOT_FOUND",e.EDGE_SOURCE_MISSING="EDGE_SOURCE_MISSING",e.EDGE_TARGET_MISSING="EDGE_TARGET_MISSING",e.EDGE_TYPE_MISSING="EDGE_TYPE_MISSING",e.EDGE_SOURCE_TARGET_SAME="EDGE_SOURCE_TARGET_SAME",e.EDGE_SOURCE_TARGET_MISSING="EDGE_SOURCE_TARGET_MISSING",e.EDGE_ORPHANED="EDGE_ORPHANED",e))(ie||{});const Qn={MISSING_VIEWPORT_DIMENSIONS:()=>"The Vue Flow parent container needs a width and a height to render the graph",NODE_NOT_FOUND:e=>`Node not found +Node: ${e}`,NODE_MISSING_PARENT:(e,t)=>`Node is missing a parent +Node: ${e} +Parent: ${t}`,NODE_TYPE_MISSING:e=>`Node type is missing +Type: ${e}`,NODE_EXTENT_INVALID:e=>`Only child nodes can use a parent extent +Node: ${e}`,EDGE_INVALID:e=>`An edge needs a source and a target +Edge: ${e}`,EDGE_SOURCE_MISSING:(e,t)=>`Edge source is missing +Edge: ${e} +Source: ${t}`,EDGE_TARGET_MISSING:(e,t)=>`Edge target is missing +Edge: ${e} +Target: ${t}`,EDGE_TYPE_MISSING:e=>`Edge type is missing +Type: ${e}`,EDGE_SOURCE_TARGET_SAME:(e,t,n)=>`Edge source and target are the same +Edge: ${e} +Source: ${t} +Target: ${n}`,EDGE_SOURCE_TARGET_MISSING:(e,t,n)=>`Edge source or target is missing +Edge: ${e} +Source: ${t} +Target: ${n}`,EDGE_ORPHANED:e=>`Edge was orphaned (suddenly missing source or target) and has been removed +Edge: ${e}`,EDGE_NOT_FOUND:e=>`Edge not found +Edge: ${e}`};class le extends Error{constructor(t,...n){var o;super((o=Qn[t])==null?void 0:o.call(Qn,...n)),this.code=t}}const Qt=()=>typeof window<"u"?window:{chrome:!1};function Jn(e){return{...e.computedPosition||{x:0,y:0},width:e.dimensions.width||0,height:e.dimensions.height||0}}function Jt(e,t){const n=Math.max(0,Math.min(e.x+e.width,t.x+t.width)-Math.max(e.x,t.x)),o=Math.max(0,Math.min(e.y+e.height,t.y+t.height)-Math.max(e.y,t.y));return Math.ceil(n*o)}function st(e){return{width:e.offsetWidth,height:e.offsetHeight}}function Ce(e,t=0,n=1){return Math.min(Math.max(e,t),n)}function eo(e,t){return{x:Ce(e.x,t[0][0],t[1][0]),y:Ce(e.y,t[0][1],t[1][1])}}function to(e){const t=e.getRootNode(),n=Qt();return"elementFromPoint"in t?t:n.document}function De(e){return e&&"id"in e&&"source"in e&&"target"in e}function pa(e){return De(e)&&"sourceNode"in e&&"targetNode"in e}function ut(e){return e&&"id"in e&&!De(e)}function ze(e){return ut(e)&&"computedPosition"in e}function ga(e){return!!e.width&&!!e.height&&!!e.x&&!!e.y}function ma(e,t={}){let n=t;return ze(e)||(n={type:e.type??t.type??"default",dimensions:a.markRaw({width:0,height:0}),handleBounds:{source:[],target:[]},computedPosition:a.markRaw({z:0,...e.position}),draggable:void 0,selectable:void 0,connectable:void 0,focusable:void 0,selected:!1,dragging:!1,resizing:!1,initialized:!1,...t,data:oe(e.data)?e.data:{},events:a.markRaw(oe(e.events)?e.events:{})}),Object.assign({},n,e,{id:e.id.toString()})}function no(e,t={}){const n=oe(e.events)?e.events:t.events&&oe(t.events)?t.events:{},o=oe(e.data)?e.data:t.data&&oe(t.data)?t.data:{};return t=pa(e)?t:{...t,sourceHandle:(e.sourceHandle?e.sourceHandle.toString():void 0)||t.sourceHandle,targetHandle:(e.targetHandle?e.targetHandle.toString():void 0)||t.targetHandle,type:e.type??t.type??"default",source:e.source.toString()||t.source,target:e.target.toString()||t.target,updatable:e.updatable??t.updatable,selectable:e.selectable??t.selectable,focusable:e.focusable??t.focusable,data:o,events:a.markRaw(n),label:(e.label&&!be(e.label)?a.markRaw(e.label):e.label)||t.label,interactionWidth:e.interactionWidth||t.interactionWidth},Object.assign({},t,e,{id:e.id.toString()})}function oo({source:e,sourceHandle:t,target:n,targetHandle:o}){return`vueflow__edge-${e}${t??""}-${n}${o??""}`}function ya(e,t){return t.some(n=>De(n)&&n.source===e.source&&n.target===e.target&&(n.sourceHandle===e.sourceHandle||!n.sourceHandle&&!e.sourceHandle)&&(n.targetHandle===e.targetHandle||!n.targetHandle&&!e.targetHandle))}function va({x:e,y:t},{x:n,y:o,zoom:r}){return{x:e*r+n,y:t*r+o}}function ro({x:e,y:t},{x:n,y:o,zoom:r},i,[l,s]){const u={x:(e-n)/r,y:(t-o)/r};return i?{x:l*Math.round(u.x/l),y:s*Math.round(u.y/s)}:u}function wa(e,t){return{x:Math.min(e.x,t.x),y:Math.min(e.y,t.y),x2:Math.max(e.x2,t.x2),y2:Math.max(e.y2,t.y2)}}function ao({x:e,y:t,width:n,height:o}){return{x:e,y:t,x2:e+n,y2:t+o}}function ba({x:e,y:t,x2:n,y2:o}){return{x:e,y:t,width:n-e,height:o-t}}function io(e){const t=e.reduce((n,{computedPosition:o={x:0,y:0},dimensions:r={width:0,height:0}}={})=>wa(n,ao({...o,...r})),{x:1/0,y:1/0,x2:-1/0,y2:-1/0});return ba(t)}function lo(e,t,{x:n,y:o,zoom:r}={x:0,y:0,zoom:1},i=!1,l=!1){const s={x:(t.x-n)/r,y:(t.y-o)/r,width:t.width/r,height:t.height/r};return e.filter(u=>{const{computedPosition:c={x:0,y:0},dimensions:d={width:0,height:0},selectable:f}=u;if(l&&!f)return!1;const p={...c,width:d.width||0,height:d.height||0},b=Jt(s,p),v=typeof d.width>"u"||typeof d.height>"u"||d.width===0||d.height===0,x=i&&b>0,k=d.width*d.height;return v||x||b>=k})}function ct(e,t){const n=e.map(o=>be(o)?o:o.id);return t.filter(o=>n.includes(o.source)||n.includes(o.target))}function so(e,t,n,o,r,i=.1,l={x:0,y:0}){const s=t/(e.width*(1+i)),u=n/(e.height*(1+i)),c=Math.min(s,u),d=Ce(c,o,r),f=e.x+e.width/2,p=e.y+e.height/2,b=t/2-f*d+(l.x??0),v=n/2-p*d+(l.y??0);return{x:b,y:v,zoom:d}}function xa(e,t){return{x:t.x+e.x,y:t.y+e.y,z:(e.z>t.z?e.z:t.z)+1}}function uo(e,t){if(!e.parentNode)return!1;const n=t(e.parentNode);return n?n.selected?!0:uo(n,t):!1}function Me(e,t){return typeof e>"u"?"":typeof e=="string"?e:`${t?`${t}__`:""}${Object.keys(e).sort().map(n=>`${n}=${e[n]}`).join("&")}`}function oe(e){return typeof a.unref(e)<"u"}function _a(e,t,n){if(!e.source||!e.target)return n(new le(ie.EDGE_INVALID,e.id)),!1;let o;return De(e)?o=e:o={...e,id:oo(e)},o=no(o),ya(o,t)?!1:o}function Ea(e,t,n,o,r,i){if(!t.source||!t.target)return i(new le(ie.EDGE_INVALID,e.id)),!1;const l=o(e.id);if(!l)return i(new le(ie.EDGE_NOT_FOUND,e.id)),!1;const{id:s,...u}=e,c={...u,id:r?oo(t):s,source:t.source,target:t.target,sourceHandle:t.sourceHandle,targetHandle:t.targetHandle};return n.splice(n.indexOf(l),1,c),c}function co(e,t,n,o){const r={},i=e.map(s=>{const u=ma(s,{...n(s.id),parentNode:s.parentNode});return s.parentNode&&(r[s.parentNode]=!0),u}),l=[...i,...t];return i.forEach(s=>{const u=l.find(c=>c.id===s.parentNode);s.parentNode&&!u&&o(new le(ie.NODE_MISSING_PARENT,s.id,s.parentNode)),(s.parentNode||r[s.id])&&(r[s.id]&&(s.isParent=!0),u&&(u.isParent=!0))}),i}var j=(e=>(e.Left="left",e.Top="top",e.Right="right",e.Bottom="bottom",e))(j||{}),en=(e=>(e.Partial="partial",e.Full="full",e))(en||{}),Be=(e=>(e.Bezier="default",e.SimpleBezier="simple-bezier",e.Straight="straight",e.Step="step",e.SmoothStep="smoothstep",e))(Be||{}),Pe=(e=>(e.Strict="strict",e.Loose="loose",e))(Pe||{}),tn=(e=>(e.Arrow="arrow",e.ArrowClosed="arrowclosed",e))(tn||{}),dt=(e=>(e.Free="free",e.Vertical="vertical",e.Horizontal="horizontal",e))(dt||{});const fo=Symbol("vueFlow"),ho=Symbol("nodeId"),po=Symbol("nodeRef"),ka=Symbol("edgeId"),Sa=Symbol("edgeRef"),ft=Symbol("slots");function Na(e){const t=e??a.inject(ho,""),n=a.inject(po,null),{findNode:o,edges:r,emits:i}=re(),l=o(t);return l||i.error(new le(ie.NODE_NOT_FOUND,t)),{id:t,nodeEl:n,node:l,parentNode:a.computed(()=>o(l.parentNode)),connectedEdges:a.computed(()=>ct([l],r.value))}}function nn(e){return"clientX"in e}function Ae(e,t){var n,o;const r=nn(e),i=r?e.clientX:(n=e.touches)==null?void 0:n[0].clientX,l=r?e.clientY:(o=e.touches)==null?void 0:o[0].clientY;return{x:i-((t==null?void 0:t.left)??0),y:l-((t==null?void 0:t.top)??0)}}function ht(e,t,n){const o=((n==null?void 0:n.x)??0)+t.x,r=((n==null?void 0:n.y)??0)+t.y,i=(n==null?void 0:n.width)??t.width,l=(n==null?void 0:n.height)??t.height;switch(e){case j.Top:return{x:o+i/2,y:r};case j.Right:return{x:o+i,y:r+l/2};case j.Bottom:return{x:o+i/2,y:r+l};case j.Left:return{x:o,y:r+l/2}}}function go(e=[],t){return e.length?!t||e.length===1?e[0]:t&&e.find(n=>n.id===t)||null:null}function Ca(e,t,n,o,r,i){const l=ht(n,{...e.dimensions,...e.computedPosition},t),s=ht(i,{...o.dimensions,...o.computedPosition},r);return{sourceX:l.x,sourceY:l.y,targetX:s.x,targetY:s.y}}function Ma({sourcePos:e,targetPos:t,sourceWidth:n,sourceHeight:o,targetWidth:r,targetHeight:i,width:l,height:s,viewport:u}){const c={x:Math.min(e.x,t.x),y:Math.min(e.y,t.y),x2:Math.max(e.x+n,t.x+r),y2:Math.max(e.y+o,t.y+i)};c.x===c.x2&&(c.x2+=1),c.y===c.y2&&(c.y2+=1);const d=ao({x:(0-u.x)/u.zoom,y:(0-u.y)/u.zoom,width:l/u.zoom,height:s/u.zoom}),f=Math.max(0,Math.min(d.x2,c.x2)-Math.max(d.x,c.x)),p=Math.max(0,Math.min(d.y2,c.y2)-Math.max(d.y,c.y));return Math.ceil(f*p)>0}function Ba(e,t,n=!1){let o=-1;const r=e.reduce((i,l)=>{const s=we(l.zIndex);let u=s?l.zIndex:0;const c=t(l.source),d=t(l.target);return!c||!d||(n&&(u=s?l.zIndex:Math.max(c.computedPosition.z||0,d.computedPosition.z||0)),i[u]?i[u].push(l):i[u]=[l],o=u>o?u:o),i},{});return Object.entries(Object.keys(r).length?r:{0:[]}).map(([i,l])=>{const s=+i;return{edges:l,level:s,isMaxLevel:s===o}})}function on(e){e==null||e.classList.remove("valid","connecting","vue-flow__handle-valid","vue-flow__handle-connecting")}function mo(e,t,n,o){return(t[n]||[]).reduce((r,i)=>(`${e.id}-${i.id}-${n}`!==o&&r.push({id:i.id||null,type:n,nodeId:e.id,...ht(i.position,{...e.dimensions,...e.computedPosition},i)}),r),[])}function Pa(e,t,n){let o=null,r=1/0;return n.forEach(i=>{const l=Math.sqrt((i.x-e.x)**2+(i.y-e.y)**2);l<=t&&l{const{handleBounds:l}=i;let s=[],u=[];return l&&(s=mo(i,l,"source",`${t}-${n}-${o}`),u=mo(i,l,"target",`${t}-${n}-${o}`)),r.push(...s,...u),r},[])}function vo(e,t){return e||(t!=null&&t.classList.contains("target")?"target":t!=null&&t.classList.contains("source")?"source":null)}function $a(e,t){let n=null;return t?n="valid":e&&!t&&(n="invalid"),n}function wo(e,t,n){return en?-Ce(Math.abs(e-n),1,50)/50:0}function bo(e,t){const n=wo(e.x,35,t.width-35)*20,o=wo(e.y,35,t.height-35)*20;return[n,o]}function pt(){return!0}function xo({handleId:e,nodeId:t,type:n,isValidConnection:o,edgeUpdaterType:r,onEdgeUpdate:i,onEdgeUpdateEnd:l}){const s=a.computed(()=>ne(n)==="target"),{vueFlowRef:u,connectionMode:c,connectionRadius:d,connectOnClick:f,connectionClickStartHandle:p,nodesConnectable:b,autoPanOnConnect:v,findNode:x,panBy:k,getNodes:E,startConnection:B,updateConnection:G,endConnection:w,emits:P,viewport:D,edges:g,isValidConnection:_}=re();let N=null,C=!1,$=null;function q(y){var z;const S=nn(y),R=to(y.target);if(S&&y.button===0||!S){let F=function(W){T=Ae(W,m),A=Pa(ro(T,D.value,!1,[1,1]),d.value,L),V||(K(),V=!0);const J=yo(W,A,c.value,ne(t),ne(e),s.value?"target":"source",H,R,g.value,x);if(N=J.connection,C=J.isValid,$=J.handleDomNode,G(A&&C?va({x:A.x,y:A.y},D.value):T,J.endHandle,$a(!!A,C)),!A&&!C&&!$)return on(I);N&&N.source!==N.target&&$&&(on(I),I=$,$.classList.add("connecting","vue-flow__handle-connecting"),$.classList.toggle("valid",C),$.classList.toggle("vue-flow__handle-valid",C))},U=function(W){(A||$)&&N&&C&&(i?i(W,N):P.connect(N)),P.connectEnd(W),r&&(l==null||l(W)),on(I),cancelAnimationFrame(Z),w(W),V=!1,C=!1,N=null,$=null,R.removeEventListener("mousemove",F),R.removeEventListener("mouseup",U),R.removeEventListener("touchmove",F),R.removeEventListener("touchend",U)};const O=x(ne(t));let H=o||_.value||pt;!H&&O&&(H=(s?O.isValidSourcePos:O.isValidTargetPos)||pt);let A,Z=0;const{x:Q,y:te}=Ae(y),M=R==null?void 0:R.elementFromPoint(Q,te),h=vo(ne(r),M),m=(z=u.value)==null?void 0:z.getBoundingClientRect();if(!m||!h)return;let I,T=Ae(y,m),V=!1;const L=Ia({nodes:E.value,nodeId:ne(t),handleId:ne(e),handleType:h}),K=()=>{if(!v)return;const[W,J]=bo(T,m);k({x:W,y:J}),Z=requestAnimationFrame(K)};B({nodeId:ne(t),handleId:ne(e),type:h},{x:Q-m.left,y:te-m.top},y),P.connectStart({event:y,nodeId:ne(t),handleId:ne(e),handleType:h}),R.addEventListener("mousemove",F),R.addEventListener("mouseup",U),R.addEventListener("touchmove",F),R.addEventListener("touchend",U)}}function ee(y){if(f.value)if(!p.value)P.clickConnectStart({event:y,nodeId:ne(t),handleId:ne(e)}),B({nodeId:ne(t),type:ne(n),handleId:ne(e)},void 0,y,!0);else{let z=o||_.value||pt;const S=x(ne(t));if(!z&&S&&(z=(s?S.isValidSourcePos:S.isValidTargetPos)||pt),S&&(typeof S.connectable>"u"?b.value:S.connectable)===!1)return;const R=to(y.target),{connection:F,isValid:U}=yo(y,{nodeId:ne(t),id:ne(e),type:ne(n)},c.value,p.value.nodeId,p.value.handleId||null,p.value.type,z,R,g.value,x),O=F.source===F.target;U&&!O&&P.connect(F),P.clickConnectEnd(y),w(y,!0)}}return{handlePointerDown:q,handleClick:ee}}function Ta(e,t){const n={};for(const o in e)t.includes(o)||Object.defineProperty(n,o,{enumerable:!0,get:()=>e[o]});return n}const Ra=["data-id","data-handleid","data-nodeid","data-handlepos"],Oa={name:"Handle",compatConfig:{MODE:3}},Ve=a.defineComponent({...Oa,props:{id:null,type:null,position:{default:j.Top},isValidConnection:{type:Function},connectable:{type:[Boolean,String,Function],default:void 0},connectableStart:{type:Boolean,default:!0},connectableEnd:{type:Boolean,default:!0}},setup(e){const t=Ta(e,["position","connectable","connectableStart","connectableEnd","id","isValidConnection"]),n=a.toRef(t,"type","source"),{connectionStartHandle:o,connectionClickStartHandle:r,connectionEndHandle:i,vueFlowRef:l,nodesConnectable:s,noDragClassName:u,noPanClassName:c}=re(),{id:d,node:f,nodeEl:p,connectedEdges:b}=Na(),v=a.ref(),x=a.computed(()=>e.id??`${d}__handle-${e.position}`),k=a.computed(()=>typeof e.connectableStart<"u"?e.connectableStart:!0),E=a.computed(()=>typeof e.connectableEnd<"u"?e.connectableEnd:!0),{handlePointerDown:B,handleClick:G}=xo({nodeId:d,handleId:x,isValidConnection:e.isValidConnection,type:n}),w=a.computed(()=>be(e.connectable)&&e.connectable==="single"?!b.value.some(N=>{const C=N[`${n.value}Handle`];return N[n.value]!==d?!1:C?C===x.value:!0}):ve(e.connectable)?e.connectable(f,b.value):oe(e.connectable)?e.connectable:s.value),P=a.computed(()=>{var N,C,$,q,ee,y;return((N=o.value)==null?void 0:N.nodeId)===d&&((C=o.value)==null?void 0:C.handleId)===x.value&&(($=o.value)==null?void 0:$.type)===n.value||((q=i.value)==null?void 0:q.nodeId)===d&&((ee=i.value)==null?void 0:ee.handleId)===x.value&&((y=i.value)==null?void 0:y.type)===n.value}),D=a.computed(()=>{var N,C,$;return((N=r.value)==null?void 0:N.nodeId)===d&&((C=r.value)==null?void 0:C.handleId)===x.value&&(($=r.value)==null?void 0:$.type)===n.value});ue(()=>f.initialized).toBe(!0,{flush:"post"}).then(()=>{var N;const C=(N=f.handleBounds[n.value])==null?void 0:N.find(R=>R.id===x.value);if(!l.value||C)return;const $=l.value.querySelector(".vue-flow__transformationpane");if(!p||!v.value||!$||!x.value)return;const q=p.value.getBoundingClientRect(),ee=v.value.getBoundingClientRect(),y=window.getComputedStyle($),{m22:z}=new window.DOMMatrixReadOnly(y.transform),S={id:x.value,position:e.position,x:(ee.left-q.left)/z,y:(ee.top-q.top)/z,...st(v.value)};f.handleBounds[n.value]=[...f.handleBounds[n.value]??[],S]});function g(N){const C=nn(N);w.value&&k.value&&(C&&N.button===0||!C)&&B(N)}function _(N){!d||!r.value&&!k.value||w.value&&G(N)}return(N,C)=>(a.openBlock(),a.createElementBlock("div",{ref_key:"handle",ref:v,"data-id":`${a.unref(d)}-${a.unref(x)}-${a.unref(n)}`,"data-handleid":a.unref(x),"data-nodeid":a.unref(d),"data-handlepos":e.position,class:a.normalizeClass(["vue-flow__handle",[`vue-flow__handle-${e.position}`,`vue-flow__handle-${a.unref(x)}`,a.unref(u),a.unref(c),a.unref(n),{connectable:a.unref(w),connecting:a.unref(D),connectablestart:a.unref(k),connectableend:a.unref(E),connectionindicator:a.unref(w)&&(a.unref(k)&&!a.unref(P)||a.unref(E)&&a.unref(P))}]]),onMousedown:g,onTouchstartPassive:g,onClick:_},[a.renderSlot(N.$slots,"default",{id:e.id})],42,Ra))}}),gt=function({sourcePosition:e=j.Bottom,targetPosition:t=j.Top,label:n,connectable:o=!0,isValidTargetPos:r,isValidSourcePos:i}){return[a.h(Ve,{type:"target",position:t,connectable:o,isValidConnection:r}),typeof n!="string"&&n?a.h(n):a.h("div",{innerHTML:n}),a.h(Ve,{type:"source",position:e,connectable:o,isValidConnection:i})]};gt.props=["sourcePosition","targetPosition","label","isValidTargetPos","isValidSourcePos","connectable"],gt.inheritAttrs=!1,gt.compatConfig={MODE:3};const Da=gt,mt=function({sourcePosition:e=j.Bottom,label:t,connectable:n=!0,isValidSourcePos:o}){return[typeof t!="string"&&t?a.h(t):a.h("div",{innerHTML:t}),a.h(Ve,{type:"source",position:e,connectable:n,isValidConnection:o})]};mt.props=["sourcePosition","label","isValidSourcePos","connectable"],mt.inheritAttrs=!1,mt.compatConfig={MODE:3};const za=mt,yt=function({targetPosition:e=j.Top,label:t,connectable:n=!0,isValidTargetPos:o}){return[a.h(Ve,{type:"target",position:e,connectable:n,isValidConnection:o}),typeof t!="string"&&t?a.h(t):a.h("div",{innerHTML:t})]};yt.props=["targetPosition","label","isValidTargetPos","connectable"],yt.inheritAttrs=!1,yt.compatConfig={MODE:3};const Aa=yt;function _o(e,t,n){let o=e;do{if(o&&o.matches(t))return!0;if(o===n)return!1;o=o.parentElement}while(o);return!1}function Va(e,t,n,o,r){return e.filter(i=>(i.selected||i.id===r)&&(!i.parentNode||!uo(i,o))&&(i.draggable||t&&typeof i.draggable>"u")).map(i=>{var l,s;return a.markRaw({id:i.id,position:i.position||{x:0,y:0},distance:{x:n.x-((l=i.computedPosition)==null?void 0:l.x)||0,y:n.y-((s=i.computedPosition)==null?void 0:s.y)||0},from:i.computedPosition,extent:i.extent,parentNode:i.parentNode,dimensions:i.dimensions})})}function rn({id:e,dragItems:t,findNode:n}){const o=t.reduce((r,i)=>{const l=n(i.id);return l&&r.push(l),r},[]);return[e?o.find(r=>r.id===e):o[0],o]}function Eo(e){if(Array.isArray(e))switch(e.length){case 1:return[e[0],e[0],e[0],e[0]];case 2:return[e[0],e[1],e[0],e[1]];case 3:return[e[0],e[1],e[2],e[1]];case 4:return e;default:return[0,0,0,0]}return[e,e,e,e]}function La(e,t,n){const[o,r,i,l]=typeof e!="string"?Eo(e.padding):[0,0,0,0];return n&&we(n.computedPosition.x)&&we(n.computedPosition.y)&&we(n.dimensions.width)&&we(n.dimensions.height)?[[n.computedPosition.x+l,n.computedPosition.y+o],[n.computedPosition.x+(n.dimensions.width-t.dimensions.width)-r,n.computedPosition.y+(n.dimensions.height-t.dimensions.height)-i]]:!1}function Ya(e,t,n,o){let r=e.extent||n;if(r==="parent"||!Array.isArray(r)&&(r==null?void 0:r.range)==="parent")if(e.parentNode&&o&&e.dimensions.width&&e.dimensions.height){const i=La(r,e,o);i&&(r=i)}else t(new le(ie.NODE_EXTENT_INVALID,e.id)),r=n;else if(Array.isArray(r)){const i=(o==null?void 0:o.computedPosition.x)||0,l=(o==null?void 0:o.computedPosition.y)||0;r=[[r[0][0]+i,r[0][1]+l],[r[1][0]+i,r[1][1]+l]]}else if(r!=null&&r.range&&Array.isArray(r.range)){const[i,l,s,u]=Eo(r.padding),c=(o==null?void 0:o.computedPosition.x)||0,d=(o==null?void 0:o.computedPosition.y)||0;r=[[r.range[0][0]+c+u,r.range[0][1]+d+i],[r.range[1][0]+c-l,r.range[1][1]+d-s]]}return r}function an(e,t,n,o,r){const i=Ya(e,n,o,r),l=eo(t,i);return{position:{x:l.x-((r==null?void 0:r.computedPosition.x)||0),y:l.y-((r==null?void 0:r.computedPosition.y)||0)},computedPosition:l}}function ko(){const{getSelectedNodes:e,nodeExtent:t,updateNodePositions:n,findNode:o,snapGrid:r,snapToGrid:i,nodesDraggable:l,emits:s}=re();return(u,c=!1)=>{const d=i.value?r.value[0]:5,f=i.value?r.value[1]:5,p=c?4:1,b=u.x*d*p,v=u.y*f*p,x=e.value.filter(k=>k.draggable||l&&typeof k.draggable>"u").map(k=>{const E={x:k.computedPosition.x+b,y:k.computedPosition.y+v},{computedPosition:B}=an(k,E,s.error,t.value,k.parentNode?o(k.parentNode):void 0);return{id:k.id,position:B,from:k.position,distance:{x:u.x,y:u.y},dimensions:k.dimensions}});n(x,!0,!1)}}function Xa(){return{doubleClick:X(),click:X(),mouseEnter:X(),mouseMove:X(),mouseLeave:X(),contextMenu:X(),dragStart:X(),drag:X(),dragStop:X()}}function Ga(e,t){const n=Xa();return n.doubleClick.on(o=>{var r,i;t.nodeDoubleClick(o),(i=(r=e.events)==null?void 0:r.doubleClick)==null||i.call(r,o)}),n.click.on(o=>{var r,i;t.nodeClick(o),(i=(r=e.events)==null?void 0:r.click)==null||i.call(r,o)}),n.mouseEnter.on(o=>{var r,i;t.nodeMouseEnter(o),(i=(r=e.events)==null?void 0:r.mouseEnter)==null||i.call(r,o)}),n.mouseMove.on(o=>{var r,i;t.nodeMouseMove(o),(i=(r=e.events)==null?void 0:r.mouseMove)==null||i.call(r,o)}),n.mouseLeave.on(o=>{var r,i;t.nodeMouseLeave(o),(i=(r=e.events)==null?void 0:r.mouseLeave)==null||i.call(r,o)}),n.contextMenu.on(o=>{var r,i;t.nodeContextMenu(o),(i=(r=e.events)==null?void 0:r.contextMenu)==null||i.call(r,o)}),n.dragStart.on(o=>{var r,i;t.nodeDragStart(o),(i=(r=e.events)==null?void 0:r.dragStart)==null||i.call(r,o)}),n.drag.on(o=>{var r,i;t.nodeDrag(o),(i=(r=e.events)==null?void 0:r.drag)==null||i.call(r,o)}),n.dragStop.on(o=>{var r,i;t.nodeDragStop(o),(i=(r=e.events)==null?void 0:r.dragStop)==null||i.call(r,o)}),Object.entries(n).reduce((o,[r,i])=>(o.emit[r]=i.trigger,o.on[r]=i.on,o),{emit:{},on:{}})}function Fa(){const{viewport:e,snapGrid:t,snapToGrid:n}=re();return({sourceEvent:o})=>{const r=o.touches?o.touches[0].clientX:o.clientX,i=o.touches?o.touches[0].clientY:o.clientY,l={x:(r-e.value.x)/e.value.zoom,y:(i-e.value.y)/e.value.zoom};return{xSnapped:n.value?t.value[0]*Math.round(l.x/t.value[0]):l.x,ySnapped:n.value?t.value[1]*Math.round(l.y/t.value[1]):l.y,...l}}}function So(e,t,n){const o=t.querySelectorAll(`.vue-flow__handle${e}`);if(!o||!o.length)return;const r=Array.from(o),i=t.getBoundingClientRect();return r.map(l=>{const s=l.getBoundingClientRect();return{id:l.getAttribute("data-handleid"),position:l.getAttribute("data-handlepos"),x:(s.left-i.left)/n,y:(s.top-i.top)/n,...st(l)}})}function ln(e,t,n,o,r,i=!1,l){r.value=!1,e.selected?(i||e.selected&&t)&&(o([e]),a.nextTick(l.blur)):n([e])}var Ha={value:()=>{}};function vt(){for(var e=0,t=arguments.length,n={},o;e=0&&(o=n.slice(r+1),n=n.slice(0,r)),n&&!t.hasOwnProperty(n))throw new Error("unknown type: "+n);return{type:n,name:o}})}wt.prototype=vt.prototype={constructor:wt,on:function(e,t){var n=this._,o=Ua(e+"",n),r,i=-1,l=o.length;if(arguments.length<2){for(;++i0)for(var n=new Array(r),o=0,r,i;o=0&&(t=e.slice(0,n))!=="xmlns"&&(e=e.slice(n+1)),Co.hasOwnProperty(t)?{space:Co[t],local:e}:e}function Za(e){return function(){var t=this.ownerDocument,n=this.namespaceURI;return n===sn&&t.documentElement.namespaceURI===sn?t.createElement(e):t.createElementNS(n,e)}}function Ka(e){return function(){return this.ownerDocument.createElementNS(e.space,e.local)}}function Mo(e){var t=bt(e);return(t.local?Ka:Za)(t)}function Wa(){}function un(e){return e==null?Wa:function(){return this.querySelector(e)}}function qa(e){typeof e!="function"&&(e=un(e));for(var t=this._groups,n=t.length,o=new Array(n),r=0;r=G&&(G=B+1);!(P=k[G])&&++G=0;)(l=o[r])&&(i&&l.compareDocumentPosition(i)^4&&i.parentNode.insertBefore(l,i),i=l);return this}function _i(e){e||(e=Ei);function t(f,p){return f&&p?e(f.__data__,p.__data__):!f-!p}for(var n=this._groups,o=n.length,r=new Array(o),i=0;it?1:e>=t?0:NaN}function ki(){var e=arguments[0];return arguments[0]=this,e.apply(null,arguments),this}function Si(){return Array.from(this)}function Ni(){for(var e=this._groups,t=0,n=e.length;t1?this.each((t==null?zi:typeof t=="function"?Vi:Ai)(e,t,n??"")):Le(this.node(),e)}function Le(e,t){return e.style.getPropertyValue(t)||To(e).getComputedStyle(e,null).getPropertyValue(t)}function Yi(e){return function(){delete this[e]}}function Xi(e,t){return function(){this[e]=t}}function Gi(e,t){return function(){var n=t.apply(this,arguments);n==null?delete this[e]:this[e]=n}}function Fi(e,t){return arguments.length>1?this.each((t==null?Yi:typeof t=="function"?Gi:Xi)(e,t)):this.node()[e]}function Ro(e){return e.trim().split(/^|\s+/)}function cn(e){return e.classList||new Oo(e)}function Oo(e){this._node=e,this._names=Ro(e.getAttribute("class")||"")}Oo.prototype={add:function(e){var t=this._names.indexOf(e);t<0&&(this._names.push(e),this._node.setAttribute("class",this._names.join(" ")))},remove:function(e){var t=this._names.indexOf(e);t>=0&&(this._names.splice(t,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(e){return this._names.indexOf(e)>=0}};function Do(e,t){for(var n=cn(e),o=-1,r=t.length;++o=0&&(n=t.slice(o+1),t=t.slice(0,o)),{type:t,name:n}})}function vl(e){return function(){var t=this.__on;if(t){for(var n=0,o=-1,r=t.length,i;n()=>e;function fn(e,{sourceEvent:t,subject:n,target:o,identifier:r,active:i,x:l,y:s,dx:u,dy:c,dispatch:d}){Object.defineProperties(this,{type:{value:e,enumerable:!0,configurable:!0},sourceEvent:{value:t,enumerable:!0,configurable:!0},subject:{value:n,enumerable:!0,configurable:!0},target:{value:o,enumerable:!0,configurable:!0},identifier:{value:r,enumerable:!0,configurable:!0},active:{value:i,enumerable:!0,configurable:!0},x:{value:l,enumerable:!0,configurable:!0},y:{value:s,enumerable:!0,configurable:!0},dx:{value:u,enumerable:!0,configurable:!0},dy:{value:c,enumerable:!0,configurable:!0},_:{value:d}})}fn.prototype.on=function(){var e=this._.on.apply(this._,arguments);return e===this._?this:e};function Ml(e){return!e.ctrlKey&&!e.button}function Bl(){return this.parentNode}function Pl(e,t){return t??{x:e.x,y:e.y}}function Il(){return navigator.maxTouchPoints||"ontouchstart"in this}function $l(){var e=Ml,t=Bl,n=Pl,o=Il,r={},i=vt("start","drag","end"),l=0,s,u,c,d,f=0;function p(w){w.on("mousedown.drag",b).filter(o).on("touchstart.drag",k).on("touchmove.drag",E,Cl).on("touchend.drag touchcancel.drag",B).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function b(w,P){if(!(d||!e.call(this,w,P))){var D=G(this,t.call(this,w,P),w,P,"mouse");D&&(de(w.view).on("mousemove.drag",v,We).on("mouseup.drag",x,We),Lo(w.view),dn(w),c=!1,s=w.clientX,u=w.clientY,D("start",w))}}function v(w){if(Ye(w),!c){var P=w.clientX-s,D=w.clientY-u;c=P*P+D*D>f}r.mouse("drag",w)}function x(w){de(w.view).on("mousemove.drag mouseup.drag",null),Yo(w.view,c),Ye(w),r.mouse("end",w)}function k(w,P){if(e.call(this,w,P)){var D=w.changedTouches,g=t.call(this,w,P),_=D.length,N,C;for(N=0;N<_;++N)(C=G(this,g,w,P,D[N].identifier,D[N]))&&(dn(w),C("start",w,D[N]))}}function E(w){var P=w.changedTouches,D=P.length,g,_;for(g=0;g{z.value={x:Z,y:Q};let te=!1;if(q.value=q.value.map(M=>{const h={x:Z-M.distance.x,y:Q-M.distance.y};o.value&&(h.x=r.value[0]*Math.round(h.x/r.value[0]),h.y=r.value[1]*Math.round(h.y/r.value[1]));const{computedPosition:m}=an(M,h,G.value.error,s.value,M.parentNode?p.value(M.parentNode):void 0);return te=te||M.position.x!==m.x||M.position.y!==m.y,M.position=m,M}),!!te&&(B.value(q.value,!0,!0),$.value=!0,R.value)){const[M,h]=rn({id:N,dragItems:q.value,findNode:p.value});P({event:R.value,node:M,nodes:h})}},A=()=>{if(!y.value)return;const[Z,Q]=bo(S.value,y.value);if(Z!==0||Q!==0){const te={x:(z.value.x??0)-Z/u.value.zoom,y:(z.value.y??0)-Q/u.value.zoom};f.value({x:Z,y:Q})&&H(te)}F.value=requestAnimationFrame(A)};return a.watch([()=>ne(_),g],([Z,Q])=>{if(Q){const te=de(Q);if(Z)te.on(".drag",null);else{const M=p.value(N);ee.value=$l().on("start",h=>{var m;!x.value&&!b.value&&M&&(M.selected||k.value()),M&&ne(C)&&x.value&&ln(M,b.value,E.value,k.value,v,!1,Q);const I=O(h);if(z.value=I,q.value=Va(l.value,d.value,I,p.value,N),q.value.length){const[T,V]=rn({id:N,dragItems:q.value,findNode:p.value});w({event:h.sourceEvent,node:T,nodes:V})}y.value=((m=n.value)==null?void 0:m.getBoundingClientRect())||null,S.value=Ae(h.sourceEvent,y.value)}).on("drag",h=>{const m=O(h);!U.value&&c.value&&(U.value=!0,A()),(z.value.x!==m.xSnapped||z.value.y!==m.ySnapped)&&q.value.length&&(R.value=h.sourceEvent,S.value=Ae(h.sourceEvent,y.value),H(m))}).on("end",h=>{if($.value=!1,U.value=!1,cancelAnimationFrame(F.value),q.value.length){B.value(q.value,!1,!1);const[m,I]=rn({id:N,dragItems:q.value,findNode:p.value});D({event:h.sourceEvent,node:m,nodes:I})}}).filter(h=>{const m=h.target;return!h.button&&(!i.value||!_o(m,`.${i.value}`,Q)&&(!(M!=null&&M.dragHandle)||_o(m,M.dragHandle,Q)))}),te.call(ee.value)}}}),$}const Go="vue-flow__node-desc",Fo="vue-flow__edge-desc",Tl="vue-flow__aria-live",Ho=["Enter"," ","Escape"],Xe={ArrowUp:{x:0,y:-1},ArrowDown:{x:0,y:1},ArrowLeft:{x:-1,y:0},ArrowRight:{x:1,y:0}};function hn(e){var t,n;const o=((n=(t=e.composedPath)==null?void 0:t.call(e))==null?void 0:n[0])||e.target,r=ve(o.hasAttribute)?o.hasAttribute("contenteditable"):!1,i=ve(o.closest)?o.closest(".nokey"):null;return["INPUT","SELECT","TEXTAREA"].includes(o==null?void 0:o.nodeName)||r||!!i}function Rl(e){return e.ctrlKey||e.metaKey||e.shiftKey}function Ol(e,t){return n=>e.some(o=>{const r=o.split("+").map(i=>i.trim().toLowerCase());return r.length===1?n.key===o:(t.add(n.key.toLowerCase()),r.every(i=>t.has(i)))})}const qe=(e,t)=>{const n=Qt(),o=a.ref(ne(e)===!0),r=a.ref(!1),i=a.ref(new Set);return a.watch(o,()=>{t==null||t(o.value)}),a.watch(()=>ne(e),l=>{if(n&&typeof n.addEventListener<"u"&&qt(n,"blur",()=>{o.value=!1}),Ar(l)){o.value=l;return}Array.isArray(l)&&(l=Ol(l,i.value)),l&&(Fn(l,s=>{r.value=Rl(s),!(!r.value&&hn(s))&&(s.preventDefault(),o.value=!0)},{eventName:"keydown"}),Fn(l,s=>{if(o.value){if(!r.value&&hn(s))return;r.value=!1,i.value.clear(),o.value=!1}},{eventName:"keyup"}))},{immediate:!0}),o},Dl=a.defineComponent({name:"Node",compatConfig:{MODE:3},props:["name","type","id","draggable","selectable","focusable","connectable","node","resizeObserver"],setup(e){a.provide(ho,e.id);const t=re(),n=a.toRef(t,"id"),o=a.toRef(t,"edges"),r=a.toRef(t,"noPanClassName"),i=a.toRef(t,"selectNodesOnDrag"),l=a.toRef(t,"nodesSelectionActive"),s=a.toRef(t,"multiSelectionActive"),u=a.toRef(t,"emits"),c=a.toRef(t,"findNode"),d=a.toRef(t,"removeSelectedNodes"),f=a.toRef(t,"addSelectedNodes"),p=a.toRef(t,"updateNodeDimensions"),b=a.toRef(t,"onUpdateNodeInternals"),v=a.toRef(t,"getIntersectingNodes"),x=a.toRef(t,"getNodeTypes"),k=a.toRef(t,"nodeExtent"),E=a.toRef(t,"elevateNodesOnSelect"),B=a.toRef(t,"disableKeyboardA11y"),G=a.toRef(t,"ariaLiveMessage"),w=a.toRef(t,"snapToGrid"),P=a.toRef(t,"snapGrid"),D=ko(),g=Ze(e,"node"),_=a.computed(()=>c.value(g.value.parentNode)),N=a.computed(()=>ct([g.value],o.value)),C=a.ref();a.provide(po,C);const{emit:$,on:q}=Ga(g.value,u.value),ee=Xo({id:e.id,el:C,disabled:()=>!e.draggable,selectable:()=>e.selectable,onStart(M){$.dragStart({...M,intersections:v.value(g.value)})},onDrag(M){$.drag({...M,intersections:v.value(g.value)})},onStop(M){$.dragStop({...M,intersections:v.value(g.value)})}}),y=a.computed(()=>g.value.class instanceof Function?g.value.class(g.value):g.value.class),z=a.computed(()=>{const M=(g.value.style instanceof Function?g.value.style(g.value):g.value.style)||{},h=g.value.width instanceof Function?g.value.width(g.value):g.value.width,m=g.value.height instanceof Function?g.value.height(g.value):g.value.height;return h&&(M.width=typeof h=="string"?h:`${h}px`),m&&(M.height=typeof m=="string"?m:`${m}px`),M}),S=()=>Number(g.value.zIndex??z.value.zIndex??0);return b.value(M=>{M.includes(e.id)&&F()}),a.onMounted(()=>{e.resizeObserver.observe(C.value)}),a.onBeforeUnmount(()=>{e.resizeObserver.unobserve(C.value)}),a.watch([()=>g.value.type,()=>g.value.sourcePosition,()=>g.value.targetPosition],()=>{p.value([{id:e.id,nodeElement:C.value,forceUpdate:!0}])},{flush:"pre"}),a.watch([()=>g.value.position.x,()=>g.value.position.y,()=>{var M;return(M=_.value)==null?void 0:M.computedPosition.x},()=>{var M;return(M=_.value)==null?void 0:M.computedPosition.y},()=>{var M;return(M=_.value)==null?void 0:M.computedPosition.z},()=>S(),()=>g.value.selected,()=>g.value.dimensions.height,()=>g.value.dimensions.width,()=>{var M;return(M=_.value)==null?void 0:M.dimensions.height},()=>{var M;return(M=_.value)==null?void 0:M.dimensions.width}],([M,h,m,I,T,V])=>{const L={x:M,y:h,z:V+(E.value&&g.value.selected?1e3:0)};we(m)&&we(I)?g.value.computedPosition=xa({x:m,y:I,z:T},L):g.value.computedPosition=L},{flush:"pre",immediate:!0}),a.watch([()=>g.value.extent,()=>k.value],([M,h],[m,I])=>{(M!==m||h!==I)&&R()}),g.value.extent==="parent"||typeof g.value.extent=="object"&&"range"in g.value.extent&&g.value.extent.range==="parent"?ue(()=>g.value.initialized).toBe(!0).then(R):R(),()=>a.h("div",{ref:C,"data-id":g.value.id,class:["vue-flow__node",`vue-flow__node-${e.type===!1?"default":e.name}`,{[r.value]:e.draggable,dragging:ee==null?void 0:ee.value,selected:g.value.selected,selectable:e.selectable},y.value],style:{zIndex:g.value.computedPosition.z??S(),transform:`translate(${g.value.computedPosition.x}px,${g.value.computedPosition.y}px)`,pointerEvents:e.selectable||e.draggable?"all":"none",visibility:g.value.initialized?"visible":"hidden",...z.value},tabIndex:e.focusable?0:void 0,role:e.focusable?"button":void 0,"aria-describedby":B.value?void 0:`${Go}-${n.value}`,"aria-label":g.value.ariaLabel,onMouseenter:U,onMousemove:O,onMouseleave:H,onContextmenu:A,onClick:Q,onDblclick:Z,onKeydown:te},[a.h(e.type===!1?x.value.default:e.type,{id:g.value.id,type:g.value.type,data:g.value.data,events:{...g.value.events,...q},selected:!!g.value.selected,resizing:!!g.value.resizing,dragging:ee.value,connectable:e.connectable,position:g.value.position,dimensions:g.value.dimensions,isValidTargetPos:g.value.isValidTargetPos,isValidSourcePos:g.value.isValidSourcePos,parent:g.value.parentNode,zIndex:g.value.computedPosition.z,targetPosition:g.value.targetPosition,sourcePosition:g.value.sourcePosition,label:g.value.label,dragHandle:g.value.dragHandle,onUpdateNodeInternals:F})]);function R(){const M=g.value.computedPosition;w.value&&(M.x=P.value[0]*Math.round(M.x/P.value[0]),M.y=P.value[1]*Math.round(M.y/P.value[1]));const{computedPosition:h,position:m}=an(g.value,M,u.value.error,k.value,_.value);(g.value.computedPosition.x!==h.x||g.value.computedPosition.y!==h.y)&&(g.value.computedPosition={...g.value.computedPosition,...h}),(g.value.position.x!==m.x||g.value.position.y!==m.y)&&(g.value.position=m)}function F(){C.value&&p.value([{id:e.id,nodeElement:C.value,forceUpdate:!0}])}function U(M){ee!=null&&ee.value||$.mouseEnter({event:M,node:g.value,connectedEdges:N.value})}function O(M){ee!=null&&ee.value||$.mouseMove({event:M,node:g.value,connectedEdges:N.value})}function H(M){ee!=null&&ee.value||$.mouseLeave({event:M,node:g.value,connectedEdges:N.value})}function A(M){return $.contextMenu({event:M,node:g.value,connectedEdges:N.value})}function Z(M){return $.doubleClick({event:M,node:g.value,connectedEdges:N.value})}function Q(M){e.selectable&&(!i.value||!e.draggable)&&ln(g.value,s.value,f.value,d.value,l,!1,C.value),$.click({event:M,node:g.value,connectedEdges:N.value})}function te(M){var h;if(!hn(M))if(Ho.includes(M.key)&&e.selectable){const m=M.key==="Escape";m&&((h=C.value)==null||h.blur()),ln(g.value,s.value,f.value,d.value,l,m,C.value)}else!B.value&&e.draggable&&g.value.selected&&Xe[M.key]&&(G.value=`Moved selected node ${M.key.replace("Arrow","").toLowerCase()}. New position, x: ${~~g.value.position.x}, y: ${~~g.value.position.y}`,D({x:Xe[M.key].x,y:Xe[M.key].y},M.shiftKey))}}}),zl=Dl,Al=["transform"],Vl=["width","height","x","y","rx","ry"],Ll=["y"],Yl={name:"EdgeText",compatConfig:{MODE:3}},Xl=a.defineComponent({...Yl,props:{x:null,y:null,label:null,labelStyle:{default:{}},labelShowBg:{type:Boolean,default:!0},labelBgStyle:{default:{}},labelBgPadding:{default:[2,4]},labelBgBorderRadius:{default:2}},setup(e){let t=a.ref({x:0,y:0,width:0,height:0});const n=a.ref(null),o=a.computed(()=>`translate(${e.x-t.value.width/2} ${e.y-t.value.height/2})`);a.onMounted(r),a.watch([()=>e.x,()=>e.y,n,()=>e.label],r);function r(){if(!n.value)return;const i=n.value.getBBox();(i.width!==t.value.width||i.height!==t.value.height)&&(t.value=i)}return(i,l)=>(a.openBlock(),a.createElementBlock("g",{transform:a.unref(o),class:"vue-flow__edge-textwrapper"},[e.labelShowBg?(a.openBlock(),a.createElementBlock("rect",{key:0,class:"vue-flow__edge-textbg",width:`${a.unref(t).width+2*e.labelBgPadding[0]}px`,height:`${a.unref(t).height+2*e.labelBgPadding[1]}px`,x:-e.labelBgPadding[0],y:-e.labelBgPadding[1],style:a.normalizeStyle(e.labelBgStyle),rx:e.labelBgBorderRadius,ry:e.labelBgBorderRadius},null,12,Vl)):a.createCommentVNode("",!0),a.createElementVNode("text",a.mergeProps(i.$attrs,{ref_key:"el",ref:n,class:"vue-flow__edge-text",y:a.unref(t).height/2,dy:"0.3em",style:e.labelStyle}),[a.renderSlot(i.$slots,"default",{},()=>[a.unref(be)(e.label)?(a.openBlock(),a.createElementBlock(a.Fragment,{key:1},[a.createTextVNode(a.toDisplayString(e.label),1)],64)):(a.openBlock(),a.createBlock(a.resolveDynamicComponent(e.label),{key:0}))])],16,Ll)],8,Al))}}),Et=function({path:e,label:t,labelX:n,labelY:o,labelBgBorderRadius:r,labelBgPadding:i,labelBgStyle:l,labelShowBg:s=!0,labelStyle:u,markerStart:c,markerEnd:d,interactionWidth:f=20},{attrs:p}){return[a.h("path",{style:p.style,class:["vue-flow__edge-path",p.class].join(" "),d:e,"marker-end":d,"marker-start":c}),f?a.h("path",{d:e,fill:"none","stroke-opacity":0,"stroke-width":f}):null,t&&we(n)&&we(o)?a.h(Xl,{x:n,y:o,label:t,labelStyle:u,labelShowBg:s,labelBgStyle:l,labelBgPadding:i,labelBgBorderRadius:r}):null]};Et.props=["path","labelX","labelY","label","labelBgBorderRadius","labelBgPadding","labelBgStyle","labelShowBg","labelStyle","markerStart","markerEnd","interactionWidth"],Et.inheritAttrs=!1,Et.compatConfig={MODE:3};const kt=Et;function Uo({sourceX:e,sourceY:t,targetX:n,targetY:o}){const r=Math.abs(n-e)/2,i=n=0?.5*e:t*25*Math.sqrt(-e)}function Zo({pos:e,x1:t,y1:n,x2:o,y2:r,c:i}){let l,s;switch(e){case j.Left:l=t-St(t-o,i),s=n;break;case j.Right:l=t+St(o-t,i),s=n;break;case j.Top:l=t,s=n-St(n-r,i);break;case j.Bottom:l=t,s=n+St(r-n,i);break}return[l,s]}function Nt({sourceX:e,sourceY:t,sourcePosition:n=j.Bottom,targetX:o,targetY:r,targetPosition:i=j.Top,curvature:l=.25}){const[s,u]=Zo({pos:n,x1:e,y1:t,x2:o,y2:r,c:l}),[c,d]=Zo({pos:i,x1:o,y1:r,x2:e,y2:t,c:l}),[f,p,b,v]=jo({sourceX:e,sourceY:t,targetX:o,targetY:r,sourceControlX:s,sourceControlY:u,targetControlX:c,targetControlY:d});return[`M${e},${t} C${s},${u} ${c},${d} ${o},${r}`,f,p,b,v]}const Ct=function({sourcePosition:e=j.Bottom,targetPosition:t=j.Top,...n},{attrs:o}){const[r,i,l]=Nt({sourcePosition:e,targetPosition:t,...n});return a.h(kt,{path:r,labelX:i,labelY:l,...n,...o})};Ct.props=["sourcePosition","targetPosition","label","labelStyle","labelShowBg","labelBgStyle","labelBgPadding","labelBgBorderRadius","sourceY","sourceX","targetX","targetY","curvature","markerEnd","markerStart","interactionWidth"],Ct.inheritAttrs=!1,Ct.compatConfig={MODE:3};const Gl=Ct;function Ko({pos:e,x1:t,y1:n,x2:o,y2:r}){let i,l;switch(e){case j.Left:case j.Right:i=.5*(t+o),l=n;break;case j.Top:case j.Bottom:i=t,l=.5*(n+r);break}return[i,l]}function Wo({sourceX:e,sourceY:t,sourcePosition:n=j.Bottom,targetX:o,targetY:r,targetPosition:i=j.Top}){const[l,s]=Ko({pos:n,x1:e,y1:t,x2:o,y2:r}),[u,c]=Ko({pos:i,x1:o,y1:r,x2:e,y2:t}),[d,f,p,b]=jo({sourceX:e,sourceY:t,targetX:o,targetY:r,sourceControlX:l,sourceControlY:s,targetControlX:u,targetControlY:c});return[`M${e},${t} C${l},${s} ${u},${c} ${o},${r}`,d,f,p,b]}const Mt=function({sourcePosition:e=j.Bottom,targetPosition:t=j.Top,...n},{attrs:o}){const[r,i,l]=Wo({sourcePosition:e,targetPosition:t,...n});return a.h(kt,{path:r,labelX:i,labelY:l,...n,...o})};Mt.props=["sourcePosition","targetPosition","label","labelStyle","labelShowBg","labelBgStyle","labelBgPadding","labelBgBorderRadius","sourceY","sourceX","targetX","targetY","markerEnd","markerStart","interactionWidth"],Mt.inheritAttrs=!1,Mt.compatConfig={MODE:3};const Fl=Mt,qo={[j.Left]:{x:-1,y:0},[j.Right]:{x:1,y:0},[j.Top]:{x:0,y:-1},[j.Bottom]:{x:0,y:1}};function Hl({source:e,sourcePosition:t=j.Bottom,target:n}){return t===j.Left||t===j.Right?e.xc[D],N=u[D]{let B;return E>0&&E{var r,i;t.edgeDoubleClick(o),(i=(r=e.events)==null?void 0:r.doubleClick)==null||i.call(r,o)}),n.click.on(o=>{var r,i;t.edgeClick(o),(i=(r=e.events)==null?void 0:r.click)==null||i.call(r,o)}),n.mouseEnter.on(o=>{var r,i;t.edgeMouseEnter(o),(i=(r=e.events)==null?void 0:r.mouseEnter)==null||i.call(r,o)}),n.mouseMove.on(o=>{var r,i;t.edgeMouseMove(o),(i=(r=e.events)==null?void 0:r.mouseMove)==null||i.call(r,o)}),n.mouseLeave.on(o=>{var r,i;t.edgeMouseLeave(o),(i=(r=e.events)==null?void 0:r.mouseLeave)==null||i.call(r,o)}),n.contextMenu.on(o=>{var r,i;t.edgeContextMenu(o),(i=(r=e.events)==null?void 0:r.contextMenu)==null||i.call(r,o)}),n.updateStart.on(o=>{var r,i;t.edgeUpdateStart(o),(i=(r=e.events)==null?void 0:r.updateStart)==null||i.call(r,o)}),n.update.on(o=>{var r,i;t.edgeUpdate(o),(i=(r=e.events)==null?void 0:r.update)==null||i.call(r,o)}),n.updateEnd.on(o=>{var r,i;t.edgeUpdateEnd(o),(i=(r=e.events)==null?void 0:r.updateEnd)==null||i.call(r,o)}),Object.entries(n).reduce((o,[r,i])=>(o.emit[r]=i.trigger,o.on[r]=i.on,o),{emit:{},on:{}})}const es=a.defineComponent({name:"Edge",compatConfig:{MODE:3},props:["name","type","id","updatable","selectable","focusable","edge"],setup(e){const{id:t,addSelectedEdges:n,connectionMode:o,edgeUpdaterRadius:r,emits:i,nodesSelectionActive:l,noPanClassName:s,getEdgeTypes:u,removeSelectedEdges:c,findEdge:d,findNode:f,isValidConnection:p}=re(),b=Jl(e.edge,i),v=Ze(e,"edge");let x=a.ref(!1),k=a.ref(!1);const E=a.ref(""),B=a.ref(null),G=a.ref("source"),w=a.ref();a.provide(ka,e.id),a.provide(Sa,w);const P=a.computed(()=>v.value.class instanceof Function?v.value.class(v.value):v.value.class),D=a.computed(()=>v.value.style instanceof Function?v.value.style(v.value):v.value.style),{handlePointerDown:g}=xo({nodeId:E,handleId:B,type:G,isValidConnection:p.value,edgeUpdaterType:G,onEdgeUpdate:C,onEdgeUpdateEnd:$});return()=>{const A=f(v.value.source),Z=f(v.value.target);if(!A||!Z||!v.value)return null;let Q;o.value===Pe.Strict?Q=A.handleBounds.source:Q=[...A.handleBounds.source||[],...A.handleBounds.target||[]];const te=go(Q,v.value.sourceHandle);let M;o.value===Pe.Strict?M=Z.handleBounds.target:M=[...Z.handleBounds.target||[],...Z.handleBounds.source||[]];const h=go(M,v.value.targetHandle),m=te?te.position:j.Bottom,I=h?h.position:j.Top,{sourceX:T,sourceY:V,targetY:L,targetX:K}=Ca(A,te,m,Z,h,I);return v.value.sourceX=T,v.value.sourceY=V,v.value.targetX=K,v.value.targetY=L,a.h("g",{ref:w,key:e.id,"data-id":e.id,class:["vue-flow__edge",`vue-flow__edge-${e.type===!1?"default":e.name}`,s.value,P.value,{updating:x.value,selected:v.value.selected,animated:v.value.animated,inactive:!e.selectable}],onClick:ee,onContextmenu:y,onDblclick:z,onMouseenter:S,onMousemove:R,onMouseleave:F,onKeyDown:e.focusable?H:void 0,tabIndex:e.focusable?0:void 0,"aria-label":v.value.ariaLabel===null?void 0:v.value.ariaLabel||`Edge from ${v.value.source} to ${v.value.target}`,"aria-describedby":e.focusable?`${Fo}-${t}`:void 0,role:e.focusable?"button":void 0},[k.value?null:a.h(e.type===!1?u.value.default:e.type,{id:e.id,sourceNode:A,targetNode:Z,source:v.value.source,target:v.value.target,type:v.value.type,updatable:e.updatable,selected:v.value.selected,animated:v.value.animated,label:v.value.label,labelStyle:v.value.labelStyle,labelShowBg:v.value.labelShowBg,labelBgStyle:v.value.labelBgStyle,labelBgPadding:v.value.labelBgPadding,labelBgBorderRadius:v.value.labelBgBorderRadius,data:v.value.data,events:{...v.value.events,...b.on},style:D.value,markerStart:`url(#${Me(v.value.markerStart,t)})`,markerEnd:`url(#${Me(v.value.markerEnd,t)})`,sourcePosition:m,targetPosition:I,sourceX:T,sourceY:V,targetX:K,targetY:L,sourceHandleId:v.value.sourceHandle,targetHandleId:v.value.targetHandle,interactionWidth:v.value.interactionWidth}),[e.updatable==="source"||e.updatable===!0?[a.h("g",{onMousedown:U,onMouseenter:_,onMouseout:N},a.h(tr,{position:m,centerX:T,centerY:V,radius:r.value,type:"source","data-type":"source"}))]:null,e.updatable==="target"||e.updatable===!0?[a.h("g",{onMousedown:O,onMouseenter:_,onMouseout:N},a.h(tr,{position:I,centerX:K,centerY:L,radius:r.value,type:"target","data-type":"target"}))]:null]])};function _(){x.value=!0}function N(){x.value=!1}function C(A,Z){b.emit.update({event:A,edge:v.value,connection:Z})}function $(A){b.emit.updateEnd({event:A,edge:v.value}),k.value=!1}function q(A,Z){A.button===0&&(k.value=!0,E.value=Z?v.value.target:v.value.source,B.value=(Z?v.value.targetHandle:v.value.sourceHandle)??"",G.value=Z?"target":"source",b.emit.updateStart({event:A,edge:v.value}),g(A))}function ee(A){const Z={event:A,edge:v.value};e.selectable&&(l.value=!1,n([v.value])),b.emit.click(Z)}function y(A){b.emit.contextMenu({event:A,edge:v.value})}function z(A){b.emit.doubleClick({event:A,edge:v.value})}function S(A){b.emit.mouseEnter({event:A,edge:v.value})}function R(A){b.emit.mouseMove({event:A,edge:v.value})}function F(A){b.emit.mouseLeave({event:A,edge:v.value})}function U(A){q(A,!0)}function O(A){q(A,!1)}function H(A){var Z;Ho.includes(A.key)&&e.selectable&&(A.key==="Escape"?((Z=w.value)==null||Z.blur(),c([d(e.id)])):n([d(e.id)]))}}}),ts=es,ns={height:"0",width:"0"},os={name:"EdgeLabelRenderer",compatConfig:{MODE:3}},rs=a.defineComponent({...os,setup(e){const{viewportRef:t}=re(),n=a.computed(()=>{var o;return(o=t.value)==null?void 0:o.getElementsByClassName("vue-flow__edge-labels")[0]});return(o,r)=>(a.openBlock(),a.createElementBlock("svg",null,[(a.openBlock(),a.createElementBlock("foreignObject",ns,[(a.openBlock(),a.createBlock(a.Teleport,{to:a.unref(n),disabled:!a.unref(n)},[a.renderSlot(o.$slots,"default")],8,["to","disabled"]))]))]))}}),as={class:"vue-flow__connection"},is=["d","marker-end","marker-start"],ls={name:"ConnectionLine",compatConfig:{MODE:3}},ss=a.defineComponent({...ls,props:{sourceNode:null},setup(e){var t;const n=re(),o=a.toRef(n,"connectionMode"),r=a.toRef(n,"connectionStartHandle"),i=a.toRef(n,"connectionEndHandle"),l=a.toRef(n,"connectionPosition"),s=a.toRef(n,"connectionLineType"),u=a.toRef(n,"connectionLineStyle"),c=a.toRef(n,"connectionLineOptions"),d=a.toRef(n,"connectionStatus"),f=a.toRef(n,"viewport"),p=a.toRef(n,"findNode"),b={[j.Left]:j.Right,[j.Right]:j.Left,[j.Top]:j.Bottom,[j.Bottom]:j.Top},v=(t=a.inject(ft))==null?void 0:t["connection-line"],x=a.computed(()=>r.value.handleId),k=a.computed(()=>r.value.type),E=a.computed(()=>{var C;return((C=i.value)==null?void 0:C.handleId)&&p.value(i.value.nodeId)||null}),B=a.computed(()=>{var C,$;return(o.value===Pe.Strict?(C=e.sourceNode.handleBounds[k.value])==null?void 0:C.find(q=>q.id===x.value):[...e.sourceNode.handleBounds.source||[],...e.sourceNode.handleBounds.target||[]].find(q=>q.id===x.value))||(($=e.sourceNode.handleBounds[k.value??"source"])==null?void 0:$[0])}),G=a.computed(()=>{var C,$,q;return E.value&&((C=i.value)==null?void 0:C.handleId)&&((o.value===Pe.Strict?($=E.value.handleBounds[k.value==="source"?"target":"source"])==null?void 0:$.find(ee=>{var y;return ee.id===((y=i.value)==null?void 0:y.handleId)}):[...E.value.handleBounds.source||[],...E.value.handleBounds.target||[]].find(ee=>{var y;return ee.id===((y=i.value)==null?void 0:y.handleId)}))||((q=E.value.handleBounds[k.value??"target"])==null?void 0:q[0]))||null}),w=a.computed(()=>{var C;return(C=B.value)==null?void 0:C.position}),P=a.computed(()=>B.value?ht(w.value||j.Top,{...e.sourceNode.dimensions,...e.sourceNode.computedPosition},B.value):{x:e.sourceNode.dimensions.width/2,y:e.sourceNode.dimensions.height/2}),D=a.computed(()=>w.value?b[w.value]:void 0),g=a.computed(()=>(l.value.x-f.value.x)/f.value.zoom),_=a.computed(()=>(l.value.y-f.value.y)/f.value.zoom),N=a.computed(()=>{let C;const $={sourceX:P.value.x,sourceY:P.value.y,sourcePosition:w.value,targetX:g.value,targetY:_.value,targetPosition:D.value};switch(s.value??c.value.type){case Be.Bezier:[C]=Nt($);break;case Be.Step:[C]=pn({...$,borderRadius:0});break;case Be.SmoothStep:[C]=pn($);break;case Be.SimpleBezier:[C]=Wo($);break;case Be.Straight:[C]=er($);break;default:[C]=Nt($);break}return C});return(C,$)=>{var q;return a.openBlock(),a.createElementBlock("g",as,[a.unref(v)?(a.openBlock(),a.createBlock(a.resolveDynamicComponent(a.unref(v)),a.normalizeProps(a.mergeProps({key:0},{sourceX:a.unref(P).x,sourceY:a.unref(P).y,sourcePosition:(q=a.unref(B))==null?void 0:q.position,targetX:a.unref(g),targetY:a.unref(_),targetPosition:a.unref(D),sourceNode:e.sourceNode,sourceHandle:a.unref(B),targetNode:a.unref(E),targetHandle:a.unref(G),markerEnd:`url(#${a.unref(Me)(a.unref(c).markerEnd)})`,markerStart:`url(#${a.unref(Me)(a.unref(c).markerStart)})`,connectionStatus:a.unref(d)})),null,16)):(a.openBlock(),a.createElementBlock("path",{key:1,d:a.unref(N),class:a.normalizeClass(["vue-flow__connection-path",[a.unref(c).class,a.unref(d)]]),style:a.normalizeStyle(a.unref(u)||a.unref(c).style||{}),"marker-end":`url(#${a.unref(Me)(a.unref(c).markerEnd)})`,"marker-start":`url(#${a.unref(Me)(a.unref(c).markerStart)})`},null,14,is))])}}}),us=["tabIndex"],cs={name:"NodesSelection",compatConfig:{MODE:3}},ds=a.defineComponent({...cs,setup(e){const t=re(),n=a.toRef(t,"emits"),o=a.toRef(t,"viewport"),r=a.toRef(t,"getSelectedNodes"),i=a.toRef(t,"noPanClassName"),l=a.toRef(t,"disableKeyboardA11y"),s=a.toRef(t,"userSelectionActive"),u=ko(),c=a.ref(),d=Xo({el:c,onStart(x){n.value.selectionDragStart(x)},onDrag(x){n.value.selectionDrag(x)},onStop(x){n.value.selectionDragStop(x)}});a.onMounted(()=>{var x;l.value||(x=c.value)==null||x.focus({preventScroll:!0})});const f=a.computed(()=>io(r.value)),p=a.computed(()=>({width:`${f.value.width}px`,height:`${f.value.height}px`,top:`${f.value.y}px`,left:`${f.value.x}px`}));function b(x){n.value.selectionContextMenu({event:x,nodes:r.value})}function v(x){l.value||Xe[x.key]&&u({x:Xe[x.key].x,y:Xe[x.key].y},x.shiftKey)}return(x,k)=>!a.unref(s)&&a.unref(f).width&&a.unref(f).height?(a.openBlock(),a.createElementBlock("div",{key:0,class:a.normalizeClass(["vue-flow__nodesselection vue-flow__container",a.unref(i)]),style:a.normalizeStyle({transform:`translate(${a.unref(o).x}px,${a.unref(o).y}px) scale(${a.unref(o).zoom})`})},[a.createElementVNode("div",{ref_key:"el",ref:c,class:a.normalizeClass([{dragging:a.unref(d)},"vue-flow__nodesselection-rect"]),style:a.normalizeStyle(a.unref(p)),tabIndex:a.unref(l)?void 0:-1,onContextmenu:b,onKeydown:v},null,46,us)],6)):a.createCommentVNode("",!0)}}),fs={name:"UserSelection",compatConfig:{MODE:3}},hs=a.defineComponent({...fs,setup(e){const{userSelectionRect:t}=re();return(n,o)=>{var r,i,l,s;return a.openBlock(),a.createElementBlock("div",{class:"vue-flow__selection vue-flow__container",style:a.normalizeStyle({width:`${(r=a.unref(t))==null?void 0:r.width}px`,height:`${(i=a.unref(t))==null?void 0:i.height}px`,transform:`translate(${(l=a.unref(t))==null?void 0:l.x}px, ${(s=a.unref(t))==null?void 0:s.y}px)`})},null,4)}}}),ps={input:za,default:Da,output:Aa},gs={default:Gl,straight:Kl,step:Zl,smoothstep:Jo,simplebezier:Fl};function ms(){return{vueFlowRef:null,viewportRef:null,nodes:[],edges:[],nodeTypes:{},edgeTypes:{},initialized:!1,dimensions:{width:0,height:0},viewport:{x:0,y:0,zoom:1},d3Zoom:null,d3Selection:null,d3ZoomHandler:null,minZoom:.5,maxZoom:2,translateExtent:[[Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY],[Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY]],nodeExtent:[[Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY],[Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY]],selectionMode:en.Full,paneDragging:!1,preventScrolling:!0,zoomOnScroll:!0,zoomOnPinch:!0,zoomOnDoubleClick:!0,panOnScroll:!1,panOnScrollSpeed:.5,panOnScrollMode:dt.Free,panOnDrag:!0,edgeUpdaterRadius:10,onlyRenderVisibleElements:!1,defaultViewport:{x:0,y:0,zoom:1},nodesSelectionActive:!1,userSelectionActive:!1,userSelectionRect:null,defaultMarkerColor:"#b1b1b7",connectionLineStyle:{},connectionLineType:null,connectionLineOptions:{type:Be.Bezier,style:{}},connectionMode:Pe.Loose,connectionStartHandle:null,connectionEndHandle:null,connectionClickStartHandle:null,connectionPosition:{x:NaN,y:NaN},connectionRadius:20,connectOnClick:!0,connectionStatus:null,isValidConnection:null,snapGrid:[15,15],snapToGrid:!1,edgesUpdatable:!1,edgesFocusable:!0,nodesFocusable:!0,nodesConnectable:!0,nodesDraggable:!0,elementsSelectable:!0,selectNodesOnDrag:!0,multiSelectionActive:!1,selectionKeyCode:"Shift",multiSelectionKeyCode:"Meta",zoomActivationKeyCode:"Meta",deleteKeyCode:"Backspace",panActivationKeyCode:"Space",hooks:fa(),applyDefault:!0,autoConnect:!1,fitViewOnInit:!1,noDragClassName:"nodrag",noWheelClassName:"nowheel",noPanClassName:"nopan",defaultEdgeOptions:void 0,elevateEdgesOnSelect:!1,elevateNodesOnSelect:!0,autoPanOnNodeDrag:!0,autoPanOnConnect:!0,disableKeyboardA11y:!1,ariaLiveMessage:"",__experimentalFeatures:{nestedFlow:!1}}}function nr(e){const t=ms();return e&&Object.keys(e).forEach(n=>{const o=e[n];oe(o)&&(t[n]=o)}),t}function ys(e,t,n){const o=a.computed(()=>x=>e.nodes&&!t.value.length?e.nodes.find(k=>k.id===x):e.nodes[t.value.indexOf(x)]),r=a.computed(()=>x=>e.edges&&!n.value.length?e.edges.find(k=>k.id===x):e.edges[n.value.indexOf(x)]),i=a.computed(()=>{var x;const k={...gs,...e.edgeTypes},E=Object.keys(k);return(x=e.edges)==null||x.forEach(B=>B.type&&!E.includes(B.type)&&(k[B.type]=B.type)),k}),l=a.computed(()=>{var x;const k={...ps,...e.nodeTypes},E=Object.keys(k);return(x=e.nodes)==null||x.forEach(B=>B.type&&!E.includes(B.type)&&(k[B.type]=B.type)),k}),s=a.computed(()=>{const x=e.nodes.filter(k=>!k.hidden);return e.onlyRenderVisibleElements?x&&lo(x,{x:0,y:0,width:e.dimensions.width,height:e.dimensions.height},e.viewport,!0):x??[]}),u=(x,k,E)=>{if(k=k??o.value(x.source),E=E??o.value(x.target),!k||!E){e.hooks.error.trigger(new le(ie.EDGE_ORPHANED,x.id));return}return!x.hidden&&!E.hidden&&!k.hidden},c=a.computed(()=>e.onlyRenderVisibleElements?e.edges.filter(x=>{const k=o.value(x.source),E=o.value(x.target);return u(x,k,E)&&Ma({sourcePos:k.computedPosition||{x:0,y:0},targetPos:E.computedPosition||{x:0,y:0},sourceWidth:k.dimensions.width,sourceHeight:k.dimensions.height,targetWidth:E.dimensions.width,targetHeight:E.dimensions.height,width:e.dimensions.width,height:e.dimensions.height,viewport:e.viewport})}):e.edges.filter(x=>u(x))),d=a.computed(()=>[...s.value,...c.value]),f=a.computed(()=>e.nodes.filter(x=>x.selected)),p=a.computed(()=>e.edges.filter(x=>x.selected)),b=a.computed(()=>[...f.value??[],...p.value??[]]),v=a.computed(()=>s.value.filter(x=>x.initialized&&x.handleBounds!==void 0));return{getNode:o,getEdge:r,getElements:d,getEdgeTypes:i,getNodeTypes:l,getEdges:c,getNodes:s,getSelectedElements:b,getSelectedNodes:f,getSelectedEdges:p,getNodesInitialized:v}}function mn(e,t,n){e.prototype=t.prototype=n,n.constructor=e}function or(e,t){var n=Object.create(e.prototype);for(var o in t)n[o]=t[o];return n}function Qe(){}var Je=.7,$t=1/Je,Ge="\\s*([+-]?\\d+)\\s*",et="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",ge="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",vs=/^#([0-9a-f]{3,8})$/,ws=new RegExp(`^rgb\\(${Ge},${Ge},${Ge}\\)$`),bs=new RegExp(`^rgb\\(${ge},${ge},${ge}\\)$`),xs=new RegExp(`^rgba\\(${Ge},${Ge},${Ge},${et}\\)$`),_s=new RegExp(`^rgba\\(${ge},${ge},${ge},${et}\\)$`),Es=new RegExp(`^hsl\\(${et},${ge},${ge}\\)$`),ks=new RegExp(`^hsla\\(${et},${ge},${ge},${et}\\)$`),rr={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};mn(Qe,tt,{copy(e){return Object.assign(new this.constructor,this,e)},displayable(){return this.rgb().displayable()},hex:ar,formatHex:ar,formatHex8:Ss,formatHsl:Ns,formatRgb:ir,toString:ir});function ar(){return this.rgb().formatHex()}function Ss(){return this.rgb().formatHex8()}function Ns(){return dr(this).formatHsl()}function ir(){return this.rgb().formatRgb()}function tt(e){var t,n;return e=(e+"").trim().toLowerCase(),(t=vs.exec(e))?(n=t[1].length,t=parseInt(t[1],16),n===6?lr(t):n===3?new se(t>>8&15|t>>4&240,t>>4&15|t&240,(t&15)<<4|t&15,1):n===8?Tt(t>>24&255,t>>16&255,t>>8&255,(t&255)/255):n===4?Tt(t>>12&15|t>>8&240,t>>8&15|t>>4&240,t>>4&15|t&240,((t&15)<<4|t&15)/255):null):(t=ws.exec(e))?new se(t[1],t[2],t[3],1):(t=bs.exec(e))?new se(t[1]*255/100,t[2]*255/100,t[3]*255/100,1):(t=xs.exec(e))?Tt(t[1],t[2],t[3],t[4]):(t=_s.exec(e))?Tt(t[1]*255/100,t[2]*255/100,t[3]*255/100,t[4]):(t=Es.exec(e))?cr(t[1],t[2]/100,t[3]/100,1):(t=ks.exec(e))?cr(t[1],t[2]/100,t[3]/100,t[4]):rr.hasOwnProperty(e)?lr(rr[e]):e==="transparent"?new se(NaN,NaN,NaN,0):null}function lr(e){return new se(e>>16&255,e>>8&255,e&255,1)}function Tt(e,t,n,o){return o<=0&&(e=t=n=NaN),new se(e,t,n,o)}function Cs(e){return e instanceof Qe||(e=tt(e)),e?(e=e.rgb(),new se(e.r,e.g,e.b,e.opacity)):new se}function yn(e,t,n,o){return arguments.length===1?Cs(e):new se(e,t,n,o??1)}function se(e,t,n,o){this.r=+e,this.g=+t,this.b=+n,this.opacity=+o}mn(se,yn,or(Qe,{brighter(e){return e=e==null?$t:Math.pow($t,e),new se(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=e==null?Je:Math.pow(Je,e),new se(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new se(Ie(this.r),Ie(this.g),Ie(this.b),Rt(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:sr,formatHex:sr,formatHex8:Ms,formatRgb:ur,toString:ur}));function sr(){return`#${$e(this.r)}${$e(this.g)}${$e(this.b)}`}function Ms(){return`#${$e(this.r)}${$e(this.g)}${$e(this.b)}${$e((isNaN(this.opacity)?1:this.opacity)*255)}`}function ur(){const e=Rt(this.opacity);return`${e===1?"rgb(":"rgba("}${Ie(this.r)}, ${Ie(this.g)}, ${Ie(this.b)}${e===1?")":`, ${e})`}`}function Rt(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function Ie(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function $e(e){return e=Ie(e),(e<16?"0":"")+e.toString(16)}function cr(e,t,n,o){return o<=0?e=t=n=NaN:n<=0||n>=1?e=t=NaN:t<=0&&(e=NaN),new fe(e,t,n,o)}function dr(e){if(e instanceof fe)return new fe(e.h,e.s,e.l,e.opacity);if(e instanceof Qe||(e=tt(e)),!e)return new fe;if(e instanceof fe)return e;e=e.rgb();var t=e.r/255,n=e.g/255,o=e.b/255,r=Math.min(t,n,o),i=Math.max(t,n,o),l=NaN,s=i-r,u=(i+r)/2;return s?(t===i?l=(n-o)/s+(n0&&u<1?0:l,new fe(l,s,u,e.opacity)}function Bs(e,t,n,o){return arguments.length===1?dr(e):new fe(e,t,n,o??1)}function fe(e,t,n,o){this.h=+e,this.s=+t,this.l=+n,this.opacity=+o}mn(fe,Bs,or(Qe,{brighter(e){return e=e==null?$t:Math.pow($t,e),new fe(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?Je:Math.pow(Je,e),new fe(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=this.h%360+(this.h<0)*360,t=isNaN(e)||isNaN(this.s)?0:this.s,n=this.l,o=n+(n<.5?n:1-n)*t,r=2*n-o;return new se(vn(e>=240?e-240:e+120,r,o),vn(e,r,o),vn(e<120?e+240:e-120,r,o),this.opacity)},clamp(){return new fe(fr(this.h),Ot(this.s),Ot(this.l),Rt(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){const e=Rt(this.opacity);return`${e===1?"hsl(":"hsla("}${fr(this.h)}, ${Ot(this.s)*100}%, ${Ot(this.l)*100}%${e===1?")":`, ${e})`}`}}));function fr(e){return e=(e||0)%360,e<0?e+360:e}function Ot(e){return Math.max(0,Math.min(1,e||0))}function vn(e,t,n){return(e<60?t+(n-t)*e/60:e<180?n:e<240?t+(n-t)*(240-e)/60:t)*255}const hr=e=>()=>e;function Ps(e,t){return function(n){return e+n*t}}function Is(e,t,n){return e=Math.pow(e,n),t=Math.pow(t,n)-e,n=1/n,function(o){return Math.pow(e+o*t,n)}}function $s(e){return(e=+e)==1?pr:function(t,n){return n-t?Is(t,n,e):hr(isNaN(t)?n:t)}}function pr(e,t){var n=t-e;return n?Ps(e,n):hr(isNaN(e)?t:e)}const gr=function e(t){var n=$s(t);function o(r,i){var l=n((r=yn(r)).r,(i=yn(i)).r),s=n(r.g,i.g),u=n(r.b,i.b),c=pr(r.opacity,i.opacity);return function(d){return r.r=l(d),r.g=s(d),r.b=u(d),r.opacity=c(d),r+""}}return o.gamma=e,o}(1);function Ne(e,t){return e=+e,t=+t,function(n){return e*(1-n)+t*n}}var wn=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,bn=new RegExp(wn.source,"g");function Ts(e){return function(){return e}}function Rs(e){return function(t){return e(t)+""}}function Os(e,t){var n=wn.lastIndex=bn.lastIndex=0,o,r,i,l=-1,s=[],u=[];for(e=e+"",t=t+"";(o=wn.exec(e))&&(r=bn.exec(t));)(i=r.index)>n&&(i=t.slice(n,i),s[l]?s[l]+=i:s[++l]=i),(o=o[0])===(r=r[0])?s[l]?s[l]+=r:s[++l]=r:(s[++l]=null,u.push({i:l,x:Ne(o,r)})),n=bn.lastIndex;return n180?d+=360:d-c>180&&(c+=360),p.push({i:f.push(r(f)+"rotate(",null,o)-2,x:Ne(c,d)})):d&&f.push(r(f)+"rotate("+d+o)}function s(c,d,f,p){c!==d?p.push({i:f.push(r(f)+"skewX(",null,o)-2,x:Ne(c,d)}):d&&f.push(r(f)+"skewX("+d+o)}function u(c,d,f,p,b,v){if(c!==f||d!==p){var x=b.push(r(b)+"scale(",null,",",null,")");v.push({i:x-4,x:Ne(c,f)},{i:x-2,x:Ne(d,p)})}else(f!==1||p!==1)&&b.push(r(b)+"scale("+f+","+p+")")}return function(c,d){var f=[],p=[];return c=e(c),d=e(d),i(c.translateX,c.translateY,d.translateX,d.translateY,f,p),l(c.rotate,d.rotate,f,p),s(c.skewX,d.skewX,f,p),u(c.scaleX,c.scaleY,d.scaleX,d.scaleY,f,p),c=d=null,function(b){for(var v=-1,x=p.length,k;++v=0&&e._call.call(void 0,t),e=e._next;--Fe}function kr(){Te=(At=at.now())+Vt,Fe=nt=0;try{Hs()}finally{Fe=0,js(),Te=0}}function Us(){var e=at.now(),t=e-At;t>xr&&(Vt-=t,At=e)}function js(){for(var e,t=zt,n,o=1/0;t;)t._call?(o>t._time&&(o=t._time),e=t,t=t._next):(n=t._next,t._next=null,t=e?e._next=n:zt=n);rt=e,_n(o)}function _n(e){if(!Fe){nt&&(nt=clearTimeout(nt));var t=e-Te;t>24?(e<1/0&&(nt=setTimeout(kr,e-at.now()-Vt)),ot&&(ot=clearInterval(ot))):(ot||(At=at.now(),ot=setInterval(Us,xr)),Fe=1,_r(kr))}}function Sr(e,t,n){var o=new Lt;return t=t==null?0:+t,o.restart(r=>{o.stop(),e(r+t)},t,n),o}var Zs=vt("start","end","cancel","interrupt"),Ks=[],Nr=0,Cr=1,En=2,Yt=3,Mr=4,kn=5,Xt=6;function Gt(e,t,n,o,r,i){var l=e.__transition;if(!l)e.__transition={};else if(n in l)return;Ws(e,n,{name:t,index:o,group:r,on:Zs,tween:Ks,time:i.time,delay:i.delay,duration:i.duration,ease:i.ease,timer:null,state:Nr})}function Sn(e,t){var n=he(e,t);if(n.state>Nr)throw new Error("too late; already scheduled");return n}function me(e,t){var n=he(e,t);if(n.state>Yt)throw new Error("too late; already running");return n}function he(e,t){var n=e.__transition;if(!n||!(n=n[t]))throw new Error("transition not found");return n}function Ws(e,t,n){var o=e.__transition,r;o[t]=n,n.timer=Er(i,0,n.time);function i(c){n.state=Cr,n.timer.restart(l,n.delay,n.time),n.delay<=c&&l(c-n.delay)}function l(c){var d,f,p,b;if(n.state!==Cr)return u();for(d in o)if(b=o[d],b.name===n.name){if(b.state===Yt)return Sr(l);b.state===Mr?(b.state=Xt,b.timer.stop(),b.on.call("interrupt",e,e.__data__,b.index,b.group),delete o[d]):+dEn&&o.state=0&&(t=t.slice(0,n)),!t||t==="start"})}function Nu(e,t,n){var o,r,i=Su(t)?Sn:me;return function(){var l=i(this,e),s=l.on;s!==o&&(r=(o=s).copy()).on(t,n),l.on=r}}function Cu(e,t){var n=this._id;return arguments.length<2?he(this.node(),n).on.on(e):this.each(Nu(n,e,t))}function Mu(e){return function(){var t=this.parentNode;for(var n in this.__transition)if(+n!==e)return;t&&t.removeChild(this)}}function Bu(){return this.on("end.remove",Mu(this._id))}function Pu(e){var t=this._name,n=this._id;typeof e!="function"&&(e=un(e));for(var o=this._groups,r=o.length,i=new Array(r),l=0;l()=>e;function tc(e,{sourceEvent:t,target:n,transform:o,dispatch:r}){Object.defineProperties(this,{type:{value:e,enumerable:!0,configurable:!0},sourceEvent:{value:t,enumerable:!0,configurable:!0},target:{value:n,enumerable:!0,configurable:!0},transform:{value:o,enumerable:!0,configurable:!0},_:{value:r}})}function Ee(e,t,n){this.k=e,this.x=t,this.y=n}Ee.prototype={constructor:Ee,scale:function(e){return e===1?this:new Ee(this.k*e,this.x,this.y)},translate:function(e,t){return e===0&t===0?this:new Ee(this.k,this.x+this.k*e,this.y+this.k*t)},apply:function(e){return[e[0]*this.k+this.x,e[1]*this.k+this.y]},applyX:function(e){return e*this.k+this.x},applyY:function(e){return e*this.k+this.y},invert:function(e){return[(e[0]-this.x)/this.k,(e[1]-this.y)/this.k]},invertX:function(e){return(e-this.x)/this.k},invertY:function(e){return(e-this.y)/this.k},rescaleX:function(e){return e.copy().domain(e.range().map(this.invertX,this).map(e.invert,e))},rescaleY:function(e){return e.copy().domain(e.range().map(this.invertY,this).map(e.invert,e))},toString:function(){return"translate("+this.x+","+this.y+") scale("+this.k+")"}};var He=new Ee(1,0,0);Ee.prototype;function Cn(e){e.stopImmediatePropagation()}function it(e){e.preventDefault(),e.stopImmediatePropagation()}function nc(e){return(!e.ctrlKey||e.type==="wheel")&&!e.button}function oc(){var e=this;return e instanceof SVGElement?(e=e.ownerSVGElement||e,e.hasAttribute("viewBox")?(e=e.viewBox.baseVal,[[e.x,e.y],[e.x+e.width,e.y+e.height]]):[[0,0],[e.width.baseVal.value,e.height.baseVal.value]]):[[0,0],[e.clientWidth,e.clientHeight]]}function $r(){return this.__zoom||He}function rc(e){return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*(e.ctrlKey?10:1)}function ac(){return navigator.maxTouchPoints||"ontouchstart"in this}function ic(e,t,n){var o=e.invertX(t[0][0])-n[0][0],r=e.invertX(t[1][0])-n[1][0],i=e.invertY(t[0][1])-n[0][1],l=e.invertY(t[1][1])-n[1][1];return e.translate(r>o?(o+r)/2:Math.min(0,o)||Math.max(0,r),l>i?(i+l)/2:Math.min(0,i)||Math.max(0,l))}function lc(){var e=nc,t=oc,n=ic,o=rc,r=ac,i=[0,1/0],l=[[-1/0,-1/0],[1/0,1/0]],s=250,u=Gs,c=vt("start","zoom","end"),d,f,p,b=500,v=150,x=0,k=10;function E(y){y.property("__zoom",$r).on("wheel.zoom",_,{passive:!1}).on("mousedown.zoom",N).on("dblclick.zoom",C).filter(r).on("touchstart.zoom",$).on("touchmove.zoom",q).on("touchend.zoom touchcancel.zoom",ee).style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}E.transform=function(y,z,S,R){var F=y.selection?y.selection():y;F.property("__zoom",$r),y!==F?P(y,z,S,R):F.interrupt().each(function(){D(this,arguments).event(R).start().zoom(null,typeof z=="function"?z.apply(this,arguments):z).end()})},E.scaleBy=function(y,z,S,R){E.scaleTo(y,function(){var F=this.__zoom.k,U=typeof z=="function"?z.apply(this,arguments):z;return F*U},S,R)},E.scaleTo=function(y,z,S,R){E.transform(y,function(){var F=t.apply(this,arguments),U=this.__zoom,O=S==null?w(F):typeof S=="function"?S.apply(this,arguments):S,H=U.invert(O),A=typeof z=="function"?z.apply(this,arguments):z;return n(G(B(U,A),O,H),F,l)},S,R)},E.translateBy=function(y,z,S,R){E.transform(y,function(){return n(this.__zoom.translate(typeof z=="function"?z.apply(this,arguments):z,typeof S=="function"?S.apply(this,arguments):S),t.apply(this,arguments),l)},null,R)},E.translateTo=function(y,z,S,R,F){E.transform(y,function(){var U=t.apply(this,arguments),O=this.__zoom,H=R==null?w(U):typeof R=="function"?R.apply(this,arguments):R;return n(He.translate(H[0],H[1]).scale(O.k).translate(typeof z=="function"?-z.apply(this,arguments):-z,typeof S=="function"?-S.apply(this,arguments):-S),U,l)},R,F)};function B(y,z){return z=Math.max(i[0],Math.min(i[1],z)),z===y.k?y:new Ee(z,y.x,y.y)}function G(y,z,S){var R=z[0]-S[0]*y.k,F=z[1]-S[1]*y.k;return R===y.x&&F===y.y?y:new Ee(y.k,R,F)}function w(y){return[(+y[0][0]+ +y[1][0])/2,(+y[0][1]+ +y[1][1])/2]}function P(y,z,S,R){y.on("start.zoom",function(){D(this,arguments).event(R).start()}).on("interrupt.zoom end.zoom",function(){D(this,arguments).event(R).end()}).tween("zoom",function(){var F=this,U=arguments,O=D(F,U).event(R),H=t.apply(F,U),A=S==null?w(H):typeof S=="function"?S.apply(F,U):S,Z=Math.max(H[1][0]-H[0][0],H[1][1]-H[0][1]),Q=F.__zoom,te=typeof z=="function"?z.apply(F,U):z,M=u(Q.invert(A).concat(Z/Q.k),te.invert(A).concat(Z/te.k));return function(h){if(h===1)h=te;else{var m=M(h),I=Z/m[2];h=new Ee(I,A[0]-m[0]*I,A[1]-m[1]*I)}O.zoom(null,h)}})}function D(y,z,S){return!S&&y.__zooming||new g(y,z)}function g(y,z){this.that=y,this.args=z,this.active=0,this.sourceEvent=null,this.extent=t.apply(y,z),this.taps=0}g.prototype={event:function(y){return y&&(this.sourceEvent=y),this},start:function(){return++this.active===1&&(this.that.__zooming=this,this.emit("start")),this},zoom:function(y,z){return this.mouse&&y!=="mouse"&&(this.mouse[1]=z.invert(this.mouse[0])),this.touch0&&y!=="touch"&&(this.touch0[1]=z.invert(this.touch0[0])),this.touch1&&y!=="touch"&&(this.touch1[1]=z.invert(this.touch1[0])),this.that.__zoom=z,this.emit("zoom"),this},end:function(){return--this.active===0&&(delete this.that.__zooming,this.emit("end")),this},emit:function(y){var z=de(this.that).datum();c.call(y,this.that,new tc(y,{sourceEvent:this.sourceEvent,target:E,type:y,transform:this.that.__zoom,dispatch:c}),z)}};function _(y,...z){if(!e.apply(this,arguments))return;var S=D(this,z).event(y),R=this.__zoom,F=Math.max(i[0],Math.min(i[1],R.k*Math.pow(2,o.apply(this,arguments)))),U=pe(y);if(S.wheel)(S.mouse[0][0]!==U[0]||S.mouse[0][1]!==U[1])&&(S.mouse[1]=R.invert(S.mouse[0]=U)),clearTimeout(S.wheel);else{if(R.k===F)return;S.mouse=[U,R.invert(U)],Ft(this),S.start()}it(y),S.wheel=setTimeout(O,v),S.zoom("mouse",n(G(B(R,F),S.mouse[0],S.mouse[1]),S.extent,l));function O(){S.wheel=null,S.end()}}function N(y,...z){if(p||!e.apply(this,arguments))return;var S=y.currentTarget,R=D(this,z,!0).event(y),F=de(y.view).on("mousemove.zoom",A,!0).on("mouseup.zoom",Z,!0),U=pe(y,S),O=y.clientX,H=y.clientY;Lo(y.view),Cn(y),R.mouse=[U,this.__zoom.invert(U)],Ft(this),R.start();function A(Q){if(it(Q),!R.moved){var te=Q.clientX-O,M=Q.clientY-H;R.moved=te*te+M*M>x}R.event(Q).zoom("mouse",n(G(R.that.__zoom,R.mouse[0]=pe(Q,S),R.mouse[1]),R.extent,l))}function Z(Q){F.on("mousemove.zoom mouseup.zoom",null),Yo(Q.view,R.moved),it(Q),R.event(Q).end()}}function C(y,...z){if(e.apply(this,arguments)){var S=this.__zoom,R=pe(y.changedTouches?y.changedTouches[0]:y,this),F=S.invert(R),U=S.k*(y.shiftKey?.5:2),O=n(G(B(S,U),R,F),t.apply(this,z),l);it(y),s>0?de(this).transition().duration(s).call(P,O,R,y):de(this).call(E.transform,O,R,y)}}function $(y,...z){if(e.apply(this,arguments)){var S=y.touches,R=S.length,F=D(this,z,y.changedTouches.length===R).event(y),U,O,H,A;for(Cn(y),O=0;Oe,setTransform:Re,getTransform:()=>({x:0,y:0,zoom:1}),initialized:!1},uc=(e,t)=>{const n=e,o=a.toRef(n,"nodes"),r=a.toRef(n,"d3Zoom"),i=a.toRef(n,"d3Selection"),l=a.toRef(n,"dimensions"),s=a.toRef(n,"translateExtent"),u=a.toRef(n,"minZoom"),c=a.toRef(n,"maxZoom"),d=a.toRef(n,"viewport"),f=a.toRef(n,"snapToGrid"),p=a.toRef(n,"snapGrid"),b=a.toRef(n,"hooks"),v=t,x=a.toRef(v,"getNodes"),k=a.ref(!1);b.value.nodesInitialized.on(()=>{k.value=!0});const E=a.computed(()=>!!r.value&&!!i.value&&!!l.value.width&&!!l.value.height&&k.value);function B(w,P){i.value&&r.value&&r.value.scaleBy(Bn(i.value,P),w)}function G(w,P,D,g){const{x:_,y:N}=eo({x:-w,y:-P},s.value),C=He.translate(-_,-N).scale(D);i.value&&r.value&&r.value.transform(Bn(i.value,g),C)}return a.computed(()=>E.value?{initialized:!0,zoomIn:w=>{B(1.2,w==null?void 0:w.duration)},zoomOut:w=>{B(1/1.2,w==null?void 0:w.duration)},zoomTo:(w,P)=>{i.value&&r.value&&r.value.scaleTo(Bn(i.value,P==null?void 0:P.duration),w)},setTransform:(w,P)=>{G(w.x,w.y,w.zoom,P==null?void 0:P.duration)},getTransform:()=>({x:d.value.x,y:d.value.y,zoom:d.value.zoom}),fitView:(w={padding:Mn,includeHiddenNodes:!1,duration:0})=>{if(!o.value.length)return;const P=(w.includeHiddenNodes?o.value:x.value).filter(C=>{var $;const q=C.initialized&&C.dimensions.width&&C.dimensions.height;let ee=!0;return($=w.nodes)!=null&&$.length&&(ee=w.nodes.includes(C.id)),q&&ee}),D=io(P),{x:g,y:_,zoom:N}=so(D,l.value.width,l.value.height,w.minZoom??u.value,w.maxZoom??c.value,w.padding??Mn,w.offset);G(g,_,N,w==null?void 0:w.duration)},setCenter:(w,P,D)=>{const g=typeof(D==null?void 0:D.zoom)<"u"?D.zoom:c.value,_=l.value.width/2-w*g,N=l.value.height/2-P*g;G(_,N,g,D==null?void 0:D.duration)},fitBounds:(w,P={padding:Mn})=>{const{x:D,y:g,zoom:_}=so(w,l.value.width,l.value.height,u.value,c.value,P.padding);G(D,g,_,P==null?void 0:P.duration)},project:w=>ro(w,d.value,f.value,p.value)}:sc)};function Bn(e,t=0){return e.transition().duration(t)}function Pn(e,t){if(t){const n=e.position.x+e.dimensions.width-t.dimensions.width,o=e.position.y+e.dimensions.height-t.dimensions.height;if(n>0||o>0||e.position.x<0||e.position.y<0){let r={};if(ve(t.style)?r={...t.style(t)}:t.style&&(r={...t.style}),r.width=r.width??`${t.dimensions.width}px`,r.height=r.height??`${t.dimensions.height}px`,n>0)if(be(r.width)){const i=Number(r.width.replace("px",""));r.width=`${i+n}px`}else r.width+=n;if(o>0)if(be(r.height)){const i=Number(r.height.replace("px",""));r.height=`${i+o}px`}else r.height+=o;if(e.position.x<0){const i=Math.abs(e.position.x);if(t.position.x=t.position.x-i,be(r.width)){const l=Number(r.width.replace("px",""));r.width=`${l+i}px`}else r.width+=i;e.position.x=0}if(e.position.y<0){const i=Math.abs(e.position.y);if(t.position.y=t.position.y-i,be(r.height)){const l=Number(r.height.replace("px",""));r.height=`${l+i}px`}else r.height+=i;e.position.y=0}t.dimensions.width=Number(r.width.toString().replace("px","")),t.dimensions.height=Number(r.height.toString().replace("px","")),ve(t.style)?t.style=i=>{const l=t.style;return{...l(i),...r}}:t.style={...t.style,...r}}}}function Tr(e,t){e.filter(o=>o.type==="add"||o.type==="remove").forEach(o=>{if(o.type==="add")t.findIndex(r=>r.id===o.item.id)===-1&&t.push(o.item);else if(o.type==="remove"){const r=t.findIndex(i=>i.id===o.id);r!==-1&&t.splice(r,1)}});const n=t.map(o=>o.id);return t.forEach(o=>{var r,i;const l=e.filter(s=>s.id===o.id);for(const s of l)switch(s.type){case"select":o.selected=s.selected;break;case"position":if(ze(o)&&(typeof s.position<"u"&&(o.position=s.position),typeof s.dragging<"u"&&(o.dragging=s.dragging),o.expandParent&&o.parentNode)){const u=t[n.indexOf(o.parentNode)];u&&ze(u)&&Pn(o,u)}break;case"dimensions":if(ze(o)){if(typeof s.dimensions<"u"&&(o.dimensions=s.dimensions),typeof s.updateStyle<"u"&&(o.style={...o.style||{},width:`${(r=s.dimensions)==null?void 0:r.width}px`,height:`${(i=s.dimensions)==null?void 0:i.height}px`}),typeof s.resizing<"u"&&(o.resizing=s.resizing),o.expandParent&&o.parentNode){const u=t[n.indexOf(o.parentNode)];u&&ze(u)&&(u.initialized?Pn(o,u):a.nextTick(()=>{Pn(o,u)}))}o.initialized||(o.initialized=!0)}break}}),t}function ke(e,t){return{id:e,type:"select",selected:t}}function Rr(e){return{item:e,type:"add"}}function In(e){return{id:e,type:"remove"}}function $n(e,t){return e.reduce((n,o)=>{let r=t.includes(o.id);oe(o.selectable)&&!o.selectable&&(r=!1);const i=ze(o)?"changedNodes":"changedEdges";return!o.selected&&r?n[i].push(ke(o.id,!0)):o.selected&&!r&&n[i].push(ke(o.id,!1)),n},{changedNodes:[],changedEdges:[]})}function cc(e,t,n,o){let r=!1;const i=uc(e,t),l=h=>{const m=h??n.value??[];e.hooks.updateNodeInternals.trigger(m)},s=h=>{if(h)return e.nodes&&!n.value.length?e.nodes.find(m=>m.id===h):e.nodes[n.value.indexOf(h)]},u=h=>{if(h)return e.edges&&!o.value.length?e.edges.find(m=>m.id===h):e.edges[o.value.indexOf(h)]},c=(h,m,I)=>{const T=[];h.forEach(V=>{var L,K;const W={id:V.id,type:"position",dragging:I,from:V.from};if(m&&(W.position=V.position,V.parentNode)){const J=s(V.parentNode);W.position={x:W.position.x-(((L=J==null?void 0:J.computedPosition)==null?void 0:L.x)??0),y:W.position.y-(((K=J==null?void 0:J.computedPosition)==null?void 0:K.y)??0)}}T.push(W)}),T!=null&&T.length&&e.hooks.nodesChange.trigger(T)},d=h=>{var m;if(!e.vueFlowRef)return;const I=e.vueFlowRef.querySelector(".vue-flow__transformationpane");if(!I)return;let T;if((m=e.__experimentalFeatures)!=null&&m.nestedFlow){let L=[I],K=I,W;for(;!W&&K;)K=K.parentElement,W=K==null?void 0:K.classList.contains("vue-flow__transformationpane"),W&&(L=[K,...L]);L.forEach(J=>{const Y=window.getComputedStyle(J),{m22:ae}=new window.DOMMatrixReadOnly(Y.transform);T?T*=ae:T=ae})}else{const L=window.getComputedStyle(I),{m22:K}=new window.DOMMatrixReadOnly(L.transform);T=K}const V=h.reduce((L,K)=>{const W=s(K.id);if(W){const J=st(K.nodeElement);J.width&&J.height&&(W.dimensions.width!==J.width||W.dimensions.height!==J.height||K.forceUpdate)&&(W.handleBounds.source=So(".source",K.nodeElement,T),W.handleBounds.target=So(".target",K.nodeElement,T),W.dimensions=J,W.initialized=!0,L.push({id:W.id,type:"dimensions",dimensions:J}))}return L},[]);e.fitViewOnInit&&!r&&(ue(()=>i.value.initialized).toBe(!0).then(()=>{i.value.fitView()}),r=!0),V.length&&e.hooks.nodesChange.trigger(V)},f=(h,m)=>{const I=h.map(L=>L.id);let T,V=[];if(e.multiSelectionActive)T=I.map(L=>ke(L,m));else{const L=$n([...e.nodes,...e.edges],I);T=L.changedNodes,V=L.changedEdges}T.length&&e.hooks.nodesChange.trigger(T),V.length&&e.hooks.edgesChange.trigger(V)},p=(h,m)=>{const I=h.map(L=>L.id);let T=[],V;if(e.multiSelectionActive)V=I.map(L=>ke(L,m));else{const L=$n([...e.nodes,...e.edges],I);T=L.changedNodes,V=L.changedEdges}T.length&&e.hooks.nodesChange.trigger(T),V.length&&e.hooks.edgesChange.trigger(V)},b=(h,m)=>{const I=h.filter(ut).map(K=>K.id),T=h.filter(De).map(K=>K.id);let{changedNodes:V,changedEdges:L}=$n([...e.nodes,...e.edges],[...I,...T]);e.multiSelectionActive&&(V=I.map(K=>ke(K,m)),L=T.map(K=>ke(K,m))),V.length&&e.hooks.nodesChange.trigger(V),L.length&&e.hooks.edgesChange.trigger(L)},v=h=>{f(h,!0)},x=h=>{p(h,!0)},k=h=>{b(h,!0)},E=h=>{if(!h.length)return f(h,!1);const m=h.map(I=>I.id).map(I=>ke(I,!1));m.length&&e.hooks.nodesChange.trigger(m)},B=h=>{if(!h.length)return p(h,!1);const m=h.map(I=>I.id).map(I=>ke(I,!1));m.length&&e.hooks.edgesChange.trigger(m)},G=h=>{if(!h||!h.length)return b([],!1);const{changedNodes:m,changedEdges:I}=h.reduce((T,V)=>{const L=ke(V.id,!1);return ut(V)?T.changedNodes.push(L):T.changedEdges.push(L),T},{changedNodes:[],changedEdges:[]});m.length&&e.hooks.nodesChange.trigger(m),I.length&&e.hooks.edgesChange.trigger(I)},w=h=>{var m;(m=e.d3Zoom)==null||m.scaleExtent([h,e.maxZoom]),e.minZoom=h},P=h=>{var m;(m=e.d3Zoom)==null||m.scaleExtent([e.minZoom,h]),e.maxZoom=h},D=h=>{var m;(m=e.d3Zoom)==null||m.translateExtent(h),e.translateExtent=h},g=h=>{e.nodeExtent=h,l(n.value)},_=h=>{e.nodesDraggable=h,e.nodesConnectable=h,e.elementsSelectable=h},N=h=>{const m=h instanceof Function?h(e.nodes):h;!e.initialized&&!m.length||(e.nodes=co(m,e.nodes,s,e.hooks.error.trigger))},C=h=>{const m=h instanceof Function?h(e.edges):h;if(!e.initialized&&!m.length)return;const I=e.isValidConnection?m.filter(T=>e.isValidConnection(T,{edges:e.edges,sourceNode:s(T.source),targetNode:s(T.target)})):m;e.edges=I.reduce((T,V)=>{const L=s(V.source),K=s(V.target),W=!L||typeof L>"u",J=!K||typeof K>"u";if(W&&J?e.hooks.error.trigger(new le(ie.EDGE_SOURCE_TARGET_MISSING,V.id,V.source,V.target)):(W&&e.hooks.error.trigger(new le(ie.EDGE_SOURCE_MISSING,V.id,V.source)),J&&e.hooks.error.trigger(new le(ie.EDGE_TARGET_MISSING,V.id,V.target))),W||J)return T;const Y=u(V.id);return T.push({...no(V,Object.assign({},Y,e.defaultEdgeOptions)),sourceNode:L,targetNode:K}),T},[])},$=h=>{const m=h instanceof Function?h([...e.nodes,...e.edges]):h;!e.initialized&&!m.length||(N(m.filter(ut)),C(m.filter(De)))},q=h=>{const m=h instanceof Function?h(e.nodes):h,I=co(m,e.nodes,s,e.hooks.error.trigger).map(Rr);I.length&&e.hooks.nodesChange.trigger(I)},ee=h=>{const m=h instanceof Function?h(e.edges):h,I=(e.isValidConnection?m.filter(T=>e.isValidConnection(T,{edges:e.edges,sourceNode:s(T.source),targetNode:s(T.target)})):m).reduce((T,V)=>{const L=_a({...V,...e.defaultEdgeOptions},e.edges,e.hooks.error.trigger);if(L){const K=s(L.source),W=s(L.target),J=!K||typeof K>"u",Y=!W||typeof W>"u";if(J&&Y?e.hooks.error.trigger(new le(ie.EDGE_SOURCE_TARGET_MISSING,L.id,L.source,L.target)):(J&&e.hooks.error.trigger(new le(ie.EDGE_SOURCE_MISSING,L.id,L.source)),Y&&e.hooks.error.trigger(new le(ie.EDGE_TARGET_MISSING,L.id,L.target))),J||Y)return T;T.push(Rr({...L,sourceNode:K,targetNode:W}))}return T},[]);I.length&&e.hooks.edgesChange.trigger(I)},y=(h,m=!0)=>{const I=h instanceof Function?h(e.nodes):h,T=[],V=[];I.forEach(L=>{const K=typeof L=="string"?s(L):L;if(!(oe(K.deletable)&&!K.deletable)&&(T.push(In(K.id)),m)){const W=ct([K],e.edges).filter(J=>oe(J.deletable)?J.deletable:!0);V.push(...W.map(J=>In(J.id)))}}),V.length&&e.hooks.edgesChange.trigger(V),T.length&&e.hooks.nodesChange.trigger(T)},z=h=>{const m=h instanceof Function?h(e.edges):h,I=[];m.forEach(T=>{const V=typeof T=="string"?u(T):T;oe(V.deletable)&&!V.deletable||I.push(In(typeof T=="string"?T:T.id))}),e.hooks.edgesChange.trigger(I)},S=(h,m,I=!0)=>Ea(h,m,e.edges,u,I,e.hooks.error.trigger),R=h=>Tr(h,e.nodes),F=h=>Tr(h,e.edges),U=(h,m,I,T=!1)=>{T?e.connectionClickStartHandle=h:e.connectionStartHandle=h,e.connectionEndHandle=null,e.connectionStatus=null,m&&(e.connectionPosition=m)},O=(h,m=null,I=null)=>{e.connectionStartHandle&&(e.connectionPosition=h,e.connectionEndHandle=m,e.connectionStatus=I)},H=(h,m)=>{e.connectionPosition={x:NaN,y:NaN},e.connectionStatus=null,m?e.connectionClickStartHandle=null:e.connectionStartHandle=null},A=h=>{const m=ga(h),I=m?null:s(h.id);return!m&&!I?[null,null,m]:[m?h:Jn(I),I,m]},Z=(h,m=!0,I)=>{const[T,V,L]=A(h);return T?(I||e.nodes).filter(K=>{if(!L&&(K.id===V.id||!K.computedPosition))return!1;const W=Jn(K),J=Jt(W,T);return m&&J>0||J>=Number(h.width)*Number(h.height)}):[]},Q=(h,m,I=!0)=>{const[T]=A(h);if(!T)return!1;const V=Jt(T,m);return I&&V>0||V>=Number(h.width)*Number(h.height)},te=h=>{const{viewport:m,dimensions:I,d3Zoom:T,d3Selection:V,translateExtent:L}=e;if(!T||!V||!h.x&&!h.y)return!1;const K=He.translate(m.x+h.x,m.y+h.y).scale(m.zoom),W=[[0,0],[I.width,I.height]],J=T.constrain()(K,W,L),Y=e.viewport.x!==J.x||e.viewport.y!==J.y||e.viewport.zoom!==J.k;return T.transform(V,J),Y},M=h=>{const m=h instanceof Function?h(e):h,I=["modelValue","nodes","edges","maxZoom","minZoom","translateExtent","nodeExtent","hooks","defaultEdgeOptions"],T=["d3Zoom","d3Selection","d3ZoomHandler","viewportRef","vueFlowRef","dimensions","hooks"];oe(m.defaultEdgeOptions)&&(e.defaultEdgeOptions=m.defaultEdgeOptions);const V=m.modelValue||m.nodes||m.edges?[]:void 0;V&&(m.modelValue&&V.push(...m.modelValue),m.nodes&&V.push(...m.nodes),m.edges&&V.push(...m.edges),$(V));const L=()=>{oe(m.maxZoom)&&P(m.maxZoom),oe(m.minZoom)&&w(m.minZoom),oe(m.translateExtent)&&D(m.translateExtent),oe(m.nodeExtent)&&g(m.nodeExtent)};Object.keys(m).forEach(K=>{const W=K,J=m[W];![...I,...T].includes(W)&&oe(J)&&(e[W]=J)}),e.d3Zoom?L():ue(()=>e.d3Zoom).not.toBeUndefined().then(L),e.initialized||(e.initialized=!0)};return{updateNodePositions:c,updateNodeDimensions:d,setElements:$,setNodes:N,setEdges:C,addNodes:q,addEdges:ee,removeNodes:y,removeEdges:z,findNode:s,findEdge:u,updateEdge:S,applyEdgeChanges:F,applyNodeChanges:R,addSelectedElements:k,addSelectedNodes:v,addSelectedEdges:x,setMinZoom:w,setMaxZoom:P,setTranslateExtent:D,setNodeExtent:g,removeSelectedElements:G,removeSelectedNodes:E,removeSelectedEdges:B,startConnection:U,updateConnection:O,endConnection:H,setInteractive:_,setState:M,getIntersectingNodes:Z,isNodeIntersecting:Q,panBy:te,fitView:async(h={padding:.1})=>{await ue(()=>i.value.initialized).toBe(!0),i.value.fitView(h)},zoomIn:async h=>{await ue(()=>i.value.initialized).toBe(!0),i.value.zoomIn(h)},zoomOut:async h=>{await ue(()=>i.value.initialized).toBe(!0),i.value.zoomOut(h)},zoomTo:async(h,m)=>{await ue(()=>i.value.initialized).toBe(!0),i.value.zoomTo(h,m)},setTransform:async(h,m)=>{await ue(()=>i.value.initialized).toBe(!0),i.value.setTransform(h,m)},getTransform:()=>i.value.getTransform(),setCenter:async(h,m,I)=>{await ue(()=>i.value.initialized).toBe(!0),i.value.setCenter(h,m,I)},fitBounds:async(h,m)=>{await ue(()=>i.value.initialized).toBe(!0),i.value.fitBounds(h,m)},project:h=>i.value.project(h),toObject:()=>JSON.parse(JSON.stringify({nodes:e.nodes.map(h=>{const{computedPosition:m,handleBounds:I,selected:T,dimensions:V,isParent:L,resizing:K,dragging:W,initialized:J,...Y}=h;return Y}),edges:e.edges.map(h=>{const{selected:m,sourceNode:I,targetNode:T,...V}=h;return V}),position:[e.viewport.x,e.viewport.y],zoom:e.viewport.zoom})),updateNodeInternals:l,$reset:()=>{const h=nr();if(e.edges=[],e.nodes=[],e.d3Zoom&&e.d3Selection){const m=He.translate(h.defaultViewport.x??0,h.defaultViewport.y??0).scale(Ce(h.defaultViewport.zoom??1,h.minZoom,h.maxZoom)),I=e.viewportRef.getBoundingClientRect(),T=[[0,0],[I.width,I.height]],V=e.d3Zoom.constrain()(m,T,h.translateExtent);e.d3Zoom.transform(e.d3Selection,V)}M(h)},$destroy:()=>{}}}class Ue{constructor(){this.currentId=0,this.flows=new Map}static getInstance(){return Ue.instance||(Ue.instance=new Ue),Ue.instance}set(t,n){return this.flows.set(t,n)}get(t){return this.flows.get(t)}remove(t){return this.flows.delete(t)}create(t,n){const o=nr(n),r=a.reactive(o),i=a.computed(()=>r.nodes.map(p=>p.id)),l=a.computed(()=>r.edges.map(p=>p.id)),s=ys(r,i,l),u=cc(r,s,i,l),c={};Object.entries(r.hooks).forEach(([p,b])=>{const v=`on${p.charAt(0).toUpperCase()+p.slice(1)}`;c[v]=b.on});const d={};Object.entries(r.hooks).forEach(([p,b])=>{d[p]=b.trigger}),u.setState(r);const f={...c,...s,...u,...a.toRefs(r),emits:d,id:t,vueFlowVersion:"1.19.4",$destroy:()=>{this.remove(t)}};return this.set(t,f),f}getId(){return`vue-flow-${this.currentId++}`}}const re=e=>{const t=Ue.getInstance(),n=a.getCurrentScope(),o=e==null?void 0:e.id,r=(n==null?void 0:n.vueFlowId)||o;let i,l=!1;if(n){const s=a.inject(fo,null);typeof s<"u"&&s!==null&&(i=s)}if(i||r&&(i=t.get(r)),!i||i&&o&&o!==i.id){const s=o??t.getId();i=t.create(s,e),n&&(l=!0)}else e&&i.setState(e);return n&&(a.provide(fo,i),n.vueFlowId=i.id,l&&je(()=>{if(i){const s=t.get(i.id);s?s.$destroy():qn(`No store instance found for id ${i.id} in storage.`)}})),i};function dc(e,t,n){const o=a.effectScope();return o.run(()=>{[()=>{o.run(()=>{let r,i,l=!!(n.nodes.value.length||n.edges.value.length);r=Oe([e.modelValue,()=>{var s,u;return(u=(s=e.modelValue)==null?void 0:s.value)==null?void 0:u.length}],([s])=>{s&&Array.isArray(s)&&(i==null||i.pause(),n.setElements(s),!i&&!l&&s.length?l=!0:i==null||i.resume())}),i=Oe([n.nodes,n.edges,()=>n.edges.value.length,()=>n.nodes.value.length],([s,u])=>{var c;(c=e.modelValue)!=null&&c.value&&Array.isArray(e.modelValue.value)&&(r==null||r.pause(),e.modelValue.value=[...s,...u],a.nextTick(()=>{r==null||r.resume()}))},{immediate:l}),a.onScopeDispose(()=>{r==null||r.stop(),i==null||i.stop()})})},()=>{o.run(()=>{let r,i,l=!!n.nodes.value.length;r=Oe([e.nodes,()=>{var s,u;return(u=(s=e.nodes)==null?void 0:s.value)==null?void 0:u.length}],([s])=>{s&&Array.isArray(s)&&(i==null||i.pause(),n.setNodes(s),!i&&!l&&s.length?l=!0:i==null||i.resume())}),i=Oe([n.nodes,()=>n.nodes.value.length],([s])=>{var u;(u=e.nodes)!=null&&u.value&&Array.isArray(e.nodes.value)&&(r==null||r.pause(),e.nodes.value=[...s],a.nextTick(()=>{r==null||r.resume()}))},{immediate:l}),a.onScopeDispose(()=>{r==null||r.stop(),i==null||i.stop()})})},()=>{o.run(()=>{let r,i,l=!!n.edges.value.length;r=Oe([e.edges,()=>{var s,u;return(u=(s=e.edges)==null?void 0:s.value)==null?void 0:u.length}],([s])=>{s&&Array.isArray(s)&&(i==null||i.pause(),n.setEdges(s),!i&&!l&&s.length?l=!0:i==null||i.resume())}),i=Oe([n.edges,()=>n.edges.value.length],([s])=>{var u;(u=e.edges)!=null&&u.value&&Array.isArray(e.edges.value)&&(r==null||r.pause(),e.edges.value=[...s],a.nextTick(()=>{r==null||r.resume()}))},{immediate:l}),a.onScopeDispose(()=>{r==null||r.stop(),i==null||i.stop()})})},()=>{o.run(()=>{a.watch(()=>t.minZoom,()=>{t.minZoom&&oe(t.minZoom)&&n.setMinZoom(t.minZoom)})})},()=>{o.run(()=>{a.watch(()=>t.maxZoom,()=>{t.maxZoom&&oe(t.maxZoom)&&n.setMaxZoom(t.maxZoom)})})},()=>{o.run(()=>{a.watch(()=>t.translateExtent,()=>{t.translateExtent&&oe(t.translateExtent)&&n.setTranslateExtent(t.translateExtent)})})},()=>{o.run(()=>{a.watch(()=>t.nodeExtent,()=>{t.nodeExtent&&oe(t.nodeExtent)&&n.setNodeExtent(t.nodeExtent)})})},()=>{o.run(()=>{a.watch(()=>t.applyDefault,()=>{oe(t.applyDefault)&&(n.applyDefault.value=t.applyDefault)}),a.watch(n.applyDefault,(r,i,l)=>{n.applyDefault.value?(n.onNodesChange(n.applyNodeChanges),n.onEdgesChange(n.applyEdgeChanges)):(n.hooks.value.nodesChange.off(n.applyNodeChanges),n.hooks.value.edgesChange.off(n.applyEdgeChanges)),l(()=>{n.hooks.value.nodesChange.off(n.applyNodeChanges),n.hooks.value.edgesChange.off(n.applyEdgeChanges)})},{immediate:!0})})},()=>{o.run(()=>{const r=async i=>{let l=i;ve(t.autoConnect)&&(l=await t.autoConnect(i)),l!==!1&&n.addEdges([l])};a.watch(()=>t.autoConnect,()=>{oe(t.autoConnect)&&(n.autoConnect.value=t.autoConnect)}),a.watch(n.autoConnect,(i,l,s)=>{i?n.onConnect(r):n.hooks.value.connect.off(r),s(()=>{n.hooks.value.connect.off(r)})},{immediate:!0})})},()=>{const r=["id","modelValue","translateExtent","nodeExtent","edges","nodes","maxZoom","minZoom","applyDefault","autoConnect"];Object.keys(t).forEach(i=>{if(!r.includes(i)){const l=a.toRef(t,i),s=n[i];o.run(()=>{a.watch(l,u=>{oe(u)&&(s.value=u)},{flush:"pre"})})}})}].forEach(r=>r())}),()=>o.stop()}function Or(e,t){return{x:e.clientX-t.left,y:e.clientY-t.top}}const fc={name:"Pane",compatConfig:{MODE:3}},hc=a.defineComponent({...fc,props:{isSelecting:{type:Boolean}},setup(e){const{id:t,vueFlowRef:n,getNodes:o,getEdges:r,viewport:i,emits:l,userSelectionActive:s,removeSelectedElements:u,panOnDrag:c,userSelectionRect:d,elementsSelectable:f,nodesSelectionActive:p,addSelectedElements:b,getSelectedEdges:v,getSelectedNodes:x,removeNodes:k,removeEdges:E,selectionMode:B,deleteKeyCode:G,multiSelectionKeyCode:w,multiSelectionActive:P}=re(),D=a.ref(null),g=a.ref(0),_=a.ref(0),N=a.ref(),C=a.computed(()=>f.value&&(e.isSelecting||s.value));qe(G,O=>{if(!O)return;const H=o.value.reduce((A,Z)=>((!Z.selected&&Z.parentNode&&A.find(Q=>Q.id===Z.parentNode)||Z.selected)&&A.push(Z),A),[]);(H||v.value)&&(v.value.length>0&&E(v.value),H.length>0&&k(H),p.value=!1,u())}),qe(w,O=>{P.value=O});function $(){s.value=!1,d.value=null,g.value=0,_.value=0}function q(O){O.target!==D.value||C.value||(l.paneClick(O),u(),p.value=!1)}function ee(O){var H;if(O.target===D.value){if(Array.isArray(c.value)&&(H=c.value)!=null&&H.includes(2)){O.preventDefault();return}l.paneContextMenu(O)}}function y(O){O.target===D.value&&l.paneScroll(O)}function z(O){if(N.value=n.value.getBoundingClientRect(),!C.value||!f||!e.isSelecting||O.button!==0||O.target!==D.value||!N.value)return;const{x:H,y:A}=Or(O,N.value);u(),d.value={width:0,height:0,startX:H,startY:A,x:H,y:A},s.value=!0,l.selectionStart(O)}function S(O){if(!C.value)return l.paneMouseMove(O);if(!e.isSelecting||!N.value||!d.value)return;s.value||(s.value=!0),p.value&&(p.value=!1);const H=Or(O,N.value),A=d.value.startX??0,Z=d.value.startY??0,Q={...d.value,x:H.x0,$(),l.selectionEnd(O))}function F(O){var H;if(!C.value)return l.paneMouseLeave(O);s.value&&(p.value=g.value>0,(H=l.selectionEnd)==null||H.call(l,O)),$()}function U(O){C.value||l.paneMouseEnter(O)}return(O,H)=>(a.openBlock(),a.createElementBlock("div",{ref_key:"container",ref:D,key:`pane-${a.unref(t)}`,class:a.normalizeClass(["vue-flow__pane vue-flow__container",{selection:e.isSelecting}]),onClick:q,onContextmenu:ee,onWheelPassive:y,onMouseenter:U,onMousedown:z,onMousemove:S,onMouseup:R,onMouseleave:F},[a.renderSlot(O.$slots,"default"),a.unref(s)&&a.unref(d)?(a.openBlock(),a.createBlock(hs,{key:0})):a.createCommentVNode("",!0),a.unref(p)&&a.unref(x).length?(a.openBlock(),a.createBlock(ds,{key:1})):a.createCommentVNode("",!0)],34))}}),pc={class:"vue-flow__nodes vue-flow__container"},gc={name:"Nodes",compatConfig:{MODE:3}},mc=a.defineComponent({...gc,setup(e){const t=a.inject(ft),n=re(),o=a.toRef(n,"nodesDraggable"),r=a.toRef(n,"nodesFocusable"),i=a.toRef(n,"elementsSelectable"),l=a.toRef(n,"nodesConnectable"),s=a.toRef(n,"getNodes"),u=a.toRef(n,"getNodesInitialized"),c=a.toRef(n,"getNodeTypes"),d=a.toRef(n,"updateNodeDimensions"),f=a.toRef(n,"emits");let p=a.ref();ue(()=>s.value.length>0&&u.value.length===s.value.length).toBe(!0).then(()=>{a.nextTick(()=>{f.value.nodesInitialized(u.value)})}),a.onMounted(()=>{p.value=new ResizeObserver(B=>{const G=B.map(w=>({id:w.target.getAttribute("data-id"),nodeElement:w.target,forceUpdate:!0}));d.value(G)})}),a.onBeforeUnmount(()=>{var B;return(B=p.value)==null?void 0:B.disconnect()});function b(B){return typeof B>"u"?o.value:B}function v(B){return typeof B>"u"?i.value:B}function x(B){return typeof B>"u"?l.value:B}function k(B){return typeof B>"u"?r.value:B}function E(B,G){const w=B||"default";let P=G??c.value[w];const D=a.getCurrentInstance();if(typeof P=="string"&&D){const _=Object.keys(D.appContext.components);_&&_.includes(w)&&(P=a.resolveComponent(w,!1))}return typeof P!="string"?P:(t==null?void 0:t[`node-${w}`])||(f.value.error(new le(ie.NODE_TYPE_MISSING,P)),!1)}return(B,G)=>(a.openBlock(),a.createElementBlock("div",pc,[a.unref(p)?(a.openBlock(!0),a.createElementBlock(a.Fragment,{key:0},a.renderList(a.unref(s),w=>(a.openBlock(),a.createBlock(a.unref(zl),{id:w.id,key:w.id,"resize-observer":a.unref(p),type:E(w.type,w.template),name:w.type||"default",draggable:b(w.draggable),selectable:v(w.selectable),connectable:x(w.connectable),focusable:k(w.focusable),node:w},null,8,["id","resize-observer","type","name","draggable","selectable","connectable","focusable","node"]))),128)):a.createCommentVNode("",!0)]))}}),yc=["id","markerWidth","markerHeight","markerUnits","orient"],vc=["stroke","stroke-width","fill"],wc=["stroke","stroke-width"],bc={name:"MarkerType",compatConfig:{MODE:3}},xc=a.defineComponent({...bc,props:{id:null,type:null,color:{default:"none"},width:{default:12.5},height:{default:12.5},markerUnits:{default:"strokeWidth"},orient:{default:"auto-start-reverse"},strokeWidth:{default:1}},setup(e){return(t,n)=>(a.openBlock(),a.createElementBlock("marker",{id:e.id,class:"vue-flow__arrowhead",viewBox:"-10 -10 20 20",refX:"0",refY:"0",markerWidth:`${e.width}`,markerHeight:`${e.height}`,markerUnits:e.markerUnits,orient:e.orient},[e.type===a.unref(tn).ArrowClosed?(a.openBlock(),a.createElementBlock("polyline",{key:0,stroke:e.color,"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":e.strokeWidth,fill:e.color,points:"-5,-4 0,0 -5,4 -5,-4"},null,8,vc)):a.createCommentVNode("",!0),e.type===a.unref(tn).Arrow?(a.openBlock(),a.createElementBlock("polyline",{key:1,stroke:e.color,"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":e.strokeWidth,fill:"none",points:"-5,-4 0,0 -5,4"},null,8,wc)):a.createCommentVNode("",!0)],8,yc))}}),_c={name:"MarkerDefinitions",compatConfig:{MODE:3}},Ec=a.defineComponent({..._c,setup(e){const t=re(),n=a.toRef(t,"id"),o=a.toRef(t,"edges"),r=a.toRef(t,"connectionLineOptions"),i=a.toRef(t,"defaultMarkerColor"),l=a.computed(()=>{const s=[],u=[],c=d=>{if(d){const f=Me(d,n.value);s.includes(f)||(typeof d=="object"?u.push({...d,id:f,color:d.color||i.value}):u.push({id:f,color:i.value,type:d}),s.push(f))}};return[r.value.markerEnd,r.value.markerStart].forEach(c),o.value.reduce((d,f)=>([f.markerStart,f.markerEnd].forEach(c),d.sort((p,b)=>p.id.localeCompare(b.id))),u),u});return(s,u)=>(a.openBlock(),a.createElementBlock("defs",null,[(a.openBlock(!0),a.createElementBlock(a.Fragment,null,a.renderList(a.unref(l),c=>(a.openBlock(),a.createBlock(xc,{id:c.id,key:c.id,type:c.type,color:c.color,width:c.width,height:c.height,markerUnits:c.markerUnits,"stroke-width":c.strokeWidth,orient:c.orient},null,8,["id","type","color","width","height","markerUnits","stroke-width","orient"]))),128))]))}}),kc={key:0,class:"vue-flow__edges vue-flow__connectionline vue-flow__container"},Sc={name:"Edges",compatConfig:{MODE:3}},Nc=a.defineComponent({...Sc,setup(e){const t=a.inject(ft),n=re(),o=a.toRef(n,"connectionStartHandle"),r=a.toRef(n,"nodesConnectable"),i=a.toRef(n,"edgesUpdatable"),l=a.toRef(n,"edgesFocusable"),s=a.toRef(n,"elementsSelectable"),u=a.toRef(n,"getSelectedNodes"),c=a.toRef(n,"findNode"),d=a.toRef(n,"edges"),f=a.toRef(n,"getEdges"),p=a.toRef(n,"getNodesInitialized"),b=a.toRef(n,"getEdgeTypes"),v=a.toRef(n,"elevateEdgesOnSelect"),x=a.toRef(n,"dimensions"),k=a.toRef(n,"emits"),E=Zt(()=>{var _;return(_=o.value)==null?void 0:_.nodeId},()=>{var _;return(_=o.value)!=null&&_.nodeId?c.value(o.value.nodeId):!1}),B=Zt(()=>{var _;return(_=o.value)==null?void 0:_.nodeId},()=>{var _,N;return!!(E.value&&(typeof E.value.connectable>"u"?r.value:E.value.connectable)&&(_=o.value)!=null&&_.nodeId&&(N=o.value)!=null&&N.type)}),G=Zt([()=>d.value.map(_=>_.zIndex),()=>v.value?[u.value.length]:[0],()=>v.value?p.value.map(_=>_.computedPosition.z):[]],()=>Ba(f.value,c.value,v.value));function w(_){return typeof _>"u"?s.value:_}function P(_){return typeof _>"u"?i.value:_}function D(_){return typeof _>"u"?l.value:_}function g(_,N){const C=_||"default";let $=N??b.value[C];const q=a.getCurrentInstance();if(typeof $=="string"&&q){const y=Object.keys(q.appContext.components);y&&y.includes(C)&&($=a.resolveComponent(C,!1))}return $&&typeof $!="string"?$:(t==null?void 0:t[`edge-${C}`])||(k.value.error(new le(ie.EDGE_TYPE_MISSING,$)),!1)}return(_,N)=>a.unref(x).width&&a.unref(x).height?(a.openBlock(),a.createElementBlock(a.Fragment,{key:0},[(a.openBlock(!0),a.createElementBlock(a.Fragment,null,a.renderList(a.unref(G),C=>(a.openBlock(),a.createElementBlock("svg",{key:C.level,class:"vue-flow__edges vue-flow__container",style:a.normalizeStyle(`z-index: ${C.level}`)},[C.isMaxLevel?(a.openBlock(),a.createBlock(Ec,{key:0})):a.createCommentVNode("",!0),a.createElementVNode("g",null,[(a.openBlock(!0),a.createElementBlock(a.Fragment,null,a.renderList(C.edges,$=>(a.openBlock(),a.createBlock(a.unref(ts),{id:$.id,key:$.id,edge:$,type:g($.type,$.template),name:$.type||"default",selectable:w($.selectable),updatable:P($.updatable),focusable:D($.focusable)},null,8,["id","edge","type","name","selectable","updatable","focusable"]))),128))])],4))),128)),a.unref(B)&&a.unref(E)?(a.openBlock(),a.createElementBlock("svg",kc,[a.createVNode(ss,{"source-node":a.unref(E)},null,8,["source-node"])])):a.createCommentVNode("",!0)],64)):a.createCommentVNode("",!0)}}),Cc=a.createElementVNode("div",{class:"vue-flow__edge-labels"},null,-1),Mc={name:"Transform",compatConfig:{MODE:3}},Bc=a.defineComponent({...Mc,setup(e){const{id:t,viewport:n,emits:o,d3Zoom:r,d3Selection:i,dimensions:l,...s}=re(),u=a.ref(!jt);return ue(()=>r.value&&i.value&&l.value.width>0&&l.value.height>0).toBeTruthy().then(()=>{o.paneReady({id:t,viewport:n,emits:o,d3Zoom:r,d3Selection:i,dimensions:l,...s}),setTimeout(()=>{u.value=!0},0)}),(c,d)=>(a.openBlock(),a.createElementBlock("div",{key:`transform-${a.unref(t)}`,class:"vue-flow__transformationpane vue-flow__container",style:a.normalizeStyle({transform:`translate(${a.unref(n).x}px,${a.unref(n).y}px) scale(${a.unref(n).zoom})`,opacity:a.unref(u)?void 0:0})},[a.createVNode(Nc),Cc,a.createVNode(mc),a.renderSlot(c.$slots,"default")],4))}}),Pc={name:"Viewport",compatConfig:{MODE:3}},Ic=a.defineComponent({...Pc,setup(e){const{id:t,minZoom:n,maxZoom:o,defaultViewport:r,translateExtent:i,dimensions:l,zoomActivationKeyCode:s,selectionKeyCode:u,panActivationKeyCode:c,panOnScroll:d,panOnScrollMode:f,panOnScrollSpeed:p,panOnDrag:b,zoomOnDoubleClick:v,zoomOnPinch:x,zoomOnScroll:k,preventScrolling:E,noWheelClassName:B,noPanClassName:G,emits:w,connectionStartHandle:P,userSelectionActive:D,paneDragging:g,d3Zoom:_,d3Selection:N,d3ZoomHandler:C,viewport:$,viewportRef:q}=re(),ee=a.ref(),y=a.ref(!1),z=a.ref(!1);let S=!1,R=0,F={x:0,y:0,zoom:0};const U=qe(c),O=a.computed(()=>!y.value&&b.value&&U.value),H=a.computed(()=>u.value!==!0&&y.value||u.value===!0&&!O.value);a.onMounted(()=>{ia(ee,te);const h=Qt();qt(h,"resize",te)}),a.onMounted(()=>{const h=ee.value,m=h.getBoundingClientRect(),I=lc().scaleExtent([n.value,o.value]).translateExtent(i.value),T=de(h).call(I),V=T.on("wheel.zoom"),L=He.translate(r.value.x??0,r.value.y??0).scale(Ce(r.value.zoom??1,n.value,o.value)),K=[[0,0],[m.width,m.height]],W=I.constrain()(L,K,i.value);I.transform(T,W),_.value=I,N.value=T,C.value=V,$.value={x:W.x,y:W.y,zoom:W.k},q.value=h,qe(u,Y=>{y.value=Y});const J=qe(s);a.watchEffect(()=>{y.value&&D.value&&!z.value?I.on("zoom",null):!y.value&&!D.value&&I.on("zoom",Y=>{$.value={x:Y.transform.x,y:Y.transform.y,zoom:Y.transform.k};const ae=Q(Y.transform);S=A(b.value,R??0),w.viewportChange(ae),w.move({event:Y,flowTransform:ae})})}),I.on("start",Y=>{var ae;if(!Y.sourceEvent)return null;R=Y.sourceEvent.button,z.value=!0;const Se=Q(Y.transform);((ae=Y.sourceEvent)==null?void 0:ae.type)==="mousedown"&&(g.value=!0),F=Se,w.viewportChangeStart(Se),w.moveStart({event:Y,flowTransform:Se})}),I.on("end",Y=>{if(!Y.sourceEvent)return null;if(z.value=!1,g.value=!1,A(b.value,R??0)&&!S&&w.paneContextMenu(Y.sourceEvent),S=!1,Z(F,Y.transform)){const ae=Q(Y.transform);F=ae,w.viewportChangeEnd(ae),w.moveEnd({event:Y,flowTransform:ae})}}),a.watchEffect(()=>{d.value&&!J.value&&!D.value?T.on("wheel.zoom",Y=>{if(M(Y,B.value))return!1;Y.preventDefault(),Y.stopImmediatePropagation();const ae=T.property("__zoom").k||1;if(Y.ctrlKey&&x.value){const On=pe(Y),Jc=-Y.deltaY*(Y.deltaMode===1?.05:Y.deltaMode?1:.002)*10,ed=ae*2**Jc;I.scaleTo(T,ed,On);return}const Se=Y.deltaMode===1?20:1,Ut=f.value===dt.Vertical?0:Y.deltaX*Se,Rn=f.value===dt.Horizontal?0:Y.deltaY*Se;I.translateBy(T,-(Ut/ae)*p.value,-(Rn/ae)*p.value)},{passive:!1}):typeof V<"u"&&T.on("wheel.zoom",function(Y,ae){if(!E.value||M(Y,B.value))return null;Y.preventDefault(),V.call(this,Y,ae)},{passive:!1})}),I.filter(Y=>{var ae,Se;const Ut=J.value||k.value,Rn=x.value&&Y.ctrlKey;if(Y.button===1&&Y.type==="mousedown"&&((ae=Y.target)!=null&&ae.closest(".vue-flow__node")||(Se=Y.target)!=null&&Se.closest(".vue-flow__edge")))return!0;if(!b.value&&!Ut&&!d.value&&!v.value&&!x.value||D.value||!v.value&&Y.type==="dblclick"||M(Y,B.value)&&Y.type==="wheel"||M(Y,G.value)&&Y.type!=="wheel"||!x.value&&Y.ctrlKey&&Y.type==="wheel"||!Ut&&!d.value&&!Rn&&Y.type==="wheel"||!b.value&&(Y.type==="mousedown"||Y.type==="touchstart")||Array.isArray(b.value)&&!b.value.includes(Y.button)&&(Y.type==="mousedown"||Y.type==="touchstart"))return!1;const On=Array.isArray(b.value)&&b.value.includes(Y.button)||!Y.button||Y.button<=1;return(!Y.ctrlKey||Y.type==="wheel")&&On})});function A(h,m){return m===2&&Array.isArray(h)&&h.includes(2)}function Z(h,m){return h.x!==m.x&&!isNaN(m.x)||h.y!==m.y&&!isNaN(m.y)||h.zoom!==m.k&&!isNaN(m.k)}function Q(h){return{x:h.x,y:h.y,zoom:h.k}}function te(){if(!ee.value)return;const{width:h,height:m}=st(ee.value);(h===0||m===0)&&w.error(new le(ie.MISSING_VIEWPORT_DIMENSIONS)),l.value.width=h||500,l.value.height=m||500}function M(h,m){return h.target.closest(`.${m}`)}return(h,m)=>(a.openBlock(),a.createElementBlock(a.Fragment,null,[(a.openBlock(),a.createElementBlock("div",{ref_key:"viewportEl",ref:ee,key:`viewport-${a.unref(t)}`,class:"vue-flow__viewport vue-flow__container"},[a.createVNode(hc,{"is-selecting":a.unref(H),class:a.normalizeClass({connecting:!!a.unref(P),dragging:a.unref(g),draggable:!!a.unref(b)})},{default:a.withCtx(()=>[a.createVNode(Bc,null,{default:a.withCtx(()=>[a.renderSlot(h.$slots,"zoom-pane")]),_:3})]),_:3},8,["is-selecting","class"])])),a.renderSlot(h.$slots,"default")],64))}}),$c=["id"],Tc=["id"],Rc=["id"],Oc={name:"A11yDescriptions",compatConfig:{MODE:3}},Dc=a.defineComponent({...Oc,setup(e){const{id:t,disableKeyboardA11y:n,ariaLiveMessage:o}=re(),r={position:"absolute",width:1,height:1,margin:-1,border:0,padding:0,overflow:"hidden",clip:"rect(0px, 0px, 0px, 0px)",clipPath:"inset(100%)"};return(i,l)=>(a.openBlock(),a.createElementBlock(a.Fragment,null,[a.createElementVNode("div",{id:`${a.unref(Go)}-${a.unref(t)}`,style:{display:"none"}}," Press enter or space to select a node. "+a.toDisplayString(a.unref(n)?"":"You can then use the arrow keys to move the node around.")+" You can then use the arrow keys to move the node around, press delete to remove it and press escape to cancel. ",9,$c),a.createElementVNode("div",{id:`${a.unref(Fo)}-${a.unref(t)}`,style:{display:"none"}}," Press enter or space to select an edge. You can then press delete to remove it or press escape to cancel. ",8,Tc),a.unref(n)?a.createCommentVNode("",!0):(a.openBlock(),a.createElementBlock("div",{key:0,id:`${a.unref(Tl)}-${a.unref(t)}`,"aria-live":"assertive","aria-atomic":"true",style:r},a.toDisplayString(a.unref(o)),9,Rc))],64))}}),zc={name:"VueFlow",compatConfig:{MODE:3}},Ac=a.defineComponent({...zc,props:{id:null,modelValue:null,nodes:null,edges:null,edgeTypes:null,nodeTypes:null,connectionMode:null,connectionLineType:null,connectionLineStyle:{default:void 0},connectionLineOptions:{default:void 0},connectionRadius:null,isValidConnection:{type:[Function,null],default:void 0},deleteKeyCode:null,selectionKeyCode:null,multiSelectionKeyCode:null,zoomActivationKeyCode:null,panActivationKeyCode:null,snapToGrid:{type:Boolean,default:void 0},snapGrid:null,onlyRenderVisibleElements:{type:Boolean,default:void 0},edgesUpdatable:{type:[Boolean,String],default:void 0},nodesDraggable:{type:Boolean,default:void 0},nodesConnectable:{type:Boolean,default:void 0},elementsSelectable:{type:Boolean,default:void 0},selectNodesOnDrag:{type:Boolean,default:void 0},panOnDrag:{type:[Boolean,Array],default:void 0},minZoom:null,maxZoom:null,defaultViewport:null,translateExtent:null,nodeExtent:null,defaultMarkerColor:null,zoomOnScroll:{type:Boolean,default:void 0},zoomOnPinch:{type:Boolean,default:void 0},panOnScroll:{type:Boolean,default:void 0},panOnScrollSpeed:null,panOnScrollMode:null,zoomOnDoubleClick:{type:Boolean,default:void 0},preventScrolling:{type:Boolean,default:void 0},selectionMode:null,edgeUpdaterRadius:null,fitViewOnInit:{type:Boolean,default:void 0},connectOnClick:{type:Boolean,default:void 0},applyDefault:{type:Boolean,default:void 0},autoConnect:{type:[Boolean,Function],default:void 0},noDragClassName:null,noWheelClassName:null,noPanClassName:null,defaultEdgeOptions:null,elevateEdgesOnSelect:{type:Boolean,default:void 0},elevateNodesOnSelect:{type:Boolean,default:void 0},disableKeyboardA11y:{type:Boolean,default:void 0},edgesFocusable:{type:Boolean,default:void 0},nodesFocusable:{type:Boolean,default:void 0},autoPanOnConnect:{type:Boolean,default:void 0},autoPanOnNodeDrag:{type:Boolean,default:void 0},__experimentalFeatures:null},emits:["nodesChange","edgesChange","nodeDoubleClick","nodeClick","nodeMouseEnter","nodeMouseMove","nodeMouseLeave","nodeContextMenu","nodeDragStart","nodeDrag","nodeDragStop","nodesInitialized","miniMapNodeClick","miniMapNodeDoubleClick","miniMapNodeMouseEnter","miniMapNodeMouseMove","miniMapNodeMouseLeave","connect","connectStart","connectEnd","clickConnectStart","clickConnectEnd","moveStart","move","moveEnd","selectionDragStart","selectionDrag","selectionDragStop","selectionContextMenu","selectionStart","selectionEnd","viewportChangeStart","viewportChange","viewportChangeEnd","paneReady","paneScroll","paneClick","paneContextMenu","paneMouseEnter","paneMouseMove","paneMouseLeave","edgeContextMenu","edgeMouseEnter","edgeMouseMove","edgeMouseLeave","edgeDoubleClick","edgeClick","edgeUpdateStart","edgeUpdate","edgeUpdateEnd","updateNodeInternals","error","update:modelValue","update:nodes","update:edges"],setup(e,{expose:t,emit:n}){const o=e,r=Ze(o,"modelValue",n),i=Ze(o,"nodes",n),l=Ze(o,"edges",n),{vueFlowRef:s,hooks:u,getNodeTypes:c,getEdgeTypes:d,...f}=re(o),p=dc({modelValue:r,nodes:i,edges:l},o,{vueFlowRef:s,hooks:u,getNodeTypes:c,getEdgeTypes:d,...f});ha(n,u);const b=a.ref();return a.provide(ft,a.useSlots()),a.onUnmounted(()=>{p()}),a.onMounted(()=>{s.value=b.value}),t({vueFlowRef:s,hooks:u,getNodeTypes:c,getEdgeTypes:d,...f}),(v,x)=>(a.openBlock(),a.createElementBlock("div",{ref_key:"el",ref:b,class:"vue-flow"},[a.createVNode(Ic,null,{nodes:a.withCtx(()=>[(a.openBlock(!0),a.createElementBlock(a.Fragment,null,a.renderList(Object.keys(a.unref(c)),k=>a.renderSlot(v.$slots,`node-${k}`)),256))]),edges:a.withCtx(()=>[(a.openBlock(!0),a.createElementBlock(a.Fragment,null,a.renderList(Object.keys(a.unref(d)),k=>a.renderSlot(v.$slots,`edge-${k}`)),256))]),"connection-name":a.withCtx(()=>[a.renderSlot(v.$slots,"connection-line")]),"zoom-pane":a.withCtx(()=>[a.renderSlot(v.$slots,"zoom-pane")]),default:a.withCtx(()=>[a.renderSlot(v.$slots,"default")]),_:3}),a.createVNode(Dc)],512))}}),nd="",od="",Vc={key:0,class:"label-input-wrapper"},Lc=a.defineComponent({__name:"EditableNode",props:{id:{},label:{},sourcePosition:{},targetPosition:{},data:{},type:{},selected:{type:Boolean},connectable:{type:[Boolean,String,Function]},position:{},dimensions:{},isValidTargetPos:{type:Function},isValidSourcePos:{type:Function},parent:{},dragging:{type:Boolean},resizing:{type:Boolean},zIndex:{},dragHandle:{},events:{}},emits:["change"],setup(e,{emit:t}){const n=e,o=t,r={top:j.Top,right:j.Right,bottom:j.Bottom,left:j.Left},i=a.computed(()=>r[n.sourcePosition]),l=a.computed(()=>r[n.targetPosition]),s=a.ref(),u=a.ref(""),c=a.ref(!1);let d=0;const f=()=>{let v=Date.now();v-d<500&&!c.value&&p(),d=v},p=async()=>{u.value=n.label,c.value=!0,await a.nextTick(),s.value.focus()},b=()=>{c.value=!1,o("change",u.value)};return(v,x)=>(a.openBlock(),a.createElementBlock("div",{onClick:x[2]||(x[2]=k=>f())},[a.createElementVNode("div",null,a.toDisplayString(n.label),1),c.value?(a.openBlock(),a.createElementBlock("div",Vc,[a.withDirectives(a.createElementVNode("input",{ref_key:"labelInput",ref:s,class:"label-input","onUpdate:modelValue":x[0]||(x[0]=k=>u.value=k),onBlur:x[1]||(x[1]=k=>c.value=!1),onKeypress:a.withKeys(b,["enter"])},null,544),[[a.vModelText,u.value]])])):a.createCommentVNode("",!0),n.data.hasInput?(a.openBlock(),a.createBlock(a.unref(Ve),{key:1,id:"a",type:"target",position:l.value},null,8,["position"])):a.createCommentVNode("",!0),n.data.hasOutput?(a.openBlock(),a.createBlock(a.unref(Ve),{key:2,id:"b",type:"source",position:i.value},null,8,["position"])):a.createCommentVNode("",!0)]))}}),rd="",Yc=["id","d","marker-end"],Xc={class:"vue-flow__edge-label"},Gc={key:0,class:"label-input-wrapper"},Fc={inheritAttrs:!1},Hc=a.defineComponent({...Fc,__name:"EditableEdge",props:{id:{},sourceX:{},sourceY:{},targetX:{},targetY:{},sourcePosition:{},targetPosition:{},data:{},markerEnd:{},style:{},label:{},sourceNode:{},targetNode:{},source:{},target:{},type:{},selected:{type:Boolean},sourceHandleId:{},targetHandleId:{},animated:{type:Boolean},updatable:{type:Boolean},markerStart:{},curvature:{},interactionWidth:{},events:{},labelStyle:{},labelShowBg:{type:Boolean},labelBgStyle:{},labelBgPadding:{},labelBgBorderRadius:{}},emits:["change"],setup(e,{emit:t}){const n=e;re();const o=t,r=a.ref(),i=a.ref(""),l=a.ref(!1);let s=0;const u=()=>{let p=Date.now();p-s<500&&!l.value&&c(),s=p},c=async()=>{i.value=n.label,l.value=!0,await a.nextTick(),r.value.focus()},d=()=>{l.value=!1,o("change",i.value)},f=a.computed(()=>Nt(n));return(p,b)=>(a.openBlock(),a.createElementBlock(a.Fragment,null,[a.createElementVNode("path",{id:p.id,style:a.normalizeStyle(p.style),class:"vue-flow__edge-path",d:f.value[0],"marker-end":p.markerEnd},null,12,Yc),a.createVNode(a.unref(rs),null,{default:a.withCtx(()=>[a.createElementVNode("div",{style:a.normalizeStyle({pointerEvents:"all",position:"absolute",transform:`translate(-50%, -50%) translate(${f.value[1]}px,${f.value[2]}px)`}),class:"nodrag nopan editable-edge-label",onClick:b[2]||(b[2]=v=>u())},[a.createElementVNode("div",Xc,a.toDisplayString(n.label),1),l.value?(a.openBlock(),a.createElementBlock("div",Gc,[a.withDirectives(a.createElementVNode("input",{ref_key:"labelInput",ref:r,class:"label-input","onUpdate:modelValue":b[0]||(b[0]=v=>i.value=v),onBlur:b[1]||(b[1]=v=>l.value=!1),onKeypress:a.withKeys(d,["enter"])},null,544),[[a.vModelText,i.value]])])):a.createCommentVNode("",!0)],4)]),_:1})],64))}}),ad="",Uc={class:"chart-controls"},jc={class:"chart-controls-left"},Zc=a.createElementVNode("b",null,"Selected Node:",-1),Kc={class:"chart-controls-right"},Wc={key:0},qc={key:1},Tn=a.defineComponent({__name:"NodeEditor",props:{modelValue:{},nodeContainerClass:{}},emits:["update:modelValue"],setup(e,{emit:t}){const n=e,o=t,r=a.ref(""),i=a.ref({}),l=a.ref(!1);a.ref({x:0,y:0});const s=a.ref(""),u=a.ref([]),c=a.computed(()=>{for(let g=0;g{let g=n.modelValue;n.nodeContainerClass?r.value=n.nodeContainerClass:r.value="defaultContainerClass";for(let _=0;_{s.value=N}}}return g},set:g=>{o("update:modelValue",JSON.parse(JSON.stringify(g)))}}),{getNodes:f,onPaneReady:p}=re({});p(g=>{i.value=g}),u.value=d.value,a.onMounted(()=>{document.removeEventListener("keypress",E),document.addEventListener("keypress",E)}),a.onBeforeUnmount(()=>{document.removeEventListener("keypress",E)});const b=g=>({top:"right",right:"bottom",bottom:"left",left:"top"})[g],v=()=>{c.value>-1&&(u.value[c.value].sourcePosition=b(u.value[c.value].sourcePosition))},x=()=>{c.value>-1&&(u.value[c.value].targetPosition=b(u.value[c.value].targetPosition))},k=g=>{window.scrollBy(0,g.deltaY)},E=g=>{l.value&&g.ctrlKey==!0&&((g.key=="+"||g.key=="=")&&i.value.zoomIn(),g.key=="-"&&i.value.zoomOut())},B=()=>{i.value.fitView()},G=()=>{let g={x:Math.random()*200,y:Math.random()*200},_=!1;if(c.value>-1){const $=u.value[c.value];$.data.hasOutput&&(g={x:$.position.x+200,y:$.position.y+50},_=!0)}let N=u.value.length,C=`node-${N}`;if(u.value.push({id:C,label:"Node "+N,sourcePosition:"right",targetPosition:"left",class:"vue-flow__node-default",type:"editable",data:{hasInput:!0,hasOutput:!0},events:{click:()=>{s.value=C}},position:g}),_){let $=`edge-${N+1}`;u.value.push({id:$,source:s.value,target:C,type:"editable",label:`EDGE ${N+1}`,animated:!0,events:{click:()=>{s.value=$}}})}},w=g=>{console.log("edge connect",g)},P=g=>{console.log("edge double click",g)},D=(g,_)=>{for(let N=0;N(a.openBlock(),a.createElementBlock("div",{class:a.normalizeClass(["node-editor-wrapper",r.value]),onMouseover:_[8]||(_[8]=N=>l.value=!0),onMouseleave:_[9]||(_[9]=N=>l.value=!1)},[a.createElementVNode("div",Uc,[a.createElementVNode("div",jc,[a.createElementVNode("div",null,[Zc,a.createTextVNode(" "+a.toDisplayString(s.value?s.value:"none"),1)])]),a.createElementVNode("div",Kc,[a.createElementVNode("div",null,[a.createElementVNode("button",{class:"button-default",onClick:_[0]||(_[0]=N=>G())},"Add Node")]),a.createElementVNode("div",null,[a.createElementVNode("button",{class:"button-default",onClick:_[1]||(_[1]=N=>B())},"Center")]),c.value>-1?(a.openBlock(),a.createElementBlock("div",Wc,[a.createElementVNode("button",{class:"button-default",onClick:_[2]||(_[2]=N=>x())},"Shift Input Position")])):a.createCommentVNode("",!0),c.value>-1?(a.openBlock(),a.createElementBlock("div",qc,[a.createElementVNode("button",{class:"button-default",onClick:_[3]||(_[3]=N=>v())},"Shift Output Position")])):a.createCommentVNode("",!0)])]),u.value&&u.value.length?(a.openBlock(),a.createBlock(a.unref(Ac),{key:0,onWheel:_[4]||(_[4]=a.withModifiers(N=>k(N),["prevent"])),class:"nowheel","prevent-scrolling":!0,"zoom-on-scroll":!1,"fit-view-on-init":!0,modelValue:u.value,"onUpdate:modelValue":_[5]||(_[5]=N=>u.value=N),onConnect:_[6]||(_[6]=N=>w(N)),onEdgeDoubleClick:_[7]||(_[7]=N=>P(N))},{"node-editable":a.withCtx(N=>[a.createVNode(Lc,a.mergeProps(N,{onChange:C=>D(C,N.id)}),null,16,["onChange"])]),"edge-editable":a.withCtx(N=>[a.createVNode(Hc,a.mergeProps(N,{onChange:C=>D(C,N.id)}),null,16,["onChange"])]),_:1},8,["modelValue"])):a.createCommentVNode("",!0)],34))}}),id="",Dr=a.defineComponent({__name:"StateEditor",props:["layout","nodeContainerClass","modelValue"],emits:["update:modelValue"],setup(e,{emit:t}){const n=e,o=t,r=a.computed({get:()=>{let l=n.modelValue,s={},u={},c=0,d=[];for(let f in l){d.length;let p={id:f,label:f,position:n.layout[f]&&n.layout[f].position?n.layout[f].position:{x:200*c,y:100},targetPosition:n.layout[f]&&n.layout[f].targetPosition?n.layout[f].targetPosition:"left",sourcePosition:n.layout[f]&&n.layout[f].sourcePosition?n.layout[f].sourcePosition:"right"};l[f].type&&l[f].type=="final"&&(p.type="output",p.class="default-output-node"),s[f]=p;let b=l[f].on;for(let v in l[f].on){let x=b[v];typeof x=="object"&&x.constructor===Object&&(x=x.target),d.push({id:`${f}-${b[v]}-${v}`,target:x,source:f,label:v,animated:!0}),u[x]=!0}c++}for(let f in s)u[f]||(s[f].type="input",s[f].class="default-input-node"),d.push(s[f]);return d},set:l=>{i(l)}}),i=l=>{let s={},u={},c={};for(let d=0;d(a.openBlock(),a.createElementBlock("div",null,[a.createVNode(Tn,{modelValue:r.value,"onUpdate:modelValue":s[0]||(s[0]=u=>r.value=u),"node-container-class":e.nodeContainerClass},null,8,["modelValue","node-container-class"])]))}});function Qc(e){e.component("NodeEditor",Tn),e.component("StateEditor",Dr)}ye.NodeEditor=Tn,ye.StateEditor=Dr,ye.install=Qc,Object.defineProperty(ye,Symbol.toStringTag,{value:"Module"})}); +//# sourceMappingURL=node-editor.umd.cjs.map diff --git a/node_editor/dist/node-editor.umd.cjs.map b/node_editor/dist/node-editor.umd.cjs.map new file mode 100644 index 00000000..0f316afa --- /dev/null +++ b/node_editor/dist/node-editor.umd.cjs.map @@ -0,0 +1 @@ +{"version":3,"file":"node-editor.umd.cjs","sources":["../../common/temp/node_modules/.pnpm/@vue-flow+core@1.19.4_vue@3.4.19/node_modules/@vue-flow/core/dist/vue-flow-core.mjs","../src/components/EditableNode.vue","../src/components/EditableEdge.vue","../src/components/NodeEditor.vue","../src/components/StateEditor.vue","../src/index.ts"],"sourcesContent":["import { unref as C, ref as ie, watch as de, customRef as br, getCurrentScope as hi, onScopeDispose as Vt, getCurrentInstance as on, onMounted as Ve, nextTick as Ue, readonly as Er, isRef as Sr, computed as J, onBeforeMount as Nr, markRaw as it, inject as He, defineComponent as ge, toRef as M, openBlock as oe, createElementBlock as se, normalizeClass as Ke, renderSlot as xe, h as ue, provide as ut, onBeforeUnmount as gi, normalizeStyle as Le, createCommentVNode as Ee, createElementVNode as ct, mergeProps as vi, createBlock as ze, resolveDynamicComponent as mi, Fragment as Ce, createTextVNode as Cr, toDisplayString as Vn, Teleport as Mr, normalizeProps as $r, reactive as kr, toRefs as Or, effectScope as Tr, renderList as dt, resolveComponent as pi, createVNode as qe, watchEffect as bo, withCtx as Fe, useSlots as Ir, onUnmounted as Pr } from \"vue\";\nvar Eo;\nconst oo = typeof window < \"u\", Dr = (e) => typeof e < \"u\", zr = (e) => typeof e == \"boolean\", Ae = (e) => typeof e == \"function\", Ie = (e) => typeof e == \"number\", Pe = (e) => typeof e == \"string\", Ar = () => {\n};\noo && ((Eo = window == null ? void 0 : window.navigator) != null && Eo.userAgent) && /iP(ad|hone|od)/.test(window.navigator.userAgent);\nfunction le(e) {\n return typeof e == \"function\" ? e() : C(e);\n}\nfunction Br(e, t) {\n function n(...o) {\n return new Promise((i, r) => {\n Promise.resolve(e(() => t.apply(this, o), { fn: t, thisArg: this, args: o })).then(i).catch(r);\n });\n }\n return n;\n}\nconst yi = (e) => e();\nfunction Rr(e = yi) {\n const t = ie(!0);\n function n() {\n t.value = !1;\n }\n function o() {\n t.value = !0;\n }\n const i = (...r) => {\n t.value && e(...r);\n };\n return { isActive: Er(t), pause: n, resume: o, eventFilter: i };\n}\nfunction So(e, t = !1, n = \"Timeout\") {\n return new Promise((o, i) => {\n setTimeout(t ? () => i(n) : o, e);\n });\n}\nfunction Vr(e) {\n return e;\n}\nfunction Sn(e, t) {\n let n, o, i;\n const r = ie(!0), a = () => {\n r.value = !0, i();\n };\n de(e, a, { flush: \"sync\" });\n const s = Ae(t) ? t : t.get, l = Ae(t) ? void 0 : t.set, u = br((c, v) => (o = c, i = v, {\n get() {\n return r.value && (n = s(), r.value = !1), o(), n;\n },\n set(g) {\n l == null || l(g);\n }\n }));\n return Object.isExtensible(u) && (u.trigger = a), u;\n}\nfunction Mt(e) {\n return hi() ? (Vt(e), !0) : !1;\n}\nfunction Hr(e, t = !0) {\n on() ? Ve(e) : t ? e() : Ue(e);\n}\nfunction Hn(e, t = !1) {\n function n(v, { flush: g = \"sync\", deep: x = !1, timeout: h, throwOnTimeout: d } = {}) {\n let w = null;\n const S = [new Promise((V) => {\n w = de(e, (p) => {\n v(p) !== t && (w == null || w(), V(p));\n }, {\n flush: g,\n deep: x,\n immediate: !0\n });\n })];\n return h != null && S.push(So(h, d).then(() => le(e)).finally(() => w == null ? void 0 : w())), Promise.race(S);\n }\n function o(v, g) {\n if (!Sr(v))\n return n((p) => p === v, g);\n const { flush: x = \"sync\", deep: h = !1, timeout: d, throwOnTimeout: w } = g ?? {};\n let y = null;\n const V = [new Promise((p) => {\n y = de([e, v], ([N, T]) => {\n t !== (N === T) && (y == null || y(), p(N));\n }, {\n flush: x,\n deep: h,\n immediate: !0\n });\n })];\n return d != null && V.push(So(d, w).then(() => le(e)).finally(() => (y == null || y(), le(e)))), Promise.race(V);\n }\n function i(v) {\n return n((g) => Boolean(g), v);\n }\n function r(v) {\n return o(null, v);\n }\n function a(v) {\n return o(void 0, v);\n }\n function s(v) {\n return n(Number.isNaN, v);\n }\n function l(v, g) {\n return n((x) => {\n const h = Array.from(x);\n return h.includes(v) || h.includes(le(v));\n }, g);\n }\n function u(v) {\n return c(1, v);\n }\n function c(v = 1, g) {\n let x = -1;\n return n(() => (x += 1, x >= v), g);\n }\n return Array.isArray(le(e)) ? {\n toMatch: n,\n toContains: l,\n changed: u,\n changedTimes: c,\n get not() {\n return Hn(e, !t);\n }\n } : {\n toMatch: n,\n toBe: o,\n toBeTruthy: i,\n toBeNull: r,\n toBeNaN: s,\n toBeUndefined: a,\n changed: u,\n changedTimes: c,\n get not() {\n return Hn(e, !t);\n }\n };\n}\nfunction ye(e) {\n return Hn(e);\n}\nvar No = Object.getOwnPropertySymbols, Lr = Object.prototype.hasOwnProperty, Gr = Object.prototype.propertyIsEnumerable, Fr = (e, t) => {\n var n = {};\n for (var o in e)\n Lr.call(e, o) && t.indexOf(o) < 0 && (n[o] = e[o]);\n if (e != null && No)\n for (var o of No(e))\n t.indexOf(o) < 0 && Gr.call(e, o) && (n[o] = e[o]);\n return n;\n};\nfunction Yr(e, t, n = {}) {\n const o = n, {\n eventFilter: i = yi\n } = o, r = Fr(o, [\n \"eventFilter\"\n ]);\n return de(e, Br(i, t), r);\n}\nvar Xr = Object.defineProperty, Zr = Object.defineProperties, Ur = Object.getOwnPropertyDescriptors, Yt = Object.getOwnPropertySymbols, xi = Object.prototype.hasOwnProperty, _i = Object.prototype.propertyIsEnumerable, Co = (e, t, n) => t in e ? Xr(e, t, { enumerable: !0, configurable: !0, writable: !0, value: n }) : e[t] = n, Wr = (e, t) => {\n for (var n in t || (t = {}))\n xi.call(t, n) && Co(e, n, t[n]);\n if (Yt)\n for (var n of Yt(t))\n _i.call(t, n) && Co(e, n, t[n]);\n return e;\n}, Kr = (e, t) => Zr(e, Ur(t)), qr = (e, t) => {\n var n = {};\n for (var o in e)\n xi.call(e, o) && t.indexOf(o) < 0 && (n[o] = e[o]);\n if (e != null && Yt)\n for (var o of Yt(e))\n t.indexOf(o) < 0 && _i.call(e, o) && (n[o] = e[o]);\n return n;\n};\nfunction tt(e, t, n = {}) {\n const o = n, {\n eventFilter: i\n } = o, r = qr(o, [\n \"eventFilter\"\n ]), { eventFilter: a, pause: s, resume: l, isActive: u } = Rr(i);\n return { stop: Yr(e, t, Kr(Wr({}, r), {\n eventFilter: a\n })), pause: s, resume: l, isActive: u };\n}\nfunction wi(e) {\n var t;\n const n = le(e);\n return (t = n == null ? void 0 : n.$el) != null ? t : n;\n}\nconst io = oo ? window : void 0;\nfunction ro(...e) {\n let t, n, o, i;\n if (Pe(e[0]) || Array.isArray(e[0]) ? ([n, o, i] = e, t = io) : [t, n, o, i] = e, !t)\n return Ar;\n Array.isArray(n) || (n = [n]), Array.isArray(o) || (o = [o]);\n const r = [], a = () => {\n r.forEach((c) => c()), r.length = 0;\n }, s = (c, v, g, x) => (c.addEventListener(v, g, x), () => c.removeEventListener(v, g, x)), l = de(() => [wi(t), le(i)], ([c, v]) => {\n a(), c && r.push(...n.flatMap((g) => o.map((x) => s(c, g, x, v))));\n }, { immediate: !0, flush: \"post\" }), u = () => {\n l(), a();\n };\n return Mt(u), u;\n}\nconst jr = (e) => typeof e == \"function\" ? e : typeof e == \"string\" ? (t) => t.key === e : Array.isArray(e) ? (t) => e.includes(t.key) : () => !0;\nfunction Mo(...e) {\n let t, n, o = {};\n e.length === 3 ? (t = e[0], n = e[1], o = e[2]) : e.length === 2 ? typeof e[1] == \"object\" ? (t = !0, n = e[0], o = e[1]) : (t = e[0], n = e[1]) : (t = !0, n = e[0]);\n const { target: i = io, eventName: r = \"keydown\", passive: a = !1 } = o, s = jr(t);\n return ro(i, r, (u) => {\n s(u) && n(u);\n }, a);\n}\nfunction Qr(e, t = !1) {\n const n = ie(), o = () => n.value = Boolean(e());\n return o(), Hr(o, t), n;\n}\nfunction Jr(e) {\n return JSON.parse(JSON.stringify(e));\n}\nconst Ln = typeof globalThis < \"u\" ? globalThis : typeof window < \"u\" ? window : typeof global < \"u\" ? global : typeof self < \"u\" ? self : {}, Gn = \"__vueuse_ssr_handlers__\";\nLn[Gn] = Ln[Gn] || {};\nLn[Gn];\nvar $o = Object.getOwnPropertySymbols, ea = Object.prototype.hasOwnProperty, ta = Object.prototype.propertyIsEnumerable, na = (e, t) => {\n var n = {};\n for (var o in e)\n ea.call(e, o) && t.indexOf(o) < 0 && (n[o] = e[o]);\n if (e != null && $o)\n for (var o of $o(e))\n t.indexOf(o) < 0 && ta.call(e, o) && (n[o] = e[o]);\n return n;\n};\nfunction oa(e, t, n = {}) {\n const o = n, { window: i = io } = o, r = na(o, [\"window\"]);\n let a;\n const s = Qr(() => i && \"ResizeObserver\" in i), l = () => {\n a && (a.disconnect(), a = void 0);\n }, u = de(() => wi(e), (v) => {\n l(), s.value && i && v && (a = new ResizeObserver(t), a.observe(v, r));\n }, { immediate: !0, flush: \"post\" }), c = () => {\n l(), u();\n };\n return Mt(c), {\n isSupported: s,\n stop: c\n };\n}\nvar ko;\n(function(e) {\n e.UP = \"UP\", e.RIGHT = \"RIGHT\", e.DOWN = \"DOWN\", e.LEFT = \"LEFT\", e.NONE = \"NONE\";\n})(ko || (ko = {}));\nvar ia = Object.defineProperty, Oo = Object.getOwnPropertySymbols, ra = Object.prototype.hasOwnProperty, aa = Object.prototype.propertyIsEnumerable, To = (e, t, n) => t in e ? ia(e, t, { enumerable: !0, configurable: !0, writable: !0, value: n }) : e[t] = n, sa = (e, t) => {\n for (var n in t || (t = {}))\n ra.call(t, n) && To(e, n, t[n]);\n if (Oo)\n for (var n of Oo(t))\n aa.call(t, n) && To(e, n, t[n]);\n return e;\n};\nconst la = {\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};\nsa({\n linear: Vr\n}, la);\nfunction yt(e, t, n, o = {}) {\n var i, r, a;\n const {\n clone: s = !1,\n passive: l = !1,\n eventName: u,\n deep: c = !1,\n defaultValue: v\n } = o, g = on(), x = n || (g == null ? void 0 : g.emit) || ((i = g == null ? void 0 : g.$emit) == null ? void 0 : i.bind(g)) || ((a = (r = g == null ? void 0 : g.proxy) == null ? void 0 : r.$emit) == null ? void 0 : a.bind(g == null ? void 0 : g.proxy));\n let h = u;\n t || (t = \"modelValue\"), h = u || h || `update:${t.toString()}`;\n const d = (y) => s ? Ae(s) ? s(y) : Jr(y) : y, w = () => Dr(e[t]) ? d(e[t]) : v;\n if (l) {\n const y = w(), S = ie(y);\n return de(() => e[t], (V) => S.value = d(V)), de(S, (V) => {\n (V !== e[t] || c) && x(h, V);\n }, { deep: c }), S;\n } else\n return J({\n get() {\n return w();\n },\n set(y) {\n x(h, y);\n }\n });\n}\nfunction X(e = () => {\n}) {\n const t = ie(/* @__PURE__ */ new Set());\n e && t.value.add(e);\n const n = (r) => {\n t.value.delete(r);\n };\n return {\n on: (r) => {\n t.value.has(e) && t.value.delete(e), t.value.add(r);\n const a = () => n(r);\n return Mt(a), {\n off: a\n };\n },\n off: n,\n trigger: (r) => Promise.all(Array.from(t.value).map((a) => a(r))),\n fns: t\n };\n}\nconst ua = [\"production\", \"prod\"];\nfunction wt(e, ...t) {\n ua.includes(process.env.NODE_ENV || \"\") || console.warn(`[Vue Flow]: ${e}`, ...t);\n}\nfunction ca() {\n return {\n edgesChange: X(),\n nodesChange: X(),\n nodeDoubleClick: X(),\n nodeClick: X(),\n nodeMouseEnter: X(),\n nodeMouseMove: X(),\n nodeMouseLeave: X(),\n nodeContextMenu: X(),\n nodeDragStart: X(),\n nodeDrag: X(),\n nodeDragStop: X(),\n nodesInitialized: X(),\n miniMapNodeClick: X(),\n miniMapNodeDoubleClick: X(),\n miniMapNodeMouseEnter: X(),\n miniMapNodeMouseMove: X(),\n miniMapNodeMouseLeave: X(),\n connect: X(),\n connectStart: X(),\n connectEnd: X(),\n clickConnectStart: X(),\n clickConnectEnd: X(),\n paneReady: X(),\n move: X(),\n moveStart: X(),\n moveEnd: X(),\n selectionDragStart: X(),\n selectionDrag: X(),\n selectionDragStop: X(),\n selectionContextMenu: X(),\n selectionStart: X(),\n selectionEnd: X(),\n viewportChangeStart: X(),\n viewportChange: X(),\n viewportChangeEnd: X(),\n paneScroll: X(),\n paneClick: X(),\n paneContextMenu: X(),\n paneMouseEnter: X(),\n paneMouseMove: X(),\n paneMouseLeave: X(),\n edgeContextMenu: X(),\n edgeMouseEnter: X(),\n edgeMouseMove: X(),\n edgeMouseLeave: X(),\n edgeDoubleClick: X(),\n edgeClick: X(),\n edgeUpdateStart: X(),\n edgeUpdate: X(),\n edgeUpdateEnd: X(),\n updateNodeInternals: X(),\n error: X((e) => wt(e.message))\n };\n}\nfunction da(e, t) {\n Nr(() => {\n for (const [n, o] of Object.entries(t.value)) {\n const i = (r) => {\n e(n, r);\n };\n o.on(i), Mt(() => {\n o.off(i);\n });\n }\n });\n}\nvar he = /* @__PURE__ */ ((e) => (e.MISSING_VIEWPORT_DIMENSIONS = \"MISSING_VIEWPORT_DIMENSIONS\", e.NODE_NOT_FOUND = \"NODE_NOT_FOUND\", e.NODE_MISSING_PARENT = \"NODE_MISSING_PARENT\", e.NODE_TYPE_MISSING = \"NODE_TYPE_MISSING\", e.NODE_EXTENT_INVALID = \"NODE_EXTENT_INVALID\", e.EDGE_INVALID = \"EDGE_INVALID\", e.EDGE_NOT_FOUND = \"EDGE_NOT_FOUND\", e.EDGE_SOURCE_MISSING = \"EDGE_SOURCE_MISSING\", e.EDGE_TARGET_MISSING = \"EDGE_TARGET_MISSING\", e.EDGE_TYPE_MISSING = \"EDGE_TYPE_MISSING\", e.EDGE_SOURCE_TARGET_SAME = \"EDGE_SOURCE_TARGET_SAME\", e.EDGE_SOURCE_TARGET_MISSING = \"EDGE_SOURCE_TARGET_MISSING\", e.EDGE_ORPHANED = \"EDGE_ORPHANED\", e))(he || {});\nconst Nn = {\n MISSING_VIEWPORT_DIMENSIONS: () => \"The Vue Flow parent container needs a width and a height to render the graph\",\n NODE_NOT_FOUND: (e) => `Node not found\nNode: ${e}`,\n NODE_MISSING_PARENT: (e, t) => `Node is missing a parent\nNode: ${e}\nParent: ${t}`,\n NODE_TYPE_MISSING: (e) => `Node type is missing\nType: ${e}`,\n NODE_EXTENT_INVALID: (e) => `Only child nodes can use a parent extent\nNode: ${e}`,\n EDGE_INVALID: (e) => `An edge needs a source and a target\nEdge: ${e}`,\n EDGE_SOURCE_MISSING: (e, t) => `Edge source is missing\nEdge: ${e} \nSource: ${t}`,\n EDGE_TARGET_MISSING: (e, t) => `Edge target is missing\nEdge: ${e} \nTarget: ${t}`,\n EDGE_TYPE_MISSING: (e) => `Edge type is missing\nType: ${e}`,\n EDGE_SOURCE_TARGET_SAME: (e, t, n) => `Edge source and target are the same\nEdge: ${e} \nSource: ${t} \nTarget: ${n}`,\n EDGE_SOURCE_TARGET_MISSING: (e, t, n) => `Edge source or target is missing\nEdge: ${e} \nSource: ${t} \nTarget: ${n}`,\n EDGE_ORPHANED: (e) => `Edge was orphaned (suddenly missing source or target) and has been removed\nEdge: ${e}`,\n EDGE_NOT_FOUND: (e) => `Edge not found\nEdge: ${e}`\n};\nclass ve extends Error {\n constructor(t, ...n) {\n var o;\n super((o = Nn[t]) == null ? void 0 : o.call(Nn, ...n)), this.code = t;\n }\n}\nconst ao = () => typeof window < \"u\" ? window : { chrome: !1 };\nfunction Io(e) {\n return {\n ...e.computedPosition || { x: 0, y: 0 },\n width: e.dimensions.width || 0,\n height: e.dimensions.height || 0\n };\n}\nfunction Fn(e, t) {\n const n = Math.max(0, Math.min(e.x + e.width, t.x + t.width) - Math.max(e.x, t.x)), o = Math.max(0, Math.min(e.y + e.height, t.y + t.height) - Math.max(e.y, t.y));\n return Math.ceil(n * o);\n}\nfunction rn(e) {\n return {\n width: e.offsetWidth,\n height: e.offsetHeight\n };\n}\nfunction je(e, t = 0, n = 1) {\n return Math.min(Math.max(e, t), n);\n}\nfunction so(e, t) {\n return {\n x: je(e.x, t[0][0], t[1][0]),\n y: je(e.y, t[0][1], t[1][1])\n };\n}\nfunction Po(e) {\n const t = e.getRootNode(), n = ao();\n return \"elementFromPoint\" in t ? t : n.document;\n}\nfunction $e(e) {\n return e && \"id\" in e && \"source\" in e && \"target\" in e;\n}\nfunction fa(e) {\n return $e(e) && \"sourceNode\" in e && \"targetNode\" in e;\n}\nfunction xt(e) {\n return e && \"id\" in e && !$e(e);\n}\nfunction nt(e) {\n return xt(e) && \"computedPosition\" in e;\n}\nfunction ha(e) {\n return !!e.width && !!e.height && !!e.x && !!e.y;\n}\nfunction ga(e, t = {}) {\n let n = t;\n return nt(e) || (n = {\n type: e.type ?? t.type ?? \"default\",\n dimensions: it({\n width: 0,\n height: 0\n }),\n handleBounds: {\n source: [],\n target: []\n },\n computedPosition: it({\n z: 0,\n ...e.position\n }),\n draggable: void 0,\n selectable: void 0,\n connectable: void 0,\n focusable: void 0,\n selected: !1,\n dragging: !1,\n resizing: !1,\n initialized: !1,\n ...t,\n data: ce(e.data) ? e.data : {},\n events: it(ce(e.events) ? e.events : {})\n }), Object.assign({}, n, e, { id: e.id.toString() });\n}\nfunction lo(e, t = {}) {\n const n = ce(e.events) ? e.events : t.events && ce(t.events) ? t.events : {}, o = ce(e.data) ? e.data : t.data && ce(t.data) ? t.data : {};\n return t = fa(e) ? t : {\n ...t,\n sourceHandle: (e.sourceHandle ? e.sourceHandle.toString() : void 0) || t.sourceHandle,\n targetHandle: (e.targetHandle ? e.targetHandle.toString() : void 0) || t.targetHandle,\n type: e.type ?? t.type ?? \"default\",\n source: e.source.toString() || t.source,\n target: e.target.toString() || t.target,\n updatable: e.updatable ?? t.updatable,\n selectable: e.selectable ?? t.selectable,\n focusable: e.focusable ?? t.focusable,\n data: o,\n events: it(n),\n label: (e.label && !Pe(e.label) ? it(e.label) : e.label) || t.label,\n interactionWidth: e.interactionWidth || t.interactionWidth\n }, Object.assign({}, t, e, { id: e.id.toString() });\n}\nfunction bi(e, t, n) {\n if (!xt(e))\n return [];\n const o = n === \"source\" ? \"target\" : \"source\", i = t.filter((r) => $e(r) && r[o] === e.id).map((r) => $e(r) && r[n]);\n return t.filter((r) => i.includes(r.id));\n}\nfunction Pd(e, t) {\n return bi(e, t, \"target\");\n}\nfunction Dd(e, t) {\n return bi(e, t, \"source\");\n}\nfunction an({ source: e, sourceHandle: t, target: n, targetHandle: o }) {\n return `vueflow__edge-${e}${t ?? \"\"}-${n}${o ?? \"\"}`;\n}\nfunction Ei(e, t) {\n return t.some(\n (n) => $e(n) && n.source === e.source && n.target === e.target && (n.sourceHandle === e.sourceHandle || !n.sourceHandle && !e.sourceHandle) && (n.targetHandle === e.targetHandle || !n.targetHandle && !e.targetHandle)\n );\n}\nfunction zd(e, t, n) {\n if (!e.source || !e.target)\n return wt(\"Can't create edge. An edge needs a source and a target.\"), t;\n let o;\n return $e(e) ? o = { ...e } : o = {\n ...e,\n id: an(e)\n }, o = lo(o, n), Ei(o, t) || t.push(o), t;\n}\nfunction Ad(e, t, n) {\n if (!t.source || !t.target)\n return wt(\"Can't create new edge. An edge needs a source and a target.\"), n;\n const o = n.find((r) => $e(r) && r.id === e.id);\n if (!o)\n return wt(`The old edge with id=${e.id} does not exist.`), n;\n const i = {\n ...e,\n id: an(t),\n source: t.source,\n target: t.target,\n sourceHandle: t.sourceHandle,\n targetHandle: t.targetHandle\n };\n return n.splice(n.indexOf(o), 1, i), n.filter((r) => r.id !== e.id);\n}\nfunction va({ x: e, y: t }, { x: n, y: o, zoom: i }) {\n return {\n x: e * i + n,\n y: t * i + o\n };\n}\nfunction uo({ x: e, y: t }, { x: n, y: o, zoom: i }, r, [a, s]) {\n const l = {\n x: (e - n) / i,\n y: (t - o) / i\n };\n return r ? {\n x: a * Math.round(l.x / a),\n y: s * Math.round(l.y / s)\n } : l;\n}\nfunction Si(e, t) {\n return {\n x: Math.min(e.x, t.x),\n y: Math.min(e.y, t.y),\n x2: Math.max(e.x2, t.x2),\n y2: Math.max(e.y2, t.y2)\n };\n}\nfunction Xt({ x: e, y: t, width: n, height: o }) {\n return {\n x: e,\n y: t,\n x2: e + n,\n y2: t + o\n };\n}\nfunction Ni({ x: e, y: t, x2: n, y2: o }) {\n return {\n x: e,\n y: t,\n width: n - e,\n height: o - t\n };\n}\nfunction Bd(e, t) {\n return Ni(Si(Xt(e), Xt(t)));\n}\nfunction co(e) {\n const t = e.reduce(\n (n, { computedPosition: o = { x: 0, y: 0 }, dimensions: i = { width: 0, height: 0 } } = {}) => Si(\n n,\n Xt({\n ...o,\n ...i\n })\n ),\n { x: 1 / 0, y: 1 / 0, x2: -1 / 0, y2: -1 / 0 }\n );\n return Ni(t);\n}\nfunction Ci(e, t, { x: n, y: o, zoom: i } = { x: 0, y: 0, zoom: 1 }, r = !1, a = !1) {\n const s = {\n x: (t.x - n) / i,\n y: (t.y - o) / i,\n width: t.width / i,\n height: t.height / i\n };\n return e.filter((l) => {\n const { computedPosition: u = { x: 0, y: 0 }, dimensions: c = { width: 0, height: 0 }, selectable: v } = l;\n if (a && !v)\n return !1;\n const g = { ...u, width: c.width || 0, height: c.height || 0 }, x = Fn(s, g), h = typeof c.width > \"u\" || typeof c.height > \"u\" || c.width === 0 || c.height === 0, d = r && x > 0, w = c.width * c.height;\n return h || d || x >= w;\n });\n}\nfunction sn(e, t) {\n const n = e.map((o) => Pe(o) ? o : o.id);\n return t.filter((o) => n.includes(o.source) || n.includes(o.target));\n}\nfunction Zt(e, t, n, o, i, r = 0.1, a = { x: 0, y: 0 }) {\n const s = t / (e.width * (1 + r)), l = n / (e.height * (1 + r)), u = Math.min(s, l), c = je(u, o, i), v = e.x + e.width / 2, g = e.y + e.height / 2, x = t / 2 - v * c + (a.x ?? 0), h = n / 2 - g * c + (a.y ?? 0);\n return { x, y: h, zoom: c };\n}\nfunction ma(e, t) {\n return {\n x: t.x + e.x,\n y: t.y + e.y,\n z: (e.z > t.z ? e.z : t.z) + 1\n };\n}\nfunction Mi(e, t) {\n if (!e.parentNode)\n return !1;\n const n = t(e.parentNode);\n return n ? n.selected ? !0 : Mi(n, t) : !1;\n}\nfunction Xe(e, t) {\n return typeof e > \"u\" ? \"\" : typeof e == \"string\" ? e : `${t ? `${t}__` : \"\"}${Object.keys(e).sort().map((o) => `${o}=${e[o]}`).join(\"&\")}`;\n}\nfunction ce(e) {\n return typeof C(e) < \"u\";\n}\nfunction pa(e, t, n) {\n if (!e.source || !e.target)\n return n(new ve(he.EDGE_INVALID, e.id)), !1;\n let o;\n return $e(e) ? o = e : o = {\n ...e,\n id: an(e)\n }, o = lo(o), Ei(o, t) ? !1 : o;\n}\nfunction ya(e, t, n, o, i, r) {\n if (!t.source || !t.target)\n return r(new ve(he.EDGE_INVALID, e.id)), !1;\n const a = o(e.id);\n if (!a)\n return r(new ve(he.EDGE_NOT_FOUND, e.id)), !1;\n const { id: s, ...l } = e, u = {\n ...l,\n id: i ? an(t) : s,\n source: t.source,\n target: t.target,\n sourceHandle: t.sourceHandle,\n targetHandle: t.targetHandle\n };\n return n.splice(n.indexOf(a), 1, u), u;\n}\nfunction Do(e, t, n, o) {\n const i = {}, r = e.map((s) => {\n const l = ga(s, {\n ...n(s.id),\n parentNode: s.parentNode\n });\n return s.parentNode && (i[s.parentNode] = !0), l;\n }), a = [...r, ...t];\n return r.forEach((s) => {\n const l = a.find((u) => u.id === s.parentNode);\n s.parentNode && !l && o(new ve(he.NODE_MISSING_PARENT, s.id, s.parentNode)), (s.parentNode || i[s.id]) && (i[s.id] && (s.isParent = !0), l && (l.isParent = !0));\n }), r;\n}\nvar j = /* @__PURE__ */ ((e) => (e.Left = \"left\", e.Top = \"top\", e.Right = \"right\", e.Bottom = \"bottom\", e))(j || {}), fo = /* @__PURE__ */ ((e) => (e.Partial = \"partial\", e.Full = \"full\", e))(fo || {}), Ye = /* @__PURE__ */ ((e) => (e.Bezier = \"default\", e.SimpleBezier = \"simple-bezier\", e.Straight = \"straight\", e.Step = \"step\", e.SmoothStep = \"smoothstep\", e))(Ye || {}), Qe = /* @__PURE__ */ ((e) => (e.Strict = \"strict\", e.Loose = \"loose\", e))(Qe || {}), Yn = /* @__PURE__ */ ((e) => (e.Arrow = \"arrow\", e.ArrowClosed = \"arrowclosed\", e))(Yn || {}), Ut = /* @__PURE__ */ ((e) => (e.Free = \"free\", e.Vertical = \"vertical\", e.Horizontal = \"horizontal\", e))(Ut || {}), xa = /* @__PURE__ */ ((e) => (e.TopLeft = \"top-left\", e.TopCenter = \"top-center\", e.TopRight = \"top-right\", e.BottomLeft = \"bottom-left\", e.BottomCenter = \"bottom-center\", e.BottomRight = \"bottom-right\", e))(xa || {});\nconst zo = Symbol(\"vueFlow\"), $i = Symbol(\"nodeId\"), ki = Symbol(\"nodeRef\"), Oi = Symbol(\"edgeId\"), Ti = Symbol(\"edgeRef\"), ln = Symbol(\"slots\");\nfunction _a(e) {\n const t = e ?? He($i, \"\"), n = He(ki, null), { findNode: o, edges: i, emits: r } = fe(), a = o(t);\n return a || r.error(new ve(he.NODE_NOT_FOUND, t)), {\n id: t,\n nodeEl: n,\n node: a,\n parentNode: J(() => o(a.parentNode)),\n connectedEdges: J(() => sn([a], i.value))\n };\n}\nfunction ho(e) {\n return \"clientX\" in e;\n}\nfunction rt(e, t) {\n var r, a;\n const n = ho(e), o = n ? e.clientX : (r = e.touches) == null ? void 0 : r[0].clientX, i = n ? e.clientY : (a = e.touches) == null ? void 0 : a[0].clientY;\n return {\n x: o - ((t == null ? void 0 : t.left) ?? 0),\n y: i - ((t == null ? void 0 : t.top) ?? 0)\n };\n}\nfunction Wt(e, t, n) {\n const o = ((n == null ? void 0 : n.x) ?? 0) + t.x, i = ((n == null ? void 0 : n.y) ?? 0) + t.y, r = (n == null ? void 0 : n.width) ?? t.width, a = (n == null ? void 0 : n.height) ?? t.height;\n switch (e) {\n case j.Top:\n return {\n x: o + r / 2,\n y: i\n };\n case j.Right:\n return {\n x: o + r,\n y: i + a / 2\n };\n case j.Bottom:\n return {\n x: o + r / 2,\n y: i + a\n };\n case j.Left:\n return {\n x: o,\n y: i + a / 2\n };\n }\n}\nfunction Ao(e = [], t) {\n return e.length ? !t || e.length === 1 ? e[0] : t && e.find((n) => n.id === t) || null : null;\n}\nfunction wa(e, t, n, o, i, r) {\n const a = Wt(\n n,\n {\n ...e.dimensions,\n ...e.computedPosition\n },\n t\n ), s = Wt(\n r,\n {\n ...o.dimensions,\n ...o.computedPosition\n },\n i\n );\n return {\n sourceX: a.x,\n sourceY: a.y,\n targetX: s.x,\n targetY: s.y\n };\n}\nfunction ba({\n sourcePos: e,\n targetPos: t,\n sourceWidth: n,\n sourceHeight: o,\n targetWidth: i,\n targetHeight: r,\n width: a,\n height: s,\n viewport: l\n}) {\n const u = {\n x: Math.min(e.x, t.x),\n y: Math.min(e.y, t.y),\n x2: Math.max(e.x + n, t.x + i),\n y2: Math.max(e.y + o, t.y + r)\n };\n u.x === u.x2 && (u.x2 += 1), u.y === u.y2 && (u.y2 += 1);\n const c = Xt({\n x: (0 - l.x) / l.zoom,\n y: (0 - l.y) / l.zoom,\n width: a / l.zoom,\n height: s / l.zoom\n }), v = Math.max(0, Math.min(c.x2, u.x2) - Math.max(c.x, u.x)), g = Math.max(0, Math.min(c.y2, u.y2) - Math.max(c.y, u.y));\n return Math.ceil(v * g) > 0;\n}\nfunction Ea(e, t, n = !1) {\n let o = -1;\n const i = e.reduce((r, a) => {\n const s = Ie(a.zIndex);\n let l = s ? a.zIndex : 0;\n const u = t(a.source), c = t(a.target);\n return !u || !c || (n && (l = s ? a.zIndex : Math.max(u.computedPosition.z || 0, c.computedPosition.z || 0)), r[l] ? r[l].push(a) : r[l] = [a], o = l > o ? l : o), r;\n }, {});\n return Object.entries(Object.keys(i).length ? i : { 0: [] }).map(([r, a]) => {\n const s = +r;\n return {\n edges: a,\n level: s,\n isMaxLevel: s === o\n };\n });\n}\nfunction Cn(e) {\n e == null || e.classList.remove(\"valid\", \"connecting\", \"vue-flow__handle-valid\", \"vue-flow__handle-connecting\");\n}\nfunction Bo(e, t, n, o) {\n return (t[n] || []).reduce((i, r) => (`${e.id}-${r.id}-${n}` !== o && i.push({\n id: r.id || null,\n type: n,\n nodeId: e.id,\n ...Wt(\n r.position,\n {\n ...e.dimensions,\n ...e.computedPosition\n },\n r\n )\n }), i), []);\n}\nfunction Sa(e, t, n) {\n let o = null, i = 1 / 0;\n return n.forEach((r) => {\n const a = Math.sqrt((r.x - e.x) ** 2 + (r.y - e.y) ** 2);\n a <= t && a < i && (i = a, o = r);\n }), o;\n}\nfunction Ro(e, t, n, o, i, r, a, s, l, u) {\n const c = r === \"target\", v = s.querySelector(`.vue-flow__handle[data-id=\"${t == null ? void 0 : t.nodeId}-${t == null ? void 0 : t.id}-${t == null ? void 0 : t.type}\"]`), { x: g, y: x } = rt(e), h = s.elementFromPoint(g, x), d = h != null && h.classList.contains(\"vue-flow__handle\") ? h : v, w = {\n handleDomNode: d,\n isValid: !1,\n connection: { source: \"\", target: \"\", sourceHandle: null, targetHandle: null },\n endHandle: null\n };\n if (d) {\n const y = Ii(void 0, d), S = d.getAttribute(\"data-nodeid\"), V = d.getAttribute(\"data-handleid\"), p = d.classList.contains(\"connectable\"), N = d.classList.contains(\"connectableend\"), T = {\n source: c ? S : o,\n sourceHandle: c ? V : i,\n target: c ? o : S,\n targetHandle: c ? i : V\n };\n w.connection = T, p && N && (n === Qe.Strict ? c && y === \"source\" || !c && y === \"target\" : S !== o || V !== i) && (w.endHandle = {\n nodeId: S,\n handleId: V,\n type: y\n }, w.isValid = a(T, {\n edges: l,\n sourceNode: u(T.source),\n targetNode: u(T.target)\n }));\n }\n return w;\n}\nfunction Na({ nodes: e, nodeId: t, handleId: n, handleType: o }) {\n return e.reduce((i, r) => {\n const { handleBounds: a } = r;\n let s = [], l = [];\n return a && (s = Bo(r, a, \"source\", `${t}-${n}-${o}`), l = Bo(r, a, \"target\", `${t}-${n}-${o}`)), i.push(...s, ...l), i;\n }, []);\n}\nfunction Ii(e, t) {\n return e || (t != null && t.classList.contains(\"target\") ? \"target\" : t != null && t.classList.contains(\"source\") ? \"source\" : null);\n}\nfunction Ca(e, t) {\n let n = null;\n return t ? n = \"valid\" : e && !t && (n = \"invalid\"), n;\n}\nfunction Vo(e, t, n) {\n return e < t ? je(Math.abs(e - t), 1, 50) / 50 : e > n ? -je(Math.abs(e - n), 1, 50) / 50 : 0;\n}\nfunction Pi(e, t) {\n const n = Vo(e.x, 35, t.width - 35) * 20, o = Vo(e.y, 35, t.height - 35) * 20;\n return [n, o];\n}\nfunction It() {\n return !0;\n}\nfunction Di({\n handleId: e,\n nodeId: t,\n type: n,\n isValidConnection: o,\n edgeUpdaterType: i,\n onEdgeUpdate: r,\n onEdgeUpdateEnd: a\n}) {\n const s = J(() => le(n) === \"target\"), {\n vueFlowRef: l,\n connectionMode: u,\n connectionRadius: c,\n connectOnClick: v,\n connectionClickStartHandle: g,\n nodesConnectable: x,\n autoPanOnConnect: h,\n findNode: d,\n panBy: w,\n getNodes: y,\n startConnection: S,\n updateConnection: V,\n endConnection: p,\n emits: N,\n viewport: T,\n edges: _,\n isValidConnection: P\n } = fe();\n let R = null, $ = !1, D = null;\n function Q(m) {\n var G;\n const A = ho(m), E = Po(m.target);\n if (A && m.button === 0 || !A) {\n let Z = function(Y) {\n L = rt(Y, f), B = Sa(\n uo(L, T.value, !1, [1, 1]),\n c.value,\n F\n ), I || (U(), I = !0);\n const ne = Ro(\n Y,\n B,\n u.value,\n le(t),\n le(e),\n s.value ? \"target\" : \"source\",\n W,\n E,\n _.value,\n d\n );\n if (R = ne.connection, $ = ne.isValid, D = ne.handleDomNode, V(\n B && $ ? va(\n {\n x: B.x,\n y: B.y\n },\n T.value\n ) : L,\n ne.endHandle,\n Ca(!!B, $)\n ), !B && !$ && !D)\n return Cn(b);\n R && R.source !== R.target && D && (Cn(b), b = D, D.classList.add(\"connecting\", \"vue-flow__handle-connecting\"), D.classList.toggle(\"valid\", $), D.classList.toggle(\"vue-flow__handle-valid\", $));\n }, K = function(Y) {\n (B || D) && R && $ && (r ? r(Y, R) : N.connect(R)), N.connectEnd(Y), i && (a == null || a(Y)), Cn(b), cancelAnimationFrame(q), p(Y), I = !1, $ = !1, R = null, D = null, E.removeEventListener(\"mousemove\", Z), E.removeEventListener(\"mouseup\", K), E.removeEventListener(\"touchmove\", Z), E.removeEventListener(\"touchend\", K);\n };\n const z = d(le(t));\n let W = o || P.value || It;\n !W && z && (W = (s ? z.isValidSourcePos : z.isValidTargetPos) || It);\n let B, q = 0;\n const { x: te, y: re } = rt(m), k = E == null ? void 0 : E.elementFromPoint(te, re), H = Ii(le(i), k), f = (G = l.value) == null ? void 0 : G.getBoundingClientRect();\n if (!f || !H)\n return;\n let b, L = rt(m, f), I = !1;\n const F = Na({\n nodes: y.value,\n nodeId: le(t),\n handleId: le(e),\n handleType: H\n }), U = () => {\n if (!h)\n return;\n const [Y, ne] = Pi(L, f);\n w({ x: Y, y: ne }), q = requestAnimationFrame(U);\n };\n S(\n {\n nodeId: le(t),\n handleId: le(e),\n type: H\n },\n {\n x: te - f.left,\n y: re - f.top\n },\n m\n ), N.connectStart({ event: m, nodeId: le(t), handleId: le(e), handleType: H }), E.addEventListener(\"mousemove\", Z), E.addEventListener(\"mouseup\", K), E.addEventListener(\"touchmove\", Z), E.addEventListener(\"touchend\", K);\n }\n }\n function ee(m) {\n if (v.value)\n if (!g.value)\n N.clickConnectStart({ event: m, nodeId: le(t), handleId: le(e) }), S(\n { nodeId: le(t), type: le(n), handleId: le(e) },\n void 0,\n m,\n !0\n );\n else {\n let A = o || P.value || It;\n const E = d(le(t));\n if (!A && E && (A = (s ? E.isValidSourcePos : E.isValidTargetPos) || It), E && (typeof E.connectable > \"u\" ? x.value : E.connectable) === !1)\n return;\n const G = Po(m.target), { connection: Z, isValid: K } = Ro(\n m,\n {\n nodeId: le(t),\n id: le(e),\n type: le(n)\n },\n u.value,\n g.value.nodeId,\n g.value.handleId || null,\n g.value.type,\n A,\n G,\n _.value,\n d\n ), z = Z.source === Z.target;\n K && !z && N.connect(Z), N.clickConnectEnd(m), p(m, !0);\n }\n }\n return {\n handlePointerDown: Q,\n handleClick: ee\n };\n}\nfunction Ma(e, t) {\n const n = {};\n for (const o in e)\n t.includes(o) || Object.defineProperty(n, o, {\n enumerable: !0,\n get: () => e[o]\n });\n return n;\n}\nconst $a = [\"data-id\", \"data-handleid\", \"data-nodeid\", \"data-handlepos\"], ka = {\n name: \"Handle\",\n compatConfig: { MODE: 3 }\n}, Kt = /* @__PURE__ */ ge({\n ...ka,\n props: {\n id: null,\n type: null,\n position: { default: j.Top },\n isValidConnection: { type: Function },\n connectable: { type: [Boolean, String, Function], default: void 0 },\n connectableStart: { type: Boolean, default: !0 },\n connectableEnd: { type: Boolean, default: !0 }\n },\n setup(e) {\n const t = Ma(e, [\"position\", \"connectable\", \"connectableStart\", \"connectableEnd\", \"id\", \"isValidConnection\"]), n = M(t, \"type\", \"source\"), {\n connectionStartHandle: o,\n connectionClickStartHandle: i,\n connectionEndHandle: r,\n vueFlowRef: a,\n nodesConnectable: s,\n noDragClassName: l,\n noPanClassName: u\n } = fe(), { id: c, node: v, nodeEl: g, connectedEdges: x } = _a(), h = ie(), d = J(() => e.id ?? `${c}__handle-${e.position}`), w = J(() => typeof e.connectableStart < \"u\" ? e.connectableStart : !0), y = J(() => typeof e.connectableEnd < \"u\" ? e.connectableEnd : !0), { handlePointerDown: S, handleClick: V } = Di({\n nodeId: c,\n handleId: d,\n isValidConnection: e.isValidConnection,\n type: n\n }), p = J(() => Pe(e.connectable) && e.connectable === \"single\" ? !x.value.some((R) => {\n const $ = R[`${n.value}Handle`];\n return R[n.value] !== c ? !1 : $ ? $ === d.value : !0;\n }) : Ae(e.connectable) ? e.connectable(v, x.value) : ce(e.connectable) ? e.connectable : s.value), N = J(\n () => {\n var R, $, D, Q, ee, m;\n return ((R = o.value) == null ? void 0 : R.nodeId) === c && (($ = o.value) == null ? void 0 : $.handleId) === d.value && ((D = o.value) == null ? void 0 : D.type) === n.value || ((Q = r.value) == null ? void 0 : Q.nodeId) === c && ((ee = r.value) == null ? void 0 : ee.handleId) === d.value && ((m = r.value) == null ? void 0 : m.type) === n.value;\n }\n ), T = J(\n () => {\n var R, $, D;\n return ((R = i.value) == null ? void 0 : R.nodeId) === c && (($ = i.value) == null ? void 0 : $.handleId) === d.value && ((D = i.value) == null ? void 0 : D.type) === n.value;\n }\n );\n ye(() => v.initialized).toBe(!0, { flush: \"post\" }).then(() => {\n var E;\n const R = (E = v.handleBounds[n.value]) == null ? void 0 : E.find((G) => G.id === d.value);\n if (!a.value || R)\n return;\n const $ = a.value.querySelector(\".vue-flow__transformationpane\");\n if (!g || !h.value || !$ || !d.value)\n return;\n const D = g.value.getBoundingClientRect(), Q = h.value.getBoundingClientRect(), ee = window.getComputedStyle($), { m22: m } = new window.DOMMatrixReadOnly(ee.transform), A = {\n id: d.value,\n position: e.position,\n x: (Q.left - D.left) / m,\n y: (Q.top - D.top) / m,\n ...rn(h.value)\n };\n v.handleBounds[n.value] = [...v.handleBounds[n.value] ?? [], A];\n });\n function _(R) {\n const $ = ho(R);\n p.value && w.value && ($ && R.button === 0 || !$) && S(R);\n }\n function P(R) {\n !c || !i.value && !w.value || p.value && V(R);\n }\n return (R, $) => (oe(), se(\"div\", {\n ref_key: \"handle\",\n ref: h,\n \"data-id\": `${C(c)}-${C(d)}-${C(n)}`,\n \"data-handleid\": C(d),\n \"data-nodeid\": C(c),\n \"data-handlepos\": e.position,\n class: Ke([\"vue-flow__handle\", [\n `vue-flow__handle-${e.position}`,\n `vue-flow__handle-${C(d)}`,\n C(l),\n C(u),\n C(n),\n {\n connectable: C(p),\n connecting: C(T),\n connectablestart: C(w),\n connectableend: C(y),\n connectionindicator: C(p) && (C(w) && !C(N) || C(y) && C(N))\n }\n ]]),\n onMousedown: _,\n onTouchstartPassive: _,\n onClick: P\n }, [\n xe(R.$slots, \"default\", { id: e.id })\n ], 42, $a));\n }\n}), un = function({\n sourcePosition: e = j.Bottom,\n targetPosition: t = j.Top,\n label: n,\n connectable: o = !0,\n isValidTargetPos: i,\n isValidSourcePos: r\n}) {\n return [\n ue(Kt, { type: \"target\", position: t, connectable: o, isValidConnection: i }),\n typeof n != \"string\" && n ? ue(n) : ue(\"div\", { innerHTML: n }),\n ue(Kt, { type: \"source\", position: e, connectable: o, isValidConnection: r })\n ];\n};\nun.props = [\"sourcePosition\", \"targetPosition\", \"label\", \"isValidTargetPos\", \"isValidSourcePos\", \"connectable\"];\nun.inheritAttrs = !1;\nun.compatConfig = { MODE: 3 };\nconst Oa = un, cn = function({\n sourcePosition: e = j.Bottom,\n label: t,\n connectable: n = !0,\n isValidSourcePos: o\n}) {\n return [\n typeof t != \"string\" && t ? ue(t) : ue(\"div\", { innerHTML: t }),\n ue(Kt, { type: \"source\", position: e, connectable: n, isValidConnection: o })\n ];\n};\ncn.props = [\"sourcePosition\", \"label\", \"isValidSourcePos\", \"connectable\"];\ncn.inheritAttrs = !1;\ncn.compatConfig = { MODE: 3 };\nconst Ta = cn, dn = function({\n targetPosition: e = j.Top,\n label: t,\n connectable: n = !0,\n isValidTargetPos: o\n}) {\n return [\n ue(Kt, { type: \"target\", position: e, connectable: n, isValidConnection: o }),\n typeof t != \"string\" && t ? ue(t) : ue(\"div\", { innerHTML: t })\n ];\n};\ndn.props = [\"targetPosition\", \"label\", \"isValidTargetPos\", \"connectable\"];\ndn.inheritAttrs = !1;\ndn.compatConfig = { MODE: 3 };\nconst Ia = dn;\nfunction Ho(e, t, n) {\n let o = e;\n do {\n if (o && o.matches(t))\n return !0;\n if (o === n)\n return !1;\n o = o.parentElement;\n } while (o);\n return !1;\n}\nfunction Pa(e, t, n, o, i) {\n return e.filter(\n (r) => (r.selected || r.id === i) && (!r.parentNode || !Mi(r, o)) && (r.draggable || t && typeof r.draggable > \"u\")\n ).map(\n (r) => {\n var a, s;\n return it({\n id: r.id,\n position: r.position || { x: 0, y: 0 },\n distance: {\n x: n.x - ((a = r.computedPosition) == null ? void 0 : a.x) || 0,\n y: n.y - ((s = r.computedPosition) == null ? void 0 : s.y) || 0\n },\n from: r.computedPosition,\n extent: r.extent,\n parentNode: r.parentNode,\n dimensions: r.dimensions\n });\n }\n );\n}\nfunction Mn({\n id: e,\n dragItems: t,\n findNode: n\n}) {\n const o = t.reduce((i, r) => {\n const a = n(r.id);\n return a && i.push(a), i;\n }, []);\n return [e ? o.find((i) => i.id === e) : o[0], o];\n}\nfunction zi(e) {\n if (Array.isArray(e))\n switch (e.length) {\n case 1:\n return [e[0], e[0], e[0], e[0]];\n case 2:\n return [e[0], e[1], e[0], e[1]];\n case 3:\n return [e[0], e[1], e[2], e[1]];\n case 4:\n return e;\n default:\n return [0, 0, 0, 0];\n }\n return [e, e, e, e];\n}\nfunction Da(e, t, n) {\n const [o, i, r, a] = typeof e != \"string\" ? zi(e.padding) : [0, 0, 0, 0];\n return n && Ie(n.computedPosition.x) && Ie(n.computedPosition.y) && Ie(n.dimensions.width) && Ie(n.dimensions.height) ? [\n [n.computedPosition.x + a, n.computedPosition.y + o],\n [\n n.computedPosition.x + (n.dimensions.width - t.dimensions.width) - i,\n n.computedPosition.y + (n.dimensions.height - t.dimensions.height) - r\n ]\n ] : !1;\n}\nfunction za(e, t, n, o) {\n let i = e.extent || n;\n if (i === \"parent\" || !Array.isArray(i) && (i == null ? void 0 : i.range) === \"parent\")\n if (e.parentNode && o && e.dimensions.width && e.dimensions.height) {\n const r = Da(i, e, o);\n r && (i = r);\n } else\n t(new ve(he.NODE_EXTENT_INVALID, e.id)), i = n;\n else if (Array.isArray(i)) {\n const r = (o == null ? void 0 : o.computedPosition.x) || 0, a = (o == null ? void 0 : o.computedPosition.y) || 0;\n i = [\n [i[0][0] + r, i[0][1] + a],\n [i[1][0] + r, i[1][1] + a]\n ];\n } else if (i != null && i.range && Array.isArray(i.range)) {\n const [r, a, s, l] = zi(i.padding), u = (o == null ? void 0 : o.computedPosition.x) || 0, c = (o == null ? void 0 : o.computedPosition.y) || 0;\n i = [\n [i.range[0][0] + u + l, i.range[0][1] + c + r],\n [i.range[1][0] + u - a, i.range[1][1] + c - s]\n ];\n }\n return i;\n}\nfunction go(e, t, n, o, i) {\n const r = za(e, n, o, i), a = so(t, r);\n return {\n position: {\n x: a.x - ((i == null ? void 0 : i.computedPosition.x) || 0),\n y: a.y - ((i == null ? void 0 : i.computedPosition.y) || 0)\n },\n computedPosition: a\n };\n}\nfunction Ai() {\n const { getSelectedNodes: e, nodeExtent: t, updateNodePositions: n, findNode: o, snapGrid: i, snapToGrid: r, nodesDraggable: a, emits: s } = fe();\n return (l, u = !1) => {\n const c = r.value ? i.value[0] : 5, v = r.value ? i.value[1] : 5, g = u ? 4 : 1, x = l.x * c * g, h = l.y * v * g, d = e.value.filter((w) => w.draggable || a && typeof w.draggable > \"u\").map((w) => {\n const y = { x: w.computedPosition.x + x, y: w.computedPosition.y + h }, { computedPosition: S } = go(\n w,\n y,\n s.error,\n t.value,\n w.parentNode ? o(w.parentNode) : void 0\n );\n return {\n id: w.id,\n position: S,\n from: w.position,\n distance: { x: l.x, y: l.y },\n dimensions: w.dimensions\n };\n });\n n(d, !0, !1);\n };\n}\nfunction Aa() {\n return {\n doubleClick: X(),\n click: X(),\n mouseEnter: X(),\n mouseMove: X(),\n mouseLeave: X(),\n contextMenu: X(),\n dragStart: X(),\n drag: X(),\n dragStop: X()\n };\n}\nfunction Ba(e, t) {\n const n = Aa();\n return n.doubleClick.on((o) => {\n var i, r;\n t.nodeDoubleClick(o), (r = (i = e.events) == null ? void 0 : i.doubleClick) == null || r.call(i, o);\n }), n.click.on((o) => {\n var i, r;\n t.nodeClick(o), (r = (i = e.events) == null ? void 0 : i.click) == null || r.call(i, o);\n }), n.mouseEnter.on((o) => {\n var i, r;\n t.nodeMouseEnter(o), (r = (i = e.events) == null ? void 0 : i.mouseEnter) == null || r.call(i, o);\n }), n.mouseMove.on((o) => {\n var i, r;\n t.nodeMouseMove(o), (r = (i = e.events) == null ? void 0 : i.mouseMove) == null || r.call(i, o);\n }), n.mouseLeave.on((o) => {\n var i, r;\n t.nodeMouseLeave(o), (r = (i = e.events) == null ? void 0 : i.mouseLeave) == null || r.call(i, o);\n }), n.contextMenu.on((o) => {\n var i, r;\n t.nodeContextMenu(o), (r = (i = e.events) == null ? void 0 : i.contextMenu) == null || r.call(i, o);\n }), n.dragStart.on((o) => {\n var i, r;\n t.nodeDragStart(o), (r = (i = e.events) == null ? void 0 : i.dragStart) == null || r.call(i, o);\n }), n.drag.on((o) => {\n var i, r;\n t.nodeDrag(o), (r = (i = e.events) == null ? void 0 : i.drag) == null || r.call(i, o);\n }), n.dragStop.on((o) => {\n var i, r;\n t.nodeDragStop(o), (r = (i = e.events) == null ? void 0 : i.dragStop) == null || r.call(i, o);\n }), Object.entries(n).reduce(\n (o, [i, r]) => (o.emit[i] = r.trigger, o.on[i] = r.on, o),\n { emit: {}, on: {} }\n );\n}\nfunction Ra() {\n const { viewport: e, snapGrid: t, snapToGrid: n } = fe();\n return ({ sourceEvent: o }) => {\n const i = o.touches ? o.touches[0].clientX : o.clientX, r = o.touches ? o.touches[0].clientY : o.clientY, a = {\n x: (i - e.value.x) / e.value.zoom,\n y: (r - e.value.y) / e.value.zoom\n };\n return {\n xSnapped: n.value ? t.value[0] * Math.round(a.x / t.value[0]) : a.x,\n ySnapped: n.value ? t.value[1] * Math.round(a.y / t.value[1]) : a.y,\n ...a\n };\n };\n}\nfunction Lo(e, t, n) {\n const o = t.querySelectorAll(`.vue-flow__handle${e}`);\n if (!o || !o.length)\n return;\n const i = Array.from(o), r = t.getBoundingClientRect();\n return i.map((a) => {\n const s = a.getBoundingClientRect();\n return {\n id: a.getAttribute(\"data-handleid\"),\n position: a.getAttribute(\"data-handlepos\"),\n x: (s.left - r.left) / n,\n y: (s.top - r.top) / n,\n ...rn(a)\n };\n });\n}\nfunction Xn(e, t, n, o, i, r = !1, a) {\n i.value = !1, e.selected ? (r || e.selected && t) && (o([e]), Ue(a.blur)) : n([e]);\n}\nvar Va = { value: () => {\n} };\nfunction fn() {\n for (var e = 0, t = arguments.length, n = {}, o; e < t; ++e) {\n if (!(o = arguments[e] + \"\") || o in n || /[\\s.]/.test(o))\n throw new Error(\"illegal type: \" + o);\n n[o] = [];\n }\n return new Ht(n);\n}\nfunction Ht(e) {\n this._ = e;\n}\nfunction Ha(e, t) {\n return e.trim().split(/^|\\s+/).map(function(n) {\n var o = \"\", i = n.indexOf(\".\");\n if (i >= 0 && (o = n.slice(i + 1), n = n.slice(0, i)), n && !t.hasOwnProperty(n))\n throw new Error(\"unknown type: \" + n);\n return { type: n, name: o };\n });\n}\nHt.prototype = fn.prototype = {\n constructor: Ht,\n on: function(e, t) {\n var n = this._, o = Ha(e + \"\", n), i, r = -1, a = o.length;\n if (arguments.length < 2) {\n for (; ++r < a; )\n if ((i = (e = o[r]).type) && (i = La(n[i], e.name)))\n return i;\n return;\n }\n if (t != null && typeof t != \"function\")\n throw new Error(\"invalid callback: \" + t);\n for (; ++r < a; )\n if (i = (e = o[r]).type)\n n[i] = Go(n[i], e.name, t);\n else if (t == null)\n for (i in n)\n n[i] = Go(n[i], e.name, null);\n return this;\n },\n copy: function() {\n var e = {}, t = this._;\n for (var n in t)\n e[n] = t[n].slice();\n return new Ht(e);\n },\n call: function(e, t) {\n if ((i = arguments.length - 2) > 0)\n for (var n = new Array(i), o = 0, i, r; o < i; ++o)\n n[o] = arguments[o + 2];\n if (!this._.hasOwnProperty(e))\n throw new Error(\"unknown type: \" + e);\n for (r = this._[e], o = 0, i = r.length; o < i; ++o)\n r[o].value.apply(t, n);\n },\n apply: function(e, t, n) {\n if (!this._.hasOwnProperty(e))\n throw new Error(\"unknown type: \" + e);\n for (var o = this._[e], i = 0, r = o.length; i < r; ++i)\n o[i].value.apply(t, n);\n }\n};\nfunction La(e, t) {\n for (var n = 0, o = e.length, i; n < o; ++n)\n if ((i = e[n]).name === t)\n return i.value;\n}\nfunction Go(e, t, n) {\n for (var o = 0, i = e.length; o < i; ++o)\n if (e[o].name === t) {\n e[o] = Va, e = e.slice(0, o).concat(e.slice(o + 1));\n break;\n }\n return n != null && e.push({ name: t, value: n }), e;\n}\nvar Zn = \"http://www.w3.org/1999/xhtml\";\nconst Fo = {\n svg: \"http://www.w3.org/2000/svg\",\n xhtml: Zn,\n xlink: \"http://www.w3.org/1999/xlink\",\n xml: \"http://www.w3.org/XML/1998/namespace\",\n xmlns: \"http://www.w3.org/2000/xmlns/\"\n};\nfunction hn(e) {\n var t = e += \"\", n = t.indexOf(\":\");\n return n >= 0 && (t = e.slice(0, n)) !== \"xmlns\" && (e = e.slice(n + 1)), Fo.hasOwnProperty(t) ? { space: Fo[t], local: e } : e;\n}\nfunction Ga(e) {\n return function() {\n var t = this.ownerDocument, n = this.namespaceURI;\n return n === Zn && t.documentElement.namespaceURI === Zn ? t.createElement(e) : t.createElementNS(n, e);\n };\n}\nfunction Fa(e) {\n return function() {\n return this.ownerDocument.createElementNS(e.space, e.local);\n };\n}\nfunction Bi(e) {\n var t = hn(e);\n return (t.local ? Fa : Ga)(t);\n}\nfunction Ya() {\n}\nfunction vo(e) {\n return e == null ? Ya : function() {\n return this.querySelector(e);\n };\n}\nfunction Xa(e) {\n typeof e != \"function\" && (e = vo(e));\n for (var t = this._groups, n = t.length, o = new Array(n), i = 0; i < n; ++i)\n for (var r = t[i], a = r.length, s = o[i] = new Array(a), l, u, c = 0; c < a; ++c)\n (l = r[c]) && (u = e.call(l, l.__data__, c, r)) && (\"__data__\" in l && (u.__data__ = l.__data__), s[c] = u);\n return new _e(o, this._parents);\n}\nfunction Za(e) {\n return e == null ? [] : Array.isArray(e) ? e : Array.from(e);\n}\nfunction Ua() {\n return [];\n}\nfunction Ri(e) {\n return e == null ? Ua : function() {\n return this.querySelectorAll(e);\n };\n}\nfunction Wa(e) {\n return function() {\n return Za(e.apply(this, arguments));\n };\n}\nfunction Ka(e) {\n typeof e == \"function\" ? e = Wa(e) : e = Ri(e);\n for (var t = this._groups, n = t.length, o = [], i = [], r = 0; r < n; ++r)\n for (var a = t[r], s = a.length, l, u = 0; u < s; ++u)\n (l = a[u]) && (o.push(e.call(l, l.__data__, u, a)), i.push(l));\n return new _e(o, i);\n}\nfunction Vi(e) {\n return function() {\n return this.matches(e);\n };\n}\nfunction Hi(e) {\n return function(t) {\n return t.matches(e);\n };\n}\nvar qa = Array.prototype.find;\nfunction ja(e) {\n return function() {\n return qa.call(this.children, e);\n };\n}\nfunction Qa() {\n return this.firstElementChild;\n}\nfunction Ja(e) {\n return this.select(e == null ? Qa : ja(typeof e == \"function\" ? e : Hi(e)));\n}\nvar es = Array.prototype.filter;\nfunction ts() {\n return Array.from(this.children);\n}\nfunction ns(e) {\n return function() {\n return es.call(this.children, e);\n };\n}\nfunction os(e) {\n return this.selectAll(e == null ? ts : ns(typeof e == \"function\" ? e : Hi(e)));\n}\nfunction is(e) {\n typeof e != \"function\" && (e = Vi(e));\n for (var t = this._groups, n = t.length, o = new Array(n), i = 0; i < n; ++i)\n for (var r = t[i], a = r.length, s = o[i] = [], l, u = 0; u < a; ++u)\n (l = r[u]) && e.call(l, l.__data__, u, r) && s.push(l);\n return new _e(o, this._parents);\n}\nfunction Li(e) {\n return new Array(e.length);\n}\nfunction rs() {\n return new _e(this._enter || this._groups.map(Li), this._parents);\n}\nfunction qt(e, t) {\n this.ownerDocument = e.ownerDocument, this.namespaceURI = e.namespaceURI, this._next = null, this._parent = e, this.__data__ = t;\n}\nqt.prototype = {\n constructor: qt,\n appendChild: function(e) {\n return this._parent.insertBefore(e, this._next);\n },\n insertBefore: function(e, t) {\n return this._parent.insertBefore(e, t);\n },\n querySelector: function(e) {\n return this._parent.querySelector(e);\n },\n querySelectorAll: function(e) {\n return this._parent.querySelectorAll(e);\n }\n};\nfunction as(e) {\n return function() {\n return e;\n };\n}\nfunction ss(e, t, n, o, i, r) {\n for (var a = 0, s, l = t.length, u = r.length; a < u; ++a)\n (s = t[a]) ? (s.__data__ = r[a], o[a] = s) : n[a] = new qt(e, r[a]);\n for (; a < l; ++a)\n (s = t[a]) && (i[a] = s);\n}\nfunction ls(e, t, n, o, i, r, a) {\n var s, l, u = /* @__PURE__ */ new Map(), c = t.length, v = r.length, g = new Array(c), x;\n for (s = 0; s < c; ++s)\n (l = t[s]) && (g[s] = x = a.call(l, l.__data__, s, t) + \"\", u.has(x) ? i[s] = l : u.set(x, l));\n for (s = 0; s < v; ++s)\n x = a.call(e, r[s], s, r) + \"\", (l = u.get(x)) ? (o[s] = l, l.__data__ = r[s], u.delete(x)) : n[s] = new qt(e, r[s]);\n for (s = 0; s < c; ++s)\n (l = t[s]) && u.get(g[s]) === l && (i[s] = l);\n}\nfunction us(e) {\n return e.__data__;\n}\nfunction cs(e, t) {\n if (!arguments.length)\n return Array.from(this, us);\n var n = t ? ls : ss, o = this._parents, i = this._groups;\n typeof e != \"function\" && (e = as(e));\n for (var r = i.length, a = new Array(r), s = new Array(r), l = new Array(r), u = 0; u < r; ++u) {\n var c = o[u], v = i[u], g = v.length, x = ds(e.call(c, c && c.__data__, u, o)), h = x.length, d = s[u] = new Array(h), w = a[u] = new Array(h), y = l[u] = new Array(g);\n n(c, v, d, w, y, x, t);\n for (var S = 0, V = 0, p, N; S < h; ++S)\n if (p = d[S]) {\n for (S >= V && (V = S + 1); !(N = w[V]) && ++V < h; )\n ;\n p._next = N || null;\n }\n }\n return a = new _e(a, o), a._enter = s, a._exit = l, a;\n}\nfunction ds(e) {\n return typeof e == \"object\" && \"length\" in e ? e : Array.from(e);\n}\nfunction fs() {\n return new _e(this._exit || this._groups.map(Li), this._parents);\n}\nfunction hs(e, t, n) {\n var o = this.enter(), i = this, r = this.exit();\n return typeof e == \"function\" ? (o = e(o), o && (o = o.selection())) : o = o.append(e + \"\"), t != null && (i = t(i), i && (i = i.selection())), n == null ? r.remove() : n(r), o && i ? o.merge(i).order() : i;\n}\nfunction gs(e) {\n for (var t = e.selection ? e.selection() : e, n = this._groups, o = t._groups, i = n.length, r = o.length, a = Math.min(i, r), s = new Array(i), l = 0; l < a; ++l)\n for (var u = n[l], c = o[l], v = u.length, g = s[l] = new Array(v), x, h = 0; h < v; ++h)\n (x = u[h] || c[h]) && (g[h] = x);\n for (; l < i; ++l)\n s[l] = n[l];\n return new _e(s, this._parents);\n}\nfunction vs() {\n for (var e = this._groups, t = -1, n = e.length; ++t < n; )\n for (var o = e[t], i = o.length - 1, r = o[i], a; --i >= 0; )\n (a = o[i]) && (r && a.compareDocumentPosition(r) ^ 4 && r.parentNode.insertBefore(a, r), r = a);\n return this;\n}\nfunction ms(e) {\n e || (e = ps);\n function t(v, g) {\n return v && g ? e(v.__data__, g.__data__) : !v - !g;\n }\n for (var n = this._groups, o = n.length, i = new Array(o), r = 0; r < o; ++r) {\n for (var a = n[r], s = a.length, l = i[r] = new Array(s), u, c = 0; c < s; ++c)\n (u = a[c]) && (l[c] = u);\n l.sort(t);\n }\n return new _e(i, this._parents).order();\n}\nfunction ps(e, t) {\n return e < t ? -1 : e > t ? 1 : e >= t ? 0 : NaN;\n}\nfunction ys() {\n var e = arguments[0];\n return arguments[0] = this, e.apply(null, arguments), this;\n}\nfunction xs() {\n return Array.from(this);\n}\nfunction _s() {\n for (var e = this._groups, t = 0, n = e.length; t < n; ++t)\n for (var o = e[t], i = 0, r = o.length; i < r; ++i) {\n var a = o[i];\n if (a)\n return a;\n }\n return null;\n}\nfunction ws() {\n let e = 0;\n for (const t of this)\n ++e;\n return e;\n}\nfunction bs() {\n return !this.node();\n}\nfunction Es(e) {\n for (var t = this._groups, n = 0, o = t.length; n < o; ++n)\n for (var i = t[n], r = 0, a = i.length, s; r < a; ++r)\n (s = i[r]) && e.call(s, s.__data__, r, i);\n return this;\n}\nfunction Ss(e) {\n return function() {\n this.removeAttribute(e);\n };\n}\nfunction Ns(e) {\n return function() {\n this.removeAttributeNS(e.space, e.local);\n };\n}\nfunction Cs(e, t) {\n return function() {\n this.setAttribute(e, t);\n };\n}\nfunction Ms(e, t) {\n return function() {\n this.setAttributeNS(e.space, e.local, t);\n };\n}\nfunction $s(e, t) {\n return function() {\n var n = t.apply(this, arguments);\n n == null ? this.removeAttribute(e) : this.setAttribute(e, n);\n };\n}\nfunction ks(e, t) {\n return function() {\n var n = t.apply(this, arguments);\n n == null ? this.removeAttributeNS(e.space, e.local) : this.setAttributeNS(e.space, e.local, n);\n };\n}\nfunction Os(e, t) {\n var n = hn(e);\n if (arguments.length < 2) {\n var o = this.node();\n return n.local ? o.getAttributeNS(n.space, n.local) : o.getAttribute(n);\n }\n return this.each((t == null ? n.local ? Ns : Ss : typeof t == \"function\" ? n.local ? ks : $s : n.local ? Ms : Cs)(n, t));\n}\nfunction Gi(e) {\n return e.ownerDocument && e.ownerDocument.defaultView || e.document && e || e.defaultView;\n}\nfunction Ts(e) {\n return function() {\n this.style.removeProperty(e);\n };\n}\nfunction Is(e, t, n) {\n return function() {\n this.style.setProperty(e, t, n);\n };\n}\nfunction Ps(e, t, n) {\n return function() {\n var o = t.apply(this, arguments);\n o == null ? this.style.removeProperty(e) : this.style.setProperty(e, o, n);\n };\n}\nfunction Ds(e, t, n) {\n return arguments.length > 1 ? this.each((t == null ? Ts : typeof t == \"function\" ? Ps : Is)(e, t, n ?? \"\")) : ft(this.node(), e);\n}\nfunction ft(e, t) {\n return e.style.getPropertyValue(t) || Gi(e).getComputedStyle(e, null).getPropertyValue(t);\n}\nfunction zs(e) {\n return function() {\n delete this[e];\n };\n}\nfunction As(e, t) {\n return function() {\n this[e] = t;\n };\n}\nfunction Bs(e, t) {\n return function() {\n var n = t.apply(this, arguments);\n n == null ? delete this[e] : this[e] = n;\n };\n}\nfunction Rs(e, t) {\n return arguments.length > 1 ? this.each((t == null ? zs : typeof t == \"function\" ? Bs : As)(e, t)) : this.node()[e];\n}\nfunction Fi(e) {\n return e.trim().split(/^|\\s+/);\n}\nfunction mo(e) {\n return e.classList || new Yi(e);\n}\nfunction Yi(e) {\n this._node = e, this._names = Fi(e.getAttribute(\"class\") || \"\");\n}\nYi.prototype = {\n add: function(e) {\n var t = this._names.indexOf(e);\n t < 0 && (this._names.push(e), this._node.setAttribute(\"class\", this._names.join(\" \")));\n },\n remove: function(e) {\n var t = this._names.indexOf(e);\n t >= 0 && (this._names.splice(t, 1), this._node.setAttribute(\"class\", this._names.join(\" \")));\n },\n contains: function(e) {\n return this._names.indexOf(e) >= 0;\n }\n};\nfunction Xi(e, t) {\n for (var n = mo(e), o = -1, i = t.length; ++o < i; )\n n.add(t[o]);\n}\nfunction Zi(e, t) {\n for (var n = mo(e), o = -1, i = t.length; ++o < i; )\n n.remove(t[o]);\n}\nfunction Vs(e) {\n return function() {\n Xi(this, e);\n };\n}\nfunction Hs(e) {\n return function() {\n Zi(this, e);\n };\n}\nfunction Ls(e, t) {\n return function() {\n (t.apply(this, arguments) ? Xi : Zi)(this, e);\n };\n}\nfunction Gs(e, t) {\n var n = Fi(e + \"\");\n if (arguments.length < 2) {\n for (var o = mo(this.node()), i = -1, r = n.length; ++i < r; )\n if (!o.contains(n[i]))\n return !1;\n return !0;\n }\n return this.each((typeof t == \"function\" ? Ls : t ? Vs : Hs)(n, t));\n}\nfunction Fs() {\n this.textContent = \"\";\n}\nfunction Ys(e) {\n return function() {\n this.textContent = e;\n };\n}\nfunction Xs(e) {\n return function() {\n var t = e.apply(this, arguments);\n this.textContent = t ?? \"\";\n };\n}\nfunction Zs(e) {\n return arguments.length ? this.each(e == null ? Fs : (typeof e == \"function\" ? Xs : Ys)(e)) : this.node().textContent;\n}\nfunction Us() {\n this.innerHTML = \"\";\n}\nfunction Ws(e) {\n return function() {\n this.innerHTML = e;\n };\n}\nfunction Ks(e) {\n return function() {\n var t = e.apply(this, arguments);\n this.innerHTML = t ?? \"\";\n };\n}\nfunction qs(e) {\n return arguments.length ? this.each(e == null ? Us : (typeof e == \"function\" ? Ks : Ws)(e)) : this.node().innerHTML;\n}\nfunction js() {\n this.nextSibling && this.parentNode.appendChild(this);\n}\nfunction Qs() {\n return this.each(js);\n}\nfunction Js() {\n this.previousSibling && this.parentNode.insertBefore(this, this.parentNode.firstChild);\n}\nfunction el() {\n return this.each(Js);\n}\nfunction tl(e) {\n var t = typeof e == \"function\" ? e : Bi(e);\n return this.select(function() {\n return this.appendChild(t.apply(this, arguments));\n });\n}\nfunction nl() {\n return null;\n}\nfunction ol(e, t) {\n var n = typeof e == \"function\" ? e : Bi(e), o = t == null ? nl : typeof t == \"function\" ? t : vo(t);\n return this.select(function() {\n return this.insertBefore(n.apply(this, arguments), o.apply(this, arguments) || null);\n });\n}\nfunction il() {\n var e = this.parentNode;\n e && e.removeChild(this);\n}\nfunction rl() {\n return this.each(il);\n}\nfunction al() {\n var e = this.cloneNode(!1), t = this.parentNode;\n return t ? t.insertBefore(e, this.nextSibling) : e;\n}\nfunction sl() {\n var e = this.cloneNode(!0), t = this.parentNode;\n return t ? t.insertBefore(e, this.nextSibling) : e;\n}\nfunction ll(e) {\n return this.select(e ? sl : al);\n}\nfunction ul(e) {\n return arguments.length ? this.property(\"__data__\", e) : this.node().__data__;\n}\nfunction cl(e) {\n return function(t) {\n e.call(this, t, this.__data__);\n };\n}\nfunction dl(e) {\n return e.trim().split(/^|\\s+/).map(function(t) {\n var n = \"\", o = t.indexOf(\".\");\n return o >= 0 && (n = t.slice(o + 1), t = t.slice(0, o)), { type: t, name: n };\n });\n}\nfunction fl(e) {\n return function() {\n var t = this.__on;\n if (t) {\n for (var n = 0, o = -1, i = t.length, r; n < i; ++n)\n r = t[n], (!e.type || r.type === e.type) && r.name === e.name ? this.removeEventListener(r.type, r.listener, r.options) : t[++o] = r;\n ++o ? t.length = o : delete this.__on;\n }\n };\n}\nfunction hl(e, t, n) {\n return function() {\n var o = this.__on, i, r = cl(t);\n if (o) {\n for (var a = 0, s = o.length; a < s; ++a)\n if ((i = o[a]).type === e.type && i.name === e.name) {\n this.removeEventListener(i.type, i.listener, i.options), this.addEventListener(i.type, i.listener = r, i.options = n), i.value = t;\n return;\n }\n }\n this.addEventListener(e.type, r, n), i = { type: e.type, name: e.name, value: t, listener: r, options: n }, o ? o.push(i) : this.__on = [i];\n };\n}\nfunction gl(e, t, n) {\n var o = dl(e + \"\"), i, r = o.length, a;\n if (arguments.length < 2) {\n var s = this.node().__on;\n if (s) {\n for (var l = 0, u = s.length, c; l < u; ++l)\n for (i = 0, c = s[l]; i < r; ++i)\n if ((a = o[i]).type === c.type && a.name === c.name)\n return c.value;\n }\n return;\n }\n for (s = t ? hl : fl, i = 0; i < r; ++i)\n this.each(s(o[i], t, n));\n return this;\n}\nfunction Ui(e, t, n) {\n var o = Gi(e), i = o.CustomEvent;\n typeof i == \"function\" ? i = new i(t, n) : (i = o.document.createEvent(\"Event\"), n ? (i.initEvent(t, n.bubbles, n.cancelable), i.detail = n.detail) : i.initEvent(t, !1, !1)), e.dispatchEvent(i);\n}\nfunction vl(e, t) {\n return function() {\n return Ui(this, e, t);\n };\n}\nfunction ml(e, t) {\n return function() {\n return Ui(this, e, t.apply(this, arguments));\n };\n}\nfunction pl(e, t) {\n return this.each((typeof t == \"function\" ? ml : vl)(e, t));\n}\nfunction* yl() {\n for (var e = this._groups, t = 0, n = e.length; t < n; ++t)\n for (var o = e[t], i = 0, r = o.length, a; i < r; ++i)\n (a = o[i]) && (yield a);\n}\nvar Wi = [null];\nfunction _e(e, t) {\n this._groups = e, this._parents = t;\n}\nfunction $t() {\n return new _e([[document.documentElement]], Wi);\n}\nfunction xl() {\n return this;\n}\n_e.prototype = $t.prototype = {\n constructor: _e,\n select: Xa,\n selectAll: Ka,\n selectChild: Ja,\n selectChildren: os,\n filter: is,\n data: cs,\n enter: rs,\n exit: fs,\n join: hs,\n merge: gs,\n selection: xl,\n order: vs,\n sort: ms,\n call: ys,\n nodes: xs,\n node: _s,\n size: ws,\n empty: bs,\n each: Es,\n attr: Os,\n style: Ds,\n property: Rs,\n classed: Gs,\n text: Zs,\n html: qs,\n raise: Qs,\n lower: el,\n append: tl,\n insert: ol,\n remove: rl,\n clone: ll,\n datum: ul,\n on: gl,\n dispatch: pl,\n [Symbol.iterator]: yl\n};\nfunction we(e) {\n return typeof e == \"string\" ? new _e([[document.querySelector(e)]], [document.documentElement]) : new _e([[e]], Wi);\n}\nfunction _l(e) {\n let t;\n for (; t = e.sourceEvent; )\n e = t;\n return e;\n}\nfunction Ne(e, t) {\n if (e = _l(e), t === void 0 && (t = e.currentTarget), t) {\n var n = t.ownerSVGElement || t;\n if (n.createSVGPoint) {\n var o = n.createSVGPoint();\n return o.x = e.clientX, o.y = e.clientY, o = o.matrixTransform(t.getScreenCTM().inverse()), [o.x, o.y];\n }\n if (t.getBoundingClientRect) {\n var i = t.getBoundingClientRect();\n return [e.clientX - i.left - t.clientLeft, e.clientY - i.top - t.clientTop];\n }\n }\n return [e.pageX, e.pageY];\n}\nconst wl = { passive: !1 }, bt = { capture: !0, passive: !1 };\nfunction $n(e) {\n e.stopImmediatePropagation();\n}\nfunction at(e) {\n e.preventDefault(), e.stopImmediatePropagation();\n}\nfunction Ki(e) {\n var t = e.document.documentElement, n = we(e).on(\"dragstart.drag\", at, bt);\n \"onselectstart\" in t ? n.on(\"selectstart.drag\", at, bt) : (t.__noselect = t.style.MozUserSelect, t.style.MozUserSelect = \"none\");\n}\nfunction qi(e, t) {\n var n = e.document.documentElement, o = we(e).on(\"dragstart.drag\", null);\n t && (o.on(\"click.drag\", at, bt), setTimeout(function() {\n o.on(\"click.drag\", null);\n }, 0)), \"onselectstart\" in n ? o.on(\"selectstart.drag\", null) : (n.style.MozUserSelect = n.__noselect, delete n.__noselect);\n}\nconst Pt = (e) => () => e;\nfunction Un(e, {\n sourceEvent: t,\n subject: n,\n target: o,\n identifier: i,\n active: r,\n x: a,\n y: s,\n dx: l,\n dy: u,\n dispatch: c\n}) {\n Object.defineProperties(this, {\n type: { value: e, enumerable: !0, configurable: !0 },\n sourceEvent: { value: t, enumerable: !0, configurable: !0 },\n subject: { value: n, enumerable: !0, configurable: !0 },\n target: { value: o, enumerable: !0, configurable: !0 },\n identifier: { value: i, enumerable: !0, configurable: !0 },\n active: { value: r, enumerable: !0, configurable: !0 },\n x: { value: a, enumerable: !0, configurable: !0 },\n y: { value: s, enumerable: !0, configurable: !0 },\n dx: { value: l, enumerable: !0, configurable: !0 },\n dy: { value: u, enumerable: !0, configurable: !0 },\n _: { value: c }\n });\n}\nUn.prototype.on = function() {\n var e = this._.on.apply(this._, arguments);\n return e === this._ ? this : e;\n};\nfunction bl(e) {\n return !e.ctrlKey && !e.button;\n}\nfunction El() {\n return this.parentNode;\n}\nfunction Sl(e, t) {\n return t ?? { x: e.x, y: e.y };\n}\nfunction Nl() {\n return navigator.maxTouchPoints || \"ontouchstart\" in this;\n}\nfunction Cl() {\n var e = bl, t = El, n = Sl, o = Nl, i = {}, r = fn(\"start\", \"drag\", \"end\"), a = 0, s, l, u, c, v = 0;\n function g(p) {\n p.on(\"mousedown.drag\", x).filter(o).on(\"touchstart.drag\", w).on(\"touchmove.drag\", y, wl).on(\"touchend.drag touchcancel.drag\", S).style(\"touch-action\", \"none\").style(\"-webkit-tap-highlight-color\", \"rgba(0,0,0,0)\");\n }\n function x(p, N) {\n if (!(c || !e.call(this, p, N))) {\n var T = V(this, t.call(this, p, N), p, N, \"mouse\");\n T && (we(p.view).on(\"mousemove.drag\", h, bt).on(\"mouseup.drag\", d, bt), Ki(p.view), $n(p), u = !1, s = p.clientX, l = p.clientY, T(\"start\", p));\n }\n }\n function h(p) {\n if (at(p), !u) {\n var N = p.clientX - s, T = p.clientY - l;\n u = N * N + T * T > v;\n }\n i.mouse(\"drag\", p);\n }\n function d(p) {\n we(p.view).on(\"mousemove.drag mouseup.drag\", null), qi(p.view, u), at(p), i.mouse(\"end\", p);\n }\n function w(p, N) {\n if (e.call(this, p, N)) {\n var T = p.changedTouches, _ = t.call(this, p, N), P = T.length, R, $;\n for (R = 0; R < P; ++R)\n ($ = V(this, _, p, N, T[R].identifier, T[R])) && ($n(p), $(\"start\", p, T[R]));\n }\n }\n function y(p) {\n var N = p.changedTouches, T = N.length, _, P;\n for (_ = 0; _ < T; ++_)\n (P = i[N[_].identifier]) && (at(p), P(\"drag\", p, N[_]));\n }\n function S(p) {\n var N = p.changedTouches, T = N.length, _, P;\n for (c && clearTimeout(c), c = setTimeout(function() {\n c = null;\n }, 500), _ = 0; _ < T; ++_)\n (P = i[N[_].identifier]) && ($n(p), P(\"end\", p, N[_]));\n }\n function V(p, N, T, _, P, R) {\n var $ = r.copy(), D = Ne(R || T, N), Q, ee, m;\n if ((m = n.call(p, new Un(\"beforestart\", {\n sourceEvent: T,\n target: g,\n identifier: P,\n active: a,\n x: D[0],\n y: D[1],\n dx: 0,\n dy: 0,\n dispatch: $\n }), _)) != null)\n return Q = m.x - D[0] || 0, ee = m.y - D[1] || 0, function A(E, G, Z) {\n var K = D, z;\n switch (E) {\n case \"start\":\n i[P] = A, z = a++;\n break;\n case \"end\":\n delete i[P], --a;\n case \"drag\":\n D = Ne(Z || G, N), z = a;\n break;\n }\n $.call(\n E,\n p,\n new Un(E, {\n sourceEvent: G,\n subject: m,\n target: g,\n identifier: P,\n active: z,\n x: D[0] + Q,\n y: D[1] + ee,\n dx: D[0] - K[0],\n dy: D[1] - K[1],\n dispatch: $\n }),\n _\n );\n };\n }\n return g.filter = function(p) {\n return arguments.length ? (e = typeof p == \"function\" ? p : Pt(!!p), g) : e;\n }, g.container = function(p) {\n return arguments.length ? (t = typeof p == \"function\" ? p : Pt(p), g) : t;\n }, g.subject = function(p) {\n return arguments.length ? (n = typeof p == \"function\" ? p : Pt(p), g) : n;\n }, g.touchable = function(p) {\n return arguments.length ? (o = typeof p == \"function\" ? p : Pt(!!p), g) : o;\n }, g.on = function() {\n var p = r.on.apply(r, arguments);\n return p === r ? g : p;\n }, g.clickDistance = function(p) {\n return arguments.length ? (v = (p = +p) * p, g) : Math.sqrt(v);\n }, g;\n}\nfunction ji(e) {\n const t = fe(), n = M(t, \"vueFlowRef\"), o = M(t, \"snapToGrid\"), i = M(t, \"snapGrid\"), r = M(t, \"noDragClassName\"), a = M(t, \"nodes\"), s = M(t, \"nodeExtent\"), l = M(t, \"viewport\"), u = M(t, \"autoPanOnNodeDrag\"), c = M(t, \"nodesDraggable\"), v = M(t, \"panBy\"), g = M(t, \"findNode\"), x = M(t, \"multiSelectionActive\"), h = M(t, \"nodesSelectionActive\"), d = M(t, \"selectNodesOnDrag\"), w = M(t, \"removeSelectedElements\"), y = M(t, \"addSelectedNodes\"), S = M(t, \"updateNodePositions\"), V = M(t, \"emits\"), { onStart: p, onDrag: N, onStop: T, el: _, disabled: P, id: R, selectable: $ } = e, D = ie(!1);\n let Q = ie([]), ee = ie(), m = ie(null), A = ie({ x: void 0, y: void 0 }), E = ie({ x: 0, y: 0 }), G = ie(null), Z = ie(0), K = ie(!1);\n const z = Ra(), W = ({ x: q, y: te }) => {\n A.value = { x: q, y: te };\n let re = !1;\n if (Q.value = Q.value.map((k) => {\n const H = { x: q - k.distance.x, y: te - k.distance.y };\n o.value && (H.x = i.value[0] * Math.round(H.x / i.value[0]), H.y = i.value[1] * Math.round(H.y / i.value[1]));\n const { computedPosition: f } = go(\n k,\n H,\n V.value.error,\n s.value,\n k.parentNode ? g.value(k.parentNode) : void 0\n );\n return re = re || k.position.x !== f.x || k.position.y !== f.y, k.position = f, k;\n }), !!re && (S.value(Q.value, !0, !0), D.value = !0, G.value)) {\n const [k, H] = Mn({\n id: R,\n dragItems: Q.value,\n findNode: g.value\n });\n N({ event: G.value, node: k, nodes: H });\n }\n }, B = () => {\n if (!m.value)\n return;\n const [q, te] = Pi(E.value, m.value);\n if (q !== 0 || te !== 0) {\n const re = {\n x: (A.value.x ?? 0) - q / l.value.zoom,\n y: (A.value.y ?? 0) - te / l.value.zoom\n };\n v.value({ x: q, y: te }) && W(re);\n }\n Z.value = requestAnimationFrame(B);\n };\n return de([() => le(P), _], ([q, te]) => {\n if (te) {\n const re = we(te);\n if (q)\n re.on(\".drag\", null);\n else {\n const k = g.value(R);\n ee.value = Cl().on(\"start\", (H) => {\n var b;\n !d.value && !x.value && k && (k.selected || w.value()), k && le($) && d.value && Xn(\n k,\n x.value,\n y.value,\n w.value,\n h,\n !1,\n te\n );\n const f = z(H);\n if (A.value = f, Q.value = Pa(a.value, c.value, f, g.value, R), Q.value.length) {\n const [L, I] = Mn({\n id: R,\n dragItems: Q.value,\n findNode: g.value\n });\n p({ event: H.sourceEvent, node: L, nodes: I });\n }\n m.value = ((b = n.value) == null ? void 0 : b.getBoundingClientRect()) || null, E.value = rt(H.sourceEvent, m.value);\n }).on(\"drag\", (H) => {\n const f = z(H);\n !K.value && u.value && (K.value = !0, B()), (A.value.x !== f.xSnapped || A.value.y !== f.ySnapped) && Q.value.length && (G.value = H.sourceEvent, E.value = rt(H.sourceEvent, m.value), W(f));\n }).on(\"end\", (H) => {\n if (D.value = !1, K.value = !1, cancelAnimationFrame(Z.value), Q.value.length) {\n S.value(Q.value, !1, !1);\n const [f, b] = Mn({\n id: R,\n dragItems: Q.value,\n findNode: g.value\n });\n T({ event: H.sourceEvent, node: f, nodes: b });\n }\n }).filter((H) => {\n const f = H.target;\n return !H.button && (!r.value || !Ho(f, `.${r.value}`, te) && (!(k != null && k.dragHandle) || Ho(f, k.dragHandle, te)));\n }), re.call(ee.value);\n }\n }\n }), D;\n}\nconst Qi = \"vue-flow__node-desc\", Ji = \"vue-flow__edge-desc\", Ml = \"vue-flow__aria-live\", er = [\"Enter\", \" \", \"Escape\"], st = {\n ArrowUp: { x: 0, y: -1 },\n ArrowDown: { x: 0, y: 1 },\n ArrowLeft: { x: -1, y: 0 },\n ArrowRight: { x: 1, y: 0 }\n};\nfunction Wn(e) {\n var i, r;\n const t = ((r = (i = e.composedPath) == null ? void 0 : i.call(e)) == null ? void 0 : r[0]) || e.target, n = Ae(t.hasAttribute) ? t.hasAttribute(\"contenteditable\") : !1, o = Ae(t.closest) ? t.closest(\".nokey\") : null;\n return [\"INPUT\", \"SELECT\", \"TEXTAREA\"].includes(t == null ? void 0 : t.nodeName) || n || !!o;\n}\nfunction $l(e) {\n return e.ctrlKey || e.metaKey || e.shiftKey;\n}\nfunction kl(e, t) {\n return (n) => e.some((o) => {\n const i = o.split(\"+\").map((r) => r.trim().toLowerCase());\n return i.length === 1 ? n.key === o : (t.add(n.key.toLowerCase()), i.every((r) => t.has(r)));\n });\n}\nconst _t = (e, t) => {\n const n = ao(), o = ie(le(e) === !0), i = ie(!1), r = ie(/* @__PURE__ */ new Set());\n return de(o, () => {\n t == null || t(o.value);\n }), de(\n () => le(e),\n (a) => {\n if (n && typeof n.addEventListener < \"u\" && ro(n, \"blur\", () => {\n o.value = !1;\n }), zr(a)) {\n o.value = a;\n return;\n }\n Array.isArray(a) && (a = kl(a, r.value)), a && (Mo(\n a,\n (s) => {\n i.value = $l(s), !(!i.value && Wn(s)) && (s.preventDefault(), o.value = !0);\n },\n { eventName: \"keydown\" }\n ), Mo(\n a,\n (s) => {\n if (o.value) {\n if (!i.value && Wn(s))\n return;\n i.value = !1, r.value.clear(), o.value = !1;\n }\n },\n { eventName: \"keyup\" }\n ));\n },\n {\n immediate: !0\n }\n ), o;\n}, Ol = ge({\n name: \"Node\",\n compatConfig: { MODE: 3 },\n props: [\"name\", \"type\", \"id\", \"draggable\", \"selectable\", \"focusable\", \"connectable\", \"node\", \"resizeObserver\"],\n setup(e) {\n ut($i, e.id);\n const t = fe(), n = M(t, \"id\"), o = M(t, \"edges\"), i = M(t, \"noPanClassName\"), r = M(t, \"selectNodesOnDrag\"), a = M(t, \"nodesSelectionActive\"), s = M(t, \"multiSelectionActive\"), l = M(t, \"emits\"), u = M(t, \"findNode\"), c = M(t, \"removeSelectedNodes\"), v = M(t, \"addSelectedNodes\"), g = M(t, \"updateNodeDimensions\"), x = M(t, \"onUpdateNodeInternals\"), h = M(t, \"getIntersectingNodes\"), d = M(t, \"getNodeTypes\"), w = M(t, \"nodeExtent\"), y = M(t, \"elevateNodesOnSelect\"), S = M(t, \"disableKeyboardA11y\"), V = M(t, \"ariaLiveMessage\"), p = M(t, \"snapToGrid\"), N = M(t, \"snapGrid\"), T = Ai(), _ = yt(e, \"node\"), P = J(() => u.value(_.value.parentNode)), R = J(() => sn([_.value], o.value)), $ = ie();\n ut(ki, $);\n const { emit: D, on: Q } = Ba(_.value, l.value), ee = ji({\n id: e.id,\n el: $,\n disabled: () => !e.draggable,\n selectable: () => e.selectable,\n onStart(k) {\n D.dragStart({ ...k, intersections: h.value(_.value) });\n },\n onDrag(k) {\n D.drag({ ...k, intersections: h.value(_.value) });\n },\n onStop(k) {\n D.dragStop({ ...k, intersections: h.value(_.value) });\n }\n }), m = J(() => _.value.class instanceof Function ? _.value.class(_.value) : _.value.class), A = J(() => {\n const k = (_.value.style instanceof Function ? _.value.style(_.value) : _.value.style) || {}, H = _.value.width instanceof Function ? _.value.width(_.value) : _.value.width, f = _.value.height instanceof Function ? _.value.height(_.value) : _.value.height;\n return H && (k.width = typeof H == \"string\" ? H : `${H}px`), f && (k.height = typeof f == \"string\" ? f : `${f}px`), k;\n }), E = () => Number(_.value.zIndex ?? A.value.zIndex ?? 0);\n return x.value((k) => {\n k.includes(e.id) && Z();\n }), Ve(() => {\n e.resizeObserver.observe($.value);\n }), gi(() => {\n e.resizeObserver.unobserve($.value);\n }), de(\n [() => _.value.type, () => _.value.sourcePosition, () => _.value.targetPosition],\n () => {\n g.value([{ id: e.id, nodeElement: $.value, forceUpdate: !0 }]);\n },\n { flush: \"pre\" }\n ), de(\n [\n () => _.value.position.x,\n () => _.value.position.y,\n () => {\n var k;\n return (k = P.value) == null ? void 0 : k.computedPosition.x;\n },\n () => {\n var k;\n return (k = P.value) == null ? void 0 : k.computedPosition.y;\n },\n () => {\n var k;\n return (k = P.value) == null ? void 0 : k.computedPosition.z;\n },\n () => E(),\n () => _.value.selected,\n () => _.value.dimensions.height,\n () => _.value.dimensions.width,\n () => {\n var k;\n return (k = P.value) == null ? void 0 : k.dimensions.height;\n },\n () => {\n var k;\n return (k = P.value) == null ? void 0 : k.dimensions.width;\n }\n ],\n ([k, H, f, b, L, I]) => {\n const F = {\n x: k,\n y: H,\n z: I + (y.value && _.value.selected ? 1e3 : 0)\n };\n Ie(f) && Ie(b) ? _.value.computedPosition = ma({ x: f, y: b, z: L }, F) : _.value.computedPosition = F;\n },\n { flush: \"pre\", immediate: !0 }\n ), de([() => _.value.extent, () => w.value], ([k, H], [f, b]) => {\n (k !== f || H !== b) && G();\n }), _.value.extent === \"parent\" || typeof _.value.extent == \"object\" && \"range\" in _.value.extent && _.value.extent.range === \"parent\" ? ye(() => _.value.initialized).toBe(!0).then(G) : G(), () => ue(\n \"div\",\n {\n ref: $,\n \"data-id\": _.value.id,\n class: [\n \"vue-flow__node\",\n `vue-flow__node-${e.type === !1 ? \"default\" : e.name}`,\n {\n [i.value]: e.draggable,\n dragging: ee == null ? void 0 : ee.value,\n selected: _.value.selected,\n selectable: e.selectable\n },\n m.value\n ],\n style: {\n zIndex: _.value.computedPosition.z ?? E(),\n transform: `translate(${_.value.computedPosition.x}px,${_.value.computedPosition.y}px)`,\n pointerEvents: e.selectable || e.draggable ? \"all\" : \"none\",\n visibility: _.value.initialized ? \"visible\" : \"hidden\",\n ...A.value\n },\n tabIndex: e.focusable ? 0 : void 0,\n role: e.focusable ? \"button\" : void 0,\n \"aria-describedby\": S.value ? void 0 : `${Qi}-${n.value}`,\n \"aria-label\": _.value.ariaLabel,\n onMouseenter: K,\n onMousemove: z,\n onMouseleave: W,\n onContextmenu: B,\n onClick: te,\n onDblclick: q,\n onKeydown: re\n },\n [\n ue(e.type === !1 ? d.value.default : e.type, {\n id: _.value.id,\n type: _.value.type,\n data: _.value.data,\n events: { ..._.value.events, ...Q },\n selected: !!_.value.selected,\n resizing: !!_.value.resizing,\n dragging: ee.value,\n connectable: e.connectable,\n position: _.value.position,\n dimensions: _.value.dimensions,\n isValidTargetPos: _.value.isValidTargetPos,\n isValidSourcePos: _.value.isValidSourcePos,\n parent: _.value.parentNode,\n zIndex: _.value.computedPosition.z,\n targetPosition: _.value.targetPosition,\n sourcePosition: _.value.sourcePosition,\n label: _.value.label,\n dragHandle: _.value.dragHandle,\n onUpdateNodeInternals: Z\n })\n ]\n );\n function G() {\n const k = _.value.computedPosition;\n p.value && (k.x = N.value[0] * Math.round(k.x / N.value[0]), k.y = N.value[1] * Math.round(k.y / N.value[1]));\n const { computedPosition: H, position: f } = go(_.value, k, l.value.error, w.value, P.value);\n (_.value.computedPosition.x !== H.x || _.value.computedPosition.y !== H.y) && (_.value.computedPosition = { ..._.value.computedPosition, ...H }), (_.value.position.x !== f.x || _.value.position.y !== f.y) && (_.value.position = f);\n }\n function Z() {\n $.value && g.value([{ id: e.id, nodeElement: $.value, forceUpdate: !0 }]);\n }\n function K(k) {\n ee != null && ee.value || D.mouseEnter({ event: k, node: _.value, connectedEdges: R.value });\n }\n function z(k) {\n ee != null && ee.value || D.mouseMove({ event: k, node: _.value, connectedEdges: R.value });\n }\n function W(k) {\n ee != null && ee.value || D.mouseLeave({ event: k, node: _.value, connectedEdges: R.value });\n }\n function B(k) {\n return D.contextMenu({ event: k, node: _.value, connectedEdges: R.value });\n }\n function q(k) {\n return D.doubleClick({ event: k, node: _.value, connectedEdges: R.value });\n }\n function te(k) {\n e.selectable && (!r.value || !e.draggable) && Xn(\n _.value,\n s.value,\n v.value,\n c.value,\n a,\n !1,\n $.value\n ), D.click({ event: k, node: _.value, connectedEdges: R.value });\n }\n function re(k) {\n var H;\n if (!Wn(k))\n if (er.includes(k.key) && e.selectable) {\n const f = k.key === \"Escape\";\n f && ((H = $.value) == null || H.blur()), Xn(\n _.value,\n s.value,\n v.value,\n c.value,\n a,\n f,\n $.value\n );\n } else\n !S.value && e.draggable && _.value.selected && st[k.key] && (V.value = `Moved selected node ${k.key.replace(\"Arrow\", \"\").toLowerCase()}. New position, x: ${~~_.value.position.x}, y: ${~~_.value.position.y}`, T(\n {\n x: st[k.key].x,\n y: st[k.key].y\n },\n k.shiftKey\n ));\n }\n }\n}), Tl = Ol, Il = [\"transform\"], Pl = [\"width\", \"height\", \"x\", \"y\", \"rx\", \"ry\"], Dl = [\"y\"], zl = {\n name: \"EdgeText\",\n compatConfig: { MODE: 3 }\n}, Al = /* @__PURE__ */ ge({\n ...zl,\n props: {\n x: null,\n y: null,\n label: null,\n labelStyle: { default: {} },\n labelShowBg: { type: Boolean, default: !0 },\n labelBgStyle: { default: {} },\n labelBgPadding: { default: [2, 4] },\n labelBgBorderRadius: { default: 2 }\n },\n setup(e) {\n let t = ie({ x: 0, y: 0, width: 0, height: 0 });\n const n = ie(null), o = J(() => `translate(${e.x - t.value.width / 2} ${e.y - t.value.height / 2})`);\n Ve(i), de([() => e.x, () => e.y, n, () => e.label], i);\n function i() {\n if (!n.value)\n return;\n const r = n.value.getBBox();\n (r.width !== t.value.width || r.height !== t.value.height) && (t.value = r);\n }\n return (r, a) => (oe(), se(\"g\", {\n transform: C(o),\n class: \"vue-flow__edge-textwrapper\"\n }, [\n e.labelShowBg ? (oe(), se(\"rect\", {\n key: 0,\n class: \"vue-flow__edge-textbg\",\n width: `${C(t).width + 2 * e.labelBgPadding[0]}px`,\n height: `${C(t).height + 2 * e.labelBgPadding[1]}px`,\n x: -e.labelBgPadding[0],\n y: -e.labelBgPadding[1],\n style: Le(e.labelBgStyle),\n rx: e.labelBgBorderRadius,\n ry: e.labelBgBorderRadius\n }, null, 12, Pl)) : Ee(\"\", !0),\n ct(\"text\", vi(r.$attrs, {\n ref_key: \"el\",\n ref: n,\n class: \"vue-flow__edge-text\",\n y: C(t).height / 2,\n dy: \"0.3em\",\n style: e.labelStyle\n }), [\n xe(r.$slots, \"default\", {}, () => [\n C(Pe)(e.label) ? (oe(), se(Ce, { key: 1 }, [\n Cr(Vn(e.label), 1)\n ], 64)) : (oe(), ze(mi(e.label), { key: 0 }))\n ])\n ], 16, Dl)\n ], 8, Il));\n }\n}), gn = function({\n path: e,\n label: t,\n labelX: n,\n labelY: o,\n labelBgBorderRadius: i,\n labelBgPadding: r,\n labelBgStyle: a,\n labelShowBg: s = !0,\n labelStyle: l,\n markerStart: u,\n markerEnd: c,\n interactionWidth: v = 20\n}, { attrs: g }) {\n return [\n ue(\"path\", {\n style: g.style,\n class: [\"vue-flow__edge-path\", g.class].join(\" \"),\n d: e,\n \"marker-end\": c,\n \"marker-start\": u\n }),\n v ? ue(\"path\", {\n d: e,\n fill: \"none\",\n \"stroke-opacity\": 0,\n \"stroke-width\": v\n }) : null,\n t && Ie(n) && Ie(o) ? ue(Al, {\n x: n,\n y: o,\n label: t,\n labelStyle: l,\n labelShowBg: s,\n labelBgStyle: a,\n labelBgPadding: r,\n labelBgBorderRadius: i\n }) : null\n ];\n};\ngn.props = [\n \"path\",\n \"labelX\",\n \"labelY\",\n \"label\",\n \"labelBgBorderRadius\",\n \"labelBgPadding\",\n \"labelBgStyle\",\n \"labelShowBg\",\n \"labelStyle\",\n \"markerStart\",\n \"markerEnd\",\n \"interactionWidth\"\n];\ngn.inheritAttrs = !1;\ngn.compatConfig = { MODE: 3 };\nconst vn = gn;\nfunction tr({\n sourceX: e,\n sourceY: t,\n targetX: n,\n targetY: o\n}) {\n const i = Math.abs(n - e) / 2, r = n < e ? n + i : n - i, a = Math.abs(o - t) / 2, s = o < t ? o + a : o - a;\n return [r, s, i, a];\n}\nfunction nr({\n sourceX: e,\n sourceY: t,\n targetX: n,\n targetY: o,\n sourceControlX: i,\n sourceControlY: r,\n targetControlX: a,\n targetControlY: s\n}) {\n const l = e * 0.125 + i * 0.375 + a * 0.375 + n * 0.125, u = t * 0.125 + r * 0.375 + s * 0.375 + o * 0.125, c = Math.abs(l - e), v = Math.abs(u - t);\n return [l, u, c, v];\n}\nfunction Dt(e, t) {\n return e >= 0 ? 0.5 * e : t * 25 * Math.sqrt(-e);\n}\nfunction Yo({ pos: e, x1: t, y1: n, x2: o, y2: i, c: r }) {\n let a, s;\n switch (e) {\n case j.Left:\n a = t - Dt(t - o, r), s = n;\n break;\n case j.Right:\n a = t + Dt(o - t, r), s = n;\n break;\n case j.Top:\n a = t, s = n - Dt(n - i, r);\n break;\n case j.Bottom:\n a = t, s = n + Dt(i - n, r);\n break;\n }\n return [a, s];\n}\nfunction Kn({\n sourceX: e,\n sourceY: t,\n sourcePosition: n = j.Bottom,\n targetX: o,\n targetY: i,\n targetPosition: r = j.Top,\n curvature: a = 0.25\n}) {\n const [s, l] = Yo({\n pos: n,\n x1: e,\n y1: t,\n x2: o,\n y2: i,\n c: a\n }), [u, c] = Yo({\n pos: r,\n x1: o,\n y1: i,\n x2: e,\n y2: t,\n c: a\n }), [v, g, x, h] = nr({\n sourceX: e,\n sourceY: t,\n targetX: o,\n targetY: i,\n sourceControlX: s,\n sourceControlY: l,\n targetControlX: u,\n targetControlY: c\n });\n return [\n `M${e},${t} C${s},${l} ${u},${c} ${o},${i}`,\n v,\n g,\n x,\n h\n ];\n}\nconst mn = function({ sourcePosition: e = j.Bottom, targetPosition: t = j.Top, ...n }, { attrs: o }) {\n const [i, r, a] = Kn({\n sourcePosition: e,\n targetPosition: t,\n ...n\n });\n return ue(vn, {\n path: i,\n labelX: r,\n labelY: a,\n ...n,\n ...o\n });\n};\nmn.props = [\n \"sourcePosition\",\n \"targetPosition\",\n \"label\",\n \"labelStyle\",\n \"labelShowBg\",\n \"labelBgStyle\",\n \"labelBgPadding\",\n \"labelBgBorderRadius\",\n \"sourceY\",\n \"sourceX\",\n \"targetX\",\n \"targetY\",\n \"curvature\",\n \"markerEnd\",\n \"markerStart\",\n \"interactionWidth\"\n];\nmn.inheritAttrs = !1;\nmn.compatConfig = { MODE: 3 };\nconst Bl = mn;\nfunction Xo({ pos: e, x1: t, y1: n, x2: o, y2: i }) {\n let r, a;\n switch (e) {\n case j.Left:\n case j.Right:\n r = 0.5 * (t + o), a = n;\n break;\n case j.Top:\n case j.Bottom:\n r = t, a = 0.5 * (n + i);\n break;\n }\n return [r, a];\n}\nfunction or({\n sourceX: e,\n sourceY: t,\n sourcePosition: n = j.Bottom,\n targetX: o,\n targetY: i,\n targetPosition: r = j.Top\n}) {\n const [a, s] = Xo({\n pos: n,\n x1: e,\n y1: t,\n x2: o,\n y2: i\n }), [l, u] = Xo({\n pos: r,\n x1: o,\n y1: i,\n x2: e,\n y2: t\n }), [c, v, g, x] = nr({\n sourceX: e,\n sourceY: t,\n targetX: o,\n targetY: i,\n sourceControlX: a,\n sourceControlY: s,\n targetControlX: l,\n targetControlY: u\n });\n return [\n `M${e},${t} C${a},${s} ${l},${u} ${o},${i}`,\n c,\n v,\n g,\n x\n ];\n}\nconst pn = function({ sourcePosition: e = j.Bottom, targetPosition: t = j.Top, ...n }, { attrs: o }) {\n const [i, r, a] = or({\n sourcePosition: e,\n targetPosition: t,\n ...n\n });\n return ue(vn, {\n path: i,\n labelX: r,\n labelY: a,\n ...n,\n ...o\n });\n};\npn.props = [\n \"sourcePosition\",\n \"targetPosition\",\n \"label\",\n \"labelStyle\",\n \"labelShowBg\",\n \"labelBgStyle\",\n \"labelBgPadding\",\n \"labelBgBorderRadius\",\n \"sourceY\",\n \"sourceX\",\n \"targetX\",\n \"targetY\",\n \"markerEnd\",\n \"markerStart\",\n \"interactionWidth\"\n];\npn.inheritAttrs = !1;\npn.compatConfig = { MODE: 3 };\nconst Rl = pn, Zo = {\n [j.Left]: { x: -1, y: 0 },\n [j.Right]: { x: 1, y: 0 },\n [j.Top]: { x: 0, y: -1 },\n [j.Bottom]: { x: 0, y: 1 }\n};\nfunction Vl({\n source: e,\n sourcePosition: t = j.Bottom,\n target: n\n}) {\n return t === j.Left || t === j.Right ? e.x < n.x ? { x: 1, y: 0 } : { x: -1, y: 0 } : e.y < n.y ? { x: 0, y: 1 } : { x: 0, y: -1 };\n}\nfunction Uo(e, t) {\n return Math.sqrt((t.x - e.x) ** 2 + (t.y - e.y) ** 2);\n}\nfunction Hl({\n source: e,\n sourcePosition: t = j.Bottom,\n target: n,\n targetPosition: o = j.Top,\n center: i,\n offset: r\n}) {\n const a = Zo[t], s = Zo[o], l = { x: e.x + a.x * r, y: e.y + a.y * r }, u = { x: n.x + s.x * r, y: n.y + s.y * r }, c = Vl({\n source: l,\n sourcePosition: t,\n target: u\n }), v = c.x !== 0 ? \"x\" : \"y\", g = c[v];\n let x, h, d;\n const [w, y, S, V] = tr({\n sourceX: e.x,\n sourceY: e.y,\n targetX: n.x,\n targetY: n.y\n });\n if (a[v] * s[v] === -1) {\n h = i.x || w, d = i.y || y;\n const N = [\n { x: h, y: l.y },\n { x: h, y: u.y }\n ], T = [\n { x: l.x, y: d },\n { x: u.x, y: d }\n ];\n a[v] === g ? x = v === \"x\" ? N : T : x = v === \"x\" ? T : N;\n } else {\n const N = [{ x: l.x, y: u.y }], T = [{ x: u.x, y: l.y }];\n if (v === \"x\" ? x = a.x === g ? T : N : x = a.y === g ? N : T, t !== o) {\n const _ = v === \"x\" ? \"y\" : \"x\", P = a[v] === s[_], R = l[_] > u[_], $ = l[_] < u[_];\n (a[v] === 1 && (!P && R || P && $) || a[v] !== 1 && (!P && $ || P && R)) && (x = v === \"x\" ? N : T);\n }\n h = x[0].x, d = x[0].y;\n }\n return [[e, l, ...x, u, n], h, d, S, V];\n}\nfunction Ll(e, t, n, o) {\n const i = Math.min(Uo(e, t) / 2, Uo(t, n) / 2, o), { x: r, y: a } = t;\n if (e.x === r && r === n.x || e.y === a && a === n.y)\n return `L${r} ${a}`;\n if (e.y === a) {\n const u = e.x < n.x ? -1 : 1, c = e.y < n.y ? 1 : -1;\n return `L ${r + i * u},${a}Q ${r},${a} ${r},${a + i * c}`;\n }\n const s = e.x < n.x ? 1 : -1, l = e.y < n.y ? -1 : 1;\n return `L ${r},${a + i * l}Q ${r},${a} ${r + i * s},${a}`;\n}\nfunction qn({\n sourceX: e,\n sourceY: t,\n sourcePosition: n = j.Bottom,\n targetX: o,\n targetY: i,\n targetPosition: r = j.Top,\n borderRadius: a = 5,\n centerX: s,\n centerY: l,\n offset: u = 20\n}) {\n const [c, v, g, x, h] = Hl({\n source: { x: e, y: t },\n sourcePosition: n,\n target: { x: o, y: i },\n targetPosition: r,\n center: { x: s, y: l },\n offset: u\n });\n return [c.reduce((w, y, S) => {\n let V;\n return S > 0 && S < c.length - 1 ? V = Ll(c[S - 1], y, c[S + 1], a) : V = `${S === 0 ? \"M\" : \"L\"}${y.x} ${y.y}`, w += V, w;\n }, \"\"), v, g, x, h];\n}\nconst yn = function({ sourcePosition: e = j.Bottom, targetPosition: t = j.Top, ...n }, { attrs: o }) {\n const [i, r, a] = qn({\n sourcePosition: e,\n targetPosition: t,\n ...n\n });\n return ue(vn, {\n path: i,\n labelX: r,\n labelY: a,\n ...n,\n ...o\n });\n};\nyn.props = [\n \"sourcePosition\",\n \"targetPosition\",\n \"label\",\n \"labelStyle\",\n \"labelShowBg\",\n \"labelBgStyle\",\n \"labelBgPadding\",\n \"labelBgBorderRadius\",\n \"sourceY\",\n \"sourceX\",\n \"targetX\",\n \"targetY\",\n \"borderRadius\",\n \"markerEnd\",\n \"markerStart\",\n \"interactionWidth\",\n \"offset\"\n];\nyn.inheritAttrs = !1;\nyn.compatConfig = { MODE: 3 };\nconst ir = yn, xn = function(e, { attrs: t }) {\n return ue(ir, { ...e, ...t, borderRadius: 0 });\n};\nxn.props = [\n \"sourcePosition\",\n \"targetPosition\",\n \"label\",\n \"labelStyle\",\n \"labelShowBg\",\n \"labelBgStyle\",\n \"labelBgPadding\",\n \"labelBgBorderRadius\",\n \"sourceY\",\n \"sourceX\",\n \"targetX\",\n \"targetY\",\n \"markerEnd\",\n \"markerStart\",\n \"interactionWidth\"\n];\nxn.inheritAttrs = !1;\nxn.compatConfig = { MODE: 3 };\nconst Gl = xn;\nfunction rr({\n sourceX: e,\n sourceY: t,\n targetX: n,\n targetY: o\n}) {\n const [i, r, a, s] = tr({\n sourceX: e,\n sourceY: t,\n targetX: n,\n targetY: o\n });\n return [`M ${e},${t}L ${n},${o}`, i, r, a, s];\n}\nconst _n = function(e, { attrs: t }) {\n const [n, o, i] = rr(e);\n return ue(vn, {\n path: n,\n labelX: o,\n labelY: i,\n ...e,\n ...t\n });\n};\n_n.props = [\n \"label\",\n \"labelStyle\",\n \"labelShowBg\",\n \"labelBgStyle\",\n \"labelBgPadding\",\n \"labelBgBorderRadius\",\n \"sourceY\",\n \"sourceX\",\n \"targetX\",\n \"targetY\",\n \"markerEnd\",\n \"markerStart\",\n \"interactionWidth\"\n];\n_n.inheritAttrs = !1;\n_n.compatConfig = { MODE: 3 };\nconst Fl = _n;\nfunction Yl(e, t, n) {\n return n === j.Left ? e - t : n === j.Right ? e + t : e;\n}\nfunction Xl(e, t, n) {\n return n === j.Top ? e - t : n === j.Bottom ? e + t : e;\n}\nconst po = function({\n radius: e = 10,\n centerX: t = 0,\n centerY: n = 0,\n position: o = j.Top,\n type: i\n}) {\n return ue(\"circle\", {\n class: `vue-flow__edgeupdater vue-flow__edgeupdater-${i}`,\n cx: Yl(t, e, o),\n cy: Xl(n, e, o),\n r: e,\n stroke: \"transparent\",\n fill: \"transparent\"\n });\n};\npo.props = [\"radius\", \"centerX\", \"centerY\", \"position\", \"type\"];\npo.compatConfig = { MODE: 3 };\nconst Wo = po;\nfunction Zl() {\n return {\n doubleClick: X(),\n click: X(),\n mouseEnter: X(),\n mouseMove: X(),\n mouseLeave: X(),\n contextMenu: X(),\n updateStart: X(),\n update: X(),\n updateEnd: X()\n };\n}\nfunction Ul(e, t) {\n const n = Zl();\n return n.doubleClick.on((o) => {\n var i, r;\n t.edgeDoubleClick(o), (r = (i = e.events) == null ? void 0 : i.doubleClick) == null || r.call(i, o);\n }), n.click.on((o) => {\n var i, r;\n t.edgeClick(o), (r = (i = e.events) == null ? void 0 : i.click) == null || r.call(i, o);\n }), n.mouseEnter.on((o) => {\n var i, r;\n t.edgeMouseEnter(o), (r = (i = e.events) == null ? void 0 : i.mouseEnter) == null || r.call(i, o);\n }), n.mouseMove.on((o) => {\n var i, r;\n t.edgeMouseMove(o), (r = (i = e.events) == null ? void 0 : i.mouseMove) == null || r.call(i, o);\n }), n.mouseLeave.on((o) => {\n var i, r;\n t.edgeMouseLeave(o), (r = (i = e.events) == null ? void 0 : i.mouseLeave) == null || r.call(i, o);\n }), n.contextMenu.on((o) => {\n var i, r;\n t.edgeContextMenu(o), (r = (i = e.events) == null ? void 0 : i.contextMenu) == null || r.call(i, o);\n }), n.updateStart.on((o) => {\n var i, r;\n t.edgeUpdateStart(o), (r = (i = e.events) == null ? void 0 : i.updateStart) == null || r.call(i, o);\n }), n.update.on((o) => {\n var i, r;\n t.edgeUpdate(o), (r = (i = e.events) == null ? void 0 : i.update) == null || r.call(i, o);\n }), n.updateEnd.on((o) => {\n var i, r;\n t.edgeUpdateEnd(o), (r = (i = e.events) == null ? void 0 : i.updateEnd) == null || r.call(i, o);\n }), Object.entries(n).reduce(\n (o, [i, r]) => (o.emit[i] = r.trigger, o.on[i] = r.on, o),\n { emit: {}, on: {} }\n );\n}\nconst Wl = ge({\n name: \"Edge\",\n compatConfig: { MODE: 3 },\n props: [\"name\", \"type\", \"id\", \"updatable\", \"selectable\", \"focusable\", \"edge\"],\n setup(e) {\n const {\n id: t,\n addSelectedEdges: n,\n connectionMode: o,\n edgeUpdaterRadius: i,\n emits: r,\n nodesSelectionActive: a,\n noPanClassName: s,\n getEdgeTypes: l,\n removeSelectedEdges: u,\n findEdge: c,\n findNode: v,\n isValidConnection: g\n } = fe(), x = Ul(e.edge, r), h = yt(e, \"edge\");\n let d = ie(!1), w = ie(!1);\n const y = ie(\"\"), S = ie(null), V = ie(\"source\"), p = ie();\n ut(Oi, e.id), ut(Ti, p);\n const N = J(() => h.value.class instanceof Function ? h.value.class(h.value) : h.value.class), T = J(() => h.value.style instanceof Function ? h.value.style(h.value) : h.value.style), { handlePointerDown: _ } = Di({\n nodeId: y,\n handleId: S,\n type: V,\n isValidConnection: g.value,\n edgeUpdaterType: V,\n onEdgeUpdate: $,\n onEdgeUpdateEnd: D\n });\n return () => {\n const B = v(h.value.source), q = v(h.value.target);\n if (!B || !q || !h.value)\n return null;\n let te;\n o.value === Qe.Strict ? te = B.handleBounds.source : te = [...B.handleBounds.source || [], ...B.handleBounds.target || []];\n const re = Ao(te, h.value.sourceHandle);\n let k;\n o.value === Qe.Strict ? k = q.handleBounds.target : k = [...q.handleBounds.target || [], ...q.handleBounds.source || []];\n const H = Ao(k, h.value.targetHandle), f = re ? re.position : j.Bottom, b = H ? H.position : j.Top, { sourceX: L, sourceY: I, targetY: F, targetX: U } = wa(\n B,\n re,\n f,\n q,\n H,\n b\n );\n return h.value.sourceX = L, h.value.sourceY = I, h.value.targetX = U, h.value.targetY = F, ue(\n \"g\",\n {\n ref: p,\n key: e.id,\n \"data-id\": e.id,\n class: [\n \"vue-flow__edge\",\n `vue-flow__edge-${e.type === !1 ? \"default\" : e.name}`,\n s.value,\n N.value,\n {\n updating: d.value,\n selected: h.value.selected,\n animated: h.value.animated,\n inactive: !e.selectable\n }\n ],\n onClick: ee,\n onContextmenu: m,\n onDblclick: A,\n onMouseenter: E,\n onMousemove: G,\n onMouseleave: Z,\n onKeyDown: e.focusable ? W : void 0,\n tabIndex: e.focusable ? 0 : void 0,\n \"aria-label\": h.value.ariaLabel === null ? void 0 : h.value.ariaLabel || `Edge from ${h.value.source} to ${h.value.target}`,\n \"aria-describedby\": e.focusable ? `${Ji}-${t}` : void 0,\n role: e.focusable ? \"button\" : void 0\n },\n [\n w.value ? null : ue(e.type === !1 ? l.value.default : e.type, {\n id: e.id,\n sourceNode: B,\n targetNode: q,\n source: h.value.source,\n target: h.value.target,\n type: h.value.type,\n updatable: e.updatable,\n selected: h.value.selected,\n animated: h.value.animated,\n label: h.value.label,\n labelStyle: h.value.labelStyle,\n labelShowBg: h.value.labelShowBg,\n labelBgStyle: h.value.labelBgStyle,\n labelBgPadding: h.value.labelBgPadding,\n labelBgBorderRadius: h.value.labelBgBorderRadius,\n data: h.value.data,\n events: { ...h.value.events, ...x.on },\n style: T.value,\n markerStart: `url(#${Xe(h.value.markerStart, t)})`,\n markerEnd: `url(#${Xe(h.value.markerEnd, t)})`,\n sourcePosition: f,\n targetPosition: b,\n sourceX: L,\n sourceY: I,\n targetX: U,\n targetY: F,\n sourceHandleId: h.value.sourceHandle,\n targetHandleId: h.value.targetHandle,\n interactionWidth: h.value.interactionWidth\n }),\n [\n e.updatable === \"source\" || e.updatable === !0 ? [\n ue(\n \"g\",\n {\n onMousedown: K,\n onMouseenter: P,\n onMouseout: R\n },\n ue(Wo, {\n position: f,\n centerX: L,\n centerY: I,\n radius: i.value,\n type: \"source\",\n \"data-type\": \"source\"\n })\n )\n ] : null,\n e.updatable === \"target\" || e.updatable === !0 ? [\n ue(\n \"g\",\n {\n onMousedown: z,\n onMouseenter: P,\n onMouseout: R\n },\n ue(Wo, {\n position: b,\n centerX: U,\n centerY: F,\n radius: i.value,\n type: \"target\",\n \"data-type\": \"target\"\n })\n )\n ] : null\n ]\n ]\n );\n };\n function P() {\n d.value = !0;\n }\n function R() {\n d.value = !1;\n }\n function $(B, q) {\n x.emit.update({ event: B, edge: h.value, connection: q });\n }\n function D(B) {\n x.emit.updateEnd({ event: B, edge: h.value }), w.value = !1;\n }\n function Q(B, q) {\n B.button === 0 && (w.value = !0, y.value = q ? h.value.target : h.value.source, S.value = (q ? h.value.targetHandle : h.value.sourceHandle) ?? \"\", V.value = q ? \"target\" : \"source\", x.emit.updateStart({ event: B, edge: h.value }), _(B));\n }\n function ee(B) {\n const q = { event: B, edge: h.value };\n e.selectable && (a.value = !1, n([h.value])), x.emit.click(q);\n }\n function m(B) {\n x.emit.contextMenu({ event: B, edge: h.value });\n }\n function A(B) {\n x.emit.doubleClick({ event: B, edge: h.value });\n }\n function E(B) {\n x.emit.mouseEnter({ event: B, edge: h.value });\n }\n function G(B) {\n x.emit.mouseMove({ event: B, edge: h.value });\n }\n function Z(B) {\n x.emit.mouseLeave({ event: B, edge: h.value });\n }\n function K(B) {\n Q(B, !0);\n }\n function z(B) {\n Q(B, !1);\n }\n function W(B) {\n var q;\n er.includes(B.key) && e.selectable && (B.key === \"Escape\" ? ((q = p.value) == null || q.blur(), u([c(e.id)])) : n([c(e.id)]));\n }\n }\n}), Kl = Wl, ql = {\n height: \"0\",\n width: \"0\"\n}, jl = {\n name: \"EdgeLabelRenderer\",\n compatConfig: { MODE: 3 }\n}, Rd = /* @__PURE__ */ ge({\n ...jl,\n setup(e) {\n const { viewportRef: t } = fe(), n = J(() => {\n var o;\n return (o = t.value) == null ? void 0 : o.getElementsByClassName(\"vue-flow__edge-labels\")[0];\n });\n return (o, i) => (oe(), se(\"svg\", null, [\n (oe(), se(\"foreignObject\", ql, [\n (oe(), ze(Mr, {\n to: C(n),\n disabled: !C(n)\n }, [\n xe(o.$slots, \"default\")\n ], 8, [\"to\", \"disabled\"]))\n ]))\n ]));\n }\n}), Ql = { class: \"vue-flow__connection\" }, Jl = [\"d\", \"marker-end\", \"marker-start\"], eu = {\n name: \"ConnectionLine\",\n compatConfig: { MODE: 3 }\n}, tu = /* @__PURE__ */ ge({\n ...eu,\n props: {\n sourceNode: null\n },\n setup(e) {\n var R;\n const t = fe(), n = M(t, \"connectionMode\"), o = M(t, \"connectionStartHandle\"), i = M(t, \"connectionEndHandle\"), r = M(t, \"connectionPosition\"), a = M(t, \"connectionLineType\"), s = M(t, \"connectionLineStyle\"), l = M(t, \"connectionLineOptions\"), u = M(t, \"connectionStatus\"), c = M(t, \"viewport\"), v = M(t, \"findNode\"), g = {\n [j.Left]: j.Right,\n [j.Right]: j.Left,\n [j.Top]: j.Bottom,\n [j.Bottom]: j.Top\n }, x = (R = He(ln)) == null ? void 0 : R[\"connection-line\"], h = J(() => o.value.handleId), d = J(() => o.value.type), w = J(() => {\n var $;\n return (($ = i.value) == null ? void 0 : $.handleId) && v.value(i.value.nodeId) || null;\n }), y = J(\n () => {\n var $, D;\n return (n.value === Qe.Strict ? ($ = e.sourceNode.handleBounds[d.value]) == null ? void 0 : $.find((Q) => Q.id === h.value) : [...e.sourceNode.handleBounds.source || [], ...e.sourceNode.handleBounds.target || []].find((Q) => Q.id === h.value)) || ((D = e.sourceNode.handleBounds[d.value ?? \"source\"]) == null ? void 0 : D[0]);\n }\n ), S = J(() => {\n var $, D, Q;\n return w.value && (($ = i.value) == null ? void 0 : $.handleId) && ((n.value === Qe.Strict ? (D = w.value.handleBounds[d.value === \"source\" ? \"target\" : \"source\"]) == null ? void 0 : D.find(\n (ee) => {\n var m;\n return ee.id === ((m = i.value) == null ? void 0 : m.handleId);\n }\n ) : [...w.value.handleBounds.source || [], ...w.value.handleBounds.target || []].find(\n (ee) => {\n var m;\n return ee.id === ((m = i.value) == null ? void 0 : m.handleId);\n }\n )) || ((Q = w.value.handleBounds[d.value ?? \"target\"]) == null ? void 0 : Q[0])) || null;\n }), V = J(() => {\n var $;\n return ($ = y.value) == null ? void 0 : $.position;\n }), p = J(() => y.value ? Wt(\n V.value || j.Top,\n { ...e.sourceNode.dimensions, ...e.sourceNode.computedPosition },\n y.value\n ) : {\n x: e.sourceNode.dimensions.width / 2,\n y: e.sourceNode.dimensions.height / 2\n }), N = J(() => V.value ? g[V.value] : void 0), T = J(() => (r.value.x - c.value.x) / c.value.zoom), _ = J(() => (r.value.y - c.value.y) / c.value.zoom), P = J(() => {\n let $;\n const D = {\n sourceX: p.value.x,\n sourceY: p.value.y,\n sourcePosition: V.value,\n targetX: T.value,\n targetY: _.value,\n targetPosition: N.value\n };\n switch (a.value ?? l.value.type) {\n case Ye.Bezier:\n [$] = Kn(D);\n break;\n case Ye.Step:\n [$] = qn({\n ...D,\n borderRadius: 0\n });\n break;\n case Ye.SmoothStep:\n [$] = qn(D);\n break;\n case Ye.SimpleBezier:\n [$] = or(D);\n break;\n case Ye.Straight:\n [$] = rr(D);\n break;\n default:\n [$] = Kn(D);\n break;\n }\n return $;\n });\n return ($, D) => {\n var Q;\n return oe(), se(\"g\", Ql, [\n C(x) ? (oe(), ze(mi(C(x)), $r(vi({ key: 0 }, {\n sourceX: C(p).x,\n sourceY: C(p).y,\n sourcePosition: (Q = C(y)) == null ? void 0 : Q.position,\n targetX: C(T),\n targetY: C(_),\n targetPosition: C(N),\n sourceNode: e.sourceNode,\n sourceHandle: C(y),\n targetNode: C(w),\n targetHandle: C(S),\n markerEnd: `url(#${C(Xe)(C(l).markerEnd)})`,\n markerStart: `url(#${C(Xe)(C(l).markerStart)})`,\n connectionStatus: C(u)\n })), null, 16)) : (oe(), se(\"path\", {\n key: 1,\n d: C(P),\n class: Ke([\"vue-flow__connection-path\", [C(l).class, C(u)]]),\n style: Le(C(s) || C(l).style || {}),\n \"marker-end\": `url(#${C(Xe)(C(l).markerEnd)})`,\n \"marker-start\": `url(#${C(Xe)(C(l).markerStart)})`\n }, null, 14, Jl))\n ]);\n };\n }\n}), nu = [\"tabIndex\"], ou = {\n name: \"NodesSelection\",\n compatConfig: { MODE: 3 }\n}, iu = /* @__PURE__ */ ge({\n ...ou,\n setup(e) {\n const t = fe(), n = M(t, \"emits\"), o = M(t, \"viewport\"), i = M(t, \"getSelectedNodes\"), r = M(t, \"noPanClassName\"), a = M(t, \"disableKeyboardA11y\"), s = M(t, \"userSelectionActive\"), l = Ai(), u = ie(), c = ji({\n el: u,\n onStart(d) {\n n.value.selectionDragStart(d);\n },\n onDrag(d) {\n n.value.selectionDrag(d);\n },\n onStop(d) {\n n.value.selectionDragStop(d);\n }\n });\n Ve(() => {\n var d;\n a.value || (d = u.value) == null || d.focus({ preventScroll: !0 });\n });\n const v = J(() => co(i.value)), g = J(() => ({\n width: `${v.value.width}px`,\n height: `${v.value.height}px`,\n top: `${v.value.y}px`,\n left: `${v.value.x}px`\n }));\n function x(d) {\n n.value.selectionContextMenu({ event: d, nodes: i.value });\n }\n function h(d) {\n a.value || st[d.key] && l(\n {\n x: st[d.key].x,\n y: st[d.key].y\n },\n d.shiftKey\n );\n }\n return (d, w) => !C(s) && C(v).width && C(v).height ? (oe(), se(\"div\", {\n key: 0,\n class: Ke([\"vue-flow__nodesselection vue-flow__container\", C(r)]),\n style: Le({ transform: `translate(${C(o).x}px,${C(o).y}px) scale(${C(o).zoom})` })\n }, [\n ct(\"div\", {\n ref_key: \"el\",\n ref: u,\n class: Ke([{ dragging: C(c) }, \"vue-flow__nodesselection-rect\"]),\n style: Le(C(g)),\n tabIndex: C(a) ? void 0 : -1,\n onContextmenu: x,\n onKeydown: h\n }, null, 46, nu)\n ], 6)) : Ee(\"\", !0);\n }\n}), ru = {\n name: \"UserSelection\",\n compatConfig: { MODE: 3 }\n}, au = /* @__PURE__ */ ge({\n ...ru,\n setup(e) {\n const { userSelectionRect: t } = fe();\n return (n, o) => {\n var i, r, a, s;\n return oe(), se(\"div\", {\n class: \"vue-flow__selection vue-flow__container\",\n style: Le({\n width: `${(i = C(t)) == null ? void 0 : i.width}px`,\n height: `${(r = C(t)) == null ? void 0 : r.height}px`,\n transform: `translate(${(a = C(t)) == null ? void 0 : a.x}px, ${(s = C(t)) == null ? void 0 : s.y}px)`\n })\n }, null, 4);\n };\n }\n}), su = {\n input: Ta,\n default: Oa,\n output: Ia\n}, lu = {\n default: Bl,\n straight: Fl,\n step: Gl,\n smoothstep: ir,\n simplebezier: Rl\n};\nfunction uu() {\n return {\n vueFlowRef: null,\n viewportRef: null,\n nodes: [],\n edges: [],\n nodeTypes: {},\n edgeTypes: {},\n initialized: !1,\n dimensions: {\n width: 0,\n height: 0\n },\n viewport: { x: 0, y: 0, zoom: 1 },\n d3Zoom: null,\n d3Selection: null,\n d3ZoomHandler: null,\n minZoom: 0.5,\n maxZoom: 2,\n translateExtent: [\n [Number.NEGATIVE_INFINITY, Number.NEGATIVE_INFINITY],\n [Number.POSITIVE_INFINITY, Number.POSITIVE_INFINITY]\n ],\n nodeExtent: [\n [Number.NEGATIVE_INFINITY, Number.NEGATIVE_INFINITY],\n [Number.POSITIVE_INFINITY, Number.POSITIVE_INFINITY]\n ],\n selectionMode: fo.Full,\n paneDragging: !1,\n preventScrolling: !0,\n zoomOnScroll: !0,\n zoomOnPinch: !0,\n zoomOnDoubleClick: !0,\n panOnScroll: !1,\n panOnScrollSpeed: 0.5,\n panOnScrollMode: Ut.Free,\n panOnDrag: !0,\n edgeUpdaterRadius: 10,\n onlyRenderVisibleElements: !1,\n defaultViewport: { x: 0, y: 0, zoom: 1 },\n nodesSelectionActive: !1,\n userSelectionActive: !1,\n userSelectionRect: null,\n defaultMarkerColor: \"#b1b1b7\",\n connectionLineStyle: {},\n connectionLineType: null,\n connectionLineOptions: {\n type: Ye.Bezier,\n style: {}\n },\n connectionMode: Qe.Loose,\n connectionStartHandle: null,\n connectionEndHandle: null,\n connectionClickStartHandle: null,\n connectionPosition: { x: NaN, y: NaN },\n connectionRadius: 20,\n connectOnClick: !0,\n connectionStatus: null,\n isValidConnection: null,\n snapGrid: [15, 15],\n snapToGrid: !1,\n edgesUpdatable: !1,\n edgesFocusable: !0,\n nodesFocusable: !0,\n nodesConnectable: !0,\n nodesDraggable: !0,\n elementsSelectable: !0,\n selectNodesOnDrag: !0,\n multiSelectionActive: !1,\n selectionKeyCode: \"Shift\",\n multiSelectionKeyCode: \"Meta\",\n zoomActivationKeyCode: \"Meta\",\n deleteKeyCode: \"Backspace\",\n panActivationKeyCode: \"Space\",\n hooks: ca(),\n applyDefault: !0,\n autoConnect: !1,\n fitViewOnInit: !1,\n noDragClassName: \"nodrag\",\n noWheelClassName: \"nowheel\",\n noPanClassName: \"nopan\",\n defaultEdgeOptions: void 0,\n elevateEdgesOnSelect: !1,\n elevateNodesOnSelect: !0,\n autoPanOnNodeDrag: !0,\n autoPanOnConnect: !0,\n disableKeyboardA11y: !1,\n ariaLiveMessage: \"\",\n __experimentalFeatures: {\n nestedFlow: !1\n }\n };\n}\nfunction ar(e) {\n const t = uu();\n return e && Object.keys(e).forEach((n) => {\n const o = e[n];\n ce(o) && (t[n] = o);\n }), t;\n}\nfunction cu(e, t, n) {\n const o = J(() => (d) => e.nodes && !t.value.length ? e.nodes.find((w) => w.id === d) : e.nodes[t.value.indexOf(d)]), i = J(() => (d) => e.edges && !n.value.length ? e.edges.find((w) => w.id === d) : e.edges[n.value.indexOf(d)]), r = J(() => {\n var y;\n const d = {\n ...lu,\n ...e.edgeTypes\n }, w = Object.keys(d);\n return (y = e.edges) == null || y.forEach((S) => S.type && !w.includes(S.type) && (d[S.type] = S.type)), d;\n }), a = J(() => {\n var y;\n const d = {\n ...su,\n ...e.nodeTypes\n }, w = Object.keys(d);\n return (y = e.nodes) == null || y.forEach((S) => S.type && !w.includes(S.type) && (d[S.type] = S.type)), d;\n }), s = J(() => {\n const d = e.nodes.filter((w) => !w.hidden);\n return e.onlyRenderVisibleElements ? d && Ci(\n d,\n {\n x: 0,\n y: 0,\n width: e.dimensions.width,\n height: e.dimensions.height\n },\n e.viewport,\n !0\n ) : d ?? [];\n }), l = (d, w, y) => {\n if (w = w ?? o.value(d.source), y = y ?? o.value(d.target), !w || !y) {\n e.hooks.error.trigger(new ve(he.EDGE_ORPHANED, d.id));\n return;\n }\n return !d.hidden && !y.hidden && !w.hidden;\n }, u = J(() => e.onlyRenderVisibleElements ? e.edges.filter((d) => {\n const w = o.value(d.source), y = o.value(d.target);\n return l(d, w, y) && ba({\n sourcePos: w.computedPosition || { x: 0, y: 0 },\n targetPos: y.computedPosition || { x: 0, y: 0 },\n sourceWidth: w.dimensions.width,\n sourceHeight: w.dimensions.height,\n targetWidth: y.dimensions.width,\n targetHeight: y.dimensions.height,\n width: e.dimensions.width,\n height: e.dimensions.height,\n viewport: e.viewport\n });\n }) : e.edges.filter((d) => l(d))), c = J(() => [...s.value, ...u.value]), v = J(() => e.nodes.filter((d) => d.selected)), g = J(() => e.edges.filter((d) => d.selected)), x = J(() => [\n ...v.value ?? [],\n ...g.value ?? []\n ]), h = J(\n () => s.value.filter((d) => d.initialized && d.handleBounds !== void 0)\n );\n return {\n getNode: o,\n getEdge: i,\n getElements: c,\n getEdgeTypes: r,\n getNodeTypes: a,\n getEdges: u,\n getNodes: s,\n getSelectedElements: x,\n getSelectedNodes: v,\n getSelectedEdges: g,\n getNodesInitialized: h\n };\n}\nfunction yo(e, t, n) {\n e.prototype = t.prototype = n, n.constructor = e;\n}\nfunction sr(e, t) {\n var n = Object.create(e.prototype);\n for (var o in t)\n n[o] = t[o];\n return n;\n}\nfunction kt() {\n}\nvar Et = 0.7, jt = 1 / Et, lt = \"\\\\s*([+-]?\\\\d+)\\\\s*\", St = \"\\\\s*([+-]?(?:\\\\d*\\\\.)?\\\\d+(?:[eE][+-]?\\\\d+)?)\\\\s*\", Me = \"\\\\s*([+-]?(?:\\\\d*\\\\.)?\\\\d+(?:[eE][+-]?\\\\d+)?)%\\\\s*\", du = /^#([0-9a-f]{3,8})$/, fu = new RegExp(`^rgb\\\\(${lt},${lt},${lt}\\\\)$`), hu = new RegExp(`^rgb\\\\(${Me},${Me},${Me}\\\\)$`), gu = new RegExp(`^rgba\\\\(${lt},${lt},${lt},${St}\\\\)$`), vu = new RegExp(`^rgba\\\\(${Me},${Me},${Me},${St}\\\\)$`), mu = new RegExp(`^hsl\\\\(${St},${Me},${Me}\\\\)$`), pu = new RegExp(`^hsla\\\\(${St},${Me},${Me},${St}\\\\)$`), Ko = {\n aliceblue: 15792383,\n antiquewhite: 16444375,\n aqua: 65535,\n aquamarine: 8388564,\n azure: 15794175,\n beige: 16119260,\n bisque: 16770244,\n black: 0,\n blanchedalmond: 16772045,\n blue: 255,\n blueviolet: 9055202,\n brown: 10824234,\n burlywood: 14596231,\n cadetblue: 6266528,\n chartreuse: 8388352,\n chocolate: 13789470,\n coral: 16744272,\n cornflowerblue: 6591981,\n cornsilk: 16775388,\n crimson: 14423100,\n cyan: 65535,\n darkblue: 139,\n darkcyan: 35723,\n darkgoldenrod: 12092939,\n darkgray: 11119017,\n darkgreen: 25600,\n darkgrey: 11119017,\n darkkhaki: 12433259,\n darkmagenta: 9109643,\n darkolivegreen: 5597999,\n darkorange: 16747520,\n darkorchid: 10040012,\n darkred: 9109504,\n darksalmon: 15308410,\n darkseagreen: 9419919,\n darkslateblue: 4734347,\n darkslategray: 3100495,\n darkslategrey: 3100495,\n darkturquoise: 52945,\n darkviolet: 9699539,\n deeppink: 16716947,\n deepskyblue: 49151,\n dimgray: 6908265,\n dimgrey: 6908265,\n dodgerblue: 2003199,\n firebrick: 11674146,\n floralwhite: 16775920,\n forestgreen: 2263842,\n fuchsia: 16711935,\n gainsboro: 14474460,\n ghostwhite: 16316671,\n gold: 16766720,\n goldenrod: 14329120,\n gray: 8421504,\n green: 32768,\n greenyellow: 11403055,\n grey: 8421504,\n honeydew: 15794160,\n hotpink: 16738740,\n indianred: 13458524,\n indigo: 4915330,\n ivory: 16777200,\n khaki: 15787660,\n lavender: 15132410,\n lavenderblush: 16773365,\n lawngreen: 8190976,\n lemonchiffon: 16775885,\n lightblue: 11393254,\n lightcoral: 15761536,\n lightcyan: 14745599,\n lightgoldenrodyellow: 16448210,\n lightgray: 13882323,\n lightgreen: 9498256,\n lightgrey: 13882323,\n lightpink: 16758465,\n lightsalmon: 16752762,\n lightseagreen: 2142890,\n lightskyblue: 8900346,\n lightslategray: 7833753,\n lightslategrey: 7833753,\n lightsteelblue: 11584734,\n lightyellow: 16777184,\n lime: 65280,\n limegreen: 3329330,\n linen: 16445670,\n magenta: 16711935,\n maroon: 8388608,\n mediumaquamarine: 6737322,\n mediumblue: 205,\n mediumorchid: 12211667,\n mediumpurple: 9662683,\n mediumseagreen: 3978097,\n mediumslateblue: 8087790,\n mediumspringgreen: 64154,\n mediumturquoise: 4772300,\n mediumvioletred: 13047173,\n midnightblue: 1644912,\n mintcream: 16121850,\n mistyrose: 16770273,\n moccasin: 16770229,\n navajowhite: 16768685,\n navy: 128,\n oldlace: 16643558,\n olive: 8421376,\n olivedrab: 7048739,\n orange: 16753920,\n orangered: 16729344,\n orchid: 14315734,\n palegoldenrod: 15657130,\n palegreen: 10025880,\n paleturquoise: 11529966,\n palevioletred: 14381203,\n papayawhip: 16773077,\n peachpuff: 16767673,\n peru: 13468991,\n pink: 16761035,\n plum: 14524637,\n powderblue: 11591910,\n purple: 8388736,\n rebeccapurple: 6697881,\n red: 16711680,\n rosybrown: 12357519,\n royalblue: 4286945,\n saddlebrown: 9127187,\n salmon: 16416882,\n sandybrown: 16032864,\n seagreen: 3050327,\n seashell: 16774638,\n sienna: 10506797,\n silver: 12632256,\n skyblue: 8900331,\n slateblue: 6970061,\n slategray: 7372944,\n slategrey: 7372944,\n snow: 16775930,\n springgreen: 65407,\n steelblue: 4620980,\n tan: 13808780,\n teal: 32896,\n thistle: 14204888,\n tomato: 16737095,\n turquoise: 4251856,\n violet: 15631086,\n wheat: 16113331,\n white: 16777215,\n whitesmoke: 16119285,\n yellow: 16776960,\n yellowgreen: 10145074\n};\nyo(kt, Nt, {\n copy(e) {\n return Object.assign(new this.constructor(), this, e);\n },\n displayable() {\n return this.rgb().displayable();\n },\n hex: qo,\n // Deprecated! Use color.formatHex.\n formatHex: qo,\n formatHex8: yu,\n formatHsl: xu,\n formatRgb: jo,\n toString: jo\n});\nfunction qo() {\n return this.rgb().formatHex();\n}\nfunction yu() {\n return this.rgb().formatHex8();\n}\nfunction xu() {\n return lr(this).formatHsl();\n}\nfunction jo() {\n return this.rgb().formatRgb();\n}\nfunction Nt(e) {\n var t, n;\n return e = (e + \"\").trim().toLowerCase(), (t = du.exec(e)) ? (n = t[1].length, t = parseInt(t[1], 16), n === 6 ? Qo(t) : n === 3 ? new pe(t >> 8 & 15 | t >> 4 & 240, t >> 4 & 15 | t & 240, (t & 15) << 4 | t & 15, 1) : n === 8 ? zt(t >> 24 & 255, t >> 16 & 255, t >> 8 & 255, (t & 255) / 255) : n === 4 ? zt(t >> 12 & 15 | t >> 8 & 240, t >> 8 & 15 | t >> 4 & 240, t >> 4 & 15 | t & 240, ((t & 15) << 4 | t & 15) / 255) : null) : (t = fu.exec(e)) ? new pe(t[1], t[2], t[3], 1) : (t = hu.exec(e)) ? new pe(t[1] * 255 / 100, t[2] * 255 / 100, t[3] * 255 / 100, 1) : (t = gu.exec(e)) ? zt(t[1], t[2], t[3], t[4]) : (t = vu.exec(e)) ? zt(t[1] * 255 / 100, t[2] * 255 / 100, t[3] * 255 / 100, t[4]) : (t = mu.exec(e)) ? ti(t[1], t[2] / 100, t[3] / 100, 1) : (t = pu.exec(e)) ? ti(t[1], t[2] / 100, t[3] / 100, t[4]) : Ko.hasOwnProperty(e) ? Qo(Ko[e]) : e === \"transparent\" ? new pe(NaN, NaN, NaN, 0) : null;\n}\nfunction Qo(e) {\n return new pe(e >> 16 & 255, e >> 8 & 255, e & 255, 1);\n}\nfunction zt(e, t, n, o) {\n return o <= 0 && (e = t = n = NaN), new pe(e, t, n, o);\n}\nfunction _u(e) {\n return e instanceof kt || (e = Nt(e)), e ? (e = e.rgb(), new pe(e.r, e.g, e.b, e.opacity)) : new pe();\n}\nfunction jn(e, t, n, o) {\n return arguments.length === 1 ? _u(e) : new pe(e, t, n, o ?? 1);\n}\nfunction pe(e, t, n, o) {\n this.r = +e, this.g = +t, this.b = +n, this.opacity = +o;\n}\nyo(pe, jn, sr(kt, {\n brighter(e) {\n return e = e == null ? jt : Math.pow(jt, e), new pe(this.r * e, this.g * e, this.b * e, this.opacity);\n },\n darker(e) {\n return e = e == null ? Et : Math.pow(Et, e), new pe(this.r * e, this.g * e, this.b * e, this.opacity);\n },\n rgb() {\n return this;\n },\n clamp() {\n return new pe(We(this.r), We(this.g), We(this.b), Qt(this.opacity));\n },\n displayable() {\n return -0.5 <= this.r && this.r < 255.5 && -0.5 <= this.g && this.g < 255.5 && -0.5 <= this.b && this.b < 255.5 && 0 <= this.opacity && this.opacity <= 1;\n },\n hex: Jo,\n // Deprecated! Use color.formatHex.\n formatHex: Jo,\n formatHex8: wu,\n formatRgb: ei,\n toString: ei\n}));\nfunction Jo() {\n return `#${Ze(this.r)}${Ze(this.g)}${Ze(this.b)}`;\n}\nfunction wu() {\n return `#${Ze(this.r)}${Ze(this.g)}${Ze(this.b)}${Ze((isNaN(this.opacity) ? 1 : this.opacity) * 255)}`;\n}\nfunction ei() {\n const e = Qt(this.opacity);\n return `${e === 1 ? \"rgb(\" : \"rgba(\"}${We(this.r)}, ${We(this.g)}, ${We(this.b)}${e === 1 ? \")\" : `, ${e})`}`;\n}\nfunction Qt(e) {\n return isNaN(e) ? 1 : Math.max(0, Math.min(1, e));\n}\nfunction We(e) {\n return Math.max(0, Math.min(255, Math.round(e) || 0));\n}\nfunction Ze(e) {\n return e = We(e), (e < 16 ? \"0\" : \"\") + e.toString(16);\n}\nfunction ti(e, t, n, o) {\n return o <= 0 ? e = t = n = NaN : n <= 0 || n >= 1 ? e = t = NaN : t <= 0 && (e = NaN), new be(e, t, n, o);\n}\nfunction lr(e) {\n if (e instanceof be)\n return new be(e.h, e.s, e.l, e.opacity);\n if (e instanceof kt || (e = Nt(e)), !e)\n return new be();\n if (e instanceof be)\n return e;\n e = e.rgb();\n var t = e.r / 255, n = e.g / 255, o = e.b / 255, i = Math.min(t, n, o), r = Math.max(t, n, o), a = NaN, s = r - i, l = (r + i) / 2;\n return s ? (t === r ? a = (n - o) / s + (n < o) * 6 : n === r ? a = (o - t) / s + 2 : a = (t - n) / s + 4, s /= l < 0.5 ? r + i : 2 - r - i, a *= 60) : s = l > 0 && l < 1 ? 0 : a, new be(a, s, l, e.opacity);\n}\nfunction bu(e, t, n, o) {\n return arguments.length === 1 ? lr(e) : new be(e, t, n, o ?? 1);\n}\nfunction be(e, t, n, o) {\n this.h = +e, this.s = +t, this.l = +n, this.opacity = +o;\n}\nyo(be, bu, sr(kt, {\n brighter(e) {\n return e = e == null ? jt : Math.pow(jt, e), new be(this.h, this.s, this.l * e, this.opacity);\n },\n darker(e) {\n return e = e == null ? Et : Math.pow(Et, e), new be(this.h, this.s, this.l * e, this.opacity);\n },\n rgb() {\n var e = this.h % 360 + (this.h < 0) * 360, t = isNaN(e) || isNaN(this.s) ? 0 : this.s, n = this.l, o = n + (n < 0.5 ? n : 1 - n) * t, i = 2 * n - o;\n return new pe(\n kn(e >= 240 ? e - 240 : e + 120, i, o),\n kn(e, i, o),\n kn(e < 120 ? e + 240 : e - 120, i, o),\n this.opacity\n );\n },\n clamp() {\n return new be(ni(this.h), At(this.s), At(this.l), Qt(this.opacity));\n },\n displayable() {\n return (0 <= this.s && this.s <= 1 || isNaN(this.s)) && 0 <= this.l && this.l <= 1 && 0 <= this.opacity && this.opacity <= 1;\n },\n formatHsl() {\n const e = Qt(this.opacity);\n return `${e === 1 ? \"hsl(\" : \"hsla(\"}${ni(this.h)}, ${At(this.s) * 100}%, ${At(this.l) * 100}%${e === 1 ? \")\" : `, ${e})`}`;\n }\n}));\nfunction ni(e) {\n return e = (e || 0) % 360, e < 0 ? e + 360 : e;\n}\nfunction At(e) {\n return Math.max(0, Math.min(1, e || 0));\n}\nfunction kn(e, t, n) {\n return (e < 60 ? t + (n - t) * e / 60 : e < 180 ? n : e < 240 ? t + (n - t) * (240 - e) / 60 : t) * 255;\n}\nconst ur = (e) => () => e;\nfunction Eu(e, t) {\n return function(n) {\n return e + n * t;\n };\n}\nfunction Su(e, t, n) {\n return e = Math.pow(e, n), t = Math.pow(t, n) - e, n = 1 / n, function(o) {\n return Math.pow(e + o * t, n);\n };\n}\nfunction Nu(e) {\n return (e = +e) == 1 ? cr : function(t, n) {\n return n - t ? Su(t, n, e) : ur(isNaN(t) ? n : t);\n };\n}\nfunction cr(e, t) {\n var n = t - e;\n return n ? Eu(e, n) : ur(isNaN(e) ? t : e);\n}\nconst oi = function e(t) {\n var n = Nu(t);\n function o(i, r) {\n var a = n((i = jn(i)).r, (r = jn(r)).r), s = n(i.g, r.g), l = n(i.b, r.b), u = cr(i.opacity, r.opacity);\n return function(c) {\n return i.r = a(c), i.g = s(c), i.b = l(c), i.opacity = u(c), i + \"\";\n };\n }\n return o.gamma = e, o;\n}(1);\nfunction Re(e, t) {\n return e = +e, t = +t, function(n) {\n return e * (1 - n) + t * n;\n };\n}\nvar Qn = /[-+]?(?:\\d+\\.?\\d*|\\.?\\d+)(?:[eE][-+]?\\d+)?/g, On = new RegExp(Qn.source, \"g\");\nfunction Cu(e) {\n return function() {\n return e;\n };\n}\nfunction Mu(e) {\n return function(t) {\n return e(t) + \"\";\n };\n}\nfunction $u(e, t) {\n var n = Qn.lastIndex = On.lastIndex = 0, o, i, r, a = -1, s = [], l = [];\n for (e = e + \"\", t = t + \"\"; (o = Qn.exec(e)) && (i = On.exec(t)); )\n (r = i.index) > n && (r = t.slice(n, r), s[a] ? s[a] += r : s[++a] = r), (o = o[0]) === (i = i[0]) ? s[a] ? s[a] += i : s[++a] = i : (s[++a] = null, l.push({ i: a, x: Re(o, i) })), n = On.lastIndex;\n return n < t.length && (r = t.slice(n), s[a] ? s[a] += r : s[++a] = r), s.length < 2 ? l[0] ? Mu(l[0].x) : Cu(t) : (t = l.length, function(u) {\n for (var c = 0, v; c < t; ++c)\n s[(v = l[c]).i] = v.x(u);\n return s.join(\"\");\n });\n}\nvar ii = 180 / Math.PI, Jn = {\n translateX: 0,\n translateY: 0,\n rotate: 0,\n skewX: 0,\n scaleX: 1,\n scaleY: 1\n};\nfunction dr(e, t, n, o, i, r) {\n var a, s, l;\n return (a = Math.sqrt(e * e + t * t)) && (e /= a, t /= a), (l = e * n + t * o) && (n -= e * l, o -= t * l), (s = Math.sqrt(n * n + o * o)) && (n /= s, o /= s, l /= s), e * o < t * n && (e = -e, t = -t, l = -l, a = -a), {\n translateX: i,\n translateY: r,\n rotate: Math.atan2(t, e) * ii,\n skewX: Math.atan(l) * ii,\n scaleX: a,\n scaleY: s\n };\n}\nvar Bt;\nfunction ku(e) {\n const t = new (typeof DOMMatrix == \"function\" ? DOMMatrix : WebKitCSSMatrix)(e + \"\");\n return t.isIdentity ? Jn : dr(t.a, t.b, t.c, t.d, t.e, t.f);\n}\nfunction Ou(e) {\n return e == null || (Bt || (Bt = document.createElementNS(\"http://www.w3.org/2000/svg\", \"g\")), Bt.setAttribute(\"transform\", e), !(e = Bt.transform.baseVal.consolidate())) ? Jn : (e = e.matrix, dr(e.a, e.b, e.c, e.d, e.e, e.f));\n}\nfunction fr(e, t, n, o) {\n function i(u) {\n return u.length ? u.pop() + \" \" : \"\";\n }\n function r(u, c, v, g, x, h) {\n if (u !== v || c !== g) {\n var d = x.push(\"translate(\", null, t, null, n);\n h.push({ i: d - 4, x: Re(u, v) }, { i: d - 2, x: Re(c, g) });\n } else\n (v || g) && x.push(\"translate(\" + v + t + g + n);\n }\n function a(u, c, v, g) {\n u !== c ? (u - c > 180 ? c += 360 : c - u > 180 && (u += 360), g.push({ i: v.push(i(v) + \"rotate(\", null, o) - 2, x: Re(u, c) })) : c && v.push(i(v) + \"rotate(\" + c + o);\n }\n function s(u, c, v, g) {\n u !== c ? g.push({ i: v.push(i(v) + \"skewX(\", null, o) - 2, x: Re(u, c) }) : c && v.push(i(v) + \"skewX(\" + c + o);\n }\n function l(u, c, v, g, x, h) {\n if (u !== v || c !== g) {\n var d = x.push(i(x) + \"scale(\", null, \",\", null, \")\");\n h.push({ i: d - 4, x: Re(u, v) }, { i: d - 2, x: Re(c, g) });\n } else\n (v !== 1 || g !== 1) && x.push(i(x) + \"scale(\" + v + \",\" + g + \")\");\n }\n return function(u, c) {\n var v = [], g = [];\n return u = e(u), c = e(c), r(u.translateX, u.translateY, c.translateX, c.translateY, v, g), a(u.rotate, c.rotate, v, g), s(u.skewX, c.skewX, v, g), l(u.scaleX, u.scaleY, c.scaleX, c.scaleY, v, g), u = c = null, function(x) {\n for (var h = -1, d = g.length, w; ++h < d; )\n v[(w = g[h]).i] = w.x(x);\n return v.join(\"\");\n };\n };\n}\nvar Tu = fr(ku, \"px, \", \"px)\", \"deg)\"), Iu = fr(Ou, \", \", \")\", \")\"), Pu = 1e-12;\nfunction ri(e) {\n return ((e = Math.exp(e)) + 1 / e) / 2;\n}\nfunction Du(e) {\n return ((e = Math.exp(e)) - 1 / e) / 2;\n}\nfunction zu(e) {\n return ((e = Math.exp(2 * e)) - 1) / (e + 1);\n}\nconst Au = function e(t, n, o) {\n function i(r, a) {\n var s = r[0], l = r[1], u = r[2], c = a[0], v = a[1], g = a[2], x = c - s, h = v - l, d = x * x + h * h, w, y;\n if (d < Pu)\n y = Math.log(g / u) / t, w = function(_) {\n return [\n s + _ * x,\n l + _ * h,\n u * Math.exp(t * _ * y)\n ];\n };\n else {\n var S = Math.sqrt(d), V = (g * g - u * u + o * d) / (2 * u * n * S), p = (g * g - u * u - o * d) / (2 * g * n * S), N = Math.log(Math.sqrt(V * V + 1) - V), T = Math.log(Math.sqrt(p * p + 1) - p);\n y = (T - N) / t, w = function(_) {\n var P = _ * y, R = ri(N), $ = u / (n * S) * (R * zu(t * P + N) - Du(N));\n return [\n s + $ * x,\n l + $ * h,\n u * R / ri(t * P + N)\n ];\n };\n }\n return w.duration = y * 1e3 * t / Math.SQRT2, w;\n }\n return i.rho = function(r) {\n var a = Math.max(1e-3, +r), s = a * a, l = s * s;\n return e(a, s, l);\n }, i;\n}(Math.SQRT2, 2, 4);\nvar ht = 0, mt = 0, gt = 0, hr = 1e3, Jt, pt, en = 0, Je = 0, wn = 0, Ct = typeof performance == \"object\" && performance.now ? performance : Date, gr = typeof window == \"object\" && window.requestAnimationFrame ? window.requestAnimationFrame.bind(window) : function(e) {\n setTimeout(e, 17);\n};\nfunction xo() {\n return Je || (gr(Bu), Je = Ct.now() + wn);\n}\nfunction Bu() {\n Je = 0;\n}\nfunction tn() {\n this._call = this._time = this._next = null;\n}\ntn.prototype = vr.prototype = {\n constructor: tn,\n restart: function(e, t, n) {\n if (typeof e != \"function\")\n throw new TypeError(\"callback is not a function\");\n n = (n == null ? xo() : +n) + (t == null ? 0 : +t), !this._next && pt !== this && (pt ? pt._next = this : Jt = this, pt = this), this._call = e, this._time = n, eo();\n },\n stop: function() {\n this._call && (this._call = null, this._time = 1 / 0, eo());\n }\n};\nfunction vr(e, t, n) {\n var o = new tn();\n return o.restart(e, t, n), o;\n}\nfunction Ru() {\n xo(), ++ht;\n for (var e = Jt, t; e; )\n (t = Je - e._time) >= 0 && e._call.call(void 0, t), e = e._next;\n --ht;\n}\nfunction ai() {\n Je = (en = Ct.now()) + wn, ht = mt = 0;\n try {\n Ru();\n } finally {\n ht = 0, Hu(), Je = 0;\n }\n}\nfunction Vu() {\n var e = Ct.now(), t = e - en;\n t > hr && (wn -= t, en = e);\n}\nfunction Hu() {\n for (var e, t = Jt, n, o = 1 / 0; t; )\n t._call ? (o > t._time && (o = t._time), e = t, t = t._next) : (n = t._next, t._next = null, t = e ? e._next = n : Jt = n);\n pt = e, eo(o);\n}\nfunction eo(e) {\n if (!ht) {\n mt && (mt = clearTimeout(mt));\n var t = e - Je;\n t > 24 ? (e < 1 / 0 && (mt = setTimeout(ai, e - Ct.now() - wn)), gt && (gt = clearInterval(gt))) : (gt || (en = Ct.now(), gt = setInterval(Vu, hr)), ht = 1, gr(ai));\n }\n}\nfunction si(e, t, n) {\n var o = new tn();\n return t = t == null ? 0 : +t, o.restart((i) => {\n o.stop(), e(i + t);\n }, t, n), o;\n}\nvar Lu = fn(\"start\", \"end\", \"cancel\", \"interrupt\"), Gu = [], mr = 0, li = 1, to = 2, Lt = 3, ui = 4, no = 5, Gt = 6;\nfunction bn(e, t, n, o, i, r) {\n var a = e.__transition;\n if (!a)\n e.__transition = {};\n else if (n in a)\n return;\n Fu(e, n, {\n name: t,\n index: o,\n // For context during callback.\n group: i,\n // For context during callback.\n on: Lu,\n tween: Gu,\n time: r.time,\n delay: r.delay,\n duration: r.duration,\n ease: r.ease,\n timer: null,\n state: mr\n });\n}\nfunction _o(e, t) {\n var n = Se(e, t);\n if (n.state > mr)\n throw new Error(\"too late; already scheduled\");\n return n;\n}\nfunction ke(e, t) {\n var n = Se(e, t);\n if (n.state > Lt)\n throw new Error(\"too late; already running\");\n return n;\n}\nfunction Se(e, t) {\n var n = e.__transition;\n if (!n || !(n = n[t]))\n throw new Error(\"transition not found\");\n return n;\n}\nfunction Fu(e, t, n) {\n var o = e.__transition, i;\n o[t] = n, n.timer = vr(r, 0, n.time);\n function r(u) {\n n.state = li, n.timer.restart(a, n.delay, n.time), n.delay <= u && a(u - n.delay);\n }\n function a(u) {\n var c, v, g, x;\n if (n.state !== li)\n return l();\n for (c in o)\n if (x = o[c], x.name === n.name) {\n if (x.state === Lt)\n return si(a);\n x.state === ui ? (x.state = Gt, x.timer.stop(), x.on.call(\"interrupt\", e, e.__data__, x.index, x.group), delete o[c]) : +c < t && (x.state = Gt, x.timer.stop(), x.on.call(\"cancel\", e, e.__data__, x.index, x.group), delete o[c]);\n }\n if (si(function() {\n n.state === Lt && (n.state = ui, n.timer.restart(s, n.delay, n.time), s(u));\n }), n.state = to, n.on.call(\"start\", e, e.__data__, n.index, n.group), n.state === to) {\n for (n.state = Lt, i = new Array(g = n.tween.length), c = 0, v = -1; c < g; ++c)\n (x = n.tween[c].value.call(e, e.__data__, n.index, n.group)) && (i[++v] = x);\n i.length = v + 1;\n }\n }\n function s(u) {\n for (var c = u < n.duration ? n.ease.call(null, u / n.duration) : (n.timer.restart(l), n.state = no, 1), v = -1, g = i.length; ++v < g; )\n i[v].call(e, c);\n n.state === no && (n.on.call(\"end\", e, e.__data__, n.index, n.group), l());\n }\n function l() {\n n.state = Gt, n.timer.stop(), delete o[t];\n for (var u in o)\n return;\n delete e.__transition;\n }\n}\nfunction Ft(e, t) {\n var n = e.__transition, o, i, r = !0, a;\n if (n) {\n t = t == null ? null : t + \"\";\n for (a in n) {\n if ((o = n[a]).name !== t) {\n r = !1;\n continue;\n }\n i = o.state > to && o.state < no, o.state = Gt, o.timer.stop(), o.on.call(i ? \"interrupt\" : \"cancel\", e, e.__data__, o.index, o.group), delete n[a];\n }\n r && delete e.__transition;\n }\n}\nfunction Yu(e) {\n return this.each(function() {\n Ft(this, e);\n });\n}\nfunction Xu(e, t) {\n var n, o;\n return function() {\n var i = ke(this, e), r = i.tween;\n if (r !== n) {\n o = n = r;\n for (var a = 0, s = o.length; a < s; ++a)\n if (o[a].name === t) {\n o = o.slice(), o.splice(a, 1);\n break;\n }\n }\n i.tween = o;\n };\n}\nfunction Zu(e, t, n) {\n var o, i;\n if (typeof n != \"function\")\n throw new Error();\n return function() {\n var r = ke(this, e), a = r.tween;\n if (a !== o) {\n i = (o = a).slice();\n for (var s = { name: t, value: n }, l = 0, u = i.length; l < u; ++l)\n if (i[l].name === t) {\n i[l] = s;\n break;\n }\n l === u && i.push(s);\n }\n r.tween = i;\n };\n}\nfunction Uu(e, t) {\n var n = this._id;\n if (e += \"\", arguments.length < 2) {\n for (var o = Se(this.node(), n).tween, i = 0, r = o.length, a; i < r; ++i)\n if ((a = o[i]).name === e)\n return a.value;\n return null;\n }\n return this.each((t == null ? Xu : Zu)(n, e, t));\n}\nfunction wo(e, t, n) {\n var o = e._id;\n return e.each(function() {\n var i = ke(this, o);\n (i.value || (i.value = {}))[t] = n.apply(this, arguments);\n }), function(i) {\n return Se(i, o).value[t];\n };\n}\nfunction pr(e, t) {\n var n;\n return (typeof t == \"number\" ? Re : t instanceof Nt ? oi : (n = Nt(t)) ? (t = n, oi) : $u)(e, t);\n}\nfunction Wu(e) {\n return function() {\n this.removeAttribute(e);\n };\n}\nfunction Ku(e) {\n return function() {\n this.removeAttributeNS(e.space, e.local);\n };\n}\nfunction qu(e, t, n) {\n var o, i = n + \"\", r;\n return function() {\n var a = this.getAttribute(e);\n return a === i ? null : a === o ? r : r = t(o = a, n);\n };\n}\nfunction ju(e, t, n) {\n var o, i = n + \"\", r;\n return function() {\n var a = this.getAttributeNS(e.space, e.local);\n return a === i ? null : a === o ? r : r = t(o = a, n);\n };\n}\nfunction Qu(e, t, n) {\n var o, i, r;\n return function() {\n var a, s = n(this), l;\n return s == null ? void this.removeAttribute(e) : (a = this.getAttribute(e), l = s + \"\", a === l ? null : a === o && l === i ? r : (i = l, r = t(o = a, s)));\n };\n}\nfunction Ju(e, t, n) {\n var o, i, r;\n return function() {\n var a, s = n(this), l;\n return s == null ? void this.removeAttributeNS(e.space, e.local) : (a = this.getAttributeNS(e.space, e.local), l = s + \"\", a === l ? null : a === o && l === i ? r : (i = l, r = t(o = a, s)));\n };\n}\nfunction ec(e, t) {\n var n = hn(e), o = n === \"transform\" ? Iu : pr;\n return this.attrTween(e, typeof t == \"function\" ? (n.local ? Ju : Qu)(n, o, wo(this, \"attr.\" + e, t)) : t == null ? (n.local ? Ku : Wu)(n) : (n.local ? ju : qu)(n, o, t));\n}\nfunction tc(e, t) {\n return function(n) {\n this.setAttribute(e, t.call(this, n));\n };\n}\nfunction nc(e, t) {\n return function(n) {\n this.setAttributeNS(e.space, e.local, t.call(this, n));\n };\n}\nfunction oc(e, t) {\n var n, o;\n function i() {\n var r = t.apply(this, arguments);\n return r !== o && (n = (o = r) && nc(e, r)), n;\n }\n return i._value = t, i;\n}\nfunction ic(e, t) {\n var n, o;\n function i() {\n var r = t.apply(this, arguments);\n return r !== o && (n = (o = r) && tc(e, r)), n;\n }\n return i._value = t, i;\n}\nfunction rc(e, t) {\n var n = \"attr.\" + e;\n if (arguments.length < 2)\n return (n = this.tween(n)) && n._value;\n if (t == null)\n return this.tween(n, null);\n if (typeof t != \"function\")\n throw new Error();\n var o = hn(e);\n return this.tween(n, (o.local ? oc : ic)(o, t));\n}\nfunction ac(e, t) {\n return function() {\n _o(this, e).delay = +t.apply(this, arguments);\n };\n}\nfunction sc(e, t) {\n return t = +t, function() {\n _o(this, e).delay = t;\n };\n}\nfunction lc(e) {\n var t = this._id;\n return arguments.length ? this.each((typeof e == \"function\" ? ac : sc)(t, e)) : Se(this.node(), t).delay;\n}\nfunction uc(e, t) {\n return function() {\n ke(this, e).duration = +t.apply(this, arguments);\n };\n}\nfunction cc(e, t) {\n return t = +t, function() {\n ke(this, e).duration = t;\n };\n}\nfunction dc(e) {\n var t = this._id;\n return arguments.length ? this.each((typeof e == \"function\" ? uc : cc)(t, e)) : Se(this.node(), t).duration;\n}\nfunction fc(e, t) {\n if (typeof t != \"function\")\n throw new Error();\n return function() {\n ke(this, e).ease = t;\n };\n}\nfunction hc(e) {\n var t = this._id;\n return arguments.length ? this.each(fc(t, e)) : Se(this.node(), t).ease;\n}\nfunction gc(e, t) {\n return function() {\n var n = t.apply(this, arguments);\n if (typeof n != \"function\")\n throw new Error();\n ke(this, e).ease = n;\n };\n}\nfunction vc(e) {\n if (typeof e != \"function\")\n throw new Error();\n return this.each(gc(this._id, e));\n}\nfunction mc(e) {\n typeof e != \"function\" && (e = Vi(e));\n for (var t = this._groups, n = t.length, o = new Array(n), i = 0; i < n; ++i)\n for (var r = t[i], a = r.length, s = o[i] = [], l, u = 0; u < a; ++u)\n (l = r[u]) && e.call(l, l.__data__, u, r) && s.push(l);\n return new Be(o, this._parents, this._name, this._id);\n}\nfunction pc(e) {\n if (e._id !== this._id)\n throw new Error();\n for (var t = this._groups, n = e._groups, o = t.length, i = n.length, r = Math.min(o, i), a = new Array(o), s = 0; s < r; ++s)\n for (var l = t[s], u = n[s], c = l.length, v = a[s] = new Array(c), g, x = 0; x < c; ++x)\n (g = l[x] || u[x]) && (v[x] = g);\n for (; s < o; ++s)\n a[s] = t[s];\n return new Be(a, this._parents, this._name, this._id);\n}\nfunction yc(e) {\n return (e + \"\").trim().split(/^|\\s+/).every(function(t) {\n var n = t.indexOf(\".\");\n return n >= 0 && (t = t.slice(0, n)), !t || t === \"start\";\n });\n}\nfunction xc(e, t, n) {\n var o, i, r = yc(t) ? _o : ke;\n return function() {\n var a = r(this, e), s = a.on;\n s !== o && (i = (o = s).copy()).on(t, n), a.on = i;\n };\n}\nfunction _c(e, t) {\n var n = this._id;\n return arguments.length < 2 ? Se(this.node(), n).on.on(e) : this.each(xc(n, e, t));\n}\nfunction wc(e) {\n return function() {\n var t = this.parentNode;\n for (var n in this.__transition)\n if (+n !== e)\n return;\n t && t.removeChild(this);\n };\n}\nfunction bc() {\n return this.on(\"end.remove\", wc(this._id));\n}\nfunction Ec(e) {\n var t = this._name, n = this._id;\n typeof e != \"function\" && (e = vo(e));\n for (var o = this._groups, i = o.length, r = new Array(i), a = 0; a < i; ++a)\n for (var s = o[a], l = s.length, u = r[a] = new Array(l), c, v, g = 0; g < l; ++g)\n (c = s[g]) && (v = e.call(c, c.__data__, g, s)) && (\"__data__\" in c && (v.__data__ = c.__data__), u[g] = v, bn(u[g], t, n, g, u, Se(c, n)));\n return new Be(r, this._parents, t, n);\n}\nfunction Sc(e) {\n var t = this._name, n = this._id;\n typeof e != \"function\" && (e = Ri(e));\n for (var o = this._groups, i = o.length, r = [], a = [], s = 0; s < i; ++s)\n for (var l = o[s], u = l.length, c, v = 0; v < u; ++v)\n if (c = l[v]) {\n for (var g = e.call(c, c.__data__, v, l), x, h = Se(c, n), d = 0, w = g.length; d < w; ++d)\n (x = g[d]) && bn(x, t, n, d, g, h);\n r.push(g), a.push(c);\n }\n return new Be(r, a, t, n);\n}\nvar Nc = $t.prototype.constructor;\nfunction Cc() {\n return new Nc(this._groups, this._parents);\n}\nfunction Mc(e, t) {\n var n, o, i;\n return function() {\n var r = ft(this, e), a = (this.style.removeProperty(e), ft(this, e));\n return r === a ? null : r === n && a === o ? i : i = t(n = r, o = a);\n };\n}\nfunction yr(e) {\n return function() {\n this.style.removeProperty(e);\n };\n}\nfunction $c(e, t, n) {\n var o, i = n + \"\", r;\n return function() {\n var a = ft(this, e);\n return a === i ? null : a === o ? r : r = t(o = a, n);\n };\n}\nfunction kc(e, t, n) {\n var o, i, r;\n return function() {\n var a = ft(this, e), s = n(this), l = s + \"\";\n return s == null && (l = s = (this.style.removeProperty(e), ft(this, e))), a === l ? null : a === o && l === i ? r : (i = l, r = t(o = a, s));\n };\n}\nfunction Oc(e, t) {\n var n, o, i, r = \"style.\" + t, a = \"end.\" + r, s;\n return function() {\n var l = ke(this, e), u = l.on, c = l.value[r] == null ? s || (s = yr(t)) : void 0;\n (u !== n || i !== c) && (o = (n = u).copy()).on(a, i = c), l.on = o;\n };\n}\nfunction Tc(e, t, n) {\n var o = (e += \"\") == \"transform\" ? Tu : pr;\n return t == null ? this.styleTween(e, Mc(e, o)).on(\"end.style.\" + e, yr(e)) : typeof t == \"function\" ? this.styleTween(e, kc(e, o, wo(this, \"style.\" + e, t))).each(Oc(this._id, e)) : this.styleTween(e, $c(e, o, t), n).on(\"end.style.\" + e, null);\n}\nfunction Ic(e, t, n) {\n return function(o) {\n this.style.setProperty(e, t.call(this, o), n);\n };\n}\nfunction Pc(e, t, n) {\n var o, i;\n function r() {\n var a = t.apply(this, arguments);\n return a !== i && (o = (i = a) && Ic(e, a, n)), o;\n }\n return r._value = t, r;\n}\nfunction Dc(e, t, n) {\n var o = \"style.\" + (e += \"\");\n if (arguments.length < 2)\n return (o = this.tween(o)) && o._value;\n if (t == null)\n return this.tween(o, null);\n if (typeof t != \"function\")\n throw new Error();\n return this.tween(o, Pc(e, t, n ?? \"\"));\n}\nfunction zc(e) {\n return function() {\n this.textContent = e;\n };\n}\nfunction Ac(e) {\n return function() {\n var t = e(this);\n this.textContent = t ?? \"\";\n };\n}\nfunction Bc(e) {\n return this.tween(\"text\", typeof e == \"function\" ? Ac(wo(this, \"text\", e)) : zc(e == null ? \"\" : e + \"\"));\n}\nfunction Rc(e) {\n return function(t) {\n this.textContent = e.call(this, t);\n };\n}\nfunction Vc(e) {\n var t, n;\n function o() {\n var i = e.apply(this, arguments);\n return i !== n && (t = (n = i) && Rc(i)), t;\n }\n return o._value = e, o;\n}\nfunction Hc(e) {\n var t = \"text\";\n if (arguments.length < 1)\n return (t = this.tween(t)) && t._value;\n if (e == null)\n return this.tween(t, null);\n if (typeof e != \"function\")\n throw new Error();\n return this.tween(t, Vc(e));\n}\nfunction Lc() {\n for (var e = this._name, t = this._id, n = xr(), o = this._groups, i = o.length, r = 0; r < i; ++r)\n for (var a = o[r], s = a.length, l, u = 0; u < s; ++u)\n if (l = a[u]) {\n var c = Se(l, t);\n bn(l, e, n, u, a, {\n time: c.time + c.delay + c.duration,\n delay: 0,\n duration: c.duration,\n ease: c.ease\n });\n }\n return new Be(o, this._parents, e, n);\n}\nfunction Gc() {\n var e, t, n = this, o = n._id, i = n.size();\n return new Promise(function(r, a) {\n var s = { value: a }, l = { value: function() {\n --i === 0 && r();\n } };\n n.each(function() {\n var u = ke(this, o), c = u.on;\n c !== e && (t = (e = c).copy(), t._.cancel.push(s), t._.interrupt.push(s), t._.end.push(l)), u.on = t;\n }), i === 0 && r();\n });\n}\nvar Fc = 0;\nfunction Be(e, t, n, o) {\n this._groups = e, this._parents = t, this._name = n, this._id = o;\n}\nfunction xr() {\n return ++Fc;\n}\nvar Oe = $t.prototype;\nBe.prototype = {\n constructor: Be,\n select: Ec,\n selectAll: Sc,\n selectChild: Oe.selectChild,\n selectChildren: Oe.selectChildren,\n filter: mc,\n merge: pc,\n selection: Cc,\n transition: Lc,\n call: Oe.call,\n nodes: Oe.nodes,\n node: Oe.node,\n size: Oe.size,\n empty: Oe.empty,\n each: Oe.each,\n on: _c,\n attr: ec,\n attrTween: rc,\n style: Tc,\n styleTween: Dc,\n text: Bc,\n textTween: Hc,\n remove: bc,\n tween: Uu,\n delay: lc,\n duration: dc,\n ease: hc,\n easeVarying: vc,\n end: Gc,\n [Symbol.iterator]: Oe[Symbol.iterator]\n};\nfunction Yc(e) {\n return ((e *= 2) <= 1 ? e * e * e : (e -= 2) * e * e + 2) / 2;\n}\nvar Xc = {\n time: null,\n // Set on use.\n delay: 0,\n duration: 250,\n ease: Yc\n};\nfunction Zc(e, t) {\n for (var n; !(n = e.__transition) || !(n = n[t]); )\n if (!(e = e.parentNode))\n throw new Error(`transition ${t} not found`);\n return n;\n}\nfunction Uc(e) {\n var t, n;\n e instanceof Be ? (t = e._id, e = e._name) : (t = xr(), (n = Xc).time = xo(), e = e == null ? null : e + \"\");\n for (var o = this._groups, i = o.length, r = 0; r < i; ++r)\n for (var a = o[r], s = a.length, l, u = 0; u < s; ++u)\n (l = a[u]) && bn(l, e, t, u, a, n || Zc(l, t));\n return new Be(o, this._parents, e, t);\n}\n$t.prototype.interrupt = Yu;\n$t.prototype.transition = Uc;\nconst Rt = (e) => () => e;\nfunction Wc(e, {\n sourceEvent: t,\n target: n,\n transform: o,\n dispatch: i\n}) {\n Object.defineProperties(this, {\n type: { value: e, enumerable: !0, configurable: !0 },\n sourceEvent: { value: t, enumerable: !0, configurable: !0 },\n target: { value: n, enumerable: !0, configurable: !0 },\n transform: { value: o, enumerable: !0, configurable: !0 },\n _: { value: i }\n });\n}\nfunction De(e, t, n) {\n this.k = e, this.x = t, this.y = n;\n}\nDe.prototype = {\n constructor: De,\n scale: function(e) {\n return e === 1 ? this : new De(this.k * e, this.x, this.y);\n },\n translate: function(e, t) {\n return e === 0 & t === 0 ? this : new De(this.k, this.x + this.k * e, this.y + this.k * t);\n },\n apply: function(e) {\n return [e[0] * this.k + this.x, e[1] * this.k + this.y];\n },\n applyX: function(e) {\n return e * this.k + this.x;\n },\n applyY: function(e) {\n return e * this.k + this.y;\n },\n invert: function(e) {\n return [(e[0] - this.x) / this.k, (e[1] - this.y) / this.k];\n },\n invertX: function(e) {\n return (e - this.x) / this.k;\n },\n invertY: function(e) {\n return (e - this.y) / this.k;\n },\n rescaleX: function(e) {\n return e.copy().domain(e.range().map(this.invertX, this).map(e.invert, e));\n },\n rescaleY: function(e) {\n return e.copy().domain(e.range().map(this.invertY, this).map(e.invert, e));\n },\n toString: function() {\n return \"translate(\" + this.x + \",\" + this.y + \") scale(\" + this.k + \")\";\n }\n};\nvar et = new De(1, 0, 0);\nDe.prototype;\nfunction Tn(e) {\n e.stopImmediatePropagation();\n}\nfunction vt(e) {\n e.preventDefault(), e.stopImmediatePropagation();\n}\nfunction Kc(e) {\n return (!e.ctrlKey || e.type === \"wheel\") && !e.button;\n}\nfunction qc() {\n var e = this;\n return e instanceof SVGElement ? (e = e.ownerSVGElement || e, e.hasAttribute(\"viewBox\") ? (e = e.viewBox.baseVal, [[e.x, e.y], [e.x + e.width, e.y + e.height]]) : [[0, 0], [e.width.baseVal.value, e.height.baseVal.value]]) : [[0, 0], [e.clientWidth, e.clientHeight]];\n}\nfunction ci() {\n return this.__zoom || et;\n}\nfunction jc(e) {\n return -e.deltaY * (e.deltaMode === 1 ? 0.05 : e.deltaMode ? 1 : 2e-3) * (e.ctrlKey ? 10 : 1);\n}\nfunction Qc() {\n return navigator.maxTouchPoints || \"ontouchstart\" in this;\n}\nfunction Jc(e, t, n) {\n var o = e.invertX(t[0][0]) - n[0][0], i = e.invertX(t[1][0]) - n[1][0], r = e.invertY(t[0][1]) - n[0][1], a = e.invertY(t[1][1]) - n[1][1];\n return e.translate(\n i > o ? (o + i) / 2 : Math.min(0, o) || Math.max(0, i),\n a > r ? (r + a) / 2 : Math.min(0, r) || Math.max(0, a)\n );\n}\nfunction ed() {\n var e = Kc, t = qc, n = Jc, o = jc, i = Qc, r = [0, 1 / 0], a = [[-1 / 0, -1 / 0], [1 / 0, 1 / 0]], s = 250, l = Au, u = fn(\"start\", \"zoom\", \"end\"), c, v, g, x = 500, h = 150, d = 0, w = 10;\n function y(m) {\n m.property(\"__zoom\", ci).on(\"wheel.zoom\", P, { passive: !1 }).on(\"mousedown.zoom\", R).on(\"dblclick.zoom\", $).filter(i).on(\"touchstart.zoom\", D).on(\"touchmove.zoom\", Q).on(\"touchend.zoom touchcancel.zoom\", ee).style(\"-webkit-tap-highlight-color\", \"rgba(0,0,0,0)\");\n }\n y.transform = function(m, A, E, G) {\n var Z = m.selection ? m.selection() : m;\n Z.property(\"__zoom\", ci), m !== Z ? N(m, A, E, G) : Z.interrupt().each(function() {\n T(this, arguments).event(G).start().zoom(null, typeof A == \"function\" ? A.apply(this, arguments) : A).end();\n });\n }, y.scaleBy = function(m, A, E, G) {\n y.scaleTo(m, function() {\n var Z = this.__zoom.k, K = typeof A == \"function\" ? A.apply(this, arguments) : A;\n return Z * K;\n }, E, G);\n }, y.scaleTo = function(m, A, E, G) {\n y.transform(m, function() {\n var Z = t.apply(this, arguments), K = this.__zoom, z = E == null ? p(Z) : typeof E == \"function\" ? E.apply(this, arguments) : E, W = K.invert(z), B = typeof A == \"function\" ? A.apply(this, arguments) : A;\n return n(V(S(K, B), z, W), Z, a);\n }, E, G);\n }, y.translateBy = function(m, A, E, G) {\n y.transform(m, function() {\n return n(this.__zoom.translate(\n typeof A == \"function\" ? A.apply(this, arguments) : A,\n typeof E == \"function\" ? E.apply(this, arguments) : E\n ), t.apply(this, arguments), a);\n }, null, G);\n }, y.translateTo = function(m, A, E, G, Z) {\n y.transform(m, function() {\n var K = t.apply(this, arguments), z = this.__zoom, W = G == null ? p(K) : typeof G == \"function\" ? G.apply(this, arguments) : G;\n return n(et.translate(W[0], W[1]).scale(z.k).translate(\n typeof A == \"function\" ? -A.apply(this, arguments) : -A,\n typeof E == \"function\" ? -E.apply(this, arguments) : -E\n ), K, a);\n }, G, Z);\n };\n function S(m, A) {\n return A = Math.max(r[0], Math.min(r[1], A)), A === m.k ? m : new De(A, m.x, m.y);\n }\n function V(m, A, E) {\n var G = A[0] - E[0] * m.k, Z = A[1] - E[1] * m.k;\n return G === m.x && Z === m.y ? m : new De(m.k, G, Z);\n }\n function p(m) {\n return [(+m[0][0] + +m[1][0]) / 2, (+m[0][1] + +m[1][1]) / 2];\n }\n function N(m, A, E, G) {\n m.on(\"start.zoom\", function() {\n T(this, arguments).event(G).start();\n }).on(\"interrupt.zoom end.zoom\", function() {\n T(this, arguments).event(G).end();\n }).tween(\"zoom\", function() {\n var Z = this, K = arguments, z = T(Z, K).event(G), W = t.apply(Z, K), B = E == null ? p(W) : typeof E == \"function\" ? E.apply(Z, K) : E, q = Math.max(W[1][0] - W[0][0], W[1][1] - W[0][1]), te = Z.__zoom, re = typeof A == \"function\" ? A.apply(Z, K) : A, k = l(te.invert(B).concat(q / te.k), re.invert(B).concat(q / re.k));\n return function(H) {\n if (H === 1)\n H = re;\n else {\n var f = k(H), b = q / f[2];\n H = new De(b, B[0] - f[0] * b, B[1] - f[1] * b);\n }\n z.zoom(null, H);\n };\n });\n }\n function T(m, A, E) {\n return !E && m.__zooming || new _(m, A);\n }\n function _(m, A) {\n this.that = m, this.args = A, this.active = 0, this.sourceEvent = null, this.extent = t.apply(m, A), this.taps = 0;\n }\n _.prototype = {\n event: function(m) {\n return m && (this.sourceEvent = m), this;\n },\n start: function() {\n return ++this.active === 1 && (this.that.__zooming = this, this.emit(\"start\")), this;\n },\n zoom: function(m, A) {\n return this.mouse && m !== \"mouse\" && (this.mouse[1] = A.invert(this.mouse[0])), this.touch0 && m !== \"touch\" && (this.touch0[1] = A.invert(this.touch0[0])), this.touch1 && m !== \"touch\" && (this.touch1[1] = A.invert(this.touch1[0])), this.that.__zoom = A, this.emit(\"zoom\"), this;\n },\n end: function() {\n return --this.active === 0 && (delete this.that.__zooming, this.emit(\"end\")), this;\n },\n emit: function(m) {\n var A = we(this.that).datum();\n u.call(\n m,\n this.that,\n new Wc(m, {\n sourceEvent: this.sourceEvent,\n target: y,\n type: m,\n transform: this.that.__zoom,\n dispatch: u\n }),\n A\n );\n }\n };\n function P(m, ...A) {\n if (!e.apply(this, arguments))\n return;\n var E = T(this, A).event(m), G = this.__zoom, Z = Math.max(r[0], Math.min(r[1], G.k * Math.pow(2, o.apply(this, arguments)))), K = Ne(m);\n if (E.wheel)\n (E.mouse[0][0] !== K[0] || E.mouse[0][1] !== K[1]) && (E.mouse[1] = G.invert(E.mouse[0] = K)), clearTimeout(E.wheel);\n else {\n if (G.k === Z)\n return;\n E.mouse = [K, G.invert(K)], Ft(this), E.start();\n }\n vt(m), E.wheel = setTimeout(z, h), E.zoom(\"mouse\", n(V(S(G, Z), E.mouse[0], E.mouse[1]), E.extent, a));\n function z() {\n E.wheel = null, E.end();\n }\n }\n function R(m, ...A) {\n if (g || !e.apply(this, arguments))\n return;\n var E = m.currentTarget, G = T(this, A, !0).event(m), Z = we(m.view).on(\"mousemove.zoom\", B, !0).on(\"mouseup.zoom\", q, !0), K = Ne(m, E), z = m.clientX, W = m.clientY;\n Ki(m.view), Tn(m), G.mouse = [K, this.__zoom.invert(K)], Ft(this), G.start();\n function B(te) {\n if (vt(te), !G.moved) {\n var re = te.clientX - z, k = te.clientY - W;\n G.moved = re * re + k * k > d;\n }\n G.event(te).zoom(\"mouse\", n(V(G.that.__zoom, G.mouse[0] = Ne(te, E), G.mouse[1]), G.extent, a));\n }\n function q(te) {\n Z.on(\"mousemove.zoom mouseup.zoom\", null), qi(te.view, G.moved), vt(te), G.event(te).end();\n }\n }\n function $(m, ...A) {\n if (e.apply(this, arguments)) {\n var E = this.__zoom, G = Ne(m.changedTouches ? m.changedTouches[0] : m, this), Z = E.invert(G), K = E.k * (m.shiftKey ? 0.5 : 2), z = n(V(S(E, K), G, Z), t.apply(this, A), a);\n vt(m), s > 0 ? we(this).transition().duration(s).call(N, z, G, m) : we(this).call(y.transform, z, G, m);\n }\n }\n function D(m, ...A) {\n if (e.apply(this, arguments)) {\n var E = m.touches, G = E.length, Z = T(this, A, m.changedTouches.length === G).event(m), K, z, W, B;\n for (Tn(m), z = 0; z < G; ++z)\n W = E[z], B = Ne(W, this), B = [B, this.__zoom.invert(B), W.identifier], Z.touch0 ? !Z.touch1 && Z.touch0[2] !== B[2] && (Z.touch1 = B, Z.taps = 0) : (Z.touch0 = B, K = !0, Z.taps = 1 + !!c);\n c && (c = clearTimeout(c)), K && (Z.taps < 2 && (v = B[0], c = setTimeout(function() {\n c = null;\n }, x)), Ft(this), Z.start());\n }\n }\n function Q(m, ...A) {\n if (this.__zooming) {\n var E = T(this, A).event(m), G = m.changedTouches, Z = G.length, K, z, W, B;\n for (vt(m), K = 0; K < Z; ++K)\n z = G[K], W = Ne(z, this), E.touch0 && E.touch0[2] === z.identifier ? E.touch0[0] = W : E.touch1 && E.touch1[2] === z.identifier && (E.touch1[0] = W);\n if (z = E.that.__zoom, E.touch1) {\n var q = E.touch0[0], te = E.touch0[1], re = E.touch1[0], k = E.touch1[1], H = (H = re[0] - q[0]) * H + (H = re[1] - q[1]) * H, f = (f = k[0] - te[0]) * f + (f = k[1] - te[1]) * f;\n z = S(z, Math.sqrt(H / f)), W = [(q[0] + re[0]) / 2, (q[1] + re[1]) / 2], B = [(te[0] + k[0]) / 2, (te[1] + k[1]) / 2];\n } else if (E.touch0)\n W = E.touch0[0], B = E.touch0[1];\n else\n return;\n E.zoom(\"touch\", n(V(z, W, B), E.extent, a));\n }\n }\n function ee(m, ...A) {\n if (this.__zooming) {\n var E = T(this, A).event(m), G = m.changedTouches, Z = G.length, K, z;\n for (Tn(m), g && clearTimeout(g), g = setTimeout(function() {\n g = null;\n }, x), K = 0; K < Z; ++K)\n z = G[K], E.touch0 && E.touch0[2] === z.identifier ? delete E.touch0 : E.touch1 && E.touch1[2] === z.identifier && delete E.touch1;\n if (E.touch1 && !E.touch0 && (E.touch0 = E.touch1, delete E.touch1), E.touch0)\n E.touch0[1] = this.__zoom.invert(E.touch0[0]);\n else if (E.end(), E.taps === 2 && (z = Ne(z, this), Math.hypot(v[0] - z[0], v[1] - z[1]) < w)) {\n var W = we(this).on(\"dblclick.zoom\");\n W && W.apply(this, arguments);\n }\n }\n }\n return y.wheelDelta = function(m) {\n return arguments.length ? (o = typeof m == \"function\" ? m : Rt(+m), y) : o;\n }, y.filter = function(m) {\n return arguments.length ? (e = typeof m == \"function\" ? m : Rt(!!m), y) : e;\n }, y.touchable = function(m) {\n return arguments.length ? (i = typeof m == \"function\" ? m : Rt(!!m), y) : i;\n }, y.extent = function(m) {\n return arguments.length ? (t = typeof m == \"function\" ? m : Rt([[+m[0][0], +m[0][1]], [+m[1][0], +m[1][1]]]), y) : t;\n }, y.scaleExtent = function(m) {\n return arguments.length ? (r[0] = +m[0], r[1] = +m[1], y) : [r[0], r[1]];\n }, y.translateExtent = function(m) {\n return arguments.length ? (a[0][0] = +m[0][0], a[1][0] = +m[1][0], a[0][1] = +m[0][1], a[1][1] = +m[1][1], y) : [[a[0][0], a[0][1]], [a[1][0], a[1][1]]];\n }, y.constrain = function(m) {\n return arguments.length ? (n = m, y) : n;\n }, y.duration = function(m) {\n return arguments.length ? (s = +m, y) : s;\n }, y.interpolate = function(m) {\n return arguments.length ? (l = m, y) : l;\n }, y.on = function() {\n var m = u.on.apply(u, arguments);\n return m === u ? y : m;\n }, y.clickDistance = function(m) {\n return arguments.length ? (d = (m = +m) * m, y) : Math.sqrt(d);\n }, y.tapDistance = function(m) {\n return arguments.length ? (w = +m, y) : w;\n }, y;\n}\nconst In = 0.1;\nfunction Ge() {\n}\nconst td = {\n zoomIn: Ge,\n zoomOut: Ge,\n zoomTo: Ge,\n fitView: Ge,\n setCenter: Ge,\n fitBounds: Ge,\n project: (e) => e,\n setTransform: Ge,\n getTransform: () => ({ x: 0, y: 0, zoom: 1 }),\n initialized: !1\n}, nd = (e, t) => {\n const n = e, o = M(n, \"nodes\"), i = M(n, \"d3Zoom\"), r = M(n, \"d3Selection\"), a = M(n, \"dimensions\"), s = M(n, \"translateExtent\"), l = M(n, \"minZoom\"), u = M(n, \"maxZoom\"), c = M(n, \"viewport\"), v = M(n, \"snapToGrid\"), g = M(n, \"snapGrid\"), x = M(n, \"hooks\"), h = t, d = M(h, \"getNodes\"), w = ie(!1);\n x.value.nodesInitialized.on(() => {\n w.value = !0;\n });\n const y = J(() => !!i.value && !!r.value && !!a.value.width && !!a.value.height && w.value);\n function S(p, N) {\n r.value && i.value && i.value.scaleBy(Pn(r.value, N), p);\n }\n function V(p, N, T, _) {\n const { x: P, y: R } = so({ x: -p, y: -N }, s.value), $ = et.translate(-P, -R).scale(T);\n r.value && i.value && i.value.transform(Pn(r.value, _), $);\n }\n return J(() => y.value ? {\n initialized: !0,\n zoomIn: (p) => {\n S(1.2, p == null ? void 0 : p.duration);\n },\n zoomOut: (p) => {\n S(1 / 1.2, p == null ? void 0 : p.duration);\n },\n zoomTo: (p, N) => {\n r.value && i.value && i.value.scaleTo(Pn(r.value, N == null ? void 0 : N.duration), p);\n },\n setTransform: (p, N) => {\n V(p.x, p.y, p.zoom, N == null ? void 0 : N.duration);\n },\n getTransform: () => ({\n x: c.value.x,\n y: c.value.y,\n zoom: c.value.zoom\n }),\n fitView: (p = {\n padding: In,\n includeHiddenNodes: !1,\n duration: 0\n }) => {\n if (!o.value.length)\n return;\n const N = (p.includeHiddenNodes ? o.value : d.value).filter(($) => {\n var ee;\n const D = $.initialized && $.dimensions.width && $.dimensions.height;\n let Q = !0;\n return (ee = p.nodes) != null && ee.length && (Q = p.nodes.includes($.id)), D && Q;\n }), T = co(N), { x: _, y: P, zoom: R } = Zt(\n T,\n a.value.width,\n a.value.height,\n p.minZoom ?? l.value,\n p.maxZoom ?? u.value,\n p.padding ?? In,\n p.offset\n );\n V(_, P, R, p == null ? void 0 : p.duration);\n },\n setCenter: (p, N, T) => {\n const _ = typeof (T == null ? void 0 : T.zoom) < \"u\" ? T.zoom : u.value, P = a.value.width / 2 - p * _, R = a.value.height / 2 - N * _;\n V(P, R, _, T == null ? void 0 : T.duration);\n },\n fitBounds: (p, N = { padding: In }) => {\n const { x: T, y: _, zoom: P } = Zt(\n p,\n a.value.width,\n a.value.height,\n l.value,\n u.value,\n N.padding\n );\n V(T, _, P, N == null ? void 0 : N.duration);\n },\n project: (p) => uo(p, c.value, v.value, g.value)\n } : td);\n};\nfunction Pn(e, t = 0) {\n return e.transition().duration(t);\n}\nfunction Dn(e, t) {\n if (t) {\n const n = e.position.x + e.dimensions.width - t.dimensions.width, o = e.position.y + e.dimensions.height - t.dimensions.height;\n if (n > 0 || o > 0 || e.position.x < 0 || e.position.y < 0) {\n let i = {};\n if (Ae(t.style) ? i = { ...t.style(t) } : t.style && (i = { ...t.style }), i.width = i.width ?? `${t.dimensions.width}px`, i.height = i.height ?? `${t.dimensions.height}px`, n > 0)\n if (Pe(i.width)) {\n const r = Number(i.width.replace(\"px\", \"\"));\n i.width = `${r + n}px`;\n } else\n i.width += n;\n if (o > 0)\n if (Pe(i.height)) {\n const r = Number(i.height.replace(\"px\", \"\"));\n i.height = `${r + o}px`;\n } else\n i.height += o;\n if (e.position.x < 0) {\n const r = Math.abs(e.position.x);\n if (t.position.x = t.position.x - r, Pe(i.width)) {\n const a = Number(i.width.replace(\"px\", \"\"));\n i.width = `${a + r}px`;\n } else\n i.width += r;\n e.position.x = 0;\n }\n if (e.position.y < 0) {\n const r = Math.abs(e.position.y);\n if (t.position.y = t.position.y - r, Pe(i.height)) {\n const a = Number(i.height.replace(\"px\", \"\"));\n i.height = `${a + r}px`;\n } else\n i.height += r;\n e.position.y = 0;\n }\n t.dimensions.width = Number(i.width.toString().replace(\"px\", \"\")), t.dimensions.height = Number(i.height.toString().replace(\"px\", \"\")), Ae(t.style) ? t.style = (r) => {\n const a = t.style;\n return {\n ...a(r),\n ...i\n };\n } : t.style = {\n ...t.style,\n ...i\n };\n }\n }\n}\nfunction nn(e, t) {\n e.filter((i) => i.type === \"add\" || i.type === \"remove\").forEach((i) => {\n if (i.type === \"add\")\n t.findIndex((a) => a.id === i.item.id) === -1 && t.push(i.item);\n else if (i.type === \"remove\") {\n const r = t.findIndex((a) => a.id === i.id);\n r !== -1 && t.splice(r, 1);\n }\n });\n const o = t.map((i) => i.id);\n return t.forEach((i) => {\n var a, s;\n const r = e.filter((l) => l.id === i.id);\n for (const l of r)\n switch (l.type) {\n case \"select\":\n i.selected = l.selected;\n break;\n case \"position\":\n if (nt(i) && (typeof l.position < \"u\" && (i.position = l.position), typeof l.dragging < \"u\" && (i.dragging = l.dragging), i.expandParent && i.parentNode)) {\n const u = t[o.indexOf(i.parentNode)];\n u && nt(u) && Dn(i, u);\n }\n break;\n case \"dimensions\":\n if (nt(i)) {\n if (typeof l.dimensions < \"u\" && (i.dimensions = l.dimensions), typeof l.updateStyle < \"u\" && (i.style = {\n ...i.style || {},\n width: `${(a = l.dimensions) == null ? void 0 : a.width}px`,\n height: `${(s = l.dimensions) == null ? void 0 : s.height}px`\n }), typeof l.resizing < \"u\" && (i.resizing = l.resizing), i.expandParent && i.parentNode) {\n const u = t[o.indexOf(i.parentNode)];\n u && nt(u) && (u.initialized ? Dn(i, u) : Ue(() => {\n Dn(i, u);\n }));\n }\n i.initialized || (i.initialized = !0);\n }\n break;\n }\n }), t;\n}\nfunction Vd(e, t) {\n return nn(e, t);\n}\nfunction Hd(e, t) {\n return nn(e, t);\n}\nfunction Te(e, t) {\n return {\n id: e,\n type: \"select\",\n selected: t\n };\n}\nfunction di(e) {\n return {\n item: e,\n type: \"add\"\n };\n}\nfunction zn(e) {\n return {\n id: e,\n type: \"remove\"\n };\n}\nfunction An(e, t) {\n return e.reduce(\n (n, o) => {\n let i = t.includes(o.id);\n ce(o.selectable) && !o.selectable && (i = !1);\n const r = nt(o) ? \"changedNodes\" : \"changedEdges\";\n return !o.selected && i ? n[r].push(Te(o.id, !0)) : o.selected && !i && n[r].push(Te(o.id, !1)), n;\n },\n { changedNodes: [], changedEdges: [] }\n );\n}\nfunction od(e, t, n, o) {\n let i = !1;\n const r = nd(e, t), a = (f) => {\n const b = f ?? n.value ?? [];\n e.hooks.updateNodeInternals.trigger(b);\n }, s = (f) => {\n if (f)\n return e.nodes && !n.value.length ? e.nodes.find((b) => b.id === f) : e.nodes[n.value.indexOf(f)];\n }, l = (f) => {\n if (f)\n return e.edges && !o.value.length ? e.edges.find((b) => b.id === f) : e.edges[o.value.indexOf(f)];\n }, u = (f, b, L) => {\n const I = [];\n f.forEach((F) => {\n var Y, ne;\n const U = {\n id: F.id,\n type: \"position\",\n dragging: L,\n from: F.from\n };\n if (b && (U.position = F.position, F.parentNode)) {\n const O = s(F.parentNode);\n U.position = {\n x: U.position.x - (((Y = O == null ? void 0 : O.computedPosition) == null ? void 0 : Y.x) ?? 0),\n y: U.position.y - (((ne = O == null ? void 0 : O.computedPosition) == null ? void 0 : ne.y) ?? 0)\n };\n }\n I.push(U);\n }), I != null && I.length && e.hooks.nodesChange.trigger(I);\n }, c = (f) => {\n var F;\n if (!e.vueFlowRef)\n return;\n const b = e.vueFlowRef.querySelector(\".vue-flow__transformationpane\");\n if (!b)\n return;\n let L;\n if ((F = e.__experimentalFeatures) != null && F.nestedFlow) {\n let U = [b], Y = b, ne;\n for (; !ne && Y; )\n Y = Y.parentElement, ne = Y == null ? void 0 : Y.classList.contains(\"vue-flow__transformationpane\"), ne && (U = [Y, ...U]);\n U.forEach((O) => {\n const ae = window.getComputedStyle(O), { m22: me } = new window.DOMMatrixReadOnly(ae.transform);\n L ? L *= me : L = me;\n });\n } else {\n const U = window.getComputedStyle(b), { m22: Y } = new window.DOMMatrixReadOnly(U.transform);\n L = Y;\n }\n const I = f.reduce((U, Y) => {\n const ne = s(Y.id);\n if (ne) {\n const O = rn(Y.nodeElement);\n !!(O.width && O.height && (ne.dimensions.width !== O.width || ne.dimensions.height !== O.height || Y.forceUpdate)) && (ne.handleBounds.source = Lo(\".source\", Y.nodeElement, L), ne.handleBounds.target = Lo(\".target\", Y.nodeElement, L), ne.dimensions = O, ne.initialized = !0, U.push({\n id: ne.id,\n type: \"dimensions\",\n dimensions: O\n }));\n }\n return U;\n }, []);\n e.fitViewOnInit && !i && (ye(() => r.value.initialized).toBe(!0).then(() => {\n r.value.fitView();\n }), i = !0), I.length && e.hooks.nodesChange.trigger(I);\n }, v = (f, b) => {\n const L = f.map((U) => U.id);\n let I, F = [];\n if (e.multiSelectionActive)\n I = L.map((U) => Te(U, b));\n else {\n const U = An([...e.nodes, ...e.edges], L);\n I = U.changedNodes, F = U.changedEdges;\n }\n I.length && e.hooks.nodesChange.trigger(I), F.length && e.hooks.edgesChange.trigger(F);\n }, g = (f, b) => {\n const L = f.map((U) => U.id);\n let I = [], F;\n if (e.multiSelectionActive)\n F = L.map((U) => Te(U, b));\n else {\n const U = An([...e.nodes, ...e.edges], L);\n I = U.changedNodes, F = U.changedEdges;\n }\n I.length && e.hooks.nodesChange.trigger(I), F.length && e.hooks.edgesChange.trigger(F);\n }, x = (f, b) => {\n const L = f.filter(xt).map((Y) => Y.id), I = f.filter($e).map((Y) => Y.id);\n let { changedNodes: F, changedEdges: U } = An([...e.nodes, ...e.edges], [...L, ...I]);\n e.multiSelectionActive && (F = L.map((Y) => Te(Y, b)), U = I.map((Y) => Te(Y, b))), F.length && e.hooks.nodesChange.trigger(F), U.length && e.hooks.edgesChange.trigger(U);\n }, h = (f) => {\n v(f, !0);\n }, d = (f) => {\n g(f, !0);\n }, w = (f) => {\n x(f, !0);\n }, y = (f) => {\n if (!f.length)\n return v(f, !1);\n const L = f.map((I) => I.id).map((I) => Te(I, !1));\n L.length && e.hooks.nodesChange.trigger(L);\n }, S = (f) => {\n if (!f.length)\n return g(f, !1);\n const L = f.map((I) => I.id).map((I) => Te(I, !1));\n L.length && e.hooks.edgesChange.trigger(L);\n }, V = (f) => {\n if (!f || !f.length)\n return x([], !1);\n const { changedNodes: b, changedEdges: L } = f.reduce(\n (I, F) => {\n const U = Te(F.id, !1);\n return xt(F) ? I.changedNodes.push(U) : I.changedEdges.push(U), I;\n },\n { changedNodes: [], changedEdges: [] }\n );\n b.length && e.hooks.nodesChange.trigger(b), L.length && e.hooks.edgesChange.trigger(L);\n }, p = (f) => {\n var b;\n (b = e.d3Zoom) == null || b.scaleExtent([f, e.maxZoom]), e.minZoom = f;\n }, N = (f) => {\n var b;\n (b = e.d3Zoom) == null || b.scaleExtent([e.minZoom, f]), e.maxZoom = f;\n }, T = (f) => {\n var b;\n (b = e.d3Zoom) == null || b.translateExtent(f), e.translateExtent = f;\n }, _ = (f) => {\n e.nodeExtent = f, a(n.value);\n }, P = (f) => {\n e.nodesDraggable = f, e.nodesConnectable = f, e.elementsSelectable = f;\n }, R = (f) => {\n const b = f instanceof Function ? f(e.nodes) : f;\n !e.initialized && !b.length || (e.nodes = Do(b, e.nodes, s, e.hooks.error.trigger));\n }, $ = (f) => {\n const b = f instanceof Function ? f(e.edges) : f;\n if (!e.initialized && !b.length)\n return;\n const L = e.isValidConnection ? b.filter(\n (I) => e.isValidConnection(I, {\n edges: e.edges,\n sourceNode: s(I.source),\n targetNode: s(I.target)\n })\n ) : b;\n e.edges = L.reduce((I, F) => {\n const U = s(F.source), Y = s(F.target), ne = !U || typeof U > \"u\", O = !Y || typeof Y > \"u\";\n if (ne && O ? e.hooks.error.trigger(new ve(he.EDGE_SOURCE_TARGET_MISSING, F.id, F.source, F.target)) : (ne && e.hooks.error.trigger(new ve(he.EDGE_SOURCE_MISSING, F.id, F.source)), O && e.hooks.error.trigger(new ve(he.EDGE_TARGET_MISSING, F.id, F.target))), ne || O)\n return I;\n const ae = l(F.id);\n return I.push({\n ...lo(F, Object.assign({}, ae, e.defaultEdgeOptions)),\n sourceNode: U,\n targetNode: Y\n }), I;\n }, []);\n }, D = (f) => {\n const b = f instanceof Function ? f([...e.nodes, ...e.edges]) : f;\n !e.initialized && !b.length || (R(b.filter(xt)), $(b.filter($e)));\n }, Q = (f) => {\n const b = f instanceof Function ? f(e.nodes) : f, I = Do(b, e.nodes, s, e.hooks.error.trigger).map(di);\n I.length && e.hooks.nodesChange.trigger(I);\n }, ee = (f) => {\n const b = f instanceof Function ? f(e.edges) : f, I = (e.isValidConnection ? b.filter(\n (F) => e.isValidConnection(F, {\n edges: e.edges,\n sourceNode: s(F.source),\n targetNode: s(F.target)\n })\n ) : b).reduce((F, U) => {\n const Y = pa(\n {\n ...U,\n ...e.defaultEdgeOptions\n },\n e.edges,\n e.hooks.error.trigger\n );\n if (Y) {\n const ne = s(Y.source), O = s(Y.target), ae = !ne || typeof ne > \"u\", me = !O || typeof O > \"u\";\n if (ae && me ? e.hooks.error.trigger(new ve(he.EDGE_SOURCE_TARGET_MISSING, Y.id, Y.source, Y.target)) : (ae && e.hooks.error.trigger(new ve(he.EDGE_SOURCE_MISSING, Y.id, Y.source)), me && e.hooks.error.trigger(new ve(he.EDGE_TARGET_MISSING, Y.id, Y.target))), ae || me)\n return F;\n F.push(\n di({\n ...Y,\n sourceNode: ne,\n targetNode: O\n })\n );\n }\n return F;\n }, []);\n I.length && e.hooks.edgesChange.trigger(I);\n }, m = (f, b = !0) => {\n const L = f instanceof Function ? f(e.nodes) : f, I = [], F = [];\n L.forEach((U) => {\n const Y = typeof U == \"string\" ? s(U) : U;\n if (!(ce(Y.deletable) && !Y.deletable) && (I.push(zn(Y.id)), b)) {\n const ne = sn([Y], e.edges).filter((O) => ce(O.deletable) ? O.deletable : !0);\n F.push(...ne.map((O) => zn(O.id)));\n }\n }), F.length && e.hooks.edgesChange.trigger(F), I.length && e.hooks.nodesChange.trigger(I);\n }, A = (f) => {\n const b = f instanceof Function ? f(e.edges) : f, L = [];\n b.forEach((I) => {\n const F = typeof I == \"string\" ? l(I) : I;\n ce(F.deletable) && !F.deletable || L.push(zn(typeof I == \"string\" ? I : I.id));\n }), e.hooks.edgesChange.trigger(L);\n }, E = (f, b, L = !0) => ya(f, b, e.edges, l, L, e.hooks.error.trigger), G = (f) => nn(f, e.nodes), Z = (f) => nn(f, e.edges), K = (f, b, L, I = !1) => {\n I ? e.connectionClickStartHandle = f : e.connectionStartHandle = f, e.connectionEndHandle = null, e.connectionStatus = null, b && (e.connectionPosition = b);\n }, z = (f, b = null, L = null) => {\n e.connectionStartHandle && (e.connectionPosition = f, e.connectionEndHandle = b, e.connectionStatus = L);\n }, W = (f, b) => {\n e.connectionPosition = { x: NaN, y: NaN }, e.connectionStatus = null, b ? e.connectionClickStartHandle = null : e.connectionStartHandle = null;\n }, B = (f) => {\n const b = ha(f), L = b ? null : s(f.id);\n return !b && !L ? [null, null, b] : [b ? f : Io(L), L, b];\n }, q = (f, b = !0, L) => {\n const [I, F, U] = B(f);\n return I ? (L || e.nodes).filter((Y) => {\n if (!U && (Y.id === F.id || !Y.computedPosition))\n return !1;\n const ne = Io(Y), O = Fn(ne, I);\n return b && O > 0 || O >= Number(f.width) * Number(f.height);\n }) : [];\n }, te = (f, b, L = !0) => {\n const [I] = B(f);\n if (!I)\n return !1;\n const F = Fn(I, b);\n return L && F > 0 || F >= Number(f.width) * Number(f.height);\n }, re = (f) => {\n const { viewport: b, dimensions: L, d3Zoom: I, d3Selection: F, translateExtent: U } = e;\n if (!I || !F || !f.x && !f.y)\n return !1;\n const Y = et.translate(b.x + f.x, b.y + f.y).scale(b.zoom), ne = [\n [0, 0],\n [L.width, L.height]\n ], O = I.constrain()(Y, ne, U), ae = e.viewport.x !== O.x || e.viewport.y !== O.y || e.viewport.zoom !== O.k;\n return I.transform(F, O), ae;\n }, k = (f) => {\n const b = f instanceof Function ? f(e) : f, L = [\n \"modelValue\",\n \"nodes\",\n \"edges\",\n \"maxZoom\",\n \"minZoom\",\n \"translateExtent\",\n \"nodeExtent\",\n \"hooks\",\n \"defaultEdgeOptions\"\n ], I = [\n \"d3Zoom\",\n \"d3Selection\",\n \"d3ZoomHandler\",\n \"viewportRef\",\n \"vueFlowRef\",\n \"dimensions\",\n \"hooks\"\n ];\n ce(b.defaultEdgeOptions) && (e.defaultEdgeOptions = b.defaultEdgeOptions);\n const F = b.modelValue || b.nodes || b.edges ? [] : void 0;\n F && (b.modelValue && F.push(...b.modelValue), b.nodes && F.push(...b.nodes), b.edges && F.push(...b.edges), D(F));\n const U = () => {\n ce(b.maxZoom) && N(b.maxZoom), ce(b.minZoom) && p(b.minZoom), ce(b.translateExtent) && T(b.translateExtent), ce(b.nodeExtent) && _(b.nodeExtent);\n };\n Object.keys(b).forEach((Y) => {\n const ne = Y, O = b[ne];\n ![...L, ...I].includes(ne) && ce(O) && (e[ne] = O);\n }), e.d3Zoom ? U() : ye(() => e.d3Zoom).not.toBeUndefined().then(U), e.initialized || (e.initialized = !0);\n };\n return {\n updateNodePositions: u,\n updateNodeDimensions: c,\n setElements: D,\n setNodes: R,\n setEdges: $,\n addNodes: Q,\n addEdges: ee,\n removeNodes: m,\n removeEdges: A,\n findNode: s,\n findEdge: l,\n updateEdge: E,\n applyEdgeChanges: Z,\n applyNodeChanges: G,\n addSelectedElements: w,\n addSelectedNodes: h,\n addSelectedEdges: d,\n setMinZoom: p,\n setMaxZoom: N,\n setTranslateExtent: T,\n setNodeExtent: _,\n removeSelectedElements: V,\n removeSelectedNodes: y,\n removeSelectedEdges: S,\n startConnection: K,\n updateConnection: z,\n endConnection: W,\n setInteractive: P,\n setState: k,\n getIntersectingNodes: q,\n isNodeIntersecting: te,\n panBy: re,\n fitView: async (f = { padding: 0.1 }) => {\n await ye(() => r.value.initialized).toBe(!0), r.value.fitView(f);\n },\n zoomIn: async (f) => {\n await ye(() => r.value.initialized).toBe(!0), r.value.zoomIn(f);\n },\n zoomOut: async (f) => {\n await ye(() => r.value.initialized).toBe(!0), r.value.zoomOut(f);\n },\n zoomTo: async (f, b) => {\n await ye(() => r.value.initialized).toBe(!0), r.value.zoomTo(f, b);\n },\n setTransform: async (f, b) => {\n await ye(() => r.value.initialized).toBe(!0), r.value.setTransform(f, b);\n },\n getTransform: () => r.value.getTransform(),\n setCenter: async (f, b, L) => {\n await ye(() => r.value.initialized).toBe(!0), r.value.setCenter(f, b, L);\n },\n fitBounds: async (f, b) => {\n await ye(() => r.value.initialized).toBe(!0), r.value.fitBounds(f, b);\n },\n project: (f) => r.value.project(f),\n toObject: () => JSON.parse(\n JSON.stringify({\n nodes: e.nodes.map((f) => {\n const {\n computedPosition: b,\n handleBounds: L,\n selected: I,\n dimensions: F,\n isParent: U,\n resizing: Y,\n dragging: ne,\n initialized: O,\n ...ae\n } = f;\n return ae;\n }),\n edges: e.edges.map((f) => {\n const { selected: b, sourceNode: L, targetNode: I, ...F } = f;\n return F;\n }),\n position: [e.viewport.x, e.viewport.y],\n zoom: e.viewport.zoom\n })\n ),\n updateNodeInternals: a,\n $reset: () => {\n const f = ar();\n if (e.edges = [], e.nodes = [], e.d3Zoom && e.d3Selection) {\n const b = et.translate(f.defaultViewport.x ?? 0, f.defaultViewport.y ?? 0).scale(je(f.defaultViewport.zoom ?? 1, f.minZoom, f.maxZoom)), L = e.viewportRef.getBoundingClientRect(), I = [\n [0, 0],\n [L.width, L.height]\n ], F = e.d3Zoom.constrain()(b, I, f.translateExtent);\n e.d3Zoom.transform(e.d3Selection, F);\n }\n k(f);\n },\n $destroy: () => {\n }\n };\n}\nclass ot {\n constructor() {\n this.currentId = 0, this.flows = /* @__PURE__ */ new Map();\n }\n static getInstance() {\n return ot.instance || (ot.instance = new ot()), ot.instance;\n }\n set(t, n) {\n return this.flows.set(t, n);\n }\n get(t) {\n return this.flows.get(t);\n }\n remove(t) {\n return this.flows.delete(t);\n }\n create(t, n) {\n const o = ar(n), i = kr(o), r = J(() => i.nodes.map((g) => g.id)), a = J(() => i.edges.map((g) => g.id)), s = cu(i, r, a), l = od(i, s, r, a), u = {};\n Object.entries(i.hooks).forEach(([g, x]) => {\n const h = `on${g.charAt(0).toUpperCase() + g.slice(1)}`;\n u[h] = x.on;\n });\n const c = {};\n Object.entries(i.hooks).forEach(([g, x]) => {\n c[g] = x.trigger;\n }), l.setState(i);\n const v = {\n ...u,\n ...s,\n ...l,\n ...Or(i),\n emits: c,\n id: t,\n vueFlowVersion: \"1.19.4\",\n $destroy: () => {\n this.remove(t);\n }\n };\n return this.set(t, v), v;\n }\n getId() {\n return `vue-flow-${this.currentId++}`;\n }\n}\nconst fe = (e) => {\n const t = ot.getInstance(), n = hi(), o = e == null ? void 0 : e.id, i = (n == null ? void 0 : n.vueFlowId) || o;\n let r, a = !1;\n if (n) {\n const s = He(zo, null);\n typeof s < \"u\" && s !== null && (r = s);\n }\n if (r || i && (r = t.get(i)), !r || r && o && o !== r.id) {\n const s = o ?? t.getId();\n r = t.create(s, e), n && (a = !0);\n } else\n e && r.setState(e);\n return n && (ut(zo, r), n.vueFlowId = r.id, a && Mt(() => {\n if (r) {\n const s = t.get(r.id);\n s ? s.$destroy() : wt(`No store instance found for id ${r.id} in storage.`);\n }\n })), r;\n};\nfunction id(e, t, n) {\n const o = Tr();\n return o.run(() => {\n [\n () => {\n o.run(() => {\n let h, d, w = !!(n.nodes.value.length || n.edges.value.length);\n h = tt([e.modelValue, () => {\n var y, S;\n return (S = (y = e.modelValue) == null ? void 0 : y.value) == null ? void 0 : S.length;\n }], ([y]) => {\n y && Array.isArray(y) && (d == null || d.pause(), n.setElements(y), !d && !w && y.length ? w = !0 : d == null || d.resume());\n }), d = tt(\n [n.nodes, n.edges, () => n.edges.value.length, () => n.nodes.value.length],\n ([y, S]) => {\n var V;\n (V = e.modelValue) != null && V.value && Array.isArray(e.modelValue.value) && (h == null || h.pause(), e.modelValue.value = [...y, ...S], Ue(() => {\n h == null || h.resume();\n }));\n },\n { immediate: w }\n ), Vt(() => {\n h == null || h.stop(), d == null || d.stop();\n });\n });\n },\n () => {\n o.run(() => {\n let h, d, w = !!n.nodes.value.length;\n h = tt([e.nodes, () => {\n var y, S;\n return (S = (y = e.nodes) == null ? void 0 : y.value) == null ? void 0 : S.length;\n }], ([y]) => {\n y && Array.isArray(y) && (d == null || d.pause(), n.setNodes(y), !d && !w && y.length ? w = !0 : d == null || d.resume());\n }), d = tt(\n [n.nodes, () => n.nodes.value.length],\n ([y]) => {\n var S;\n (S = e.nodes) != null && S.value && Array.isArray(e.nodes.value) && (h == null || h.pause(), e.nodes.value = [...y], Ue(() => {\n h == null || h.resume();\n }));\n },\n { immediate: w }\n ), Vt(() => {\n h == null || h.stop(), d == null || d.stop();\n });\n });\n },\n () => {\n o.run(() => {\n let h, d, w = !!n.edges.value.length;\n h = tt([e.edges, () => {\n var y, S;\n return (S = (y = e.edges) == null ? void 0 : y.value) == null ? void 0 : S.length;\n }], ([y]) => {\n y && Array.isArray(y) && (d == null || d.pause(), n.setEdges(y), !d && !w && y.length ? w = !0 : d == null || d.resume());\n }), d = tt(\n [n.edges, () => n.edges.value.length],\n ([y]) => {\n var S;\n (S = e.edges) != null && S.value && Array.isArray(e.edges.value) && (h == null || h.pause(), e.edges.value = [...y], Ue(() => {\n h == null || h.resume();\n }));\n },\n { immediate: w }\n ), Vt(() => {\n h == null || h.stop(), d == null || d.stop();\n });\n });\n },\n () => {\n o.run(() => {\n de(\n () => t.minZoom,\n () => {\n t.minZoom && ce(t.minZoom) && n.setMinZoom(t.minZoom);\n }\n );\n });\n },\n () => {\n o.run(() => {\n de(\n () => t.maxZoom,\n () => {\n t.maxZoom && ce(t.maxZoom) && n.setMaxZoom(t.maxZoom);\n }\n );\n });\n },\n () => {\n o.run(() => {\n de(\n () => t.translateExtent,\n () => {\n t.translateExtent && ce(t.translateExtent) && n.setTranslateExtent(t.translateExtent);\n }\n );\n });\n },\n () => {\n o.run(() => {\n de(\n () => t.nodeExtent,\n () => {\n t.nodeExtent && ce(t.nodeExtent) && n.setNodeExtent(t.nodeExtent);\n }\n );\n });\n },\n () => {\n o.run(() => {\n de(\n () => t.applyDefault,\n () => {\n ce(t.applyDefault) && (n.applyDefault.value = t.applyDefault);\n }\n ), de(\n n.applyDefault,\n (h, d, w) => {\n n.applyDefault.value ? (n.onNodesChange(n.applyNodeChanges), n.onEdgesChange(n.applyEdgeChanges)) : (n.hooks.value.nodesChange.off(n.applyNodeChanges), n.hooks.value.edgesChange.off(n.applyEdgeChanges)), w(() => {\n n.hooks.value.nodesChange.off(n.applyNodeChanges), n.hooks.value.edgesChange.off(n.applyEdgeChanges);\n });\n },\n { immediate: !0 }\n );\n });\n },\n () => {\n o.run(() => {\n const h = async (d) => {\n let w = d;\n Ae(t.autoConnect) && (w = await t.autoConnect(d)), w !== !1 && n.addEdges([w]);\n };\n de(\n () => t.autoConnect,\n () => {\n ce(t.autoConnect) && (n.autoConnect.value = t.autoConnect);\n }\n ), de(\n n.autoConnect,\n (d, w, y) => {\n d ? n.onConnect(h) : n.hooks.value.connect.off(h), y(() => {\n n.hooks.value.connect.off(h);\n });\n },\n { immediate: !0 }\n );\n });\n },\n () => {\n const h = [\n \"id\",\n \"modelValue\",\n \"translateExtent\",\n \"nodeExtent\",\n \"edges\",\n \"nodes\",\n \"maxZoom\",\n \"minZoom\",\n \"applyDefault\",\n \"autoConnect\"\n ];\n Object.keys(t).forEach((d) => {\n if (!h.includes(d)) {\n const w = M(t, d), y = n[d];\n o.run(() => {\n de(\n w,\n (S) => {\n ce(S) && (y.value = S);\n },\n { flush: \"pre\" }\n );\n });\n }\n });\n }\n ].forEach((h) => h());\n }), () => o.stop();\n}\nfunction fi(e, t) {\n return {\n x: e.clientX - t.left,\n y: e.clientY - t.top\n };\n}\nconst rd = {\n name: \"Pane\",\n compatConfig: { MODE: 3 }\n}, ad = /* @__PURE__ */ ge({\n ...rd,\n props: {\n isSelecting: { type: Boolean }\n },\n setup(e) {\n const {\n id: t,\n vueFlowRef: n,\n getNodes: o,\n getEdges: i,\n viewport: r,\n emits: a,\n userSelectionActive: s,\n removeSelectedElements: l,\n panOnDrag: u,\n userSelectionRect: c,\n elementsSelectable: v,\n nodesSelectionActive: g,\n addSelectedElements: x,\n getSelectedEdges: h,\n getSelectedNodes: d,\n removeNodes: w,\n removeEdges: y,\n selectionMode: S,\n deleteKeyCode: V,\n multiSelectionKeyCode: p,\n multiSelectionActive: N\n } = fe(), T = ie(null), _ = ie(0), P = ie(0), R = ie(), $ = J(() => v.value && (e.isSelecting || s.value));\n _t(V, (z) => {\n if (!z)\n return;\n const W = o.value.reduce((B, q) => ((!q.selected && q.parentNode && B.find((te) => te.id === q.parentNode) || q.selected) && B.push(q), B), []);\n (W || h.value) && (h.value.length > 0 && y(h.value), W.length > 0 && w(W), g.value = !1, l());\n }), _t(p, (z) => {\n N.value = z;\n });\n function D() {\n s.value = !1, c.value = null, _.value = 0, P.value = 0;\n }\n function Q(z) {\n z.target !== T.value || $.value || (a.paneClick(z), l(), g.value = !1);\n }\n function ee(z) {\n var W;\n if (z.target === T.value) {\n if (Array.isArray(u.value) && ((W = u.value) != null && W.includes(2))) {\n z.preventDefault();\n return;\n }\n a.paneContextMenu(z);\n }\n }\n function m(z) {\n z.target === T.value && a.paneScroll(z);\n }\n function A(z) {\n if (R.value = n.value.getBoundingClientRect(), !$.value || !v || !e.isSelecting || z.button !== 0 || z.target !== T.value || !R.value)\n return;\n const { x: W, y: B } = fi(z, R.value);\n l(), c.value = {\n width: 0,\n height: 0,\n startX: W,\n startY: B,\n x: W,\n y: B\n }, s.value = !0, a.selectionStart(z);\n }\n function E(z) {\n if (!$.value)\n return a.paneMouseMove(z);\n if (!e.isSelecting || !R.value || !c.value)\n return;\n s.value || (s.value = !0), g.value && (g.value = !1);\n const W = fi(z, R.value), B = c.value.startX ?? 0, q = c.value.startY ?? 0, te = {\n ...c.value,\n x: W.x < B ? W.x : B,\n y: W.y < q ? W.y : q,\n width: Math.abs(W.x - B),\n height: Math.abs(W.y - q)\n }, re = Ci(\n o.value,\n c.value,\n r.value,\n S.value === fo.Partial\n ), k = sn(re, i.value);\n _.value = re.length, P.value = k.length, c.value = te, x([...re, ...k]);\n }\n function G(z) {\n $.value && z.button === 0 && (!s.value && c.value && z.target === T.value && Q(z), g.value = _.value > 0, D(), a.selectionEnd(z));\n }\n function Z(z) {\n var W;\n if (!$.value)\n return a.paneMouseLeave(z);\n s.value && (g.value = _.value > 0, (W = a.selectionEnd) == null || W.call(a, z)), D();\n }\n function K(z) {\n $.value || a.paneMouseEnter(z);\n }\n return (z, W) => (oe(), se(\"div\", {\n ref_key: \"container\",\n ref: T,\n key: `pane-${C(t)}`,\n class: Ke([\"vue-flow__pane vue-flow__container\", { selection: e.isSelecting }]),\n onClick: Q,\n onContextmenu: ee,\n onWheelPassive: m,\n onMouseenter: K,\n onMousedown: A,\n onMousemove: E,\n onMouseup: G,\n onMouseleave: Z\n }, [\n xe(z.$slots, \"default\"),\n C(s) && C(c) ? (oe(), ze(au, { key: 0 })) : Ee(\"\", !0),\n C(g) && C(d).length ? (oe(), ze(iu, { key: 1 })) : Ee(\"\", !0)\n ], 34));\n }\n}), sd = { class: \"vue-flow__nodes vue-flow__container\" }, ld = {\n name: \"Nodes\",\n compatConfig: { MODE: 3 }\n}, ud = /* @__PURE__ */ ge({\n ...ld,\n setup(e) {\n const t = He(ln), n = fe(), o = M(n, \"nodesDraggable\"), i = M(n, \"nodesFocusable\"), r = M(n, \"elementsSelectable\"), a = M(n, \"nodesConnectable\"), s = M(n, \"getNodes\"), l = M(n, \"getNodesInitialized\"), u = M(n, \"getNodeTypes\"), c = M(n, \"updateNodeDimensions\"), v = M(n, \"emits\");\n let g = ie();\n ye(() => s.value.length > 0 && l.value.length === s.value.length).toBe(!0).then(() => {\n Ue(() => {\n v.value.nodesInitialized(l.value);\n });\n }), Ve(() => {\n g.value = new ResizeObserver((S) => {\n const V = S.map((p) => ({\n id: p.target.getAttribute(\"data-id\"),\n nodeElement: p.target,\n forceUpdate: !0\n }));\n c.value(V);\n });\n }), gi(() => {\n var S;\n return (S = g.value) == null ? void 0 : S.disconnect();\n });\n function x(S) {\n return typeof S > \"u\" ? o.value : S;\n }\n function h(S) {\n return typeof S > \"u\" ? r.value : S;\n }\n function d(S) {\n return typeof S > \"u\" ? a.value : S;\n }\n function w(S) {\n return typeof S > \"u\" ? i.value : S;\n }\n function y(S, V) {\n const p = S || \"default\";\n let N = V ?? u.value[p];\n const T = on();\n if (typeof N == \"string\" && T) {\n const P = Object.keys(T.appContext.components);\n P && P.includes(p) && (N = pi(p, !1));\n }\n if (typeof N != \"string\")\n return N;\n const _ = t == null ? void 0 : t[`node-${p}`];\n return _ || (v.value.error(new ve(he.NODE_TYPE_MISSING, N)), !1);\n }\n return (S, V) => (oe(), se(\"div\", sd, [\n C(g) ? (oe(!0), se(Ce, { key: 0 }, dt(C(s), (p) => (oe(), ze(C(Tl), {\n id: p.id,\n key: p.id,\n \"resize-observer\": C(g),\n type: y(p.type, p.template),\n name: p.type || \"default\",\n draggable: x(p.draggable),\n selectable: h(p.selectable),\n connectable: d(p.connectable),\n focusable: w(p.focusable),\n node: p\n }, null, 8, [\"id\", \"resize-observer\", \"type\", \"name\", \"draggable\", \"selectable\", \"connectable\", \"focusable\", \"node\"]))), 128)) : Ee(\"\", !0)\n ]));\n }\n}), cd = [\"id\", \"markerWidth\", \"markerHeight\", \"markerUnits\", \"orient\"], dd = [\"stroke\", \"stroke-width\", \"fill\"], fd = [\"stroke\", \"stroke-width\"], hd = {\n name: \"MarkerType\",\n compatConfig: { MODE: 3 }\n}, gd = /* @__PURE__ */ ge({\n ...hd,\n props: {\n id: null,\n type: null,\n color: { default: \"none\" },\n width: { default: 12.5 },\n height: { default: 12.5 },\n markerUnits: { default: \"strokeWidth\" },\n orient: { default: \"auto-start-reverse\" },\n strokeWidth: { default: 1 }\n },\n setup(e) {\n return (t, n) => (oe(), se(\"marker\", {\n id: e.id,\n class: \"vue-flow__arrowhead\",\n viewBox: \"-10 -10 20 20\",\n refX: \"0\",\n refY: \"0\",\n markerWidth: `${e.width}`,\n markerHeight: `${e.height}`,\n markerUnits: e.markerUnits,\n orient: e.orient\n }, [\n e.type === C(Yn).ArrowClosed ? (oe(), se(\"polyline\", {\n key: 0,\n stroke: e.color,\n \"stroke-linecap\": \"round\",\n \"stroke-linejoin\": \"round\",\n \"stroke-width\": e.strokeWidth,\n fill: e.color,\n points: \"-5,-4 0,0 -5,4 -5,-4\"\n }, null, 8, dd)) : Ee(\"\", !0),\n e.type === C(Yn).Arrow ? (oe(), se(\"polyline\", {\n key: 1,\n stroke: e.color,\n \"stroke-linecap\": \"round\",\n \"stroke-linejoin\": \"round\",\n \"stroke-width\": e.strokeWidth,\n fill: \"none\",\n points: \"-5,-4 0,0 -5,4\"\n }, null, 8, fd)) : Ee(\"\", !0)\n ], 8, cd));\n }\n}), vd = {\n name: \"MarkerDefinitions\",\n compatConfig: { MODE: 3 }\n}, md = /* @__PURE__ */ ge({\n ...vd,\n setup(e) {\n const t = fe(), n = M(t, \"id\"), o = M(t, \"edges\"), i = M(t, \"connectionLineOptions\"), r = M(t, \"defaultMarkerColor\"), a = J(() => {\n const s = [], l = [], u = (c) => {\n if (c) {\n const v = Xe(c, n.value);\n s.includes(v) || (typeof c == \"object\" ? l.push({ ...c, id: v, color: c.color || r.value }) : l.push({ id: v, color: r.value, type: c }), s.push(v));\n }\n };\n return [i.value.markerEnd, i.value.markerStart].forEach(u), o.value.reduce((c, v) => ([v.markerStart, v.markerEnd].forEach(u), c.sort((g, x) => g.id.localeCompare(x.id))), l), l;\n });\n return (s, l) => (oe(), se(\"defs\", null, [\n (oe(!0), se(Ce, null, dt(C(a), (u) => (oe(), ze(gd, {\n id: u.id,\n key: u.id,\n type: u.type,\n color: u.color,\n width: u.width,\n height: u.height,\n markerUnits: u.markerUnits,\n \"stroke-width\": u.strokeWidth,\n orient: u.orient\n }, null, 8, [\"id\", \"type\", \"color\", \"width\", \"height\", \"markerUnits\", \"stroke-width\", \"orient\"]))), 128))\n ]));\n }\n}), pd = {\n key: 0,\n class: \"vue-flow__edges vue-flow__connectionline vue-flow__container\"\n}, yd = {\n name: \"Edges\",\n compatConfig: { MODE: 3 }\n}, xd = /* @__PURE__ */ ge({\n ...yd,\n setup(e) {\n const t = He(ln), n = fe(), o = M(n, \"connectionStartHandle\"), i = M(n, \"nodesConnectable\"), r = M(n, \"edgesUpdatable\"), a = M(n, \"edgesFocusable\"), s = M(n, \"elementsSelectable\"), l = M(n, \"getSelectedNodes\"), u = M(n, \"findNode\"), c = M(n, \"edges\"), v = M(n, \"getEdges\"), g = M(n, \"getNodesInitialized\"), x = M(n, \"getEdgeTypes\"), h = M(n, \"elevateEdgesOnSelect\"), d = M(n, \"dimensions\"), w = M(n, \"emits\"), y = Sn(\n () => {\n var P;\n return (P = o.value) == null ? void 0 : P.nodeId;\n },\n () => {\n var P;\n return (P = o.value) != null && P.nodeId ? u.value(o.value.nodeId) : !1;\n }\n ), S = Sn(\n () => {\n var P;\n return (P = o.value) == null ? void 0 : P.nodeId;\n },\n () => {\n var P, R;\n return !!(y.value && (typeof y.value.connectable > \"u\" ? i.value : y.value.connectable) && ((P = o.value) != null && P.nodeId) && ((R = o.value) != null && R.type));\n }\n ), V = Sn(\n [\n () => c.value.map((P) => P.zIndex),\n () => h.value ? [l.value.length] : [0],\n () => h.value ? g.value.map((P) => P.computedPosition.z) : []\n ],\n () => Ea(v.value, u.value, h.value)\n );\n function p(P) {\n return typeof P > \"u\" ? s.value : P;\n }\n function N(P) {\n return typeof P > \"u\" ? r.value : P;\n }\n function T(P) {\n return typeof P > \"u\" ? a.value : P;\n }\n function _(P, R) {\n const $ = P || \"default\";\n let D = R ?? x.value[$];\n const Q = on();\n if (typeof D == \"string\" && Q) {\n const m = Object.keys(Q.appContext.components);\n m && m.includes($) && (D = pi($, !1));\n }\n if (D && typeof D != \"string\")\n return D;\n const ee = t == null ? void 0 : t[`edge-${$}`];\n return ee || (w.value.error(new ve(he.EDGE_TYPE_MISSING, D)), !1);\n }\n return (P, R) => C(d).width && C(d).height ? (oe(), se(Ce, { key: 0 }, [\n (oe(!0), se(Ce, null, dt(C(V), ($) => (oe(), se(\"svg\", {\n key: $.level,\n class: \"vue-flow__edges vue-flow__container\",\n style: Le(`z-index: ${$.level}`)\n }, [\n $.isMaxLevel ? (oe(), ze(md, { key: 0 })) : Ee(\"\", !0),\n ct(\"g\", null, [\n (oe(!0), se(Ce, null, dt($.edges, (D) => (oe(), ze(C(Kl), {\n id: D.id,\n key: D.id,\n edge: D,\n type: _(D.type, D.template),\n name: D.type || \"default\",\n selectable: p(D.selectable),\n updatable: N(D.updatable),\n focusable: T(D.focusable)\n }, null, 8, [\"id\", \"edge\", \"type\", \"name\", \"selectable\", \"updatable\", \"focusable\"]))), 128))\n ])\n ], 4))), 128)),\n C(S) && C(y) ? (oe(), se(\"svg\", pd, [\n qe(tu, { \"source-node\": C(y) }, null, 8, [\"source-node\"])\n ])) : Ee(\"\", !0)\n ], 64)) : Ee(\"\", !0);\n }\n}), _d = /* @__PURE__ */ ct(\"div\", { class: \"vue-flow__edge-labels\" }, null, -1), wd = {\n name: \"Transform\",\n compatConfig: { MODE: 3 }\n}, bd = /* @__PURE__ */ ge({\n ...wd,\n setup(e) {\n const { id: t, viewport: n, emits: o, d3Zoom: i, d3Selection: r, dimensions: a, ...s } = fe(), l = ie(!oo);\n return ye(() => i.value && r.value && a.value.width > 0 && a.value.height > 0).toBeTruthy().then(() => {\n o.paneReady({\n id: t,\n viewport: n,\n emits: o,\n d3Zoom: i,\n d3Selection: r,\n dimensions: a,\n ...s\n }), setTimeout(() => {\n l.value = !0;\n }, 0);\n }), (u, c) => (oe(), se(\"div\", {\n key: `transform-${C(t)}`,\n class: \"vue-flow__transformationpane vue-flow__container\",\n style: Le({\n transform: `translate(${C(n).x}px,${C(n).y}px) scale(${C(n).zoom})`,\n opacity: C(l) ? void 0 : 0\n })\n }, [\n qe(xd),\n _d,\n qe(ud),\n xe(u.$slots, \"default\")\n ], 4));\n }\n}), Ed = {\n name: \"Viewport\",\n compatConfig: { MODE: 3 }\n}, Sd = /* @__PURE__ */ ge({\n ...Ed,\n setup(e) {\n const {\n id: t,\n minZoom: n,\n maxZoom: o,\n defaultViewport: i,\n translateExtent: r,\n dimensions: a,\n zoomActivationKeyCode: s,\n selectionKeyCode: l,\n panActivationKeyCode: u,\n panOnScroll: c,\n panOnScrollMode: v,\n panOnScrollSpeed: g,\n panOnDrag: x,\n zoomOnDoubleClick: h,\n zoomOnPinch: d,\n zoomOnScroll: w,\n preventScrolling: y,\n noWheelClassName: S,\n noPanClassName: V,\n emits: p,\n connectionStartHandle: N,\n userSelectionActive: T,\n paneDragging: _,\n d3Zoom: P,\n d3Selection: R,\n d3ZoomHandler: $,\n viewport: D,\n viewportRef: Q\n } = fe(), ee = ie(), m = ie(!1), A = ie(!1);\n let E = !1, G = 0, Z = {\n x: 0,\n y: 0,\n zoom: 0\n };\n const K = _t(u), z = J(() => !m.value && x.value && K.value), W = J(\n () => l.value !== !0 && m.value || l.value === !0 && !z.value\n );\n Ve(() => {\n oa(ee, re);\n const H = ao();\n ro(H, \"resize\", re);\n }), Ve(() => {\n const H = ee.value, f = H.getBoundingClientRect(), b = ed().scaleExtent([n.value, o.value]).translateExtent(r.value), L = we(H).call(b), I = L.on(\"wheel.zoom\"), F = et.translate(i.value.x ?? 0, i.value.y ?? 0).scale(je(i.value.zoom ?? 1, n.value, o.value)), U = [\n [0, 0],\n [f.width, f.height]\n ], Y = b.constrain()(F, U, r.value);\n b.transform(L, Y), P.value = b, R.value = L, $.value = I, D.value = { x: Y.x, y: Y.y, zoom: Y.k }, Q.value = H, _t(l, (O) => {\n m.value = O;\n });\n const ne = _t(s);\n bo(() => {\n m.value && T.value && !A.value ? b.on(\"zoom\", null) : !m.value && !T.value && b.on(\"zoom\", (O) => {\n D.value = { x: O.transform.x, y: O.transform.y, zoom: O.transform.k };\n const ae = te(O.transform);\n E = B(x.value, G ?? 0), p.viewportChange(ae), p.move({ event: O, flowTransform: ae });\n });\n }), b.on(\"start\", (O) => {\n var me;\n if (!O.sourceEvent)\n return null;\n G = O.sourceEvent.button, A.value = !0;\n const ae = te(O.transform);\n ((me = O.sourceEvent) == null ? void 0 : me.type) === \"mousedown\" && (_.value = !0), Z = ae, p.viewportChangeStart(ae), p.moveStart({ event: O, flowTransform: ae });\n }), b.on(\"end\", (O) => {\n if (!O.sourceEvent)\n return null;\n if (A.value = !1, _.value = !1, B(x.value, G ?? 0) && !E && p.paneContextMenu(O.sourceEvent), E = !1, q(Z, O.transform)) {\n const ae = te(O.transform);\n Z = ae, p.viewportChangeEnd(ae), p.moveEnd({ event: O, flowTransform: ae });\n }\n }), bo(() => {\n c.value && !ne.value && !T.value ? L.on(\n \"wheel.zoom\",\n (O) => {\n if (k(O, S.value))\n return !1;\n O.preventDefault(), O.stopImmediatePropagation();\n const ae = L.property(\"__zoom\").k || 1;\n if (O.ctrlKey && d.value) {\n const Tt = Ne(O), _r = -O.deltaY * (O.deltaMode === 1 ? 0.05 : O.deltaMode ? 1 : 2e-3) * 10, wr = ae * 2 ** _r;\n b.scaleTo(L, wr, Tt);\n return;\n }\n const me = O.deltaMode === 1 ? 20 : 1, En = v.value === Ut.Vertical ? 0 : O.deltaX * me, Ot = v.value === Ut.Horizontal ? 0 : O.deltaY * me;\n b.translateBy(\n L,\n -(En / ae) * g.value,\n -(Ot / ae) * g.value\n );\n },\n { passive: !1 }\n ) : typeof I < \"u\" && L.on(\n \"wheel.zoom\",\n function(O, ae) {\n if (!y.value || k(O, S.value))\n return null;\n O.preventDefault(), I.call(this, O, ae);\n },\n { passive: !1 }\n );\n }), b.filter((O) => {\n var Ot, Tt;\n const ae = ne.value || w.value, me = d.value && O.ctrlKey;\n if (O.button === 1 && O.type === \"mousedown\" && ((Ot = O.target) != null && Ot.closest(\".vue-flow__node\") || (Tt = O.target) != null && Tt.closest(\".vue-flow__edge\")))\n return !0;\n if (!x.value && !ae && !c.value && !h.value && !d.value || T.value || !h.value && O.type === \"dblclick\" || k(O, S.value) && O.type === \"wheel\" || k(O, V.value) && O.type !== \"wheel\" || !d.value && O.ctrlKey && O.type === \"wheel\" || !ae && !c.value && !me && O.type === \"wheel\" || !x.value && (O.type === \"mousedown\" || O.type === \"touchstart\") || Array.isArray(x.value) && !x.value.includes(O.button) && (O.type === \"mousedown\" || O.type === \"touchstart\"))\n return !1;\n const En = Array.isArray(x.value) && x.value.includes(O.button) || !O.button || O.button <= 1;\n return (!O.ctrlKey || O.type === \"wheel\") && En;\n });\n });\n function B(H, f) {\n return f === 2 && Array.isArray(H) && H.includes(2);\n }\n function q(H, f) {\n return H.x !== f.x && !isNaN(f.x) || H.y !== f.y && !isNaN(f.y) || H.zoom !== f.k && !isNaN(f.k);\n }\n function te(H) {\n return {\n x: H.x,\n y: H.y,\n zoom: H.k\n };\n }\n function re() {\n if (!ee.value)\n return;\n const { width: H, height: f } = rn(ee.value);\n (H === 0 || f === 0) && p.error(new ve(he.MISSING_VIEWPORT_DIMENSIONS)), a.value.width = H || 500, a.value.height = f || 500;\n }\n function k(H, f) {\n return H.target.closest(`.${f}`);\n }\n return (H, f) => (oe(), se(Ce, null, [\n (oe(), se(\"div\", {\n ref_key: \"viewportEl\",\n ref: ee,\n key: `viewport-${C(t)}`,\n class: \"vue-flow__viewport vue-flow__container\"\n }, [\n qe(ad, {\n \"is-selecting\": C(W),\n class: Ke({ connecting: !!C(N), dragging: C(_), draggable: !!C(x) })\n }, {\n default: Fe(() => [\n qe(bd, null, {\n default: Fe(() => [\n xe(H.$slots, \"zoom-pane\")\n ]),\n _: 3\n })\n ]),\n _: 3\n }, 8, [\"is-selecting\", \"class\"])\n ])),\n xe(H.$slots, \"default\")\n ], 64));\n }\n}), Nd = [\"id\"], Cd = [\"id\"], Md = [\"id\"], $d = {\n name: \"A11yDescriptions\",\n compatConfig: { MODE: 3 }\n}, kd = /* @__PURE__ */ ge({\n ...$d,\n setup(e) {\n const { id: t, disableKeyboardA11y: n, ariaLiveMessage: o } = fe(), i = {\n position: \"absolute\",\n width: 1,\n height: 1,\n margin: -1,\n border: 0,\n padding: 0,\n overflow: \"hidden\",\n clip: \"rect(0px, 0px, 0px, 0px)\",\n clipPath: \"inset(100%)\"\n };\n return (r, a) => (oe(), se(Ce, null, [\n ct(\"div\", {\n id: `${C(Qi)}-${C(t)}`,\n style: { display: \"none\" }\n }, \" Press enter or space to select a node. \" + Vn(C(n) ? \"\" : \"You can then use the arrow keys to move the node around.\") + \" You can then use the arrow keys to move the node around, press delete to remove it and press escape to cancel. \", 9, Nd),\n ct(\"div\", {\n id: `${C(Ji)}-${C(t)}`,\n style: { display: \"none\" }\n }, \" Press enter or space to select an edge. You can then press delete to remove it or press escape to cancel. \", 8, Cd),\n C(n) ? Ee(\"\", !0) : (oe(), se(\"div\", {\n key: 0,\n id: `${C(Ml)}-${C(t)}`,\n \"aria-live\": \"assertive\",\n \"aria-atomic\": \"true\",\n style: i\n }, Vn(C(o)), 9, Md))\n ], 64));\n }\n}), Od = {\n name: \"VueFlow\",\n compatConfig: { MODE: 3 }\n}, Ld = /* @__PURE__ */ ge({\n ...Od,\n props: {\n id: null,\n modelValue: null,\n nodes: null,\n edges: null,\n edgeTypes: null,\n nodeTypes: null,\n connectionMode: null,\n connectionLineType: null,\n connectionLineStyle: { default: void 0 },\n connectionLineOptions: { default: void 0 },\n connectionRadius: null,\n isValidConnection: { type: [Function, null], default: void 0 },\n deleteKeyCode: null,\n selectionKeyCode: null,\n multiSelectionKeyCode: null,\n zoomActivationKeyCode: null,\n panActivationKeyCode: null,\n snapToGrid: { type: Boolean, default: void 0 },\n snapGrid: null,\n onlyRenderVisibleElements: { type: Boolean, default: void 0 },\n edgesUpdatable: { type: [Boolean, String], default: void 0 },\n nodesDraggable: { type: Boolean, default: void 0 },\n nodesConnectable: { type: Boolean, default: void 0 },\n elementsSelectable: { type: Boolean, default: void 0 },\n selectNodesOnDrag: { type: Boolean, default: void 0 },\n panOnDrag: { type: [Boolean, Array], default: void 0 },\n minZoom: null,\n maxZoom: null,\n defaultViewport: null,\n translateExtent: null,\n nodeExtent: null,\n defaultMarkerColor: null,\n zoomOnScroll: { type: Boolean, default: void 0 },\n zoomOnPinch: { type: Boolean, default: void 0 },\n panOnScroll: { type: Boolean, default: void 0 },\n panOnScrollSpeed: null,\n panOnScrollMode: null,\n zoomOnDoubleClick: { type: Boolean, default: void 0 },\n preventScrolling: { type: Boolean, default: void 0 },\n selectionMode: null,\n edgeUpdaterRadius: null,\n fitViewOnInit: { type: Boolean, default: void 0 },\n connectOnClick: { type: Boolean, default: void 0 },\n applyDefault: { type: Boolean, default: void 0 },\n autoConnect: { type: [Boolean, Function], default: void 0 },\n noDragClassName: null,\n noWheelClassName: null,\n noPanClassName: null,\n defaultEdgeOptions: null,\n elevateEdgesOnSelect: { type: Boolean, default: void 0 },\n elevateNodesOnSelect: { type: Boolean, default: void 0 },\n disableKeyboardA11y: { type: Boolean, default: void 0 },\n edgesFocusable: { type: Boolean, default: void 0 },\n nodesFocusable: { type: Boolean, default: void 0 },\n autoPanOnConnect: { type: Boolean, default: void 0 },\n autoPanOnNodeDrag: { type: Boolean, default: void 0 },\n __experimentalFeatures: null\n },\n emits: [\"nodesChange\", \"edgesChange\", \"nodeDoubleClick\", \"nodeClick\", \"nodeMouseEnter\", \"nodeMouseMove\", \"nodeMouseLeave\", \"nodeContextMenu\", \"nodeDragStart\", \"nodeDrag\", \"nodeDragStop\", \"nodesInitialized\", \"miniMapNodeClick\", \"miniMapNodeDoubleClick\", \"miniMapNodeMouseEnter\", \"miniMapNodeMouseMove\", \"miniMapNodeMouseLeave\", \"connect\", \"connectStart\", \"connectEnd\", \"clickConnectStart\", \"clickConnectEnd\", \"moveStart\", \"move\", \"moveEnd\", \"selectionDragStart\", \"selectionDrag\", \"selectionDragStop\", \"selectionContextMenu\", \"selectionStart\", \"selectionEnd\", \"viewportChangeStart\", \"viewportChange\", \"viewportChangeEnd\", \"paneReady\", \"paneScroll\", \"paneClick\", \"paneContextMenu\", \"paneMouseEnter\", \"paneMouseMove\", \"paneMouseLeave\", \"edgeContextMenu\", \"edgeMouseEnter\", \"edgeMouseMove\", \"edgeMouseLeave\", \"edgeDoubleClick\", \"edgeClick\", \"edgeUpdateStart\", \"edgeUpdate\", \"edgeUpdateEnd\", \"updateNodeInternals\", \"error\", \"update:modelValue\", \"update:nodes\", \"update:edges\"],\n setup(e, { expose: t, emit: n }) {\n const o = e, i = yt(o, \"modelValue\", n), r = yt(o, \"nodes\", n), a = yt(o, \"edges\", n), { vueFlowRef: s, hooks: l, getNodeTypes: u, getEdgeTypes: c, ...v } = fe(o), g = id({ modelValue: i, nodes: r, edges: a }, o, {\n vueFlowRef: s,\n hooks: l,\n getNodeTypes: u,\n getEdgeTypes: c,\n ...v\n });\n da(n, l);\n const x = ie();\n return ut(ln, Ir()), Pr(() => {\n g();\n }), Ve(() => {\n s.value = x.value;\n }), t({\n vueFlowRef: s,\n hooks: l,\n getNodeTypes: u,\n getEdgeTypes: c,\n ...v\n }), (h, d) => (oe(), se(\"div\", {\n ref_key: \"el\",\n ref: x,\n class: \"vue-flow\"\n }, [\n qe(Sd, null, {\n nodes: Fe(() => [\n (oe(!0), se(Ce, null, dt(Object.keys(C(u)), (w) => xe(h.$slots, `node-${w}`)), 256))\n ]),\n edges: Fe(() => [\n (oe(!0), se(Ce, null, dt(Object.keys(C(c)), (w) => xe(h.$slots, `edge-${w}`)), 256))\n ]),\n \"connection-name\": Fe(() => [\n xe(h.$slots, \"connection-line\")\n ]),\n \"zoom-pane\": Fe(() => [\n xe(h.$slots, \"zoom-pane\")\n ]),\n default: Fe(() => [\n xe(h.$slots, \"default\")\n ]),\n _: 3\n }),\n qe(kd)\n ], 512));\n }\n}), Td = {\n name: \"Panel\",\n compatConfig: { MODE: 3 }\n}, Gd = /* @__PURE__ */ ge({\n ...Td,\n props: {\n position: null\n },\n setup(e) {\n const t = e, { userSelectionActive: n } = fe(), o = J(() => `${t.position}`.split(\"-\"));\n return (i, r) => (oe(), se(\"div\", {\n class: Ke([\"vue-flow__panel\", C(o)]),\n style: Le({ pointerEvents: C(n) ? \"none\" : \"all\" })\n }, [\n xe(i.$slots, \"default\")\n ], 6));\n }\n}), Bn = 0.1, Fd = (e) => {\n const t = fe({ id: e }), n = M(t, \"nodes\"), o = M(t, \"d3Zoom\"), i = M(t, \"d3Selection\"), r = M(t, \"dimensions\"), a = M(t, \"translateExtent\"), s = M(t, \"minZoom\"), l = M(t, \"maxZoom\"), u = M(t, \"viewport\"), c = M(t, \"snapToGrid\"), v = M(t, \"snapGrid\"), g = M(t, \"getNodes\");\n return {\n zoomIn: (d) => {\n x(1.2, d == null ? void 0 : d.duration);\n },\n zoomOut: (d) => {\n x(1 / 1.2, d == null ? void 0 : d.duration);\n },\n zoomTo: (d, w) => {\n i.value && o.value && o.value.scaleTo(Rn(i.value, w == null ? void 0 : w.duration), d);\n },\n setTransform: (d, w) => {\n h(d.x, d.y, d.zoom, w == null ? void 0 : w.duration);\n },\n getTransform: () => ({\n x: u.value.x,\n y: u.value.y,\n zoom: u.value.zoom\n }),\n fitView: (d = {\n padding: Bn,\n includeHiddenNodes: !1,\n duration: 0\n }) => {\n if (!n.value.length)\n return;\n const w = (d.includeHiddenNodes ? n.value : g.value).filter((N) => {\n var P;\n const T = N.initialized && N.dimensions.width && N.dimensions.height;\n let _ = !0;\n return (P = d.nodes) != null && P.length && (_ = d.nodes.includes(N.id)), T && _;\n }), y = co(w), { x: S, y: V, zoom: p } = Zt(\n y,\n r.value.width,\n r.value.height,\n d.minZoom ?? s.value,\n d.maxZoom ?? l.value,\n d.padding ?? Bn,\n d.offset\n );\n h(S, V, p, d == null ? void 0 : d.duration);\n },\n setCenter: (d, w, y) => {\n const S = typeof (y == null ? void 0 : y.zoom) < \"u\" ? y.zoom : l.value, V = r.value.width / 2 - d * S, p = r.value.height / 2 - w * S;\n h(V, p, S, y == null ? void 0 : y.duration);\n },\n fitBounds: (d, w = { padding: Bn }) => {\n const { x: y, y: S, zoom: V } = Zt(d, r.value.width, r.value.height, s.value, l.value, w.padding);\n h(y, S, V, w == null ? void 0 : w.duration);\n },\n project: (d) => uo(d, u.value, c.value, v.value)\n };\n function x(d, w) {\n i.value && o.value && o.value.scaleBy(Rn(i.value, w), d);\n }\n function h(d, w, y, S) {\n const { x: V, y: p } = so({ x: -d, y: -w }, a.value), N = et.translate(-V, -p).scale(y);\n i.value && o.value && o.value.transform(Rn(i.value, S), N);\n }\n};\nfunction Rn(e, t = 0) {\n return e.transition().duration(t);\n}\nfunction Yd(e) {\n const t = e ?? He(Oi, \"\"), n = He(Ti, null), { findEdge: o, emits: i } = fe(), r = o(t);\n return r || i.error(new ve(he.EDGE_NOT_FOUND, t)), {\n id: t,\n edge: r,\n edgeEl: n\n };\n}\nexport {\n vn as BaseEdge,\n Bl as BezierEdge,\n Ye as ConnectionLineType,\n Qe as ConnectionMode,\n Rd as EdgeLabelRenderer,\n Al as EdgeText,\n he as ErrorCode,\n ot as GlobalVueFlowStorage,\n Kt as Handle,\n Yn as MarkerType,\n $i as NodeIdInjection,\n Ut as PanOnScrollMode,\n Gd as Panel,\n xa as PanelPosition,\n j as Position,\n fo as SelectionMode,\n Rl as SimpleBezierEdge,\n ir as SmoothStepEdge,\n Gl as StepEdge,\n Fl as StraightEdge,\n Ld as VueFlow,\n ve as VueFlowError,\n zo as VueFlowInjection,\n zd as addEdge,\n nn as applyChanges,\n Vd as applyEdgeChanges,\n Hd as applyNodeChanges,\n je as clamp,\n Ei as connectionExists,\n lu as defaultEdgeTypes,\n su as defaultNodeTypes,\n nr as getBezierEdgeCenter,\n Kn as getBezierPath,\n Bd as getBoundsofRects,\n sn as getConnectedEdges,\n Dd as getIncomers,\n Xe as getMarkerId,\n Ci as getNodesInside,\n Pd as getOutgoers,\n co as getRectOfNodes,\n or as getSimpleBezierPath,\n tr as getSimpleEdgeCenter,\n qn as getSmoothStepPath,\n rr as getStraightPath,\n Zt as getTransformForBounds,\n va as graphPosToZoomedPos,\n $e as isEdge,\n fa as isGraphEdge,\n nt as isGraphNode,\n xt as isNode,\n uo as pointToRendererPoint,\n va as rendererPointToPoint,\n Ad as updateEdge,\n Yd as useEdge,\n Ra as useGetPointerPosition,\n Di as useHandle,\n _a as useNode,\n fe as useVueFlow,\n Fd as useZoomPanHelper\n};\n","\n\n\n\n\n","\n\n\n\n\n\n\n","\n\n\n","\n\n\n","import { App } from 'vue'\n\nimport NodeEditor from '@/components/NodeEditor.vue'\nimport StateEditor from '@/components/StateEditor.vue'\n\nfunction install(app: App /* options */) {\n\tapp.component('NodeEditor', NodeEditor)\n\tapp.component('StateEditor', StateEditor)\n}\n\nexport { install, NodeEditor, StateEditor }\n"],"names":["Eo","oo","Dr","zr","Ae","Ie","Pe","Ar","le","C","Br","i","r","yi","Rr","ie","Er","So","Vr","Sn","a","de","l","u","br","c","v","g","Mt","hi","Vt","Hr","on","Ve","Ue","Hn","x","h","d","w","S","V","p","Sr","y","N","T","ye","No","Lr","Gr","Fr","Yr","Xr","Zr","Ur","Yt","xi","_i","Co","Wr","Kr","qr","tt","wi","io","ro","jr","Mo","Qr","Jr","Ln","Gn","$o","ea","ta","na","oa","ko","ia","Oo","ra","aa","To","sa","yt","J","ua","wt","ca","da","Nr","he","Nn","ve","ao","Io","Fn","rn","je","so","Po","$e","fa","xt","nt","ha","ga","it","ce","lo","an","Ei","uo","Si","Xt","Ni","co","Ci","sn","Zt","ma","Mi","Xe","o","pa","ya","Do","fo","Ye","Qe","Yn","Ut","zo","$i","ki","Oi","Ti","ln","_a","He","fe","ho","rt","n","Wt","Ao","wa","ba","Ea","Cn","Bo","Sa","Ro","Ii","Na","Ca","Vo","Pi","It","Di","_","P","R","$","D","Q","m","G","A","E","Z","Y","L","f","B","F","I","U","ne","W","b","K","q","z","te","re","k","H","Ma","$a","ka","Kt","ge","M","ee","oe","se","Ke","xe","un","ue","Oa","cn","Ta","dn","Ia","Ho","Pa","Mn","zi","Da","za","go","Ai","Aa","Ba","Ra","Lo","Xn","Va","fn","Ht","Ha","La","Go","Zn","Fo","hn","Ga","Fa","Bi","Ya","vo","Xa","_e","Za","Ua","Ri","Wa","Ka","Vi","Hi","qa","ja","Qa","Ja","es","ts","ns","os","is","Li","rs","qt","as","ss","ls","us","cs","ds","fs","hs","gs","vs","ms","ps","ys","xs","_s","ws","bs","Es","Ss","Ns","Cs","Ms","$s","ks","Os","Gi","Ts","Is","Ps","Ds","ft","zs","As","Bs","Rs","Fi","mo","Yi","Xi","Zi","Vs","Hs","Ls","Gs","Fs","Ys","Xs","Zs","Us","Ws","Ks","qs","js","Qs","Js","el","tl","nl","ol","il","rl","al","sl","ll","ul","cl","dl","fl","hl","gl","Ui","vl","ml","pl","yl","Wi","$t","xl","we","_l","Ne","wl","bt","$n","at","Ki","qi","Pt","Un","bl","El","Sl","Nl","Cl","ji","Qi","Ji","Ml","er","st","Wn","t","$l","kl","_t","Ol","ut","gi","Tl","Il","Pl","Dl","zl","Al","Le","Ee","ct","vi","Ce","Cr","Vn","ze","mi","gn","vn","tr","nr","Dt","Yo","Kn","mn","Bl","Xo","or","pn","Rl","Zo","Vl","Uo","Hl","Ll","qn","yn","ir","xn","Gl","rr","_n","Fl","Yl","Xl","po","Wo","Zl","Ul","Wl","Kl","ql","jl","Rd","Mr","Ql","Jl","eu","tu","s","$r","nu","ou","iu","ru","au","su","lu","uu","ar","cu","yo","sr","kt","Et","jt","lt","St","Me","du","fu","hu","gu","vu","mu","pu","Ko","Nt","qo","yu","xu","jo","lr","Qo","pe","zt","ti","_u","jn","We","Qt","Jo","wu","ei","Ze","be","bu","kn","ni","At","ur","Eu","Su","Nu","cr","oi","Re","Qn","On","Cu","Mu","$u","ii","Jn","dr","Bt","ku","Ou","fr","Tu","Iu","Pu","ri","Du","zu","Au","ht","mt","gt","hr","Jt","pt","en","Je","wn","Ct","gr","xo","Bu","tn","vr","eo","Ru","ai","Hu","Vu","si","Lu","Gu","mr","li","to","Lt","ui","no","Gt","bn","Fu","_o","Se","ke","Yu","Xu","Zu","Uu","wo","pr","Wu","Ku","qu","ju","Qu","Ju","ec","tc","nc","oc","ic","rc","ac","sc","lc","uc","cc","dc","fc","hc","gc","vc","mc","Be","pc","yc","xc","_c","wc","bc","Ec","Sc","Nc","Cc","Mc","yr","$c","kc","Oc","Tc","Ic","Pc","Dc","zc","Ac","Bc","Rc","Vc","Hc","Lc","xr","Gc","Fc","Oe","Yc","Xc","Zc","Uc","Rt","Wc","De","et","Tn","vt","Kc","qc","ci","jc","Qc","Jc","ed","In","Ge","td","nd","Pn","Dn","nn","Te","di","zn","An","od","O","ae","me","ot","kr","Or","id","Tr","fi","rd","ad","sd","ld","ud","pi","dt","cd","dd","fd","hd","gd","vd","md","pd","yd","xd","qe","_d","wd","bd","Ed","Sd","bo","Tt","_r","wr","En","Ot","Fe","Nd","Cd","Md","$d","kd","Od","Ld","Ir","Pr","props","__props","emit","__emit","positionMap","Position","sourcePosition","computed","targetPosition","labelInput","ref","newLabel","showInput","lastClick","nodeOnClick","now","showLabelInput","nextTick","submitNewLabel","__default__","useVueFlow","labelOnClick","path","getBezierPath","containerClass","vueFlowInstance","hover","activeElementKey","vueFlowElements","activeElementIndex","j","elements","_elements","key","newValue","getNodes","onPaneReady","onMounted","handleKeypress","onBeforeUnmount","shiftTerminal","currentTerminal","shiftOutput","shiftInput","onWheel","$event","e","fitView","addNode","newNodePosition","makeEdge","activeNode","nodeId","edgeId","onConnect","onEdgeDoubleClick","labelChanged","states","stateHash","hasInputs","stateElements","edges","edgeKey","target","onElementsChange","idToLabel","label","install","app","NodeEditor","StateEditor"],"mappings":"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","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/node_editor/dist/style.css b/node_editor/dist/style.css new file mode 100644 index 00000000..fb39ab8c --- /dev/null +++ b/node_editor/dist/style.css @@ -0,0 +1 @@ +.editable-edge-label{background-color:#fff;position:relative;font-size:12px}.label-input-wrapper{position:absolute;top:0;left:0;right:0;bottom:0;display:flex;align-items:center;justify-content:center}.label-input{text-align:center}.vue-flow{position:relative;width:100%;height:100%;overflow:hidden;z-index:0}.vue-flow__container{position:absolute;height:100%;width:100%;left:0;top:0}.vue-flow__pane{z-index:1}.vue-flow__pane.draggable{cursor:grab}.vue-flow__pane.dragging{cursor:grabbing}.vue-flow__pane.selection{cursor:pointer}.vue-flow__transformationpane{transform-origin:0 0;z-index:2;pointer-events:none}.vue-flow__viewport{z-index:4}.vue-flow__selection{z-index:6}.vue-flow__edge-labels{position:absolute;width:100%;height:100%;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.vue-flow__nodesselection-rect:focus,.vue-flow__nodesselection-rect:focus-visible{outline:none}.vue-flow .vue-flow__edges{pointer-events:none;overflow:visible}.vue-flow__edge-path,.vue-flow__connection-path{stroke:#b1b1b7;stroke-width:1;fill:none}.vue-flow__edge{pointer-events:visibleStroke;cursor:pointer}.vue-flow__edge.animated path{stroke-dasharray:5;animation:dashdraw .5s linear infinite}.vue-flow__edge.inactive{pointer-events:none}.vue-flow__edge.selected,.vue-flow__edge:focus,.vue-flow__edge:focus-visible{outline:none}.vue-flow__edge.selected .vue-flow__edge-path,.vue-flow__edge:focus .vue-flow__edge-path,.vue-flow__edge:focus-visible .vue-flow__edge-path{stroke:#555}.vue-flow__edge-textwrapper{pointer-events:all}.vue-flow__edge-text{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.vue-flow__connection{pointer-events:none}.vue-flow__connection .animated{stroke-dasharray:5;animation:dashdraw .5s linear infinite}.vue-flow__connectionline{z-index:1001}.vue-flow__nodes{pointer-events:none;transform-origin:0 0}.vue-flow__node-default,.vue-flow__node-input,.vue-flow__node-output{border-width:1px;border-style:solid;border-color:#bbb}.vue-flow__node-default.selected,.vue-flow__node-default:focus,.vue-flow__node-default:focus-visible,.vue-flow__node-input.selected,.vue-flow__node-input:focus,.vue-flow__node-input:focus-visible,.vue-flow__node-output.selected,.vue-flow__node-output:focus,.vue-flow__node-output:focus-visible{outline:none;border:1px solid #555}.vue-flow__node{position:absolute;-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:all;transform-origin:0 0;box-sizing:border-box;cursor:grab}.vue-flow__node.dragging{cursor:grabbing}.vue-flow__nodesselection{z-index:3;transform-origin:left top;pointer-events:none}.vue-flow__nodesselection-rect{position:absolute;pointer-events:all;cursor:grab}.vue-flow__nodesselection-rect.dragging{cursor:grabbing}.vue-flow__handle{position:absolute;pointer-events:none;min-width:5px;min-height:5px}.vue-flow__handle.connectable{pointer-events:all;cursor:crosshair}.vue-flow__handle-bottom{top:auto;left:50%;bottom:-4px;transform:translate(-50%)}.vue-flow__handle-top{left:50%;top:-4px;transform:translate(-50%)}.vue-flow__handle-left{top:50%;left:-4px;transform:translateY(-50%)}.vue-flow__handle-right{right:-4px;top:50%;transform:translateY(-50%)}.vue-flow__edgeupdater{cursor:move;pointer-events:all}.vue-flow__panel{position:absolute;z-index:5;margin:15px}.vue-flow__panel.top{top:0}.vue-flow__panel.bottom{bottom:0}.vue-flow__panel.left{left:0}.vue-flow__panel.right{right:0}.vue-flow__panel.center{left:50%;transform:translate(-50%)}@keyframes dashdraw{0%{stroke-dashoffset:10}}:root{--vf-node-bg: #fff;--vf-node-text: #222;--vf-connection-path: #b1b1b7;--vf-handle: #555}.vue-flow__edge.updating .vue-flow__edge-path{stroke:#777}.vue-flow__edge-text{font-size:10px}.vue-flow__edge-textbg{fill:#fff}.vue-flow__connection-path{stroke:var(--vf-connection-path)}.vue-flow__node{cursor:grab}.vue-flow__node.selectable:focus,.vue-flow__node.selectable:focus-visible{outline:none}.vue-flow__node-default,.vue-flow__node-input,.vue-flow__node-output{padding:10px;border-radius:3px;width:150px;font-size:12px;text-align:center;border-width:1px;border-style:solid;color:var(--vf-node-text);background-color:var(--vf-node-bg);border-color:var(--vf-node-color)}.vue-flow__node-default.selected,.vue-flow__node-default.selected:hover,.vue-flow__node-input.selected,.vue-flow__node-input.selected:hover,.vue-flow__node-output.selected,.vue-flow__node-output.selected:hover{box-shadow:0 0 0 .5px var(--vf-box-shadow)}.vue-flow__node-default .vue-flow__handle,.vue-flow__node-input .vue-flow__handle,.vue-flow__node-output .vue-flow__handle{background:var(--vf-handle)}.vue-flow__node-default.selectable:hover,.vue-flow__node-input.selectable:hover,.vue-flow__node-output.selectable:hover{box-shadow:0 1px 4px 1px #00000014}.vue-flow__node-input{--vf-node-color: var(--vf-node-color, #0041d0);--vf-handle: var(--vf-node-color, #0041d0);--vf-box-shadow: var(--vf-node-color, #0041d0);background:var(--vf-node-bg);border-color:var(--vf-node-color, #0041d0)}.vue-flow__node-input.selected,.vue-flow__node-input:focus,.vue-flow__node-input:focus-visible{outline:none;border:1px solid var(--vf-node-color, #0041d0)}.vue-flow__node-default{--vf-handle: var(--vf-node-color, #1a192b);--vf-box-shadow: var(--vf-node-color, #1a192b);background:var(--vf-node-bg);border-color:var(--vf-node-color, #1a192b)}.vue-flow__node-default.selected,.vue-flow__node-default:focus,.vue-flow__node-default:focus-visible{outline:none;border:1px solid var(--vf-node-color, #1a192b)}.vue-flow__node-output{--vf-handle: var(--vf-node-color, #ff0072);--vf-box-shadow: var(--vf-node-color, #ff0072);background:var(--vf-node-bg);border-color:var(--vf-node-color, #ff0072)}.vue-flow__node-output.selected,.vue-flow__node-output:focus,.vue-flow__node-output:focus-visible{outline:none;border:1px solid var(--vf-node-color, #ff0072)}.vue-flow__nodesselection-rect,.vue-flow__selection{background:rgba(0,89,220,.08);border:1px dotted rgba(0,89,220,.8)}.vue-flow__nodesselection-rect:focus,.vue-flow__nodesselection-rect:focus-visible,.vue-flow__selection:focus,.vue-flow__selection:focus-visible{outline:none}.vue-flow__handle{width:6px;height:6px;background:var(--vf-handle);border:1px solid #fff;border-radius:100%}.chart-controls-left,.chart-controls-right{height:1.8em;display:flex;flex-direction:row;align-items:center;padding-top:.2em}.chart-controls-right div{margin-left:5px}.chart-controls{padding-left:20px;padding-right:20px;height:1.8em;border-bottom:1px solid #ccc;display:flex;flex-direction:row;justify-content:space-between}.chart-controls div{margin-bottom:5px}.defaultContainerClass{height:90vh;width:100%;border:1px solid #ccc}.default-input-node.vue-flow__node-input,.default-output-node.vue-flow__node-output{border-color:#000}.default-input-node.vue-flow__node-input .vue-flow__handle,.default-output-node.vue-flow__node-output .vue-flow__handle{background-color:#000}.default-input-node.vue-flow__node-input.selected,.default-output-node.vue-flow__node-output.selected{box-shadow:0 0 0 .5px #000}button.button-default{background-color:#fff;padding:1px 12px;border-radius:3px;border:1px solid #ccc;cursor:pointer;white-space:nowrap}button.button-default:hover{background-color:#f2f2f2}.vue-flow{background-size:40px 40px;background-image:linear-gradient(to right,#ccc 1px,transparent 1px),linear-gradient(to bottom,#ccc 1px,transparent 1px)}input.label-editor{position:absolute}.node-editor-wrapper{position:relative} diff --git a/node_editor/package.json b/node_editor/package.json index 2a587362..2b97d4db 100644 --- a/node_editor/package.json +++ b/node_editor/package.json @@ -1,42 +1,42 @@ { - "name": "@agritheory/node-editor", - "version": "0.1.0", - "type": "module", + "name": "@stonecrop/node-editor", + "version": "0.2.2", "description": "Node editor UI for Stonecrop", + "license": "MIT", + "type": "module", + "exports": { + ".": { + "import": "./dist/node-editor.js", + "require": "./dist/node-editor.umd.cjs" + }, + "./styles": "./dist/style.css" + }, "main": "index.js", "files": [ "dist/*", "src/**/*.vue" ], - "license": "MIT", "scripts": { - "dev": "vite", "build": "vite build", + "dev": "vite", "preview": "vite preview", - "story:dev": "histoire dev", "story:build": "histoire build", + "story:dev": "histoire dev", "story:preview": "histoire preview" }, "dependencies": { - "@vue-flow/core": "~1.5.1", - "vue-router": "^4", + "@vue-flow/core": "~1.19.3", "vue": "^3.2.47", - "xstate": "~4.33.6" + "vue-router": "^4", + "xstate": "~4.37.2" }, "devDependencies": { - "@histoire/plugin-vue": "^0.14.2", - "@vitejs/plugin-vue": "^4.0.0", - "histoire": "^0.14.2", - "vite": "^4.1.1" - }, - "exports": { - ".": { - "import": "./dist/node-editor.js", - "require": "./dist/node-editor.umd.cjs" - }, - "./styles": "./dist/style.css" + "@histoire/plugin-vue": "^0.16.1", + "@vitejs/plugin-vue": "^4.2.1", + "histoire": "^0.16.1", + "vite": "^4.3.5" }, "engines": { - "node": ">=16.19.1" + "node": ">=20.11.0" } } diff --git a/node_editor/vite.config.ts b/node_editor/vite.config.ts index adace66b..e7105a68 100644 --- a/node_editor/vite.config.ts +++ b/node_editor/vite.config.ts @@ -18,7 +18,7 @@ export default defineConfig({ sourcemap: true, lib: { entry: resolve(projectRootDir, 'src/index.ts'), - name: '@agritheory/node_editor', + name: '@stonecrop/node-editor', }, rollupOptions: { external: ['vue'], diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 00000000..babe2ac0 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,5808 @@ +{ + "name": "stonecrop", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "dependencies": { + "@microsoft/rush": "^5.113.4" + } + }, + "node_modules/@azure/abort-controller": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@azure/abort-controller/-/abort-controller-1.1.0.tgz", + "integrity": "sha512-TrRLIoSQVzfAJX9H1JeFjzAoDGcoK1IYX1UImfceTZpsyYfWr09Ss1aHW1y5TrrR3iq6RZLBwJ3E24uwPhwahw==", + "dependencies": { + "tslib": "^2.2.0" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/@azure/core-auth": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@azure/core-auth/-/core-auth-1.6.0.tgz", + "integrity": "sha512-3X9wzaaGgRaBCwhLQZDtFp5uLIXCPrGbwJNWPPugvL4xbIGgScv77YzzxToKGLAKvG9amDoofMoP+9hsH1vs1w==", + "dependencies": { + "@azure/abort-controller": "^2.0.0", + "@azure/core-util": "^1.1.0", + "tslib": "^2.2.0" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@azure/core-auth/node_modules/@azure/abort-controller": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@azure/abort-controller/-/abort-controller-2.0.0.tgz", + "integrity": "sha512-RP/mR/WJchR+g+nQFJGOec+nzeN/VvjlwbinccoqfhTsTHbb8X5+mLDp48kHT0ueyum0BNSwGm0kX0UZuIqTGg==", + "dependencies": { + "tslib": "^2.2.0" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@azure/core-client": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/@azure/core-client/-/core-client-1.8.0.tgz", + "integrity": "sha512-+gHS3gEzPlhyQBMoqVPOTeNH031R5DM/xpCvz72y38C09rg4Hui/1sJS/ujoisDZbbSHyuRLVWdFlwL0pIFwbg==", + "dependencies": { + "@azure/abort-controller": "^2.0.0", + "@azure/core-auth": "^1.4.0", + "@azure/core-rest-pipeline": "^1.9.1", + "@azure/core-tracing": "^1.0.0", + "@azure/core-util": "^1.0.0", + "@azure/logger": "^1.0.0", + "tslib": "^2.2.0" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@azure/core-client/node_modules/@azure/abort-controller": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@azure/abort-controller/-/abort-controller-2.0.0.tgz", + "integrity": "sha512-RP/mR/WJchR+g+nQFJGOec+nzeN/VvjlwbinccoqfhTsTHbb8X5+mLDp48kHT0ueyum0BNSwGm0kX0UZuIqTGg==", + "dependencies": { + "tslib": "^2.2.0" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@azure/core-http": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@azure/core-http/-/core-http-3.0.4.tgz", + "integrity": "sha512-Fok9VVhMdxAFOtqiiAtg74fL0UJkt0z3D+ouUUxcRLzZNBioPRAMJFVxiWoJljYpXsRi4GDQHzQHDc9AiYaIUQ==", + "dependencies": { + "@azure/abort-controller": "^1.0.0", + "@azure/core-auth": "^1.3.0", + "@azure/core-tracing": "1.0.0-preview.13", + "@azure/core-util": "^1.1.1", + "@azure/logger": "^1.0.0", + "@types/node-fetch": "^2.5.0", + "@types/tunnel": "^0.0.3", + "form-data": "^4.0.0", + "node-fetch": "^2.6.7", + "process": "^0.11.10", + "tslib": "^2.2.0", + "tunnel": "^0.0.6", + "uuid": "^8.3.0", + "xml2js": "^0.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@azure/core-http/node_modules/@azure/core-tracing": { + "version": "1.0.0-preview.13", + "resolved": "https://registry.npmjs.org/@azure/core-tracing/-/core-tracing-1.0.0-preview.13.tgz", + "integrity": "sha512-KxDlhXyMlh2Jhj2ykX6vNEU0Vou4nHr025KoSEiz7cS3BNiHNaZcdECk/DmLkEB0as5T7b/TpRcehJ5yV6NeXQ==", + "dependencies": { + "@opentelemetry/api": "^1.0.1", + "tslib": "^2.2.0" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/@azure/core-lro": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/@azure/core-lro/-/core-lro-2.6.0.tgz", + "integrity": "sha512-PyRNcaIOfMgoUC01/24NoG+k8O81VrKxYARnDlo+Q2xji0/0/j2nIt8BwQh294pb1c5QnXTDPbNR4KzoDKXEoQ==", + "dependencies": { + "@azure/abort-controller": "^2.0.0", + "@azure/core-util": "^1.2.0", + "@azure/logger": "^1.0.0", + "tslib": "^2.2.0" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@azure/core-lro/node_modules/@azure/abort-controller": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@azure/abort-controller/-/abort-controller-2.0.0.tgz", + "integrity": "sha512-RP/mR/WJchR+g+nQFJGOec+nzeN/VvjlwbinccoqfhTsTHbb8X5+mLDp48kHT0ueyum0BNSwGm0kX0UZuIqTGg==", + "dependencies": { + "tslib": "^2.2.0" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@azure/core-paging": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@azure/core-paging/-/core-paging-1.5.0.tgz", + "integrity": "sha512-zqWdVIt+2Z+3wqxEOGzR5hXFZ8MGKK52x4vFLw8n58pR6ZfKRx3EXYTxTaYxYHc/PexPUTyimcTWFJbji9Z6Iw==", + "dependencies": { + "tslib": "^2.2.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@azure/core-rest-pipeline": { + "version": "1.14.0", + "resolved": "https://registry.npmjs.org/@azure/core-rest-pipeline/-/core-rest-pipeline-1.14.0.tgz", + "integrity": "sha512-Tp4M6NsjCmn9L5p7HsW98eSOS7A0ibl3e5ntZglozT0XuD/0y6i36iW829ZbBq0qihlGgfaeFpkLjZ418KDm1Q==", + "dependencies": { + "@azure/abort-controller": "^2.0.0", + "@azure/core-auth": "^1.4.0", + "@azure/core-tracing": "^1.0.1", + "@azure/core-util": "^1.3.0", + "@azure/logger": "^1.0.0", + "http-proxy-agent": "^5.0.0", + "https-proxy-agent": "^5.0.0", + "tslib": "^2.2.0" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@azure/core-rest-pipeline/node_modules/@azure/abort-controller": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@azure/abort-controller/-/abort-controller-2.0.0.tgz", + "integrity": "sha512-RP/mR/WJchR+g+nQFJGOec+nzeN/VvjlwbinccoqfhTsTHbb8X5+mLDp48kHT0ueyum0BNSwGm0kX0UZuIqTGg==", + "dependencies": { + "tslib": "^2.2.0" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@azure/core-tracing": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@azure/core-tracing/-/core-tracing-1.0.1.tgz", + "integrity": "sha512-I5CGMoLtX+pI17ZdiFJZgxMJApsK6jjfm85hpgp3oazCdq5Wxgh4wMr7ge/TTWW1B5WBuvIOI1fMU/FrOAMKrw==", + "dependencies": { + "tslib": "^2.2.0" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/@azure/core-util": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/@azure/core-util/-/core-util-1.7.0.tgz", + "integrity": "sha512-Zq2i3QO6k9DA8vnm29mYM4G8IE9u1mhF1GUabVEqPNX8Lj833gdxQ2NAFxt2BZsfAL+e9cT8SyVN7dFVJ/Hf0g==", + "dependencies": { + "@azure/abort-controller": "^2.0.0", + "tslib": "^2.2.0" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@azure/core-util/node_modules/@azure/abort-controller": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@azure/abort-controller/-/abort-controller-2.0.0.tgz", + "integrity": "sha512-RP/mR/WJchR+g+nQFJGOec+nzeN/VvjlwbinccoqfhTsTHbb8X5+mLDp48kHT0ueyum0BNSwGm0kX0UZuIqTGg==", + "dependencies": { + "tslib": "^2.2.0" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@azure/identity": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@azure/identity/-/identity-4.0.1.tgz", + "integrity": "sha512-yRdgF03SFLqUMZZ1gKWt0cs0fvrDIkq2bJ6Oidqcoo5uM85YMBnXWMzYKK30XqIT76lkFyAaoAAy5knXhrG4Lw==", + "dependencies": { + "@azure/abort-controller": "^1.0.0", + "@azure/core-auth": "^1.5.0", + "@azure/core-client": "^1.4.0", + "@azure/core-rest-pipeline": "^1.1.0", + "@azure/core-tracing": "^1.0.0", + "@azure/core-util": "^1.3.0", + "@azure/logger": "^1.0.0", + "@azure/msal-browser": "^3.5.0", + "@azure/msal-node": "^2.5.1", + "events": "^3.0.0", + "jws": "^4.0.0", + "open": "^8.0.0", + "stoppable": "^1.1.0", + "tslib": "^2.2.0" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@azure/logger": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@azure/logger/-/logger-1.0.4.tgz", + "integrity": "sha512-ustrPY8MryhloQj7OWGe+HrYx+aoiOxzbXTtgblbV3xwCqpzUK36phH3XNHQKj3EPonyFUuDTfR3qFhTEAuZEg==", + "dependencies": { + "tslib": "^2.2.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@azure/msal-browser": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/@azure/msal-browser/-/msal-browser-3.9.0.tgz", + "integrity": "sha512-Ts+Q3fw9u92koCkk+oZgL6lhwDrwWSyXBcKdsKJko1Ra7ZzDl0z7pod+1g+v4Qbt8l1YqSX4wXbXs5sWUv0VWw==", + "dependencies": { + "@azure/msal-common": "14.7.0" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/@azure/msal-common": { + "version": "14.7.0", + "resolved": "https://registry.npmjs.org/@azure/msal-common/-/msal-common-14.7.0.tgz", + "integrity": "sha512-WexujW5jKWib7xtIxR7fEVyd5xcA3FNwenELy2HO4YC/ivTFdsEcDhtpKQuRUHqXRwxoqBblyZzTAhBm4v6fHA==", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/@azure/msal-node": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/@azure/msal-node/-/msal-node-2.6.3.tgz", + "integrity": "sha512-ojjJqUwb297T5Tcln4PbJANFEqRXfbQXcyOrtdr1HQYIo+dSuCT/o0nG6bFVihf6fcNykDwJLCQPVXzTkx/oGg==", + "dependencies": { + "@azure/msal-common": "14.7.0", + "jsonwebtoken": "^9.0.0", + "uuid": "^8.3.0" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/@azure/storage-blob": { + "version": "12.17.0", + "resolved": "https://registry.npmjs.org/@azure/storage-blob/-/storage-blob-12.17.0.tgz", + "integrity": "sha512-sM4vpsCpcCApagRW5UIjQNlNylo02my2opgp0Emi8x888hZUvJ3dN69Oq20cEGXkMUWnoCrBaB0zyS3yeB87sQ==", + "dependencies": { + "@azure/abort-controller": "^1.0.0", + "@azure/core-http": "^3.0.0", + "@azure/core-lro": "^2.2.0", + "@azure/core-paging": "^1.1.1", + "@azure/core-tracing": "1.0.0-preview.13", + "@azure/logger": "^1.0.0", + "events": "^3.0.0", + "tslib": "^2.2.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@azure/storage-blob/node_modules/@azure/core-tracing": { + "version": "1.0.0-preview.13", + "resolved": "https://registry.npmjs.org/@azure/core-tracing/-/core-tracing-1.0.0-preview.13.tgz", + "integrity": "sha512-KxDlhXyMlh2Jhj2ykX6vNEU0Vou4nHr025KoSEiz7cS3BNiHNaZcdECk/DmLkEB0as5T7b/TpRcehJ5yV6NeXQ==", + "dependencies": { + "@opentelemetry/api": "^1.0.1", + "tslib": "^2.2.0" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.23.5.tgz", + "integrity": "sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==", + "dependencies": { + "@babel/highlight": "^7.23.4", + "chalk": "^2.4.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/code-frame/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/code-frame/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/code-frame/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/@babel/code-frame/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" + }, + "node_modules/@babel/code-frame/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/code-frame/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/generator": { + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.6.tgz", + "integrity": "sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw==", + "dependencies": { + "@babel/types": "^7.23.6", + "@jridgewell/gen-mapping": "^0.3.2", + "@jridgewell/trace-mapping": "^0.3.17", + "jsesc": "^2.5.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-environment-visitor": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", + "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-function-name": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", + "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", + "dependencies": { + "@babel/template": "^7.22.15", + "@babel/types": "^7.23.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-hoist-variables": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", + "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-split-export-declaration": { + "version": "7.22.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", + "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz", + "integrity": "sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", + "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.23.4.tgz", + "integrity": "sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==", + "dependencies": { + "@babel/helper-validator-identifier": "^7.22.20", + "chalk": "^2.4.2", + "js-tokens": "^4.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/@babel/highlight/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" + }, + "node_modules/@babel/highlight/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/parser": { + "version": "7.23.9", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.9.tgz", + "integrity": "sha512-9tcKgqKbs3xGJ+NtKF2ndOBBLVwPjl1SHxPQkd36r3Dlirw3xWUeGaTbqr7uGZcTaxkVNwc+03SVP7aCdWrTlA==", + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/template": { + "version": "7.23.9", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.23.9.tgz", + "integrity": "sha512-+xrD2BWLpvHKNmX2QbpdpsBaWnRxahMwJjO+KZk2JOElj5nSmKezyS1B4u+QbHMTX69t4ukm6hh9lsYQ7GHCKA==", + "dependencies": { + "@babel/code-frame": "^7.23.5", + "@babel/parser": "^7.23.9", + "@babel/types": "^7.23.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.23.9", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.9.tgz", + "integrity": "sha512-I/4UJ9vs90OkBtY6iiiTORVMyIhJ4kAVmsKo9KFc8UOxMeUfi2hvtIBsET5u9GizXE6/GFSuKCTNfgCswuEjRg==", + "dependencies": { + "@babel/code-frame": "^7.23.5", + "@babel/generator": "^7.23.6", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/parser": "^7.23.9", + "@babel/types": "^7.23.9", + "debug": "^4.3.1", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.23.9", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.9.tgz", + "integrity": "sha512-dQjSq/7HaSjRM43FFGnv5keM2HsxpmyV1PfaSVm0nzzjwwTmjOe6J4bC8e3+pTEIgHaHj+1ZlLThRJ2auc/w1Q==", + "dependencies": { + "@babel/helper-string-parser": "^7.23.4", + "@babel/helper-validator-identifier": "^7.22.20", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@devexpress/error-stack-parser": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@devexpress/error-stack-parser/-/error-stack-parser-2.0.6.tgz", + "integrity": "sha512-fneVypElGUH6Be39mlRZeAu00pccTlf4oVuzf9xPJD1cdEqI8NyAiQua/EW7lZdrbMUbgyXcJmfKPefhYius3A==", + "dependencies": { + "stackframe": "^1.1.1" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", + "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", + "dependencies": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", + "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", + "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.22", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.22.tgz", + "integrity": "sha512-Wf963MzWtA2sjrNt+g18IAln9lKnlRp+K2eH4jjIoF1wYeq3aMREpG09xhlhdzS0EjwU7qmUJYangWa+151vZw==", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@microsoft/rush": { + "version": "5.113.4", + "resolved": "https://registry.npmjs.org/@microsoft/rush/-/rush-5.113.4.tgz", + "integrity": "sha512-V4Ik+DImLpyjxJuaPGCj+uzIt6Aw8JKgFyqCIHWeX3Qc3ytBPkMZ8fDf6fSCr2BapUF/teRdrnESxhFRHmG0Ug==", + "dependencies": { + "@microsoft/rush-lib": "5.113.4", + "@rushstack/node-core-library": "3.64.2", + "colors": "~1.2.1", + "semver": "~7.5.4" + }, + "bin": { + "rush": "bin/rush", + "rush-pnpm": "bin/rush-pnpm", + "rushx": "bin/rushx" + }, + "engines": { + "node": ">=5.6.0" + } + }, + "node_modules/@microsoft/rush-lib": { + "version": "5.113.4", + "resolved": "https://registry.npmjs.org/@microsoft/rush-lib/-/rush-lib-5.113.4.tgz", + "integrity": "sha512-s7Ltkx+Ww5RyxOuUVghu5JZkHseUxlAseyb5ObRIpgncLJj9TwhXfAB7foKicEZ7Z2P38w8DV4ZPQgi2XZUF8A==", + "dependencies": { + "@pnpm/dependency-path": "~2.1.2", + "@pnpm/link-bins": "~5.3.7", + "@rushstack/heft-config-file": "0.14.7", + "@rushstack/node-core-library": "3.64.2", + "@rushstack/package-deps-hash": "4.1.21", + "@rushstack/package-extractor": "0.6.23", + "@rushstack/rig-package": "0.5.1", + "@rushstack/rush-amazon-s3-build-cache-plugin": "5.113.4", + "@rushstack/rush-azure-storage-build-cache-plugin": "5.113.4", + "@rushstack/rush-http-build-cache-plugin": "5.113.4", + "@rushstack/stream-collator": "4.1.21", + "@rushstack/terminal": "0.7.20", + "@rushstack/ts-command-line": "4.17.1", + "@types/node-fetch": "2.6.2", + "@yarnpkg/lockfile": "~1.0.2", + "builtin-modules": "~3.1.0", + "cli-table": "~0.3.1", + "colors": "~1.2.1", + "dependency-path": "~9.2.8", + "fast-glob": "~3.3.1", + "figures": "3.0.0", + "git-repo-info": "~2.1.0", + "glob-escape": "~0.0.2", + "https-proxy-agent": "~5.0.0", + "ignore": "~5.1.6", + "inquirer": "~7.3.3", + "js-yaml": "~3.13.1", + "node-fetch": "2.6.7", + "npm-check": "~6.0.1", + "npm-package-arg": "~6.1.0", + "read-package-tree": "~5.1.5", + "rxjs": "~6.6.7", + "semver": "~7.5.4", + "ssri": "~8.0.0", + "strict-uri-encode": "~2.0.0", + "tapable": "2.2.1", + "tar": "~6.1.11", + "true-case-path": "~2.2.1", + "uuid": "~8.3.2" + }, + "engines": { + "node": ">=5.6.0" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@opentelemetry/api": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/api/-/api-1.7.0.tgz", + "integrity": "sha512-AdY5wvN0P2vXBi3b29hxZgSFvdhdxPB9+f0B6s//P9Q8nibRWeA3cHm8UmLpio9ABigkVHJ5NMPk+Mz8VCCyrw==", + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@pnpm/crypto.base32-hash": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@pnpm/crypto.base32-hash/-/crypto.base32-hash-2.0.0.tgz", + "integrity": "sha512-3ttOeHBpmWRbgJrpDQ8Nwd3W8s8iuiP5YZM0JRyKWaMtX8lu9d7/AKyxPmhYsMJuN+q/1dwHa7QFeDZJ53b0oA==", + "dependencies": { + "rfc4648": "^1.5.2" + }, + "engines": { + "node": ">=16.14" + }, + "funding": { + "url": "https://opencollective.com/pnpm" + } + }, + "node_modules/@pnpm/dependency-path": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/@pnpm/dependency-path/-/dependency-path-2.1.8.tgz", + "integrity": "sha512-ywBaTjy0iSEF7lH3DlF8UXrdL2bw4AQFV2tTOeNeY7wc1W5CE+RHSJhf9MXBYcZPesqGRrPiU7Pimj3l05L9VA==", + "dependencies": { + "@pnpm/crypto.base32-hash": "2.0.0", + "@pnpm/types": "9.4.2", + "encode-registry": "^3.0.1", + "semver": "^7.5.4" + }, + "engines": { + "node": ">=16.14" + }, + "funding": { + "url": "https://opencollective.com/pnpm" + } + }, + "node_modules/@pnpm/error": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@pnpm/error/-/error-1.4.0.tgz", + "integrity": "sha512-vxkRrkneBPVmP23kyjnYwVOtipwlSl6UfL+h+Xa3TrABJTz5rYBXemlTsU5BzST8U4pD7YDkTb3SQu+MMuIDKA==", + "engines": { + "node": ">=10.16" + }, + "funding": { + "url": "https://opencollective.com/pnpm" + } + }, + "node_modules/@pnpm/link-bins": { + "version": "5.3.25", + "resolved": "https://registry.npmjs.org/@pnpm/link-bins/-/link-bins-5.3.25.tgz", + "integrity": "sha512-9Xq8lLNRHFDqvYPXPgaiKkZ4rtdsm7izwM/cUsFDc5IMnG0QYIVBXQbgwhz2UvjUotbJrvfKLJaCfA3NGBnLDg==", + "dependencies": { + "@pnpm/error": "1.4.0", + "@pnpm/package-bins": "4.1.0", + "@pnpm/read-modules-dir": "2.0.3", + "@pnpm/read-package-json": "4.0.0", + "@pnpm/read-project-manifest": "1.1.7", + "@pnpm/types": "6.4.0", + "@zkochan/cmd-shim": "^5.0.0", + "is-subdir": "^1.1.1", + "is-windows": "^1.0.2", + "mz": "^2.7.0", + "normalize-path": "^3.0.0", + "p-settle": "^4.1.1", + "ramda": "^0.27.1" + }, + "engines": { + "node": ">=10.16" + }, + "funding": { + "url": "https://opencollective.com/pnpm" + } + }, + "node_modules/@pnpm/link-bins/node_modules/@pnpm/types": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/@pnpm/types/-/types-6.4.0.tgz", + "integrity": "sha512-nco4+4sZqNHn60Y4VE/fbtlShCBqipyUO+nKRPvDHqLrecMW9pzHWMVRxk4nrMRoeowj3q0rX3GYRBa8lsHTAg==", + "engines": { + "node": ">=10.16" + }, + "funding": { + "url": "https://opencollective.com/pnpm" + } + }, + "node_modules/@pnpm/package-bins": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@pnpm/package-bins/-/package-bins-4.1.0.tgz", + "integrity": "sha512-57/ioGYLBbVRR80Ux9/q2i3y8Q+uQADc3c+Yse8jr/60YLOi3jcWz13e2Jy+ANYtZI258Qc5wk2X077rp0Ly/Q==", + "dependencies": { + "@pnpm/types": "6.4.0", + "fast-glob": "^3.2.4", + "is-subdir": "^1.1.1" + }, + "engines": { + "node": ">=10.16" + }, + "funding": { + "url": "https://opencollective.com/pnpm" + } + }, + "node_modules/@pnpm/package-bins/node_modules/@pnpm/types": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/@pnpm/types/-/types-6.4.0.tgz", + "integrity": "sha512-nco4+4sZqNHn60Y4VE/fbtlShCBqipyUO+nKRPvDHqLrecMW9pzHWMVRxk4nrMRoeowj3q0rX3GYRBa8lsHTAg==", + "engines": { + "node": ">=10.16" + }, + "funding": { + "url": "https://opencollective.com/pnpm" + } + }, + "node_modules/@pnpm/read-modules-dir": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@pnpm/read-modules-dir/-/read-modules-dir-2.0.3.tgz", + "integrity": "sha512-i9OgRvSlxrTS9a2oXokhDxvQzDtfqtsooJ9jaGoHkznue5aFCTSrNZFQ6M18o8hC03QWfnxaKi0BtOvNkKu2+A==", + "dependencies": { + "mz": "^2.7.0" + }, + "engines": { + "node": ">=10.13" + }, + "funding": { + "url": "https://opencollective.com/pnpm" + } + }, + "node_modules/@pnpm/read-package-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@pnpm/read-package-json/-/read-package-json-4.0.0.tgz", + "integrity": "sha512-1cr2tEwe4YU6SI0Hmg+wnsr6yxBt2iJtqv6wrF84On8pS9hx4A2PLw3CIgbwxaG0b+ur5wzhNogwl4qD5FLFNg==", + "dependencies": { + "@pnpm/error": "1.4.0", + "@pnpm/types": "6.4.0", + "load-json-file": "^6.2.0", + "normalize-package-data": "^3.0.2" + }, + "engines": { + "node": ">=10.16" + }, + "funding": { + "url": "https://opencollective.com/pnpm" + } + }, + "node_modules/@pnpm/read-package-json/node_modules/@pnpm/types": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/@pnpm/types/-/types-6.4.0.tgz", + "integrity": "sha512-nco4+4sZqNHn60Y4VE/fbtlShCBqipyUO+nKRPvDHqLrecMW9pzHWMVRxk4nrMRoeowj3q0rX3GYRBa8lsHTAg==", + "engines": { + "node": ">=10.16" + }, + "funding": { + "url": "https://opencollective.com/pnpm" + } + }, + "node_modules/@pnpm/read-project-manifest": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/@pnpm/read-project-manifest/-/read-project-manifest-1.1.7.tgz", + "integrity": "sha512-tj8ExXZeDcMmMUj7D292ETe/RiEirr1X1wpT6Zy85z2MrFYoG9jfCJpps40OdZBNZBhxbuKtGPWKVSgXD0yrVw==", + "dependencies": { + "@pnpm/error": "1.4.0", + "@pnpm/types": "6.4.0", + "@pnpm/write-project-manifest": "1.1.7", + "detect-indent": "^6.0.0", + "fast-deep-equal": "^3.1.3", + "graceful-fs": "4.2.4", + "is-windows": "^1.0.2", + "json5": "^2.1.3", + "parse-json": "^5.1.0", + "read-yaml-file": "^2.0.0", + "sort-keys": "^4.1.0", + "strip-bom": "^4.0.0" + }, + "engines": { + "node": ">=10.16" + }, + "funding": { + "url": "https://opencollective.com/pnpm" + } + }, + "node_modules/@pnpm/read-project-manifest/node_modules/@pnpm/types": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/@pnpm/types/-/types-6.4.0.tgz", + "integrity": "sha512-nco4+4sZqNHn60Y4VE/fbtlShCBqipyUO+nKRPvDHqLrecMW9pzHWMVRxk4nrMRoeowj3q0rX3GYRBa8lsHTAg==", + "engines": { + "node": ">=10.16" + }, + "funding": { + "url": "https://opencollective.com/pnpm" + } + }, + "node_modules/@pnpm/types": { + "version": "9.4.2", + "resolved": "https://registry.npmjs.org/@pnpm/types/-/types-9.4.2.tgz", + "integrity": "sha512-g1hcF8Nv4gd76POilz9gD4LITAPXOe5nX4ijgr8ixCbLQZfcpYiMfJ+C1RlMNRUDo8vhlNB4O3bUlxmT6EAQXA==", + "engines": { + "node": ">=16.14" + }, + "funding": { + "url": "https://opencollective.com/pnpm" + } + }, + "node_modules/@pnpm/write-project-manifest": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/@pnpm/write-project-manifest/-/write-project-manifest-1.1.7.tgz", + "integrity": "sha512-OLkDZSqkA1mkoPNPvLFXyI6fb0enCuFji6Zfditi/CLAo9kmIhQFmEUDu4krSB8i908EljG8YwL5Xjxzm5wsWA==", + "dependencies": { + "@pnpm/types": "6.4.0", + "json5": "^2.1.3", + "mz": "^2.7.0", + "write-file-atomic": "^3.0.3", + "write-yaml-file": "^4.1.3" + }, + "engines": { + "node": ">=10.16" + }, + "funding": { + "url": "https://opencollective.com/pnpm" + } + }, + "node_modules/@pnpm/write-project-manifest/node_modules/@pnpm/types": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/@pnpm/types/-/types-6.4.0.tgz", + "integrity": "sha512-nco4+4sZqNHn60Y4VE/fbtlShCBqipyUO+nKRPvDHqLrecMW9pzHWMVRxk4nrMRoeowj3q0rX3GYRBa8lsHTAg==", + "engines": { + "node": ">=10.16" + }, + "funding": { + "url": "https://opencollective.com/pnpm" + } + }, + "node_modules/@rushstack/heft-config-file": { + "version": "0.14.7", + "resolved": "https://registry.npmjs.org/@rushstack/heft-config-file/-/heft-config-file-0.14.7.tgz", + "integrity": "sha512-yfYCLKBEIS7J2M2QIab1Sdqkj85MqcNARPN8Q+lVN1jy05YGX/LiqevvUrFGiH0zJUP3qBp2nS2LCdm7l+N55g==", + "dependencies": { + "@rushstack/node-core-library": "3.64.2", + "@rushstack/rig-package": "0.5.1", + "jsonpath-plus": "~4.0.0" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/@rushstack/node-core-library": { + "version": "3.64.2", + "resolved": "https://registry.npmjs.org/@rushstack/node-core-library/-/node-core-library-3.64.2.tgz", + "integrity": "sha512-n1S2VYEklONiwKpUyBq/Fym6yAsfsCXrqFabuOMcCuj4C+zW+HyaspSHXJCKqkMxfjviwe/c9+DUqvRWIvSN9Q==", + "dependencies": { + "colors": "~1.2.1", + "fs-extra": "~7.0.1", + "import-lazy": "~4.0.0", + "jju": "~1.4.0", + "resolve": "~1.22.1", + "semver": "~7.5.4", + "z-schema": "~5.0.2" + }, + "peerDependencies": { + "@types/node": "*" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } + } + }, + "node_modules/@rushstack/package-deps-hash": { + "version": "4.1.21", + "resolved": "https://registry.npmjs.org/@rushstack/package-deps-hash/-/package-deps-hash-4.1.21.tgz", + "integrity": "sha512-sE0mXl/OVwF0P8mY7pRwim7TbLFFp2bvmsYz7bWlDRkbITpF9yCF+tNc0N6XlhVB7/Jwn0z2vci2jLRCM/k5bg==", + "dependencies": { + "@rushstack/node-core-library": "3.64.2" + } + }, + "node_modules/@rushstack/package-extractor": { + "version": "0.6.23", + "resolved": "https://registry.npmjs.org/@rushstack/package-extractor/-/package-extractor-0.6.23.tgz", + "integrity": "sha512-ySRr7yLFWwibh7XPqDokMK7N6UAfT+j+34JoP+Ta6oKYcDqFRqW/lbV923wW26rrx7L8lHQOldUDskIssn39dw==", + "dependencies": { + "@pnpm/link-bins": "~5.3.7", + "@rushstack/node-core-library": "3.64.2", + "@rushstack/terminal": "0.7.20", + "ignore": "~5.1.6", + "jszip": "~3.8.0", + "minimatch": "~3.0.3", + "npm-packlist": "~2.1.2", + "semver": "~7.5.4" + } + }, + "node_modules/@rushstack/rig-package": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/@rushstack/rig-package/-/rig-package-0.5.1.tgz", + "integrity": "sha512-pXRYSe29TjRw7rqxD4WS3HN/sRSbfr+tJs4a9uuaSIBAITbUggygdhuG0VrO0EO+QqH91GhYMN4S6KRtOEmGVA==", + "dependencies": { + "resolve": "~1.22.1", + "strip-json-comments": "~3.1.1" + } + }, + "node_modules/@rushstack/rush-amazon-s3-build-cache-plugin": { + "version": "5.113.4", + "resolved": "https://registry.npmjs.org/@rushstack/rush-amazon-s3-build-cache-plugin/-/rush-amazon-s3-build-cache-plugin-5.113.4.tgz", + "integrity": "sha512-ySSyDbWOd0xHGNWYP9zRWB4mqg+deVrZ1LIBL+mIIH8Y+gWIPS4B8C358fDeaylWV+JLx5Lwpp7hRYAVAy465w==", + "dependencies": { + "@rushstack/node-core-library": "3.64.2", + "@rushstack/rush-sdk": "5.113.4", + "https-proxy-agent": "~5.0.0", + "node-fetch": "2.6.7" + } + }, + "node_modules/@rushstack/rush-azure-storage-build-cache-plugin": { + "version": "5.113.4", + "resolved": "https://registry.npmjs.org/@rushstack/rush-azure-storage-build-cache-plugin/-/rush-azure-storage-build-cache-plugin-5.113.4.tgz", + "integrity": "sha512-9Aw8u/I3ojl68Ym1QdFX6XXuL645LCKZXLu7DFNHFSDHxV1f+X7fbpMERTTdF1EbZ0HAWKww+OXaiSIfyBk4CA==", + "dependencies": { + "@azure/identity": "~4.0.0", + "@azure/storage-blob": "~12.17.0", + "@rushstack/node-core-library": "3.64.2", + "@rushstack/rush-sdk": "5.113.4", + "@rushstack/terminal": "0.7.20" + } + }, + "node_modules/@rushstack/rush-http-build-cache-plugin": { + "version": "5.113.4", + "resolved": "https://registry.npmjs.org/@rushstack/rush-http-build-cache-plugin/-/rush-http-build-cache-plugin-5.113.4.tgz", + "integrity": "sha512-CzrUrCr7csEQ2Hy/mfNdNz5akJsDtF335bJr4AC1gbxUGnOExCUnsry7zVexA/BtLVARScZMLbUF4p+Y/M4a2g==", + "dependencies": { + "@rushstack/node-core-library": "3.64.2", + "@rushstack/rush-sdk": "5.113.4", + "https-proxy-agent": "~5.0.0", + "node-fetch": "2.6.7" + } + }, + "node_modules/@rushstack/rush-sdk": { + "version": "5.113.4", + "resolved": "https://registry.npmjs.org/@rushstack/rush-sdk/-/rush-sdk-5.113.4.tgz", + "integrity": "sha512-2BdUJGWTcDPuDKHrPvo2UxmfSBriVcW4P6dbCNwAdIgOa+OmiloPZx0sBKPLN5NPonxnRR2747FSMbXREVDGYQ==", + "dependencies": { + "@rushstack/node-core-library": "3.64.2", + "@types/node-fetch": "2.6.2", + "tapable": "2.2.1" + } + }, + "node_modules/@rushstack/stream-collator": { + "version": "4.1.21", + "resolved": "https://registry.npmjs.org/@rushstack/stream-collator/-/stream-collator-4.1.21.tgz", + "integrity": "sha512-C6WNcdT9RDYKqwiDHLjM4WLqJZHazyxnW8YvdtoaQi4MiQztbI5B+q8VvpifirmHp7z/GAGO8qrWtJXXgOLCyw==", + "dependencies": { + "@rushstack/node-core-library": "3.64.2", + "@rushstack/terminal": "0.7.20" + } + }, + "node_modules/@rushstack/terminal": { + "version": "0.7.20", + "resolved": "https://registry.npmjs.org/@rushstack/terminal/-/terminal-0.7.20.tgz", + "integrity": "sha512-e23GExH43r1VSpcudhvXNlatjDn/jZiajaW3Bs/Nd9wyRPsWxs1b+6iEFdZSDoBDRwAKxrSv96no9qCszOSmkQ==", + "dependencies": { + "@rushstack/node-core-library": "3.64.2" + }, + "peerDependencies": { + "@types/node": "*" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } + } + }, + "node_modules/@rushstack/ts-command-line": { + "version": "4.17.1", + "resolved": "https://registry.npmjs.org/@rushstack/ts-command-line/-/ts-command-line-4.17.1.tgz", + "integrity": "sha512-2jweO1O57BYP5qdBGl6apJLB+aRIn5ccIRTPDyULh0KMwVzFqWtw6IZWt1qtUoZD/pD2RNkIOosH6Cq45rIYeg==", + "dependencies": { + "@types/argparse": "1.0.38", + "argparse": "~1.0.9", + "colors": "~1.2.1", + "string-argv": "~0.3.1" + } + }, + "node_modules/@sindresorhus/is": { + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", + "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==", + "engines": { + "node": ">=6" + } + }, + "node_modules/@szmarczak/http-timer": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", + "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", + "dependencies": { + "defer-to-connect": "^1.0.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@tootallnate/once": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", + "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==", + "engines": { + "node": ">= 10" + } + }, + "node_modules/@types/argparse": { + "version": "1.0.38", + "resolved": "https://registry.npmjs.org/@types/argparse/-/argparse-1.0.38.tgz", + "integrity": "sha512-ebDJ9b0e702Yr7pWgB0jzm+CX4Srzz8RcXtLJDJB+BSccqMa36uyH/zUsSYao5+BD1ytv3k3rPYCq4mAE1hsXA==" + }, + "node_modules/@types/lodash": { + "version": "4.14.202", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.202.tgz", + "integrity": "sha512-OvlIYQK9tNneDlS0VN54LLd5uiPCBOp7gS5Z0f1mjoJYBrtStzgmJBxONW3U6OZqdtNzZPmn9BS/7WI7BFFcFQ==" + }, + "node_modules/@types/minimatch": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz", + "integrity": "sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==" + }, + "node_modules/@types/minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag==" + }, + "node_modules/@types/node": { + "version": "20.11.17", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.17.tgz", + "integrity": "sha512-QmgQZGWu1Yw9TDyAP9ZzpFJKynYNeOvwMJmaxABfieQoVoiVOS6MN1WSpqpRcbeA5+RW82kraAVxCCJg+780Qw==", + "dependencies": { + "undici-types": "~5.26.4" + } + }, + "node_modules/@types/node-fetch": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.6.2.tgz", + "integrity": "sha512-DHqhlq5jeESLy19TYhLakJ07kNumXWjcDdxXsLUMJZ6ue8VZJj4kLPQVE/2mdHh3xZziNF1xppu5lwmS53HR+A==", + "dependencies": { + "@types/node": "*", + "form-data": "^3.0.0" + } + }, + "node_modules/@types/node-fetch/node_modules/form-data": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", + "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/@types/normalize-package-data": { + "version": "2.4.4", + "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.4.tgz", + "integrity": "sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==" + }, + "node_modules/@types/parse-json": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.2.tgz", + "integrity": "sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==" + }, + "node_modules/@types/tunnel": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/@types/tunnel/-/tunnel-0.0.3.tgz", + "integrity": "sha512-sOUTGn6h1SfQ+gbgqC364jLFBw2lnFqkgF3q0WovEHRLMrVD1sd5aufqi/aJObLekJO+Aq5z646U4Oxy6shXMA==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@vue/compiler-core": { + "version": "3.4.19", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.4.19.tgz", + "integrity": "sha512-gj81785z0JNzRcU0Mq98E56e4ltO1yf8k5PQ+tV/7YHnbZkrM0fyFyuttnN8ngJZjbpofWE/m4qjKBiLl8Ju4w==", + "dependencies": { + "@babel/parser": "^7.23.9", + "@vue/shared": "3.4.19", + "entities": "^4.5.0", + "estree-walker": "^2.0.2", + "source-map-js": "^1.0.2" + } + }, + "node_modules/@vue/compiler-dom": { + "version": "3.4.19", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.4.19.tgz", + "integrity": "sha512-vm6+cogWrshjqEHTzIDCp72DKtea8Ry/QVpQRYoyTIg9k7QZDX6D8+HGURjtmatfgM8xgCFtJJaOlCaRYRK3QA==", + "dependencies": { + "@vue/compiler-core": "3.4.19", + "@vue/shared": "3.4.19" + } + }, + "node_modules/@vue/compiler-sfc": { + "version": "3.4.19", + "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.4.19.tgz", + "integrity": "sha512-LQ3U4SN0DlvV0xhr1lUsgLCYlwQfUfetyPxkKYu7dkfvx7g3ojrGAkw0AERLOKYXuAGnqFsEuytkdcComei3Yg==", + "dependencies": { + "@babel/parser": "^7.23.9", + "@vue/compiler-core": "3.4.19", + "@vue/compiler-dom": "3.4.19", + "@vue/compiler-ssr": "3.4.19", + "@vue/shared": "3.4.19", + "estree-walker": "^2.0.2", + "magic-string": "^0.30.6", + "postcss": "^8.4.33", + "source-map-js": "^1.0.2" + } + }, + "node_modules/@vue/compiler-ssr": { + "version": "3.4.19", + "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.4.19.tgz", + "integrity": "sha512-P0PLKC4+u4OMJ8sinba/5Z/iDT84uMRRlrWzadgLA69opCpI1gG4N55qDSC+dedwq2fJtzmGald05LWR5TFfLw==", + "dependencies": { + "@vue/compiler-dom": "3.4.19", + "@vue/shared": "3.4.19" + } + }, + "node_modules/@vue/shared": { + "version": "3.4.19", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.4.19.tgz", + "integrity": "sha512-/KliRRHMF6LoiThEy+4c1Z4KB/gbPrGjWwJR+crg2otgrf/egKzRaCPvJ51S5oetgsgXLfc4Rm5ZgrKHZrtMSw==" + }, + "node_modules/@yarnpkg/lockfile": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@yarnpkg/lockfile/-/lockfile-1.0.2.tgz", + "integrity": "sha512-MqJ00WXw89ga0rK6GZkdmmgv3bAsxpJixyTthjcix73O44pBqotyU2BejBkLuIsaOBI6SEu77vAnSyLe5iIHkw==" + }, + "node_modules/@zkochan/cmd-shim": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/@zkochan/cmd-shim/-/cmd-shim-5.4.1.tgz", + "integrity": "sha512-odWb1qUzt0dIOEUPyWBEpFDYQPRjEMr/dbHHAfgBkVkYR9aO7Zo+I7oYWrXIxl+cKlC7+49ftPm8uJxL1MA9kw==", + "dependencies": { + "cmd-extension": "^1.0.2", + "graceful-fs": "^4.2.10", + "is-windows": "^1.0.2" + }, + "engines": { + "node": ">=10.13" + } + }, + "node_modules/@zkochan/cmd-shim/node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==" + }, + "node_modules/agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "dependencies": { + "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/ansi-align": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz", + "integrity": "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==", + "dependencies": { + "string-width": "^4.1.0" + } + }, + "node_modules/ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "dependencies": { + "type-fest": "^0.21.3" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/any-promise": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", + "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==" + }, + "node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/array-differ": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-3.0.0.tgz", + "integrity": "sha512-THtfYS6KtME/yIAhKjZ2ul7XI96lQGHRputJQHO80LAWQnuGP4iCIN8vdMRboGbIEYBwU33q8Tch1os2+X0kMg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "engines": { + "node": ">=8" + } + }, + "node_modules/arrify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==" + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/better-path-resolve": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/better-path-resolve/-/better-path-resolve-1.0.0.tgz", + "integrity": "sha512-pbnl5XzGBdrFU/wT4jqmJVPn2B6UHPBOhzMQkY/SPUPB6QtUXtmBHBIwCbXJol93mOpGMnQyP/+BB19q04xj7g==", + "dependencies": { + "is-windows": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/bl": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", + "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", + "dependencies": { + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + } + }, + "node_modules/bl/node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/boxen": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/boxen/-/boxen-5.1.2.tgz", + "integrity": "sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ==", + "dependencies": { + "ansi-align": "^3.0.0", + "camelcase": "^6.2.0", + "chalk": "^4.1.0", + "cli-boxes": "^2.2.1", + "string-width": "^4.2.2", + "type-fest": "^0.20.2", + "widest-line": "^3.1.0", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/boxen/node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "node_modules/buffer-equal-constant-time": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", + "integrity": "sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==" + }, + "node_modules/builtin-modules": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.1.0.tgz", + "integrity": "sha512-k0KL0aWZuBt2lrxrcASWDfwOLMnodeQjodT/1SxEQAXsHANgo6ZC/VEaSEHCXt7aSTZ4/4H5LKa+tBXmW7Vtvw==", + "engines": { + "node": ">=6" + } + }, + "node_modules/builtins": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/builtins/-/builtins-1.0.3.tgz", + "integrity": "sha512-uYBjakWipfaO/bXI7E8rq6kpwHRZK5cNYrUv2OzZSI/FvmdMyXJ2tG9dKcjEC5YHmHpUAwsargWIZNWdxb/bnQ==" + }, + "node_modules/cacheable-request": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz", + "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", + "dependencies": { + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^3.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^4.1.0", + "responselike": "^1.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cacheable-request/node_modules/get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cacheable-request/node_modules/lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", + "engines": { + "node": ">=8" + } + }, + "node_modules/callsite": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/callsite/-/callsite-1.0.0.tgz", + "integrity": "sha512-0vdNRFXn5q+dtOqjfFtmtlI9N2eVZ7LMyEV2iKC5mEEFvSg/69Ml6b/WU2qF8W1nLRa0wiSrDT3Y5jOHZCwKPQ==", + "engines": { + "node": "*" + } + }, + "node_modules/callsite-record": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/callsite-record/-/callsite-record-4.1.5.tgz", + "integrity": "sha512-OqeheDucGKifjQRx524URgV4z4NaKjocGhygTptDea+DLROre4ZEecA4KXDq+P7qlGCohYVNOh3qr+y5XH5Ftg==", + "dependencies": { + "@devexpress/error-stack-parser": "^2.0.6", + "@types/lodash": "^4.14.72", + "callsite": "^1.0.0", + "chalk": "^2.4.0", + "highlight-es": "^1.0.0", + "lodash": "4.6.1 || ^4.16.1", + "pinkie-promise": "^2.0.0" + } + }, + "node_modules/callsite-record/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/callsite-record/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/callsite-record/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/callsite-record/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" + }, + "node_modules/callsite-record/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "engines": { + "node": ">=4" + } + }, + "node_modules/callsite-record/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "engines": { + "node": ">=6" + } + }, + "node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/camelcase-keys": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-6.2.2.tgz", + "integrity": "sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==", + "dependencies": { + "camelcase": "^5.3.1", + "map-obj": "^4.0.0", + "quick-lru": "^4.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/camelcase-keys/node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "engines": { + "node": ">=6" + } + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/chardet": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", + "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==" + }, + "node_modules/chownr": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", + "engines": { + "node": ">=10" + } + }, + "node_modules/ci-info": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", + "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==" + }, + "node_modules/cli-boxes": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz", + "integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==", + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cli-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "dependencies": { + "restore-cursor": "^3.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cli-spinners": { + "version": "2.9.2", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.2.tgz", + "integrity": "sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==", + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cli-table": { + "version": "0.3.11", + "resolved": "https://registry.npmjs.org/cli-table/-/cli-table-0.3.11.tgz", + "integrity": "sha512-IqLQi4lO0nIB4tcdTpN4LCB9FI3uqrJZK7RC515EnhZ6qBaglkIgICb1wjeAqpdoOabm1+SuQtkXIPdYC93jhQ==", + "dependencies": { + "colors": "1.0.3" + }, + "engines": { + "node": ">= 0.2.0" + } + }, + "node_modules/cli-table/node_modules/colors": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz", + "integrity": "sha512-pFGrxThWcWQ2MsAz6RtgeWe4NK2kUE1WfsrvvlctdII745EW9I0yflqhe7++M5LEc7bV2c/9/5zc8sFcpL0Drw==", + "engines": { + "node": ">=0.1.90" + } + }, + "node_modules/cli-width": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz", + "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==", + "engines": { + "node": ">= 10" + } + }, + "node_modules/cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "node_modules/clone": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", + "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/clone-response": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.3.tgz", + "integrity": "sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==", + "dependencies": { + "mimic-response": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cmd-extension": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/cmd-extension/-/cmd-extension-1.0.2.tgz", + "integrity": "sha512-iWDjmP8kvsMdBmLTHxFaqXikO8EdFRDfim7k6vUHglY/2xJ5jLrPsnQGijdfp4U+sr/BeecG0wKm02dSIAeQ1g==", + "engines": { + "node": ">=10" + } + }, + "node_modules/co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", + "engines": { + "iojs": ">= 1.0.0", + "node": ">= 0.12.0" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/colors": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.2.5.tgz", + "integrity": "sha512-erNRLao/Y3Fv54qUa0LBB+//Uf3YwMUmdJinN20yMXm9zdKKqH9wt7R9IIVZ+K7ShzfpLV/Zg8+VyrBJYB4lpg==", + "engines": { + "node": ">=0.1.90" + } + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/commander": { + "version": "9.5.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-9.5.0.tgz", + "integrity": "sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==", + "optional": true, + "engines": { + "node": "^12.20.0 || >=14" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" + }, + "node_modules/configstore": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/configstore/-/configstore-5.0.1.tgz", + "integrity": "sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==", + "dependencies": { + "dot-prop": "^5.2.0", + "graceful-fs": "^4.1.2", + "make-dir": "^3.0.0", + "unique-string": "^2.0.0", + "write-file-atomic": "^3.0.0", + "xdg-basedir": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" + }, + "node_modules/cosmiconfig": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", + "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", + "dependencies": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.2.1", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.10.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/crypto-random-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", + "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==", + "engines": { + "node": ">=8" + } + }, + "node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/debuglog": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/debuglog/-/debuglog-1.0.1.tgz", + "integrity": "sha512-syBZ+rnAK3EgMsH2aYEOLUW7mZSY9Gb+0wUMCFsZvcmiz+HigA0LOcq/HoQqVuGG+EKykunc7QG2bzrponfaSw==", + "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", + "engines": { + "node": "*" + } + }, + "node_modules/decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/decamelize-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.1.tgz", + "integrity": "sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==", + "dependencies": { + "decamelize": "^1.1.0", + "map-obj": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/decamelize-keys/node_modules/map-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", + "integrity": "sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/decompress-response": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", + "integrity": "sha512-BzRPQuY1ip+qDonAOz42gRm/pg9F768C+npV/4JOsxRC2sq+Rlk+Q4ZCAsOhnIaMrgarILY+RMUIvMmmX1qAEA==", + "dependencies": { + "mimic-response": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/defaults": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz", + "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==", + "dependencies": { + "clone": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/defer-to-connect": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", + "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==" + }, + "node_modules/define-lazy-prop": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", + "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", + "engines": { + "node": ">=8" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/depcheck": { + "version": "1.4.7", + "resolved": "https://registry.npmjs.org/depcheck/-/depcheck-1.4.7.tgz", + "integrity": "sha512-1lklS/bV5chOxwNKA/2XUUk/hPORp8zihZsXflr8x0kLwmcZ9Y9BsS6Hs3ssvA+2wUVbG0U2Ciqvm1SokNjPkA==", + "dependencies": { + "@babel/parser": "^7.23.0", + "@babel/traverse": "^7.23.2", + "@vue/compiler-sfc": "^3.3.4", + "callsite": "^1.0.0", + "camelcase": "^6.3.0", + "cosmiconfig": "^7.1.0", + "debug": "^4.3.4", + "deps-regex": "^0.2.0", + "findup-sync": "^5.0.0", + "ignore": "^5.2.4", + "is-core-module": "^2.12.0", + "js-yaml": "^3.14.1", + "json5": "^2.2.3", + "lodash": "^4.17.21", + "minimatch": "^7.4.6", + "multimatch": "^5.0.0", + "please-upgrade-node": "^3.2.0", + "readdirp": "^3.6.0", + "require-package-name": "^2.0.1", + "resolve": "^1.22.3", + "resolve-from": "^5.0.0", + "semver": "^7.5.4", + "yargs": "^16.2.0" + }, + "bin": { + "depcheck": "bin/depcheck.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/depcheck/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/depcheck/node_modules/ignore": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz", + "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==", + "engines": { + "node": ">= 4" + } + }, + "node_modules/depcheck/node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/depcheck/node_modules/minimatch": { + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-7.4.6.tgz", + "integrity": "sha512-sBz8G/YjVniEz6lKPNpKxXwazJe4c19fEfV2GDMX6AjFz+MX9uDWIZW8XreVhkFW3fkIdTv/gxWr/Kks5FFAVw==", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/dependency-path": { + "version": "9.2.8", + "resolved": "https://registry.npmjs.org/dependency-path/-/dependency-path-9.2.8.tgz", + "integrity": "sha512-S0OhIK7sIyAsph8hVH/LMCTDL3jozKtlrPx3dMQrlE2nAlXTquTT+AcOufphDMTQqLkfn4acvfiem9I1IWZ4jQ==", + "dependencies": { + "@pnpm/crypto.base32-hash": "1.0.1", + "@pnpm/types": "8.9.0", + "encode-registry": "^3.0.0", + "semver": "^7.3.8" + }, + "engines": { + "node": ">=14.6" + }, + "funding": { + "url": "https://opencollective.com/pnpm" + } + }, + "node_modules/dependency-path/node_modules/@pnpm/crypto.base32-hash": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@pnpm/crypto.base32-hash/-/crypto.base32-hash-1.0.1.tgz", + "integrity": "sha512-pzAXNn6KxTA3kbcI3iEnYs4vtH51XEVqmK/1EiD18MaPKylhqy8UvMJK3zKG+jeP82cqQbozcTGm4yOQ8i3vNw==", + "dependencies": { + "rfc4648": "^1.5.1" + }, + "engines": { + "node": ">=14.6" + }, + "funding": { + "url": "https://opencollective.com/pnpm" + } + }, + "node_modules/dependency-path/node_modules/@pnpm/types": { + "version": "8.9.0", + "resolved": "https://registry.npmjs.org/@pnpm/types/-/types-8.9.0.tgz", + "integrity": "sha512-3MYHYm8epnciApn6w5Fzx6sepawmsNU7l6lvIq+ER22/DPSrr83YMhU/EQWnf4lORn2YyiXFj0FJSyJzEtIGmw==", + "engines": { + "node": ">=14.6" + }, + "funding": { + "url": "https://opencollective.com/pnpm" + } + }, + "node_modules/deps-regex": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/deps-regex/-/deps-regex-0.2.0.tgz", + "integrity": "sha512-PwuBojGMQAYbWkMXOY9Pd/NWCDNHVH12pnS7WHqZkTSeMESe4hwnKKRp0yR87g37113x4JPbo/oIvXY+s/f56Q==" + }, + "node_modules/detect-file": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz", + "integrity": "sha512-DtCOLG98P007x7wiiOmfI0fi3eIKyWiLTGJ2MDnVi/E04lWGbf+JzrRHMm0rgIIZJGtHpKpbVgLWHrv8xXpc3Q==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/detect-indent": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-6.1.0.tgz", + "integrity": "sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==", + "engines": { + "node": ">=8" + } + }, + "node_modules/dezalgo": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/dezalgo/-/dezalgo-1.0.4.tgz", + "integrity": "sha512-rXSP0bf+5n0Qonsb+SVVfNfIsimO4HEtmnIpPHY8Q1UCzKlQrDMfdobr8nJOOsRgWCyMRqeSBQzmWUMq7zvVig==", + "dependencies": { + "asap": "^2.0.0", + "wrappy": "1" + } + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/dot-prop": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", + "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", + "dependencies": { + "is-obj": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/duplexer3": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.5.tgz", + "integrity": "sha512-1A8za6ws41LQgv9HrE/66jyC5yuSjQ3L/KOpFtoBilsAK2iA2wuS5rTt1OCzIvtS2V7nVmedsUU+DGRcjBmOYA==" + }, + "node_modules/ecdsa-sig-formatter": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz", + "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==", + "dependencies": { + "safe-buffer": "^5.0.1" + } + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "node_modules/encode-registry": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/encode-registry/-/encode-registry-3.0.1.tgz", + "integrity": "sha512-6qOwkl1g0fv0DN3Y3ggr2EaZXN71aoAqPp3p/pVaWSBSIo+YjLOWN61Fva43oVyQNPf7kgm8lkudzlzojwE2jw==", + "dependencies": { + "mem": "^8.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/escalade": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", + "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-goat": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-2.1.1.tgz", + "integrity": "sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q==", + "engines": { + "node": ">=8" + } + }, + "node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==" + }, + "node_modules/events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "engines": { + "node": ">=0.8.x" + } + }, + "node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/expand-tilde": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", + "integrity": "sha512-A5EmesHW6rfnZ9ysHQjPdJRni0SRar0tjtG5MNtm9n5TUvsYU8oozprtRD4AqHxcZWWlVuAmQo2nWKfN9oyjTw==", + "dependencies": { + "homedir-polyfill": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/external-editor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", + "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", + "dependencies": { + "chardet": "^0.7.0", + "iconv-lite": "^0.4.24", + "tmp": "^0.0.33" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" + }, + "node_modules/fast-glob": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", + "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fastq": { + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", + "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/figures": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-3.0.0.tgz", + "integrity": "sha512-HKri+WoWoUgr83pehn/SIgLOMZ9nAWC6dcGj26RY2R4F50u4+RTUz0RCrUlOV3nKRAICW1UGzyb+kcX2qK1S/g==", + "dependencies": { + "escape-string-regexp": "^1.0.5" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/find-yarn-workspace-root2": { + "version": "1.2.16", + "resolved": "https://registry.npmjs.org/find-yarn-workspace-root2/-/find-yarn-workspace-root2-1.2.16.tgz", + "integrity": "sha512-hr6hb1w8ePMpPVUK39S4RlwJzi+xPLuVuG8XlwXU3KD5Yn3qgBWVfy3AzNlDhWvE1EORCE65/Qm26rFQt3VLVA==", + "dependencies": { + "micromatch": "^4.0.2", + "pkg-dir": "^4.2.0" + } + }, + "node_modules/find-yarn-workspace-root2/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-yarn-workspace-root2/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-yarn-workspace-root2/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-yarn-workspace-root2/node_modules/pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dependencies": { + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/findup-sync": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-5.0.0.tgz", + "integrity": "sha512-MzwXju70AuyflbgeOhzvQWAvvQdo1XL0A9bVvlXsYcFEBM87WR4OakL4OfZq+QRmr+duJubio+UtNQCPsVESzQ==", + "dependencies": { + "detect-file": "^1.0.0", + "is-glob": "^4.0.3", + "micromatch": "^4.0.4", + "resolve-dir": "^1.0.1" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fs-extra": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", + "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", + "dependencies": { + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "engines": { + "node": ">=6 <7 || >=8" + } + }, + "node_modules/fs-minipass": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/git-repo-info": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/git-repo-info/-/git-repo-info-2.1.1.tgz", + "integrity": "sha512-8aCohiDo4jwjOwma4FmYFd3i97urZulL8XL24nIPxuE+GZnfsAyy/g2Shqx6OjUiFKUXZM+Yy+KHnOmmA3FVcg==", + "engines": { + "node": ">= 4.0" + } + }, + "node_modules/giturl": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/giturl/-/giturl-1.0.3.tgz", + "integrity": "sha512-qVDEXufVtYUzYqI5hoDUONh9GCEPi0n+e35KNDafdsNt9fPxB0nvFW/kFiw7W42wkg8TUyhBqb+t24yyaoc87A==", + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-escape": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/glob-escape/-/glob-escape-0.0.2.tgz", + "integrity": "sha512-L/cXYz8x7qer1HAyUQ+mbjcUsJVdpRxpAf7CwqHoNBs9vTpABlGfNN4tzkDxt+u3Z7ZncVyKlCNPtzb0R/7WbA==", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/glob/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/global-dirs": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.1.tgz", + "integrity": "sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA==", + "dependencies": { + "ini": "2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/global-dirs/node_modules/ini": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz", + "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==", + "engines": { + "node": ">=10" + } + }, + "node_modules/global-modules": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", + "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==", + "dependencies": { + "global-prefix": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/global-prefix": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", + "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", + "dependencies": { + "ini": "^1.3.5", + "kind-of": "^6.0.2", + "which": "^1.3.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/global-prefix/node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "engines": { + "node": ">=4" + } + }, + "node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globby/node_modules/ignore": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz", + "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==", + "engines": { + "node": ">= 4" + } + }, + "node_modules/got": { + "version": "9.6.0", + "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz", + "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", + "dependencies": { + "@sindresorhus/is": "^0.14.0", + "@szmarczak/http-timer": "^1.1.2", + "cacheable-request": "^6.0.0", + "decompress-response": "^3.3.0", + "duplexer3": "^0.1.4", + "get-stream": "^4.1.0", + "lowercase-keys": "^1.0.1", + "mimic-response": "^1.0.1", + "p-cancelable": "^1.0.0", + "to-readable-stream": "^1.0.0", + "url-parse-lax": "^3.0.0" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/got/node_modules/get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", + "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==" + }, + "node_modules/hard-rejection": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/hard-rejection/-/hard-rejection-2.1.0.tgz", + "integrity": "sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==", + "engines": { + "node": ">=6" + } + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/has-yarn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-2.1.0.tgz", + "integrity": "sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw==", + "engines": { + "node": ">=8" + } + }, + "node_modules/hasown": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.1.tgz", + "integrity": "sha512-1/th4MHjnwncwXsIW6QMzlvYL9kG5e/CpVvLRZe4XPa8TOUNbCELqmvhDmnkNsAjwaG4+I8gJJL0JBvTTLO9qA==", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/highlight-es": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/highlight-es/-/highlight-es-1.0.3.tgz", + "integrity": "sha512-s/SIX6yp/5S1p8aC/NRDC1fwEb+myGIfp8/TzZz0rtAv8fzsdX7vGl3Q1TrXCsczFq8DI3CBFBCySPClfBSdbg==", + "dependencies": { + "chalk": "^2.4.0", + "is-es2016-keyword": "^1.0.0", + "js-tokens": "^3.0.0" + } + }, + "node_modules/highlight-es/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/highlight-es/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/highlight-es/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/highlight-es/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" + }, + "node_modules/highlight-es/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "engines": { + "node": ">=4" + } + }, + "node_modules/highlight-es/node_modules/js-tokens": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", + "integrity": "sha512-RjTcuD4xjtthQkaWH7dFlH85L+QaVtSoOyGdZ3g6HFhS9dFNDfLyqgm2NFe2X6cQpeFmt0452FJjFG5UameExg==" + }, + "node_modules/highlight-es/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/homedir-polyfill": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz", + "integrity": "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==", + "dependencies": { + "parse-passwd": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/hosted-git-info": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", + "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/http-cache-semantics": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", + "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==" + }, + "node_modules/http-proxy-agent": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", + "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", + "dependencies": { + "@tootallnate/once": "2", + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "dependencies": { + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "engines": { + "node": ">=10.17.0" + } + }, + "node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/ignore": { + "version": "5.1.9", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.9.tgz", + "integrity": "sha512-2zeMQpbKz5dhZ9IwL0gbxSW5w0NK/MSAMtNuhgIHEPmaU3vPdKPL0UdvUCXs5SS4JAwsBxysK5sFMW8ocFiVjQ==", + "engines": { + "node": ">= 4" + } + }, + "node_modules/ignore-walk": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.4.tgz", + "integrity": "sha512-PY6Ii8o1jMRA1z4F2hRkH/xN59ox43DavKvD3oDpfurRlOJyAHpifIwpbdv1n4jt4ov0jSpw3kQ4GhJnpBL6WQ==", + "dependencies": { + "minimatch": "^3.0.4" + } + }, + "node_modules/immediate": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz", + "integrity": "sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==" + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/import-fresh/node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "engines": { + "node": ">=4" + } + }, + "node_modules/import-lazy": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-4.0.0.tgz", + "integrity": "sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==", + "engines": { + "node": ">=8" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" + }, + "node_modules/inquirer": { + "version": "7.3.3", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.3.3.tgz", + "integrity": "sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA==", + "dependencies": { + "ansi-escapes": "^4.2.1", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-width": "^3.0.0", + "external-editor": "^3.0.3", + "figures": "^3.0.0", + "lodash": "^4.17.19", + "mute-stream": "0.0.8", + "run-async": "^2.4.0", + "rxjs": "^6.6.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0", + "through": "^2.3.6" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==" + }, + "node_modules/is-ci": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", + "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", + "dependencies": { + "ci-info": "^2.0.0" + }, + "bin": { + "is-ci": "bin.js" + } + }, + "node_modules/is-core-module": { + "version": "2.13.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", + "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", + "dependencies": { + "hasown": "^2.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-docker": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-es2016-keyword": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-es2016-keyword/-/is-es2016-keyword-1.0.0.tgz", + "integrity": "sha512-JtZWPUwjdbQ1LIo9OSZ8MdkWEve198ors27vH+RzUUvZXXZkzXCxFnlUhzWYxy5IexQSRiXVw9j2q/tHMmkVYQ==" + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-installed-globally": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz", + "integrity": "sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==", + "dependencies": { + "global-dirs": "^3.0.0", + "is-path-inside": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-interactive": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", + "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-npm": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-5.0.0.tgz", + "integrity": "sha512-WW/rQLOazUq+ST/bCAVBp/2oMERWLsR7OrKyt052dNDk4DHcDE0/7QSXITlmi+VBcV13DfIbysG3tZJm5RfdBA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-obj": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", + "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-plain-obj": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", + "integrity": "sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-subdir": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/is-subdir/-/is-subdir-1.2.0.tgz", + "integrity": "sha512-2AT6j+gXe/1ueqbW6fLZJiIw3F8iXGJtt0yDrZaBhAZEG1raiTxKWU+IPqMCzQAXOUCKdA4UDMgacKH25XG2Cw==", + "dependencies": { + "better-path-resolve": "1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==" + }, + "node_modules/is-unicode-supported": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "dependencies": { + "is-docker": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-yarn-global": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.3.0.tgz", + "integrity": "sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==" + }, + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" + }, + "node_modules/jju": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/jju/-/jju-1.4.0.tgz", + "integrity": "sha512-8wb9Yw966OSxApiCt0K3yNJL8pnNeIv+OEq2YMidz4FKP6nonSRoOXc80iXY4JaN2FC11B9qsNmDsm+ZOfMROA==" + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + }, + "node_modules/js-yaml": { + "version": "3.13.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", + "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/json-buffer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", + "integrity": "sha512-CuUqjv0FUZIdXkHPI8MezCnFCdaTAacej1TZYulLoAg1h/PhwkdXFN4V/gzY4g+fMBCOV2xF+rp7t2XD2ns/NQ==" + }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==" + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/jsonpath-plus": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonpath-plus/-/jsonpath-plus-4.0.0.tgz", + "integrity": "sha512-e0Jtg4KAzDJKKwzbLaUtinCn0RZseWBVRTRGihSpvFlM3wTR7ExSp+PTdeTsDrLNJUe7L7JYJe8mblHX5SCT6A==", + "engines": { + "node": ">=10.0" + } + }, + "node_modules/jsonwebtoken": { + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-9.0.2.tgz", + "integrity": "sha512-PRp66vJ865SSqOlgqS8hujT5U4AOgMfhrwYIuIhfKaoSCZcirrmASQr8CX7cUg+RMih+hgznrjp99o+W4pJLHQ==", + "dependencies": { + "jws": "^3.2.2", + "lodash.includes": "^4.3.0", + "lodash.isboolean": "^3.0.3", + "lodash.isinteger": "^4.0.4", + "lodash.isnumber": "^3.0.3", + "lodash.isplainobject": "^4.0.6", + "lodash.isstring": "^4.0.1", + "lodash.once": "^4.0.0", + "ms": "^2.1.1", + "semver": "^7.5.4" + }, + "engines": { + "node": ">=12", + "npm": ">=6" + } + }, + "node_modules/jsonwebtoken/node_modules/jwa": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.4.1.tgz", + "integrity": "sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==", + "dependencies": { + "buffer-equal-constant-time": "1.0.1", + "ecdsa-sig-formatter": "1.0.11", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/jsonwebtoken/node_modules/jws": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/jws/-/jws-3.2.2.tgz", + "integrity": "sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==", + "dependencies": { + "jwa": "^1.4.1", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/jszip": { + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.8.0.tgz", + "integrity": "sha512-cnpQrXvFSLdsR9KR5/x7zdf6c3m8IhZfZzSblFEHSqBaVwD2nvJ4CuCKLyvKvwBgZm08CgfSoiTBQLm5WW9hGw==", + "dependencies": { + "lie": "~3.3.0", + "pako": "~1.0.2", + "readable-stream": "~2.3.6", + "set-immediate-shim": "~1.0.1" + } + }, + "node_modules/jwa": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/jwa/-/jwa-2.0.0.tgz", + "integrity": "sha512-jrZ2Qx916EA+fq9cEAeCROWPTfCwi1IVHqT2tapuqLEVVDKFDENFw1oL+MwrTvH6msKxsd1YTDVw6uKEcsrLEA==", + "dependencies": { + "buffer-equal-constant-time": "1.0.1", + "ecdsa-sig-formatter": "1.0.11", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/jws": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jws/-/jws-4.0.0.tgz", + "integrity": "sha512-KDncfTmOZoOMTFG4mBlG0qUIOlc03fmzH+ru6RgYVZhPkyiy/92Owlt/8UEN+a4TXR1FQetfIpJE8ApdvdVxTg==", + "dependencies": { + "jwa": "^2.0.0", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/keyv": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", + "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", + "dependencies": { + "json-buffer": "3.0.0" + } + }, + "node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/latest-version": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-5.1.0.tgz", + "integrity": "sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA==", + "dependencies": { + "package-json": "^6.3.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/lie": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz", + "integrity": "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==", + "dependencies": { + "immediate": "~3.0.5" + } + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==" + }, + "node_modules/load-json-file": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-6.2.0.tgz", + "integrity": "sha512-gUD/epcRms75Cw8RT1pUdHugZYM5ce64ucs2GEISABwkRsOQr0q2wm/MV2TKThycIe5e0ytRweW2RZxclogCdQ==", + "dependencies": { + "graceful-fs": "^4.1.15", + "parse-json": "^5.0.0", + "strip-bom": "^4.0.0", + "type-fest": "^0.6.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/load-json-file/node_modules/type-fest": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", + "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/load-yaml-file": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/load-yaml-file/-/load-yaml-file-0.2.0.tgz", + "integrity": "sha512-OfCBkGEw4nN6JLtgRidPX6QxjBQGQf72q3si2uvqyFEMbycSFFHwAZeXx6cJgFM9wmLrf9zBwCP3Ivqa+LLZPw==", + "dependencies": { + "graceful-fs": "^4.1.5", + "js-yaml": "^3.13.0", + "pify": "^4.0.1", + "strip-bom": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/load-yaml-file/node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "engines": { + "node": ">=4" + } + }, + "node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + }, + "node_modules/lodash.get": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", + "integrity": "sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==" + }, + "node_modules/lodash.includes": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz", + "integrity": "sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w==" + }, + "node_modules/lodash.isboolean": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz", + "integrity": "sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==" + }, + "node_modules/lodash.isequal": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", + "integrity": "sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==" + }, + "node_modules/lodash.isinteger": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz", + "integrity": "sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA==" + }, + "node_modules/lodash.isnumber": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz", + "integrity": "sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw==" + }, + "node_modules/lodash.isplainobject": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", + "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==" + }, + "node_modules/lodash.isstring": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", + "integrity": "sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==" + }, + "node_modules/lodash.once": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", + "integrity": "sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==" + }, + "node_modules/log-symbols": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", + "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", + "dependencies": { + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lowercase-keys": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", + "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/magic-string": { + "version": "0.30.7", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.7.tgz", + "integrity": "sha512-8vBuFF/I/+OSLRmdf2wwFCJCz+nSn0m6DPvGH1fS/KiQoSaR+sETbov0eIk9KhEKy8CYqIkIAnbohxT/4H0kuA==", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.4.15" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dependencies": { + "semver": "^6.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/make-dir/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/map-age-cleaner": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz", + "integrity": "sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==", + "dependencies": { + "p-defer": "^1.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/map-obj": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.3.0.tgz", + "integrity": "sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/mem": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/mem/-/mem-8.1.1.tgz", + "integrity": "sha512-qFCFUDs7U3b8mBDPyz5EToEKoAkgCzqquIgi9nkkR9bixxOVOre+09lbuH7+9Kn2NFpm56M3GUWVbU2hQgdACA==", + "dependencies": { + "map-age-cleaner": "^0.1.3", + "mimic-fn": "^3.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/mem?sponsor=1" + } + }, + "node_modules/meow": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/meow/-/meow-9.0.0.tgz", + "integrity": "sha512-+obSblOQmRhcyBt62furQqRAQpNyWXo8BuQ5bN7dG8wmwQ+vwHKp/rCFD4CrTP8CsDQD1sjoZ94K417XEUk8IQ==", + "dependencies": { + "@types/minimist": "^1.2.0", + "camelcase-keys": "^6.2.2", + "decamelize": "^1.2.0", + "decamelize-keys": "^1.1.0", + "hard-rejection": "^2.1.0", + "minimist-options": "4.1.0", + "normalize-package-data": "^3.0.0", + "read-pkg-up": "^7.0.1", + "redent": "^3.0.0", + "trim-newlines": "^3.0.0", + "type-fest": "^0.18.0", + "yargs-parser": "^20.2.3" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/meow/node_modules/type-fest": { + "version": "0.18.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz", + "integrity": "sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dependencies": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mimic-fn": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-3.1.0.tgz", + "integrity": "sha512-Ysbi9uYW9hFyfrThdDEQuykN4Ey6BuwPD2kpI5ES/nFTDn/98yxYNLZJcgUAKPT/mcrLLKaGzJR9YVxJrIdASQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/mimic-response": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", + "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", + "engines": { + "node": ">=4" + } + }, + "node_modules/min-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", + "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", + "engines": { + "node": ">=4" + } + }, + "node_modules/minimatch": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.8.tgz", + "integrity": "sha512-6FsRAQsxQ61mw+qP1ZzbL9Bc78x2p5OqNgNpnoAFLTrX8n5Kxph0CsnhmKKNXTWjXqU5L0pGPR7hYk+XWZr60Q==", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/minimist-options": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-4.1.0.tgz", + "integrity": "sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==", + "dependencies": { + "arrify": "^1.0.1", + "is-plain-obj": "^1.1.0", + "kind-of": "^6.0.3" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minizlib": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", + "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", + "dependencies": { + "minipass": "^3.0.0", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/multimatch": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/multimatch/-/multimatch-5.0.0.tgz", + "integrity": "sha512-ypMKuglUrZUD99Tk2bUQ+xNQj43lPEfAeX2o9cTteAmShXy2VHDJpuwu1o0xqoKCt9jLVAvwyFKdLTPXKAfJyA==", + "dependencies": { + "@types/minimatch": "^3.0.3", + "array-differ": "^3.0.0", + "array-union": "^2.1.0", + "arrify": "^2.0.1", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/multimatch/node_modules/arrify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz", + "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==", + "engines": { + "node": ">=8" + } + }, + "node_modules/mute-stream": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", + "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==" + }, + "node_modules/mz": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", + "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", + "dependencies": { + "any-promise": "^1.0.0", + "object-assign": "^4.0.1", + "thenify-all": "^1.0.0" + } + }, + "node_modules/nanoid": { + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", + "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/node-emoji": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-1.11.0.tgz", + "integrity": "sha512-wo2DpQkQp7Sjm2A0cq+sN7EHKO6Sl0ctXeBdFZrL9T9+UywORbufTcTZxom8YqpLQt/FqNMUkOpkZrJVYSKD3A==", + "dependencies": { + "lodash": "^4.17.21" + } + }, + "node_modules/node-fetch": { + "version": "2.6.7", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", + "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, + "node_modules/normalize-package-data": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz", + "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==", + "dependencies": { + "hosted-git-info": "^4.0.1", + "is-core-module": "^2.5.0", + "semver": "^7.3.4", + "validate-npm-package-license": "^3.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-url": { + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.1.tgz", + "integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==", + "engines": { + "node": ">=8" + } + }, + "node_modules/npm-bundled": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.1.2.tgz", + "integrity": "sha512-x5DHup0SuyQcmL3s7Rx/YQ8sbw/Hzg0rj48eN0dV7hf5cmQq5PXIeioroH3raV1QC1yh3uTYuMThvEQF3iKgGQ==", + "dependencies": { + "npm-normalize-package-bin": "^1.0.1" + } + }, + "node_modules/npm-check": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/npm-check/-/npm-check-6.0.1.tgz", + "integrity": "sha512-tlEhXU3689VLUHYEZTS/BC61vfeN2xSSZwoWDT6WLuenZTpDmGmNT5mtl15erTR0/A15ldK06/NEKg9jYJ9OTQ==", + "dependencies": { + "callsite-record": "^4.1.3", + "chalk": "^4.1.0", + "co": "^4.6.0", + "depcheck": "^1.3.1", + "execa": "^5.0.0", + "giturl": "^1.0.0", + "global-modules": "^2.0.0", + "globby": "^11.0.2", + "inquirer": "^7.3.3", + "is-ci": "^2.0.0", + "lodash": "^4.17.20", + "meow": "^9.0.0", + "minimatch": "^3.0.2", + "node-emoji": "^1.10.0", + "ora": "^5.3.0", + "package-json": "^6.5.0", + "path-exists": "^4.0.0", + "pkg-dir": "^5.0.0", + "preferred-pm": "^3.0.3", + "rc-config-loader": "^4.0.0", + "semver": "^7.3.4", + "semver-diff": "^3.1.1", + "strip-ansi": "^6.0.0", + "text-table": "^0.2.0", + "throat": "^6.0.1", + "update-notifier": "^5.1.0", + "xtend": "^4.0.2" + }, + "bin": { + "npm-check": "bin/cli.js" + }, + "engines": { + "node": ">=10.9.0" + } + }, + "node_modules/npm-normalize-package-bin": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz", + "integrity": "sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==" + }, + "node_modules/npm-package-arg": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-6.1.1.tgz", + "integrity": "sha512-qBpssaL3IOZWi5vEKUKW0cO7kzLeT+EQO9W8RsLOZf76KF9E/K9+wH0C7t06HXPpaH8WH5xF1MExLuCwbTqRUg==", + "dependencies": { + "hosted-git-info": "^2.7.1", + "osenv": "^0.1.5", + "semver": "^5.6.0", + "validate-npm-package-name": "^3.0.0" + } + }, + "node_modules/npm-package-arg/node_modules/hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==" + }, + "node_modules/npm-package-arg/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/npm-packlist": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-2.1.5.tgz", + "integrity": "sha512-KCfK3Vi2F+PH1klYauoQzg81GQ8/GGjQRKYY6tRnpQUPKTs/1gBZSRWtTEd7jGdSn1LZL7gpAmJT+BcS55k2XQ==", + "dependencies": { + "glob": "^7.1.6", + "ignore-walk": "^3.0.3", + "npm-bundled": "^1.1.1", + "npm-normalize-package-bin": "^1.0.1" + }, + "bin": { + "npm-packlist": "bin/index.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/onetime/node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "engines": { + "node": ">=6" + } + }, + "node_modules/open": { + "version": "8.4.2", + "resolved": "https://registry.npmjs.org/open/-/open-8.4.2.tgz", + "integrity": "sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==", + "dependencies": { + "define-lazy-prop": "^2.0.0", + "is-docker": "^2.1.1", + "is-wsl": "^2.2.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ora": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", + "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", + "dependencies": { + "bl": "^4.1.0", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-spinners": "^2.5.0", + "is-interactive": "^1.0.0", + "is-unicode-supported": "^0.1.0", + "log-symbols": "^4.1.0", + "strip-ansi": "^6.0.0", + "wcwidth": "^1.0.1" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/os-homedir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "integrity": "sha512-B5JU3cabzk8c67mRRd3ECmROafjYMXbuzlwtqdM8IbS8ktlTix8aFGb2bAGKrSRIlnfKwovGUUr72JUPyOb6kQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/osenv": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", + "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", + "dependencies": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" + } + }, + "node_modules/p-cancelable": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", + "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==", + "engines": { + "node": ">=6" + } + }, + "node_modules/p-defer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz", + "integrity": "sha512-wB3wfAxZpk2AzOfUMJNL+d36xothRSyj8EXOa4f6GMqYDN9BJaaSISbsk+wS9abmnebVw95C2Kb5t85UmpCxuw==", + "engines": { + "node": ">=4" + } + }, + "node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate/node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-reflect": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-reflect/-/p-reflect-2.1.0.tgz", + "integrity": "sha512-paHV8NUz8zDHu5lhr/ngGWQiW067DK/+IbJ+RfZ4k+s8y4EKyYCz8pGYWjxCg35eHztpJAt+NUgvN4L+GCbPlg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/p-settle": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/p-settle/-/p-settle-4.1.1.tgz", + "integrity": "sha512-6THGh13mt3gypcNMm0ADqVNCcYa3BK6DWsuJWFCuEKP1rpY+OKGp7gaZwVmLspmic01+fsg/fN57MfvDzZ/PuQ==", + "dependencies": { + "p-limit": "^2.2.2", + "p-reflect": "^2.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "engines": { + "node": ">=6" + } + }, + "node_modules/package-json": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/package-json/-/package-json-6.5.0.tgz", + "integrity": "sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==", + "dependencies": { + "got": "^9.6.0", + "registry-auth-token": "^4.0.0", + "registry-url": "^5.0.0", + "semver": "^6.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/package-json/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/pako": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", + "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==" + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parse-passwd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", + "integrity": "sha512-1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "engines": { + "node": ">=8" + } + }, + "node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "engines": { + "node": ">=6" + } + }, + "node_modules/pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==", + "dependencies": { + "pinkie": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pkg-dir": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-5.0.0.tgz", + "integrity": "sha512-NPE8TDbzl/3YQYY7CSS228s3g2ollTFnc+Qi3tqmqJp9Vg2ovUpixcJEo2HJScN2Ez+kEaal6y70c0ehqJBJeA==", + "dependencies": { + "find-up": "^5.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/please-upgrade-node": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/please-upgrade-node/-/please-upgrade-node-3.2.0.tgz", + "integrity": "sha512-gQR3WpIgNIKwBMVLkpMUeR3e1/E1y42bqDQZfql+kDeXd8COYfM8PQA4X6y7a8u9Ua9FHmsrrmirW2vHs45hWg==", + "dependencies": { + "semver-compare": "^1.0.0" + } + }, + "node_modules/postcss": { + "version": "8.4.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.35.tgz", + "integrity": "sha512-u5U8qYpBCpN13BsiEB0CbR1Hhh4Gc0zLFuedrHJKMctHCHAGrMdG0PRM/KErzAL3CU6/eckEtmHNB3x6e3c0vA==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "nanoid": "^3.3.7", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/preferred-pm": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/preferred-pm/-/preferred-pm-3.1.2.tgz", + "integrity": "sha512-nk7dKrcW8hfCZ4H6klWcdRknBOXWzNQByJ0oJyX97BOupsYD+FzLS4hflgEu/uPUEHZCuRfMxzCBsuWd7OzT8Q==", + "dependencies": { + "find-up": "^5.0.0", + "find-yarn-workspace-root2": "1.2.16", + "path-exists": "^4.0.0", + "which-pm": "2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/prepend-http": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", + "integrity": "sha512-ravE6m9Atw9Z/jjttRUZ+clIXogdghyZAuWJ3qEzjT+jI/dL1ifAqhZeC5VHzQp1MSt1+jxKkFNemj/iO7tVUA==", + "engines": { + "node": ">=4" + } + }, + "node_modules/process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" + }, + "node_modules/pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/pupa": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/pupa/-/pupa-2.1.1.tgz", + "integrity": "sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A==", + "dependencies": { + "escape-goat": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/quick-lru": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz", + "integrity": "sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==", + "engines": { + "node": ">=8" + } + }, + "node_modules/ramda": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/ramda/-/ramda-0.27.2.tgz", + "integrity": "sha512-SbiLPU40JuJniHexQSAgad32hfwd+DRUdwF2PlVuI5RZD0/vahUco7R8vD86J/tcEKKF9vZrUVwgtmGCqlCKyA==" + }, + "node_modules/rc": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", + "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", + "dependencies": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "bin": { + "rc": "cli.js" + } + }, + "node_modules/rc-config-loader": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/rc-config-loader/-/rc-config-loader-4.1.3.tgz", + "integrity": "sha512-kD7FqML7l800i6pS6pvLyIE2ncbk9Du8Q0gp/4hMPhJU6ZxApkoLcGD8ZeqgiAlfwZ6BlETq6qqe+12DUL207w==", + "dependencies": { + "debug": "^4.3.4", + "js-yaml": "^4.1.0", + "json5": "^2.2.2", + "require-from-string": "^2.0.2" + } + }, + "node_modules/rc-config-loader/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" + }, + "node_modules/rc-config-loader/node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/rc/node_modules/strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/read-package-json": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/read-package-json/-/read-package-json-2.1.2.tgz", + "integrity": "sha512-D1KmuLQr6ZSJS0tW8hf3WGpRlwszJOXZ3E8Yd/DNRaM5d+1wVRZdHlpGBLAuovjr28LbWvjpWkBHMxpRGGjzNA==", + "dependencies": { + "glob": "^7.1.1", + "json-parse-even-better-errors": "^2.3.0", + "normalize-package-data": "^2.0.0", + "npm-normalize-package-bin": "^1.0.0" + } + }, + "node_modules/read-package-json/node_modules/hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==" + }, + "node_modules/read-package-json/node_modules/normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dependencies": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "node_modules/read-package-json/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/read-package-tree": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/read-package-tree/-/read-package-tree-5.1.6.tgz", + "integrity": "sha512-FCX1aT3GWyY658wzDICef4p+n0dB+ENRct8E/Qyvppj6xVpOYerBHfUu7OP5Rt1/393Tdglguf5ju5DEX4wZNg==", + "deprecated": "The functionality that this package provided is now in @npmcli/arborist", + "dependencies": { + "debuglog": "^1.0.1", + "dezalgo": "^1.0.0", + "once": "^1.3.0", + "read-package-json": "^2.0.0", + "readdir-scoped-modules": "^1.0.0" + } + }, + "node_modules/read-pkg": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", + "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", + "dependencies": { + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^2.5.0", + "parse-json": "^5.0.0", + "type-fest": "^0.6.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/read-pkg-up": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", + "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", + "dependencies": { + "find-up": "^4.1.0", + "read-pkg": "^5.2.0", + "type-fest": "^0.8.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/read-pkg-up/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/read-pkg-up/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/read-pkg-up/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/read-pkg-up/node_modules/type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "engines": { + "node": ">=8" + } + }, + "node_modules/read-pkg/node_modules/hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==" + }, + "node_modules/read-pkg/node_modules/normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dependencies": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "node_modules/read-pkg/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/read-pkg/node_modules/type-fest": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", + "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/read-yaml-file": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/read-yaml-file/-/read-yaml-file-2.1.0.tgz", + "integrity": "sha512-UkRNRIwnhG+y7hpqnycCL/xbTk7+ia9VuVTC0S+zVbwd65DI9eUpRMfsWIGrCWxTU/mi+JW8cHQCrv+zfCbEPQ==", + "dependencies": { + "js-yaml": "^4.0.0", + "strip-bom": "^4.0.0" + }, + "engines": { + "node": ">=10.13" + } + }, + "node_modules/read-yaml-file/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" + }, + "node_modules/read-yaml-file/node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/readable-stream/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "node_modules/readdir-scoped-modules": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/readdir-scoped-modules/-/readdir-scoped-modules-1.1.0.tgz", + "integrity": "sha512-asaikDeqAQg7JifRsZn1NJZXo9E+VwlyCfbkZhwyISinqk5zNS6266HS5kah6P0SaQKGF6SkNnZVHUzHFYxYDw==", + "deprecated": "This functionality has been moved to @npmcli/fs", + "dependencies": { + "debuglog": "^1.0.1", + "dezalgo": "^1.0.0", + "graceful-fs": "^4.1.2", + "once": "^1.3.0" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/redent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", + "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", + "dependencies": { + "indent-string": "^4.0.0", + "strip-indent": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/registry-auth-token": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.2.2.tgz", + "integrity": "sha512-PC5ZysNb42zpFME6D/XlIgtNGdTl8bBOCw90xQLVMpzuuubJKYDWFAEuUNc+Cn8Z8724tg2SDhDRrkVEsqfDMg==", + "dependencies": { + "rc": "1.2.8" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/registry-url": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-5.1.0.tgz", + "integrity": "sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==", + "dependencies": { + "rc": "^1.2.8" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-package-name": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/require-package-name/-/require-package-name-2.0.1.tgz", + "integrity": "sha512-uuoJ1hU/k6M0779t3VMVIYpb2VMJk05cehCaABFhXaibcbvfgR8wKiozLjVFSzJPmQMRqIcO0HMyTFqfV09V6Q==" + }, + "node_modules/resolve": { + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "dependencies": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-dir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz", + "integrity": "sha512-R7uiTjECzvOsWSfdM0QKFNBVFcK27aHOUwdvK53BcW8zqnGdYp0Fbj82cy54+2A4P2tFM22J5kRfe1R+lM/1yg==", + "dependencies": { + "expand-tilde": "^2.0.0", + "global-modules": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resolve-dir/node_modules/global-modules": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz", + "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==", + "dependencies": { + "global-prefix": "^1.0.1", + "is-windows": "^1.0.1", + "resolve-dir": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resolve-dir/node_modules/global-prefix": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz", + "integrity": "sha512-5lsx1NUDHtSjfg0eHlmYvZKv8/nVqX4ckFbM+FrGcQ+04KWcWFo9P5MxPZYSzUvyzmdTbI7Eix8Q4IbELDqzKg==", + "dependencies": { + "expand-tilde": "^2.0.2", + "homedir-polyfill": "^1.0.1", + "ini": "^1.3.4", + "is-windows": "^1.0.1", + "which": "^1.2.14" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resolve-dir/node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "engines": { + "node": ">=8" + } + }, + "node_modules/responselike": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", + "integrity": "sha512-/Fpe5guzJk1gPqdJLJR5u7eG/gNY4nImjbRDaVWVMRhne55TCmj2i9Q+54PBRfatRC8v/rIiv9BN0pMd9OV5EQ==", + "dependencies": { + "lowercase-keys": "^1.0.0" + } + }, + "node_modules/restore-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "dependencies": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rfc4648": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/rfc4648/-/rfc4648-1.5.3.tgz", + "integrity": "sha512-MjOWxM065+WswwnmNONOT+bD1nXzY9Km6u3kzvnx8F8/HXGZdz3T6e6vZJ8Q/RIMUSp/nxqjH3GwvJDy8ijeQQ==" + }, + "node_modules/run-async": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", + "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/rxjs": { + "version": "6.6.7", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", + "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", + "dependencies": { + "tslib": "^1.9.0" + }, + "engines": { + "npm": ">=2.0.0" + } + }, + "node_modules/rxjs/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "node_modules/sax": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.3.0.tgz", + "integrity": "sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA==" + }, + "node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/semver-compare": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz", + "integrity": "sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow==" + }, + "node_modules/semver-diff": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-3.1.1.tgz", + "integrity": "sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg==", + "dependencies": { + "semver": "^6.3.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/semver-diff/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/set-immediate-shim": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz", + "integrity": "sha512-Li5AOqrZWCVA2n5kryzEmqai6bKSIvpz5oUJHPVj6+dsbD3X1ixtsY5tEnsaNpH3pFAHmG8eIHUrtEtohrg+UQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "engines": { + "node": ">=8" + } + }, + "node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "engines": { + "node": ">=8" + } + }, + "node_modules/sort-keys": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-4.2.0.tgz", + "integrity": "sha512-aUYIEU/UviqPgc8mHR6IW1EGxkAXpeRETYcrzg8cLAvUPZcpAlleSXHV2mY7G12GphSH6Gzv+4MMVSSkbdteHg==", + "dependencies": { + "is-plain-obj": "^2.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/sort-keys/node_modules/is-plain-obj": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", + "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", + "engines": { + "node": ">=8" + } + }, + "node_modules/source-map-js": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/spdx-correct": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", + "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", + "dependencies": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-exceptions": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.4.0.tgz", + "integrity": "sha512-hcjppoJ68fhxA/cjbN4T8N6uCUejN8yFw69ttpqtBeCbF3u13n7mb31NB9jKwGTTWWnt9IbRA/mf1FprYS8wfw==" + }, + "node_modules/spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-license-ids": { + "version": "3.0.17", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.17.tgz", + "integrity": "sha512-sh8PWc/ftMqAAdFiBu6Fy6JUOYjqDJBJvIhpfDMyHrr0Rbp5liZqd4TjtQ/RgfLjKFZb+LMx5hpml5qOWy0qvg==" + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==" + }, + "node_modules/ssri": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.1.tgz", + "integrity": "sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==", + "dependencies": { + "minipass": "^3.1.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/stackframe": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/stackframe/-/stackframe-1.3.4.tgz", + "integrity": "sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==" + }, + "node_modules/stoppable": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/stoppable/-/stoppable-1.1.0.tgz", + "integrity": "sha512-KXDYZ9dszj6bzvnEMRYvxgeTHU74QBFL54XKtP3nyMuJ81CFYtABZ3bAzL2EdFUaEwJOBOgENyFj3R7oTzDyyw==", + "engines": { + "node": ">=4", + "npm": ">=6" + } + }, + "node_modules/strict-uri-encode": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz", + "integrity": "sha512-QwiXZgpRcKkhTj2Scnn++4PKtWsH0kpzZ62L2R6c/LUVYv7hVnZqcg2+sMuT6R7Jusu1vviK/MFsu6kNJfWlEQ==", + "engines": { + "node": ">=4" + } + }, + "node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/string_decoder/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "node_modules/string-argv": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/string-argv/-/string-argv-0.3.2.tgz", + "integrity": "sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==", + "engines": { + "node": ">=0.6.19" + } + }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-bom": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", + "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "engines": { + "node": ">=6" + } + }, + "node_modules/strip-indent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", + "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", + "dependencies": { + "min-indent": "^1.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/tapable": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", + "engines": { + "node": ">=6" + } + }, + "node_modules/tar": { + "version": "6.1.15", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.15.tgz", + "integrity": "sha512-/zKt9UyngnxIT/EAGYuxaMYgOIJiP81ab9ZfkILq4oNLPFX50qyYmu7jRj9qeXoxmJHjGlbH0+cm2uy1WCs10A==", + "dependencies": { + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "minipass": "^5.0.0", + "minizlib": "^2.1.1", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/tar/node_modules/minipass": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", + "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==" + }, + "node_modules/thenify": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", + "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", + "dependencies": { + "any-promise": "^1.0.0" + } + }, + "node_modules/thenify-all": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", + "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", + "dependencies": { + "thenify": ">= 3.1.0 < 4" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/throat": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/throat/-/throat-6.0.2.tgz", + "integrity": "sha512-WKexMoJj3vEuK0yFEapj8y64V0A6xcuPuK9Gt1d0R+dzCSJc0lHqQytAbSB4cDAK0dWh4T0E2ETkoLE2WZ41OQ==" + }, + "node_modules/through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==" + }, + "node_modules/tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "dependencies": { + "os-tmpdir": "~1.0.2" + }, + "engines": { + "node": ">=0.6.0" + } + }, + "node_modules/to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "engines": { + "node": ">=4" + } + }, + "node_modules/to-readable-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz", + "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==", + "engines": { + "node": ">=6" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" + }, + "node_modules/trim-newlines": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.1.tgz", + "integrity": "sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==", + "engines": { + "node": ">=8" + } + }, + "node_modules/true-case-path": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/true-case-path/-/true-case-path-2.2.1.tgz", + "integrity": "sha512-0z3j8R7MCjy10kc/g+qg7Ln3alJTodw9aDuVWZa3uiWqfuBMKeAeP2ocWcxoyM3D73yz3Jt/Pu4qPr4wHSdB/Q==" + }, + "node_modules/tslib": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" + }, + "node_modules/tunnel": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/tunnel/-/tunnel-0.0.6.tgz", + "integrity": "sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==", + "engines": { + "node": ">=0.6.11 <=0.7.0 || >=0.7.3" + } + }, + "node_modules/type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/typedarray-to-buffer": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", + "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", + "dependencies": { + "is-typedarray": "^1.0.0" + } + }, + "node_modules/undici-types": { + "version": "5.26.5", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", + "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==" + }, + "node_modules/unique-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", + "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", + "dependencies": { + "crypto-random-string": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/update-notifier": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-5.1.0.tgz", + "integrity": "sha512-ItnICHbeMh9GqUy31hFPrD1kcuZ3rpxDZbf4KUDavXwS0bW5m7SLbDQpGX3UYr072cbrF5hFUs3r5tUsPwjfHw==", + "dependencies": { + "boxen": "^5.0.0", + "chalk": "^4.1.0", + "configstore": "^5.0.1", + "has-yarn": "^2.1.0", + "import-lazy": "^2.1.0", + "is-ci": "^2.0.0", + "is-installed-globally": "^0.4.0", + "is-npm": "^5.0.0", + "is-yarn-global": "^0.3.0", + "latest-version": "^5.1.0", + "pupa": "^2.1.1", + "semver": "^7.3.4", + "semver-diff": "^3.1.1", + "xdg-basedir": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/yeoman/update-notifier?sponsor=1" + } + }, + "node_modules/update-notifier/node_modules/import-lazy": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz", + "integrity": "sha512-m7ZEHgtw69qOGw+jwxXkHlrlIPdTGkyh66zXZ1ajZbxkDBNjSY/LGbmjc7h0s2ELsUDTAhFr55TrPSSqJGPG0A==", + "engines": { + "node": ">=4" + } + }, + "node_modules/url-parse-lax": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", + "integrity": "sha512-NjFKA0DidqPa5ciFcSrXnAltTtzz84ogy+NebPvfEgAck0+TNg4UJ4IN+fB7zRZfbgUf0syOo9MDxFkDSMuFaQ==", + "dependencies": { + "prepend-http": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" + }, + "node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "dependencies": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "node_modules/validate-npm-package-name": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz", + "integrity": "sha512-M6w37eVCMMouJ9V/sdPGnC5H4uDr73/+xdq0FBLO3TFFX1+7wiUY6Es328NN+y43tmY+doUdN9g9J21vqB7iLw==", + "dependencies": { + "builtins": "^1.0.3" + } + }, + "node_modules/validator": { + "version": "13.11.0", + "resolved": "https://registry.npmjs.org/validator/-/validator-13.11.0.tgz", + "integrity": "sha512-Ii+sehpSfZy+At5nPdnyMhx78fEoPDkR2XW/zimHEL3MyGJQOCQ7WeP20jPYRz7ZCpcKLB21NxuXHF3bxjStBQ==", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/wcwidth": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", + "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==", + "dependencies": { + "defaults": "^1.0.3" + } + }, + "node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" + }, + "node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/which-pm": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/which-pm/-/which-pm-2.0.0.tgz", + "integrity": "sha512-Lhs9Pmyph0p5n5Z3mVnN0yWcbQYUAD7rbQUiMsQxOJ3T57k7RFe35SUwWMf7dsbDZks1uOmw4AecB/JMDj3v/w==", + "dependencies": { + "load-yaml-file": "^0.2.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8.15" + } + }, + "node_modules/widest-line": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", + "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==", + "dependencies": { + "string-width": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" + }, + "node_modules/write-file-atomic": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", + "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", + "dependencies": { + "imurmurhash": "^0.1.4", + "is-typedarray": "^1.0.0", + "signal-exit": "^3.0.2", + "typedarray-to-buffer": "^3.1.5" + } + }, + "node_modules/write-yaml-file": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/write-yaml-file/-/write-yaml-file-4.2.0.tgz", + "integrity": "sha512-LwyucHy0uhWqbrOkh9cBluZBeNVxzHjDaE9mwepZG3n3ZlbM4v3ndrFw51zW/NXYFFqP+QWZ72ihtLWTh05e4Q==", + "dependencies": { + "js-yaml": "^4.0.0", + "write-file-atomic": "^3.0.3" + }, + "engines": { + "node": ">=10.13" + } + }, + "node_modules/write-yaml-file/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" + }, + "node_modules/write-yaml-file/node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/xdg-basedir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz", + "integrity": "sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==", + "engines": { + "node": ">=8" + } + }, + "node_modules/xml2js": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.5.0.tgz", + "integrity": "sha512-drPFnkQJik/O+uPKpqSgr22mpuFHqKdbS835iAQrUC73L2F5WkboIRd63ai/2Yg6I1jzifPFKH2NTK+cfglkIA==", + "dependencies": { + "sax": ">=0.6.0", + "xmlbuilder": "~11.0.0" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/xmlbuilder": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz", + "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "engines": { + "node": ">=0.4" + } + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "engines": { + "node": ">=10" + } + }, + "node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + }, + "node_modules/yaml": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "engines": { + "node": ">= 6" + } + }, + "node_modules/yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dependencies": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "engines": { + "node": ">=10" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/z-schema": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/z-schema/-/z-schema-5.0.5.tgz", + "integrity": "sha512-D7eujBWkLa3p2sIpJA0d1pr7es+a7m0vFAnZLlCEKq/Ij2k0MLi9Br2UPxoxdYystm5K1yeBGzub0FlYUEWj2Q==", + "dependencies": { + "lodash.get": "^4.4.2", + "lodash.isequal": "^4.5.0", + "validator": "^13.7.0" + }, + "bin": { + "z-schema": "bin/z-schema" + }, + "engines": { + "node": ">=8.0.0" + }, + "optionalDependencies": { + "commander": "^9.4.1" + } + } + } +} diff --git a/rush.json b/rush.json index f09e0c13..b8a4a341 100644 --- a/rush.json +++ b/rush.json @@ -1,10 +1,7 @@ { "$schema": "https://developer.microsoft.com/json-schemas/rush/v5/rush.schema.json", - "rushVersion": "5.87.0", - "pnpmVersion": "7.20.0", - "pnpmOptions": { - "useWorkspaces": true - }, + "rushVersion": "5.120.3", + "pnpmVersion": "8.15.2", "approvedPackagesPolicy": { "reviewCategories": ["production", "tool", "prototype", "documentation", "utilities"], "ignoredNpmScopes": ["@types"] @@ -21,73 +18,73 @@ "preRushBuild": [], "postRushBuild": [] }, - "variants": [], "ensureConsistentVersions": true, "hotfixChangeEnabled": false, "telemetryEnabled": false, "projects": [ { - "packageName": "@agritheory/aform", + "packageName": "@stonecrop/aform", "projectFolder": "aform", "reviewCategory": "prototype", // to avoid circular dependency problems - "decoupledLocalDependencies": ["@agritheory/atable"], - "shouldPublish": true + "decoupledLocalDependencies": ["@stonecrop/atable"], + "versionPolicyName": "stonecrop" }, { - "packageName": "@agritheory/atable", + "packageName": "@stonecrop/atable", "projectFolder": "atable", "reviewCategory": "prototype", // to avoid circular dependency problems - "decoupledLocalDependencies": ["@agritheory/aform"], - "shouldPublish": true + "decoupledLocalDependencies": ["@stonecrop/aform"], + "versionPolicyName": "stonecrop" }, { - "packageName": "@agritheory/desktop", + "packageName": "@stonecrop/desktop", "projectFolder": "desktop", "reviewCategory": "prototype", - "shouldPublish": true + "versionPolicyName": "stonecrop" }, { - "packageName": "@agritheory/code-editor", + "packageName": "@stonecrop/code-editor", "projectFolder": "code_editor", "reviewCategory": "prototype", - "shouldPublish": false + "versionPolicyName": "stonecrop" }, { - "packageName": "@agritheory/examples", + "packageName": "@stonecrop/examples", "projectFolder": "examples", "reviewCategory": "prototype", "shouldPublish": false }, { - "packageName": "@agritheory/node-editor", + "packageName": "@stonecrop/node-editor", "projectFolder": "node_editor", "reviewCategory": "prototype", - "shouldPublish": false + "versionPolicyName": "stonecrop" }, { - "packageName": "@agritheory/stonecrop", + "packageName": "@stonecrop/stonecrop", "projectFolder": "stonecrop", "reviewCategory": "prototype", - "shouldPublish": true + "versionPolicyName": "stonecrop" }, { - "packageName": "@agritheory/themes", + "packageName": "@stonecrop/themes", "projectFolder": "themes", - "reviewCategory": "prototype" + "reviewCategory": "prototype", + "versionPolicyName": "stonecrop" }, { - "packageName": "@agritheory/utilities", + "packageName": "@stonecrop/utilities", "projectFolder": "utilities", "reviewCategory": "utilities", - "shouldPublish": true + "versionPolicyName": "stonecrop" }, { - "packageName": "@agritheory/graphql-client", + "packageName": "@stonecrop/graphql-client", "projectFolder": "graphql_client", "reviewCategory": "utilities", - "shouldPublish": false + "versionPolicyName": "stonecrop" } ] } diff --git a/stonecrop/CHANGELOG.json b/stonecrop/CHANGELOG.json new file mode 100644 index 00000000..dc713e65 --- /dev/null +++ b/stonecrop/CHANGELOG.json @@ -0,0 +1,19 @@ +{ + "name": "@agritheory/stonecrop", + "entries": [ + { + "version": "0.1.3", + "tag": "@agritheory/stonecrop_v0.1.3", + "date": "Tue, 11 Apr 2023 16:39:13 GMT", + "comments": { + "patch": [ + { + "comment": "Publish package", + "author": "Tyler Matteson ", + "commit": "57de2e4e2c6832dfc7c4a9636d40478627902817" + } + ] + } + } + ] +} diff --git a/stonecrop/CHANGELOG.md b/stonecrop/CHANGELOG.md new file mode 100644 index 00000000..92035cde --- /dev/null +++ b/stonecrop/CHANGELOG.md @@ -0,0 +1,11 @@ +# Change Log - @agritheory/stonecrop + +This log was last generated on Tue, 11 Apr 2023 16:39:13 GMT and should not be manually modified. + +## 0.1.3 +Tue, 11 Apr 2023 16:39:13 GMT + +### Patches + +- Publish package + diff --git a/stonecrop/dist/stonecrop.js b/stonecrop/dist/stonecrop.js new file mode 100644 index 00000000..ccf96a8a --- /dev/null +++ b/stonecrop/dist/stonecrop.js @@ -0,0 +1,5319 @@ +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"; +function NotImplementedError(message) { + this.message = message || ""; +} +NotImplementedError.prototype = Object.create(Error.prototype, { + constructor: { value: NotImplementedError }, + name: { value: "NotImplemented" }, + stack: { + get: function() { + return new Error().stack; + } + } +}); +class Stonecrop { + /** + * @constructor + * @param {Registry} registry - The immutable registry + * @param {ReturnType} store - The mutable Pinia store + * @param {Schema} [schema] - (optional) The Stonecrop schema + * @param {ImmutableDoctype['workflow']} [workflow] - (optional) The Stonecrop workflow + * @param {ImmutableDoctype['actions']} [actions] - (optional) The Stonecrop actions + * @returns {Stonecrop} The Stonecrop instance + * @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. + * @example + * const registry = new Registry() + * const store = useDataStore() + * const stonecrop = new Stonecrop(registry, store, schema, workflow, actions) + */ + constructor(registry, store, schema, workflow, actions) { + this.name = "Stonecrop"; + if (Stonecrop._root) { + return Stonecrop._root; + } + Stonecrop._root = this; + this.registry = registry; + this.store = store; + this.schema = schema; + this.workflow = workflow; + this.actions = actions; + } + /** + * @method setup + * @param {DoctypeMeta} doctype - The doctype to setup + * @returns {void} + * @description Sets up the Stonecrop instance with the given doctype + * @example + * const doctype = await registry.getMeta('Task') + * stonecrop.setup(doctype) + */ + setup(doctype) { + this.getMeta(doctype); + this.getWorkflow(doctype); + this.getActions(doctype); + } + /** + * @method getMeta + * @param {DoctypeMeta} doctype - The doctype to get meta for + * @returns {DoctypeMeta} + * @see {@link DoctypeMeta} + * @throws NotImplementedError + * @description Gets the meta for the given doctype + * @example + * const doctype = await registry.getMeta('Task') + * const meta = stonecrop.getMeta(doctype) + */ + getMeta(doctype) { + return this.registry.getMeta ? this.registry.getMeta(doctype.doctype) : new NotImplementedError(doctype.doctype); + } + /** + * @method getWorkflow + * @param {DoctypeMeta} doctype - The doctype to get workflow for + * @returns {void} + * @description Gets the workflow for the given doctype + * @example + * const doctype = await registry.getMeta('Task') + * stonecrop.getWorkflow(doctype) + */ + getWorkflow(doctype) { + const doctypeRegistry = this.registry.registry[doctype.slug]; + this.workflow = doctypeRegistry.workflow; + } + /** + * @method getActions + * @param {DoctypeMeta} doctype - The doctype to get actions for + * @returns {void} + * @description Gets the actions for the given doctype + * @example + * const doctype = await registry.getMeta('Task') + * stonecrop.getActions(doctype) + */ + getActions(doctype) { + const doctypeRegistry = this.registry.registry[doctype.slug]; + this.actions = doctypeRegistry.actions; + } + /** + * @method getRecords + * @param {DoctypeMeta} doctype - The doctype to get records for + * @param {RequestInit} [filters] - The filters to apply to the records + * @returns {Promise} + * @description Gets the records for the given doctype + * @example + * const doctype = await registry.getMeta('Task') + * await stonecrop.getRecords(doctype) + * @example + * const doctype = await registry.getMeta('Task') + * const filters = JSON.stringify({ status: 'Open' }) + * await stonecrop.getRecords(doctype, { body: filters }) + */ + async getRecords(doctype, filters) { + this.store.$patch({ records: [] }); + const records = await fetch(`/${doctype.slug}`, filters); + const data = await records.json(); + this.store.$patch({ records: data }); + } + /** + * @method getRecord + * @param {DoctypeMeta} doctype - The doctype to get record for + * @param {string} id - The id of the record to get + * @returns {Promise} + * @description Gets the record for the given doctype and id + * @example + * const doctype = await registry.getMeta('Task') + * await stonecrop.getRecord(doctype, 'TASK-00001') + */ + async getRecord(doctype, id) { + this.store.$patch({ record: {} }); + const record = await fetch(`/${doctype.slug}/${id}`); + const data = await record.json(); + this.store.$patch({ record: data }); + } + /** + * @method runAction + * @param {DoctypeMeta} doctype - The doctype to run action for + * @param {string} action - The action to run + * @param {string[]} [id] - The id(s) of the record(s) to run action on + * @returns {void} + * @description Runs the action for the given doctype and id + * @example + * const doctype = await registry.getMeta('Task') + * stonecrop.runAction(doctype, 'CREATE') + * @example + * const doctype = await registry.getMeta('Task') + * stonecrop.runAction(doctype, 'UPDATE', ['TASK-00001']) + * @example + * const doctype = await registry.getMeta('Task') + * stonecrop.runAction(doctype, 'DELETE', ['TASK-00001']) + * @example + * const doctype = await registry.getMeta('Task') + * stonecrop.runAction(doctype, 'TRANSITION', ['TASK-00001', 'TASK-00002']) + */ + runAction(doctype, action, id) { + const doctypeRegistry = this.registry.registry[doctype.slug]; + const actions = doctypeRegistry.actions.get(action); + const { initialState } = this.workflow; + this.workflow.transition(initialState, { type: action }); + if (actions.length > 0) { + actions.forEach((action2) => { + const actionFn = new Function(action2); + actionFn(id); + }); + } + } +} +var isVue2 = false; +function set(target, key, val) { + if (Array.isArray(target)) { + target.length = Math.max(target.length, key); + target.splice(key, 1, val); + return val; + } + target[key] = val; + return val; +} +function del(target, key) { + if (Array.isArray(target)) { + target.splice(key, 1); + return; + } + delete target[key]; +} +function getDevtoolsGlobalHook() { + return getTarget().__VUE_DEVTOOLS_GLOBAL_HOOK__; +} +function getTarget() { + return typeof navigator !== "undefined" && typeof window !== "undefined" ? window : typeof global !== "undefined" ? global : {}; +} +const isProxyAvailable = typeof Proxy === "function"; +const HOOK_SETUP = "devtools-plugin:setup"; +const HOOK_PLUGIN_SETTINGS_SET = "plugin:settings:set"; +let supported; +let perf; +function isPerformanceSupported() { + var _a; + if (supported !== void 0) { + return supported; + } + if (typeof window !== "undefined" && window.performance) { + supported = true; + perf = window.performance; + } else if (typeof global !== "undefined" && ((_a = global.perf_hooks) === null || _a === void 0 ? void 0 : _a.performance)) { + supported = true; + perf = global.perf_hooks.performance; + } else { + supported = false; + } + return supported; +} +function now$1() { + return isPerformanceSupported() ? perf.now() : Date.now(); +} +class ApiProxy { + constructor(plugin, hook) { + this.target = null; + this.targetQueue = []; + this.onQueue = []; + this.plugin = plugin; + this.hook = hook; + const defaultSettings = {}; + if (plugin.settings) { + for (const id in plugin.settings) { + const item = plugin.settings[id]; + defaultSettings[id] = item.defaultValue; + } + } + const localSettingsSaveId = `__vue-devtools-plugin-settings__${plugin.id}`; + let currentSettings = Object.assign({}, defaultSettings); + try { + const raw = localStorage.getItem(localSettingsSaveId); + const data = JSON.parse(raw); + Object.assign(currentSettings, data); + } catch (e) { + } + this.fallbacks = { + getSettings() { + return currentSettings; + }, + setSettings(value) { + try { + localStorage.setItem(localSettingsSaveId, JSON.stringify(value)); + } catch (e) { + } + currentSettings = value; + }, + now() { + return now$1(); + } + }; + if (hook) { + hook.on(HOOK_PLUGIN_SETTINGS_SET, (pluginId, value) => { + if (pluginId === this.plugin.id) { + this.fallbacks.setSettings(value); + } + }); + } + this.proxiedOn = new Proxy({}, { + get: (_target, prop) => { + if (this.target) { + return this.target.on[prop]; + } else { + return (...args) => { + this.onQueue.push({ + method: prop, + args + }); + }; + } + } + }); + this.proxiedTarget = new Proxy({}, { + get: (_target, prop) => { + if (this.target) { + return this.target[prop]; + } else if (prop === "on") { + return this.proxiedOn; + } else if (Object.keys(this.fallbacks).includes(prop)) { + return (...args) => { + this.targetQueue.push({ + method: prop, + args, + resolve: () => { + } + }); + return this.fallbacks[prop](...args); + }; + } else { + return (...args) => { + return new Promise((resolve) => { + this.targetQueue.push({ + method: prop, + args, + resolve + }); + }); + }; + } + } + }); + } + async setRealTarget(target) { + this.target = target; + for (const item of this.onQueue) { + this.target.on[item.method](...item.args); + } + for (const item of this.targetQueue) { + item.resolve(await this.target[item.method](...item.args)); + } + } +} +function setupDevtoolsPlugin(pluginDescriptor, setupFn) { + const descriptor = pluginDescriptor; + const target = getTarget(); + const hook = getDevtoolsGlobalHook(); + const enableProxy = isProxyAvailable && descriptor.enableEarlyProxy; + if (hook && (target.__VUE_DEVTOOLS_PLUGIN_API_AVAILABLE__ || !enableProxy)) { + hook.emit(HOOK_SETUP, pluginDescriptor, setupFn); + } else { + const proxy = enableProxy ? new ApiProxy(descriptor, hook) : null; + const list = target.__VUE_DEVTOOLS_PLUGINS__ = target.__VUE_DEVTOOLS_PLUGINS__ || []; + list.push({ + pluginDescriptor: descriptor, + setupFn, + proxy + }); + if (proxy) + setupFn(proxy.proxiedTarget); + } +} +/*! + * pinia v2.1.7 + * (c) 2023 Eduardo San Martin Morote + * @license MIT + */ +let activePinia; +const setActivePinia = (pinia2) => activePinia = pinia2; +const piniaSymbol = process.env.NODE_ENV !== "production" ? Symbol("pinia") : ( + /* istanbul ignore next */ + Symbol() +); +function isPlainObject(o) { + return o && typeof o === "object" && Object.prototype.toString.call(o) === "[object Object]" && typeof o.toJSON !== "function"; +} +var MutationType; +(function(MutationType2) { + MutationType2["direct"] = "direct"; + MutationType2["patchObject"] = "patch object"; + MutationType2["patchFunction"] = "patch function"; +})(MutationType || (MutationType = {})); +const IS_CLIENT = typeof window !== "undefined"; +const USE_DEVTOOLS = (process.env.NODE_ENV !== "production" || false) && !(process.env.NODE_ENV === "test") && IS_CLIENT; +const _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 })(); +function bom(blob, { autoBom = false } = {}) { + if (autoBom && /^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(blob.type)) { + return new Blob([String.fromCharCode(65279), blob], { type: blob.type }); + } + return blob; +} +function download(url, name, opts) { + const xhr = new XMLHttpRequest(); + xhr.open("GET", url); + xhr.responseType = "blob"; + xhr.onload = function() { + saveAs(xhr.response, name, opts); + }; + xhr.onerror = function() { + console.error("could not download file"); + }; + xhr.send(); +} +function corsEnabled(url) { + const xhr = new XMLHttpRequest(); + xhr.open("HEAD", url, false); + try { + xhr.send(); + } catch (e) { + } + return xhr.status >= 200 && xhr.status <= 299; +} +function click(node) { + try { + node.dispatchEvent(new MouseEvent("click")); + } catch (e) { + const evt = document.createEvent("MouseEvents"); + evt.initMouseEvent("click", true, true, window, 0, 0, 0, 80, 20, false, false, false, false, 0, null); + node.dispatchEvent(evt); + } +} +const _navigator = typeof navigator === "object" ? navigator : { userAgent: "" }; +const isMacOSWebView = /* @__PURE__ */ (() => /Macintosh/.test(_navigator.userAgent) && /AppleWebKit/.test(_navigator.userAgent) && !/Safari/.test(_navigator.userAgent))(); +const saveAs = !IS_CLIENT ? () => { +} : ( + // Use download attribute first if possible (#193 Lumia mobile) unless this is a macOS WebView or mini program + typeof HTMLAnchorElement !== "undefined" && "download" in HTMLAnchorElement.prototype && !isMacOSWebView ? downloadSaveAs : ( + // Use msSaveOrOpenBlob as a second approach + "msSaveOrOpenBlob" in _navigator ? msSaveAs : ( + // Fallback to using FileReader and a popup + fileSaverSaveAs + ) + ) +); +function downloadSaveAs(blob, name = "download", opts) { + const a = document.createElement("a"); + a.download = name; + a.rel = "noopener"; + if (typeof blob === "string") { + a.href = blob; + if (a.origin !== location.origin) { + if (corsEnabled(a.href)) { + download(blob, name, opts); + } else { + a.target = "_blank"; + click(a); + } + } else { + click(a); + } + } else { + a.href = URL.createObjectURL(blob); + setTimeout(function() { + URL.revokeObjectURL(a.href); + }, 4e4); + setTimeout(function() { + click(a); + }, 0); + } +} +function msSaveAs(blob, name = "download", opts) { + if (typeof blob === "string") { + if (corsEnabled(blob)) { + download(blob, name, opts); + } else { + const a = document.createElement("a"); + a.href = blob; + a.target = "_blank"; + setTimeout(function() { + click(a); + }); + } + } else { + navigator.msSaveOrOpenBlob(bom(blob, opts), name); + } +} +function fileSaverSaveAs(blob, name, opts, popup) { + popup = popup || open("", "_blank"); + if (popup) { + popup.document.title = popup.document.body.innerText = "downloading..."; + } + if (typeof blob === "string") + return download(blob, name, opts); + const force = blob.type === "application/octet-stream"; + const isSafari = /constructor/i.test(String(_global.HTMLElement)) || "safari" in _global; + const isChromeIOS = /CriOS\/[\d]+/.test(navigator.userAgent); + if ((isChromeIOS || force && isSafari || isMacOSWebView) && typeof FileReader !== "undefined") { + const reader = new FileReader(); + reader.onloadend = function() { + let url = reader.result; + if (typeof url !== "string") { + popup = null; + throw new Error("Wrong reader.result type"); + } + url = isChromeIOS ? url : url.replace(/^data:[^;]*;/, "data:attachment/file;"); + if (popup) { + popup.location.href = url; + } else { + location.assign(url); + } + popup = null; + }; + reader.readAsDataURL(blob); + } else { + const url = URL.createObjectURL(blob); + if (popup) + popup.location.assign(url); + else + location.href = url; + popup = null; + setTimeout(function() { + URL.revokeObjectURL(url); + }, 4e4); + } +} +function toastMessage(message, type2) { + const piniaMessage = "🍍 " + message; + if (typeof __VUE_DEVTOOLS_TOAST__ === "function") { + __VUE_DEVTOOLS_TOAST__(piniaMessage, type2); + } else if (type2 === "error") { + console.error(piniaMessage); + } else if (type2 === "warn") { + console.warn(piniaMessage); + } else { + console.log(piniaMessage); + } +} +function isPinia(o) { + return "_a" in o && "install" in o; +} +function checkClipboardAccess() { + if (!("clipboard" in navigator)) { + toastMessage(`Your browser doesn't support the Clipboard API`, "error"); + return true; + } +} +function checkNotFocusedError(error) { + if (error instanceof Error && error.message.toLowerCase().includes("document is not focused")) { + toastMessage('You need to activate the "Emulate a focused page" setting in the "Rendering" panel of devtools.', "warn"); + return true; + } + return false; +} +async function actionGlobalCopyState(pinia2) { + if (checkClipboardAccess()) + return; + try { + await navigator.clipboard.writeText(JSON.stringify(pinia2.state.value)); + toastMessage("Global state copied to clipboard."); + } catch (error) { + if (checkNotFocusedError(error)) + return; + toastMessage(`Failed to serialize the state. Check the console for more details.`, "error"); + console.error(error); + } +} +async function actionGlobalPasteState(pinia2) { + if (checkClipboardAccess()) + return; + try { + loadStoresState(pinia2, JSON.parse(await navigator.clipboard.readText())); + toastMessage("Global state pasted from clipboard."); + } catch (error) { + if (checkNotFocusedError(error)) + return; + toastMessage(`Failed to deserialize the state from clipboard. Check the console for more details.`, "error"); + console.error(error); + } +} +async function actionGlobalSaveState(pinia2) { + try { + saveAs(new Blob([JSON.stringify(pinia2.state.value)], { + type: "text/plain;charset=utf-8" + }), "pinia-state.json"); + } catch (error) { + toastMessage(`Failed to export the state as JSON. Check the console for more details.`, "error"); + console.error(error); + } +} +let fileInput; +function getFileOpener() { + if (!fileInput) { + fileInput = document.createElement("input"); + fileInput.type = "file"; + fileInput.accept = ".json"; + } + function openFile() { + return new Promise((resolve, reject) => { + fileInput.onchange = async () => { + const files = fileInput.files; + if (!files) + return resolve(null); + const file = files.item(0); + if (!file) + return resolve(null); + return resolve({ text: await file.text(), file }); + }; + fileInput.oncancel = () => resolve(null); + fileInput.onerror = reject; + fileInput.click(); + }); + } + return openFile; +} +async function actionGlobalOpenStateFile(pinia2) { + try { + const open2 = getFileOpener(); + const result = await open2(); + if (!result) + return; + const { text, file } = result; + loadStoresState(pinia2, JSON.parse(text)); + toastMessage(`Global state imported from "${file.name}".`); + } catch (error) { + toastMessage(`Failed to import the state from JSON. Check the console for more details.`, "error"); + console.error(error); + } +} +function loadStoresState(pinia2, state) { + for (const key in state) { + const storeState = pinia2.state.value[key]; + if (storeState) { + Object.assign(storeState, state[key]); + } else { + pinia2.state.value[key] = state[key]; + } + } +} +function formatDisplay$1(display) { + return { + _custom: { + display + } + }; +} +const PINIA_ROOT_LABEL = "🍍 Pinia (root)"; +const PINIA_ROOT_ID = "_root"; +function formatStoreForInspectorTree(store) { + return isPinia(store) ? { + id: PINIA_ROOT_ID, + label: PINIA_ROOT_LABEL + } : { + id: store.$id, + label: store.$id + }; +} +function formatStoreForInspectorState(store) { + if (isPinia(store)) { + const storeNames = Array.from(store._s.keys()); + const storeMap = store._s; + const state2 = { + state: storeNames.map((storeId) => ({ + editable: true, + key: storeId, + value: store.state.value[storeId] + })), + getters: storeNames.filter((id) => storeMap.get(id)._getters).map((id) => { + const store2 = storeMap.get(id); + return { + editable: false, + key: id, + value: store2._getters.reduce((getters, key) => { + getters[key] = store2[key]; + return getters; + }, {}) + }; + }) + }; + return state2; + } + const state = { + state: Object.keys(store.$state).map((key) => ({ + editable: true, + key, + value: store.$state[key] + })) + }; + if (store._getters && store._getters.length) { + state.getters = store._getters.map((getterName) => ({ + editable: false, + key: getterName, + value: store[getterName] + })); + } + if (store._customProperties.size) { + state.customProperties = Array.from(store._customProperties).map((key) => ({ + editable: true, + key, + value: store[key] + })); + } + return state; +} +function formatEventData(events) { + if (!events) + return {}; + if (Array.isArray(events)) { + return events.reduce((data, event) => { + data.keys.push(event.key); + data.operations.push(event.type); + data.oldValue[event.key] = event.oldValue; + data.newValue[event.key] = event.newValue; + return data; + }, { + oldValue: {}, + keys: [], + operations: [], + newValue: {} + }); + } else { + return { + operation: formatDisplay$1(events.type), + key: formatDisplay$1(events.key), + oldValue: events.oldValue, + newValue: events.newValue + }; + } +} +function formatMutationType(type2) { + switch (type2) { + case MutationType.direct: + return "mutation"; + case MutationType.patchFunction: + return "$patch"; + case MutationType.patchObject: + return "$patch"; + default: + return "unknown"; + } +} +let isTimelineActive = true; +const componentStateTypes = []; +const MUTATIONS_LAYER_ID = "pinia:mutations"; +const INSPECTOR_ID = "pinia"; +const { assign: assign$1 } = Object; +const getStoreType = (id) => "🍍 " + id; +function registerPiniaDevtools(app, pinia2) { + setupDevtoolsPlugin({ + id: "dev.esm.pinia", + label: "Pinia 🍍", + logo: "https://pinia.vuejs.org/logo.svg", + packageName: "pinia", + homepage: "https://pinia.vuejs.org", + componentStateTypes, + app + }, (api) => { + if (typeof api.now !== "function") { + 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."); + } + api.addTimelineLayer({ + id: MUTATIONS_LAYER_ID, + label: `Pinia 🍍`, + color: 15064968 + }); + api.addInspector({ + id: INSPECTOR_ID, + label: "Pinia 🍍", + icon: "storage", + treeFilterPlaceholder: "Search stores", + actions: [ + { + icon: "content_copy", + action: () => { + actionGlobalCopyState(pinia2); + }, + tooltip: "Serialize and copy the state" + }, + { + icon: "content_paste", + action: async () => { + await actionGlobalPasteState(pinia2); + api.sendInspectorTree(INSPECTOR_ID); + api.sendInspectorState(INSPECTOR_ID); + }, + tooltip: "Replace the state with the content of your clipboard" + }, + { + icon: "save", + action: () => { + actionGlobalSaveState(pinia2); + }, + tooltip: "Save the state as a JSON file" + }, + { + icon: "folder_open", + action: async () => { + await actionGlobalOpenStateFile(pinia2); + api.sendInspectorTree(INSPECTOR_ID); + api.sendInspectorState(INSPECTOR_ID); + }, + tooltip: "Import the state from a JSON file" + } + ], + nodeActions: [ + { + icon: "restore", + tooltip: 'Reset the state (with "$reset")', + action: (nodeId) => { + const store = pinia2._s.get(nodeId); + if (!store) { + toastMessage(`Cannot reset "${nodeId}" store because it wasn't found.`, "warn"); + } else if (typeof store.$reset !== "function") { + toastMessage(`Cannot reset "${nodeId}" store because it doesn't have a "$reset" method implemented.`, "warn"); + } else { + store.$reset(); + toastMessage(`Store "${nodeId}" reset.`); + } + } + } + ] + }); + api.on.inspectComponent((payload, ctx) => { + const proxy = payload.componentInstance && payload.componentInstance.proxy; + if (proxy && proxy._pStores) { + const piniaStores = payload.componentInstance.proxy._pStores; + Object.values(piniaStores).forEach((store) => { + payload.instanceData.state.push({ + type: getStoreType(store.$id), + key: "state", + editable: true, + value: store._isOptionsAPI ? { + _custom: { + value: toRaw(store.$state), + actions: [ + { + icon: "restore", + tooltip: "Reset the state of this store", + action: () => store.$reset() + } + ] + } + } : ( + // NOTE: workaround to unwrap transferred refs + Object.keys(store.$state).reduce((state, key) => { + state[key] = store.$state[key]; + return state; + }, {}) + ) + }); + if (store._getters && store._getters.length) { + payload.instanceData.state.push({ + type: getStoreType(store.$id), + key: "getters", + editable: false, + value: store._getters.reduce((getters, key) => { + try { + getters[key] = store[key]; + } catch (error) { + getters[key] = error; + } + return getters; + }, {}) + }); + } + }); + } + }); + api.on.getInspectorTree((payload) => { + if (payload.app === app && payload.inspectorId === INSPECTOR_ID) { + let stores = [pinia2]; + stores = stores.concat(Array.from(pinia2._s.values())); + 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); + } + }); + api.on.getInspectorState((payload) => { + if (payload.app === app && payload.inspectorId === INSPECTOR_ID) { + const inspectedStore = payload.nodeId === PINIA_ROOT_ID ? pinia2 : pinia2._s.get(payload.nodeId); + if (!inspectedStore) { + return; + } + if (inspectedStore) { + payload.state = formatStoreForInspectorState(inspectedStore); + } + } + }); + api.on.editInspectorState((payload, ctx) => { + if (payload.app === app && payload.inspectorId === INSPECTOR_ID) { + const inspectedStore = payload.nodeId === PINIA_ROOT_ID ? pinia2 : pinia2._s.get(payload.nodeId); + if (!inspectedStore) { + return toastMessage(`store "${payload.nodeId}" not found`, "error"); + } + const { path } = payload; + if (!isPinia(inspectedStore)) { + if (path.length !== 1 || !inspectedStore._customProperties.has(path[0]) || path[0] in inspectedStore.$state) { + path.unshift("$state"); + } + } else { + path.unshift("state"); + } + isTimelineActive = false; + payload.set(inspectedStore, path, payload.state.value); + isTimelineActive = true; + } + }); + api.on.editComponentState((payload) => { + if (payload.type.startsWith("🍍")) { + const storeId = payload.type.replace(/^🍍\s*/, ""); + const store = pinia2._s.get(storeId); + if (!store) { + return toastMessage(`store "${storeId}" not found`, "error"); + } + const { path } = payload; + if (path[0] !== "state") { + return toastMessage(`Invalid path for store "${storeId}": +${path} +Only state can be modified.`); + } + path[0] = "$state"; + isTimelineActive = false; + payload.set(store, path, payload.state.value); + isTimelineActive = true; + } + }); + }); +} +function addStoreToDevtools(app, store) { + if (!componentStateTypes.includes(getStoreType(store.$id))) { + componentStateTypes.push(getStoreType(store.$id)); + } + setupDevtoolsPlugin({ + id: "dev.esm.pinia", + label: "Pinia 🍍", + logo: "https://pinia.vuejs.org/logo.svg", + packageName: "pinia", + homepage: "https://pinia.vuejs.org", + componentStateTypes, + app, + settings: { + logStoreChanges: { + label: "Notify about new/deleted stores", + type: "boolean", + defaultValue: true + } + // useEmojis: { + // label: 'Use emojis in messages ⚡️', + // type: 'boolean', + // defaultValue: true, + // }, + } + }, (api) => { + const now2 = typeof api.now === "function" ? api.now.bind(api) : Date.now; + store.$onAction(({ after, onError, name, args }) => { + const groupId = runningActionId++; + api.addTimelineEvent({ + layerId: MUTATIONS_LAYER_ID, + event: { + time: now2(), + title: "🛫 " + name, + subtitle: "start", + data: { + store: formatDisplay$1(store.$id), + action: formatDisplay$1(name), + args + }, + groupId + } + }); + after((result) => { + activeAction = void 0; + api.addTimelineEvent({ + layerId: MUTATIONS_LAYER_ID, + event: { + time: now2(), + title: "🛬 " + name, + subtitle: "end", + data: { + store: formatDisplay$1(store.$id), + action: formatDisplay$1(name), + args, + result + }, + groupId + } + }); + }); + onError((error) => { + activeAction = void 0; + api.addTimelineEvent({ + layerId: MUTATIONS_LAYER_ID, + event: { + time: now2(), + logType: "error", + title: "💥 " + name, + subtitle: "end", + data: { + store: formatDisplay$1(store.$id), + action: formatDisplay$1(name), + args, + error + }, + groupId + } + }); + }); + }, true); + store._customProperties.forEach((name) => { + watch(() => unref(store[name]), (newValue, oldValue) => { + api.notifyComponentUpdate(); + api.sendInspectorState(INSPECTOR_ID); + if (isTimelineActive) { + api.addTimelineEvent({ + layerId: MUTATIONS_LAYER_ID, + event: { + time: now2(), + title: "Change", + subtitle: name, + data: { + newValue, + oldValue + }, + groupId: activeAction + } + }); + } + }, { deep: true }); + }); + store.$subscribe(({ events, type: type2 }, state) => { + api.notifyComponentUpdate(); + api.sendInspectorState(INSPECTOR_ID); + if (!isTimelineActive) + return; + const eventData = { + time: now2(), + title: formatMutationType(type2), + data: assign$1({ store: formatDisplay$1(store.$id) }, formatEventData(events)), + groupId: activeAction + }; + if (type2 === MutationType.patchFunction) { + eventData.subtitle = "⤵️"; + } else if (type2 === MutationType.patchObject) { + eventData.subtitle = "🧩"; + } else if (events && !Array.isArray(events)) { + eventData.subtitle = events.type; + } + if (events) { + eventData.data["rawEvent(s)"] = { + _custom: { + display: "DebuggerEvent", + type: "object", + tooltip: "raw DebuggerEvent[]", + value: events + } + }; + } + api.addTimelineEvent({ + layerId: MUTATIONS_LAYER_ID, + event: eventData + }); + }, { detached: true, flush: "sync" }); + const hotUpdate = store._hotUpdate; + store._hotUpdate = markRaw((newStore) => { + hotUpdate(newStore); + api.addTimelineEvent({ + layerId: MUTATIONS_LAYER_ID, + event: { + time: now2(), + title: "🔥 " + store.$id, + subtitle: "HMR update", + data: { + store: formatDisplay$1(store.$id), + info: formatDisplay$1(`HMR update`) + } + } + }); + api.notifyComponentUpdate(); + api.sendInspectorTree(INSPECTOR_ID); + api.sendInspectorState(INSPECTOR_ID); + }); + const { $dispose } = store; + store.$dispose = () => { + $dispose(); + api.notifyComponentUpdate(); + api.sendInspectorTree(INSPECTOR_ID); + api.sendInspectorState(INSPECTOR_ID); + api.getSettings().logStoreChanges && toastMessage(`Disposed "${store.$id}" store 🗑`); + }; + api.notifyComponentUpdate(); + api.sendInspectorTree(INSPECTOR_ID); + api.sendInspectorState(INSPECTOR_ID); + api.getSettings().logStoreChanges && toastMessage(`"${store.$id}" store installed 🆕`); + }); +} +let runningActionId = 0; +let activeAction; +function patchActionForGrouping(store, actionNames, wrapWithProxy) { + const actions = actionNames.reduce((storeActions, actionName) => { + storeActions[actionName] = toRaw(store)[actionName]; + return storeActions; + }, {}); + for (const actionName in actions) { + store[actionName] = function() { + const _actionId = runningActionId; + const trackedStore = wrapWithProxy ? new Proxy(store, { + get(...args) { + activeAction = _actionId; + return Reflect.get(...args); + }, + set(...args) { + activeAction = _actionId; + return Reflect.set(...args); + } + }) : store; + activeAction = _actionId; + const retValue = actions[actionName].apply(trackedStore, arguments); + activeAction = void 0; + return retValue; + }; + } +} +function devtoolsPlugin({ app, store, options }) { + if (store.$id.startsWith("__hot:")) { + return; + } + store._isOptionsAPI = !!options.state; + patchActionForGrouping(store, Object.keys(options.actions), store._isOptionsAPI); + const originalHotUpdate = store._hotUpdate; + toRaw(store)._hotUpdate = function(newStore) { + originalHotUpdate.apply(this, arguments); + patchActionForGrouping(store, Object.keys(newStore._hmrPayload.actions), !!store._isOptionsAPI); + }; + addStoreToDevtools( + app, + // FIXME: is there a way to allow the assignment from Store to StoreGeneric? + store + ); +} +function createPinia() { + const scope = effectScope(true); + const state = scope.run(() => ref({})); + let _p = []; + let toBeInstalled = []; + const pinia2 = markRaw({ + install(app) { + setActivePinia(pinia2); + { + pinia2._a = app; + app.provide(piniaSymbol, pinia2); + app.config.globalProperties.$pinia = pinia2; + if (USE_DEVTOOLS) { + registerPiniaDevtools(app, pinia2); + } + toBeInstalled.forEach((plugin) => _p.push(plugin)); + toBeInstalled = []; + } + }, + use(plugin) { + if (!this._a && !isVue2) { + toBeInstalled.push(plugin); + } else { + _p.push(plugin); + } + return this; + }, + _p, + // it's actually undefined here + // @ts-expect-error + _a: null, + _e: scope, + _s: /* @__PURE__ */ new Map(), + state + }); + if (USE_DEVTOOLS && typeof Proxy !== "undefined") { + pinia2.use(devtoolsPlugin); + } + return pinia2; +} +function patchObject(newState, oldState) { + for (const key in oldState) { + const subPatch = oldState[key]; + if (!(key in newState)) { + continue; + } + const targetValue = newState[key]; + if (isPlainObject(targetValue) && isPlainObject(subPatch) && !isRef(subPatch) && !isReactive(subPatch)) { + newState[key] = patchObject(targetValue, subPatch); + } else { + { + newState[key] = subPatch; + } + } + } + return newState; +} +const noop$1 = () => { +}; +function addSubscription(subscriptions, callback, detached, onCleanup = noop$1) { + subscriptions.push(callback); + const removeSubscription = () => { + const idx = subscriptions.indexOf(callback); + if (idx > -1) { + subscriptions.splice(idx, 1); + onCleanup(); + } + }; + if (!detached && getCurrentScope()) { + onScopeDispose(removeSubscription); + } + return removeSubscription; +} +function triggerSubscriptions(subscriptions, ...args) { + subscriptions.slice().forEach((callback) => { + callback(...args); + }); +} +const fallbackRunWithContext = (fn) => fn(); +function mergeReactiveObjects(target, patchToApply) { + if (target instanceof Map && patchToApply instanceof Map) { + patchToApply.forEach((value, key) => target.set(key, value)); + } + if (target instanceof Set && patchToApply instanceof Set) { + patchToApply.forEach(target.add, target); + } + for (const key in patchToApply) { + if (!patchToApply.hasOwnProperty(key)) + continue; + const subPatch = patchToApply[key]; + const targetValue = target[key]; + if (isPlainObject(targetValue) && isPlainObject(subPatch) && target.hasOwnProperty(key) && !isRef(subPatch) && !isReactive(subPatch)) { + target[key] = mergeReactiveObjects(targetValue, subPatch); + } else { + target[key] = subPatch; + } + } + return target; +} +const skipHydrateSymbol = process.env.NODE_ENV !== "production" ? Symbol("pinia:skipHydration") : ( + /* istanbul ignore next */ + Symbol() +); +function shouldHydrate(obj) { + return !isPlainObject(obj) || !obj.hasOwnProperty(skipHydrateSymbol); +} +const { assign: assign$2 } = Object; +function isComputed(o) { + return !!(isRef(o) && o.effect); +} +function createOptionsStore(id, options, pinia2, hot) { + const { state, actions, getters } = options; + const initialState = pinia2.state.value[id]; + let store; + function setup() { + if (!initialState && (!(process.env.NODE_ENV !== "production") || !hot)) { + { + pinia2.state.value[id] = state ? state() : {}; + } + } + const localState = process.env.NODE_ENV !== "production" && hot ? ( + // use ref() to unwrap refs inside state TODO: check if this is still necessary + toRefs(ref(state ? state() : {}).value) + ) : toRefs(pinia2.state.value[id]); + return assign$2(localState, actions, Object.keys(getters || {}).reduce((computedGetters, name) => { + if (process.env.NODE_ENV !== "production" && name in localState) { + console.warn(`[🍍]: A getter cannot have the same name as another state property. Rename one of them. Found with "${name}" in store "${id}".`); + } + computedGetters[name] = markRaw(computed(() => { + setActivePinia(pinia2); + const store2 = pinia2._s.get(id); + return getters[name].call(store2, store2); + })); + return computedGetters; + }, {})); + } + store = createSetupStore(id, setup, options, pinia2, hot, true); + return store; +} +function createSetupStore($id, setup, options = {}, pinia2, hot, isOptionsStore) { + let scope; + const optionsForPlugin = assign$2({ actions: {} }, options); + if (process.env.NODE_ENV !== "production" && !pinia2._e.active) { + throw new Error("Pinia destroyed"); + } + const $subscribeOptions = { + deep: true + // flush: 'post', + }; + if (process.env.NODE_ENV !== "production" && !isVue2) { + $subscribeOptions.onTrigger = (event) => { + if (isListening) { + debuggerEvents = event; + } else if (isListening == false && !store._hotUpdating) { + if (Array.isArray(debuggerEvents)) { + debuggerEvents.push(event); + } else { + console.error("🍍 debuggerEvents should be an array. This is most likely an internal Pinia bug."); + } + } + }; + } + let isListening; + let isSyncListening; + let subscriptions = []; + let actionSubscriptions = []; + let debuggerEvents; + const initialState = pinia2.state.value[$id]; + if (!isOptionsStore && !initialState && (!(process.env.NODE_ENV !== "production") || !hot)) { + { + pinia2.state.value[$id] = {}; + } + } + const hotState = ref({}); + let activeListener; + function $patch(partialStateOrMutator) { + let subscriptionMutation; + isListening = isSyncListening = false; + if (process.env.NODE_ENV !== "production") { + debuggerEvents = []; + } + if (typeof partialStateOrMutator === "function") { + partialStateOrMutator(pinia2.state.value[$id]); + subscriptionMutation = { + type: MutationType.patchFunction, + storeId: $id, + events: debuggerEvents + }; + } else { + mergeReactiveObjects(pinia2.state.value[$id], partialStateOrMutator); + subscriptionMutation = { + type: MutationType.patchObject, + payload: partialStateOrMutator, + storeId: $id, + events: debuggerEvents + }; + } + const myListenerId = activeListener = Symbol(); + nextTick().then(() => { + if (activeListener === myListenerId) { + isListening = true; + } + }); + isSyncListening = true; + triggerSubscriptions(subscriptions, subscriptionMutation, pinia2.state.value[$id]); + } + const $reset = isOptionsStore ? function $reset2() { + const { state } = options; + const newState = state ? state() : {}; + this.$patch(($state) => { + assign$2($state, newState); + }); + } : ( + /* istanbul ignore next */ + process.env.NODE_ENV !== "production" ? () => { + throw new Error(`🍍: Store "${$id}" is built using the setup syntax and does not implement $reset().`); + } : noop$1 + ); + function $dispose() { + scope.stop(); + subscriptions = []; + actionSubscriptions = []; + pinia2._s.delete($id); + } + function wrapAction(name, action) { + return function() { + setActivePinia(pinia2); + const args = Array.from(arguments); + const afterCallbackList = []; + const onErrorCallbackList = []; + function after(callback) { + afterCallbackList.push(callback); + } + function onError(callback) { + onErrorCallbackList.push(callback); + } + triggerSubscriptions(actionSubscriptions, { + args, + name, + store, + after, + onError + }); + let ret; + try { + ret = action.apply(this && this.$id === $id ? this : store, args); + } catch (error) { + triggerSubscriptions(onErrorCallbackList, error); + throw error; + } + if (ret instanceof Promise) { + return ret.then((value) => { + triggerSubscriptions(afterCallbackList, value); + return value; + }).catch((error) => { + triggerSubscriptions(onErrorCallbackList, error); + return Promise.reject(error); + }); + } + triggerSubscriptions(afterCallbackList, ret); + return ret; + }; + } + const _hmrPayload = /* @__PURE__ */ markRaw({ + actions: {}, + getters: {}, + state: [], + hotState + }); + const partialStore = { + _p: pinia2, + // _s: scope, + $id, + $onAction: addSubscription.bind(null, actionSubscriptions), + $patch, + $reset, + $subscribe(callback, options2 = {}) { + const removeSubscription = addSubscription(subscriptions, callback, options2.detached, () => stopWatcher()); + const stopWatcher = scope.run(() => watch(() => pinia2.state.value[$id], (state) => { + if (options2.flush === "sync" ? isSyncListening : isListening) { + callback({ + storeId: $id, + type: MutationType.direct, + events: debuggerEvents + }, state); + } + }, assign$2({}, $subscribeOptions, options2))); + return removeSubscription; + }, + $dispose + }; + const store = reactive(process.env.NODE_ENV !== "production" || USE_DEVTOOLS ? assign$2( + { + _hmrPayload, + _customProperties: markRaw(/* @__PURE__ */ new Set()) + // devtools custom properties + }, + partialStore + // must be added later + // setupStore + ) : partialStore); + pinia2._s.set($id, store); + const runWithContext = pinia2._a && pinia2._a.runWithContext || fallbackRunWithContext; + const setupStore = runWithContext(() => pinia2._e.run(() => (scope = effectScope()).run(setup))); + for (const key in setupStore) { + const prop = setupStore[key]; + if (isRef(prop) && !isComputed(prop) || isReactive(prop)) { + if (process.env.NODE_ENV !== "production" && hot) { + set(hotState.value, key, toRef(setupStore, key)); + } else if (!isOptionsStore) { + if (initialState && shouldHydrate(prop)) { + if (isRef(prop)) { + prop.value = initialState[key]; + } else { + mergeReactiveObjects(prop, initialState[key]); + } + } + { + pinia2.state.value[$id][key] = prop; + } + } + if (process.env.NODE_ENV !== "production") { + _hmrPayload.state.push(key); + } + } else if (typeof prop === "function") { + const actionValue = process.env.NODE_ENV !== "production" && hot ? prop : wrapAction(key, prop); + { + setupStore[key] = actionValue; + } + if (process.env.NODE_ENV !== "production") { + _hmrPayload.actions[key] = prop; + } + optionsForPlugin.actions[key] = prop; + } else if (process.env.NODE_ENV !== "production") { + if (isComputed(prop)) { + _hmrPayload.getters[key] = isOptionsStore ? ( + // @ts-expect-error + options.getters[key] + ) : prop; + if (IS_CLIENT) { + const getters = setupStore._getters || // @ts-expect-error: same + (setupStore._getters = markRaw([])); + getters.push(key); + } + } + } + } + { + assign$2(store, setupStore); + assign$2(toRaw(store), setupStore); + } + Object.defineProperty(store, "$state", { + get: () => process.env.NODE_ENV !== "production" && hot ? hotState.value : pinia2.state.value[$id], + set: (state) => { + if (process.env.NODE_ENV !== "production" && hot) { + throw new Error("cannot set hotState"); + } + $patch(($state) => { + assign$2($state, state); + }); + } + }); + if (process.env.NODE_ENV !== "production") { + store._hotUpdate = markRaw((newStore) => { + store._hotUpdating = true; + newStore._hmrPayload.state.forEach((stateKey) => { + if (stateKey in store.$state) { + const newStateTarget = newStore.$state[stateKey]; + const oldStateSource = store.$state[stateKey]; + if (typeof newStateTarget === "object" && isPlainObject(newStateTarget) && isPlainObject(oldStateSource)) { + patchObject(newStateTarget, oldStateSource); + } else { + newStore.$state[stateKey] = oldStateSource; + } + } + set(store, stateKey, toRef(newStore.$state, stateKey)); + }); + Object.keys(store.$state).forEach((stateKey) => { + if (!(stateKey in newStore.$state)) { + del(store, stateKey); + } + }); + isListening = false; + isSyncListening = false; + pinia2.state.value[$id] = toRef(newStore._hmrPayload, "hotState"); + isSyncListening = true; + nextTick().then(() => { + isListening = true; + }); + for (const actionName in newStore._hmrPayload.actions) { + const action = newStore[actionName]; + set(store, actionName, wrapAction(actionName, action)); + } + for (const getterName in newStore._hmrPayload.getters) { + const getter = newStore._hmrPayload.getters[getterName]; + const getterValue = isOptionsStore ? ( + // special handling of options api + computed(() => { + setActivePinia(pinia2); + return getter.call(store, store); + }) + ) : getter; + set(store, getterName, getterValue); + } + Object.keys(store._hmrPayload.getters).forEach((key) => { + if (!(key in newStore._hmrPayload.getters)) { + del(store, key); + } + }); + Object.keys(store._hmrPayload.actions).forEach((key) => { + if (!(key in newStore._hmrPayload.actions)) { + del(store, key); + } + }); + store._hmrPayload = newStore._hmrPayload; + store._getters = newStore._getters; + store._hotUpdating = false; + }); + } + if (USE_DEVTOOLS) { + const nonEnumerable = { + writable: true, + configurable: true, + // avoid warning on devtools trying to display this property + enumerable: false + }; + ["_p", "_hmrPayload", "_getters", "_customProperties"].forEach((p) => { + Object.defineProperty(store, p, assign$2({ value: store[p] }, nonEnumerable)); + }); + } + pinia2._p.forEach((extender) => { + if (USE_DEVTOOLS) { + const extensions = scope.run(() => extender({ + store, + app: pinia2._a, + pinia: pinia2, + options: optionsForPlugin + })); + Object.keys(extensions || {}).forEach((key) => store._customProperties.add(key)); + assign$2(store, extensions); + } else { + assign$2(store, scope.run(() => extender({ + store, + app: pinia2._a, + pinia: pinia2, + options: optionsForPlugin + }))); + } + }); + if (process.env.NODE_ENV !== "production" && store.$state && typeof store.$state === "object" && typeof store.$state.constructor === "function" && !store.$state.constructor.toString().includes("[native code]")) { + console.warn(`[🍍]: The "state" must be a plain object. It cannot be + state: () => new MyClass() +Found in store "${store.$id}".`); + } + if (initialState && isOptionsStore && options.hydrate) { + options.hydrate(store.$state, initialState); + } + isListening = true; + isSyncListening = true; + return store; +} +function defineStore(idOrOptions, setup, setupOptions) { + let id; + let options; + const isSetupStore = typeof setup === "function"; + if (typeof idOrOptions === "string") { + id = idOrOptions; + options = isSetupStore ? setupOptions : setup; + } else { + options = idOrOptions; + id = idOrOptions.id; + if (process.env.NODE_ENV !== "production" && typeof id !== "string") { + throw new Error(`[🍍]: "defineStore()" must be passed a store id as its first argument.`); + } + } + function useStore(pinia2, hot) { + const hasContext = hasInjectionContext(); + pinia2 = // in test mode, ignore the argument provided as we can always retrieve a + // pinia instance with getActivePinia() + (process.env.NODE_ENV === "test" && activePinia && activePinia._testing ? null : pinia2) || (hasContext ? inject(piniaSymbol, null) : null); + if (pinia2) + setActivePinia(pinia2); + if (process.env.NODE_ENV !== "production" && !activePinia) { + throw new Error(`[🍍]: "getActivePinia()" was called but there was no active Pinia. Are you trying to use a store before calling "app.use(pinia)"? +See https://pinia.vuejs.org/core-concepts/outside-component-usage.html for help. +This will fail in production.`); + } + pinia2 = activePinia; + if (!pinia2._s.has(id)) { + if (isSetupStore) { + createSetupStore(id, setup, options, pinia2); + } else { + createOptionsStore(id, options, pinia2); + } + if (process.env.NODE_ENV !== "production") { + useStore._pinia = pinia2; + } + } + const store = pinia2._s.get(id); + if (process.env.NODE_ENV !== "production" && hot) { + const hotId = "__hot:" + id; + const newStore = isSetupStore ? createSetupStore(hotId, setup, options, pinia2, true) : createOptionsStore(hotId, assign$2({}, options), pinia2, true); + hot._hotUpdate(newStore); + delete pinia2.state.value[hotId]; + pinia2._s.delete(hotId); + } + if (process.env.NODE_ENV !== "production" && IS_CLIENT) { + const currentInstance = getCurrentInstance(); + if (currentInstance && currentInstance.proxy && // avoid adding stores that are just built for hot module replacement + !hot) { + const vm = currentInstance.proxy; + const cache = "_pStores" in vm ? vm._pStores : vm._pStores = {}; + cache[id] = store; + } + } + return store; + } + useStore.$id = id; + return useStore; +} +const useDataStore = defineStore("data", () => { + const records = ref([]); + const record = ref({}); + return { records, record }; +}); +function useStonecrop(registry) { + if (!registry) { + registry = inject("$registry"); + } + const store = useDataStore(); + const stonecrop = ref(new Stonecrop(registry, store)); + const isReady = ref(false); + onBeforeMount(async () => { + var _a, _b; + const route = registry.router.currentRoute.value; + const doctypeSlug = (_a = route.params.records) == null ? void 0 : _a.toString().toLowerCase(); + const recordId = (_b = route.params.record) == null ? void 0 : _b.toString().toLowerCase(); + if (!doctypeSlug && !recordId) { + return; + } + const doctype = await registry.getMeta(doctypeSlug); + registry.addDoctype(doctype); + stonecrop.value.setup(doctype); + if (doctypeSlug) { + if (recordId) { + await stonecrop.value.getRecord(doctype, recordId); + } else { + await stonecrop.value.getRecords(doctype); + } + } + stonecrop.value.runAction(doctype, "LOAD", recordId ? [recordId] : void 0); + isReady.value = true; + }); + return { stonecrop, isReady }; +} +class DoctypeMeta { + constructor(doctype, schema, workflow, actions, component) { + this.doctype = doctype; + this.schema = schema; + this.workflow = workflow; + this.actions = actions; + this.component = component; + } + get slug() { + return this.doctype.replace(/([a-z])([A-Z])/g, "$1-$2").replace(/[\s_]+/g, "-").toLowerCase(); + } + get __typename() { + return this.doctype; + } +} +class Registry { + constructor(router2, getMeta) { + if (Registry._root) { + return Registry._root; + } + Registry._root = this; + this.name = "Registry"; + this.router = router2; + this.registry = {}; + this.getMeta = getMeta; + } + addDoctype(doctype) { + if (!(doctype.doctype in Object.keys(this.registry))) { + this.registry[doctype.slug] = doctype; + } + if (!this.router.hasRoute(doctype.doctype)) { + this.router.addRoute({ + path: `/${doctype.slug}`, + name: doctype.slug, + component: doctype.component + }); + } + } +} +/*! + * vue-router v4.2.5 + * (c) 2023 Eduardo San Martin Morote + * @license MIT + */ +const isBrowser = typeof window !== "undefined"; +function isESModule(obj) { + return obj.__esModule || obj[Symbol.toStringTag] === "Module"; +} +const assign = Object.assign; +function applyToParams(fn, params) { + const newParams = {}; + for (const key in params) { + const value = params[key]; + newParams[key] = isArray(value) ? value.map(fn) : fn(value); + } + return newParams; +} +const noop = () => { +}; +const isArray = Array.isArray; +function warn(msg) { + const args = Array.from(arguments).slice(1); + console.warn.apply(console, ["[Vue Router warn]: " + msg].concat(args)); +} +const TRAILING_SLASH_RE = /\/$/; +const removeTrailingSlash = (path) => path.replace(TRAILING_SLASH_RE, ""); +function parseURL(parseQuery2, location2, currentLocation = "/") { + let path, query = {}, searchString = "", hash = ""; + const hashPos = location2.indexOf("#"); + let searchPos = location2.indexOf("?"); + if (hashPos < searchPos && hashPos >= 0) { + searchPos = -1; + } + if (searchPos > -1) { + path = location2.slice(0, searchPos); + searchString = location2.slice(searchPos + 1, hashPos > -1 ? hashPos : location2.length); + query = parseQuery2(searchString); + } + if (hashPos > -1) { + path = path || location2.slice(0, hashPos); + hash = location2.slice(hashPos, location2.length); + } + path = resolveRelativePath(path != null ? path : location2, currentLocation); + return { + fullPath: path + (searchString && "?") + searchString + hash, + path, + query, + hash + }; +} +function stringifyURL(stringifyQuery2, location2) { + const query = location2.query ? stringifyQuery2(location2.query) : ""; + return location2.path + (query && "?") + query + (location2.hash || ""); +} +function stripBase(pathname, base) { + if (!base || !pathname.toLowerCase().startsWith(base.toLowerCase())) + return pathname; + return pathname.slice(base.length) || "/"; +} +function isSameRouteLocation(stringifyQuery2, a, b) { + const aLastIndex = a.matched.length - 1; + const bLastIndex = b.matched.length - 1; + return aLastIndex > -1 && aLastIndex === bLastIndex && isSameRouteRecord(a.matched[aLastIndex], b.matched[bLastIndex]) && isSameRouteLocationParams(a.params, b.params) && stringifyQuery2(a.query) === stringifyQuery2(b.query) && a.hash === b.hash; +} +function isSameRouteRecord(a, b) { + return (a.aliasOf || a) === (b.aliasOf || b); +} +function isSameRouteLocationParams(a, b) { + if (Object.keys(a).length !== Object.keys(b).length) + return false; + for (const key in a) { + if (!isSameRouteLocationParamsValue(a[key], b[key])) + return false; + } + return true; +} +function isSameRouteLocationParamsValue(a, b) { + return isArray(a) ? isEquivalentArray(a, b) : isArray(b) ? isEquivalentArray(b, a) : a === b; +} +function isEquivalentArray(a, b) { + return isArray(b) ? a.length === b.length && a.every((value, i) => value === b[i]) : a.length === 1 && a[0] === b; +} +function resolveRelativePath(to, from) { + if (to.startsWith("/")) + return to; + if (process.env.NODE_ENV !== "production" && !from.startsWith("/")) { + warn(`Cannot resolve a relative location without an absolute path. Trying to resolve "${to}" from "${from}". It should look like "/${from}".`); + return to; + } + if (!to) + return from; + const fromSegments = from.split("/"); + const toSegments = to.split("/"); + const lastToSegment = toSegments[toSegments.length - 1]; + if (lastToSegment === ".." || lastToSegment === ".") { + toSegments.push(""); + } + let position = fromSegments.length - 1; + let toPosition; + let segment; + for (toPosition = 0; toPosition < toSegments.length; toPosition++) { + segment = toSegments[toPosition]; + if (segment === ".") + continue; + if (segment === "..") { + if (position > 1) + position--; + } else + break; + } + return fromSegments.slice(0, position).join("/") + "/" + toSegments.slice(toPosition - (toPosition === toSegments.length ? 1 : 0)).join("/"); +} +var NavigationType; +(function(NavigationType2) { + NavigationType2["pop"] = "pop"; + NavigationType2["push"] = "push"; +})(NavigationType || (NavigationType = {})); +var NavigationDirection; +(function(NavigationDirection2) { + NavigationDirection2["back"] = "back"; + NavigationDirection2["forward"] = "forward"; + NavigationDirection2["unknown"] = ""; +})(NavigationDirection || (NavigationDirection = {})); +function normalizeBase(base) { + if (!base) { + if (isBrowser) { + const baseEl = document.querySelector("base"); + base = baseEl && baseEl.getAttribute("href") || "/"; + base = base.replace(/^\w+:\/\/[^\/]+/, ""); + } else { + base = "/"; + } + } + if (base[0] !== "/" && base[0] !== "#") + base = "/" + base; + return removeTrailingSlash(base); +} +const BEFORE_HASH_RE = /^[^#]+#/; +function createHref(base, location2) { + return base.replace(BEFORE_HASH_RE, "#") + location2; +} +function getElementPosition(el, offset) { + const docRect = document.documentElement.getBoundingClientRect(); + const elRect = el.getBoundingClientRect(); + return { + behavior: offset.behavior, + left: elRect.left - docRect.left - (offset.left || 0), + top: elRect.top - docRect.top - (offset.top || 0) + }; +} +const computeScrollPosition = () => ({ + left: window.pageXOffset, + top: window.pageYOffset +}); +function scrollToPosition(position) { + let scrollToOptions; + if ("el" in position) { + const positionEl = position.el; + const isIdSelector = typeof positionEl === "string" && positionEl.startsWith("#"); + if (process.env.NODE_ENV !== "production" && typeof position.el === "string") { + if (!isIdSelector || !document.getElementById(position.el.slice(1))) { + try { + const foundEl = document.querySelector(position.el); + if (isIdSelector && foundEl) { + warn(`The selector "${position.el}" should be passed as "el: document.querySelector('${position.el}')" because it starts with "#".`); + return; + } + } catch (err) { + 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).`); + return; + } + } + } + const el = typeof positionEl === "string" ? isIdSelector ? document.getElementById(positionEl.slice(1)) : document.querySelector(positionEl) : positionEl; + if (!el) { + process.env.NODE_ENV !== "production" && warn(`Couldn't find element using selector "${position.el}" returned by scrollBehavior.`); + return; + } + scrollToOptions = getElementPosition(el, position); + } else { + scrollToOptions = position; + } + if ("scrollBehavior" in document.documentElement.style) + window.scrollTo(scrollToOptions); + else { + window.scrollTo(scrollToOptions.left != null ? scrollToOptions.left : window.pageXOffset, scrollToOptions.top != null ? scrollToOptions.top : window.pageYOffset); + } +} +function getScrollKey(path, delta) { + const position = history.state ? history.state.position - delta : -1; + return position + path; +} +const scrollPositions = /* @__PURE__ */ new Map(); +function saveScrollPosition(key, scrollPosition) { + scrollPositions.set(key, scrollPosition); +} +function getSavedScrollPosition(key) { + const scroll = scrollPositions.get(key); + scrollPositions.delete(key); + return scroll; +} +let createBaseLocation = () => location.protocol + "//" + location.host; +function createCurrentLocation(base, location2) { + const { pathname, search, hash } = location2; + const hashPos = base.indexOf("#"); + if (hashPos > -1) { + let slicePos = hash.includes(base.slice(hashPos)) ? base.slice(hashPos).length : 1; + let pathFromHash = hash.slice(slicePos); + if (pathFromHash[0] !== "/") + pathFromHash = "/" + pathFromHash; + return stripBase(pathFromHash, ""); + } + const path = stripBase(pathname, base); + return path + search + hash; +} +function useHistoryListeners(base, historyState, currentLocation, replace) { + let listeners = []; + let teardowns = []; + let pauseState = null; + const popStateHandler = ({ state }) => { + const to = createCurrentLocation(base, location); + const from = currentLocation.value; + const fromState = historyState.value; + let delta = 0; + if (state) { + currentLocation.value = to; + historyState.value = state; + if (pauseState && pauseState === from) { + pauseState = null; + return; + } + delta = fromState ? state.position - fromState.position : 0; + } else { + replace(to); + } + listeners.forEach((listener) => { + listener(currentLocation.value, from, { + delta, + type: NavigationType.pop, + direction: delta ? delta > 0 ? NavigationDirection.forward : NavigationDirection.back : NavigationDirection.unknown + }); + }); + }; + function pauseListeners() { + pauseState = currentLocation.value; + } + function listen(callback) { + listeners.push(callback); + const teardown = () => { + const index2 = listeners.indexOf(callback); + if (index2 > -1) + listeners.splice(index2, 1); + }; + teardowns.push(teardown); + return teardown; + } + function beforeUnloadListener() { + const { history: history2 } = window; + if (!history2.state) + return; + history2.replaceState(assign({}, history2.state, { scroll: computeScrollPosition() }), ""); + } + function destroy() { + for (const teardown of teardowns) + teardown(); + teardowns = []; + window.removeEventListener("popstate", popStateHandler); + window.removeEventListener("beforeunload", beforeUnloadListener); + } + window.addEventListener("popstate", popStateHandler); + window.addEventListener("beforeunload", beforeUnloadListener, { + passive: true + }); + return { + pauseListeners, + listen, + destroy + }; +} +function buildState(back, current, forward, replaced = false, computeScroll = false) { + return { + back, + current, + forward, + replaced, + position: window.history.length, + scroll: computeScroll ? computeScrollPosition() : null + }; +} +function useHistoryStateNavigation(base) { + const { history: history2, location: location2 } = window; + const currentLocation = { + value: createCurrentLocation(base, location2) + }; + const historyState = { value: history2.state }; + if (!historyState.value) { + changeLocation(currentLocation.value, { + back: null, + current: currentLocation.value, + forward: null, + // the length is off by one, we need to decrease it + position: history2.length - 1, + replaced: true, + // don't add a scroll as the user may have an anchor, and we want + // scrollBehavior to be triggered without a saved position + scroll: null + }, true); + } + function changeLocation(to, state, replace2) { + const hashIndex = base.indexOf("#"); + const url = hashIndex > -1 ? (location2.host && document.querySelector("base") ? base : base.slice(hashIndex)) + to : createBaseLocation() + base + to; + try { + history2[replace2 ? "replaceState" : "pushState"](state, "", url); + historyState.value = state; + } catch (err) { + if (process.env.NODE_ENV !== "production") { + warn("Error with push/replace State", err); + } else { + console.error(err); + } + location2[replace2 ? "replace" : "assign"](url); + } + } + function replace(to, data) { + const state = assign({}, history2.state, buildState( + historyState.value.back, + // keep back and forward entries but override current position + to, + historyState.value.forward, + true + ), data, { position: historyState.value.position }); + changeLocation(to, state, true); + currentLocation.value = to; + } + function push(to, data) { + const currentState = assign( + {}, + // use current history state to gracefully handle a wrong call to + // history.replaceState + // https://github.com/vuejs/router/issues/366 + historyState.value, + history2.state, + { + forward: to, + scroll: computeScrollPosition() + } + ); + if (process.env.NODE_ENV !== "production" && !history2.state) { + 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: + +history.replaceState(history.state, '', url) + +You can find more information at https://next.router.vuejs.org/guide/migration/#usage-of-history-state.`); + } + changeLocation(currentState.current, currentState, true); + const state = assign({}, buildState(currentLocation.value, to, null), { position: currentState.position + 1 }, data); + changeLocation(to, state, false); + currentLocation.value = to; + } + return { + location: currentLocation, + state: historyState, + push, + replace + }; +} +function createWebHistory(base) { + base = normalizeBase(base); + const historyNavigation = useHistoryStateNavigation(base); + const historyListeners = useHistoryListeners(base, historyNavigation.state, historyNavigation.location, historyNavigation.replace); + function go(delta, triggerListeners = true) { + if (!triggerListeners) + historyListeners.pauseListeners(); + history.go(delta); + } + const routerHistory = assign({ + // it's overridden right after + location: "", + base, + go, + createHref: createHref.bind(null, base) + }, historyNavigation, historyListeners); + Object.defineProperty(routerHistory, "location", { + enumerable: true, + get: () => historyNavigation.location.value + }); + Object.defineProperty(routerHistory, "state", { + enumerable: true, + get: () => historyNavigation.state.value + }); + return routerHistory; +} +function isRouteLocation(route) { + return typeof route === "string" || route && typeof route === "object"; +} +function isRouteName(name) { + return typeof name === "string" || typeof name === "symbol"; +} +const START_LOCATION_NORMALIZED = { + path: "/", + name: void 0, + params: {}, + query: {}, + hash: "", + fullPath: "/", + matched: [], + meta: {}, + redirectedFrom: void 0 +}; +const NavigationFailureSymbol = Symbol(process.env.NODE_ENV !== "production" ? "navigation failure" : ""); +var NavigationFailureType; +(function(NavigationFailureType2) { + NavigationFailureType2[NavigationFailureType2["aborted"] = 4] = "aborted"; + NavigationFailureType2[NavigationFailureType2["cancelled"] = 8] = "cancelled"; + NavigationFailureType2[NavigationFailureType2["duplicated"] = 16] = "duplicated"; +})(NavigationFailureType || (NavigationFailureType = {})); +const ErrorTypeMessages = { + [ + 1 + /* ErrorTypes.MATCHER_NOT_FOUND */ + ]({ location: location2, currentLocation }) { + return `No match for + ${JSON.stringify(location2)}${currentLocation ? "\nwhile being at\n" + JSON.stringify(currentLocation) : ""}`; + }, + [ + 2 + /* ErrorTypes.NAVIGATION_GUARD_REDIRECT */ + ]({ from, to }) { + return `Redirected from "${from.fullPath}" to "${stringifyRoute(to)}" via a navigation guard.`; + }, + [ + 4 + /* ErrorTypes.NAVIGATION_ABORTED */ + ]({ from, to }) { + return `Navigation aborted from "${from.fullPath}" to "${to.fullPath}" via a navigation guard.`; + }, + [ + 8 + /* ErrorTypes.NAVIGATION_CANCELLED */ + ]({ from, to }) { + return `Navigation cancelled from "${from.fullPath}" to "${to.fullPath}" with a new navigation.`; + }, + [ + 16 + /* ErrorTypes.NAVIGATION_DUPLICATED */ + ]({ from, to }) { + return `Avoided redundant navigation to current location: "${from.fullPath}".`; + } +}; +function createRouterError(type2, params) { + if (process.env.NODE_ENV !== "production" || false) { + return assign(new Error(ErrorTypeMessages[type2](params)), { + type: type2, + [NavigationFailureSymbol]: true + }, params); + } else { + return assign(new Error(), { + type: type2, + [NavigationFailureSymbol]: true + }, params); + } +} +function isNavigationFailure(error, type2) { + return error instanceof Error && NavigationFailureSymbol in error && (type2 == null || !!(error.type & type2)); +} +const propertiesToLog = ["params", "query", "hash"]; +function stringifyRoute(to) { + if (typeof to === "string") + return to; + if ("path" in to) + return to.path; + const location2 = {}; + for (const key of propertiesToLog) { + if (key in to) + location2[key] = to[key]; + } + return JSON.stringify(location2, null, 2); +} +const BASE_PARAM_PATTERN = "[^/]+?"; +const BASE_PATH_PARSER_OPTIONS = { + sensitive: false, + strict: false, + start: true, + end: true +}; +const REGEX_CHARS_RE = /[.+*?^${}()[\]/\\]/g; +function tokensToParser(segments, extraOptions) { + const options = assign({}, BASE_PATH_PARSER_OPTIONS, extraOptions); + const score = []; + let pattern = options.start ? "^" : ""; + const keys = []; + for (const segment of segments) { + const segmentScores = segment.length ? [] : [ + 90 + /* PathScore.Root */ + ]; + if (options.strict && !segment.length) + pattern += "/"; + for (let tokenIndex = 0; tokenIndex < segment.length; tokenIndex++) { + const token = segment[tokenIndex]; + let subSegmentScore = 40 + (options.sensitive ? 0.25 : 0); + if (token.type === 0) { + if (!tokenIndex) + pattern += "/"; + pattern += token.value.replace(REGEX_CHARS_RE, "\\$&"); + subSegmentScore += 40; + } else if (token.type === 1) { + const { value, repeatable, optional, regexp } = token; + keys.push({ + name: value, + repeatable, + optional + }); + const re2 = regexp ? regexp : BASE_PARAM_PATTERN; + if (re2 !== BASE_PARAM_PATTERN) { + subSegmentScore += 10; + try { + new RegExp(`(${re2})`); + } catch (err) { + throw new Error(`Invalid custom RegExp for param "${value}" (${re2}): ` + err.message); + } + } + let subPattern = repeatable ? `((?:${re2})(?:/(?:${re2}))*)` : `(${re2})`; + if (!tokenIndex) + subPattern = // avoid an optional / if there are more segments e.g. /:p?-static + // or /:p?-:p2 + optional && segment.length < 2 ? `(?:/${subPattern})` : "/" + subPattern; + if (optional) + subPattern += "?"; + pattern += subPattern; + subSegmentScore += 20; + if (optional) + subSegmentScore += -8; + if (repeatable) + subSegmentScore += -20; + if (re2 === ".*") + subSegmentScore += -50; + } + segmentScores.push(subSegmentScore); + } + score.push(segmentScores); + } + if (options.strict && options.end) { + const i = score.length - 1; + score[i][score[i].length - 1] += 0.7000000000000001; + } + if (!options.strict) + pattern += "/?"; + if (options.end) + pattern += "$"; + else if (options.strict) + pattern += "(?:/|$)"; + const re = new RegExp(pattern, options.sensitive ? "" : "i"); + function parse2(path) { + const match = path.match(re); + const params = {}; + if (!match) + return null; + for (let i = 1; i < match.length; i++) { + const value = match[i] || ""; + const key = keys[i - 1]; + params[key.name] = value && key.repeatable ? value.split("/") : value; + } + return params; + } + function stringify2(params) { + let path = ""; + let avoidDuplicatedSlash = false; + for (const segment of segments) { + if (!avoidDuplicatedSlash || !path.endsWith("/")) + path += "/"; + avoidDuplicatedSlash = false; + for (const token of segment) { + if (token.type === 0) { + path += token.value; + } else if (token.type === 1) { + const { value, repeatable, optional } = token; + const param = value in params ? params[value] : ""; + if (isArray(param) && !repeatable) { + throw new Error(`Provided param "${value}" is an array but it is not repeatable (* or + modifiers)`); + } + const text = isArray(param) ? param.join("/") : param; + if (!text) { + if (optional) { + if (segment.length < 2) { + if (path.endsWith("/")) + path = path.slice(0, -1); + else + avoidDuplicatedSlash = true; + } + } else + throw new Error(`Missing required param "${value}"`); + } + path += text; + } + } + } + return path || "/"; + } + return { + re, + score, + keys, + parse: parse2, + stringify: stringify2 + }; +} +function compareScoreArray(a, b) { + let i = 0; + while (i < a.length && i < b.length) { + const diff = b[i] - a[i]; + if (diff) + return diff; + i++; + } + if (a.length < b.length) { + return a.length === 1 && a[0] === 40 + 40 ? -1 : 1; + } else if (a.length > b.length) { + return b.length === 1 && b[0] === 40 + 40 ? 1 : -1; + } + return 0; +} +function comparePathParserScore(a, b) { + let i = 0; + const aScore = a.score; + const bScore = b.score; + while (i < aScore.length && i < bScore.length) { + const comp = compareScoreArray(aScore[i], bScore[i]); + if (comp) + return comp; + i++; + } + if (Math.abs(bScore.length - aScore.length) === 1) { + if (isLastScoreNegative(aScore)) + return 1; + if (isLastScoreNegative(bScore)) + return -1; + } + return bScore.length - aScore.length; +} +function isLastScoreNegative(score) { + const last = score[score.length - 1]; + return score.length > 0 && last[last.length - 1] < 0; +} +const ROOT_TOKEN = { + type: 0, + value: "" +}; +const VALID_PARAM_RE = /[a-zA-Z0-9_]/; +function tokenizePath(path) { + if (!path) + return [[]]; + if (path === "/") + return [[ROOT_TOKEN]]; + if (!path.startsWith("/")) { + throw new Error(process.env.NODE_ENV !== "production" ? `Route paths should start with a "/": "${path}" should be "/${path}".` : `Invalid path "${path}"`); + } + function crash(message) { + throw new Error(`ERR (${state})/"${buffer}": ${message}`); + } + let state = 0; + let previousState = state; + const tokens = []; + let segment; + function finalizeSegment() { + if (segment) + tokens.push(segment); + segment = []; + } + let i = 0; + let char; + let buffer = ""; + let customRe = ""; + function consumeBuffer() { + if (!buffer) + return; + if (state === 0) { + segment.push({ + type: 0, + value: buffer + }); + } else if (state === 1 || state === 2 || state === 3) { + if (segment.length > 1 && (char === "*" || char === "+")) + crash(`A repeatable param (${buffer}) must be alone in its segment. eg: '/:ids+.`); + segment.push({ + type: 1, + value: buffer, + regexp: customRe, + repeatable: char === "*" || char === "+", + optional: char === "*" || char === "?" + }); + } else { + crash("Invalid state to consume buffer"); + } + buffer = ""; + } + function addCharToBuffer() { + buffer += char; + } + while (i < path.length) { + char = path[i++]; + if (char === "\\" && state !== 2) { + previousState = state; + state = 4; + continue; + } + switch (state) { + case 0: + if (char === "/") { + if (buffer) { + consumeBuffer(); + } + finalizeSegment(); + } else if (char === ":") { + consumeBuffer(); + state = 1; + } else { + addCharToBuffer(); + } + break; + case 4: + addCharToBuffer(); + state = previousState; + break; + case 1: + if (char === "(") { + state = 2; + } else if (VALID_PARAM_RE.test(char)) { + addCharToBuffer(); + } else { + consumeBuffer(); + state = 0; + if (char !== "*" && char !== "?" && char !== "+") + i--; + } + break; + case 2: + if (char === ")") { + if (customRe[customRe.length - 1] == "\\") + customRe = customRe.slice(0, -1) + char; + else + state = 3; + } else { + customRe += char; + } + break; + case 3: + consumeBuffer(); + state = 0; + if (char !== "*" && char !== "?" && char !== "+") + i--; + customRe = ""; + break; + default: + crash("Unknown state"); + break; + } + } + if (state === 2) + crash(`Unfinished custom RegExp for param "${buffer}"`); + consumeBuffer(); + finalizeSegment(); + return tokens; +} +function createRouteRecordMatcher(record, parent, options) { + const parser = tokensToParser(tokenizePath(record.path), options); + if (process.env.NODE_ENV !== "production") { + const existingKeys = /* @__PURE__ */ new Set(); + for (const key of parser.keys) { + if (existingKeys.has(key.name)) + warn(`Found duplicated params with name "${key.name}" for path "${record.path}". Only the last one will be available on "$route.params".`); + existingKeys.add(key.name); + } + } + const matcher = assign(parser, { + record, + parent, + // these needs to be populated by the parent + children: [], + alias: [] + }); + if (parent) { + if (!matcher.record.aliasOf === !parent.record.aliasOf) + parent.children.push(matcher); + } + return matcher; +} +function createRouterMatcher(routes, globalOptions) { + const matchers = []; + const matcherMap = /* @__PURE__ */ new Map(); + globalOptions = mergeOptions({ strict: false, end: true, sensitive: false }, globalOptions); + function getRecordMatcher(name) { + return matcherMap.get(name); + } + function addRoute(record, parent, originalRecord) { + const isRootAdd = !originalRecord; + const mainNormalizedRecord = normalizeRouteRecord(record); + if (process.env.NODE_ENV !== "production") { + checkChildMissingNameWithEmptyPath(mainNormalizedRecord, parent); + } + mainNormalizedRecord.aliasOf = originalRecord && originalRecord.record; + const options = mergeOptions(globalOptions, record); + const normalizedRecords = [ + mainNormalizedRecord + ]; + if ("alias" in record) { + const aliases = typeof record.alias === "string" ? [record.alias] : record.alias; + for (const alias of aliases) { + normalizedRecords.push(assign({}, mainNormalizedRecord, { + // this allows us to hold a copy of the `components` option + // so that async components cache is hold on the original record + components: originalRecord ? originalRecord.record.components : mainNormalizedRecord.components, + path: alias, + // we might be the child of an alias + aliasOf: originalRecord ? originalRecord.record : mainNormalizedRecord + // the aliases are always of the same kind as the original since they + // are defined on the same record + })); + } + } + let matcher; + let originalMatcher; + for (const normalizedRecord of normalizedRecords) { + const { path } = normalizedRecord; + if (parent && path[0] !== "/") { + const parentPath = parent.record.path; + const connectingSlash = parentPath[parentPath.length - 1] === "/" ? "" : "/"; + normalizedRecord.path = parent.record.path + (path && connectingSlash + path); + } + if (process.env.NODE_ENV !== "production" && normalizedRecord.path === "*") { + throw new Error('Catch all routes ("*") must now be defined using a param with a custom regexp.\nSee more at https://next.router.vuejs.org/guide/migration/#removed-star-or-catch-all-routes.'); + } + matcher = createRouteRecordMatcher(normalizedRecord, parent, options); + if (process.env.NODE_ENV !== "production" && parent && path[0] === "/") + checkMissingParamsInAbsolutePath(matcher, parent); + if (originalRecord) { + originalRecord.alias.push(matcher); + if (process.env.NODE_ENV !== "production") { + checkSameParams(originalRecord, matcher); + } + } else { + originalMatcher = originalMatcher || matcher; + if (originalMatcher !== matcher) + originalMatcher.alias.push(matcher); + if (isRootAdd && record.name && !isAliasRecord(matcher)) + removeRoute(record.name); + } + if (mainNormalizedRecord.children) { + const children = mainNormalizedRecord.children; + for (let i = 0; i < children.length; i++) { + addRoute(children[i], matcher, originalRecord && originalRecord.children[i]); + } + } + originalRecord = originalRecord || matcher; + if (matcher.record.components && Object.keys(matcher.record.components).length || matcher.record.name || matcher.record.redirect) { + insertMatcher(matcher); + } + } + return originalMatcher ? () => { + removeRoute(originalMatcher); + } : noop; + } + function removeRoute(matcherRef) { + if (isRouteName(matcherRef)) { + const matcher = matcherMap.get(matcherRef); + if (matcher) { + matcherMap.delete(matcherRef); + matchers.splice(matchers.indexOf(matcher), 1); + matcher.children.forEach(removeRoute); + matcher.alias.forEach(removeRoute); + } + } else { + const index2 = matchers.indexOf(matcherRef); + if (index2 > -1) { + matchers.splice(index2, 1); + if (matcherRef.record.name) + matcherMap.delete(matcherRef.record.name); + matcherRef.children.forEach(removeRoute); + matcherRef.alias.forEach(removeRoute); + } + } + } + function getRoutes() { + return matchers; + } + function insertMatcher(matcher) { + let i = 0; + while (i < matchers.length && comparePathParserScore(matcher, matchers[i]) >= 0 && // Adding children with empty path should still appear before the parent + // https://github.com/vuejs/router/issues/1124 + (matcher.record.path !== matchers[i].record.path || !isRecordChildOf(matcher, matchers[i]))) + i++; + matchers.splice(i, 0, matcher); + if (matcher.record.name && !isAliasRecord(matcher)) + matcherMap.set(matcher.record.name, matcher); + } + function resolve(location2, currentLocation) { + let matcher; + let params = {}; + let path; + let name; + if ("name" in location2 && location2.name) { + matcher = matcherMap.get(location2.name); + if (!matcher) + throw createRouterError(1, { + location: location2 + }); + if (process.env.NODE_ENV !== "production") { + const invalidParams = Object.keys(location2.params || {}).filter((paramName) => !matcher.keys.find((k) => k.name === paramName)); + if (invalidParams.length) { + 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.`); + } + } + name = matcher.record.name; + params = assign( + // paramsFromLocation is a new object + paramsFromLocation( + currentLocation.params, + // only keep params that exist in the resolved location + // TODO: only keep optional params coming from a parent record + matcher.keys.filter((k) => !k.optional).map((k) => k.name) + ), + // discard any existing params in the current location that do not exist here + // #1497 this ensures better active/exact matching + location2.params && paramsFromLocation(location2.params, matcher.keys.map((k) => k.name)) + ); + path = matcher.stringify(params); + } else if ("path" in location2) { + path = location2.path; + if (process.env.NODE_ENV !== "production" && !path.startsWith("/")) { + 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.`); + } + matcher = matchers.find((m2) => m2.re.test(path)); + if (matcher) { + params = matcher.parse(path); + name = matcher.record.name; + } + } else { + matcher = currentLocation.name ? matcherMap.get(currentLocation.name) : matchers.find((m2) => m2.re.test(currentLocation.path)); + if (!matcher) + throw createRouterError(1, { + location: location2, + currentLocation + }); + name = matcher.record.name; + params = assign({}, currentLocation.params, location2.params); + path = matcher.stringify(params); + } + const matched = []; + let parentMatcher = matcher; + while (parentMatcher) { + matched.unshift(parentMatcher.record); + parentMatcher = parentMatcher.parent; + } + return { + name, + path, + params, + matched, + meta: mergeMetaFields(matched) + }; + } + routes.forEach((route) => addRoute(route)); + return { addRoute, resolve, removeRoute, getRoutes, getRecordMatcher }; +} +function paramsFromLocation(params, keys) { + const newParams = {}; + for (const key of keys) { + if (key in params) + newParams[key] = params[key]; + } + return newParams; +} +function normalizeRouteRecord(record) { + return { + path: record.path, + redirect: record.redirect, + name: record.name, + meta: record.meta || {}, + aliasOf: void 0, + beforeEnter: record.beforeEnter, + props: normalizeRecordProps(record), + children: record.children || [], + instances: {}, + leaveGuards: /* @__PURE__ */ new Set(), + updateGuards: /* @__PURE__ */ new Set(), + enterCallbacks: {}, + components: "components" in record ? record.components || null : record.component && { default: record.component } + }; +} +function normalizeRecordProps(record) { + const propsObject = {}; + const props = record.props || false; + if ("component" in record) { + propsObject.default = props; + } else { + for (const name in record.components) + propsObject[name] = typeof props === "object" ? props[name] : props; + } + return propsObject; +} +function isAliasRecord(record) { + while (record) { + if (record.record.aliasOf) + return true; + record = record.parent; + } + return false; +} +function mergeMetaFields(matched) { + return matched.reduce((meta, record) => assign(meta, record.meta), {}); +} +function mergeOptions(defaults, partialOptions) { + const options = {}; + for (const key in defaults) { + options[key] = key in partialOptions ? partialOptions[key] : defaults[key]; + } + return options; +} +function isSameParam(a, b) { + return a.name === b.name && a.optional === b.optional && a.repeatable === b.repeatable; +} +function checkSameParams(a, b) { + for (const key of a.keys) { + if (!key.optional && !b.keys.find(isSameParam.bind(null, key))) + return warn(`Alias "${b.record.path}" and the original record: "${a.record.path}" must have the exact same param named "${key.name}"`); + } + for (const key of b.keys) { + if (!key.optional && !a.keys.find(isSameParam.bind(null, key))) + return warn(`Alias "${b.record.path}" and the original record: "${a.record.path}" must have the exact same param named "${key.name}"`); + } +} +function checkChildMissingNameWithEmptyPath(mainNormalizedRecord, parent) { + if (parent && parent.record.name && !mainNormalizedRecord.name && !mainNormalizedRecord.path) { + 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.`); + } +} +function checkMissingParamsInAbsolutePath(record, parent) { + for (const key of parent.keys) { + if (!record.keys.find(isSameParam.bind(null, key))) + return warn(`Absolute path "${record.record.path}" must have the exact same param named "${key.name}" as its parent "${parent.record.path}".`); + } +} +function isRecordChildOf(record, parent) { + return parent.children.some((child) => child === record || isRecordChildOf(record, child)); +} +const HASH_RE = /#/g; +const AMPERSAND_RE = /&/g; +const SLASH_RE = /\//g; +const EQUAL_RE = /=/g; +const IM_RE = /\?/g; +const PLUS_RE = /\+/g; +const ENC_BRACKET_OPEN_RE = /%5B/g; +const ENC_BRACKET_CLOSE_RE = /%5D/g; +const ENC_CARET_RE = /%5E/g; +const ENC_BACKTICK_RE = /%60/g; +const ENC_CURLY_OPEN_RE = /%7B/g; +const ENC_PIPE_RE = /%7C/g; +const ENC_CURLY_CLOSE_RE = /%7D/g; +const ENC_SPACE_RE = /%20/g; +function commonEncode(text) { + return encodeURI("" + text).replace(ENC_PIPE_RE, "|").replace(ENC_BRACKET_OPEN_RE, "[").replace(ENC_BRACKET_CLOSE_RE, "]"); +} +function encodeHash(text) { + return commonEncode(text).replace(ENC_CURLY_OPEN_RE, "{").replace(ENC_CURLY_CLOSE_RE, "}").replace(ENC_CARET_RE, "^"); +} +function encodeQueryValue(text) { + return commonEncode(text).replace(PLUS_RE, "%2B").replace(ENC_SPACE_RE, "+").replace(HASH_RE, "%23").replace(AMPERSAND_RE, "%26").replace(ENC_BACKTICK_RE, "`").replace(ENC_CURLY_OPEN_RE, "{").replace(ENC_CURLY_CLOSE_RE, "}").replace(ENC_CARET_RE, "^"); +} +function encodeQueryKey(text) { + return encodeQueryValue(text).replace(EQUAL_RE, "%3D"); +} +function encodePath(text) { + return commonEncode(text).replace(HASH_RE, "%23").replace(IM_RE, "%3F"); +} +function encodeParam(text) { + return text == null ? "" : encodePath(text).replace(SLASH_RE, "%2F"); +} +function decode(text) { + try { + return decodeURIComponent("" + text); + } catch (err) { + process.env.NODE_ENV !== "production" && warn(`Error decoding "${text}". Using original value`); + } + return "" + text; +} +function parseQuery(search) { + const query = {}; + if (search === "" || search === "?") + return query; + const hasLeadingIM = search[0] === "?"; + const searchParams = (hasLeadingIM ? search.slice(1) : search).split("&"); + for (let i = 0; i < searchParams.length; ++i) { + const searchParam = searchParams[i].replace(PLUS_RE, " "); + const eqPos = searchParam.indexOf("="); + const key = decode(eqPos < 0 ? searchParam : searchParam.slice(0, eqPos)); + const value = eqPos < 0 ? null : decode(searchParam.slice(eqPos + 1)); + if (key in query) { + let currentValue = query[key]; + if (!isArray(currentValue)) { + currentValue = query[key] = [currentValue]; + } + currentValue.push(value); + } else { + query[key] = value; + } + } + return query; +} +function stringifyQuery(query) { + let search = ""; + for (let key in query) { + const value = query[key]; + key = encodeQueryKey(key); + if (value == null) { + if (value !== void 0) { + search += (search.length ? "&" : "") + key; + } + continue; + } + const values = isArray(value) ? value.map((v) => v && encodeQueryValue(v)) : [value && encodeQueryValue(value)]; + values.forEach((value2) => { + if (value2 !== void 0) { + search += (search.length ? "&" : "") + key; + if (value2 != null) + search += "=" + value2; + } + }); + } + return search; +} +function normalizeQuery(query) { + const normalizedQuery = {}; + for (const key in query) { + const value = query[key]; + if (value !== void 0) { + normalizedQuery[key] = isArray(value) ? value.map((v) => v == null ? null : "" + v) : value == null ? value : "" + value; + } + } + return normalizedQuery; +} +const matchedRouteKey = Symbol(process.env.NODE_ENV !== "production" ? "router view location matched" : ""); +const viewDepthKey = Symbol(process.env.NODE_ENV !== "production" ? "router view depth" : ""); +const routerKey = Symbol(process.env.NODE_ENV !== "production" ? "router" : ""); +const routeLocationKey = Symbol(process.env.NODE_ENV !== "production" ? "route location" : ""); +const routerViewLocationKey = Symbol(process.env.NODE_ENV !== "production" ? "router view location" : ""); +function useCallbacks() { + let handlers = []; + function add(handler) { + handlers.push(handler); + return () => { + const i = handlers.indexOf(handler); + if (i > -1) + handlers.splice(i, 1); + }; + } + function reset() { + handlers = []; + } + return { + add, + list: () => handlers.slice(), + reset + }; +} +function guardToPromiseFn(guard, to, from, record, name) { + const enterCallbackArray = record && // name is defined if record is because of the function overload + (record.enterCallbacks[name] = record.enterCallbacks[name] || []); + return () => new Promise((resolve, reject) => { + const next = (valid) => { + if (valid === false) { + reject(createRouterError(4, { + from, + to + })); + } else if (valid instanceof Error) { + reject(valid); + } else if (isRouteLocation(valid)) { + reject(createRouterError(2, { + from: to, + to: valid + })); + } else { + if (enterCallbackArray && // since enterCallbackArray is truthy, both record and name also are + record.enterCallbacks[name] === enterCallbackArray && typeof valid === "function") { + enterCallbackArray.push(valid); + } + resolve(); + } + }; + const guardReturn = guard.call(record && record.instances[name], to, from, process.env.NODE_ENV !== "production" ? canOnlyBeCalledOnce(next, to, from) : next); + let guardCall = Promise.resolve(guardReturn); + if (guard.length < 3) + guardCall = guardCall.then(next); + if (process.env.NODE_ENV !== "production" && guard.length > 2) { + const message = `The "next" callback was never called inside of ${guard.name ? '"' + guard.name + '"' : ""}: +${guard.toString()} +. If you are returning a value instead of calling "next", make sure to remove the "next" parameter from your function.`; + if (typeof guardReturn === "object" && "then" in guardReturn) { + guardCall = guardCall.then((resolvedValue) => { + if (!next._called) { + warn(message); + return Promise.reject(new Error("Invalid navigation guard")); + } + return resolvedValue; + }); + } else if (guardReturn !== void 0) { + if (!next._called) { + warn(message); + reject(new Error("Invalid navigation guard")); + return; + } + } + } + guardCall.catch((err) => reject(err)); + }); +} +function canOnlyBeCalledOnce(next, to, from) { + let called = 0; + return function() { + if (called++ === 1) + 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.`); + next._called = true; + if (called === 1) + next.apply(null, arguments); + }; +} +function extractComponentsGuards(matched, guardType, to, from) { + const guards = []; + for (const record of matched) { + if (process.env.NODE_ENV !== "production" && !record.components && !record.children.length) { + warn(`Record with path "${record.path}" is either missing a "component(s)" or "children" property.`); + } + for (const name in record.components) { + let rawComponent = record.components[name]; + if (process.env.NODE_ENV !== "production") { + if (!rawComponent || typeof rawComponent !== "object" && typeof rawComponent !== "function") { + warn(`Component "${name}" in record with path "${record.path}" is not a valid component. Received "${String(rawComponent)}".`); + throw new Error("Invalid route component"); + } else if ("then" in rawComponent) { + 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.`); + const promise = rawComponent; + rawComponent = () => promise; + } else if (rawComponent.__asyncLoader && // warn only once per component + !rawComponent.__warnedDefineAsync) { + rawComponent.__warnedDefineAsync = true; + warn(`Component "${name}" in record with path "${record.path}" is defined using "defineAsyncComponent()". Write "() => import('./MyPage.vue')" instead of "defineAsyncComponent(() => import('./MyPage.vue'))".`); + } + } + if (guardType !== "beforeRouteEnter" && !record.instances[name]) + continue; + if (isRouteComponent(rawComponent)) { + const options = rawComponent.__vccOpts || rawComponent; + const guard = options[guardType]; + guard && guards.push(guardToPromiseFn(guard, to, from, record, name)); + } else { + let componentPromise = rawComponent(); + if (process.env.NODE_ENV !== "production" && !("catch" in componentPromise)) { + 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.`); + componentPromise = Promise.resolve(componentPromise); + } + guards.push(() => componentPromise.then((resolved) => { + if (!resolved) + return Promise.reject(new Error(`Couldn't resolve component "${name}" at "${record.path}"`)); + const resolvedComponent = isESModule(resolved) ? resolved.default : resolved; + record.components[name] = resolvedComponent; + const options = resolvedComponent.__vccOpts || resolvedComponent; + const guard = options[guardType]; + return guard && guardToPromiseFn(guard, to, from, record, name)(); + })); + } + } + } + return guards; +} +function isRouteComponent(component) { + return typeof component === "object" || "displayName" in component || "props" in component || "__vccOpts" in component; +} +function useLink(props) { + const router2 = inject(routerKey); + const currentRoute = inject(routeLocationKey); + const route = computed(() => router2.resolve(unref(props.to))); + const activeRecordIndex = computed(() => { + const { matched } = route.value; + const { length } = matched; + const routeMatched = matched[length - 1]; + const currentMatched = currentRoute.matched; + if (!routeMatched || !currentMatched.length) + return -1; + const index2 = currentMatched.findIndex(isSameRouteRecord.bind(null, routeMatched)); + if (index2 > -1) + return index2; + const parentRecordPath = getOriginalPath(matched[length - 2]); + return ( + // we are dealing with nested routes + length > 1 && // if the parent and matched route have the same path, this link is + // referring to the empty child. Or we currently are on a different + // child of the same parent + getOriginalPath(routeMatched) === parentRecordPath && // avoid comparing the child with its parent + currentMatched[currentMatched.length - 1].path !== parentRecordPath ? currentMatched.findIndex(isSameRouteRecord.bind(null, matched[length - 2])) : index2 + ); + }); + const isActive = computed(() => activeRecordIndex.value > -1 && includesParams(currentRoute.params, route.value.params)); + const isExactActive = computed(() => activeRecordIndex.value > -1 && activeRecordIndex.value === currentRoute.matched.length - 1 && isSameRouteLocationParams(currentRoute.params, route.value.params)); + function navigate(e = {}) { + if (guardEvent(e)) { + return router2[unref(props.replace) ? "replace" : "push"]( + unref(props.to) + // avoid uncaught errors are they are logged anyway + ).catch(noop); + } + return Promise.resolve(); + } + if ((process.env.NODE_ENV !== "production" || false) && isBrowser) { + const instance = getCurrentInstance(); + if (instance) { + const linkContextDevtools = { + route: route.value, + isActive: isActive.value, + isExactActive: isExactActive.value + }; + instance.__vrl_devtools = instance.__vrl_devtools || []; + instance.__vrl_devtools.push(linkContextDevtools); + watchEffect(() => { + linkContextDevtools.route = route.value; + linkContextDevtools.isActive = isActive.value; + linkContextDevtools.isExactActive = isExactActive.value; + }, { flush: "post" }); + } + } + return { + route, + href: computed(() => route.value.href), + isActive, + isExactActive, + navigate + }; +} +const RouterLinkImpl = /* @__PURE__ */ defineComponent({ + name: "RouterLink", + compatConfig: { MODE: 3 }, + props: { + to: { + type: [String, Object], + required: true + }, + replace: Boolean, + activeClass: String, + // inactiveClass: String, + exactActiveClass: String, + custom: Boolean, + ariaCurrentValue: { + type: String, + default: "page" + } + }, + useLink, + setup(props, { slots }) { + const link = reactive(useLink(props)); + const { options } = inject(routerKey); + const elClass = computed(() => ({ + [getLinkClass(props.activeClass, options.linkActiveClass, "router-link-active")]: link.isActive, + // [getLinkClass( + // props.inactiveClass, + // options.linkInactiveClass, + // 'router-link-inactive' + // )]: !link.isExactActive, + [getLinkClass(props.exactActiveClass, options.linkExactActiveClass, "router-link-exact-active")]: link.isExactActive + })); + return () => { + const children = slots.default && slots.default(link); + return props.custom ? children : h$1("a", { + "aria-current": link.isExactActive ? props.ariaCurrentValue : null, + href: link.href, + // this would override user added attrs but Vue will still add + // the listener, so we end up triggering both + onClick: link.navigate, + class: elClass.value + }, children); + }; + } +}); +const RouterLink = RouterLinkImpl; +function guardEvent(e) { + if (e.metaKey || e.altKey || e.ctrlKey || e.shiftKey) + return; + if (e.defaultPrevented) + return; + if (e.button !== void 0 && e.button !== 0) + return; + if (e.currentTarget && e.currentTarget.getAttribute) { + const target = e.currentTarget.getAttribute("target"); + if (/\b_blank\b/i.test(target)) + return; + } + if (e.preventDefault) + e.preventDefault(); + return true; +} +function includesParams(outer, inner) { + for (const key in inner) { + const innerValue = inner[key]; + const outerValue = outer[key]; + if (typeof innerValue === "string") { + if (innerValue !== outerValue) + return false; + } else { + if (!isArray(outerValue) || outerValue.length !== innerValue.length || innerValue.some((value, i) => value !== outerValue[i])) + return false; + } + } + return true; +} +function getOriginalPath(record) { + return record ? record.aliasOf ? record.aliasOf.path : record.path : ""; +} +const getLinkClass = (propClass, globalClass, defaultClass) => propClass != null ? propClass : globalClass != null ? globalClass : defaultClass; +const RouterViewImpl = /* @__PURE__ */ defineComponent({ + name: "RouterView", + // #674 we manually inherit them + inheritAttrs: false, + props: { + name: { + type: String, + default: "default" + }, + route: Object + }, + // Better compat for @vue/compat users + // https://github.com/vuejs/router/issues/1315 + compatConfig: { MODE: 3 }, + setup(props, { attrs, slots }) { + process.env.NODE_ENV !== "production" && warnDeprecatedUsage(); + const injectedRoute = inject(routerViewLocationKey); + const routeToDisplay = computed(() => props.route || injectedRoute.value); + const injectedDepth = inject(viewDepthKey, 0); + const depth = computed(() => { + let initialDepth = unref(injectedDepth); + const { matched } = routeToDisplay.value; + let matchedRoute; + while ((matchedRoute = matched[initialDepth]) && !matchedRoute.components) { + initialDepth++; + } + return initialDepth; + }); + const matchedRouteRef = computed(() => routeToDisplay.value.matched[depth.value]); + provide(viewDepthKey, computed(() => depth.value + 1)); + provide(matchedRouteKey, matchedRouteRef); + provide(routerViewLocationKey, routeToDisplay); + const viewRef = ref(); + watch(() => [viewRef.value, matchedRouteRef.value, props.name], ([instance, to, name], [oldInstance, from, oldName]) => { + if (to) { + to.instances[name] = instance; + if (from && from !== to && instance && instance === oldInstance) { + if (!to.leaveGuards.size) { + to.leaveGuards = from.leaveGuards; + } + if (!to.updateGuards.size) { + to.updateGuards = from.updateGuards; + } + } + } + if (instance && to && // if there is no instance but to and from are the same this might be + // the first visit + (!from || !isSameRouteRecord(to, from) || !oldInstance)) { + (to.enterCallbacks[name] || []).forEach((callback) => callback(instance)); + } + }, { flush: "post" }); + return () => { + const route = routeToDisplay.value; + const currentName = props.name; + const matchedRoute = matchedRouteRef.value; + const ViewComponent = matchedRoute && matchedRoute.components[currentName]; + if (!ViewComponent) { + return normalizeSlot(slots.default, { Component: ViewComponent, route }); + } + const routePropsOption = matchedRoute.props[currentName]; + const routeProps = routePropsOption ? routePropsOption === true ? route.params : typeof routePropsOption === "function" ? routePropsOption(route) : routePropsOption : null; + const onVnodeUnmounted = (vnode) => { + if (vnode.component.isUnmounted) { + matchedRoute.instances[currentName] = null; + } + }; + const component = h$1(ViewComponent, assign({}, routeProps, attrs, { + onVnodeUnmounted, + ref: viewRef + })); + if ((process.env.NODE_ENV !== "production" || false) && isBrowser && component.ref) { + const info = { + depth: depth.value, + name: matchedRoute.name, + path: matchedRoute.path, + meta: matchedRoute.meta + }; + const internalInstances = isArray(component.ref) ? component.ref.map((r) => r.i) : [component.ref.i]; + internalInstances.forEach((instance) => { + instance.__vrv_devtools = info; + }); + } + return ( + // pass the vnode to the slot as a prop. + // h and both accept vnodes + normalizeSlot(slots.default, { Component: component, route }) || component + ); + }; + } +}); +function normalizeSlot(slot, data) { + if (!slot) + return null; + const slotContent = slot(data); + return slotContent.length === 1 ? slotContent[0] : slotContent; +} +const RouterView = RouterViewImpl; +function warnDeprecatedUsage() { + const instance = getCurrentInstance(); + const parentName = instance.parent && instance.parent.type.name; + const parentSubTreeType = instance.parent && instance.parent.subTree && instance.parent.subTree.type; + if (parentName && (parentName === "KeepAlive" || parentName.includes("Transition")) && typeof parentSubTreeType === "object" && parentSubTreeType.name === "RouterView") { + const comp = parentName === "KeepAlive" ? "keep-alive" : "transition"; + warn(` can no longer be used directly inside or . +Use slot props instead: + + + <${comp}> + + +`); + } +} +function formatRouteLocation(routeLocation, tooltip) { + const copy = assign({}, routeLocation, { + // remove variables that can contain vue instances + matched: routeLocation.matched.map((matched) => omit(matched, ["instances", "children", "aliasOf"])) + }); + return { + _custom: { + type: null, + readOnly: true, + display: routeLocation.fullPath, + tooltip, + value: copy + } + }; +} +function formatDisplay(display) { + return { + _custom: { + display + } + }; +} +let routerId = 0; +function addDevtools(app, router2, matcher) { + if (router2.__hasDevtools) + return; + router2.__hasDevtools = true; + const id = routerId++; + setupDevtoolsPlugin({ + id: "org.vuejs.router" + (id ? "." + id : ""), + label: "Vue Router", + packageName: "vue-router", + homepage: "https://router.vuejs.org", + logo: "https://router.vuejs.org/logo.png", + componentStateTypes: ["Routing"], + app + }, (api) => { + if (typeof api.now !== "function") { + 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."); + } + api.on.inspectComponent((payload, ctx) => { + if (payload.instanceData) { + payload.instanceData.state.push({ + type: "Routing", + key: "$route", + editable: false, + value: formatRouteLocation(router2.currentRoute.value, "Current Route") + }); + } + }); + api.on.visitComponentTree(({ treeNode: node, componentInstance }) => { + if (componentInstance.__vrv_devtools) { + const info = componentInstance.__vrv_devtools; + node.tags.push({ + label: (info.name ? `${info.name.toString()}: ` : "") + info.path, + textColor: 0, + tooltip: "This component is rendered by <router-view>", + backgroundColor: PINK_500 + }); + } + if (isArray(componentInstance.__vrl_devtools)) { + componentInstance.__devtoolsApi = api; + componentInstance.__vrl_devtools.forEach((devtoolsData) => { + let backgroundColor = ORANGE_400; + let tooltip = ""; + if (devtoolsData.isExactActive) { + backgroundColor = LIME_500; + tooltip = "This is exactly active"; + } else if (devtoolsData.isActive) { + backgroundColor = BLUE_600; + tooltip = "This link is active"; + } + node.tags.push({ + label: devtoolsData.route.path, + textColor: 0, + tooltip, + backgroundColor + }); + }); + } + }); + watch(router2.currentRoute, () => { + refreshRoutesView(); + api.notifyComponentUpdate(); + api.sendInspectorTree(routerInspectorId); + api.sendInspectorState(routerInspectorId); + }); + const navigationsLayerId = "router:navigations:" + id; + api.addTimelineLayer({ + id: navigationsLayerId, + label: `Router${id ? " " + id : ""} Navigations`, + color: 4237508 + }); + router2.onError((error, to) => { + api.addTimelineEvent({ + layerId: navigationsLayerId, + event: { + title: "Error during Navigation", + subtitle: to.fullPath, + logType: "error", + time: api.now(), + data: { error }, + groupId: to.meta.__navigationId + } + }); + }); + let navigationId = 0; + router2.beforeEach((to, from) => { + const data = { + guard: formatDisplay("beforeEach"), + from: formatRouteLocation(from, "Current Location during this navigation"), + to: formatRouteLocation(to, "Target location") + }; + Object.defineProperty(to.meta, "__navigationId", { + value: navigationId++ + }); + api.addTimelineEvent({ + layerId: navigationsLayerId, + event: { + time: api.now(), + title: "Start of navigation", + subtitle: to.fullPath, + data, + groupId: to.meta.__navigationId + } + }); + }); + router2.afterEach((to, from, failure) => { + const data = { + guard: formatDisplay("afterEach") + }; + if (failure) { + data.failure = { + _custom: { + type: Error, + readOnly: true, + display: failure ? failure.message : "", + tooltip: "Navigation Failure", + value: failure + } + }; + data.status = formatDisplay("❌"); + } else { + data.status = formatDisplay("✅"); + } + data.from = formatRouteLocation(from, "Current Location during this navigation"); + data.to = formatRouteLocation(to, "Target location"); + api.addTimelineEvent({ + layerId: navigationsLayerId, + event: { + title: "End of navigation", + subtitle: to.fullPath, + time: api.now(), + data, + logType: failure ? "warning" : "default", + groupId: to.meta.__navigationId + } + }); + }); + const routerInspectorId = "router-inspector:" + id; + api.addInspector({ + id: routerInspectorId, + label: "Routes" + (id ? " " + id : ""), + icon: "book", + treeFilterPlaceholder: "Search routes" + }); + function refreshRoutesView() { + if (!activeRoutesPayload) + return; + const payload = activeRoutesPayload; + let routes = matcher.getRoutes().filter((route) => !route.parent || // these routes have a parent with no component which will not appear in the view + // therefore we still need to include them + !route.parent.record.components); + routes.forEach(resetMatchStateOnRouteRecord); + if (payload.filter) { + routes = routes.filter((route) => ( + // save matches state based on the payload + isRouteMatching(route, payload.filter.toLowerCase()) + )); + } + routes.forEach((route) => markRouteRecordActive(route, router2.currentRoute.value)); + payload.rootNodes = routes.map(formatRouteRecordForInspector); + } + let activeRoutesPayload; + api.on.getInspectorTree((payload) => { + activeRoutesPayload = payload; + if (payload.app === app && payload.inspectorId === routerInspectorId) { + refreshRoutesView(); + } + }); + api.on.getInspectorState((payload) => { + if (payload.app === app && payload.inspectorId === routerInspectorId) { + const routes = matcher.getRoutes(); + const route = routes.find((route2) => route2.record.__vd_id === payload.nodeId); + if (route) { + payload.state = { + options: formatRouteRecordMatcherForStateInspector(route) + }; + } + } + }); + api.sendInspectorTree(routerInspectorId); + api.sendInspectorState(routerInspectorId); + }); +} +function modifierForKey(key) { + if (key.optional) { + return key.repeatable ? "*" : "?"; + } else { + return key.repeatable ? "+" : ""; + } +} +function formatRouteRecordMatcherForStateInspector(route) { + const { record } = route; + const fields = [ + { editable: false, key: "path", value: record.path } + ]; + if (record.name != null) { + fields.push({ + editable: false, + key: "name", + value: record.name + }); + } + fields.push({ editable: false, key: "regexp", value: route.re }); + if (route.keys.length) { + fields.push({ + editable: false, + key: "keys", + value: { + _custom: { + type: null, + readOnly: true, + display: route.keys.map((key) => `${key.name}${modifierForKey(key)}`).join(" "), + tooltip: "Param keys", + value: route.keys + } + } + }); + } + if (record.redirect != null) { + fields.push({ + editable: false, + key: "redirect", + value: record.redirect + }); + } + if (route.alias.length) { + fields.push({ + editable: false, + key: "aliases", + value: route.alias.map((alias) => alias.record.path) + }); + } + if (Object.keys(route.record.meta).length) { + fields.push({ + editable: false, + key: "meta", + value: route.record.meta + }); + } + fields.push({ + key: "score", + editable: false, + value: { + _custom: { + type: null, + readOnly: true, + display: route.score.map((score) => score.join(", ")).join(" | "), + tooltip: "Score used to sort routes", + value: route.score + } + } + }); + return fields; +} +const PINK_500 = 15485081; +const BLUE_600 = 2450411; +const LIME_500 = 8702998; +const CYAN_400 = 2282478; +const ORANGE_400 = 16486972; +const DARK = 6710886; +function formatRouteRecordForInspector(route) { + const tags = []; + const { record } = route; + if (record.name != null) { + tags.push({ + label: String(record.name), + textColor: 0, + backgroundColor: CYAN_400 + }); + } + if (record.aliasOf) { + tags.push({ + label: "alias", + textColor: 0, + backgroundColor: ORANGE_400 + }); + } + if (route.__vd_match) { + tags.push({ + label: "matches", + textColor: 0, + backgroundColor: PINK_500 + }); + } + if (route.__vd_exactActive) { + tags.push({ + label: "exact", + textColor: 0, + backgroundColor: LIME_500 + }); + } + if (route.__vd_active) { + tags.push({ + label: "active", + textColor: 0, + backgroundColor: BLUE_600 + }); + } + if (record.redirect) { + tags.push({ + label: typeof record.redirect === "string" ? `redirect: ${record.redirect}` : "redirects", + textColor: 16777215, + backgroundColor: DARK + }); + } + let id = record.__vd_id; + if (id == null) { + id = String(routeRecordId++); + record.__vd_id = id; + } + return { + id, + label: record.path, + tags, + children: route.children.map(formatRouteRecordForInspector) + }; +} +let routeRecordId = 0; +const EXTRACT_REGEXP_RE = /^\/(.*)\/([a-z]*)$/; +function markRouteRecordActive(route, currentRoute) { + const isExactActive = currentRoute.matched.length && isSameRouteRecord(currentRoute.matched[currentRoute.matched.length - 1], route.record); + route.__vd_exactActive = route.__vd_active = isExactActive; + if (!isExactActive) { + route.__vd_active = currentRoute.matched.some((match) => isSameRouteRecord(match, route.record)); + } + route.children.forEach((childRoute) => markRouteRecordActive(childRoute, currentRoute)); +} +function resetMatchStateOnRouteRecord(route) { + route.__vd_match = false; + route.children.forEach(resetMatchStateOnRouteRecord); +} +function isRouteMatching(route, filter) { + const found = String(route.re).match(EXTRACT_REGEXP_RE); + route.__vd_match = false; + if (!found || found.length < 3) { + return false; + } + const nonEndingRE = new RegExp(found[1].replace(/\$$/, ""), found[2]); + if (nonEndingRE.test(filter)) { + route.children.forEach((child) => isRouteMatching(child, filter)); + if (route.record.path !== "/" || filter === "/") { + route.__vd_match = route.re.test(filter); + return true; + } + return false; + } + const path = route.record.path.toLowerCase(); + const decodedPath = decode(path); + if (!filter.startsWith("/") && (decodedPath.includes(filter) || path.includes(filter))) + return true; + if (decodedPath.startsWith(filter) || path.startsWith(filter)) + return true; + if (route.record.name && String(route.record.name).includes(filter)) + return true; + return route.children.some((child) => isRouteMatching(child, filter)); +} +function omit(obj, keys) { + const ret = {}; + for (const key in obj) { + if (!keys.includes(key)) { + ret[key] = obj[key]; + } + } + return ret; +} +function createRouter(options) { + const matcher = createRouterMatcher(options.routes, options); + const parseQuery$1 = options.parseQuery || parseQuery; + const stringifyQuery$1 = options.stringifyQuery || stringifyQuery; + const routerHistory = options.history; + if (process.env.NODE_ENV !== "production" && !routerHistory) + throw new Error('Provide the "history" option when calling "createRouter()": https://next.router.vuejs.org/api/#history.'); + const beforeGuards = useCallbacks(); + const beforeResolveGuards = useCallbacks(); + const afterGuards = useCallbacks(); + const currentRoute = shallowRef(START_LOCATION_NORMALIZED); + let pendingLocation = START_LOCATION_NORMALIZED; + if (isBrowser && options.scrollBehavior && "scrollRestoration" in history) { + history.scrollRestoration = "manual"; + } + const normalizeParams = applyToParams.bind(null, (paramValue) => "" + paramValue); + const encodeParams = applyToParams.bind(null, encodeParam); + const decodeParams = ( + // @ts-expect-error: intentionally avoid the type check + applyToParams.bind(null, decode) + ); + function addRoute(parentOrRoute, route) { + let parent; + let record; + if (isRouteName(parentOrRoute)) { + parent = matcher.getRecordMatcher(parentOrRoute); + record = route; + } else { + record = parentOrRoute; + } + return matcher.addRoute(record, parent); + } + function removeRoute(name) { + const recordMatcher = matcher.getRecordMatcher(name); + if (recordMatcher) { + matcher.removeRoute(recordMatcher); + } else if (process.env.NODE_ENV !== "production") { + warn(`Cannot remove non-existent route "${String(name)}"`); + } + } + function getRoutes() { + return matcher.getRoutes().map((routeMatcher) => routeMatcher.record); + } + function hasRoute(name) { + return !!matcher.getRecordMatcher(name); + } + function resolve(rawLocation, currentLocation) { + currentLocation = assign({}, currentLocation || currentRoute.value); + if (typeof rawLocation === "string") { + const locationNormalized = parseURL(parseQuery$1, rawLocation, currentLocation.path); + const matchedRoute2 = matcher.resolve({ path: locationNormalized.path }, currentLocation); + const href2 = routerHistory.createHref(locationNormalized.fullPath); + if (process.env.NODE_ENV !== "production") { + if (href2.startsWith("//")) + warn(`Location "${rawLocation}" resolved to "${href2}". A resolved location cannot start with multiple slashes.`); + else if (!matchedRoute2.matched.length) { + warn(`No match found for location with path "${rawLocation}"`); + } + } + return assign(locationNormalized, matchedRoute2, { + params: decodeParams(matchedRoute2.params), + hash: decode(locationNormalized.hash), + redirectedFrom: void 0, + href: href2 + }); + } + let matcherLocation; + if ("path" in rawLocation) { + if (process.env.NODE_ENV !== "production" && "params" in rawLocation && !("name" in rawLocation) && // @ts-expect-error: the type is never + Object.keys(rawLocation.params).length) { + warn(`Path "${rawLocation.path}" was passed with params but they will be ignored. Use a named route alongside params instead.`); + } + matcherLocation = assign({}, rawLocation, { + path: parseURL(parseQuery$1, rawLocation.path, currentLocation.path).path + }); + } else { + const targetParams = assign({}, rawLocation.params); + for (const key in targetParams) { + if (targetParams[key] == null) { + delete targetParams[key]; + } + } + matcherLocation = assign({}, rawLocation, { + params: encodeParams(targetParams) + }); + currentLocation.params = encodeParams(currentLocation.params); + } + const matchedRoute = matcher.resolve(matcherLocation, currentLocation); + const hash = rawLocation.hash || ""; + if (process.env.NODE_ENV !== "production" && hash && !hash.startsWith("#")) { + warn(`A \`hash\` should always start with the character "#". Replace "${hash}" with "#${hash}".`); + } + matchedRoute.params = normalizeParams(decodeParams(matchedRoute.params)); + const fullPath = stringifyURL(stringifyQuery$1, assign({}, rawLocation, { + hash: encodeHash(hash), + path: matchedRoute.path + })); + const href = routerHistory.createHref(fullPath); + if (process.env.NODE_ENV !== "production") { + if (href.startsWith("//")) { + warn(`Location "${rawLocation}" resolved to "${href}". A resolved location cannot start with multiple slashes.`); + } else if (!matchedRoute.matched.length) { + warn(`No match found for location with path "${"path" in rawLocation ? rawLocation.path : rawLocation}"`); + } + } + return assign({ + fullPath, + // keep the hash encoded so fullPath is effectively path + encodedQuery + + // hash + hash, + query: ( + // if the user is using a custom query lib like qs, we might have + // nested objects, so we keep the query as is, meaning it can contain + // numbers at `$route.query`, but at the point, the user will have to + // use their own type anyway. + // https://github.com/vuejs/router/issues/328#issuecomment-649481567 + stringifyQuery$1 === stringifyQuery ? normalizeQuery(rawLocation.query) : rawLocation.query || {} + ) + }, matchedRoute, { + redirectedFrom: void 0, + href + }); + } + function locationAsObject(to) { + return typeof to === "string" ? parseURL(parseQuery$1, to, currentRoute.value.path) : assign({}, to); + } + function checkCanceledNavigation(to, from) { + if (pendingLocation !== to) { + return createRouterError(8, { + from, + to + }); + } + } + function push(to) { + return pushWithRedirect(to); + } + function replace(to) { + return push(assign(locationAsObject(to), { replace: true })); + } + function handleRedirectRecord(to) { + const lastMatched = to.matched[to.matched.length - 1]; + if (lastMatched && lastMatched.redirect) { + const { redirect } = lastMatched; + let newTargetLocation = typeof redirect === "function" ? redirect(to) : redirect; + if (typeof newTargetLocation === "string") { + newTargetLocation = newTargetLocation.includes("?") || newTargetLocation.includes("#") ? newTargetLocation = locationAsObject(newTargetLocation) : ( + // force empty params + { path: newTargetLocation } + ); + newTargetLocation.params = {}; + } + if (process.env.NODE_ENV !== "production" && !("path" in newTargetLocation) && !("name" in newTargetLocation)) { + warn(`Invalid redirect found: +${JSON.stringify(newTargetLocation, null, 2)} + when navigating to "${to.fullPath}". A redirect must contain a name or path. This will break in production.`); + throw new Error("Invalid redirect"); + } + return assign({ + query: to.query, + hash: to.hash, + // avoid transferring params if the redirect has a path + params: "path" in newTargetLocation ? {} : to.params + }, newTargetLocation); + } + } + function pushWithRedirect(to, redirectedFrom) { + const targetLocation = pendingLocation = resolve(to); + const from = currentRoute.value; + const data = to.state; + const force = to.force; + const replace2 = to.replace === true; + const shouldRedirect = handleRedirectRecord(targetLocation); + if (shouldRedirect) + return pushWithRedirect( + assign(locationAsObject(shouldRedirect), { + state: typeof shouldRedirect === "object" ? assign({}, data, shouldRedirect.state) : data, + force, + replace: replace2 + }), + // keep original redirectedFrom if it exists + redirectedFrom || targetLocation + ); + const toLocation = targetLocation; + toLocation.redirectedFrom = redirectedFrom; + let failure; + if (!force && isSameRouteLocation(stringifyQuery$1, from, targetLocation)) { + failure = createRouterError(16, { to: toLocation, from }); + handleScroll( + from, + from, + // this is a push, the only way for it to be triggered from a + // history.listen is with a redirect, which makes it become a push + true, + // This cannot be the first navigation because the initial location + // cannot be manually navigated to + false + ); + } + return (failure ? Promise.resolve(failure) : navigate(toLocation, from)).catch((error) => isNavigationFailure(error) ? ( + // navigation redirects still mark the router as ready + isNavigationFailure( + error, + 2 + /* ErrorTypes.NAVIGATION_GUARD_REDIRECT */ + ) ? error : markAsReady(error) + ) : ( + // reject any unknown error + triggerError(error, toLocation, from) + )).then((failure2) => { + if (failure2) { + if (isNavigationFailure( + failure2, + 2 + /* ErrorTypes.NAVIGATION_GUARD_REDIRECT */ + )) { + if (process.env.NODE_ENV !== "production" && // we are redirecting to the same location we were already at + isSameRouteLocation(stringifyQuery$1, resolve(failure2.to), toLocation) && // and we have done it a couple of times + redirectedFrom && // @ts-expect-error: added only in dev + (redirectedFrom._count = redirectedFrom._count ? ( + // @ts-expect-error + redirectedFrom._count + 1 + ) : 1) > 30) { + warn(`Detected a possibly infinite redirection in a navigation guard when going from "${from.fullPath}" to "${toLocation.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.`); + return Promise.reject(new Error("Infinite redirect in navigation guard")); + } + return pushWithRedirect( + // keep options + assign({ + // preserve an existing replacement but allow the redirect to override it + replace: replace2 + }, locationAsObject(failure2.to), { + state: typeof failure2.to === "object" ? assign({}, data, failure2.to.state) : data, + force + }), + // preserve the original redirectedFrom if any + redirectedFrom || toLocation + ); + } + } else { + failure2 = finalizeNavigation(toLocation, from, true, replace2, data); + } + triggerAfterEach(toLocation, from, failure2); + return failure2; + }); + } + function checkCanceledNavigationAndReject(to, from) { + const error = checkCanceledNavigation(to, from); + return error ? Promise.reject(error) : Promise.resolve(); + } + function runWithContext(fn) { + const app = installedApps.values().next().value; + return app && typeof app.runWithContext === "function" ? app.runWithContext(fn) : fn(); + } + function navigate(to, from) { + let guards; + const [leavingRecords, updatingRecords, enteringRecords] = extractChangingRecords(to, from); + guards = extractComponentsGuards(leavingRecords.reverse(), "beforeRouteLeave", to, from); + for (const record of leavingRecords) { + record.leaveGuards.forEach((guard) => { + guards.push(guardToPromiseFn(guard, to, from)); + }); + } + const canceledNavigationCheck = checkCanceledNavigationAndReject.bind(null, to, from); + guards.push(canceledNavigationCheck); + return runGuardQueue(guards).then(() => { + guards = []; + for (const guard of beforeGuards.list()) { + guards.push(guardToPromiseFn(guard, to, from)); + } + guards.push(canceledNavigationCheck); + return runGuardQueue(guards); + }).then(() => { + guards = extractComponentsGuards(updatingRecords, "beforeRouteUpdate", to, from); + for (const record of updatingRecords) { + record.updateGuards.forEach((guard) => { + guards.push(guardToPromiseFn(guard, to, from)); + }); + } + guards.push(canceledNavigationCheck); + return runGuardQueue(guards); + }).then(() => { + guards = []; + for (const record of enteringRecords) { + if (record.beforeEnter) { + if (isArray(record.beforeEnter)) { + for (const beforeEnter of record.beforeEnter) + guards.push(guardToPromiseFn(beforeEnter, to, from)); + } else { + guards.push(guardToPromiseFn(record.beforeEnter, to, from)); + } + } + } + guards.push(canceledNavigationCheck); + return runGuardQueue(guards); + }).then(() => { + to.matched.forEach((record) => record.enterCallbacks = {}); + guards = extractComponentsGuards(enteringRecords, "beforeRouteEnter", to, from); + guards.push(canceledNavigationCheck); + return runGuardQueue(guards); + }).then(() => { + guards = []; + for (const guard of beforeResolveGuards.list()) { + guards.push(guardToPromiseFn(guard, to, from)); + } + guards.push(canceledNavigationCheck); + return runGuardQueue(guards); + }).catch((err) => isNavigationFailure( + err, + 8 + /* ErrorTypes.NAVIGATION_CANCELLED */ + ) ? err : Promise.reject(err)); + } + function triggerAfterEach(to, from, failure) { + afterGuards.list().forEach((guard) => runWithContext(() => guard(to, from, failure))); + } + function finalizeNavigation(toLocation, from, isPush, replace2, data) { + const error = checkCanceledNavigation(toLocation, from); + if (error) + return error; + const isFirstNavigation = from === START_LOCATION_NORMALIZED; + const state = !isBrowser ? {} : history.state; + if (isPush) { + if (replace2 || isFirstNavigation) + routerHistory.replace(toLocation.fullPath, assign({ + scroll: isFirstNavigation && state && state.scroll + }, data)); + else + routerHistory.push(toLocation.fullPath, data); + } + currentRoute.value = toLocation; + handleScroll(toLocation, from, isPush, isFirstNavigation); + markAsReady(); + } + let removeHistoryListener; + function setupListeners() { + if (removeHistoryListener) + return; + removeHistoryListener = routerHistory.listen((to, _from, info) => { + if (!router2.listening) + return; + const toLocation = resolve(to); + const shouldRedirect = handleRedirectRecord(toLocation); + if (shouldRedirect) { + pushWithRedirect(assign(shouldRedirect, { replace: true }), toLocation).catch(noop); + return; + } + pendingLocation = toLocation; + const from = currentRoute.value; + if (isBrowser) { + saveScrollPosition(getScrollKey(from.fullPath, info.delta), computeScrollPosition()); + } + navigate(toLocation, from).catch((error) => { + if (isNavigationFailure( + error, + 4 | 8 + /* ErrorTypes.NAVIGATION_CANCELLED */ + )) { + return error; + } + if (isNavigationFailure( + error, + 2 + /* ErrorTypes.NAVIGATION_GUARD_REDIRECT */ + )) { + pushWithRedirect( + error.to, + toLocation + // avoid an uncaught rejection, let push call triggerError + ).then((failure) => { + if (isNavigationFailure( + failure, + 4 | 16 + /* ErrorTypes.NAVIGATION_DUPLICATED */ + ) && !info.delta && info.type === NavigationType.pop) { + routerHistory.go(-1, false); + } + }).catch(noop); + return Promise.reject(); + } + if (info.delta) { + routerHistory.go(-info.delta, false); + } + return triggerError(error, toLocation, from); + }).then((failure) => { + failure = failure || finalizeNavigation( + // after navigation, all matched components are resolved + toLocation, + from, + false + ); + if (failure) { + if (info.delta && // a new navigation has been triggered, so we do not want to revert, that will change the current history + // entry while a different route is displayed + !isNavigationFailure( + failure, + 8 + /* ErrorTypes.NAVIGATION_CANCELLED */ + )) { + routerHistory.go(-info.delta, false); + } else if (info.type === NavigationType.pop && isNavigationFailure( + failure, + 4 | 16 + /* ErrorTypes.NAVIGATION_DUPLICATED */ + )) { + routerHistory.go(-1, false); + } + } + triggerAfterEach(toLocation, from, failure); + }).catch(noop); + }); + } + let readyHandlers = useCallbacks(); + let errorListeners = useCallbacks(); + let ready; + function triggerError(error, to, from) { + markAsReady(error); + const list = errorListeners.list(); + if (list.length) { + list.forEach((handler) => handler(error, to, from)); + } else { + if (process.env.NODE_ENV !== "production") { + warn("uncaught error during route navigation:"); + } + console.error(error); + } + return Promise.reject(error); + } + function isReady() { + if (ready && currentRoute.value !== START_LOCATION_NORMALIZED) + return Promise.resolve(); + return new Promise((resolve2, reject) => { + readyHandlers.add([resolve2, reject]); + }); + } + function markAsReady(err) { + if (!ready) { + ready = !err; + setupListeners(); + readyHandlers.list().forEach(([resolve2, reject]) => err ? reject(err) : resolve2()); + readyHandlers.reset(); + } + return err; + } + function handleScroll(to, from, isPush, isFirstNavigation) { + const { scrollBehavior } = options; + if (!isBrowser || !scrollBehavior) + return Promise.resolve(); + const scrollPosition = !isPush && getSavedScrollPosition(getScrollKey(to.fullPath, 0)) || (isFirstNavigation || !isPush) && history.state && history.state.scroll || null; + return nextTick().then(() => scrollBehavior(to, from, scrollPosition)).then((position) => position && scrollToPosition(position)).catch((err) => triggerError(err, to, from)); + } + const go = (delta) => routerHistory.go(delta); + let started; + const installedApps = /* @__PURE__ */ new Set(); + const router2 = { + currentRoute, + listening: true, + addRoute, + removeRoute, + hasRoute, + getRoutes, + resolve, + options, + push, + replace, + go, + back: () => go(-1), + forward: () => go(1), + beforeEach: beforeGuards.add, + beforeResolve: beforeResolveGuards.add, + afterEach: afterGuards.add, + onError: errorListeners.add, + isReady, + install(app) { + const router3 = this; + app.component("RouterLink", RouterLink); + app.component("RouterView", RouterView); + app.config.globalProperties.$router = router3; + Object.defineProperty(app.config.globalProperties, "$route", { + enumerable: true, + get: () => unref(currentRoute) + }); + if (isBrowser && // used for the initial navigation client side to avoid pushing + // multiple times when the router is used in multiple apps + !started && currentRoute.value === START_LOCATION_NORMALIZED) { + started = true; + push(routerHistory.location).catch((err) => { + if (process.env.NODE_ENV !== "production") + warn("Unexpected error when starting the router:", err); + }); + } + const reactiveRoute = {}; + for (const key in START_LOCATION_NORMALIZED) { + Object.defineProperty(reactiveRoute, key, { + get: () => currentRoute.value[key], + enumerable: true + }); + } + app.provide(routerKey, router3); + app.provide(routeLocationKey, shallowReactive(reactiveRoute)); + app.provide(routerViewLocationKey, currentRoute); + const unmountApp = app.unmount; + installedApps.add(app); + app.unmount = function() { + installedApps.delete(app); + if (installedApps.size < 1) { + pendingLocation = START_LOCATION_NORMALIZED; + removeHistoryListener && removeHistoryListener(); + removeHistoryListener = null; + currentRoute.value = START_LOCATION_NORMALIZED; + started = false; + ready = false; + } + unmountApp(); + }; + if ((process.env.NODE_ENV !== "production" || false) && isBrowser) { + addDevtools(app, router3, matcher); + } + } + }; + function runGuardQueue(guards) { + return guards.reduce((promise, guard) => promise.then(() => runWithContext(guard)), Promise.resolve()); + } + return router2; +} +function extractChangingRecords(to, from) { + const leavingRecords = []; + const updatingRecords = []; + const enteringRecords = []; + const len = Math.max(from.matched.length, to.matched.length); + for (let i = 0; i < len; i++) { + const recordFrom = from.matched[i]; + if (recordFrom) { + if (to.matched.find((record) => isSameRouteRecord(record, recordFrom))) + updatingRecords.push(recordFrom); + else + leavingRecords.push(recordFrom); + } + const recordTo = to.matched[i]; + if (recordTo) { + if (!from.matched.find((record) => isSameRouteRecord(record, recordTo))) { + enteringRecords.push(recordTo); + } + } + } + return [leavingRecords, updatingRecords, enteringRecords]; +} +const router = createRouter({ + history: createWebHistory(), + routes: [] +}); +function isPromise(obj) { + return obj && typeof obj.then === "function"; +} +Promise.resolve(false); +Promise.resolve(true); +var PROMISE_RESOLVED_VOID = Promise.resolve(); +function sleep(time, resolveWith) { + if (!time) + time = 0; + return new Promise(function(res) { + return setTimeout(function() { + return res(resolveWith); + }, time); + }); +} +function randomInt(min, max) { + return Math.floor(Math.random() * (max - min + 1) + min); +} +function randomToken() { + return Math.random().toString(36).substring(2); +} +var lastMs = 0; +var additional = 0; +function microSeconds$4() { + var ms = (/* @__PURE__ */ new Date()).getTime(); + if (ms === lastMs) { + additional++; + return ms * 1e3 + additional; + } else { + lastMs = ms; + additional = 0; + return ms * 1e3; + } +} +var microSeconds$3 = microSeconds$4; +var type$3 = "native"; +function create$3(channelName) { + var state = { + messagesCallback: null, + bc: new BroadcastChannel(channelName), + subFns: [] + // subscriberFunctions + }; + state.bc.onmessage = function(msg) { + if (state.messagesCallback) { + state.messagesCallback(msg.data); + } + }; + return state; +} +function close$3(channelState) { + channelState.bc.close(); + channelState.subFns = []; +} +function postMessage$3(channelState, messageJson) { + try { + channelState.bc.postMessage(messageJson, false); + return PROMISE_RESOLVED_VOID; + } catch (err) { + return Promise.reject(err); + } +} +function onMessage$3(channelState, fn) { + channelState.messagesCallback = fn; +} +function canBeUsed$3() { + if (typeof window === "undefined") { + return false; + } + 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 true; + } else { + return false; + } +} +function averageResponseTime$3() { + return 150; +} +var NativeMethod = { + create: create$3, + close: close$3, + onMessage: onMessage$3, + postMessage: postMessage$3, + canBeUsed: canBeUsed$3, + type: type$3, + averageResponseTime: averageResponseTime$3, + microSeconds: microSeconds$3 +}; +var ObliviousSet = ( + /** @class */ + function() { + function ObliviousSet2(ttl) { + this.ttl = ttl; + this.map = /* @__PURE__ */ new Map(); + this._to = false; + } + ObliviousSet2.prototype.has = function(value) { + return this.map.has(value); + }; + ObliviousSet2.prototype.add = function(value) { + var _this = this; + this.map.set(value, now()); + if (!this._to) { + this._to = true; + setTimeout(function() { + _this._to = false; + removeTooOldValues(_this); + }, 0); + } + }; + ObliviousSet2.prototype.clear = function() { + this.map.clear(); + }; + return ObliviousSet2; + }() +); +function removeTooOldValues(obliviousSet) { + var olderThen = now() - obliviousSet.ttl; + var iterator = obliviousSet.map[Symbol.iterator](); + while (true) { + var next = iterator.next().value; + if (!next) { + return; + } + var value = next[0]; + var time = next[1]; + if (time < olderThen) { + obliviousSet.map.delete(value); + } else { + return; + } + } +} +function now() { + return (/* @__PURE__ */ new Date()).getTime(); +} +function fillOptionsWithDefaults() { + var originalOptions = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {}; + var options = JSON.parse(JSON.stringify(originalOptions)); + if (typeof options.webWorkerSupport === "undefined") + options.webWorkerSupport = true; + if (!options.idb) + options.idb = {}; + if (!options.idb.ttl) + options.idb.ttl = 1e3 * 45; + if (!options.idb.fallbackInterval) + options.idb.fallbackInterval = 150; + if (originalOptions.idb && typeof originalOptions.idb.onclose === "function") + options.idb.onclose = originalOptions.idb.onclose; + if (!options.localstorage) + options.localstorage = {}; + if (!options.localstorage.removeTimeout) + options.localstorage.removeTimeout = 1e3 * 60; + if (originalOptions.methods) + options.methods = originalOptions.methods; + if (!options.node) + options.node = {}; + if (!options.node.ttl) + options.node.ttl = 1e3 * 60 * 2; + if (!options.node.maxParallelWrites) + options.node.maxParallelWrites = 2048; + if (typeof options.node.useFastPath === "undefined") + options.node.useFastPath = true; + return options; +} +var microSeconds$2 = microSeconds$4; +var DB_PREFIX = "pubkey.broadcast-channel-0-"; +var OBJECT_STORE_ID = "messages"; +var TRANSACTION_SETTINGS = { + durability: "relaxed" +}; +var type$2 = "idb"; +function getIdb() { + if (typeof indexedDB !== "undefined") + return indexedDB; + if (typeof window !== "undefined") { + if (typeof window.mozIndexedDB !== "undefined") + return window.mozIndexedDB; + if (typeof window.webkitIndexedDB !== "undefined") + return window.webkitIndexedDB; + if (typeof window.msIndexedDB !== "undefined") + return window.msIndexedDB; + } + return false; +} +function commitIndexedDBTransaction(tx) { + if (tx.commit) { + tx.commit(); + } +} +function createDatabase(channelName) { + var IndexedDB = getIdb(); + var dbName = DB_PREFIX + channelName; + var openRequest = IndexedDB.open(dbName); + openRequest.onupgradeneeded = function(ev) { + var db = ev.target.result; + db.createObjectStore(OBJECT_STORE_ID, { + keyPath: "id", + autoIncrement: true + }); + }; + return new Promise(function(res, rej) { + openRequest.onerror = function(ev) { + return rej(ev); + }; + openRequest.onsuccess = function() { + res(openRequest.result); + }; + }); +} +function writeMessage(db, readerUuid, messageJson) { + var time = (/* @__PURE__ */ new Date()).getTime(); + var writeObject = { + uuid: readerUuid, + time, + data: messageJson + }; + var tx = db.transaction([OBJECT_STORE_ID], "readwrite", TRANSACTION_SETTINGS); + return new Promise(function(res, rej) { + tx.oncomplete = function() { + return res(); + }; + tx.onerror = function(ev) { + return rej(ev); + }; + var objectStore = tx.objectStore(OBJECT_STORE_ID); + objectStore.add(writeObject); + commitIndexedDBTransaction(tx); + }); +} +function getMessagesHigherThan(db, lastCursorId) { + var tx = db.transaction(OBJECT_STORE_ID, "readonly", TRANSACTION_SETTINGS); + var objectStore = tx.objectStore(OBJECT_STORE_ID); + var ret = []; + var keyRangeValue = IDBKeyRange.bound(lastCursorId + 1, Infinity); + if (objectStore.getAll) { + var getAllRequest = objectStore.getAll(keyRangeValue); + return new Promise(function(res, rej) { + getAllRequest.onerror = function(err) { + return rej(err); + }; + getAllRequest.onsuccess = function(e) { + res(e.target.result); + }; + }); + } + function openCursor() { + try { + keyRangeValue = IDBKeyRange.bound(lastCursorId + 1, Infinity); + return objectStore.openCursor(keyRangeValue); + } catch (e) { + return objectStore.openCursor(); + } + } + return new Promise(function(res, rej) { + var openCursorRequest = openCursor(); + openCursorRequest.onerror = function(err) { + return rej(err); + }; + openCursorRequest.onsuccess = function(ev) { + var cursor = ev.target.result; + if (cursor) { + if (cursor.value.id < lastCursorId + 1) { + cursor["continue"](lastCursorId + 1); + } else { + ret.push(cursor.value); + cursor["continue"](); + } + } else { + commitIndexedDBTransaction(tx); + res(ret); + } + }; + }); +} +function removeMessagesById(channelState, ids) { + if (channelState.closed) { + return Promise.resolve([]); + } + var tx = channelState.db.transaction(OBJECT_STORE_ID, "readwrite", TRANSACTION_SETTINGS); + var objectStore = tx.objectStore(OBJECT_STORE_ID); + return Promise.all(ids.map(function(id) { + var deleteRequest = objectStore["delete"](id); + return new Promise(function(res) { + deleteRequest.onsuccess = function() { + return res(); + }; + }); + })); +} +function getOldMessages(db, ttl) { + var olderThen = (/* @__PURE__ */ new Date()).getTime() - ttl; + var tx = db.transaction(OBJECT_STORE_ID, "readonly", TRANSACTION_SETTINGS); + var objectStore = tx.objectStore(OBJECT_STORE_ID); + var ret = []; + return new Promise(function(res) { + objectStore.openCursor().onsuccess = function(ev) { + var cursor = ev.target.result; + if (cursor) { + var msgObk = cursor.value; + if (msgObk.time < olderThen) { + ret.push(msgObk); + cursor["continue"](); + } else { + commitIndexedDBTransaction(tx); + res(ret); + } + } else { + res(ret); + } + }; + }); +} +function cleanOldMessages(channelState) { + return getOldMessages(channelState.db, channelState.options.idb.ttl).then(function(tooOld) { + return removeMessagesById(channelState, tooOld.map(function(msg) { + return msg.id; + })); + }); +} +function create$2(channelName, options) { + options = fillOptionsWithDefaults(options); + return createDatabase(channelName).then(function(db) { + var state = { + closed: false, + lastCursorId: 0, + channelName, + options, + uuid: randomToken(), + /** + * emittedMessagesIds + * contains all messages that have been emitted before + * @type {ObliviousSet} + */ + eMIs: new ObliviousSet(options.idb.ttl * 2), + // ensures we do not read messages in parallel + writeBlockPromise: PROMISE_RESOLVED_VOID, + messagesCallback: null, + readQueuePromises: [], + db + }; + db.onclose = function() { + state.closed = true; + if (options.idb.onclose) + options.idb.onclose(); + }; + _readLoop(state); + return state; + }); +} +function _readLoop(state) { + if (state.closed) + return; + readNewMessages(state).then(function() { + return sleep(state.options.idb.fallbackInterval); + }).then(function() { + return _readLoop(state); + }); +} +function _filterMessage(msgObj, state) { + if (msgObj.uuid === state.uuid) + return false; + if (state.eMIs.has(msgObj.id)) + return false; + if (msgObj.data.time < state.messagesCallbackTime) + return false; + return true; +} +function readNewMessages(state) { + if (state.closed) + return PROMISE_RESOLVED_VOID; + if (!state.messagesCallback) + return PROMISE_RESOLVED_VOID; + return getMessagesHigherThan(state.db, state.lastCursorId).then(function(newerMessages) { + var useMessages = newerMessages.filter(function(msgObj) { + return !!msgObj; + }).map(function(msgObj) { + if (msgObj.id > state.lastCursorId) { + state.lastCursorId = msgObj.id; + } + return msgObj; + }).filter(function(msgObj) { + return _filterMessage(msgObj, state); + }).sort(function(msgObjA, msgObjB) { + return msgObjA.time - msgObjB.time; + }); + useMessages.forEach(function(msgObj) { + if (state.messagesCallback) { + state.eMIs.add(msgObj.id); + state.messagesCallback(msgObj.data); + } + }); + return PROMISE_RESOLVED_VOID; + }); +} +function close$2(channelState) { + channelState.closed = true; + channelState.db.close(); +} +function postMessage$2(channelState, messageJson) { + channelState.writeBlockPromise = channelState.writeBlockPromise.then(function() { + return writeMessage(channelState.db, channelState.uuid, messageJson); + }).then(function() { + if (randomInt(0, 10) === 0) { + cleanOldMessages(channelState); + } + }); + return channelState.writeBlockPromise; +} +function onMessage$2(channelState, fn, time) { + channelState.messagesCallbackTime = time; + channelState.messagesCallback = fn; + readNewMessages(channelState); +} +function canBeUsed$2() { + return !!getIdb(); +} +function averageResponseTime$2(options) { + return options.idb.fallbackInterval * 2; +} +var IndexedDBMethod = { + create: create$2, + close: close$2, + onMessage: onMessage$2, + postMessage: postMessage$2, + canBeUsed: canBeUsed$2, + type: type$2, + averageResponseTime: averageResponseTime$2, + microSeconds: microSeconds$2 +}; +var microSeconds$1 = microSeconds$4; +var KEY_PREFIX = "pubkey.broadcastChannel-"; +var type$1 = "localstorage"; +function getLocalStorage() { + var localStorage2; + if (typeof window === "undefined") + return null; + try { + localStorage2 = window.localStorage; + localStorage2 = window["ie8-eventlistener/storage"] || window.localStorage; + } catch (e) { + } + return localStorage2; +} +function storageKey(channelName) { + return KEY_PREFIX + channelName; +} +function postMessage$1(channelState, messageJson) { + return new Promise(function(res) { + sleep().then(function() { + var key = storageKey(channelState.channelName); + var writeObj = { + token: randomToken(), + time: (/* @__PURE__ */ new Date()).getTime(), + data: messageJson, + uuid: channelState.uuid + }; + var value = JSON.stringify(writeObj); + getLocalStorage().setItem(key, value); + var ev = document.createEvent("Event"); + ev.initEvent("storage", true, true); + ev.key = key; + ev.newValue = value; + window.dispatchEvent(ev); + res(); + }); + }); +} +function addStorageEventListener(channelName, fn) { + var key = storageKey(channelName); + var listener = function listener2(ev) { + if (ev.key === key) { + fn(JSON.parse(ev.newValue)); + } + }; + window.addEventListener("storage", listener); + return listener; +} +function removeStorageEventListener(listener) { + window.removeEventListener("storage", listener); +} +function create$1(channelName, options) { + options = fillOptionsWithDefaults(options); + if (!canBeUsed$1()) { + throw new Error("BroadcastChannel: localstorage cannot be used"); + } + var uuid = randomToken(); + var eMIs = new ObliviousSet(options.localstorage.removeTimeout); + var state = { + channelName, + uuid, + eMIs + // emittedMessagesIds + }; + state.listener = addStorageEventListener(channelName, function(msgObj) { + if (!state.messagesCallback) + return; + if (msgObj.uuid === uuid) + return; + if (!msgObj.token || eMIs.has(msgObj.token)) + return; + if (msgObj.data.time && msgObj.data.time < state.messagesCallbackTime) + return; + eMIs.add(msgObj.token); + state.messagesCallback(msgObj.data); + }); + return state; +} +function close$1(channelState) { + removeStorageEventListener(channelState.listener); +} +function onMessage$1(channelState, fn, time) { + channelState.messagesCallbackTime = time; + channelState.messagesCallback = fn; +} +function canBeUsed$1() { + var ls = getLocalStorage(); + if (!ls) + return false; + try { + var key = "__broadcastchannel_check"; + ls.setItem(key, "works"); + ls.removeItem(key); + } catch (e) { + return false; + } + return true; +} +function averageResponseTime$1() { + var defaultTime = 120; + var userAgent = navigator.userAgent.toLowerCase(); + if (userAgent.includes("safari") && !userAgent.includes("chrome")) { + return defaultTime * 2; + } + return defaultTime; +} +var LocalstorageMethod = { + create: create$1, + close: close$1, + onMessage: onMessage$1, + postMessage: postMessage$1, + canBeUsed: canBeUsed$1, + type: type$1, + averageResponseTime: averageResponseTime$1, + microSeconds: microSeconds$1 +}; +var microSeconds = microSeconds$4; +var type = "simulate"; +var SIMULATE_CHANNELS = /* @__PURE__ */ new Set(); +function create(channelName) { + var state = { + name: channelName, + messagesCallback: null + }; + SIMULATE_CHANNELS.add(state); + return state; +} +function close(channelState) { + SIMULATE_CHANNELS["delete"](channelState); +} +function postMessage(channelState, messageJson) { + return new Promise(function(res) { + return setTimeout(function() { + var channelArray = Array.from(SIMULATE_CHANNELS); + channelArray.filter(function(channel) { + return channel.name === channelState.name; + }).filter(function(channel) { + return channel !== channelState; + }).filter(function(channel) { + return !!channel.messagesCallback; + }).forEach(function(channel) { + return channel.messagesCallback(messageJson); + }); + res(); + }, 5); + }); +} +function onMessage(channelState, fn) { + channelState.messagesCallback = fn; +} +function canBeUsed() { + return true; +} +function averageResponseTime() { + return 5; +} +var SimulateMethod = { + create, + close, + onMessage, + postMessage, + canBeUsed, + type, + averageResponseTime, + microSeconds +}; +var METHODS = [ + NativeMethod, + // fastest + IndexedDBMethod, + LocalstorageMethod +]; +function chooseMethod(options) { + var chooseMethods = [].concat(options.methods, METHODS).filter(Boolean); + if (options.type) { + if (options.type === "simulate") { + return SimulateMethod; + } + var ret = chooseMethods.find(function(m2) { + return m2.type === options.type; + }); + if (!ret) + throw new Error("method-type " + options.type + " not found"); + else + return ret; + } + if (!options.webWorkerSupport) { + chooseMethods = chooseMethods.filter(function(m2) { + return m2.type !== "idb"; + }); + } + var useMethod = chooseMethods.find(function(method) { + return method.canBeUsed(); + }); + if (!useMethod) + throw new Error("No usable method found in " + JSON.stringify(METHODS.map(function(m2) { + return m2.type; + }))); + else + return useMethod; +} +var OPEN_BROADCAST_CHANNELS = /* @__PURE__ */ new Set(); +var lastId = 0; +var BroadcastChannel$1 = function BroadcastChannel2(name, options) { + this.id = lastId++; + OPEN_BROADCAST_CHANNELS.add(this); + this.name = name; + if (ENFORCED_OPTIONS) { + options = ENFORCED_OPTIONS; + } + this.options = fillOptionsWithDefaults(options); + this.method = chooseMethod(this.options); + this._iL = false; + this._onML = null; + this._addEL = { + message: [], + internal: [] + }; + this._uMP = /* @__PURE__ */ new Set(); + this._befC = []; + this._prepP = null; + _prepareChannel(this); +}; +BroadcastChannel$1._pubkey = true; +var ENFORCED_OPTIONS; +BroadcastChannel$1.prototype = { + postMessage: function postMessage2(msg) { + if (this.closed) { + throw new Error("BroadcastChannel.postMessage(): Cannot post message after channel has closed " + /** + * In the past when this error appeared, it was really hard to debug. + * So now we log the msg together with the error so it at least + * gives some clue about where in your application this happens. + */ + JSON.stringify(msg)); + } + return _post(this, "message", msg); + }, + postInternal: function postInternal(msg) { + return _post(this, "internal", msg); + }, + set onmessage(fn) { + var time = this.method.microSeconds(); + var listenObj = { + time, + fn + }; + _removeListenerObject(this, "message", this._onML); + if (fn && typeof fn === "function") { + this._onML = listenObj; + _addListenerObject(this, "message", listenObj); + } else { + this._onML = null; + } + }, + addEventListener: function addEventListener(type2, fn) { + var time = this.method.microSeconds(); + var listenObj = { + time, + fn + }; + _addListenerObject(this, type2, listenObj); + }, + removeEventListener: function removeEventListener(type2, fn) { + var obj = this._addEL[type2].find(function(obj2) { + return obj2.fn === fn; + }); + _removeListenerObject(this, type2, obj); + }, + close: function close2() { + var _this = this; + if (this.closed) { + return; + } + OPEN_BROADCAST_CHANNELS["delete"](this); + this.closed = true; + var awaitPrepare = this._prepP ? this._prepP : PROMISE_RESOLVED_VOID; + this._onML = null; + this._addEL.message = []; + return awaitPrepare.then(function() { + return Promise.all(Array.from(_this._uMP)); + }).then(function() { + return Promise.all(_this._befC.map(function(fn) { + return fn(); + })); + }).then(function() { + return _this.method.close(_this._state); + }); + }, + get type() { + return this.method.type; + }, + get isClosed() { + return this.closed; + } +}; +function _post(broadcastChannel, type2, msg) { + var time = broadcastChannel.method.microSeconds(); + var msgObj = { + time, + type: type2, + data: msg + }; + var awaitPrepare = broadcastChannel._prepP ? broadcastChannel._prepP : PROMISE_RESOLVED_VOID; + return awaitPrepare.then(function() { + var sendPromise = broadcastChannel.method.postMessage(broadcastChannel._state, msgObj); + broadcastChannel._uMP.add(sendPromise); + sendPromise["catch"]().then(function() { + return broadcastChannel._uMP["delete"](sendPromise); + }); + return sendPromise; + }); +} +function _prepareChannel(channel) { + var maybePromise = channel.method.create(channel.name, channel.options); + if (isPromise(maybePromise)) { + channel._prepP = maybePromise; + maybePromise.then(function(s) { + channel._state = s; + }); + } else { + channel._state = maybePromise; + } +} +function _hasMessageListeners(channel) { + if (channel._addEL.message.length > 0) + return true; + if (channel._addEL.internal.length > 0) + return true; + return false; +} +function _addListenerObject(channel, type2, obj) { + channel._addEL[type2].push(obj); + _startListening(channel); +} +function _removeListenerObject(channel, type2, obj) { + channel._addEL[type2] = channel._addEL[type2].filter(function(o) { + return o !== obj; + }); + _stopListening(channel); +} +function _startListening(channel) { + if (!channel._iL && _hasMessageListeners(channel)) { + var listenerFn = function listenerFn2(msgObj) { + channel._addEL[msgObj.type].forEach(function(listenerObject) { + var hundredMsInMicro = 100 * 1e3; + var minMessageTime = listenerObject.time - hundredMsInMicro; + if (msgObj.time >= minMessageTime) { + listenerObject.fn(msgObj.data); + } + }); + }; + var time = channel.method.microSeconds(); + if (channel._prepP) { + channel._prepP.then(function() { + channel._iL = true; + channel.method.onMessage(channel._state, listenerFn, time); + }); + } else { + channel._iL = true; + channel.method.onMessage(channel._state, listenerFn, time); + } + } +} +function _stopListening(channel) { + if (channel._iL && !_hasMessageListeners(channel)) { + channel._iL = false; + var time = channel.method.microSeconds(); + channel.method.onMessage(channel._state, null, time); + } +} +class DevalueError extends Error { + /** + * @param {string} message + * @param {string[]} keys + */ + constructor(message, keys) { + super(message); + this.name = "DevalueError"; + this.path = keys.join(""); + } +} +function is_primitive(thing) { + return Object(thing) !== thing; +} +const object_proto_names = /* @__PURE__ */ Object.getOwnPropertyNames( + Object.prototype +).sort().join("\0"); +function is_plain_object(thing) { + const proto = Object.getPrototypeOf(thing); + return proto === Object.prototype || proto === null || Object.getOwnPropertyNames(proto).sort().join("\0") === object_proto_names; +} +function get_type(thing) { + return Object.prototype.toString.call(thing).slice(8, -1); +} +function get_escaped_char(char) { + switch (char) { + case '"': + return '\\"'; + case "<": + return "\\u003C"; + case "\\": + return "\\\\"; + case "\n": + 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 char < " " ? `\\u${char.charCodeAt(0).toString(16).padStart(4, "0")}` : ""; + } +} +function stringify_string(str) { + let result = ""; + let last_pos = 0; + const len = str.length; + for (let i = 0; i < len; i += 1) { + const char = str[i]; + const replacement = get_escaped_char(char); + if (replacement) { + result += str.slice(last_pos, i) + replacement; + last_pos = i + 1; + } + } + return `"${last_pos === 0 ? str : result + str.slice(last_pos)}"`; +} +const UNDEFINED = -1; +const HOLE = -2; +const NAN = -3; +const POSITIVE_INFINITY = -4; +const NEGATIVE_INFINITY = -5; +const NEGATIVE_ZERO = -6; +function parse(serialized, revivers) { + return unflatten(JSON.parse(serialized), revivers); +} +function unflatten(parsed, revivers) { + if (typeof parsed === "number") + return hydrate(parsed, true); + if (!Array.isArray(parsed) || parsed.length === 0) { + throw new Error("Invalid input"); + } + const values = ( + /** @type {any[]} */ + parsed + ); + const hydrated = Array(values.length); + function hydrate(index2, standalone = false) { + if (index2 === UNDEFINED) + return void 0; + if (index2 === NAN) + return NaN; + if (index2 === POSITIVE_INFINITY) + return Infinity; + if (index2 === NEGATIVE_INFINITY) + return -Infinity; + if (index2 === NEGATIVE_ZERO) + return -0; + if (standalone) + throw new Error(`Invalid input`); + if (index2 in hydrated) + return hydrated[index2]; + const value = values[index2]; + if (!value || typeof value !== "object") { + hydrated[index2] = value; + } else if (Array.isArray(value)) { + if (typeof value[0] === "string") { + const type2 = value[0]; + const reviver = revivers == null ? void 0 : revivers[type2]; + if (reviver) { + return hydrated[index2] = reviver(hydrate(value[1])); + } + switch (type2) { + case "Date": + hydrated[index2] = new Date(value[1]); + break; + case "Set": + const set2 = /* @__PURE__ */ new Set(); + hydrated[index2] = set2; + for (let i = 1; i < value.length; i += 1) { + set2.add(hydrate(value[i])); + } + break; + case "Map": + const map = /* @__PURE__ */ new Map(); + hydrated[index2] = map; + for (let i = 1; i < value.length; i += 2) { + map.set(hydrate(value[i]), hydrate(value[i + 1])); + } + break; + case "RegExp": + hydrated[index2] = new RegExp(value[1], value[2]); + break; + case "Object": + hydrated[index2] = Object(value[1]); + break; + case "BigInt": + hydrated[index2] = BigInt(value[1]); + break; + case "null": + const obj = /* @__PURE__ */ Object.create(null); + hydrated[index2] = obj; + for (let i = 1; i < value.length; i += 2) { + obj[value[i]] = hydrate(value[i + 1]); + } + break; + default: + throw new Error(`Unknown type ${type2}`); + } + } else { + const array = new Array(value.length); + hydrated[index2] = array; + for (let i = 0; i < value.length; i += 1) { + const n = value[i]; + if (n === HOLE) + continue; + array[i] = hydrate(n); + } + } + } else { + const object = {}; + hydrated[index2] = object; + for (const key in value) { + const n = value[key]; + object[key] = hydrate(n); + } + } + return hydrated[index2]; + } + return hydrate(0); +} +function stringify(value, reducers) { + const stringified = []; + const indexes = /* @__PURE__ */ new Map(); + const custom = []; + for (const key in reducers) { + custom.push({ key, fn: reducers[key] }); + } + const keys = []; + let p = 0; + function flatten(thing) { + if (typeof thing === "function") { + throw new DevalueError(`Cannot stringify a function`, keys); + } + if (indexes.has(thing)) + return indexes.get(thing); + if (thing === void 0) + return UNDEFINED; + if (Number.isNaN(thing)) + return NAN; + if (thing === Infinity) + return POSITIVE_INFINITY; + if (thing === -Infinity) + return NEGATIVE_INFINITY; + if (thing === 0 && 1 / thing < 0) + return NEGATIVE_ZERO; + const index3 = p++; + indexes.set(thing, index3); + for (const { key, fn } of custom) { + const value2 = fn(thing); + if (value2) { + stringified[index3] = `["${key}",${flatten(value2)}]`; + return index3; + } + } + let str = ""; + if (is_primitive(thing)) { + str = stringify_primitive(thing); + } else { + const type2 = get_type(thing); + switch (type2) { + case "Number": + case "String": + case "Boolean": + str = `["Object",${stringify_primitive(thing)}]`; + break; + case "BigInt": + str = `["BigInt",${thing}]`; + break; + case "Date": + str = `["Date","${thing.toISOString()}"]`; + break; + case "RegExp": + const { source, flags } = thing; + str = flags ? `["RegExp",${stringify_string(source)},"${flags}"]` : `["RegExp",${stringify_string(source)}]`; + break; + case "Array": + str = "["; + for (let i = 0; i < thing.length; i += 1) { + if (i > 0) + str += ","; + if (i in thing) { + keys.push(`[${i}]`); + str += flatten(thing[i]); + keys.pop(); + } else { + str += HOLE; + } + } + str += "]"; + break; + case "Set": + str = '["Set"'; + for (const value2 of thing) { + str += `,${flatten(value2)}`; + } + str += "]"; + break; + case "Map": + str = '["Map"'; + for (const [key, value2] of thing) { + keys.push( + `.get(${is_primitive(key) ? stringify_primitive(key) : "..."})` + ); + str += `,${flatten(key)},${flatten(value2)}`; + } + str += "]"; + break; + default: + if (!is_plain_object(thing)) { + throw new DevalueError( + `Cannot stringify arbitrary non-POJOs`, + keys + ); + } + if (Object.getOwnPropertySymbols(thing).length > 0) { + throw new DevalueError( + `Cannot stringify POJOs with symbolic keys`, + keys + ); + } + if (Object.getPrototypeOf(thing) === null) { + str = '["null"'; + for (const key in thing) { + keys.push(`.${key}`); + str += `,${stringify_string(key)},${flatten(thing[key])}`; + keys.pop(); + } + str += "]"; + } else { + str = "{"; + let started = false; + for (const key in thing) { + if (started) + str += ","; + started = true; + keys.push(`.${key}`); + str += `${stringify_string(key)}:${flatten(thing[key])}`; + keys.pop(); + } + str += "}"; + } + } + } + stringified[index3] = str; + return index3; + } + const index2 = flatten(value); + if (index2 < 0) + return `${index2}`; + return `[${stringified.join(",")}]`; +} +function stringify_primitive(thing) { + const type2 = typeof thing; + if (type2 === "string") + return stringify_string(thing); + if (thing instanceof String) + return stringify_string(thing.toString()); + if (thing === void 0) + return UNDEFINED.toString(); + if (thing === 0 && 1 / thing < 0) + return NEGATIVE_ZERO.toString(); + if (type2 === "bigint") + return `["BigInt","${thing}"]`; + return String(thing); +} +function m(t, a, { initialize: d, type: r }) { + let o = `${a.$id}-${t.toString()}`, n = new BroadcastChannel$1(o, { type: r }), l = false, e = 0; + watch(() => a[t], (i) => { + l || (e = Date.now(), n.postMessage({ timestamp: e, state: parse(stringify(i)) })), l = false; + }, { deep: true }), n.onmessage = (i) => { + if (i === void 0) { + n.postMessage({ timestamp: e, state: parse(stringify(a[t])) }); + return; + } + i.timestamp <= e || (l = true, e = i.timestamp, a[t] = i.state); + }; + let u = () => n.postMessage(void 0), p = () => n.close(); + return d && u(), { sync: u, unshare: p }; +} +var h = (t, a) => Object.keys(a).includes(t), g = ({ initialize: t = true, enable: a = true, type: d }) => ({ store: r, options: o }) => { + var _a, _b; + 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 || Object.keys(r.$state).forEach((e) => { + var _a2; + 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 }); + }); +}; +const pinia = createPinia(); +pinia.use( + g({ + enable: true, + initialize: true + }) +); +const index = { + install: (app, options) => { + const appRouter = (options == null ? void 0 : options.router) || router; + const registry = new Registry(appRouter, options == null ? void 0 : options.getMeta); + app.use(appRouter); + app.use(pinia); + app.provide("$registry", registry); + if (options == null ? void 0 : options.components) { + for (const [tag, component] of Object.entries(options.components)) { + app.component(tag, component); + } + } + } +}; +export { + DoctypeMeta, + Registry, + index as Stonecrop, + useStonecrop +}; diff --git a/stonecrop/dist/stonecrop.umd.cjs b/stonecrop/dist/stonecrop.umd.cjs new file mode 100644 index 00000000..ff6d2b62 --- /dev/null +++ b/stonecrop/dist/stonecrop.umd.cjs @@ -0,0 +1,5322 @@ +(function(global2, factory) { + typeof exports === "object" && typeof module !== "undefined" ? factory(exports, require("vue")) : typeof define === "function" && define.amd ? define(["exports", "vue"], factory) : (global2 = typeof globalThis !== "undefined" ? globalThis : global2 || self, factory(global2["@stonecrop/stonecrop"] = {}, global2.Vue)); +})(this, function(exports2, vue) { + "use strict"; + function NotImplementedError(message) { + this.message = message || ""; + } + NotImplementedError.prototype = Object.create(Error.prototype, { + constructor: { value: NotImplementedError }, + name: { value: "NotImplemented" }, + stack: { + get: function() { + return new Error().stack; + } + } + }); + class Stonecrop { + /** + * @constructor + * @param {Registry} registry - The immutable registry + * @param {ReturnType} store - The mutable Pinia store + * @param {Schema} [schema] - (optional) The Stonecrop schema + * @param {ImmutableDoctype['workflow']} [workflow] - (optional) The Stonecrop workflow + * @param {ImmutableDoctype['actions']} [actions] - (optional) The Stonecrop actions + * @returns {Stonecrop} The Stonecrop instance + * @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. + * @example + * const registry = new Registry() + * const store = useDataStore() + * const stonecrop = new Stonecrop(registry, store, schema, workflow, actions) + */ + constructor(registry, store, schema, workflow, actions) { + this.name = "Stonecrop"; + if (Stonecrop._root) { + return Stonecrop._root; + } + Stonecrop._root = this; + this.registry = registry; + this.store = store; + this.schema = schema; + this.workflow = workflow; + this.actions = actions; + } + /** + * @method setup + * @param {DoctypeMeta} doctype - The doctype to setup + * @returns {void} + * @description Sets up the Stonecrop instance with the given doctype + * @example + * const doctype = await registry.getMeta('Task') + * stonecrop.setup(doctype) + */ + setup(doctype) { + this.getMeta(doctype); + this.getWorkflow(doctype); + this.getActions(doctype); + } + /** + * @method getMeta + * @param {DoctypeMeta} doctype - The doctype to get meta for + * @returns {DoctypeMeta} + * @see {@link DoctypeMeta} + * @throws NotImplementedError + * @description Gets the meta for the given doctype + * @example + * const doctype = await registry.getMeta('Task') + * const meta = stonecrop.getMeta(doctype) + */ + getMeta(doctype) { + return this.registry.getMeta ? this.registry.getMeta(doctype.doctype) : new NotImplementedError(doctype.doctype); + } + /** + * @method getWorkflow + * @param {DoctypeMeta} doctype - The doctype to get workflow for + * @returns {void} + * @description Gets the workflow for the given doctype + * @example + * const doctype = await registry.getMeta('Task') + * stonecrop.getWorkflow(doctype) + */ + getWorkflow(doctype) { + const doctypeRegistry = this.registry.registry[doctype.slug]; + this.workflow = doctypeRegistry.workflow; + } + /** + * @method getActions + * @param {DoctypeMeta} doctype - The doctype to get actions for + * @returns {void} + * @description Gets the actions for the given doctype + * @example + * const doctype = await registry.getMeta('Task') + * stonecrop.getActions(doctype) + */ + getActions(doctype) { + const doctypeRegistry = this.registry.registry[doctype.slug]; + this.actions = doctypeRegistry.actions; + } + /** + * @method getRecords + * @param {DoctypeMeta} doctype - The doctype to get records for + * @param {RequestInit} [filters] - The filters to apply to the records + * @returns {Promise} + * @description Gets the records for the given doctype + * @example + * const doctype = await registry.getMeta('Task') + * await stonecrop.getRecords(doctype) + * @example + * const doctype = await registry.getMeta('Task') + * const filters = JSON.stringify({ status: 'Open' }) + * await stonecrop.getRecords(doctype, { body: filters }) + */ + async getRecords(doctype, filters) { + this.store.$patch({ records: [] }); + const records = await fetch(`/${doctype.slug}`, filters); + const data = await records.json(); + this.store.$patch({ records: data }); + } + /** + * @method getRecord + * @param {DoctypeMeta} doctype - The doctype to get record for + * @param {string} id - The id of the record to get + * @returns {Promise} + * @description Gets the record for the given doctype and id + * @example + * const doctype = await registry.getMeta('Task') + * await stonecrop.getRecord(doctype, 'TASK-00001') + */ + async getRecord(doctype, id) { + this.store.$patch({ record: {} }); + const record = await fetch(`/${doctype.slug}/${id}`); + const data = await record.json(); + this.store.$patch({ record: data }); + } + /** + * @method runAction + * @param {DoctypeMeta} doctype - The doctype to run action for + * @param {string} action - The action to run + * @param {string[]} [id] - The id(s) of the record(s) to run action on + * @returns {void} + * @description Runs the action for the given doctype and id + * @example + * const doctype = await registry.getMeta('Task') + * stonecrop.runAction(doctype, 'CREATE') + * @example + * const doctype = await registry.getMeta('Task') + * stonecrop.runAction(doctype, 'UPDATE', ['TASK-00001']) + * @example + * const doctype = await registry.getMeta('Task') + * stonecrop.runAction(doctype, 'DELETE', ['TASK-00001']) + * @example + * const doctype = await registry.getMeta('Task') + * stonecrop.runAction(doctype, 'TRANSITION', ['TASK-00001', 'TASK-00002']) + */ + runAction(doctype, action, id) { + const doctypeRegistry = this.registry.registry[doctype.slug]; + const actions = doctypeRegistry.actions.get(action); + const { initialState } = this.workflow; + this.workflow.transition(initialState, { type: action }); + if (actions.length > 0) { + actions.forEach((action2) => { + const actionFn = new Function(action2); + actionFn(id); + }); + } + } + } + var isVue2 = false; + function set(target, key, val) { + if (Array.isArray(target)) { + target.length = Math.max(target.length, key); + target.splice(key, 1, val); + return val; + } + target[key] = val; + return val; + } + function del(target, key) { + if (Array.isArray(target)) { + target.splice(key, 1); + return; + } + delete target[key]; + } + function getDevtoolsGlobalHook() { + return getTarget().__VUE_DEVTOOLS_GLOBAL_HOOK__; + } + function getTarget() { + return typeof navigator !== "undefined" && typeof window !== "undefined" ? window : typeof global !== "undefined" ? global : {}; + } + const isProxyAvailable = typeof Proxy === "function"; + const HOOK_SETUP = "devtools-plugin:setup"; + const HOOK_PLUGIN_SETTINGS_SET = "plugin:settings:set"; + let supported; + let perf; + function isPerformanceSupported() { + var _a; + if (supported !== void 0) { + return supported; + } + if (typeof window !== "undefined" && window.performance) { + supported = true; + perf = window.performance; + } else if (typeof global !== "undefined" && ((_a = global.perf_hooks) === null || _a === void 0 ? void 0 : _a.performance)) { + supported = true; + perf = global.perf_hooks.performance; + } else { + supported = false; + } + return supported; + } + function now$1() { + return isPerformanceSupported() ? perf.now() : Date.now(); + } + class ApiProxy { + constructor(plugin, hook) { + this.target = null; + this.targetQueue = []; + this.onQueue = []; + this.plugin = plugin; + this.hook = hook; + const defaultSettings = {}; + if (plugin.settings) { + for (const id in plugin.settings) { + const item = plugin.settings[id]; + defaultSettings[id] = item.defaultValue; + } + } + const localSettingsSaveId = `__vue-devtools-plugin-settings__${plugin.id}`; + let currentSettings = Object.assign({}, defaultSettings); + try { + const raw = localStorage.getItem(localSettingsSaveId); + const data = JSON.parse(raw); + Object.assign(currentSettings, data); + } catch (e) { + } + this.fallbacks = { + getSettings() { + return currentSettings; + }, + setSettings(value) { + try { + localStorage.setItem(localSettingsSaveId, JSON.stringify(value)); + } catch (e) { + } + currentSettings = value; + }, + now() { + return now$1(); + } + }; + if (hook) { + hook.on(HOOK_PLUGIN_SETTINGS_SET, (pluginId, value) => { + if (pluginId === this.plugin.id) { + this.fallbacks.setSettings(value); + } + }); + } + this.proxiedOn = new Proxy({}, { + get: (_target, prop) => { + if (this.target) { + return this.target.on[prop]; + } else { + return (...args) => { + this.onQueue.push({ + method: prop, + args + }); + }; + } + } + }); + this.proxiedTarget = new Proxy({}, { + get: (_target, prop) => { + if (this.target) { + return this.target[prop]; + } else if (prop === "on") { + return this.proxiedOn; + } else if (Object.keys(this.fallbacks).includes(prop)) { + return (...args) => { + this.targetQueue.push({ + method: prop, + args, + resolve: () => { + } + }); + return this.fallbacks[prop](...args); + }; + } else { + return (...args) => { + return new Promise((resolve) => { + this.targetQueue.push({ + method: prop, + args, + resolve + }); + }); + }; + } + } + }); + } + async setRealTarget(target) { + this.target = target; + for (const item of this.onQueue) { + this.target.on[item.method](...item.args); + } + for (const item of this.targetQueue) { + item.resolve(await this.target[item.method](...item.args)); + } + } + } + function setupDevtoolsPlugin(pluginDescriptor, setupFn) { + const descriptor = pluginDescriptor; + const target = getTarget(); + const hook = getDevtoolsGlobalHook(); + const enableProxy = isProxyAvailable && descriptor.enableEarlyProxy; + if (hook && (target.__VUE_DEVTOOLS_PLUGIN_API_AVAILABLE__ || !enableProxy)) { + hook.emit(HOOK_SETUP, pluginDescriptor, setupFn); + } else { + const proxy = enableProxy ? new ApiProxy(descriptor, hook) : null; + const list = target.__VUE_DEVTOOLS_PLUGINS__ = target.__VUE_DEVTOOLS_PLUGINS__ || []; + list.push({ + pluginDescriptor: descriptor, + setupFn, + proxy + }); + if (proxy) + setupFn(proxy.proxiedTarget); + } + } + /*! + * pinia v2.1.7 + * (c) 2023 Eduardo San Martin Morote + * @license MIT + */ + let activePinia; + const setActivePinia = (pinia2) => activePinia = pinia2; + const piniaSymbol = process.env.NODE_ENV !== "production" ? Symbol("pinia") : ( + /* istanbul ignore next */ + Symbol() + ); + function isPlainObject(o) { + return o && typeof o === "object" && Object.prototype.toString.call(o) === "[object Object]" && typeof o.toJSON !== "function"; + } + var MutationType; + (function(MutationType2) { + MutationType2["direct"] = "direct"; + MutationType2["patchObject"] = "patch object"; + MutationType2["patchFunction"] = "patch function"; + })(MutationType || (MutationType = {})); + const IS_CLIENT = typeof window !== "undefined"; + const USE_DEVTOOLS = (process.env.NODE_ENV !== "production" || false) && !(process.env.NODE_ENV === "test") && IS_CLIENT; + const _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 })(); + function bom(blob, { autoBom = false } = {}) { + if (autoBom && /^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(blob.type)) { + return new Blob([String.fromCharCode(65279), blob], { type: blob.type }); + } + return blob; + } + function download(url, name, opts) { + const xhr = new XMLHttpRequest(); + xhr.open("GET", url); + xhr.responseType = "blob"; + xhr.onload = function() { + saveAs(xhr.response, name, opts); + }; + xhr.onerror = function() { + console.error("could not download file"); + }; + xhr.send(); + } + function corsEnabled(url) { + const xhr = new XMLHttpRequest(); + xhr.open("HEAD", url, false); + try { + xhr.send(); + } catch (e) { + } + return xhr.status >= 200 && xhr.status <= 299; + } + function click(node) { + try { + node.dispatchEvent(new MouseEvent("click")); + } catch (e) { + const evt = document.createEvent("MouseEvents"); + evt.initMouseEvent("click", true, true, window, 0, 0, 0, 80, 20, false, false, false, false, 0, null); + node.dispatchEvent(evt); + } + } + const _navigator = typeof navigator === "object" ? navigator : { userAgent: "" }; + const isMacOSWebView = /* @__PURE__ */ (() => /Macintosh/.test(_navigator.userAgent) && /AppleWebKit/.test(_navigator.userAgent) && !/Safari/.test(_navigator.userAgent))(); + const saveAs = !IS_CLIENT ? () => { + } : ( + // Use download attribute first if possible (#193 Lumia mobile) unless this is a macOS WebView or mini program + typeof HTMLAnchorElement !== "undefined" && "download" in HTMLAnchorElement.prototype && !isMacOSWebView ? downloadSaveAs : ( + // Use msSaveOrOpenBlob as a second approach + "msSaveOrOpenBlob" in _navigator ? msSaveAs : ( + // Fallback to using FileReader and a popup + fileSaverSaveAs + ) + ) + ); + function downloadSaveAs(blob, name = "download", opts) { + const a = document.createElement("a"); + a.download = name; + a.rel = "noopener"; + if (typeof blob === "string") { + a.href = blob; + if (a.origin !== location.origin) { + if (corsEnabled(a.href)) { + download(blob, name, opts); + } else { + a.target = "_blank"; + click(a); + } + } else { + click(a); + } + } else { + a.href = URL.createObjectURL(blob); + setTimeout(function() { + URL.revokeObjectURL(a.href); + }, 4e4); + setTimeout(function() { + click(a); + }, 0); + } + } + function msSaveAs(blob, name = "download", opts) { + if (typeof blob === "string") { + if (corsEnabled(blob)) { + download(blob, name, opts); + } else { + const a = document.createElement("a"); + a.href = blob; + a.target = "_blank"; + setTimeout(function() { + click(a); + }); + } + } else { + navigator.msSaveOrOpenBlob(bom(blob, opts), name); + } + } + function fileSaverSaveAs(blob, name, opts, popup) { + popup = popup || open("", "_blank"); + if (popup) { + popup.document.title = popup.document.body.innerText = "downloading..."; + } + if (typeof blob === "string") + return download(blob, name, opts); + const force = blob.type === "application/octet-stream"; + const isSafari = /constructor/i.test(String(_global.HTMLElement)) || "safari" in _global; + const isChromeIOS = /CriOS\/[\d]+/.test(navigator.userAgent); + if ((isChromeIOS || force && isSafari || isMacOSWebView) && typeof FileReader !== "undefined") { + const reader = new FileReader(); + reader.onloadend = function() { + let url = reader.result; + if (typeof url !== "string") { + popup = null; + throw new Error("Wrong reader.result type"); + } + url = isChromeIOS ? url : url.replace(/^data:[^;]*;/, "data:attachment/file;"); + if (popup) { + popup.location.href = url; + } else { + location.assign(url); + } + popup = null; + }; + reader.readAsDataURL(blob); + } else { + const url = URL.createObjectURL(blob); + if (popup) + popup.location.assign(url); + else + location.href = url; + popup = null; + setTimeout(function() { + URL.revokeObjectURL(url); + }, 4e4); + } + } + function toastMessage(message, type2) { + const piniaMessage = "🍍 " + message; + if (typeof __VUE_DEVTOOLS_TOAST__ === "function") { + __VUE_DEVTOOLS_TOAST__(piniaMessage, type2); + } else if (type2 === "error") { + console.error(piniaMessage); + } else if (type2 === "warn") { + console.warn(piniaMessage); + } else { + console.log(piniaMessage); + } + } + function isPinia(o) { + return "_a" in o && "install" in o; + } + function checkClipboardAccess() { + if (!("clipboard" in navigator)) { + toastMessage(`Your browser doesn't support the Clipboard API`, "error"); + return true; + } + } + function checkNotFocusedError(error) { + if (error instanceof Error && error.message.toLowerCase().includes("document is not focused")) { + toastMessage('You need to activate the "Emulate a focused page" setting in the "Rendering" panel of devtools.', "warn"); + return true; + } + return false; + } + async function actionGlobalCopyState(pinia2) { + if (checkClipboardAccess()) + return; + try { + await navigator.clipboard.writeText(JSON.stringify(pinia2.state.value)); + toastMessage("Global state copied to clipboard."); + } catch (error) { + if (checkNotFocusedError(error)) + return; + toastMessage(`Failed to serialize the state. Check the console for more details.`, "error"); + console.error(error); + } + } + async function actionGlobalPasteState(pinia2) { + if (checkClipboardAccess()) + return; + try { + loadStoresState(pinia2, JSON.parse(await navigator.clipboard.readText())); + toastMessage("Global state pasted from clipboard."); + } catch (error) { + if (checkNotFocusedError(error)) + return; + toastMessage(`Failed to deserialize the state from clipboard. Check the console for more details.`, "error"); + console.error(error); + } + } + async function actionGlobalSaveState(pinia2) { + try { + saveAs(new Blob([JSON.stringify(pinia2.state.value)], { + type: "text/plain;charset=utf-8" + }), "pinia-state.json"); + } catch (error) { + toastMessage(`Failed to export the state as JSON. Check the console for more details.`, "error"); + console.error(error); + } + } + let fileInput; + function getFileOpener() { + if (!fileInput) { + fileInput = document.createElement("input"); + fileInput.type = "file"; + fileInput.accept = ".json"; + } + function openFile() { + return new Promise((resolve, reject) => { + fileInput.onchange = async () => { + const files = fileInput.files; + if (!files) + return resolve(null); + const file = files.item(0); + if (!file) + return resolve(null); + return resolve({ text: await file.text(), file }); + }; + fileInput.oncancel = () => resolve(null); + fileInput.onerror = reject; + fileInput.click(); + }); + } + return openFile; + } + async function actionGlobalOpenStateFile(pinia2) { + try { + const open2 = getFileOpener(); + const result = await open2(); + if (!result) + return; + const { text, file } = result; + loadStoresState(pinia2, JSON.parse(text)); + toastMessage(`Global state imported from "${file.name}".`); + } catch (error) { + toastMessage(`Failed to import the state from JSON. Check the console for more details.`, "error"); + console.error(error); + } + } + function loadStoresState(pinia2, state) { + for (const key in state) { + const storeState = pinia2.state.value[key]; + if (storeState) { + Object.assign(storeState, state[key]); + } else { + pinia2.state.value[key] = state[key]; + } + } + } + function formatDisplay$1(display) { + return { + _custom: { + display + } + }; + } + const PINIA_ROOT_LABEL = "🍍 Pinia (root)"; + const PINIA_ROOT_ID = "_root"; + function formatStoreForInspectorTree(store) { + return isPinia(store) ? { + id: PINIA_ROOT_ID, + label: PINIA_ROOT_LABEL + } : { + id: store.$id, + label: store.$id + }; + } + function formatStoreForInspectorState(store) { + if (isPinia(store)) { + const storeNames = Array.from(store._s.keys()); + const storeMap = store._s; + const state2 = { + state: storeNames.map((storeId) => ({ + editable: true, + key: storeId, + value: store.state.value[storeId] + })), + getters: storeNames.filter((id) => storeMap.get(id)._getters).map((id) => { + const store2 = storeMap.get(id); + return { + editable: false, + key: id, + value: store2._getters.reduce((getters, key) => { + getters[key] = store2[key]; + return getters; + }, {}) + }; + }) + }; + return state2; + } + const state = { + state: Object.keys(store.$state).map((key) => ({ + editable: true, + key, + value: store.$state[key] + })) + }; + if (store._getters && store._getters.length) { + state.getters = store._getters.map((getterName) => ({ + editable: false, + key: getterName, + value: store[getterName] + })); + } + if (store._customProperties.size) { + state.customProperties = Array.from(store._customProperties).map((key) => ({ + editable: true, + key, + value: store[key] + })); + } + return state; + } + function formatEventData(events) { + if (!events) + return {}; + if (Array.isArray(events)) { + return events.reduce((data, event) => { + data.keys.push(event.key); + data.operations.push(event.type); + data.oldValue[event.key] = event.oldValue; + data.newValue[event.key] = event.newValue; + return data; + }, { + oldValue: {}, + keys: [], + operations: [], + newValue: {} + }); + } else { + return { + operation: formatDisplay$1(events.type), + key: formatDisplay$1(events.key), + oldValue: events.oldValue, + newValue: events.newValue + }; + } + } + function formatMutationType(type2) { + switch (type2) { + case MutationType.direct: + return "mutation"; + case MutationType.patchFunction: + return "$patch"; + case MutationType.patchObject: + return "$patch"; + default: + return "unknown"; + } + } + let isTimelineActive = true; + const componentStateTypes = []; + const MUTATIONS_LAYER_ID = "pinia:mutations"; + const INSPECTOR_ID = "pinia"; + const { assign: assign$1 } = Object; + const getStoreType = (id) => "🍍 " + id; + function registerPiniaDevtools(app, pinia2) { + setupDevtoolsPlugin({ + id: "dev.esm.pinia", + label: "Pinia 🍍", + logo: "https://pinia.vuejs.org/logo.svg", + packageName: "pinia", + homepage: "https://pinia.vuejs.org", + componentStateTypes, + app + }, (api) => { + if (typeof api.now !== "function") { + 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."); + } + api.addTimelineLayer({ + id: MUTATIONS_LAYER_ID, + label: `Pinia 🍍`, + color: 15064968 + }); + api.addInspector({ + id: INSPECTOR_ID, + label: "Pinia 🍍", + icon: "storage", + treeFilterPlaceholder: "Search stores", + actions: [ + { + icon: "content_copy", + action: () => { + actionGlobalCopyState(pinia2); + }, + tooltip: "Serialize and copy the state" + }, + { + icon: "content_paste", + action: async () => { + await actionGlobalPasteState(pinia2); + api.sendInspectorTree(INSPECTOR_ID); + api.sendInspectorState(INSPECTOR_ID); + }, + tooltip: "Replace the state with the content of your clipboard" + }, + { + icon: "save", + action: () => { + actionGlobalSaveState(pinia2); + }, + tooltip: "Save the state as a JSON file" + }, + { + icon: "folder_open", + action: async () => { + await actionGlobalOpenStateFile(pinia2); + api.sendInspectorTree(INSPECTOR_ID); + api.sendInspectorState(INSPECTOR_ID); + }, + tooltip: "Import the state from a JSON file" + } + ], + nodeActions: [ + { + icon: "restore", + tooltip: 'Reset the state (with "$reset")', + action: (nodeId) => { + const store = pinia2._s.get(nodeId); + if (!store) { + toastMessage(`Cannot reset "${nodeId}" store because it wasn't found.`, "warn"); + } else if (typeof store.$reset !== "function") { + toastMessage(`Cannot reset "${nodeId}" store because it doesn't have a "$reset" method implemented.`, "warn"); + } else { + store.$reset(); + toastMessage(`Store "${nodeId}" reset.`); + } + } + } + ] + }); + api.on.inspectComponent((payload, ctx) => { + const proxy = payload.componentInstance && payload.componentInstance.proxy; + if (proxy && proxy._pStores) { + const piniaStores = payload.componentInstance.proxy._pStores; + Object.values(piniaStores).forEach((store) => { + payload.instanceData.state.push({ + type: getStoreType(store.$id), + key: "state", + editable: true, + value: store._isOptionsAPI ? { + _custom: { + value: vue.toRaw(store.$state), + actions: [ + { + icon: "restore", + tooltip: "Reset the state of this store", + action: () => store.$reset() + } + ] + } + } : ( + // NOTE: workaround to unwrap transferred refs + Object.keys(store.$state).reduce((state, key) => { + state[key] = store.$state[key]; + return state; + }, {}) + ) + }); + if (store._getters && store._getters.length) { + payload.instanceData.state.push({ + type: getStoreType(store.$id), + key: "getters", + editable: false, + value: store._getters.reduce((getters, key) => { + try { + getters[key] = store[key]; + } catch (error) { + getters[key] = error; + } + return getters; + }, {}) + }); + } + }); + } + }); + api.on.getInspectorTree((payload) => { + if (payload.app === app && payload.inspectorId === INSPECTOR_ID) { + let stores = [pinia2]; + stores = stores.concat(Array.from(pinia2._s.values())); + 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); + } + }); + api.on.getInspectorState((payload) => { + if (payload.app === app && payload.inspectorId === INSPECTOR_ID) { + const inspectedStore = payload.nodeId === PINIA_ROOT_ID ? pinia2 : pinia2._s.get(payload.nodeId); + if (!inspectedStore) { + return; + } + if (inspectedStore) { + payload.state = formatStoreForInspectorState(inspectedStore); + } + } + }); + api.on.editInspectorState((payload, ctx) => { + if (payload.app === app && payload.inspectorId === INSPECTOR_ID) { + const inspectedStore = payload.nodeId === PINIA_ROOT_ID ? pinia2 : pinia2._s.get(payload.nodeId); + if (!inspectedStore) { + return toastMessage(`store "${payload.nodeId}" not found`, "error"); + } + const { path } = payload; + if (!isPinia(inspectedStore)) { + if (path.length !== 1 || !inspectedStore._customProperties.has(path[0]) || path[0] in inspectedStore.$state) { + path.unshift("$state"); + } + } else { + path.unshift("state"); + } + isTimelineActive = false; + payload.set(inspectedStore, path, payload.state.value); + isTimelineActive = true; + } + }); + api.on.editComponentState((payload) => { + if (payload.type.startsWith("🍍")) { + const storeId = payload.type.replace(/^🍍\s*/, ""); + const store = pinia2._s.get(storeId); + if (!store) { + return toastMessage(`store "${storeId}" not found`, "error"); + } + const { path } = payload; + if (path[0] !== "state") { + return toastMessage(`Invalid path for store "${storeId}": +${path} +Only state can be modified.`); + } + path[0] = "$state"; + isTimelineActive = false; + payload.set(store, path, payload.state.value); + isTimelineActive = true; + } + }); + }); + } + function addStoreToDevtools(app, store) { + if (!componentStateTypes.includes(getStoreType(store.$id))) { + componentStateTypes.push(getStoreType(store.$id)); + } + setupDevtoolsPlugin({ + id: "dev.esm.pinia", + label: "Pinia 🍍", + logo: "https://pinia.vuejs.org/logo.svg", + packageName: "pinia", + homepage: "https://pinia.vuejs.org", + componentStateTypes, + app, + settings: { + logStoreChanges: { + label: "Notify about new/deleted stores", + type: "boolean", + defaultValue: true + } + // useEmojis: { + // label: 'Use emojis in messages ⚡️', + // type: 'boolean', + // defaultValue: true, + // }, + } + }, (api) => { + const now2 = typeof api.now === "function" ? api.now.bind(api) : Date.now; + store.$onAction(({ after, onError, name, args }) => { + const groupId = runningActionId++; + api.addTimelineEvent({ + layerId: MUTATIONS_LAYER_ID, + event: { + time: now2(), + title: "🛫 " + name, + subtitle: "start", + data: { + store: formatDisplay$1(store.$id), + action: formatDisplay$1(name), + args + }, + groupId + } + }); + after((result) => { + activeAction = void 0; + api.addTimelineEvent({ + layerId: MUTATIONS_LAYER_ID, + event: { + time: now2(), + title: "🛬 " + name, + subtitle: "end", + data: { + store: formatDisplay$1(store.$id), + action: formatDisplay$1(name), + args, + result + }, + groupId + } + }); + }); + onError((error) => { + activeAction = void 0; + api.addTimelineEvent({ + layerId: MUTATIONS_LAYER_ID, + event: { + time: now2(), + logType: "error", + title: "💥 " + name, + subtitle: "end", + data: { + store: formatDisplay$1(store.$id), + action: formatDisplay$1(name), + args, + error + }, + groupId + } + }); + }); + }, true); + store._customProperties.forEach((name) => { + vue.watch(() => vue.unref(store[name]), (newValue, oldValue) => { + api.notifyComponentUpdate(); + api.sendInspectorState(INSPECTOR_ID); + if (isTimelineActive) { + api.addTimelineEvent({ + layerId: MUTATIONS_LAYER_ID, + event: { + time: now2(), + title: "Change", + subtitle: name, + data: { + newValue, + oldValue + }, + groupId: activeAction + } + }); + } + }, { deep: true }); + }); + store.$subscribe(({ events, type: type2 }, state) => { + api.notifyComponentUpdate(); + api.sendInspectorState(INSPECTOR_ID); + if (!isTimelineActive) + return; + const eventData = { + time: now2(), + title: formatMutationType(type2), + data: assign$1({ store: formatDisplay$1(store.$id) }, formatEventData(events)), + groupId: activeAction + }; + if (type2 === MutationType.patchFunction) { + eventData.subtitle = "⤵️"; + } else if (type2 === MutationType.patchObject) { + eventData.subtitle = "🧩"; + } else if (events && !Array.isArray(events)) { + eventData.subtitle = events.type; + } + if (events) { + eventData.data["rawEvent(s)"] = { + _custom: { + display: "DebuggerEvent", + type: "object", + tooltip: "raw DebuggerEvent[]", + value: events + } + }; + } + api.addTimelineEvent({ + layerId: MUTATIONS_LAYER_ID, + event: eventData + }); + }, { detached: true, flush: "sync" }); + const hotUpdate = store._hotUpdate; + store._hotUpdate = vue.markRaw((newStore) => { + hotUpdate(newStore); + api.addTimelineEvent({ + layerId: MUTATIONS_LAYER_ID, + event: { + time: now2(), + title: "🔥 " + store.$id, + subtitle: "HMR update", + data: { + store: formatDisplay$1(store.$id), + info: formatDisplay$1(`HMR update`) + } + } + }); + api.notifyComponentUpdate(); + api.sendInspectorTree(INSPECTOR_ID); + api.sendInspectorState(INSPECTOR_ID); + }); + const { $dispose } = store; + store.$dispose = () => { + $dispose(); + api.notifyComponentUpdate(); + api.sendInspectorTree(INSPECTOR_ID); + api.sendInspectorState(INSPECTOR_ID); + api.getSettings().logStoreChanges && toastMessage(`Disposed "${store.$id}" store 🗑`); + }; + api.notifyComponentUpdate(); + api.sendInspectorTree(INSPECTOR_ID); + api.sendInspectorState(INSPECTOR_ID); + api.getSettings().logStoreChanges && toastMessage(`"${store.$id}" store installed 🆕`); + }); + } + let runningActionId = 0; + let activeAction; + function patchActionForGrouping(store, actionNames, wrapWithProxy) { + const actions = actionNames.reduce((storeActions, actionName) => { + storeActions[actionName] = vue.toRaw(store)[actionName]; + return storeActions; + }, {}); + for (const actionName in actions) { + store[actionName] = function() { + const _actionId = runningActionId; + const trackedStore = wrapWithProxy ? new Proxy(store, { + get(...args) { + activeAction = _actionId; + return Reflect.get(...args); + }, + set(...args) { + activeAction = _actionId; + return Reflect.set(...args); + } + }) : store; + activeAction = _actionId; + const retValue = actions[actionName].apply(trackedStore, arguments); + activeAction = void 0; + return retValue; + }; + } + } + function devtoolsPlugin({ app, store, options }) { + if (store.$id.startsWith("__hot:")) { + return; + } + store._isOptionsAPI = !!options.state; + patchActionForGrouping(store, Object.keys(options.actions), store._isOptionsAPI); + const originalHotUpdate = store._hotUpdate; + vue.toRaw(store)._hotUpdate = function(newStore) { + originalHotUpdate.apply(this, arguments); + patchActionForGrouping(store, Object.keys(newStore._hmrPayload.actions), !!store._isOptionsAPI); + }; + addStoreToDevtools( + app, + // FIXME: is there a way to allow the assignment from Store to StoreGeneric? + store + ); + } + function createPinia() { + const scope = vue.effectScope(true); + const state = scope.run(() => vue.ref({})); + let _p = []; + let toBeInstalled = []; + const pinia2 = vue.markRaw({ + install(app) { + setActivePinia(pinia2); + { + pinia2._a = app; + app.provide(piniaSymbol, pinia2); + app.config.globalProperties.$pinia = pinia2; + if (USE_DEVTOOLS) { + registerPiniaDevtools(app, pinia2); + } + toBeInstalled.forEach((plugin) => _p.push(plugin)); + toBeInstalled = []; + } + }, + use(plugin) { + if (!this._a && !isVue2) { + toBeInstalled.push(plugin); + } else { + _p.push(plugin); + } + return this; + }, + _p, + // it's actually undefined here + // @ts-expect-error + _a: null, + _e: scope, + _s: /* @__PURE__ */ new Map(), + state + }); + if (USE_DEVTOOLS && typeof Proxy !== "undefined") { + pinia2.use(devtoolsPlugin); + } + return pinia2; + } + function patchObject(newState, oldState) { + for (const key in oldState) { + const subPatch = oldState[key]; + if (!(key in newState)) { + continue; + } + const targetValue = newState[key]; + if (isPlainObject(targetValue) && isPlainObject(subPatch) && !vue.isRef(subPatch) && !vue.isReactive(subPatch)) { + newState[key] = patchObject(targetValue, subPatch); + } else { + { + newState[key] = subPatch; + } + } + } + return newState; + } + const noop$1 = () => { + }; + function addSubscription(subscriptions, callback, detached, onCleanup = noop$1) { + subscriptions.push(callback); + const removeSubscription = () => { + const idx = subscriptions.indexOf(callback); + if (idx > -1) { + subscriptions.splice(idx, 1); + onCleanup(); + } + }; + if (!detached && vue.getCurrentScope()) { + vue.onScopeDispose(removeSubscription); + } + return removeSubscription; + } + function triggerSubscriptions(subscriptions, ...args) { + subscriptions.slice().forEach((callback) => { + callback(...args); + }); + } + const fallbackRunWithContext = (fn) => fn(); + function mergeReactiveObjects(target, patchToApply) { + if (target instanceof Map && patchToApply instanceof Map) { + patchToApply.forEach((value, key) => target.set(key, value)); + } + if (target instanceof Set && patchToApply instanceof Set) { + patchToApply.forEach(target.add, target); + } + for (const key in patchToApply) { + if (!patchToApply.hasOwnProperty(key)) + continue; + const subPatch = patchToApply[key]; + const targetValue = target[key]; + if (isPlainObject(targetValue) && isPlainObject(subPatch) && target.hasOwnProperty(key) && !vue.isRef(subPatch) && !vue.isReactive(subPatch)) { + target[key] = mergeReactiveObjects(targetValue, subPatch); + } else { + target[key] = subPatch; + } + } + return target; + } + const skipHydrateSymbol = process.env.NODE_ENV !== "production" ? Symbol("pinia:skipHydration") : ( + /* istanbul ignore next */ + Symbol() + ); + function shouldHydrate(obj) { + return !isPlainObject(obj) || !obj.hasOwnProperty(skipHydrateSymbol); + } + const { assign: assign$2 } = Object; + function isComputed(o) { + return !!(vue.isRef(o) && o.effect); + } + function createOptionsStore(id, options, pinia2, hot) { + const { state, actions, getters } = options; + const initialState = pinia2.state.value[id]; + let store; + function setup() { + if (!initialState && (!(process.env.NODE_ENV !== "production") || !hot)) { + { + pinia2.state.value[id] = state ? state() : {}; + } + } + const localState = process.env.NODE_ENV !== "production" && hot ? ( + // use ref() to unwrap refs inside state TODO: check if this is still necessary + vue.toRefs(vue.ref(state ? state() : {}).value) + ) : vue.toRefs(pinia2.state.value[id]); + return assign$2(localState, actions, Object.keys(getters || {}).reduce((computedGetters, name) => { + if (process.env.NODE_ENV !== "production" && name in localState) { + console.warn(`[🍍]: A getter cannot have the same name as another state property. Rename one of them. Found with "${name}" in store "${id}".`); + } + computedGetters[name] = vue.markRaw(vue.computed(() => { + setActivePinia(pinia2); + const store2 = pinia2._s.get(id); + return getters[name].call(store2, store2); + })); + return computedGetters; + }, {})); + } + store = createSetupStore(id, setup, options, pinia2, hot, true); + return store; + } + function createSetupStore($id, setup, options = {}, pinia2, hot, isOptionsStore) { + let scope; + const optionsForPlugin = assign$2({ actions: {} }, options); + if (process.env.NODE_ENV !== "production" && !pinia2._e.active) { + throw new Error("Pinia destroyed"); + } + const $subscribeOptions = { + deep: true + // flush: 'post', + }; + if (process.env.NODE_ENV !== "production" && !isVue2) { + $subscribeOptions.onTrigger = (event) => { + if (isListening) { + debuggerEvents = event; + } else if (isListening == false && !store._hotUpdating) { + if (Array.isArray(debuggerEvents)) { + debuggerEvents.push(event); + } else { + console.error("🍍 debuggerEvents should be an array. This is most likely an internal Pinia bug."); + } + } + }; + } + let isListening; + let isSyncListening; + let subscriptions = []; + let actionSubscriptions = []; + let debuggerEvents; + const initialState = pinia2.state.value[$id]; + if (!isOptionsStore && !initialState && (!(process.env.NODE_ENV !== "production") || !hot)) { + { + pinia2.state.value[$id] = {}; + } + } + const hotState = vue.ref({}); + let activeListener; + function $patch(partialStateOrMutator) { + let subscriptionMutation; + isListening = isSyncListening = false; + if (process.env.NODE_ENV !== "production") { + debuggerEvents = []; + } + if (typeof partialStateOrMutator === "function") { + partialStateOrMutator(pinia2.state.value[$id]); + subscriptionMutation = { + type: MutationType.patchFunction, + storeId: $id, + events: debuggerEvents + }; + } else { + mergeReactiveObjects(pinia2.state.value[$id], partialStateOrMutator); + subscriptionMutation = { + type: MutationType.patchObject, + payload: partialStateOrMutator, + storeId: $id, + events: debuggerEvents + }; + } + const myListenerId = activeListener = Symbol(); + vue.nextTick().then(() => { + if (activeListener === myListenerId) { + isListening = true; + } + }); + isSyncListening = true; + triggerSubscriptions(subscriptions, subscriptionMutation, pinia2.state.value[$id]); + } + const $reset = isOptionsStore ? function $reset2() { + const { state } = options; + const newState = state ? state() : {}; + this.$patch(($state) => { + assign$2($state, newState); + }); + } : ( + /* istanbul ignore next */ + process.env.NODE_ENV !== "production" ? () => { + throw new Error(`🍍: Store "${$id}" is built using the setup syntax and does not implement $reset().`); + } : noop$1 + ); + function $dispose() { + scope.stop(); + subscriptions = []; + actionSubscriptions = []; + pinia2._s.delete($id); + } + function wrapAction(name, action) { + return function() { + setActivePinia(pinia2); + const args = Array.from(arguments); + const afterCallbackList = []; + const onErrorCallbackList = []; + function after(callback) { + afterCallbackList.push(callback); + } + function onError(callback) { + onErrorCallbackList.push(callback); + } + triggerSubscriptions(actionSubscriptions, { + args, + name, + store, + after, + onError + }); + let ret; + try { + ret = action.apply(this && this.$id === $id ? this : store, args); + } catch (error) { + triggerSubscriptions(onErrorCallbackList, error); + throw error; + } + if (ret instanceof Promise) { + return ret.then((value) => { + triggerSubscriptions(afterCallbackList, value); + return value; + }).catch((error) => { + triggerSubscriptions(onErrorCallbackList, error); + return Promise.reject(error); + }); + } + triggerSubscriptions(afterCallbackList, ret); + return ret; + }; + } + const _hmrPayload = /* @__PURE__ */ vue.markRaw({ + actions: {}, + getters: {}, + state: [], + hotState + }); + const partialStore = { + _p: pinia2, + // _s: scope, + $id, + $onAction: addSubscription.bind(null, actionSubscriptions), + $patch, + $reset, + $subscribe(callback, options2 = {}) { + const removeSubscription = addSubscription(subscriptions, callback, options2.detached, () => stopWatcher()); + const stopWatcher = scope.run(() => vue.watch(() => pinia2.state.value[$id], (state) => { + if (options2.flush === "sync" ? isSyncListening : isListening) { + callback({ + storeId: $id, + type: MutationType.direct, + events: debuggerEvents + }, state); + } + }, assign$2({}, $subscribeOptions, options2))); + return removeSubscription; + }, + $dispose + }; + const store = vue.reactive(process.env.NODE_ENV !== "production" || USE_DEVTOOLS ? assign$2( + { + _hmrPayload, + _customProperties: vue.markRaw(/* @__PURE__ */ new Set()) + // devtools custom properties + }, + partialStore + // must be added later + // setupStore + ) : partialStore); + pinia2._s.set($id, store); + const runWithContext = pinia2._a && pinia2._a.runWithContext || fallbackRunWithContext; + const setupStore = runWithContext(() => pinia2._e.run(() => (scope = vue.effectScope()).run(setup))); + for (const key in setupStore) { + const prop = setupStore[key]; + if (vue.isRef(prop) && !isComputed(prop) || vue.isReactive(prop)) { + if (process.env.NODE_ENV !== "production" && hot) { + set(hotState.value, key, vue.toRef(setupStore, key)); + } else if (!isOptionsStore) { + if (initialState && shouldHydrate(prop)) { + if (vue.isRef(prop)) { + prop.value = initialState[key]; + } else { + mergeReactiveObjects(prop, initialState[key]); + } + } + { + pinia2.state.value[$id][key] = prop; + } + } + if (process.env.NODE_ENV !== "production") { + _hmrPayload.state.push(key); + } + } else if (typeof prop === "function") { + const actionValue = process.env.NODE_ENV !== "production" && hot ? prop : wrapAction(key, prop); + { + setupStore[key] = actionValue; + } + if (process.env.NODE_ENV !== "production") { + _hmrPayload.actions[key] = prop; + } + optionsForPlugin.actions[key] = prop; + } else if (process.env.NODE_ENV !== "production") { + if (isComputed(prop)) { + _hmrPayload.getters[key] = isOptionsStore ? ( + // @ts-expect-error + options.getters[key] + ) : prop; + if (IS_CLIENT) { + const getters = setupStore._getters || // @ts-expect-error: same + (setupStore._getters = vue.markRaw([])); + getters.push(key); + } + } + } + } + { + assign$2(store, setupStore); + assign$2(vue.toRaw(store), setupStore); + } + Object.defineProperty(store, "$state", { + get: () => process.env.NODE_ENV !== "production" && hot ? hotState.value : pinia2.state.value[$id], + set: (state) => { + if (process.env.NODE_ENV !== "production" && hot) { + throw new Error("cannot set hotState"); + } + $patch(($state) => { + assign$2($state, state); + }); + } + }); + if (process.env.NODE_ENV !== "production") { + store._hotUpdate = vue.markRaw((newStore) => { + store._hotUpdating = true; + newStore._hmrPayload.state.forEach((stateKey) => { + if (stateKey in store.$state) { + const newStateTarget = newStore.$state[stateKey]; + const oldStateSource = store.$state[stateKey]; + if (typeof newStateTarget === "object" && isPlainObject(newStateTarget) && isPlainObject(oldStateSource)) { + patchObject(newStateTarget, oldStateSource); + } else { + newStore.$state[stateKey] = oldStateSource; + } + } + set(store, stateKey, vue.toRef(newStore.$state, stateKey)); + }); + Object.keys(store.$state).forEach((stateKey) => { + if (!(stateKey in newStore.$state)) { + del(store, stateKey); + } + }); + isListening = false; + isSyncListening = false; + pinia2.state.value[$id] = vue.toRef(newStore._hmrPayload, "hotState"); + isSyncListening = true; + vue.nextTick().then(() => { + isListening = true; + }); + for (const actionName in newStore._hmrPayload.actions) { + const action = newStore[actionName]; + set(store, actionName, wrapAction(actionName, action)); + } + for (const getterName in newStore._hmrPayload.getters) { + const getter = newStore._hmrPayload.getters[getterName]; + const getterValue = isOptionsStore ? ( + // special handling of options api + vue.computed(() => { + setActivePinia(pinia2); + return getter.call(store, store); + }) + ) : getter; + set(store, getterName, getterValue); + } + Object.keys(store._hmrPayload.getters).forEach((key) => { + if (!(key in newStore._hmrPayload.getters)) { + del(store, key); + } + }); + Object.keys(store._hmrPayload.actions).forEach((key) => { + if (!(key in newStore._hmrPayload.actions)) { + del(store, key); + } + }); + store._hmrPayload = newStore._hmrPayload; + store._getters = newStore._getters; + store._hotUpdating = false; + }); + } + if (USE_DEVTOOLS) { + const nonEnumerable = { + writable: true, + configurable: true, + // avoid warning on devtools trying to display this property + enumerable: false + }; + ["_p", "_hmrPayload", "_getters", "_customProperties"].forEach((p) => { + Object.defineProperty(store, p, assign$2({ value: store[p] }, nonEnumerable)); + }); + } + pinia2._p.forEach((extender) => { + if (USE_DEVTOOLS) { + const extensions = scope.run(() => extender({ + store, + app: pinia2._a, + pinia: pinia2, + options: optionsForPlugin + })); + Object.keys(extensions || {}).forEach((key) => store._customProperties.add(key)); + assign$2(store, extensions); + } else { + assign$2(store, scope.run(() => extender({ + store, + app: pinia2._a, + pinia: pinia2, + options: optionsForPlugin + }))); + } + }); + if (process.env.NODE_ENV !== "production" && store.$state && typeof store.$state === "object" && typeof store.$state.constructor === "function" && !store.$state.constructor.toString().includes("[native code]")) { + console.warn(`[🍍]: The "state" must be a plain object. It cannot be + state: () => new MyClass() +Found in store "${store.$id}".`); + } + if (initialState && isOptionsStore && options.hydrate) { + options.hydrate(store.$state, initialState); + } + isListening = true; + isSyncListening = true; + return store; + } + function defineStore(idOrOptions, setup, setupOptions) { + let id; + let options; + const isSetupStore = typeof setup === "function"; + if (typeof idOrOptions === "string") { + id = idOrOptions; + options = isSetupStore ? setupOptions : setup; + } else { + options = idOrOptions; + id = idOrOptions.id; + if (process.env.NODE_ENV !== "production" && typeof id !== "string") { + throw new Error(`[🍍]: "defineStore()" must be passed a store id as its first argument.`); + } + } + function useStore(pinia2, hot) { + const hasContext = vue.hasInjectionContext(); + pinia2 = // in test mode, ignore the argument provided as we can always retrieve a + // pinia instance with getActivePinia() + (process.env.NODE_ENV === "test" && activePinia && activePinia._testing ? null : pinia2) || (hasContext ? vue.inject(piniaSymbol, null) : null); + if (pinia2) + setActivePinia(pinia2); + if (process.env.NODE_ENV !== "production" && !activePinia) { + throw new Error(`[🍍]: "getActivePinia()" was called but there was no active Pinia. Are you trying to use a store before calling "app.use(pinia)"? +See https://pinia.vuejs.org/core-concepts/outside-component-usage.html for help. +This will fail in production.`); + } + pinia2 = activePinia; + if (!pinia2._s.has(id)) { + if (isSetupStore) { + createSetupStore(id, setup, options, pinia2); + } else { + createOptionsStore(id, options, pinia2); + } + if (process.env.NODE_ENV !== "production") { + useStore._pinia = pinia2; + } + } + const store = pinia2._s.get(id); + if (process.env.NODE_ENV !== "production" && hot) { + const hotId = "__hot:" + id; + const newStore = isSetupStore ? createSetupStore(hotId, setup, options, pinia2, true) : createOptionsStore(hotId, assign$2({}, options), pinia2, true); + hot._hotUpdate(newStore); + delete pinia2.state.value[hotId]; + pinia2._s.delete(hotId); + } + if (process.env.NODE_ENV !== "production" && IS_CLIENT) { + const currentInstance = vue.getCurrentInstance(); + if (currentInstance && currentInstance.proxy && // avoid adding stores that are just built for hot module replacement + !hot) { + const vm = currentInstance.proxy; + const cache = "_pStores" in vm ? vm._pStores : vm._pStores = {}; + cache[id] = store; + } + } + return store; + } + useStore.$id = id; + return useStore; + } + const useDataStore = defineStore("data", () => { + const records = vue.ref([]); + const record = vue.ref({}); + return { records, record }; + }); + function useStonecrop(registry) { + if (!registry) { + registry = vue.inject("$registry"); + } + const store = useDataStore(); + const stonecrop = vue.ref(new Stonecrop(registry, store)); + const isReady = vue.ref(false); + vue.onBeforeMount(async () => { + var _a, _b; + const route = registry.router.currentRoute.value; + const doctypeSlug = (_a = route.params.records) == null ? void 0 : _a.toString().toLowerCase(); + const recordId = (_b = route.params.record) == null ? void 0 : _b.toString().toLowerCase(); + if (!doctypeSlug && !recordId) { + return; + } + const doctype = await registry.getMeta(doctypeSlug); + registry.addDoctype(doctype); + stonecrop.value.setup(doctype); + if (doctypeSlug) { + if (recordId) { + await stonecrop.value.getRecord(doctype, recordId); + } else { + await stonecrop.value.getRecords(doctype); + } + } + stonecrop.value.runAction(doctype, "LOAD", recordId ? [recordId] : void 0); + isReady.value = true; + }); + return { stonecrop, isReady }; + } + class DoctypeMeta { + constructor(doctype, schema, workflow, actions, component) { + this.doctype = doctype; + this.schema = schema; + this.workflow = workflow; + this.actions = actions; + this.component = component; + } + get slug() { + return this.doctype.replace(/([a-z])([A-Z])/g, "$1-$2").replace(/[\s_]+/g, "-").toLowerCase(); + } + get __typename() { + return this.doctype; + } + } + class Registry { + constructor(router2, getMeta) { + if (Registry._root) { + return Registry._root; + } + Registry._root = this; + this.name = "Registry"; + this.router = router2; + this.registry = {}; + this.getMeta = getMeta; + } + addDoctype(doctype) { + if (!(doctype.doctype in Object.keys(this.registry))) { + this.registry[doctype.slug] = doctype; + } + if (!this.router.hasRoute(doctype.doctype)) { + this.router.addRoute({ + path: `/${doctype.slug}`, + name: doctype.slug, + component: doctype.component + }); + } + } + } + /*! + * vue-router v4.2.5 + * (c) 2023 Eduardo San Martin Morote + * @license MIT + */ + const isBrowser = typeof window !== "undefined"; + function isESModule(obj) { + return obj.__esModule || obj[Symbol.toStringTag] === "Module"; + } + const assign = Object.assign; + function applyToParams(fn, params) { + const newParams = {}; + for (const key in params) { + const value = params[key]; + newParams[key] = isArray(value) ? value.map(fn) : fn(value); + } + return newParams; + } + const noop = () => { + }; + const isArray = Array.isArray; + function warn(msg) { + const args = Array.from(arguments).slice(1); + console.warn.apply(console, ["[Vue Router warn]: " + msg].concat(args)); + } + const TRAILING_SLASH_RE = /\/$/; + const removeTrailingSlash = (path) => path.replace(TRAILING_SLASH_RE, ""); + function parseURL(parseQuery2, location2, currentLocation = "/") { + let path, query = {}, searchString = "", hash = ""; + const hashPos = location2.indexOf("#"); + let searchPos = location2.indexOf("?"); + if (hashPos < searchPos && hashPos >= 0) { + searchPos = -1; + } + if (searchPos > -1) { + path = location2.slice(0, searchPos); + searchString = location2.slice(searchPos + 1, hashPos > -1 ? hashPos : location2.length); + query = parseQuery2(searchString); + } + if (hashPos > -1) { + path = path || location2.slice(0, hashPos); + hash = location2.slice(hashPos, location2.length); + } + path = resolveRelativePath(path != null ? path : location2, currentLocation); + return { + fullPath: path + (searchString && "?") + searchString + hash, + path, + query, + hash + }; + } + function stringifyURL(stringifyQuery2, location2) { + const query = location2.query ? stringifyQuery2(location2.query) : ""; + return location2.path + (query && "?") + query + (location2.hash || ""); + } + function stripBase(pathname, base) { + if (!base || !pathname.toLowerCase().startsWith(base.toLowerCase())) + return pathname; + return pathname.slice(base.length) || "/"; + } + function isSameRouteLocation(stringifyQuery2, a, b) { + const aLastIndex = a.matched.length - 1; + const bLastIndex = b.matched.length - 1; + return aLastIndex > -1 && aLastIndex === bLastIndex && isSameRouteRecord(a.matched[aLastIndex], b.matched[bLastIndex]) && isSameRouteLocationParams(a.params, b.params) && stringifyQuery2(a.query) === stringifyQuery2(b.query) && a.hash === b.hash; + } + function isSameRouteRecord(a, b) { + return (a.aliasOf || a) === (b.aliasOf || b); + } + function isSameRouteLocationParams(a, b) { + if (Object.keys(a).length !== Object.keys(b).length) + return false; + for (const key in a) { + if (!isSameRouteLocationParamsValue(a[key], b[key])) + return false; + } + return true; + } + function isSameRouteLocationParamsValue(a, b) { + return isArray(a) ? isEquivalentArray(a, b) : isArray(b) ? isEquivalentArray(b, a) : a === b; + } + function isEquivalentArray(a, b) { + return isArray(b) ? a.length === b.length && a.every((value, i) => value === b[i]) : a.length === 1 && a[0] === b; + } + function resolveRelativePath(to, from) { + if (to.startsWith("/")) + return to; + if (process.env.NODE_ENV !== "production" && !from.startsWith("/")) { + warn(`Cannot resolve a relative location without an absolute path. Trying to resolve "${to}" from "${from}". It should look like "/${from}".`); + return to; + } + if (!to) + return from; + const fromSegments = from.split("/"); + const toSegments = to.split("/"); + const lastToSegment = toSegments[toSegments.length - 1]; + if (lastToSegment === ".." || lastToSegment === ".") { + toSegments.push(""); + } + let position = fromSegments.length - 1; + let toPosition; + let segment; + for (toPosition = 0; toPosition < toSegments.length; toPosition++) { + segment = toSegments[toPosition]; + if (segment === ".") + continue; + if (segment === "..") { + if (position > 1) + position--; + } else + break; + } + return fromSegments.slice(0, position).join("/") + "/" + toSegments.slice(toPosition - (toPosition === toSegments.length ? 1 : 0)).join("/"); + } + var NavigationType; + (function(NavigationType2) { + NavigationType2["pop"] = "pop"; + NavigationType2["push"] = "push"; + })(NavigationType || (NavigationType = {})); + var NavigationDirection; + (function(NavigationDirection2) { + NavigationDirection2["back"] = "back"; + NavigationDirection2["forward"] = "forward"; + NavigationDirection2["unknown"] = ""; + })(NavigationDirection || (NavigationDirection = {})); + function normalizeBase(base) { + if (!base) { + if (isBrowser) { + const baseEl = document.querySelector("base"); + base = baseEl && baseEl.getAttribute("href") || "/"; + base = base.replace(/^\w+:\/\/[^\/]+/, ""); + } else { + base = "/"; + } + } + if (base[0] !== "/" && base[0] !== "#") + base = "/" + base; + return removeTrailingSlash(base); + } + const BEFORE_HASH_RE = /^[^#]+#/; + function createHref(base, location2) { + return base.replace(BEFORE_HASH_RE, "#") + location2; + } + function getElementPosition(el, offset) { + const docRect = document.documentElement.getBoundingClientRect(); + const elRect = el.getBoundingClientRect(); + return { + behavior: offset.behavior, + left: elRect.left - docRect.left - (offset.left || 0), + top: elRect.top - docRect.top - (offset.top || 0) + }; + } + const computeScrollPosition = () => ({ + left: window.pageXOffset, + top: window.pageYOffset + }); + function scrollToPosition(position) { + let scrollToOptions; + if ("el" in position) { + const positionEl = position.el; + const isIdSelector = typeof positionEl === "string" && positionEl.startsWith("#"); + if (process.env.NODE_ENV !== "production" && typeof position.el === "string") { + if (!isIdSelector || !document.getElementById(position.el.slice(1))) { + try { + const foundEl = document.querySelector(position.el); + if (isIdSelector && foundEl) { + warn(`The selector "${position.el}" should be passed as "el: document.querySelector('${position.el}')" because it starts with "#".`); + return; + } + } catch (err) { + 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).`); + return; + } + } + } + const el = typeof positionEl === "string" ? isIdSelector ? document.getElementById(positionEl.slice(1)) : document.querySelector(positionEl) : positionEl; + if (!el) { + process.env.NODE_ENV !== "production" && warn(`Couldn't find element using selector "${position.el}" returned by scrollBehavior.`); + return; + } + scrollToOptions = getElementPosition(el, position); + } else { + scrollToOptions = position; + } + if ("scrollBehavior" in document.documentElement.style) + window.scrollTo(scrollToOptions); + else { + window.scrollTo(scrollToOptions.left != null ? scrollToOptions.left : window.pageXOffset, scrollToOptions.top != null ? scrollToOptions.top : window.pageYOffset); + } + } + function getScrollKey(path, delta) { + const position = history.state ? history.state.position - delta : -1; + return position + path; + } + const scrollPositions = /* @__PURE__ */ new Map(); + function saveScrollPosition(key, scrollPosition) { + scrollPositions.set(key, scrollPosition); + } + function getSavedScrollPosition(key) { + const scroll = scrollPositions.get(key); + scrollPositions.delete(key); + return scroll; + } + let createBaseLocation = () => location.protocol + "//" + location.host; + function createCurrentLocation(base, location2) { + const { pathname, search, hash } = location2; + const hashPos = base.indexOf("#"); + if (hashPos > -1) { + let slicePos = hash.includes(base.slice(hashPos)) ? base.slice(hashPos).length : 1; + let pathFromHash = hash.slice(slicePos); + if (pathFromHash[0] !== "/") + pathFromHash = "/" + pathFromHash; + return stripBase(pathFromHash, ""); + } + const path = stripBase(pathname, base); + return path + search + hash; + } + function useHistoryListeners(base, historyState, currentLocation, replace) { + let listeners = []; + let teardowns = []; + let pauseState = null; + const popStateHandler = ({ state }) => { + const to = createCurrentLocation(base, location); + const from = currentLocation.value; + const fromState = historyState.value; + let delta = 0; + if (state) { + currentLocation.value = to; + historyState.value = state; + if (pauseState && pauseState === from) { + pauseState = null; + return; + } + delta = fromState ? state.position - fromState.position : 0; + } else { + replace(to); + } + listeners.forEach((listener) => { + listener(currentLocation.value, from, { + delta, + type: NavigationType.pop, + direction: delta ? delta > 0 ? NavigationDirection.forward : NavigationDirection.back : NavigationDirection.unknown + }); + }); + }; + function pauseListeners() { + pauseState = currentLocation.value; + } + function listen(callback) { + listeners.push(callback); + const teardown = () => { + const index2 = listeners.indexOf(callback); + if (index2 > -1) + listeners.splice(index2, 1); + }; + teardowns.push(teardown); + return teardown; + } + function beforeUnloadListener() { + const { history: history2 } = window; + if (!history2.state) + return; + history2.replaceState(assign({}, history2.state, { scroll: computeScrollPosition() }), ""); + } + function destroy() { + for (const teardown of teardowns) + teardown(); + teardowns = []; + window.removeEventListener("popstate", popStateHandler); + window.removeEventListener("beforeunload", beforeUnloadListener); + } + window.addEventListener("popstate", popStateHandler); + window.addEventListener("beforeunload", beforeUnloadListener, { + passive: true + }); + return { + pauseListeners, + listen, + destroy + }; + } + function buildState(back, current, forward, replaced = false, computeScroll = false) { + return { + back, + current, + forward, + replaced, + position: window.history.length, + scroll: computeScroll ? computeScrollPosition() : null + }; + } + function useHistoryStateNavigation(base) { + const { history: history2, location: location2 } = window; + const currentLocation = { + value: createCurrentLocation(base, location2) + }; + const historyState = { value: history2.state }; + if (!historyState.value) { + changeLocation(currentLocation.value, { + back: null, + current: currentLocation.value, + forward: null, + // the length is off by one, we need to decrease it + position: history2.length - 1, + replaced: true, + // don't add a scroll as the user may have an anchor, and we want + // scrollBehavior to be triggered without a saved position + scroll: null + }, true); + } + function changeLocation(to, state, replace2) { + const hashIndex = base.indexOf("#"); + const url = hashIndex > -1 ? (location2.host && document.querySelector("base") ? base : base.slice(hashIndex)) + to : createBaseLocation() + base + to; + try { + history2[replace2 ? "replaceState" : "pushState"](state, "", url); + historyState.value = state; + } catch (err) { + if (process.env.NODE_ENV !== "production") { + warn("Error with push/replace State", err); + } else { + console.error(err); + } + location2[replace2 ? "replace" : "assign"](url); + } + } + function replace(to, data) { + const state = assign({}, history2.state, buildState( + historyState.value.back, + // keep back and forward entries but override current position + to, + historyState.value.forward, + true + ), data, { position: historyState.value.position }); + changeLocation(to, state, true); + currentLocation.value = to; + } + function push(to, data) { + const currentState = assign( + {}, + // use current history state to gracefully handle a wrong call to + // history.replaceState + // https://github.com/vuejs/router/issues/366 + historyState.value, + history2.state, + { + forward: to, + scroll: computeScrollPosition() + } + ); + if (process.env.NODE_ENV !== "production" && !history2.state) { + 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: + +history.replaceState(history.state, '', url) + +You can find more information at https://next.router.vuejs.org/guide/migration/#usage-of-history-state.`); + } + changeLocation(currentState.current, currentState, true); + const state = assign({}, buildState(currentLocation.value, to, null), { position: currentState.position + 1 }, data); + changeLocation(to, state, false); + currentLocation.value = to; + } + return { + location: currentLocation, + state: historyState, + push, + replace + }; + } + function createWebHistory(base) { + base = normalizeBase(base); + const historyNavigation = useHistoryStateNavigation(base); + const historyListeners = useHistoryListeners(base, historyNavigation.state, historyNavigation.location, historyNavigation.replace); + function go(delta, triggerListeners = true) { + if (!triggerListeners) + historyListeners.pauseListeners(); + history.go(delta); + } + const routerHistory = assign({ + // it's overridden right after + location: "", + base, + go, + createHref: createHref.bind(null, base) + }, historyNavigation, historyListeners); + Object.defineProperty(routerHistory, "location", { + enumerable: true, + get: () => historyNavigation.location.value + }); + Object.defineProperty(routerHistory, "state", { + enumerable: true, + get: () => historyNavigation.state.value + }); + return routerHistory; + } + function isRouteLocation(route) { + return typeof route === "string" || route && typeof route === "object"; + } + function isRouteName(name) { + return typeof name === "string" || typeof name === "symbol"; + } + const START_LOCATION_NORMALIZED = { + path: "/", + name: void 0, + params: {}, + query: {}, + hash: "", + fullPath: "/", + matched: [], + meta: {}, + redirectedFrom: void 0 + }; + const NavigationFailureSymbol = Symbol(process.env.NODE_ENV !== "production" ? "navigation failure" : ""); + var NavigationFailureType; + (function(NavigationFailureType2) { + NavigationFailureType2[NavigationFailureType2["aborted"] = 4] = "aborted"; + NavigationFailureType2[NavigationFailureType2["cancelled"] = 8] = "cancelled"; + NavigationFailureType2[NavigationFailureType2["duplicated"] = 16] = "duplicated"; + })(NavigationFailureType || (NavigationFailureType = {})); + const ErrorTypeMessages = { + [ + 1 + /* ErrorTypes.MATCHER_NOT_FOUND */ + ]({ location: location2, currentLocation }) { + return `No match for + ${JSON.stringify(location2)}${currentLocation ? "\nwhile being at\n" + JSON.stringify(currentLocation) : ""}`; + }, + [ + 2 + /* ErrorTypes.NAVIGATION_GUARD_REDIRECT */ + ]({ from, to }) { + return `Redirected from "${from.fullPath}" to "${stringifyRoute(to)}" via a navigation guard.`; + }, + [ + 4 + /* ErrorTypes.NAVIGATION_ABORTED */ + ]({ from, to }) { + return `Navigation aborted from "${from.fullPath}" to "${to.fullPath}" via a navigation guard.`; + }, + [ + 8 + /* ErrorTypes.NAVIGATION_CANCELLED */ + ]({ from, to }) { + return `Navigation cancelled from "${from.fullPath}" to "${to.fullPath}" with a new navigation.`; + }, + [ + 16 + /* ErrorTypes.NAVIGATION_DUPLICATED */ + ]({ from, to }) { + return `Avoided redundant navigation to current location: "${from.fullPath}".`; + } + }; + function createRouterError(type2, params) { + if (process.env.NODE_ENV !== "production" || false) { + return assign(new Error(ErrorTypeMessages[type2](params)), { + type: type2, + [NavigationFailureSymbol]: true + }, params); + } else { + return assign(new Error(), { + type: type2, + [NavigationFailureSymbol]: true + }, params); + } + } + function isNavigationFailure(error, type2) { + return error instanceof Error && NavigationFailureSymbol in error && (type2 == null || !!(error.type & type2)); + } + const propertiesToLog = ["params", "query", "hash"]; + function stringifyRoute(to) { + if (typeof to === "string") + return to; + if ("path" in to) + return to.path; + const location2 = {}; + for (const key of propertiesToLog) { + if (key in to) + location2[key] = to[key]; + } + return JSON.stringify(location2, null, 2); + } + const BASE_PARAM_PATTERN = "[^/]+?"; + const BASE_PATH_PARSER_OPTIONS = { + sensitive: false, + strict: false, + start: true, + end: true + }; + const REGEX_CHARS_RE = /[.+*?^${}()[\]/\\]/g; + function tokensToParser(segments, extraOptions) { + const options = assign({}, BASE_PATH_PARSER_OPTIONS, extraOptions); + const score = []; + let pattern = options.start ? "^" : ""; + const keys = []; + for (const segment of segments) { + const segmentScores = segment.length ? [] : [ + 90 + /* PathScore.Root */ + ]; + if (options.strict && !segment.length) + pattern += "/"; + for (let tokenIndex = 0; tokenIndex < segment.length; tokenIndex++) { + const token = segment[tokenIndex]; + let subSegmentScore = 40 + (options.sensitive ? 0.25 : 0); + if (token.type === 0) { + if (!tokenIndex) + pattern += "/"; + pattern += token.value.replace(REGEX_CHARS_RE, "\\$&"); + subSegmentScore += 40; + } else if (token.type === 1) { + const { value, repeatable, optional, regexp } = token; + keys.push({ + name: value, + repeatable, + optional + }); + const re2 = regexp ? regexp : BASE_PARAM_PATTERN; + if (re2 !== BASE_PARAM_PATTERN) { + subSegmentScore += 10; + try { + new RegExp(`(${re2})`); + } catch (err) { + throw new Error(`Invalid custom RegExp for param "${value}" (${re2}): ` + err.message); + } + } + let subPattern = repeatable ? `((?:${re2})(?:/(?:${re2}))*)` : `(${re2})`; + if (!tokenIndex) + subPattern = // avoid an optional / if there are more segments e.g. /:p?-static + // or /:p?-:p2 + optional && segment.length < 2 ? `(?:/${subPattern})` : "/" + subPattern; + if (optional) + subPattern += "?"; + pattern += subPattern; + subSegmentScore += 20; + if (optional) + subSegmentScore += -8; + if (repeatable) + subSegmentScore += -20; + if (re2 === ".*") + subSegmentScore += -50; + } + segmentScores.push(subSegmentScore); + } + score.push(segmentScores); + } + if (options.strict && options.end) { + const i = score.length - 1; + score[i][score[i].length - 1] += 0.7000000000000001; + } + if (!options.strict) + pattern += "/?"; + if (options.end) + pattern += "$"; + else if (options.strict) + pattern += "(?:/|$)"; + const re = new RegExp(pattern, options.sensitive ? "" : "i"); + function parse2(path) { + const match = path.match(re); + const params = {}; + if (!match) + return null; + for (let i = 1; i < match.length; i++) { + const value = match[i] || ""; + const key = keys[i - 1]; + params[key.name] = value && key.repeatable ? value.split("/") : value; + } + return params; + } + function stringify2(params) { + let path = ""; + let avoidDuplicatedSlash = false; + for (const segment of segments) { + if (!avoidDuplicatedSlash || !path.endsWith("/")) + path += "/"; + avoidDuplicatedSlash = false; + for (const token of segment) { + if (token.type === 0) { + path += token.value; + } else if (token.type === 1) { + const { value, repeatable, optional } = token; + const param = value in params ? params[value] : ""; + if (isArray(param) && !repeatable) { + throw new Error(`Provided param "${value}" is an array but it is not repeatable (* or + modifiers)`); + } + const text = isArray(param) ? param.join("/") : param; + if (!text) { + if (optional) { + if (segment.length < 2) { + if (path.endsWith("/")) + path = path.slice(0, -1); + else + avoidDuplicatedSlash = true; + } + } else + throw new Error(`Missing required param "${value}"`); + } + path += text; + } + } + } + return path || "/"; + } + return { + re, + score, + keys, + parse: parse2, + stringify: stringify2 + }; + } + function compareScoreArray(a, b) { + let i = 0; + while (i < a.length && i < b.length) { + const diff = b[i] - a[i]; + if (diff) + return diff; + i++; + } + if (a.length < b.length) { + return a.length === 1 && a[0] === 40 + 40 ? -1 : 1; + } else if (a.length > b.length) { + return b.length === 1 && b[0] === 40 + 40 ? 1 : -1; + } + return 0; + } + function comparePathParserScore(a, b) { + let i = 0; + const aScore = a.score; + const bScore = b.score; + while (i < aScore.length && i < bScore.length) { + const comp = compareScoreArray(aScore[i], bScore[i]); + if (comp) + return comp; + i++; + } + if (Math.abs(bScore.length - aScore.length) === 1) { + if (isLastScoreNegative(aScore)) + return 1; + if (isLastScoreNegative(bScore)) + return -1; + } + return bScore.length - aScore.length; + } + function isLastScoreNegative(score) { + const last = score[score.length - 1]; + return score.length > 0 && last[last.length - 1] < 0; + } + const ROOT_TOKEN = { + type: 0, + value: "" + }; + const VALID_PARAM_RE = /[a-zA-Z0-9_]/; + function tokenizePath(path) { + if (!path) + return [[]]; + if (path === "/") + return [[ROOT_TOKEN]]; + if (!path.startsWith("/")) { + throw new Error(process.env.NODE_ENV !== "production" ? `Route paths should start with a "/": "${path}" should be "/${path}".` : `Invalid path "${path}"`); + } + function crash(message) { + throw new Error(`ERR (${state})/"${buffer}": ${message}`); + } + let state = 0; + let previousState = state; + const tokens = []; + let segment; + function finalizeSegment() { + if (segment) + tokens.push(segment); + segment = []; + } + let i = 0; + let char; + let buffer = ""; + let customRe = ""; + function consumeBuffer() { + if (!buffer) + return; + if (state === 0) { + segment.push({ + type: 0, + value: buffer + }); + } else if (state === 1 || state === 2 || state === 3) { + if (segment.length > 1 && (char === "*" || char === "+")) + crash(`A repeatable param (${buffer}) must be alone in its segment. eg: '/:ids+.`); + segment.push({ + type: 1, + value: buffer, + regexp: customRe, + repeatable: char === "*" || char === "+", + optional: char === "*" || char === "?" + }); + } else { + crash("Invalid state to consume buffer"); + } + buffer = ""; + } + function addCharToBuffer() { + buffer += char; + } + while (i < path.length) { + char = path[i++]; + if (char === "\\" && state !== 2) { + previousState = state; + state = 4; + continue; + } + switch (state) { + case 0: + if (char === "/") { + if (buffer) { + consumeBuffer(); + } + finalizeSegment(); + } else if (char === ":") { + consumeBuffer(); + state = 1; + } else { + addCharToBuffer(); + } + break; + case 4: + addCharToBuffer(); + state = previousState; + break; + case 1: + if (char === "(") { + state = 2; + } else if (VALID_PARAM_RE.test(char)) { + addCharToBuffer(); + } else { + consumeBuffer(); + state = 0; + if (char !== "*" && char !== "?" && char !== "+") + i--; + } + break; + case 2: + if (char === ")") { + if (customRe[customRe.length - 1] == "\\") + customRe = customRe.slice(0, -1) + char; + else + state = 3; + } else { + customRe += char; + } + break; + case 3: + consumeBuffer(); + state = 0; + if (char !== "*" && char !== "?" && char !== "+") + i--; + customRe = ""; + break; + default: + crash("Unknown state"); + break; + } + } + if (state === 2) + crash(`Unfinished custom RegExp for param "${buffer}"`); + consumeBuffer(); + finalizeSegment(); + return tokens; + } + function createRouteRecordMatcher(record, parent, options) { + const parser = tokensToParser(tokenizePath(record.path), options); + if (process.env.NODE_ENV !== "production") { + const existingKeys = /* @__PURE__ */ new Set(); + for (const key of parser.keys) { + if (existingKeys.has(key.name)) + warn(`Found duplicated params with name "${key.name}" for path "${record.path}". Only the last one will be available on "$route.params".`); + existingKeys.add(key.name); + } + } + const matcher = assign(parser, { + record, + parent, + // these needs to be populated by the parent + children: [], + alias: [] + }); + if (parent) { + if (!matcher.record.aliasOf === !parent.record.aliasOf) + parent.children.push(matcher); + } + return matcher; + } + function createRouterMatcher(routes, globalOptions) { + const matchers = []; + const matcherMap = /* @__PURE__ */ new Map(); + globalOptions = mergeOptions({ strict: false, end: true, sensitive: false }, globalOptions); + function getRecordMatcher(name) { + return matcherMap.get(name); + } + function addRoute(record, parent, originalRecord) { + const isRootAdd = !originalRecord; + const mainNormalizedRecord = normalizeRouteRecord(record); + if (process.env.NODE_ENV !== "production") { + checkChildMissingNameWithEmptyPath(mainNormalizedRecord, parent); + } + mainNormalizedRecord.aliasOf = originalRecord && originalRecord.record; + const options = mergeOptions(globalOptions, record); + const normalizedRecords = [ + mainNormalizedRecord + ]; + if ("alias" in record) { + const aliases = typeof record.alias === "string" ? [record.alias] : record.alias; + for (const alias of aliases) { + normalizedRecords.push(assign({}, mainNormalizedRecord, { + // this allows us to hold a copy of the `components` option + // so that async components cache is hold on the original record + components: originalRecord ? originalRecord.record.components : mainNormalizedRecord.components, + path: alias, + // we might be the child of an alias + aliasOf: originalRecord ? originalRecord.record : mainNormalizedRecord + // the aliases are always of the same kind as the original since they + // are defined on the same record + })); + } + } + let matcher; + let originalMatcher; + for (const normalizedRecord of normalizedRecords) { + const { path } = normalizedRecord; + if (parent && path[0] !== "/") { + const parentPath = parent.record.path; + const connectingSlash = parentPath[parentPath.length - 1] === "/" ? "" : "/"; + normalizedRecord.path = parent.record.path + (path && connectingSlash + path); + } + if (process.env.NODE_ENV !== "production" && normalizedRecord.path === "*") { + throw new Error('Catch all routes ("*") must now be defined using a param with a custom regexp.\nSee more at https://next.router.vuejs.org/guide/migration/#removed-star-or-catch-all-routes.'); + } + matcher = createRouteRecordMatcher(normalizedRecord, parent, options); + if (process.env.NODE_ENV !== "production" && parent && path[0] === "/") + checkMissingParamsInAbsolutePath(matcher, parent); + if (originalRecord) { + originalRecord.alias.push(matcher); + if (process.env.NODE_ENV !== "production") { + checkSameParams(originalRecord, matcher); + } + } else { + originalMatcher = originalMatcher || matcher; + if (originalMatcher !== matcher) + originalMatcher.alias.push(matcher); + if (isRootAdd && record.name && !isAliasRecord(matcher)) + removeRoute(record.name); + } + if (mainNormalizedRecord.children) { + const children = mainNormalizedRecord.children; + for (let i = 0; i < children.length; i++) { + addRoute(children[i], matcher, originalRecord && originalRecord.children[i]); + } + } + originalRecord = originalRecord || matcher; + if (matcher.record.components && Object.keys(matcher.record.components).length || matcher.record.name || matcher.record.redirect) { + insertMatcher(matcher); + } + } + return originalMatcher ? () => { + removeRoute(originalMatcher); + } : noop; + } + function removeRoute(matcherRef) { + if (isRouteName(matcherRef)) { + const matcher = matcherMap.get(matcherRef); + if (matcher) { + matcherMap.delete(matcherRef); + matchers.splice(matchers.indexOf(matcher), 1); + matcher.children.forEach(removeRoute); + matcher.alias.forEach(removeRoute); + } + } else { + const index2 = matchers.indexOf(matcherRef); + if (index2 > -1) { + matchers.splice(index2, 1); + if (matcherRef.record.name) + matcherMap.delete(matcherRef.record.name); + matcherRef.children.forEach(removeRoute); + matcherRef.alias.forEach(removeRoute); + } + } + } + function getRoutes() { + return matchers; + } + function insertMatcher(matcher) { + let i = 0; + while (i < matchers.length && comparePathParserScore(matcher, matchers[i]) >= 0 && // Adding children with empty path should still appear before the parent + // https://github.com/vuejs/router/issues/1124 + (matcher.record.path !== matchers[i].record.path || !isRecordChildOf(matcher, matchers[i]))) + i++; + matchers.splice(i, 0, matcher); + if (matcher.record.name && !isAliasRecord(matcher)) + matcherMap.set(matcher.record.name, matcher); + } + function resolve(location2, currentLocation) { + let matcher; + let params = {}; + let path; + let name; + if ("name" in location2 && location2.name) { + matcher = matcherMap.get(location2.name); + if (!matcher) + throw createRouterError(1, { + location: location2 + }); + if (process.env.NODE_ENV !== "production") { + const invalidParams = Object.keys(location2.params || {}).filter((paramName) => !matcher.keys.find((k) => k.name === paramName)); + if (invalidParams.length) { + 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.`); + } + } + name = matcher.record.name; + params = assign( + // paramsFromLocation is a new object + paramsFromLocation( + currentLocation.params, + // only keep params that exist in the resolved location + // TODO: only keep optional params coming from a parent record + matcher.keys.filter((k) => !k.optional).map((k) => k.name) + ), + // discard any existing params in the current location that do not exist here + // #1497 this ensures better active/exact matching + location2.params && paramsFromLocation(location2.params, matcher.keys.map((k) => k.name)) + ); + path = matcher.stringify(params); + } else if ("path" in location2) { + path = location2.path; + if (process.env.NODE_ENV !== "production" && !path.startsWith("/")) { + 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.`); + } + matcher = matchers.find((m2) => m2.re.test(path)); + if (matcher) { + params = matcher.parse(path); + name = matcher.record.name; + } + } else { + matcher = currentLocation.name ? matcherMap.get(currentLocation.name) : matchers.find((m2) => m2.re.test(currentLocation.path)); + if (!matcher) + throw createRouterError(1, { + location: location2, + currentLocation + }); + name = matcher.record.name; + params = assign({}, currentLocation.params, location2.params); + path = matcher.stringify(params); + } + const matched = []; + let parentMatcher = matcher; + while (parentMatcher) { + matched.unshift(parentMatcher.record); + parentMatcher = parentMatcher.parent; + } + return { + name, + path, + params, + matched, + meta: mergeMetaFields(matched) + }; + } + routes.forEach((route) => addRoute(route)); + return { addRoute, resolve, removeRoute, getRoutes, getRecordMatcher }; + } + function paramsFromLocation(params, keys) { + const newParams = {}; + for (const key of keys) { + if (key in params) + newParams[key] = params[key]; + } + return newParams; + } + function normalizeRouteRecord(record) { + return { + path: record.path, + redirect: record.redirect, + name: record.name, + meta: record.meta || {}, + aliasOf: void 0, + beforeEnter: record.beforeEnter, + props: normalizeRecordProps(record), + children: record.children || [], + instances: {}, + leaveGuards: /* @__PURE__ */ new Set(), + updateGuards: /* @__PURE__ */ new Set(), + enterCallbacks: {}, + components: "components" in record ? record.components || null : record.component && { default: record.component } + }; + } + function normalizeRecordProps(record) { + const propsObject = {}; + const props = record.props || false; + if ("component" in record) { + propsObject.default = props; + } else { + for (const name in record.components) + propsObject[name] = typeof props === "object" ? props[name] : props; + } + return propsObject; + } + function isAliasRecord(record) { + while (record) { + if (record.record.aliasOf) + return true; + record = record.parent; + } + return false; + } + function mergeMetaFields(matched) { + return matched.reduce((meta, record) => assign(meta, record.meta), {}); + } + function mergeOptions(defaults, partialOptions) { + const options = {}; + for (const key in defaults) { + options[key] = key in partialOptions ? partialOptions[key] : defaults[key]; + } + return options; + } + function isSameParam(a, b) { + return a.name === b.name && a.optional === b.optional && a.repeatable === b.repeatable; + } + function checkSameParams(a, b) { + for (const key of a.keys) { + if (!key.optional && !b.keys.find(isSameParam.bind(null, key))) + return warn(`Alias "${b.record.path}" and the original record: "${a.record.path}" must have the exact same param named "${key.name}"`); + } + for (const key of b.keys) { + if (!key.optional && !a.keys.find(isSameParam.bind(null, key))) + return warn(`Alias "${b.record.path}" and the original record: "${a.record.path}" must have the exact same param named "${key.name}"`); + } + } + function checkChildMissingNameWithEmptyPath(mainNormalizedRecord, parent) { + if (parent && parent.record.name && !mainNormalizedRecord.name && !mainNormalizedRecord.path) { + 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.`); + } + } + function checkMissingParamsInAbsolutePath(record, parent) { + for (const key of parent.keys) { + if (!record.keys.find(isSameParam.bind(null, key))) + return warn(`Absolute path "${record.record.path}" must have the exact same param named "${key.name}" as its parent "${parent.record.path}".`); + } + } + function isRecordChildOf(record, parent) { + return parent.children.some((child) => child === record || isRecordChildOf(record, child)); + } + const HASH_RE = /#/g; + const AMPERSAND_RE = /&/g; + const SLASH_RE = /\//g; + const EQUAL_RE = /=/g; + const IM_RE = /\?/g; + const PLUS_RE = /\+/g; + const ENC_BRACKET_OPEN_RE = /%5B/g; + const ENC_BRACKET_CLOSE_RE = /%5D/g; + const ENC_CARET_RE = /%5E/g; + const ENC_BACKTICK_RE = /%60/g; + const ENC_CURLY_OPEN_RE = /%7B/g; + const ENC_PIPE_RE = /%7C/g; + const ENC_CURLY_CLOSE_RE = /%7D/g; + const ENC_SPACE_RE = /%20/g; + function commonEncode(text) { + return encodeURI("" + text).replace(ENC_PIPE_RE, "|").replace(ENC_BRACKET_OPEN_RE, "[").replace(ENC_BRACKET_CLOSE_RE, "]"); + } + function encodeHash(text) { + return commonEncode(text).replace(ENC_CURLY_OPEN_RE, "{").replace(ENC_CURLY_CLOSE_RE, "}").replace(ENC_CARET_RE, "^"); + } + function encodeQueryValue(text) { + return commonEncode(text).replace(PLUS_RE, "%2B").replace(ENC_SPACE_RE, "+").replace(HASH_RE, "%23").replace(AMPERSAND_RE, "%26").replace(ENC_BACKTICK_RE, "`").replace(ENC_CURLY_OPEN_RE, "{").replace(ENC_CURLY_CLOSE_RE, "}").replace(ENC_CARET_RE, "^"); + } + function encodeQueryKey(text) { + return encodeQueryValue(text).replace(EQUAL_RE, "%3D"); + } + function encodePath(text) { + return commonEncode(text).replace(HASH_RE, "%23").replace(IM_RE, "%3F"); + } + function encodeParam(text) { + return text == null ? "" : encodePath(text).replace(SLASH_RE, "%2F"); + } + function decode(text) { + try { + return decodeURIComponent("" + text); + } catch (err) { + process.env.NODE_ENV !== "production" && warn(`Error decoding "${text}". Using original value`); + } + return "" + text; + } + function parseQuery(search) { + const query = {}; + if (search === "" || search === "?") + return query; + const hasLeadingIM = search[0] === "?"; + const searchParams = (hasLeadingIM ? search.slice(1) : search).split("&"); + for (let i = 0; i < searchParams.length; ++i) { + const searchParam = searchParams[i].replace(PLUS_RE, " "); + const eqPos = searchParam.indexOf("="); + const key = decode(eqPos < 0 ? searchParam : searchParam.slice(0, eqPos)); + const value = eqPos < 0 ? null : decode(searchParam.slice(eqPos + 1)); + if (key in query) { + let currentValue = query[key]; + if (!isArray(currentValue)) { + currentValue = query[key] = [currentValue]; + } + currentValue.push(value); + } else { + query[key] = value; + } + } + return query; + } + function stringifyQuery(query) { + let search = ""; + for (let key in query) { + const value = query[key]; + key = encodeQueryKey(key); + if (value == null) { + if (value !== void 0) { + search += (search.length ? "&" : "") + key; + } + continue; + } + const values = isArray(value) ? value.map((v) => v && encodeQueryValue(v)) : [value && encodeQueryValue(value)]; + values.forEach((value2) => { + if (value2 !== void 0) { + search += (search.length ? "&" : "") + key; + if (value2 != null) + search += "=" + value2; + } + }); + } + return search; + } + function normalizeQuery(query) { + const normalizedQuery = {}; + for (const key in query) { + const value = query[key]; + if (value !== void 0) { + normalizedQuery[key] = isArray(value) ? value.map((v) => v == null ? null : "" + v) : value == null ? value : "" + value; + } + } + return normalizedQuery; + } + const matchedRouteKey = Symbol(process.env.NODE_ENV !== "production" ? "router view location matched" : ""); + const viewDepthKey = Symbol(process.env.NODE_ENV !== "production" ? "router view depth" : ""); + const routerKey = Symbol(process.env.NODE_ENV !== "production" ? "router" : ""); + const routeLocationKey = Symbol(process.env.NODE_ENV !== "production" ? "route location" : ""); + const routerViewLocationKey = Symbol(process.env.NODE_ENV !== "production" ? "router view location" : ""); + function useCallbacks() { + let handlers = []; + function add(handler) { + handlers.push(handler); + return () => { + const i = handlers.indexOf(handler); + if (i > -1) + handlers.splice(i, 1); + }; + } + function reset() { + handlers = []; + } + return { + add, + list: () => handlers.slice(), + reset + }; + } + function guardToPromiseFn(guard, to, from, record, name) { + const enterCallbackArray = record && // name is defined if record is because of the function overload + (record.enterCallbacks[name] = record.enterCallbacks[name] || []); + return () => new Promise((resolve, reject) => { + const next = (valid) => { + if (valid === false) { + reject(createRouterError(4, { + from, + to + })); + } else if (valid instanceof Error) { + reject(valid); + } else if (isRouteLocation(valid)) { + reject(createRouterError(2, { + from: to, + to: valid + })); + } else { + if (enterCallbackArray && // since enterCallbackArray is truthy, both record and name also are + record.enterCallbacks[name] === enterCallbackArray && typeof valid === "function") { + enterCallbackArray.push(valid); + } + resolve(); + } + }; + const guardReturn = guard.call(record && record.instances[name], to, from, process.env.NODE_ENV !== "production" ? canOnlyBeCalledOnce(next, to, from) : next); + let guardCall = Promise.resolve(guardReturn); + if (guard.length < 3) + guardCall = guardCall.then(next); + if (process.env.NODE_ENV !== "production" && guard.length > 2) { + const message = `The "next" callback was never called inside of ${guard.name ? '"' + guard.name + '"' : ""}: +${guard.toString()} +. If you are returning a value instead of calling "next", make sure to remove the "next" parameter from your function.`; + if (typeof guardReturn === "object" && "then" in guardReturn) { + guardCall = guardCall.then((resolvedValue) => { + if (!next._called) { + warn(message); + return Promise.reject(new Error("Invalid navigation guard")); + } + return resolvedValue; + }); + } else if (guardReturn !== void 0) { + if (!next._called) { + warn(message); + reject(new Error("Invalid navigation guard")); + return; + } + } + } + guardCall.catch((err) => reject(err)); + }); + } + function canOnlyBeCalledOnce(next, to, from) { + let called = 0; + return function() { + if (called++ === 1) + 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.`); + next._called = true; + if (called === 1) + next.apply(null, arguments); + }; + } + function extractComponentsGuards(matched, guardType, to, from) { + const guards = []; + for (const record of matched) { + if (process.env.NODE_ENV !== "production" && !record.components && !record.children.length) { + warn(`Record with path "${record.path}" is either missing a "component(s)" or "children" property.`); + } + for (const name in record.components) { + let rawComponent = record.components[name]; + if (process.env.NODE_ENV !== "production") { + if (!rawComponent || typeof rawComponent !== "object" && typeof rawComponent !== "function") { + warn(`Component "${name}" in record with path "${record.path}" is not a valid component. Received "${String(rawComponent)}".`); + throw new Error("Invalid route component"); + } else if ("then" in rawComponent) { + 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.`); + const promise = rawComponent; + rawComponent = () => promise; + } else if (rawComponent.__asyncLoader && // warn only once per component + !rawComponent.__warnedDefineAsync) { + rawComponent.__warnedDefineAsync = true; + warn(`Component "${name}" in record with path "${record.path}" is defined using "defineAsyncComponent()". Write "() => import('./MyPage.vue')" instead of "defineAsyncComponent(() => import('./MyPage.vue'))".`); + } + } + if (guardType !== "beforeRouteEnter" && !record.instances[name]) + continue; + if (isRouteComponent(rawComponent)) { + const options = rawComponent.__vccOpts || rawComponent; + const guard = options[guardType]; + guard && guards.push(guardToPromiseFn(guard, to, from, record, name)); + } else { + let componentPromise = rawComponent(); + if (process.env.NODE_ENV !== "production" && !("catch" in componentPromise)) { + 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.`); + componentPromise = Promise.resolve(componentPromise); + } + guards.push(() => componentPromise.then((resolved) => { + if (!resolved) + return Promise.reject(new Error(`Couldn't resolve component "${name}" at "${record.path}"`)); + const resolvedComponent = isESModule(resolved) ? resolved.default : resolved; + record.components[name] = resolvedComponent; + const options = resolvedComponent.__vccOpts || resolvedComponent; + const guard = options[guardType]; + return guard && guardToPromiseFn(guard, to, from, record, name)(); + })); + } + } + } + return guards; + } + function isRouteComponent(component) { + return typeof component === "object" || "displayName" in component || "props" in component || "__vccOpts" in component; + } + function useLink(props) { + const router2 = vue.inject(routerKey); + const currentRoute = vue.inject(routeLocationKey); + const route = vue.computed(() => router2.resolve(vue.unref(props.to))); + const activeRecordIndex = vue.computed(() => { + const { matched } = route.value; + const { length } = matched; + const routeMatched = matched[length - 1]; + const currentMatched = currentRoute.matched; + if (!routeMatched || !currentMatched.length) + return -1; + const index2 = currentMatched.findIndex(isSameRouteRecord.bind(null, routeMatched)); + if (index2 > -1) + return index2; + const parentRecordPath = getOriginalPath(matched[length - 2]); + return ( + // we are dealing with nested routes + length > 1 && // if the parent and matched route have the same path, this link is + // referring to the empty child. Or we currently are on a different + // child of the same parent + getOriginalPath(routeMatched) === parentRecordPath && // avoid comparing the child with its parent + currentMatched[currentMatched.length - 1].path !== parentRecordPath ? currentMatched.findIndex(isSameRouteRecord.bind(null, matched[length - 2])) : index2 + ); + }); + const isActive = vue.computed(() => activeRecordIndex.value > -1 && includesParams(currentRoute.params, route.value.params)); + const isExactActive = vue.computed(() => activeRecordIndex.value > -1 && activeRecordIndex.value === currentRoute.matched.length - 1 && isSameRouteLocationParams(currentRoute.params, route.value.params)); + function navigate(e = {}) { + if (guardEvent(e)) { + return router2[vue.unref(props.replace) ? "replace" : "push"]( + vue.unref(props.to) + // avoid uncaught errors are they are logged anyway + ).catch(noop); + } + return Promise.resolve(); + } + if ((process.env.NODE_ENV !== "production" || false) && isBrowser) { + const instance = vue.getCurrentInstance(); + if (instance) { + const linkContextDevtools = { + route: route.value, + isActive: isActive.value, + isExactActive: isExactActive.value + }; + instance.__vrl_devtools = instance.__vrl_devtools || []; + instance.__vrl_devtools.push(linkContextDevtools); + vue.watchEffect(() => { + linkContextDevtools.route = route.value; + linkContextDevtools.isActive = isActive.value; + linkContextDevtools.isExactActive = isExactActive.value; + }, { flush: "post" }); + } + } + return { + route, + href: vue.computed(() => route.value.href), + isActive, + isExactActive, + navigate + }; + } + const RouterLinkImpl = /* @__PURE__ */ vue.defineComponent({ + name: "RouterLink", + compatConfig: { MODE: 3 }, + props: { + to: { + type: [String, Object], + required: true + }, + replace: Boolean, + activeClass: String, + // inactiveClass: String, + exactActiveClass: String, + custom: Boolean, + ariaCurrentValue: { + type: String, + default: "page" + } + }, + useLink, + setup(props, { slots }) { + const link = vue.reactive(useLink(props)); + const { options } = vue.inject(routerKey); + const elClass = vue.computed(() => ({ + [getLinkClass(props.activeClass, options.linkActiveClass, "router-link-active")]: link.isActive, + // [getLinkClass( + // props.inactiveClass, + // options.linkInactiveClass, + // 'router-link-inactive' + // )]: !link.isExactActive, + [getLinkClass(props.exactActiveClass, options.linkExactActiveClass, "router-link-exact-active")]: link.isExactActive + })); + return () => { + const children = slots.default && slots.default(link); + return props.custom ? children : vue.h("a", { + "aria-current": link.isExactActive ? props.ariaCurrentValue : null, + href: link.href, + // this would override user added attrs but Vue will still add + // the listener, so we end up triggering both + onClick: link.navigate, + class: elClass.value + }, children); + }; + } + }); + const RouterLink = RouterLinkImpl; + function guardEvent(e) { + if (e.metaKey || e.altKey || e.ctrlKey || e.shiftKey) + return; + if (e.defaultPrevented) + return; + if (e.button !== void 0 && e.button !== 0) + return; + if (e.currentTarget && e.currentTarget.getAttribute) { + const target = e.currentTarget.getAttribute("target"); + if (/\b_blank\b/i.test(target)) + return; + } + if (e.preventDefault) + e.preventDefault(); + return true; + } + function includesParams(outer, inner) { + for (const key in inner) { + const innerValue = inner[key]; + const outerValue = outer[key]; + if (typeof innerValue === "string") { + if (innerValue !== outerValue) + return false; + } else { + if (!isArray(outerValue) || outerValue.length !== innerValue.length || innerValue.some((value, i) => value !== outerValue[i])) + return false; + } + } + return true; + } + function getOriginalPath(record) { + return record ? record.aliasOf ? record.aliasOf.path : record.path : ""; + } + const getLinkClass = (propClass, globalClass, defaultClass) => propClass != null ? propClass : globalClass != null ? globalClass : defaultClass; + const RouterViewImpl = /* @__PURE__ */ vue.defineComponent({ + name: "RouterView", + // #674 we manually inherit them + inheritAttrs: false, + props: { + name: { + type: String, + default: "default" + }, + route: Object + }, + // Better compat for @vue/compat users + // https://github.com/vuejs/router/issues/1315 + compatConfig: { MODE: 3 }, + setup(props, { attrs, slots }) { + process.env.NODE_ENV !== "production" && warnDeprecatedUsage(); + const injectedRoute = vue.inject(routerViewLocationKey); + const routeToDisplay = vue.computed(() => props.route || injectedRoute.value); + const injectedDepth = vue.inject(viewDepthKey, 0); + const depth = vue.computed(() => { + let initialDepth = vue.unref(injectedDepth); + const { matched } = routeToDisplay.value; + let matchedRoute; + while ((matchedRoute = matched[initialDepth]) && !matchedRoute.components) { + initialDepth++; + } + return initialDepth; + }); + const matchedRouteRef = vue.computed(() => routeToDisplay.value.matched[depth.value]); + vue.provide(viewDepthKey, vue.computed(() => depth.value + 1)); + vue.provide(matchedRouteKey, matchedRouteRef); + vue.provide(routerViewLocationKey, routeToDisplay); + const viewRef = vue.ref(); + vue.watch(() => [viewRef.value, matchedRouteRef.value, props.name], ([instance, to, name], [oldInstance, from, oldName]) => { + if (to) { + to.instances[name] = instance; + if (from && from !== to && instance && instance === oldInstance) { + if (!to.leaveGuards.size) { + to.leaveGuards = from.leaveGuards; + } + if (!to.updateGuards.size) { + to.updateGuards = from.updateGuards; + } + } + } + if (instance && to && // if there is no instance but to and from are the same this might be + // the first visit + (!from || !isSameRouteRecord(to, from) || !oldInstance)) { + (to.enterCallbacks[name] || []).forEach((callback) => callback(instance)); + } + }, { flush: "post" }); + return () => { + const route = routeToDisplay.value; + const currentName = props.name; + const matchedRoute = matchedRouteRef.value; + const ViewComponent = matchedRoute && matchedRoute.components[currentName]; + if (!ViewComponent) { + return normalizeSlot(slots.default, { Component: ViewComponent, route }); + } + const routePropsOption = matchedRoute.props[currentName]; + const routeProps = routePropsOption ? routePropsOption === true ? route.params : typeof routePropsOption === "function" ? routePropsOption(route) : routePropsOption : null; + const onVnodeUnmounted = (vnode) => { + if (vnode.component.isUnmounted) { + matchedRoute.instances[currentName] = null; + } + }; + const component = vue.h(ViewComponent, assign({}, routeProps, attrs, { + onVnodeUnmounted, + ref: viewRef + })); + if ((process.env.NODE_ENV !== "production" || false) && isBrowser && component.ref) { + const info = { + depth: depth.value, + name: matchedRoute.name, + path: matchedRoute.path, + meta: matchedRoute.meta + }; + const internalInstances = isArray(component.ref) ? component.ref.map((r) => r.i) : [component.ref.i]; + internalInstances.forEach((instance) => { + instance.__vrv_devtools = info; + }); + } + return ( + // pass the vnode to the slot as a prop. + // h and both accept vnodes + normalizeSlot(slots.default, { Component: component, route }) || component + ); + }; + } + }); + function normalizeSlot(slot, data) { + if (!slot) + return null; + const slotContent = slot(data); + return slotContent.length === 1 ? slotContent[0] : slotContent; + } + const RouterView = RouterViewImpl; + function warnDeprecatedUsage() { + const instance = vue.getCurrentInstance(); + const parentName = instance.parent && instance.parent.type.name; + const parentSubTreeType = instance.parent && instance.parent.subTree && instance.parent.subTree.type; + if (parentName && (parentName === "KeepAlive" || parentName.includes("Transition")) && typeof parentSubTreeType === "object" && parentSubTreeType.name === "RouterView") { + const comp = parentName === "KeepAlive" ? "keep-alive" : "transition"; + warn(` can no longer be used directly inside or . +Use slot props instead: + + + <${comp}> + + +`); + } + } + function formatRouteLocation(routeLocation, tooltip) { + const copy = assign({}, routeLocation, { + // remove variables that can contain vue instances + matched: routeLocation.matched.map((matched) => omit(matched, ["instances", "children", "aliasOf"])) + }); + return { + _custom: { + type: null, + readOnly: true, + display: routeLocation.fullPath, + tooltip, + value: copy + } + }; + } + function formatDisplay(display) { + return { + _custom: { + display + } + }; + } + let routerId = 0; + function addDevtools(app, router2, matcher) { + if (router2.__hasDevtools) + return; + router2.__hasDevtools = true; + const id = routerId++; + setupDevtoolsPlugin({ + id: "org.vuejs.router" + (id ? "." + id : ""), + label: "Vue Router", + packageName: "vue-router", + homepage: "https://router.vuejs.org", + logo: "https://router.vuejs.org/logo.png", + componentStateTypes: ["Routing"], + app + }, (api) => { + if (typeof api.now !== "function") { + 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."); + } + api.on.inspectComponent((payload, ctx) => { + if (payload.instanceData) { + payload.instanceData.state.push({ + type: "Routing", + key: "$route", + editable: false, + value: formatRouteLocation(router2.currentRoute.value, "Current Route") + }); + } + }); + api.on.visitComponentTree(({ treeNode: node, componentInstance }) => { + if (componentInstance.__vrv_devtools) { + const info = componentInstance.__vrv_devtools; + node.tags.push({ + label: (info.name ? `${info.name.toString()}: ` : "") + info.path, + textColor: 0, + tooltip: "This component is rendered by <router-view>", + backgroundColor: PINK_500 + }); + } + if (isArray(componentInstance.__vrl_devtools)) { + componentInstance.__devtoolsApi = api; + componentInstance.__vrl_devtools.forEach((devtoolsData) => { + let backgroundColor = ORANGE_400; + let tooltip = ""; + if (devtoolsData.isExactActive) { + backgroundColor = LIME_500; + tooltip = "This is exactly active"; + } else if (devtoolsData.isActive) { + backgroundColor = BLUE_600; + tooltip = "This link is active"; + } + node.tags.push({ + label: devtoolsData.route.path, + textColor: 0, + tooltip, + backgroundColor + }); + }); + } + }); + vue.watch(router2.currentRoute, () => { + refreshRoutesView(); + api.notifyComponentUpdate(); + api.sendInspectorTree(routerInspectorId); + api.sendInspectorState(routerInspectorId); + }); + const navigationsLayerId = "router:navigations:" + id; + api.addTimelineLayer({ + id: navigationsLayerId, + label: `Router${id ? " " + id : ""} Navigations`, + color: 4237508 + }); + router2.onError((error, to) => { + api.addTimelineEvent({ + layerId: navigationsLayerId, + event: { + title: "Error during Navigation", + subtitle: to.fullPath, + logType: "error", + time: api.now(), + data: { error }, + groupId: to.meta.__navigationId + } + }); + }); + let navigationId = 0; + router2.beforeEach((to, from) => { + const data = { + guard: formatDisplay("beforeEach"), + from: formatRouteLocation(from, "Current Location during this navigation"), + to: formatRouteLocation(to, "Target location") + }; + Object.defineProperty(to.meta, "__navigationId", { + value: navigationId++ + }); + api.addTimelineEvent({ + layerId: navigationsLayerId, + event: { + time: api.now(), + title: "Start of navigation", + subtitle: to.fullPath, + data, + groupId: to.meta.__navigationId + } + }); + }); + router2.afterEach((to, from, failure) => { + const data = { + guard: formatDisplay("afterEach") + }; + if (failure) { + data.failure = { + _custom: { + type: Error, + readOnly: true, + display: failure ? failure.message : "", + tooltip: "Navigation Failure", + value: failure + } + }; + data.status = formatDisplay("❌"); + } else { + data.status = formatDisplay("✅"); + } + data.from = formatRouteLocation(from, "Current Location during this navigation"); + data.to = formatRouteLocation(to, "Target location"); + api.addTimelineEvent({ + layerId: navigationsLayerId, + event: { + title: "End of navigation", + subtitle: to.fullPath, + time: api.now(), + data, + logType: failure ? "warning" : "default", + groupId: to.meta.__navigationId + } + }); + }); + const routerInspectorId = "router-inspector:" + id; + api.addInspector({ + id: routerInspectorId, + label: "Routes" + (id ? " " + id : ""), + icon: "book", + treeFilterPlaceholder: "Search routes" + }); + function refreshRoutesView() { + if (!activeRoutesPayload) + return; + const payload = activeRoutesPayload; + let routes = matcher.getRoutes().filter((route) => !route.parent || // these routes have a parent with no component which will not appear in the view + // therefore we still need to include them + !route.parent.record.components); + routes.forEach(resetMatchStateOnRouteRecord); + if (payload.filter) { + routes = routes.filter((route) => ( + // save matches state based on the payload + isRouteMatching(route, payload.filter.toLowerCase()) + )); + } + routes.forEach((route) => markRouteRecordActive(route, router2.currentRoute.value)); + payload.rootNodes = routes.map(formatRouteRecordForInspector); + } + let activeRoutesPayload; + api.on.getInspectorTree((payload) => { + activeRoutesPayload = payload; + if (payload.app === app && payload.inspectorId === routerInspectorId) { + refreshRoutesView(); + } + }); + api.on.getInspectorState((payload) => { + if (payload.app === app && payload.inspectorId === routerInspectorId) { + const routes = matcher.getRoutes(); + const route = routes.find((route2) => route2.record.__vd_id === payload.nodeId); + if (route) { + payload.state = { + options: formatRouteRecordMatcherForStateInspector(route) + }; + } + } + }); + api.sendInspectorTree(routerInspectorId); + api.sendInspectorState(routerInspectorId); + }); + } + function modifierForKey(key) { + if (key.optional) { + return key.repeatable ? "*" : "?"; + } else { + return key.repeatable ? "+" : ""; + } + } + function formatRouteRecordMatcherForStateInspector(route) { + const { record } = route; + const fields = [ + { editable: false, key: "path", value: record.path } + ]; + if (record.name != null) { + fields.push({ + editable: false, + key: "name", + value: record.name + }); + } + fields.push({ editable: false, key: "regexp", value: route.re }); + if (route.keys.length) { + fields.push({ + editable: false, + key: "keys", + value: { + _custom: { + type: null, + readOnly: true, + display: route.keys.map((key) => `${key.name}${modifierForKey(key)}`).join(" "), + tooltip: "Param keys", + value: route.keys + } + } + }); + } + if (record.redirect != null) { + fields.push({ + editable: false, + key: "redirect", + value: record.redirect + }); + } + if (route.alias.length) { + fields.push({ + editable: false, + key: "aliases", + value: route.alias.map((alias) => alias.record.path) + }); + } + if (Object.keys(route.record.meta).length) { + fields.push({ + editable: false, + key: "meta", + value: route.record.meta + }); + } + fields.push({ + key: "score", + editable: false, + value: { + _custom: { + type: null, + readOnly: true, + display: route.score.map((score) => score.join(", ")).join(" | "), + tooltip: "Score used to sort routes", + value: route.score + } + } + }); + return fields; + } + const PINK_500 = 15485081; + const BLUE_600 = 2450411; + const LIME_500 = 8702998; + const CYAN_400 = 2282478; + const ORANGE_400 = 16486972; + const DARK = 6710886; + function formatRouteRecordForInspector(route) { + const tags = []; + const { record } = route; + if (record.name != null) { + tags.push({ + label: String(record.name), + textColor: 0, + backgroundColor: CYAN_400 + }); + } + if (record.aliasOf) { + tags.push({ + label: "alias", + textColor: 0, + backgroundColor: ORANGE_400 + }); + } + if (route.__vd_match) { + tags.push({ + label: "matches", + textColor: 0, + backgroundColor: PINK_500 + }); + } + if (route.__vd_exactActive) { + tags.push({ + label: "exact", + textColor: 0, + backgroundColor: LIME_500 + }); + } + if (route.__vd_active) { + tags.push({ + label: "active", + textColor: 0, + backgroundColor: BLUE_600 + }); + } + if (record.redirect) { + tags.push({ + label: typeof record.redirect === "string" ? `redirect: ${record.redirect}` : "redirects", + textColor: 16777215, + backgroundColor: DARK + }); + } + let id = record.__vd_id; + if (id == null) { + id = String(routeRecordId++); + record.__vd_id = id; + } + return { + id, + label: record.path, + tags, + children: route.children.map(formatRouteRecordForInspector) + }; + } + let routeRecordId = 0; + const EXTRACT_REGEXP_RE = /^\/(.*)\/([a-z]*)$/; + function markRouteRecordActive(route, currentRoute) { + const isExactActive = currentRoute.matched.length && isSameRouteRecord(currentRoute.matched[currentRoute.matched.length - 1], route.record); + route.__vd_exactActive = route.__vd_active = isExactActive; + if (!isExactActive) { + route.__vd_active = currentRoute.matched.some((match) => isSameRouteRecord(match, route.record)); + } + route.children.forEach((childRoute) => markRouteRecordActive(childRoute, currentRoute)); + } + function resetMatchStateOnRouteRecord(route) { + route.__vd_match = false; + route.children.forEach(resetMatchStateOnRouteRecord); + } + function isRouteMatching(route, filter) { + const found = String(route.re).match(EXTRACT_REGEXP_RE); + route.__vd_match = false; + if (!found || found.length < 3) { + return false; + } + const nonEndingRE = new RegExp(found[1].replace(/\$$/, ""), found[2]); + if (nonEndingRE.test(filter)) { + route.children.forEach((child) => isRouteMatching(child, filter)); + if (route.record.path !== "/" || filter === "/") { + route.__vd_match = route.re.test(filter); + return true; + } + return false; + } + const path = route.record.path.toLowerCase(); + const decodedPath = decode(path); + if (!filter.startsWith("/") && (decodedPath.includes(filter) || path.includes(filter))) + return true; + if (decodedPath.startsWith(filter) || path.startsWith(filter)) + return true; + if (route.record.name && String(route.record.name).includes(filter)) + return true; + return route.children.some((child) => isRouteMatching(child, filter)); + } + function omit(obj, keys) { + const ret = {}; + for (const key in obj) { + if (!keys.includes(key)) { + ret[key] = obj[key]; + } + } + return ret; + } + function createRouter(options) { + const matcher = createRouterMatcher(options.routes, options); + const parseQuery$1 = options.parseQuery || parseQuery; + const stringifyQuery$1 = options.stringifyQuery || stringifyQuery; + const routerHistory = options.history; + if (process.env.NODE_ENV !== "production" && !routerHistory) + throw new Error('Provide the "history" option when calling "createRouter()": https://next.router.vuejs.org/api/#history.'); + const beforeGuards = useCallbacks(); + const beforeResolveGuards = useCallbacks(); + const afterGuards = useCallbacks(); + const currentRoute = vue.shallowRef(START_LOCATION_NORMALIZED); + let pendingLocation = START_LOCATION_NORMALIZED; + if (isBrowser && options.scrollBehavior && "scrollRestoration" in history) { + history.scrollRestoration = "manual"; + } + const normalizeParams = applyToParams.bind(null, (paramValue) => "" + paramValue); + const encodeParams = applyToParams.bind(null, encodeParam); + const decodeParams = ( + // @ts-expect-error: intentionally avoid the type check + applyToParams.bind(null, decode) + ); + function addRoute(parentOrRoute, route) { + let parent; + let record; + if (isRouteName(parentOrRoute)) { + parent = matcher.getRecordMatcher(parentOrRoute); + record = route; + } else { + record = parentOrRoute; + } + return matcher.addRoute(record, parent); + } + function removeRoute(name) { + const recordMatcher = matcher.getRecordMatcher(name); + if (recordMatcher) { + matcher.removeRoute(recordMatcher); + } else if (process.env.NODE_ENV !== "production") { + warn(`Cannot remove non-existent route "${String(name)}"`); + } + } + function getRoutes() { + return matcher.getRoutes().map((routeMatcher) => routeMatcher.record); + } + function hasRoute(name) { + return !!matcher.getRecordMatcher(name); + } + function resolve(rawLocation, currentLocation) { + currentLocation = assign({}, currentLocation || currentRoute.value); + if (typeof rawLocation === "string") { + const locationNormalized = parseURL(parseQuery$1, rawLocation, currentLocation.path); + const matchedRoute2 = matcher.resolve({ path: locationNormalized.path }, currentLocation); + const href2 = routerHistory.createHref(locationNormalized.fullPath); + if (process.env.NODE_ENV !== "production") { + if (href2.startsWith("//")) + warn(`Location "${rawLocation}" resolved to "${href2}". A resolved location cannot start with multiple slashes.`); + else if (!matchedRoute2.matched.length) { + warn(`No match found for location with path "${rawLocation}"`); + } + } + return assign(locationNormalized, matchedRoute2, { + params: decodeParams(matchedRoute2.params), + hash: decode(locationNormalized.hash), + redirectedFrom: void 0, + href: href2 + }); + } + let matcherLocation; + if ("path" in rawLocation) { + if (process.env.NODE_ENV !== "production" && "params" in rawLocation && !("name" in rawLocation) && // @ts-expect-error: the type is never + Object.keys(rawLocation.params).length) { + warn(`Path "${rawLocation.path}" was passed with params but they will be ignored. Use a named route alongside params instead.`); + } + matcherLocation = assign({}, rawLocation, { + path: parseURL(parseQuery$1, rawLocation.path, currentLocation.path).path + }); + } else { + const targetParams = assign({}, rawLocation.params); + for (const key in targetParams) { + if (targetParams[key] == null) { + delete targetParams[key]; + } + } + matcherLocation = assign({}, rawLocation, { + params: encodeParams(targetParams) + }); + currentLocation.params = encodeParams(currentLocation.params); + } + const matchedRoute = matcher.resolve(matcherLocation, currentLocation); + const hash = rawLocation.hash || ""; + if (process.env.NODE_ENV !== "production" && hash && !hash.startsWith("#")) { + warn(`A \`hash\` should always start with the character "#". Replace "${hash}" with "#${hash}".`); + } + matchedRoute.params = normalizeParams(decodeParams(matchedRoute.params)); + const fullPath = stringifyURL(stringifyQuery$1, assign({}, rawLocation, { + hash: encodeHash(hash), + path: matchedRoute.path + })); + const href = routerHistory.createHref(fullPath); + if (process.env.NODE_ENV !== "production") { + if (href.startsWith("//")) { + warn(`Location "${rawLocation}" resolved to "${href}". A resolved location cannot start with multiple slashes.`); + } else if (!matchedRoute.matched.length) { + warn(`No match found for location with path "${"path" in rawLocation ? rawLocation.path : rawLocation}"`); + } + } + return assign({ + fullPath, + // keep the hash encoded so fullPath is effectively path + encodedQuery + + // hash + hash, + query: ( + // if the user is using a custom query lib like qs, we might have + // nested objects, so we keep the query as is, meaning it can contain + // numbers at `$route.query`, but at the point, the user will have to + // use their own type anyway. + // https://github.com/vuejs/router/issues/328#issuecomment-649481567 + stringifyQuery$1 === stringifyQuery ? normalizeQuery(rawLocation.query) : rawLocation.query || {} + ) + }, matchedRoute, { + redirectedFrom: void 0, + href + }); + } + function locationAsObject(to) { + return typeof to === "string" ? parseURL(parseQuery$1, to, currentRoute.value.path) : assign({}, to); + } + function checkCanceledNavigation(to, from) { + if (pendingLocation !== to) { + return createRouterError(8, { + from, + to + }); + } + } + function push(to) { + return pushWithRedirect(to); + } + function replace(to) { + return push(assign(locationAsObject(to), { replace: true })); + } + function handleRedirectRecord(to) { + const lastMatched = to.matched[to.matched.length - 1]; + if (lastMatched && lastMatched.redirect) { + const { redirect } = lastMatched; + let newTargetLocation = typeof redirect === "function" ? redirect(to) : redirect; + if (typeof newTargetLocation === "string") { + newTargetLocation = newTargetLocation.includes("?") || newTargetLocation.includes("#") ? newTargetLocation = locationAsObject(newTargetLocation) : ( + // force empty params + { path: newTargetLocation } + ); + newTargetLocation.params = {}; + } + if (process.env.NODE_ENV !== "production" && !("path" in newTargetLocation) && !("name" in newTargetLocation)) { + warn(`Invalid redirect found: +${JSON.stringify(newTargetLocation, null, 2)} + when navigating to "${to.fullPath}". A redirect must contain a name or path. This will break in production.`); + throw new Error("Invalid redirect"); + } + return assign({ + query: to.query, + hash: to.hash, + // avoid transferring params if the redirect has a path + params: "path" in newTargetLocation ? {} : to.params + }, newTargetLocation); + } + } + function pushWithRedirect(to, redirectedFrom) { + const targetLocation = pendingLocation = resolve(to); + const from = currentRoute.value; + const data = to.state; + const force = to.force; + const replace2 = to.replace === true; + const shouldRedirect = handleRedirectRecord(targetLocation); + if (shouldRedirect) + return pushWithRedirect( + assign(locationAsObject(shouldRedirect), { + state: typeof shouldRedirect === "object" ? assign({}, data, shouldRedirect.state) : data, + force, + replace: replace2 + }), + // keep original redirectedFrom if it exists + redirectedFrom || targetLocation + ); + const toLocation = targetLocation; + toLocation.redirectedFrom = redirectedFrom; + let failure; + if (!force && isSameRouteLocation(stringifyQuery$1, from, targetLocation)) { + failure = createRouterError(16, { to: toLocation, from }); + handleScroll( + from, + from, + // this is a push, the only way for it to be triggered from a + // history.listen is with a redirect, which makes it become a push + true, + // This cannot be the first navigation because the initial location + // cannot be manually navigated to + false + ); + } + return (failure ? Promise.resolve(failure) : navigate(toLocation, from)).catch((error) => isNavigationFailure(error) ? ( + // navigation redirects still mark the router as ready + isNavigationFailure( + error, + 2 + /* ErrorTypes.NAVIGATION_GUARD_REDIRECT */ + ) ? error : markAsReady(error) + ) : ( + // reject any unknown error + triggerError(error, toLocation, from) + )).then((failure2) => { + if (failure2) { + if (isNavigationFailure( + failure2, + 2 + /* ErrorTypes.NAVIGATION_GUARD_REDIRECT */ + )) { + if (process.env.NODE_ENV !== "production" && // we are redirecting to the same location we were already at + isSameRouteLocation(stringifyQuery$1, resolve(failure2.to), toLocation) && // and we have done it a couple of times + redirectedFrom && // @ts-expect-error: added only in dev + (redirectedFrom._count = redirectedFrom._count ? ( + // @ts-expect-error + redirectedFrom._count + 1 + ) : 1) > 30) { + warn(`Detected a possibly infinite redirection in a navigation guard when going from "${from.fullPath}" to "${toLocation.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.`); + return Promise.reject(new Error("Infinite redirect in navigation guard")); + } + return pushWithRedirect( + // keep options + assign({ + // preserve an existing replacement but allow the redirect to override it + replace: replace2 + }, locationAsObject(failure2.to), { + state: typeof failure2.to === "object" ? assign({}, data, failure2.to.state) : data, + force + }), + // preserve the original redirectedFrom if any + redirectedFrom || toLocation + ); + } + } else { + failure2 = finalizeNavigation(toLocation, from, true, replace2, data); + } + triggerAfterEach(toLocation, from, failure2); + return failure2; + }); + } + function checkCanceledNavigationAndReject(to, from) { + const error = checkCanceledNavigation(to, from); + return error ? Promise.reject(error) : Promise.resolve(); + } + function runWithContext(fn) { + const app = installedApps.values().next().value; + return app && typeof app.runWithContext === "function" ? app.runWithContext(fn) : fn(); + } + function navigate(to, from) { + let guards; + const [leavingRecords, updatingRecords, enteringRecords] = extractChangingRecords(to, from); + guards = extractComponentsGuards(leavingRecords.reverse(), "beforeRouteLeave", to, from); + for (const record of leavingRecords) { + record.leaveGuards.forEach((guard) => { + guards.push(guardToPromiseFn(guard, to, from)); + }); + } + const canceledNavigationCheck = checkCanceledNavigationAndReject.bind(null, to, from); + guards.push(canceledNavigationCheck); + return runGuardQueue(guards).then(() => { + guards = []; + for (const guard of beforeGuards.list()) { + guards.push(guardToPromiseFn(guard, to, from)); + } + guards.push(canceledNavigationCheck); + return runGuardQueue(guards); + }).then(() => { + guards = extractComponentsGuards(updatingRecords, "beforeRouteUpdate", to, from); + for (const record of updatingRecords) { + record.updateGuards.forEach((guard) => { + guards.push(guardToPromiseFn(guard, to, from)); + }); + } + guards.push(canceledNavigationCheck); + return runGuardQueue(guards); + }).then(() => { + guards = []; + for (const record of enteringRecords) { + if (record.beforeEnter) { + if (isArray(record.beforeEnter)) { + for (const beforeEnter of record.beforeEnter) + guards.push(guardToPromiseFn(beforeEnter, to, from)); + } else { + guards.push(guardToPromiseFn(record.beforeEnter, to, from)); + } + } + } + guards.push(canceledNavigationCheck); + return runGuardQueue(guards); + }).then(() => { + to.matched.forEach((record) => record.enterCallbacks = {}); + guards = extractComponentsGuards(enteringRecords, "beforeRouteEnter", to, from); + guards.push(canceledNavigationCheck); + return runGuardQueue(guards); + }).then(() => { + guards = []; + for (const guard of beforeResolveGuards.list()) { + guards.push(guardToPromiseFn(guard, to, from)); + } + guards.push(canceledNavigationCheck); + return runGuardQueue(guards); + }).catch((err) => isNavigationFailure( + err, + 8 + /* ErrorTypes.NAVIGATION_CANCELLED */ + ) ? err : Promise.reject(err)); + } + function triggerAfterEach(to, from, failure) { + afterGuards.list().forEach((guard) => runWithContext(() => guard(to, from, failure))); + } + function finalizeNavigation(toLocation, from, isPush, replace2, data) { + const error = checkCanceledNavigation(toLocation, from); + if (error) + return error; + const isFirstNavigation = from === START_LOCATION_NORMALIZED; + const state = !isBrowser ? {} : history.state; + if (isPush) { + if (replace2 || isFirstNavigation) + routerHistory.replace(toLocation.fullPath, assign({ + scroll: isFirstNavigation && state && state.scroll + }, data)); + else + routerHistory.push(toLocation.fullPath, data); + } + currentRoute.value = toLocation; + handleScroll(toLocation, from, isPush, isFirstNavigation); + markAsReady(); + } + let removeHistoryListener; + function setupListeners() { + if (removeHistoryListener) + return; + removeHistoryListener = routerHistory.listen((to, _from, info) => { + if (!router2.listening) + return; + const toLocation = resolve(to); + const shouldRedirect = handleRedirectRecord(toLocation); + if (shouldRedirect) { + pushWithRedirect(assign(shouldRedirect, { replace: true }), toLocation).catch(noop); + return; + } + pendingLocation = toLocation; + const from = currentRoute.value; + if (isBrowser) { + saveScrollPosition(getScrollKey(from.fullPath, info.delta), computeScrollPosition()); + } + navigate(toLocation, from).catch((error) => { + if (isNavigationFailure( + error, + 4 | 8 + /* ErrorTypes.NAVIGATION_CANCELLED */ + )) { + return error; + } + if (isNavigationFailure( + error, + 2 + /* ErrorTypes.NAVIGATION_GUARD_REDIRECT */ + )) { + pushWithRedirect( + error.to, + toLocation + // avoid an uncaught rejection, let push call triggerError + ).then((failure) => { + if (isNavigationFailure( + failure, + 4 | 16 + /* ErrorTypes.NAVIGATION_DUPLICATED */ + ) && !info.delta && info.type === NavigationType.pop) { + routerHistory.go(-1, false); + } + }).catch(noop); + return Promise.reject(); + } + if (info.delta) { + routerHistory.go(-info.delta, false); + } + return triggerError(error, toLocation, from); + }).then((failure) => { + failure = failure || finalizeNavigation( + // after navigation, all matched components are resolved + toLocation, + from, + false + ); + if (failure) { + if (info.delta && // a new navigation has been triggered, so we do not want to revert, that will change the current history + // entry while a different route is displayed + !isNavigationFailure( + failure, + 8 + /* ErrorTypes.NAVIGATION_CANCELLED */ + )) { + routerHistory.go(-info.delta, false); + } else if (info.type === NavigationType.pop && isNavigationFailure( + failure, + 4 | 16 + /* ErrorTypes.NAVIGATION_DUPLICATED */ + )) { + routerHistory.go(-1, false); + } + } + triggerAfterEach(toLocation, from, failure); + }).catch(noop); + }); + } + let readyHandlers = useCallbacks(); + let errorListeners = useCallbacks(); + let ready; + function triggerError(error, to, from) { + markAsReady(error); + const list = errorListeners.list(); + if (list.length) { + list.forEach((handler) => handler(error, to, from)); + } else { + if (process.env.NODE_ENV !== "production") { + warn("uncaught error during route navigation:"); + } + console.error(error); + } + return Promise.reject(error); + } + function isReady() { + if (ready && currentRoute.value !== START_LOCATION_NORMALIZED) + return Promise.resolve(); + return new Promise((resolve2, reject) => { + readyHandlers.add([resolve2, reject]); + }); + } + function markAsReady(err) { + if (!ready) { + ready = !err; + setupListeners(); + readyHandlers.list().forEach(([resolve2, reject]) => err ? reject(err) : resolve2()); + readyHandlers.reset(); + } + return err; + } + function handleScroll(to, from, isPush, isFirstNavigation) { + const { scrollBehavior } = options; + if (!isBrowser || !scrollBehavior) + return Promise.resolve(); + const scrollPosition = !isPush && getSavedScrollPosition(getScrollKey(to.fullPath, 0)) || (isFirstNavigation || !isPush) && history.state && history.state.scroll || null; + return vue.nextTick().then(() => scrollBehavior(to, from, scrollPosition)).then((position) => position && scrollToPosition(position)).catch((err) => triggerError(err, to, from)); + } + const go = (delta) => routerHistory.go(delta); + let started; + const installedApps = /* @__PURE__ */ new Set(); + const router2 = { + currentRoute, + listening: true, + addRoute, + removeRoute, + hasRoute, + getRoutes, + resolve, + options, + push, + replace, + go, + back: () => go(-1), + forward: () => go(1), + beforeEach: beforeGuards.add, + beforeResolve: beforeResolveGuards.add, + afterEach: afterGuards.add, + onError: errorListeners.add, + isReady, + install(app) { + const router3 = this; + app.component("RouterLink", RouterLink); + app.component("RouterView", RouterView); + app.config.globalProperties.$router = router3; + Object.defineProperty(app.config.globalProperties, "$route", { + enumerable: true, + get: () => vue.unref(currentRoute) + }); + if (isBrowser && // used for the initial navigation client side to avoid pushing + // multiple times when the router is used in multiple apps + !started && currentRoute.value === START_LOCATION_NORMALIZED) { + started = true; + push(routerHistory.location).catch((err) => { + if (process.env.NODE_ENV !== "production") + warn("Unexpected error when starting the router:", err); + }); + } + const reactiveRoute = {}; + for (const key in START_LOCATION_NORMALIZED) { + Object.defineProperty(reactiveRoute, key, { + get: () => currentRoute.value[key], + enumerable: true + }); + } + app.provide(routerKey, router3); + app.provide(routeLocationKey, vue.shallowReactive(reactiveRoute)); + app.provide(routerViewLocationKey, currentRoute); + const unmountApp = app.unmount; + installedApps.add(app); + app.unmount = function() { + installedApps.delete(app); + if (installedApps.size < 1) { + pendingLocation = START_LOCATION_NORMALIZED; + removeHistoryListener && removeHistoryListener(); + removeHistoryListener = null; + currentRoute.value = START_LOCATION_NORMALIZED; + started = false; + ready = false; + } + unmountApp(); + }; + if ((process.env.NODE_ENV !== "production" || false) && isBrowser) { + addDevtools(app, router3, matcher); + } + } + }; + function runGuardQueue(guards) { + return guards.reduce((promise, guard) => promise.then(() => runWithContext(guard)), Promise.resolve()); + } + return router2; + } + function extractChangingRecords(to, from) { + const leavingRecords = []; + const updatingRecords = []; + const enteringRecords = []; + const len = Math.max(from.matched.length, to.matched.length); + for (let i = 0; i < len; i++) { + const recordFrom = from.matched[i]; + if (recordFrom) { + if (to.matched.find((record) => isSameRouteRecord(record, recordFrom))) + updatingRecords.push(recordFrom); + else + leavingRecords.push(recordFrom); + } + const recordTo = to.matched[i]; + if (recordTo) { + if (!from.matched.find((record) => isSameRouteRecord(record, recordTo))) { + enteringRecords.push(recordTo); + } + } + } + return [leavingRecords, updatingRecords, enteringRecords]; + } + const router = createRouter({ + history: createWebHistory(), + routes: [] + }); + function isPromise(obj) { + return obj && typeof obj.then === "function"; + } + Promise.resolve(false); + Promise.resolve(true); + var PROMISE_RESOLVED_VOID = Promise.resolve(); + function sleep(time, resolveWith) { + if (!time) + time = 0; + return new Promise(function(res) { + return setTimeout(function() { + return res(resolveWith); + }, time); + }); + } + function randomInt(min, max) { + return Math.floor(Math.random() * (max - min + 1) + min); + } + function randomToken() { + return Math.random().toString(36).substring(2); + } + var lastMs = 0; + var additional = 0; + function microSeconds$4() { + var ms = (/* @__PURE__ */ new Date()).getTime(); + if (ms === lastMs) { + additional++; + return ms * 1e3 + additional; + } else { + lastMs = ms; + additional = 0; + return ms * 1e3; + } + } + var microSeconds$3 = microSeconds$4; + var type$3 = "native"; + function create$3(channelName) { + var state = { + messagesCallback: null, + bc: new BroadcastChannel(channelName), + subFns: [] + // subscriberFunctions + }; + state.bc.onmessage = function(msg) { + if (state.messagesCallback) { + state.messagesCallback(msg.data); + } + }; + return state; + } + function close$3(channelState) { + channelState.bc.close(); + channelState.subFns = []; + } + function postMessage$3(channelState, messageJson) { + try { + channelState.bc.postMessage(messageJson, false); + return PROMISE_RESOLVED_VOID; + } catch (err) { + return Promise.reject(err); + } + } + function onMessage$3(channelState, fn) { + channelState.messagesCallback = fn; + } + function canBeUsed$3() { + if (typeof window === "undefined") { + return false; + } + 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 true; + } else { + return false; + } + } + function averageResponseTime$3() { + return 150; + } + var NativeMethod = { + create: create$3, + close: close$3, + onMessage: onMessage$3, + postMessage: postMessage$3, + canBeUsed: canBeUsed$3, + type: type$3, + averageResponseTime: averageResponseTime$3, + microSeconds: microSeconds$3 + }; + var ObliviousSet = ( + /** @class */ + function() { + function ObliviousSet2(ttl) { + this.ttl = ttl; + this.map = /* @__PURE__ */ new Map(); + this._to = false; + } + ObliviousSet2.prototype.has = function(value) { + return this.map.has(value); + }; + ObliviousSet2.prototype.add = function(value) { + var _this = this; + this.map.set(value, now()); + if (!this._to) { + this._to = true; + setTimeout(function() { + _this._to = false; + removeTooOldValues(_this); + }, 0); + } + }; + ObliviousSet2.prototype.clear = function() { + this.map.clear(); + }; + return ObliviousSet2; + }() + ); + function removeTooOldValues(obliviousSet) { + var olderThen = now() - obliviousSet.ttl; + var iterator = obliviousSet.map[Symbol.iterator](); + while (true) { + var next = iterator.next().value; + if (!next) { + return; + } + var value = next[0]; + var time = next[1]; + if (time < olderThen) { + obliviousSet.map.delete(value); + } else { + return; + } + } + } + function now() { + return (/* @__PURE__ */ new Date()).getTime(); + } + function fillOptionsWithDefaults() { + var originalOptions = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {}; + var options = JSON.parse(JSON.stringify(originalOptions)); + if (typeof options.webWorkerSupport === "undefined") + options.webWorkerSupport = true; + if (!options.idb) + options.idb = {}; + if (!options.idb.ttl) + options.idb.ttl = 1e3 * 45; + if (!options.idb.fallbackInterval) + options.idb.fallbackInterval = 150; + if (originalOptions.idb && typeof originalOptions.idb.onclose === "function") + options.idb.onclose = originalOptions.idb.onclose; + if (!options.localstorage) + options.localstorage = {}; + if (!options.localstorage.removeTimeout) + options.localstorage.removeTimeout = 1e3 * 60; + if (originalOptions.methods) + options.methods = originalOptions.methods; + if (!options.node) + options.node = {}; + if (!options.node.ttl) + options.node.ttl = 1e3 * 60 * 2; + if (!options.node.maxParallelWrites) + options.node.maxParallelWrites = 2048; + if (typeof options.node.useFastPath === "undefined") + options.node.useFastPath = true; + return options; + } + var microSeconds$2 = microSeconds$4; + var DB_PREFIX = "pubkey.broadcast-channel-0-"; + var OBJECT_STORE_ID = "messages"; + var TRANSACTION_SETTINGS = { + durability: "relaxed" + }; + var type$2 = "idb"; + function getIdb() { + if (typeof indexedDB !== "undefined") + return indexedDB; + if (typeof window !== "undefined") { + if (typeof window.mozIndexedDB !== "undefined") + return window.mozIndexedDB; + if (typeof window.webkitIndexedDB !== "undefined") + return window.webkitIndexedDB; + if (typeof window.msIndexedDB !== "undefined") + return window.msIndexedDB; + } + return false; + } + function commitIndexedDBTransaction(tx) { + if (tx.commit) { + tx.commit(); + } + } + function createDatabase(channelName) { + var IndexedDB = getIdb(); + var dbName = DB_PREFIX + channelName; + var openRequest = IndexedDB.open(dbName); + openRequest.onupgradeneeded = function(ev) { + var db = ev.target.result; + db.createObjectStore(OBJECT_STORE_ID, { + keyPath: "id", + autoIncrement: true + }); + }; + return new Promise(function(res, rej) { + openRequest.onerror = function(ev) { + return rej(ev); + }; + openRequest.onsuccess = function() { + res(openRequest.result); + }; + }); + } + function writeMessage(db, readerUuid, messageJson) { + var time = (/* @__PURE__ */ new Date()).getTime(); + var writeObject = { + uuid: readerUuid, + time, + data: messageJson + }; + var tx = db.transaction([OBJECT_STORE_ID], "readwrite", TRANSACTION_SETTINGS); + return new Promise(function(res, rej) { + tx.oncomplete = function() { + return res(); + }; + tx.onerror = function(ev) { + return rej(ev); + }; + var objectStore = tx.objectStore(OBJECT_STORE_ID); + objectStore.add(writeObject); + commitIndexedDBTransaction(tx); + }); + } + function getMessagesHigherThan(db, lastCursorId) { + var tx = db.transaction(OBJECT_STORE_ID, "readonly", TRANSACTION_SETTINGS); + var objectStore = tx.objectStore(OBJECT_STORE_ID); + var ret = []; + var keyRangeValue = IDBKeyRange.bound(lastCursorId + 1, Infinity); + if (objectStore.getAll) { + var getAllRequest = objectStore.getAll(keyRangeValue); + return new Promise(function(res, rej) { + getAllRequest.onerror = function(err) { + return rej(err); + }; + getAllRequest.onsuccess = function(e) { + res(e.target.result); + }; + }); + } + function openCursor() { + try { + keyRangeValue = IDBKeyRange.bound(lastCursorId + 1, Infinity); + return objectStore.openCursor(keyRangeValue); + } catch (e) { + return objectStore.openCursor(); + } + } + return new Promise(function(res, rej) { + var openCursorRequest = openCursor(); + openCursorRequest.onerror = function(err) { + return rej(err); + }; + openCursorRequest.onsuccess = function(ev) { + var cursor = ev.target.result; + if (cursor) { + if (cursor.value.id < lastCursorId + 1) { + cursor["continue"](lastCursorId + 1); + } else { + ret.push(cursor.value); + cursor["continue"](); + } + } else { + commitIndexedDBTransaction(tx); + res(ret); + } + }; + }); + } + function removeMessagesById(channelState, ids) { + if (channelState.closed) { + return Promise.resolve([]); + } + var tx = channelState.db.transaction(OBJECT_STORE_ID, "readwrite", TRANSACTION_SETTINGS); + var objectStore = tx.objectStore(OBJECT_STORE_ID); + return Promise.all(ids.map(function(id) { + var deleteRequest = objectStore["delete"](id); + return new Promise(function(res) { + deleteRequest.onsuccess = function() { + return res(); + }; + }); + })); + } + function getOldMessages(db, ttl) { + var olderThen = (/* @__PURE__ */ new Date()).getTime() - ttl; + var tx = db.transaction(OBJECT_STORE_ID, "readonly", TRANSACTION_SETTINGS); + var objectStore = tx.objectStore(OBJECT_STORE_ID); + var ret = []; + return new Promise(function(res) { + objectStore.openCursor().onsuccess = function(ev) { + var cursor = ev.target.result; + if (cursor) { + var msgObk = cursor.value; + if (msgObk.time < olderThen) { + ret.push(msgObk); + cursor["continue"](); + } else { + commitIndexedDBTransaction(tx); + res(ret); + } + } else { + res(ret); + } + }; + }); + } + function cleanOldMessages(channelState) { + return getOldMessages(channelState.db, channelState.options.idb.ttl).then(function(tooOld) { + return removeMessagesById(channelState, tooOld.map(function(msg) { + return msg.id; + })); + }); + } + function create$2(channelName, options) { + options = fillOptionsWithDefaults(options); + return createDatabase(channelName).then(function(db) { + var state = { + closed: false, + lastCursorId: 0, + channelName, + options, + uuid: randomToken(), + /** + * emittedMessagesIds + * contains all messages that have been emitted before + * @type {ObliviousSet} + */ + eMIs: new ObliviousSet(options.idb.ttl * 2), + // ensures we do not read messages in parallel + writeBlockPromise: PROMISE_RESOLVED_VOID, + messagesCallback: null, + readQueuePromises: [], + db + }; + db.onclose = function() { + state.closed = true; + if (options.idb.onclose) + options.idb.onclose(); + }; + _readLoop(state); + return state; + }); + } + function _readLoop(state) { + if (state.closed) + return; + readNewMessages(state).then(function() { + return sleep(state.options.idb.fallbackInterval); + }).then(function() { + return _readLoop(state); + }); + } + function _filterMessage(msgObj, state) { + if (msgObj.uuid === state.uuid) + return false; + if (state.eMIs.has(msgObj.id)) + return false; + if (msgObj.data.time < state.messagesCallbackTime) + return false; + return true; + } + function readNewMessages(state) { + if (state.closed) + return PROMISE_RESOLVED_VOID; + if (!state.messagesCallback) + return PROMISE_RESOLVED_VOID; + return getMessagesHigherThan(state.db, state.lastCursorId).then(function(newerMessages) { + var useMessages = newerMessages.filter(function(msgObj) { + return !!msgObj; + }).map(function(msgObj) { + if (msgObj.id > state.lastCursorId) { + state.lastCursorId = msgObj.id; + } + return msgObj; + }).filter(function(msgObj) { + return _filterMessage(msgObj, state); + }).sort(function(msgObjA, msgObjB) { + return msgObjA.time - msgObjB.time; + }); + useMessages.forEach(function(msgObj) { + if (state.messagesCallback) { + state.eMIs.add(msgObj.id); + state.messagesCallback(msgObj.data); + } + }); + return PROMISE_RESOLVED_VOID; + }); + } + function close$2(channelState) { + channelState.closed = true; + channelState.db.close(); + } + function postMessage$2(channelState, messageJson) { + channelState.writeBlockPromise = channelState.writeBlockPromise.then(function() { + return writeMessage(channelState.db, channelState.uuid, messageJson); + }).then(function() { + if (randomInt(0, 10) === 0) { + cleanOldMessages(channelState); + } + }); + return channelState.writeBlockPromise; + } + function onMessage$2(channelState, fn, time) { + channelState.messagesCallbackTime = time; + channelState.messagesCallback = fn; + readNewMessages(channelState); + } + function canBeUsed$2() { + return !!getIdb(); + } + function averageResponseTime$2(options) { + return options.idb.fallbackInterval * 2; + } + var IndexedDBMethod = { + create: create$2, + close: close$2, + onMessage: onMessage$2, + postMessage: postMessage$2, + canBeUsed: canBeUsed$2, + type: type$2, + averageResponseTime: averageResponseTime$2, + microSeconds: microSeconds$2 + }; + var microSeconds$1 = microSeconds$4; + var KEY_PREFIX = "pubkey.broadcastChannel-"; + var type$1 = "localstorage"; + function getLocalStorage() { + var localStorage2; + if (typeof window === "undefined") + return null; + try { + localStorage2 = window.localStorage; + localStorage2 = window["ie8-eventlistener/storage"] || window.localStorage; + } catch (e) { + } + return localStorage2; + } + function storageKey(channelName) { + return KEY_PREFIX + channelName; + } + function postMessage$1(channelState, messageJson) { + return new Promise(function(res) { + sleep().then(function() { + var key = storageKey(channelState.channelName); + var writeObj = { + token: randomToken(), + time: (/* @__PURE__ */ new Date()).getTime(), + data: messageJson, + uuid: channelState.uuid + }; + var value = JSON.stringify(writeObj); + getLocalStorage().setItem(key, value); + var ev = document.createEvent("Event"); + ev.initEvent("storage", true, true); + ev.key = key; + ev.newValue = value; + window.dispatchEvent(ev); + res(); + }); + }); + } + function addStorageEventListener(channelName, fn) { + var key = storageKey(channelName); + var listener = function listener2(ev) { + if (ev.key === key) { + fn(JSON.parse(ev.newValue)); + } + }; + window.addEventListener("storage", listener); + return listener; + } + function removeStorageEventListener(listener) { + window.removeEventListener("storage", listener); + } + function create$1(channelName, options) { + options = fillOptionsWithDefaults(options); + if (!canBeUsed$1()) { + throw new Error("BroadcastChannel: localstorage cannot be used"); + } + var uuid = randomToken(); + var eMIs = new ObliviousSet(options.localstorage.removeTimeout); + var state = { + channelName, + uuid, + eMIs + // emittedMessagesIds + }; + state.listener = addStorageEventListener(channelName, function(msgObj) { + if (!state.messagesCallback) + return; + if (msgObj.uuid === uuid) + return; + if (!msgObj.token || eMIs.has(msgObj.token)) + return; + if (msgObj.data.time && msgObj.data.time < state.messagesCallbackTime) + return; + eMIs.add(msgObj.token); + state.messagesCallback(msgObj.data); + }); + return state; + } + function close$1(channelState) { + removeStorageEventListener(channelState.listener); + } + function onMessage$1(channelState, fn, time) { + channelState.messagesCallbackTime = time; + channelState.messagesCallback = fn; + } + function canBeUsed$1() { + var ls = getLocalStorage(); + if (!ls) + return false; + try { + var key = "__broadcastchannel_check"; + ls.setItem(key, "works"); + ls.removeItem(key); + } catch (e) { + return false; + } + return true; + } + function averageResponseTime$1() { + var defaultTime = 120; + var userAgent = navigator.userAgent.toLowerCase(); + if (userAgent.includes("safari") && !userAgent.includes("chrome")) { + return defaultTime * 2; + } + return defaultTime; + } + var LocalstorageMethod = { + create: create$1, + close: close$1, + onMessage: onMessage$1, + postMessage: postMessage$1, + canBeUsed: canBeUsed$1, + type: type$1, + averageResponseTime: averageResponseTime$1, + microSeconds: microSeconds$1 + }; + var microSeconds = microSeconds$4; + var type = "simulate"; + var SIMULATE_CHANNELS = /* @__PURE__ */ new Set(); + function create(channelName) { + var state = { + name: channelName, + messagesCallback: null + }; + SIMULATE_CHANNELS.add(state); + return state; + } + function close(channelState) { + SIMULATE_CHANNELS["delete"](channelState); + } + function postMessage(channelState, messageJson) { + return new Promise(function(res) { + return setTimeout(function() { + var channelArray = Array.from(SIMULATE_CHANNELS); + channelArray.filter(function(channel) { + return channel.name === channelState.name; + }).filter(function(channel) { + return channel !== channelState; + }).filter(function(channel) { + return !!channel.messagesCallback; + }).forEach(function(channel) { + return channel.messagesCallback(messageJson); + }); + res(); + }, 5); + }); + } + function onMessage(channelState, fn) { + channelState.messagesCallback = fn; + } + function canBeUsed() { + return true; + } + function averageResponseTime() { + return 5; + } + var SimulateMethod = { + create, + close, + onMessage, + postMessage, + canBeUsed, + type, + averageResponseTime, + microSeconds + }; + var METHODS = [ + NativeMethod, + // fastest + IndexedDBMethod, + LocalstorageMethod + ]; + function chooseMethod(options) { + var chooseMethods = [].concat(options.methods, METHODS).filter(Boolean); + if (options.type) { + if (options.type === "simulate") { + return SimulateMethod; + } + var ret = chooseMethods.find(function(m2) { + return m2.type === options.type; + }); + if (!ret) + throw new Error("method-type " + options.type + " not found"); + else + return ret; + } + if (!options.webWorkerSupport) { + chooseMethods = chooseMethods.filter(function(m2) { + return m2.type !== "idb"; + }); + } + var useMethod = chooseMethods.find(function(method) { + return method.canBeUsed(); + }); + if (!useMethod) + throw new Error("No usable method found in " + JSON.stringify(METHODS.map(function(m2) { + return m2.type; + }))); + else + return useMethod; + } + var OPEN_BROADCAST_CHANNELS = /* @__PURE__ */ new Set(); + var lastId = 0; + var BroadcastChannel$1 = function BroadcastChannel2(name, options) { + this.id = lastId++; + OPEN_BROADCAST_CHANNELS.add(this); + this.name = name; + if (ENFORCED_OPTIONS) { + options = ENFORCED_OPTIONS; + } + this.options = fillOptionsWithDefaults(options); + this.method = chooseMethod(this.options); + this._iL = false; + this._onML = null; + this._addEL = { + message: [], + internal: [] + }; + this._uMP = /* @__PURE__ */ new Set(); + this._befC = []; + this._prepP = null; + _prepareChannel(this); + }; + BroadcastChannel$1._pubkey = true; + var ENFORCED_OPTIONS; + BroadcastChannel$1.prototype = { + postMessage: function postMessage2(msg) { + if (this.closed) { + throw new Error("BroadcastChannel.postMessage(): Cannot post message after channel has closed " + /** + * In the past when this error appeared, it was really hard to debug. + * So now we log the msg together with the error so it at least + * gives some clue about where in your application this happens. + */ + JSON.stringify(msg)); + } + return _post(this, "message", msg); + }, + postInternal: function postInternal(msg) { + return _post(this, "internal", msg); + }, + set onmessage(fn) { + var time = this.method.microSeconds(); + var listenObj = { + time, + fn + }; + _removeListenerObject(this, "message", this._onML); + if (fn && typeof fn === "function") { + this._onML = listenObj; + _addListenerObject(this, "message", listenObj); + } else { + this._onML = null; + } + }, + addEventListener: function addEventListener(type2, fn) { + var time = this.method.microSeconds(); + var listenObj = { + time, + fn + }; + _addListenerObject(this, type2, listenObj); + }, + removeEventListener: function removeEventListener(type2, fn) { + var obj = this._addEL[type2].find(function(obj2) { + return obj2.fn === fn; + }); + _removeListenerObject(this, type2, obj); + }, + close: function close2() { + var _this = this; + if (this.closed) { + return; + } + OPEN_BROADCAST_CHANNELS["delete"](this); + this.closed = true; + var awaitPrepare = this._prepP ? this._prepP : PROMISE_RESOLVED_VOID; + this._onML = null; + this._addEL.message = []; + return awaitPrepare.then(function() { + return Promise.all(Array.from(_this._uMP)); + }).then(function() { + return Promise.all(_this._befC.map(function(fn) { + return fn(); + })); + }).then(function() { + return _this.method.close(_this._state); + }); + }, + get type() { + return this.method.type; + }, + get isClosed() { + return this.closed; + } + }; + function _post(broadcastChannel, type2, msg) { + var time = broadcastChannel.method.microSeconds(); + var msgObj = { + time, + type: type2, + data: msg + }; + var awaitPrepare = broadcastChannel._prepP ? broadcastChannel._prepP : PROMISE_RESOLVED_VOID; + return awaitPrepare.then(function() { + var sendPromise = broadcastChannel.method.postMessage(broadcastChannel._state, msgObj); + broadcastChannel._uMP.add(sendPromise); + sendPromise["catch"]().then(function() { + return broadcastChannel._uMP["delete"](sendPromise); + }); + return sendPromise; + }); + } + function _prepareChannel(channel) { + var maybePromise = channel.method.create(channel.name, channel.options); + if (isPromise(maybePromise)) { + channel._prepP = maybePromise; + maybePromise.then(function(s) { + channel._state = s; + }); + } else { + channel._state = maybePromise; + } + } + function _hasMessageListeners(channel) { + if (channel._addEL.message.length > 0) + return true; + if (channel._addEL.internal.length > 0) + return true; + return false; + } + function _addListenerObject(channel, type2, obj) { + channel._addEL[type2].push(obj); + _startListening(channel); + } + function _removeListenerObject(channel, type2, obj) { + channel._addEL[type2] = channel._addEL[type2].filter(function(o) { + return o !== obj; + }); + _stopListening(channel); + } + function _startListening(channel) { + if (!channel._iL && _hasMessageListeners(channel)) { + var listenerFn = function listenerFn2(msgObj) { + channel._addEL[msgObj.type].forEach(function(listenerObject) { + var hundredMsInMicro = 100 * 1e3; + var minMessageTime = listenerObject.time - hundredMsInMicro; + if (msgObj.time >= minMessageTime) { + listenerObject.fn(msgObj.data); + } + }); + }; + var time = channel.method.microSeconds(); + if (channel._prepP) { + channel._prepP.then(function() { + channel._iL = true; + channel.method.onMessage(channel._state, listenerFn, time); + }); + } else { + channel._iL = true; + channel.method.onMessage(channel._state, listenerFn, time); + } + } + } + function _stopListening(channel) { + if (channel._iL && !_hasMessageListeners(channel)) { + channel._iL = false; + var time = channel.method.microSeconds(); + channel.method.onMessage(channel._state, null, time); + } + } + class DevalueError extends Error { + /** + * @param {string} message + * @param {string[]} keys + */ + constructor(message, keys) { + super(message); + this.name = "DevalueError"; + this.path = keys.join(""); + } + } + function is_primitive(thing) { + return Object(thing) !== thing; + } + const object_proto_names = /* @__PURE__ */ Object.getOwnPropertyNames( + Object.prototype + ).sort().join("\0"); + function is_plain_object(thing) { + const proto = Object.getPrototypeOf(thing); + return proto === Object.prototype || proto === null || Object.getOwnPropertyNames(proto).sort().join("\0") === object_proto_names; + } + function get_type(thing) { + return Object.prototype.toString.call(thing).slice(8, -1); + } + function get_escaped_char(char) { + switch (char) { + case '"': + return '\\"'; + case "<": + return "\\u003C"; + case "\\": + return "\\\\"; + case "\n": + 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 char < " " ? `\\u${char.charCodeAt(0).toString(16).padStart(4, "0")}` : ""; + } + } + function stringify_string(str) { + let result = ""; + let last_pos = 0; + const len = str.length; + for (let i = 0; i < len; i += 1) { + const char = str[i]; + const replacement = get_escaped_char(char); + if (replacement) { + result += str.slice(last_pos, i) + replacement; + last_pos = i + 1; + } + } + return `"${last_pos === 0 ? str : result + str.slice(last_pos)}"`; + } + const UNDEFINED = -1; + const HOLE = -2; + const NAN = -3; + const POSITIVE_INFINITY = -4; + const NEGATIVE_INFINITY = -5; + const NEGATIVE_ZERO = -6; + function parse(serialized, revivers) { + return unflatten(JSON.parse(serialized), revivers); + } + function unflatten(parsed, revivers) { + if (typeof parsed === "number") + return hydrate(parsed, true); + if (!Array.isArray(parsed) || parsed.length === 0) { + throw new Error("Invalid input"); + } + const values = ( + /** @type {any[]} */ + parsed + ); + const hydrated = Array(values.length); + function hydrate(index2, standalone = false) { + if (index2 === UNDEFINED) + return void 0; + if (index2 === NAN) + return NaN; + if (index2 === POSITIVE_INFINITY) + return Infinity; + if (index2 === NEGATIVE_INFINITY) + return -Infinity; + if (index2 === NEGATIVE_ZERO) + return -0; + if (standalone) + throw new Error(`Invalid input`); + if (index2 in hydrated) + return hydrated[index2]; + const value = values[index2]; + if (!value || typeof value !== "object") { + hydrated[index2] = value; + } else if (Array.isArray(value)) { + if (typeof value[0] === "string") { + const type2 = value[0]; + const reviver = revivers == null ? void 0 : revivers[type2]; + if (reviver) { + return hydrated[index2] = reviver(hydrate(value[1])); + } + switch (type2) { + case "Date": + hydrated[index2] = new Date(value[1]); + break; + case "Set": + const set2 = /* @__PURE__ */ new Set(); + hydrated[index2] = set2; + for (let i = 1; i < value.length; i += 1) { + set2.add(hydrate(value[i])); + } + break; + case "Map": + const map = /* @__PURE__ */ new Map(); + hydrated[index2] = map; + for (let i = 1; i < value.length; i += 2) { + map.set(hydrate(value[i]), hydrate(value[i + 1])); + } + break; + case "RegExp": + hydrated[index2] = new RegExp(value[1], value[2]); + break; + case "Object": + hydrated[index2] = Object(value[1]); + break; + case "BigInt": + hydrated[index2] = BigInt(value[1]); + break; + case "null": + const obj = /* @__PURE__ */ Object.create(null); + hydrated[index2] = obj; + for (let i = 1; i < value.length; i += 2) { + obj[value[i]] = hydrate(value[i + 1]); + } + break; + default: + throw new Error(`Unknown type ${type2}`); + } + } else { + const array = new Array(value.length); + hydrated[index2] = array; + for (let i = 0; i < value.length; i += 1) { + const n = value[i]; + if (n === HOLE) + continue; + array[i] = hydrate(n); + } + } + } else { + const object = {}; + hydrated[index2] = object; + for (const key in value) { + const n = value[key]; + object[key] = hydrate(n); + } + } + return hydrated[index2]; + } + return hydrate(0); + } + function stringify(value, reducers) { + const stringified = []; + const indexes = /* @__PURE__ */ new Map(); + const custom = []; + for (const key in reducers) { + custom.push({ key, fn: reducers[key] }); + } + const keys = []; + let p = 0; + function flatten(thing) { + if (typeof thing === "function") { + throw new DevalueError(`Cannot stringify a function`, keys); + } + if (indexes.has(thing)) + return indexes.get(thing); + if (thing === void 0) + return UNDEFINED; + if (Number.isNaN(thing)) + return NAN; + if (thing === Infinity) + return POSITIVE_INFINITY; + if (thing === -Infinity) + return NEGATIVE_INFINITY; + if (thing === 0 && 1 / thing < 0) + return NEGATIVE_ZERO; + const index3 = p++; + indexes.set(thing, index3); + for (const { key, fn } of custom) { + const value2 = fn(thing); + if (value2) { + stringified[index3] = `["${key}",${flatten(value2)}]`; + return index3; + } + } + let str = ""; + if (is_primitive(thing)) { + str = stringify_primitive(thing); + } else { + const type2 = get_type(thing); + switch (type2) { + case "Number": + case "String": + case "Boolean": + str = `["Object",${stringify_primitive(thing)}]`; + break; + case "BigInt": + str = `["BigInt",${thing}]`; + break; + case "Date": + str = `["Date","${thing.toISOString()}"]`; + break; + case "RegExp": + const { source, flags } = thing; + str = flags ? `["RegExp",${stringify_string(source)},"${flags}"]` : `["RegExp",${stringify_string(source)}]`; + break; + case "Array": + str = "["; + for (let i = 0; i < thing.length; i += 1) { + if (i > 0) + str += ","; + if (i in thing) { + keys.push(`[${i}]`); + str += flatten(thing[i]); + keys.pop(); + } else { + str += HOLE; + } + } + str += "]"; + break; + case "Set": + str = '["Set"'; + for (const value2 of thing) { + str += `,${flatten(value2)}`; + } + str += "]"; + break; + case "Map": + str = '["Map"'; + for (const [key, value2] of thing) { + keys.push( + `.get(${is_primitive(key) ? stringify_primitive(key) : "..."})` + ); + str += `,${flatten(key)},${flatten(value2)}`; + } + str += "]"; + break; + default: + if (!is_plain_object(thing)) { + throw new DevalueError( + `Cannot stringify arbitrary non-POJOs`, + keys + ); + } + if (Object.getOwnPropertySymbols(thing).length > 0) { + throw new DevalueError( + `Cannot stringify POJOs with symbolic keys`, + keys + ); + } + if (Object.getPrototypeOf(thing) === null) { + str = '["null"'; + for (const key in thing) { + keys.push(`.${key}`); + str += `,${stringify_string(key)},${flatten(thing[key])}`; + keys.pop(); + } + str += "]"; + } else { + str = "{"; + let started = false; + for (const key in thing) { + if (started) + str += ","; + started = true; + keys.push(`.${key}`); + str += `${stringify_string(key)}:${flatten(thing[key])}`; + keys.pop(); + } + str += "}"; + } + } + } + stringified[index3] = str; + return index3; + } + const index2 = flatten(value); + if (index2 < 0) + return `${index2}`; + return `[${stringified.join(",")}]`; + } + function stringify_primitive(thing) { + const type2 = typeof thing; + if (type2 === "string") + return stringify_string(thing); + if (thing instanceof String) + return stringify_string(thing.toString()); + if (thing === void 0) + return UNDEFINED.toString(); + if (thing === 0 && 1 / thing < 0) + return NEGATIVE_ZERO.toString(); + if (type2 === "bigint") + return `["BigInt","${thing}"]`; + return String(thing); + } + function m(t, a, { initialize: d, type: r }) { + let o = `${a.$id}-${t.toString()}`, n = new BroadcastChannel$1(o, { type: r }), l = false, e = 0; + vue.watch(() => a[t], (i) => { + l || (e = Date.now(), n.postMessage({ timestamp: e, state: parse(stringify(i)) })), l = false; + }, { deep: true }), n.onmessage = (i) => { + if (i === void 0) { + n.postMessage({ timestamp: e, state: parse(stringify(a[t])) }); + return; + } + i.timestamp <= e || (l = true, e = i.timestamp, a[t] = i.state); + }; + let u = () => n.postMessage(void 0), p = () => n.close(); + return d && u(), { sync: u, unshare: p }; + } + var h = (t, a) => Object.keys(a).includes(t), g = ({ initialize: t = true, enable: a = true, type: d }) => ({ store: r, options: o }) => { + var _a, _b; + 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 || Object.keys(r.$state).forEach((e) => { + var _a2; + 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 }); + }); + }; + const pinia = createPinia(); + pinia.use( + g({ + enable: true, + initialize: true + }) + ); + const index = { + install: (app, options) => { + const appRouter = (options == null ? void 0 : options.router) || router; + const registry = new Registry(appRouter, options == null ? void 0 : options.getMeta); + app.use(appRouter); + app.use(pinia); + app.provide("$registry", registry); + if (options == null ? void 0 : options.components) { + for (const [tag, component] of Object.entries(options.components)) { + app.component(tag, component); + } + } + } + }; + exports2.DoctypeMeta = DoctypeMeta; + exports2.Registry = Registry; + exports2.Stonecrop = index; + exports2.useStonecrop = useStonecrop; + Object.defineProperty(exports2, Symbol.toStringTag, { value: "Module" }); +}); diff --git a/stonecrop/package.json b/stonecrop/package.json index be103dc5..bd5640cd 100644 --- a/stonecrop/package.json +++ b/stonecrop/package.json @@ -1,53 +1,53 @@ { - "name": "@agritheory/stonecrop", - "version": "0.1.2", - "type": "module", + "name": "@stonecrop/stonecrop", + "version": "0.2.2", "description": "schema helper", + "license": "MIT", + "type": "module", + "exports": { + ".": { + "import": "./dist/stonecrop.js", + "require": "./dist/stonecrop.umd.cjs" + } + }, "main": "dist/stonecrop.js", "module": "dist/stonecrop.js", - "umd": "dist/stonecrop.umd.cjs", "types": "src/index", "files": [ "dist/*", "src/**/*.vue" ], - "license": "MIT", "scripts": { - "dev": "vite serve stories/ -c vite.config.ts", "build": "vite build", - "preview": "vite preview", - "lint": "eslint . --ext .ts,.vue" + "dev": "vite serve stories/ -c vite.config.ts", + "lint": "eslint . --ext .ts,.vue", + "preview": "vite preview" }, "dependencies": { "@vueuse/core": "^9.13.0", - "immutable": "^4.2.2", + "immutable": "^4.3.0", + "pinia": "^2.0.32", "pinia-shared-state": "^0.3.0", "pinia-undo": "^0.1.9", "pinia-xstate": "^1.0.9", - "pinia": "^2.0.32", - "vue-router": "^4", "vue": "^3.2.47", - "xstate": "~4.33.6" + "vue-router": "^4", + "xstate": "~4.37.2" }, "devDependencies": { - "@agritheory/aform": "workspace:^0.1.2", - "@agritheory/atable": "workspace:^0.2.0", - "@typescript-eslint/eslint-plugin": "^5.33.0", - "@typescript-eslint/parser": "^5.33.0", - "@vitejs/plugin-vue": "^4.0.0", - "eslint-config-prettier": "^8.5.0", - "eslint-plugin-vue": "^9.3.0", - "eslint": "^8.22.0", - "typescript": "^4.9.4", - "vite": "^4.1.1" - }, - "exports": { - ".": { - "import": "./dist/stonecrop.js", - "require": "./dist/stonecrop.umd.cjs" - } + "@stonecrop/aform": "workspace:*", + "@stonecrop/atable": "workspace:*", + "@typescript-eslint/eslint-plugin": "^5.59.5", + "@typescript-eslint/parser": "^5.59.5", + "@vitejs/plugin-vue": "^4.2.1", + "eslint": "^8.40.0", + "eslint-config-prettier": "^8.8.0", + "eslint-plugin-vue": "^9.11.1", + "typescript": "^5.0.4", + "vite": "^4.3.5" }, "engines": { - "node": ">=16.19.1" - } + "node": ">=20.11.0" + }, + "umd": "dist/stonecrop.umd.cjs" } diff --git a/stonecrop/src/composable.ts b/stonecrop/src/composable.ts index 3d1a485b..c8623dd4 100644 --- a/stonecrop/src/composable.ts +++ b/stonecrop/src/composable.ts @@ -29,7 +29,7 @@ export function useStonecrop(registry?: Registry): StonecropReturn { } // setup doctype via registry - const doctype = await registry.doctypeLoader(doctypeSlug) + const doctype = await registry.getMeta(doctypeSlug) registry.addDoctype(doctype) stonecrop.value.setup(doctype) diff --git a/stonecrop/src/doctype.ts b/stonecrop/src/doctype.ts index eb123510..b3710c3b 100644 --- a/stonecrop/src/doctype.ts +++ b/stonecrop/src/doctype.ts @@ -2,7 +2,7 @@ import { Component } from 'vue' import type { ImmutableDoctype } from 'types/index' -export default class Doctype { +export default class DoctypeMeta { readonly doctype: string readonly schema: ImmutableDoctype['schema'] readonly workflow: ImmutableDoctype['workflow'] diff --git a/stonecrop/src/exceptions.ts b/stonecrop/src/exceptions.ts new file mode 100644 index 00000000..e7a107ae --- /dev/null +++ b/stonecrop/src/exceptions.ts @@ -0,0 +1,13 @@ +export function NotImplementedError(message: string) { + this.message = message || '' +} + +NotImplementedError.prototype = Object.create(Error.prototype, { + constructor: { value: NotImplementedError }, + name: { value: 'NotImplemented' }, + stack: { + get: function () { + return new Error().stack + }, + }, +}) diff --git a/stonecrop/src/index.ts b/stonecrop/src/index.ts index 3b72f983..4355d311 100644 --- a/stonecrop/src/index.ts +++ b/stonecrop/src/index.ts @@ -1,22 +1,6 @@ -import { App } from 'vue' - -import type { InstallOptions } from 'types/index' import { useStonecrop } from './composable' -import Doctype from './doctype' +import DoctypeMeta from './doctype' import Registry from './registry' -import router from './router' -import { pinia } from './stores' - -const Stonecrop = { - install: (app: App, options: InstallOptions) => { - const appRouter = options.router || router - app.use(appRouter) - app.use(pinia) - app.provide('$registry', new Registry(appRouter, options.doctypeLoader)) - for (const [tag, component] of Object.entries(options.components)) { - app.component(tag, component) - } - }, -} +import Stonecrop from './plugins' -export { Doctype, Registry, Stonecrop, useStonecrop } +export { DoctypeMeta, Registry, Stonecrop, useStonecrop } diff --git a/stonecrop/src/plugins/index.ts b/stonecrop/src/plugins/index.ts new file mode 100644 index 00000000..94169d80 --- /dev/null +++ b/stonecrop/src/plugins/index.ts @@ -0,0 +1,23 @@ +import { App } from 'vue' + +import type { InstallOptions } from 'types/index' +import Registry from '../registry' +import router from '../router' +import { pinia } from '../stores' + +export default { + install: (app: App, options?: InstallOptions) => { + const appRouter = options?.router || router + const registry = new Registry(appRouter, options?.getMeta) + + app.use(appRouter) + app.use(pinia) + app.provide('$registry', registry) + + if (options?.components) { + for (const [tag, component] of Object.entries(options.components)) { + app.component(tag, component) + } + } + }, +} diff --git a/stonecrop/src/registry.ts b/stonecrop/src/registry.ts index 448b5787..f199fff5 100644 --- a/stonecrop/src/registry.ts +++ b/stonecrop/src/registry.ts @@ -1,15 +1,15 @@ import { Router } from 'vue-router' -import Doctype from '@/doctype' +import DoctypeMeta from '@/doctype' export default class Registry { static _root: Registry name: string router: Router - registry: Record - doctypeLoader: (doctype: string) => Doctype | Promise + registry: Record + getMeta?: (doctype: string) => DoctypeMeta | Promise - constructor(router: Router, doctypeLoader: (doctype: string) => Doctype | Promise = undefined) { + constructor(router: Router, getMeta?: (doctype: string) => DoctypeMeta | Promise) { if (Registry._root) { return Registry._root } @@ -17,10 +17,10 @@ export default class Registry { this.name = 'Registry' this.router = router this.registry = {} - this.doctypeLoader = doctypeLoader + this.getMeta = getMeta } - addDoctype(doctype: Doctype) { + addDoctype(doctype: DoctypeMeta) { if (!(doctype.doctype in Object.keys(this.registry))) { this.registry[doctype.slug] = doctype } diff --git a/stonecrop/src/stonecrop.ts b/stonecrop/src/stonecrop.ts index 0f9f8399..b385daac 100644 --- a/stonecrop/src/stonecrop.ts +++ b/stonecrop/src/stonecrop.ts @@ -1,5 +1,6 @@ import type { ImmutableDoctype, Schema } from 'types/index' -import Doctype from './doctype' +import DoctypeMeta from './doctype' +import { NotImplementedError } from './exceptions' import Registry from './registry' import { useDataStore } from './stores/data' @@ -34,7 +35,7 @@ export class Stonecrop { * ... * } * @see {@link Registry} - * @see {@link Doctype} + * @see {@link DoctypeMeta} */ readonly registry: Registry @@ -51,8 +52,8 @@ export class Stonecrop { * } * } * @see {@link Registry} - * @see {@link Doctype} - * @see {@link Doctype.schema} + * @see {@link DoctypeMeta} + * @see {@link DoctypeMeta.schema} */ schema: Schema @@ -82,6 +83,11 @@ export class Stonecrop { * @param {ImmutableDoctype['workflow']} [workflow] - (optional) The Stonecrop workflow * @param {ImmutableDoctype['actions']} [actions] - (optional) The Stonecrop actions * @returns {Stonecrop} The Stonecrop instance + * @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. + * @example + * const registry = new Registry() + * const store = useDataStore() + * const stonecrop = new Stonecrop(registry, store, schema, workflow, actions) */ constructor( registry: Registry, @@ -103,14 +109,14 @@ export class Stonecrop { /** * @method setup - * @param {Doctype} doctype - The doctype to setup + * @param {DoctypeMeta} doctype - The doctype to setup * @returns {void} * @description Sets up the Stonecrop instance with the given doctype * @example - * const doctype = await registry.doctypeLoader('Task') + * const doctype = await registry.getMeta('Task') * stonecrop.setup(doctype) */ - setup(doctype: Doctype): void { + setup(doctype: DoctypeMeta): void { this.getMeta(doctype) this.getWorkflow(doctype) this.getActions(doctype) @@ -118,60 +124,62 @@ export class Stonecrop { /** * @method getMeta - * @param {Doctype} doctype - The doctype to get meta for - * @returns {void} + * @param {DoctypeMeta} doctype - The doctype to get meta for + * @returns {DoctypeMeta} + * @see {@link DoctypeMeta} + * @throws NotImplementedError * @description Gets the meta for the given doctype * @example - * const doctype = await registry.doctypeLoader('Task') - * stonecrop.getMeta(doctype) + * const doctype = await registry.getMeta('Task') + * const meta = stonecrop.getMeta(doctype) */ - getMeta(doctype: Doctype): void { - this.schema = { doctype: doctype.doctype, schema: doctype.schema } + getMeta(doctype: DoctypeMeta): DoctypeMeta | Promise | never { + return this.registry.getMeta ? this.registry.getMeta(doctype.doctype) : new NotImplementedError(doctype.doctype) } /** * @method getWorkflow - * @param {Doctype} doctype - The doctype to get workflow for + * @param {DoctypeMeta} doctype - The doctype to get workflow for * @returns {void} * @description Gets the workflow for the given doctype * @example - * const doctype = await registry.doctypeLoader('Task') + * const doctype = await registry.getMeta('Task') * stonecrop.getWorkflow(doctype) */ - getWorkflow(doctype: Doctype): void { + getWorkflow(doctype: DoctypeMeta): void { const doctypeRegistry = this.registry.registry[doctype.slug] this.workflow = doctypeRegistry.workflow } /** * @method getActions - * @param {Doctype} doctype - The doctype to get actions for + * @param {DoctypeMeta} doctype - The doctype to get actions for * @returns {void} * @description Gets the actions for the given doctype * @example - * const doctype = await registry.doctypeLoader('Task') + * const doctype = await registry.getMeta('Task') * stonecrop.getActions(doctype) */ - getActions(doctype: Doctype): void { + getActions(doctype: DoctypeMeta): void { const doctypeRegistry = this.registry.registry[doctype.slug] this.actions = doctypeRegistry.actions } /** * @method getRecords - * @param {Doctype} doctype - The doctype to get records for + * @param {DoctypeMeta} doctype - The doctype to get records for * @param {RequestInit} [filters] - The filters to apply to the records * @returns {Promise} * @description Gets the records for the given doctype * @example - * const doctype = await registry.doctypeLoader('Task') + * const doctype = await registry.getMeta('Task') * await stonecrop.getRecords(doctype) * @example - * const doctype = await registry.doctypeLoader('Task') + * const doctype = await registry.getMeta('Task') * const filters = JSON.stringify({ status: 'Open' }) * await stonecrop.getRecords(doctype, { body: filters }) */ - async getRecords(doctype: Doctype, filters?: RequestInit): Promise { + async getRecords(doctype: DoctypeMeta, filters?: RequestInit): Promise { this.store.$patch({ records: [] }) const records = await fetch(`/${doctype.slug}`, filters) const data: Record[] = await records.json() @@ -180,15 +188,15 @@ export class Stonecrop { /** * @method getRecord - * @param {Doctype} doctype - The doctype to get record for + * @param {DoctypeMeta} doctype - The doctype to get record for * @param {string} id - The id of the record to get * @returns {Promise} * @description Gets the record for the given doctype and id * @example - * const doctype = await registry.doctypeLoader('Task') + * const doctype = await registry.getMeta('Task') * await stonecrop.getRecord(doctype, 'TASK-00001') */ - async getRecord(doctype: Doctype, id: string): Promise { + async getRecord(doctype: DoctypeMeta, id: string): Promise { this.store.$patch({ record: {} }) const record = await fetch(`/${doctype.slug}/${id}`) const data: Record = await record.json() @@ -197,25 +205,25 @@ export class Stonecrop { /** * @method runAction - * @param {Doctype} doctype - The doctype to run action for + * @param {DoctypeMeta} doctype - The doctype to run action for * @param {string} action - The action to run * @param {string[]} [id] - The id(s) of the record(s) to run action on * @returns {void} * @description Runs the action for the given doctype and id * @example - * const doctype = await registry.doctypeLoader('Task') + * const doctype = await registry.getMeta('Task') * stonecrop.runAction(doctype, 'CREATE') * @example - * const doctype = await registry.doctypeLoader('Task') + * const doctype = await registry.getMeta('Task') * stonecrop.runAction(doctype, 'UPDATE', ['TASK-00001']) * @example - * const doctype = await registry.doctypeLoader('Task') + * const doctype = await registry.getMeta('Task') * stonecrop.runAction(doctype, 'DELETE', ['TASK-00001']) * @example - * const doctype = await registry.doctypeLoader('Task') + * const doctype = await registry.getMeta('Task') * stonecrop.runAction(doctype, 'TRANSITION', ['TASK-00001', 'TASK-00002']) */ - runAction(doctype: Doctype, action: string, id?: string[]): void { + runAction(doctype: DoctypeMeta, action: string, id?: string[]): void { const doctypeRegistry = this.registry.registry[doctype.slug] const actions = doctypeRegistry.actions.get(action) diff --git a/stonecrop/types/index.ts b/stonecrop/types/index.ts index 9a2b6b44..ba4de349 100644 --- a/stonecrop/types/index.ts +++ b/stonecrop/types/index.ts @@ -3,9 +3,9 @@ import { Component } from 'vue' import { Router } from 'vue-router' import { MachineConfig, StateMachine } from 'xstate' -import type { SchemaTypes } from '@agritheory/aform/types' +import type { SchemaTypes } from '@stonecrop/aform/types' -import Doctype from '@/doctype' +import DoctypeMeta from '@/doctype' export type ImmutableDoctype = Readonly<{ // TODO: allow schema to be a function @@ -27,7 +27,7 @@ export type Schema = { } export type InstallOptions = { - components: Record - router: Router - doctypeLoader: (doctype?: string) => Doctype | Promise + router?: Router + components?: Record + getMeta?: (doctype?: string) => DoctypeMeta | Promise } diff --git a/stonecrop/vite.config.ts b/stonecrop/vite.config.ts index c659e062..c41e442e 100644 --- a/stonecrop/vite.config.ts +++ b/stonecrop/vite.config.ts @@ -6,7 +6,7 @@ const projectRootDir = resolve(__dirname) export default defineConfig({ plugins: [vue()], - optimizeDeps: { exclude: ['@agritheory/atable', '@agritheory/aform'] }, + optimizeDeps: { exclude: ['@stonecrop/atable', '@stonecrop/aform'] }, resolve: { alias: { '@': resolve(projectRootDir, 'src'), @@ -16,7 +16,7 @@ export default defineConfig({ minify: false, lib: { entry: resolve(projectRootDir, 'src/index.ts'), - name: '@agritheory/stonecrop', + name: '@stonecrop/stonecrop', }, rollupOptions: { external: ['vue'], diff --git a/themes/dist/style.css b/themes/dist/style.css new file mode 100644 index 00000000..5c5c70ed --- /dev/null +++ b/themes/dist/style.css @@ -0,0 +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";: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} diff --git a/themes/dist/themes.js b/themes/dist/themes.js new file mode 100644 index 00000000..82656ee6 --- /dev/null +++ b/themes/dist/themes.js @@ -0,0 +1,2 @@ + +//# sourceMappingURL=themes.js.map diff --git a/themes/dist/themes.js.map b/themes/dist/themes.js.map new file mode 100644 index 00000000..4c51b3fd --- /dev/null +++ b/themes/dist/themes.js.map @@ -0,0 +1 @@ +{"version":3,"file":"themes.js","sources":[],"sourcesContent":[],"names":[],"mappings":""} \ No newline at end of file diff --git a/themes/dist/themes.umd.cjs b/themes/dist/themes.umd.cjs new file mode 100644 index 00000000..772b72b8 --- /dev/null +++ b/themes/dist/themes.umd.cjs @@ -0,0 +1,2 @@ +(function(n){typeof define=="function"&&define.amd?define(n):n()})(function(){"use strict";const n=""}); +//# sourceMappingURL=themes.umd.cjs.map diff --git a/themes/dist/themes.umd.cjs.map b/themes/dist/themes.umd.cjs.map new file mode 100644 index 00000000..a84e48b4 --- /dev/null +++ b/themes/dist/themes.umd.cjs.map @@ -0,0 +1 @@ +{"version":3,"file":"themes.umd.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":""} \ No newline at end of file diff --git a/themes/package.json b/themes/package.json index 8f942a6d..123adf74 100644 --- a/themes/package.json +++ b/themes/package.json @@ -1,18 +1,18 @@ { - "name": "@agritheory/themes", + "name": "@stonecrop/themes", "version": "0.0.0", "type": "module", "scripts": { - "dev": "vite", "build": "vite build", + "dev": "vite", "preview": "vite preview" }, "devDependencies": { - "vite": "^4.1.1", - "vue": "^3.2.47", - "@vitejs/plugin-vue": "^4.0.0" + "@vitejs/plugin-vue": "^4.2.1", + "vite": "^4.3.5", + "vue": "^3.2.47" }, "engines": { - "node": ">=16.19.1" + "node": ">=20.11.0" } } diff --git a/themes/vite.config.js b/themes/vite.config.js index ee38d45b..0f749698 100644 --- a/themes/vite.config.js +++ b/themes/vite.config.js @@ -15,7 +15,7 @@ export default defineConfig({ sourcemap: true, lib: { entry: resolve(projectRootDir, 'index.js'), - name: '@agritheory/themes', + name: '@stonecrop/themes', }, rollupOptions: { external: ['vue'], diff --git a/utilities/README.md b/utilities/README.md index d1e40129..d644f8ab 100644 --- a/utilities/README.md +++ b/utilities/README.md @@ -1,3 +1,3 @@ # Utilities -`@agritheory/utilities` contains helper functions and utilities for working with other `@agritheory` libraries. \ No newline at end of file +`@stonecrop/utilities` contains helper functions and utilities for working with other `@stonecrop` libraries. \ No newline at end of file diff --git a/utilities/dist/utilities.js b/utilities/dist/utilities.js new file mode 100644 index 00000000..a8fdda41 --- /dev/null +++ b/utilities/dist/utilities.js @@ -0,0 +1,333 @@ +import { unref as Q, getCurrentScope as U, onScopeDispose as K, ref as B, watch as D, onMounted as W, onBeforeUnmount as V } from "vue"; +var v; +const M = typeof window < "u", F = (e) => typeof e == "string", j = () => { +}; +M && ((v = window == null ? void 0 : window.navigator) != null && v.userAgent) && /iP(ad|hone|od)/.test(window.navigator.userAgent); +function H(e) { + return typeof e == "function" ? e() : Q(e); +} +function q(e) { + return e; +} +function G(e) { + return U() ? (K(e), !0) : !1; +} +function y(e) { + var t; + const r = H(e); + return (t = r == null ? void 0 : r.$el) != null ? t : r; +} +const N = M ? window : void 0; +function z(...e) { + let t, r, n, o; + if (F(e[0]) || Array.isArray(e[0]) ? ([r, n, o] = e, t = N) : [t, r, n, o] = e, !t) + return j; + Array.isArray(r) || (r = [r]), Array.isArray(n) || (n = [n]); + const l = [], s = () => { + l.forEach((c) => c()), l.length = 0; + }, a = (c, g, p, i) => (c.addEventListener(g, p, i), () => c.removeEventListener(g, p, i)), C = D(() => [y(t), H(o)], ([c, g]) => { + s(), c && l.push(...r.flatMap((p) => n.map((i) => a(c, p, i, g)))); + }, { immediate: !0, flush: "post" }), d = () => { + C(), s(); + }; + return G(d), d; +} +const O = typeof globalThis < "u" ? globalThis : typeof window < "u" ? window : typeof global < "u" ? global : typeof self < "u" ? self : {}, T = "__vueuse_ssr_handlers__"; +O[T] = O[T] || {}; +function J(e, { window: t = N, scrollTarget: r } = {}) { + const n = B(!1), o = () => { + if (!t) + return; + const l = t.document, s = y(e); + if (!s) + n.value = !1; + else { + const a = s.getBoundingClientRect(); + n.value = a.top <= (t.innerHeight || l.documentElement.clientHeight) && a.left <= (t.innerWidth || l.documentElement.clientWidth) && a.bottom >= 0 && a.right >= 0; + } + }; + return D(() => y(e), () => o(), { immediate: !0, flush: "post" }), t && z(r || t, "scroll", o, { + capture: !1, + passive: !0 + }), n; +} +var P; +(function(e) { + e.UP = "UP", e.RIGHT = "RIGHT", e.DOWN = "DOWN", e.LEFT = "LEFT", e.NONE = "NONE"; +})(P || (P = {})); +var 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) => { + for (var r in t || (t = {})) + Y.call(t, r) && _(e, r, t[r]); + if (I) + for (var r of I(t)) + Z.call(t, r) && _(e, r, t[r]); + return e; +}; +const te = { + easeInSine: [0.12, 0, 0.39, 0], + easeOutSine: [0.61, 1, 0.88, 1], + easeInOutSine: [0.37, 0, 0.63, 1], + easeInQuad: [0.11, 0, 0.5, 0], + easeOutQuad: [0.5, 1, 0.89, 1], + easeInOutQuad: [0.45, 0, 0.55, 1], + easeInCubic: [0.32, 0, 0.67, 0], + easeOutCubic: [0.33, 1, 0.68, 1], + easeInOutCubic: [0.65, 0, 0.35, 1], + easeInQuart: [0.5, 0, 0.75, 0], + easeOutQuart: [0.25, 1, 0.5, 1], + easeInOutQuart: [0.76, 0, 0.24, 1], + easeInQuint: [0.64, 0, 0.78, 0], + easeOutQuint: [0.22, 1, 0.36, 1], + easeInOutQuint: [0.83, 0, 0.17, 1], + easeInExpo: [0.7, 0, 0.84, 0], + easeOutExpo: [0.16, 1, 0.3, 1], + easeInOutExpo: [0.87, 0, 0.13, 1], + easeInCirc: [0.55, 0, 1, 0.45], + easeOutCirc: [0, 0.55, 0.45, 1], + easeInOutCirc: [0.85, 0, 0.15, 1], + easeInBack: [0.36, 0, 0.66, -0.56], + easeOutBack: [0.34, 1.56, 0.64, 1], + easeInOutBack: [0.68, -0.6, 0.32, 1.6] +}; +ee({ + linear: q +}, te); +const f = (e) => { + let t = J(e).value; + return t = t && e.offsetHeight > 0, t; +}, u = (e) => e.tabIndex >= 0, A = (e) => { + const t = e.target; + return E(t); +}, E = (e) => { + var r; + let t; + if (e instanceof HTMLTableCellElement) { + const n = (r = e.parentElement) == null ? void 0 : r.previousElementSibling; + if (n) { + const l = Array.from(n.children)[e.cellIndex]; + l && (t = l); + } + } else if (e instanceof HTMLTableRowElement) { + const n = e.previousElementSibling; + n && (t = n); + } + return t && (!u(t) || !f(t)) ? E(t) : t; +}, ne = (e) => { + var n; + const t = e.target; + let r; + if (t instanceof HTMLTableCellElement) { + const o = (n = t.parentElement) == null ? void 0 : n.parentElement; + if (o) { + const s = o.firstElementChild.children[t.cellIndex]; + s && (r = s); + } + } else if (t instanceof HTMLTableRowElement) { + const o = t.parentElement; + if (o) { + const l = o.firstElementChild; + l && (r = l); + } + } + return r && (!u(r) || !f(r)) ? w(r) : r; +}, x = (e) => { + const t = e.target; + return w(t); +}, w = (e) => { + var r; + let t; + if (e instanceof HTMLTableCellElement) { + const n = (r = e.parentElement) == null ? void 0 : r.nextElementSibling; + if (n) { + const l = Array.from(n.children)[e.cellIndex]; + l && (t = l); + } + } else if (e instanceof HTMLTableRowElement) { + const n = e.nextElementSibling; + n && (t = n); + } + return t && (!u(t) || !f(t)) ? w(t) : t; +}, re = (e) => { + var n; + const t = e.target; + let r; + if (t instanceof HTMLTableCellElement) { + const o = (n = t.parentElement) == null ? void 0 : n.parentElement; + if (o) { + const s = o.lastElementChild.children[t.cellIndex]; + s && (r = s); + } + } else if (t instanceof HTMLTableRowElement) { + const o = t.parentElement; + if (o) { + const l = o.lastElementChild; + l && (r = l); + } + } + return r && (!u(r) || !f(r)) ? E(r) : r; +}, k = (e) => { + const t = e.target; + return h(t); +}, h = (e) => { + var r; + let t; + if (e.previousElementSibling) + t = e.previousElementSibling; + else { + const n = (r = e.parentElement) == null ? void 0 : r.previousElementSibling; + t = n == null ? void 0 : n.lastElementChild; + } + return t && (!u(t) || !f(t)) ? h(t) : t; +}, S = (e) => { + const t = e.target; + return b(t); +}, b = (e) => { + var r; + let t; + if (e.nextElementSibling) + t = e.nextElementSibling; + else { + const n = (r = e.parentElement) == null ? void 0 : r.nextElementSibling; + t = n == null ? void 0 : n.firstElementChild; + } + return t && (!u(t) || !f(t)) ? b(t) : t; +}, L = (e) => { + const n = e.target.parentElement.firstElementChild; + return n && (!u(n) || !f(n)) ? b(n) : n; +}, R = (e) => { + const n = e.target.parentElement.lastElementChild; + return n && (!u(n) || !f(n)) ? h(n) : n; +}, m = ["alt", "control", "shift", "meta"], oe = { + ArrowUp: "up", + ArrowDown: "down", + ArrowLeft: "left", + ArrowRight: "right" +}, le = { + "keydown.up": (e) => { + const t = A(e); + t && (e.preventDefault(), e.stopPropagation(), t.focus()); + }, + "keydown.down": (e) => { + const t = x(e); + t && (e.preventDefault(), e.stopPropagation(), t.focus()); + }, + "keydown.left": (e) => { + const t = k(e); + e.preventDefault(), e.stopPropagation(), t && t.focus(); + }, + "keydown.right": (e) => { + const t = S(e); + e.preventDefault(), e.stopPropagation(), t && t.focus(); + }, + "keydown.control.up": (e) => { + const t = ne(e); + t && (e.preventDefault(), e.stopPropagation(), t.focus()); + }, + "keydown.control.down": (e) => { + const t = re(e); + t && (e.preventDefault(), e.stopPropagation(), t.focus()); + }, + "keydown.control.left": (e) => { + const t = L(e); + t && (e.preventDefault(), e.stopPropagation(), t.focus()); + }, + "keydown.control.right": (e) => { + const t = R(e); + t && (e.preventDefault(), e.stopPropagation(), t.focus()); + }, + "keydown.end": (e) => { + const t = R(e); + t && (e.preventDefault(), e.stopPropagation(), t.focus()); + }, + "keydown.enter": (e) => { + if (e.target instanceof HTMLTableCellElement) { + e.preventDefault(), e.stopPropagation(); + const r = x(e); + r && r.focus(); + } + }, + "keydown.shift.enter": (e) => { + if (e.target instanceof HTMLTableCellElement) { + e.preventDefault(), e.stopPropagation(); + const r = A(e); + r && r.focus(); + } + }, + "keydown.home": (e) => { + const t = L(e); + t && (e.preventDefault(), e.stopPropagation(), t.focus()); + }, + "keydown.tab": (e) => { + const t = S(e); + t && (e.preventDefault(), e.stopPropagation(), t.focus()); + }, + "keydown.shift.tab": (e) => { + const t = k(e); + t && (e.preventDefault(), e.stopPropagation(), t.focus()); + } +}; +function ie(e) { + const t = (n) => { + let o = null; + n.parent && (typeof n.parent == "string" ? o = document.querySelector(n.parent) : n.parent instanceof Element ? o = n.parent : o = n.parent.value); + let l = []; + if (n.selectors) + if (typeof n.selectors == "string") + l = o ? Array.from(o.querySelectorAll(n.selectors)) : Array.from(document.querySelectorAll(n.selectors)); + else if (n.selectors instanceof Element) + l.push(n.selectors); + else if (Array.isArray(n.selectors.value)) + for (const s of n.selectors.value) + s instanceof Element ? l.push(s) : l.push(s.$el); + else + l.push(n.selectors.value); + else + l = Array.from(o.children).filter((a) => u(a) && f(a)); + return l; + }, r = (n) => (o) => { + const l = oe[o.key] || o.key.toLowerCase(); + if (m.includes(l)) + return; + const s = n.handlers || le; + for (const a of Object.keys(s)) { + const [C, ...d] = a.split("."); + if (C === "keydown" && d.includes(l)) { + const c = s[a], g = d.filter((i) => m.includes(i)), p = m.some((i) => { + const $ = i.charAt(0).toUpperCase() + i.slice(1); + return o.getModifierState($); + }); + if (g.length > 0) { + if (p) { + for (const i of m) + if (d.includes(i)) { + const $ = i.charAt(0).toUpperCase() + i.slice(1); + o.getModifierState($) && c(o); + } + } + } else + p || c(o); + } + } + }; + W(() => { + for (const n of e) { + const o = t(n); + for (const l of o) + l.addEventListener("keydown", r(n)); + } + }), V(() => { + for (const n of e) { + const o = t(n); + for (const l of o) + l.removeEventListener("keydown", r(n)); + } + }); +} +function ae(e) { +} +export { + le as defaultKeypressHandlers, + ae as install, + ie as useKeyboardNav +}; +//# sourceMappingURL=utilities.js.map diff --git a/utilities/dist/utilities.js.map b/utilities/dist/utilities.js.map new file mode 100644 index 00000000..7159ffbe --- /dev/null +++ b/utilities/dist/utilities.js.map @@ -0,0 +1 @@ +{"version":3,"file":"utilities.js","sources":["../../common/temp/node_modules/.pnpm/@vueuse+shared@9.13.0_vue@3.4.19/node_modules/@vueuse/shared/index.mjs","../../common/temp/node_modules/.pnpm/@vueuse+core@9.13.0_vue@3.4.19/node_modules/@vueuse/core/index.mjs","../src/composables/keyboard.ts","../src/index.ts"],"sourcesContent":["import { shallowRef, watchEffect, readonly, unref, ref, isVue3, version, watch, customRef, getCurrentScope, onScopeDispose, effectScope, provide, inject, isRef, computed, reactive, toRefs as toRefs$1, toRef, isVue2, set as set$1, getCurrentInstance, onBeforeMount, nextTick, onBeforeUnmount, onMounted, onUnmounted, isReactive } from 'vue-demi';\n\nvar __defProp$9 = Object.defineProperty;\nvar __defProps$6 = Object.defineProperties;\nvar __getOwnPropDescs$6 = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols$b = Object.getOwnPropertySymbols;\nvar __hasOwnProp$b = Object.prototype.hasOwnProperty;\nvar __propIsEnum$b = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$9 = (obj, key, value) => key in obj ? __defProp$9(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$9 = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$b.call(b, prop))\n __defNormalProp$9(a, prop, b[prop]);\n if (__getOwnPropSymbols$b)\n for (var prop of __getOwnPropSymbols$b(b)) {\n if (__propIsEnum$b.call(b, prop))\n __defNormalProp$9(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps$6 = (a, b) => __defProps$6(a, __getOwnPropDescs$6(b));\nfunction computedEager(fn, options) {\n var _a;\n const result = shallowRef();\n watchEffect(() => {\n result.value = fn();\n }, __spreadProps$6(__spreadValues$9({}, options), {\n flush: (_a = options == null ? void 0 : options.flush) != null ? _a : \"sync\"\n }));\n return readonly(result);\n}\n\nvar _a;\nconst isClient = typeof window !== \"undefined\";\nconst isDef = (val) => typeof val !== \"undefined\";\nconst assert = (condition, ...infos) => {\n if (!condition)\n console.warn(...infos);\n};\nconst toString = Object.prototype.toString;\nconst isBoolean = (val) => typeof val === \"boolean\";\nconst isFunction = (val) => typeof val === \"function\";\nconst isNumber = (val) => typeof val === \"number\";\nconst isString = (val) => typeof val === \"string\";\nconst isObject = (val) => toString.call(val) === \"[object Object]\";\nconst isWindow = (val) => typeof window !== \"undefined\" && toString.call(val) === \"[object Window]\";\nconst now = () => Date.now();\nconst timestamp = () => +Date.now();\nconst clamp = (n, min, max) => Math.min(max, Math.max(min, n));\nconst noop = () => {\n};\nconst rand = (min, max) => {\n min = Math.ceil(min);\n max = Math.floor(max);\n return Math.floor(Math.random() * (max - min + 1)) + min;\n};\nconst isIOS = isClient && ((_a = window == null ? void 0 : window.navigator) == null ? void 0 : _a.userAgent) && /iP(ad|hone|od)/.test(window.navigator.userAgent);\nconst hasOwn = (val, key) => Object.prototype.hasOwnProperty.call(val, key);\n\nfunction resolveUnref(r) {\n return typeof r === \"function\" ? r() : unref(r);\n}\n\nfunction createFilterWrapper(filter, fn) {\n function wrapper(...args) {\n return new Promise((resolve, reject) => {\n Promise.resolve(filter(() => fn.apply(this, args), { fn, thisArg: this, args })).then(resolve).catch(reject);\n });\n }\n return wrapper;\n}\nconst bypassFilter = (invoke) => {\n return invoke();\n};\nfunction debounceFilter(ms, options = {}) {\n let timer;\n let maxTimer;\n let lastRejector = noop;\n const _clearTimeout = (timer2) => {\n clearTimeout(timer2);\n lastRejector();\n lastRejector = noop;\n };\n const filter = (invoke) => {\n const duration = resolveUnref(ms);\n const maxDuration = resolveUnref(options.maxWait);\n if (timer)\n _clearTimeout(timer);\n if (duration <= 0 || maxDuration !== void 0 && maxDuration <= 0) {\n if (maxTimer) {\n _clearTimeout(maxTimer);\n maxTimer = null;\n }\n return Promise.resolve(invoke());\n }\n return new Promise((resolve, reject) => {\n lastRejector = options.rejectOnCancel ? reject : resolve;\n if (maxDuration && !maxTimer) {\n maxTimer = setTimeout(() => {\n if (timer)\n _clearTimeout(timer);\n maxTimer = null;\n resolve(invoke());\n }, maxDuration);\n }\n timer = setTimeout(() => {\n if (maxTimer)\n _clearTimeout(maxTimer);\n maxTimer = null;\n resolve(invoke());\n }, duration);\n });\n };\n return filter;\n}\nfunction throttleFilter(ms, trailing = true, leading = true, rejectOnCancel = false) {\n let lastExec = 0;\n let timer;\n let isLeading = true;\n let lastRejector = noop;\n let lastValue;\n const clear = () => {\n if (timer) {\n clearTimeout(timer);\n timer = void 0;\n lastRejector();\n lastRejector = noop;\n }\n };\n const filter = (_invoke) => {\n const duration = resolveUnref(ms);\n const elapsed = Date.now() - lastExec;\n const invoke = () => {\n return lastValue = _invoke();\n };\n clear();\n if (duration <= 0) {\n lastExec = Date.now();\n return invoke();\n }\n if (elapsed > duration && (leading || !isLeading)) {\n lastExec = Date.now();\n invoke();\n } else if (trailing) {\n lastValue = new Promise((resolve, reject) => {\n lastRejector = rejectOnCancel ? reject : resolve;\n timer = setTimeout(() => {\n lastExec = Date.now();\n isLeading = true;\n resolve(invoke());\n clear();\n }, Math.max(0, duration - elapsed));\n });\n }\n if (!leading && !timer)\n timer = setTimeout(() => isLeading = true, duration);\n isLeading = false;\n return lastValue;\n };\n return filter;\n}\nfunction pausableFilter(extendFilter = bypassFilter) {\n const isActive = ref(true);\n function pause() {\n isActive.value = false;\n }\n function resume() {\n isActive.value = true;\n }\n const eventFilter = (...args) => {\n if (isActive.value)\n extendFilter(...args);\n };\n return { isActive: readonly(isActive), pause, resume, eventFilter };\n}\n\nfunction __onlyVue3(name = \"this function\") {\n if (isVue3)\n return;\n throw new Error(`[VueUse] ${name} is only works on Vue 3.`);\n}\nfunction __onlyVue27Plus(name = \"this function\") {\n if (isVue3 || version.startsWith(\"2.7.\"))\n return;\n throw new Error(`[VueUse] ${name} is only works on Vue 2.7 or above.`);\n}\nconst directiveHooks = {\n mounted: isVue3 ? \"mounted\" : \"inserted\",\n updated: isVue3 ? \"updated\" : \"componentUpdated\",\n unmounted: isVue3 ? \"unmounted\" : \"unbind\"\n};\n\nfunction promiseTimeout(ms, throwOnTimeout = false, reason = \"Timeout\") {\n return new Promise((resolve, reject) => {\n if (throwOnTimeout)\n setTimeout(() => reject(reason), ms);\n else\n setTimeout(resolve, ms);\n });\n}\nfunction identity(arg) {\n return arg;\n}\nfunction createSingletonPromise(fn) {\n let _promise;\n function wrapper() {\n if (!_promise)\n _promise = fn();\n return _promise;\n }\n wrapper.reset = async () => {\n const _prev = _promise;\n _promise = void 0;\n if (_prev)\n await _prev;\n };\n return wrapper;\n}\nfunction invoke(fn) {\n return fn();\n}\nfunction containsProp(obj, ...props) {\n return props.some((k) => k in obj);\n}\nfunction increaseWithUnit(target, delta) {\n var _a;\n if (typeof target === \"number\")\n return target + delta;\n const value = ((_a = target.match(/^-?[0-9]+\\.?[0-9]*/)) == null ? void 0 : _a[0]) || \"\";\n const unit = target.slice(value.length);\n const result = parseFloat(value) + delta;\n if (Number.isNaN(result))\n return target;\n return result + unit;\n}\nfunction objectPick(obj, keys, omitUndefined = false) {\n return keys.reduce((n, k) => {\n if (k in obj) {\n if (!omitUndefined || obj[k] !== void 0)\n n[k] = obj[k];\n }\n return n;\n }, {});\n}\n\nfunction computedWithControl(source, fn) {\n let v = void 0;\n let track;\n let trigger;\n const dirty = ref(true);\n const update = () => {\n dirty.value = true;\n trigger();\n };\n watch(source, update, { flush: \"sync\" });\n const get = isFunction(fn) ? fn : fn.get;\n const set = isFunction(fn) ? void 0 : fn.set;\n const result = customRef((_track, _trigger) => {\n track = _track;\n trigger = _trigger;\n return {\n get() {\n if (dirty.value) {\n v = get();\n dirty.value = false;\n }\n track();\n return v;\n },\n set(v2) {\n set == null ? void 0 : set(v2);\n }\n };\n });\n if (Object.isExtensible(result))\n result.trigger = update;\n return result;\n}\n\nfunction tryOnScopeDispose(fn) {\n if (getCurrentScope()) {\n onScopeDispose(fn);\n return true;\n }\n return false;\n}\n\nfunction createEventHook() {\n const fns = [];\n const off = (fn) => {\n const index = fns.indexOf(fn);\n if (index !== -1)\n fns.splice(index, 1);\n };\n const on = (fn) => {\n fns.push(fn);\n const offFn = () => off(fn);\n tryOnScopeDispose(offFn);\n return {\n off: offFn\n };\n };\n const trigger = (param) => {\n fns.forEach((fn) => fn(param));\n };\n return {\n on,\n off,\n trigger\n };\n}\n\nfunction createGlobalState(stateFactory) {\n let initialized = false;\n let state;\n const scope = effectScope(true);\n return () => {\n if (!initialized) {\n state = scope.run(stateFactory);\n initialized = true;\n }\n return state;\n };\n}\n\nfunction createInjectionState(composable) {\n const key = Symbol(\"InjectionState\");\n const useProvidingState = (...args) => {\n const state = composable(...args);\n provide(key, state);\n return state;\n };\n const useInjectedState = () => inject(key);\n return [useProvidingState, useInjectedState];\n}\n\nfunction createSharedComposable(composable) {\n let subscribers = 0;\n let state;\n let scope;\n const dispose = () => {\n subscribers -= 1;\n if (scope && subscribers <= 0) {\n scope.stop();\n state = void 0;\n scope = void 0;\n }\n };\n return (...args) => {\n subscribers += 1;\n if (!state) {\n scope = effectScope(true);\n state = scope.run(() => composable(...args));\n }\n tryOnScopeDispose(dispose);\n return state;\n };\n}\n\nfunction extendRef(ref, extend, { enumerable = false, unwrap = true } = {}) {\n __onlyVue27Plus();\n for (const [key, value] of Object.entries(extend)) {\n if (key === \"value\")\n continue;\n if (isRef(value) && unwrap) {\n Object.defineProperty(ref, key, {\n get() {\n return value.value;\n },\n set(v) {\n value.value = v;\n },\n enumerable\n });\n } else {\n Object.defineProperty(ref, key, { value, enumerable });\n }\n }\n return ref;\n}\n\nfunction get(obj, key) {\n if (key == null)\n return unref(obj);\n return unref(obj)[key];\n}\n\nfunction isDefined(v) {\n return unref(v) != null;\n}\n\nvar __defProp$8 = Object.defineProperty;\nvar __getOwnPropSymbols$a = Object.getOwnPropertySymbols;\nvar __hasOwnProp$a = Object.prototype.hasOwnProperty;\nvar __propIsEnum$a = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$8 = (obj, key, value) => key in obj ? __defProp$8(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$8 = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$a.call(b, prop))\n __defNormalProp$8(a, prop, b[prop]);\n if (__getOwnPropSymbols$a)\n for (var prop of __getOwnPropSymbols$a(b)) {\n if (__propIsEnum$a.call(b, prop))\n __defNormalProp$8(a, prop, b[prop]);\n }\n return a;\n};\nfunction makeDestructurable(obj, arr) {\n if (typeof Symbol !== \"undefined\") {\n const clone = __spreadValues$8({}, obj);\n Object.defineProperty(clone, Symbol.iterator, {\n enumerable: false,\n value() {\n let index = 0;\n return {\n next: () => ({\n value: arr[index++],\n done: index > arr.length\n })\n };\n }\n });\n return clone;\n } else {\n return Object.assign([...arr], obj);\n }\n}\n\nfunction reactify(fn, options) {\n const unrefFn = (options == null ? void 0 : options.computedGetter) === false ? unref : resolveUnref;\n return function(...args) {\n return computed(() => fn.apply(this, args.map((i) => unrefFn(i))));\n };\n}\n\nfunction reactifyObject(obj, optionsOrKeys = {}) {\n let keys = [];\n let options;\n if (Array.isArray(optionsOrKeys)) {\n keys = optionsOrKeys;\n } else {\n options = optionsOrKeys;\n const { includeOwnProperties = true } = optionsOrKeys;\n keys.push(...Object.keys(obj));\n if (includeOwnProperties)\n keys.push(...Object.getOwnPropertyNames(obj));\n }\n return Object.fromEntries(keys.map((key) => {\n const value = obj[key];\n return [\n key,\n typeof value === \"function\" ? reactify(value.bind(obj), options) : value\n ];\n }));\n}\n\nfunction toReactive(objectRef) {\n if (!isRef(objectRef))\n return reactive(objectRef);\n const proxy = new Proxy({}, {\n get(_, p, receiver) {\n return unref(Reflect.get(objectRef.value, p, receiver));\n },\n set(_, p, value) {\n if (isRef(objectRef.value[p]) && !isRef(value))\n objectRef.value[p].value = value;\n else\n objectRef.value[p] = value;\n return true;\n },\n deleteProperty(_, p) {\n return Reflect.deleteProperty(objectRef.value, p);\n },\n has(_, p) {\n return Reflect.has(objectRef.value, p);\n },\n ownKeys() {\n return Object.keys(objectRef.value);\n },\n getOwnPropertyDescriptor() {\n return {\n enumerable: true,\n configurable: true\n };\n }\n });\n return reactive(proxy);\n}\n\nfunction reactiveComputed(fn) {\n return toReactive(computed(fn));\n}\n\nfunction reactiveOmit(obj, ...keys) {\n const flatKeys = keys.flat();\n return reactiveComputed(() => Object.fromEntries(Object.entries(toRefs$1(obj)).filter((e) => !flatKeys.includes(e[0]))));\n}\n\nfunction reactivePick(obj, ...keys) {\n const flatKeys = keys.flat();\n return reactive(Object.fromEntries(flatKeys.map((k) => [k, toRef(obj, k)])));\n}\n\nfunction refAutoReset(defaultValue, afterMs = 1e4) {\n return customRef((track, trigger) => {\n let value = defaultValue;\n let timer;\n const resetAfter = () => setTimeout(() => {\n value = defaultValue;\n trigger();\n }, resolveUnref(afterMs));\n tryOnScopeDispose(() => {\n clearTimeout(timer);\n });\n return {\n get() {\n track();\n return value;\n },\n set(newValue) {\n value = newValue;\n trigger();\n clearTimeout(timer);\n timer = resetAfter();\n }\n };\n });\n}\n\nfunction useDebounceFn(fn, ms = 200, options = {}) {\n return createFilterWrapper(debounceFilter(ms, options), fn);\n}\n\nfunction refDebounced(value, ms = 200, options = {}) {\n const debounced = ref(value.value);\n const updater = useDebounceFn(() => {\n debounced.value = value.value;\n }, ms, options);\n watch(value, () => updater());\n return debounced;\n}\n\nfunction refDefault(source, defaultValue) {\n return computed({\n get() {\n var _a;\n return (_a = source.value) != null ? _a : defaultValue;\n },\n set(value) {\n source.value = value;\n }\n });\n}\n\nfunction useThrottleFn(fn, ms = 200, trailing = false, leading = true, rejectOnCancel = false) {\n return createFilterWrapper(throttleFilter(ms, trailing, leading, rejectOnCancel), fn);\n}\n\nfunction refThrottled(value, delay = 200, trailing = true, leading = true) {\n if (delay <= 0)\n return value;\n const throttled = ref(value.value);\n const updater = useThrottleFn(() => {\n throttled.value = value.value;\n }, delay, trailing, leading);\n watch(value, () => updater());\n return throttled;\n}\n\nfunction refWithControl(initial, options = {}) {\n let source = initial;\n let track;\n let trigger;\n const ref = customRef((_track, _trigger) => {\n track = _track;\n trigger = _trigger;\n return {\n get() {\n return get();\n },\n set(v) {\n set(v);\n }\n };\n });\n function get(tracking = true) {\n if (tracking)\n track();\n return source;\n }\n function set(value, triggering = true) {\n var _a, _b;\n if (value === source)\n return;\n const old = source;\n if (((_a = options.onBeforeChange) == null ? void 0 : _a.call(options, value, old)) === false)\n return;\n source = value;\n (_b = options.onChanged) == null ? void 0 : _b.call(options, value, old);\n if (triggering)\n trigger();\n }\n const untrackedGet = () => get(false);\n const silentSet = (v) => set(v, false);\n const peek = () => get(false);\n const lay = (v) => set(v, false);\n return extendRef(ref, {\n get,\n set,\n untrackedGet,\n silentSet,\n peek,\n lay\n }, { enumerable: true });\n}\nconst controlledRef = refWithControl;\n\nfunction resolveRef(r) {\n return typeof r === \"function\" ? computed(r) : ref(r);\n}\n\nfunction set(...args) {\n if (args.length === 2) {\n const [ref, value] = args;\n ref.value = value;\n }\n if (args.length === 3) {\n if (isVue2) {\n set$1(...args);\n } else {\n const [target, key, value] = args;\n target[key] = value;\n }\n }\n}\n\nfunction syncRef(left, right, options = {}) {\n var _a, _b;\n const {\n flush = \"sync\",\n deep = false,\n immediate = true,\n direction = \"both\",\n transform = {}\n } = options;\n let watchLeft;\n let watchRight;\n const transformLTR = (_a = transform.ltr) != null ? _a : (v) => v;\n const transformRTL = (_b = transform.rtl) != null ? _b : (v) => v;\n if (direction === \"both\" || direction === \"ltr\") {\n watchLeft = watch(left, (newValue) => right.value = transformLTR(newValue), { flush, deep, immediate });\n }\n if (direction === \"both\" || direction === \"rtl\") {\n watchRight = watch(right, (newValue) => left.value = transformRTL(newValue), { flush, deep, immediate });\n }\n return () => {\n watchLeft == null ? void 0 : watchLeft();\n watchRight == null ? void 0 : watchRight();\n };\n}\n\nfunction syncRefs(source, targets, options = {}) {\n const {\n flush = \"sync\",\n deep = false,\n immediate = true\n } = options;\n if (!Array.isArray(targets))\n targets = [targets];\n return watch(source, (newValue) => targets.forEach((target) => target.value = newValue), { flush, deep, immediate });\n}\n\nvar __defProp$7 = Object.defineProperty;\nvar __defProps$5 = Object.defineProperties;\nvar __getOwnPropDescs$5 = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols$9 = Object.getOwnPropertySymbols;\nvar __hasOwnProp$9 = Object.prototype.hasOwnProperty;\nvar __propIsEnum$9 = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$7 = (obj, key, value) => key in obj ? __defProp$7(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$7 = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$9.call(b, prop))\n __defNormalProp$7(a, prop, b[prop]);\n if (__getOwnPropSymbols$9)\n for (var prop of __getOwnPropSymbols$9(b)) {\n if (__propIsEnum$9.call(b, prop))\n __defNormalProp$7(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps$5 = (a, b) => __defProps$5(a, __getOwnPropDescs$5(b));\nfunction toRefs(objectRef) {\n if (!isRef(objectRef))\n return toRefs$1(objectRef);\n const result = Array.isArray(objectRef.value) ? new Array(objectRef.value.length) : {};\n for (const key in objectRef.value) {\n result[key] = customRef(() => ({\n get() {\n return objectRef.value[key];\n },\n set(v) {\n if (Array.isArray(objectRef.value)) {\n const copy = [...objectRef.value];\n copy[key] = v;\n objectRef.value = copy;\n } else {\n const newObject = __spreadProps$5(__spreadValues$7({}, objectRef.value), { [key]: v });\n Object.setPrototypeOf(newObject, objectRef.value);\n objectRef.value = newObject;\n }\n }\n }));\n }\n return result;\n}\n\nfunction tryOnBeforeMount(fn, sync = true) {\n if (getCurrentInstance())\n onBeforeMount(fn);\n else if (sync)\n fn();\n else\n nextTick(fn);\n}\n\nfunction tryOnBeforeUnmount(fn) {\n if (getCurrentInstance())\n onBeforeUnmount(fn);\n}\n\nfunction tryOnMounted(fn, sync = true) {\n if (getCurrentInstance())\n onMounted(fn);\n else if (sync)\n fn();\n else\n nextTick(fn);\n}\n\nfunction tryOnUnmounted(fn) {\n if (getCurrentInstance())\n onUnmounted(fn);\n}\n\nfunction createUntil(r, isNot = false) {\n function toMatch(condition, { flush = \"sync\", deep = false, timeout, throwOnTimeout } = {}) {\n let stop = null;\n const watcher = new Promise((resolve) => {\n stop = watch(r, (v) => {\n if (condition(v) !== isNot) {\n stop == null ? void 0 : stop();\n resolve(v);\n }\n }, {\n flush,\n deep,\n immediate: true\n });\n });\n const promises = [watcher];\n if (timeout != null) {\n promises.push(promiseTimeout(timeout, throwOnTimeout).then(() => resolveUnref(r)).finally(() => stop == null ? void 0 : stop()));\n }\n return Promise.race(promises);\n }\n function toBe(value, options) {\n if (!isRef(value))\n return toMatch((v) => v === value, options);\n const { flush = \"sync\", deep = false, timeout, throwOnTimeout } = options != null ? options : {};\n let stop = null;\n const watcher = new Promise((resolve) => {\n stop = watch([r, value], ([v1, v2]) => {\n if (isNot !== (v1 === v2)) {\n stop == null ? void 0 : stop();\n resolve(v1);\n }\n }, {\n flush,\n deep,\n immediate: true\n });\n });\n const promises = [watcher];\n if (timeout != null) {\n promises.push(promiseTimeout(timeout, throwOnTimeout).then(() => resolveUnref(r)).finally(() => {\n stop == null ? void 0 : stop();\n return resolveUnref(r);\n }));\n }\n return Promise.race(promises);\n }\n function toBeTruthy(options) {\n return toMatch((v) => Boolean(v), options);\n }\n function toBeNull(options) {\n return toBe(null, options);\n }\n function toBeUndefined(options) {\n return toBe(void 0, options);\n }\n function toBeNaN(options) {\n return toMatch(Number.isNaN, options);\n }\n function toContains(value, options) {\n return toMatch((v) => {\n const array = Array.from(v);\n return array.includes(value) || array.includes(resolveUnref(value));\n }, options);\n }\n function changed(options) {\n return changedTimes(1, options);\n }\n function changedTimes(n = 1, options) {\n let count = -1;\n return toMatch(() => {\n count += 1;\n return count >= n;\n }, options);\n }\n if (Array.isArray(resolveUnref(r))) {\n const instance = {\n toMatch,\n toContains,\n changed,\n changedTimes,\n get not() {\n return createUntil(r, !isNot);\n }\n };\n return instance;\n } else {\n const instance = {\n toMatch,\n toBe,\n toBeTruthy,\n toBeNull,\n toBeNaN,\n toBeUndefined,\n changed,\n changedTimes,\n get not() {\n return createUntil(r, !isNot);\n }\n };\n return instance;\n }\n}\nfunction until(r) {\n return createUntil(r);\n}\n\nfunction useArrayEvery(list, fn) {\n return computed(() => resolveUnref(list).every((element, index, array) => fn(resolveUnref(element), index, array)));\n}\n\nfunction useArrayFilter(list, fn) {\n return computed(() => resolveUnref(list).map((i) => resolveUnref(i)).filter(fn));\n}\n\nfunction useArrayFind(list, fn) {\n return computed(() => resolveUnref(resolveUnref(list).find((element, index, array) => fn(resolveUnref(element), index, array))));\n}\n\nfunction useArrayFindIndex(list, fn) {\n return computed(() => resolveUnref(list).findIndex((element, index, array) => fn(resolveUnref(element), index, array)));\n}\n\nfunction findLast(arr, cb) {\n let index = arr.length;\n while (index-- > 0) {\n if (cb(arr[index], index, arr))\n return arr[index];\n }\n return void 0;\n}\nfunction useArrayFindLast(list, fn) {\n return computed(() => resolveUnref(!Array.prototype.findLast ? findLast(resolveUnref(list), (element, index, array) => fn(resolveUnref(element), index, array)) : resolveUnref(list).findLast((element, index, array) => fn(resolveUnref(element), index, array))));\n}\n\nfunction useArrayJoin(list, separator) {\n return computed(() => resolveUnref(list).map((i) => resolveUnref(i)).join(resolveUnref(separator)));\n}\n\nfunction useArrayMap(list, fn) {\n return computed(() => resolveUnref(list).map((i) => resolveUnref(i)).map(fn));\n}\n\nfunction useArrayReduce(list, reducer, ...args) {\n const reduceCallback = (sum, value, index) => reducer(resolveUnref(sum), resolveUnref(value), index);\n return computed(() => {\n const resolved = resolveUnref(list);\n return args.length ? resolved.reduce(reduceCallback, resolveUnref(args[0])) : resolved.reduce(reduceCallback);\n });\n}\n\nfunction useArraySome(list, fn) {\n return computed(() => resolveUnref(list).some((element, index, array) => fn(resolveUnref(element), index, array)));\n}\n\nfunction useArrayUnique(list) {\n return computed(() => [...new Set(resolveUnref(list).map((element) => resolveUnref(element)))]);\n}\n\nfunction useCounter(initialValue = 0, options = {}) {\n const count = ref(initialValue);\n const {\n max = Infinity,\n min = -Infinity\n } = options;\n const inc = (delta = 1) => count.value = Math.min(max, count.value + delta);\n const dec = (delta = 1) => count.value = Math.max(min, count.value - delta);\n const get = () => count.value;\n const set = (val) => count.value = Math.max(min, Math.min(max, val));\n const reset = (val = initialValue) => {\n initialValue = val;\n return set(val);\n };\n return { count, inc, dec, get, set, reset };\n}\n\nconst REGEX_PARSE = /^(\\d{4})[-/]?(\\d{1,2})?[-/]?(\\d{0,2})[Tt\\s]*(\\d{1,2})?:?(\\d{1,2})?:?(\\d{1,2})?[.:]?(\\d+)?$/;\nconst REGEX_FORMAT = /\\[([^\\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a{1,2}|A{1,2}|m{1,2}|s{1,2}|Z{1,2}|SSS/g;\nconst defaultMeridiem = (hours, minutes, isLowercase, hasPeriod) => {\n let m = hours < 12 ? \"AM\" : \"PM\";\n if (hasPeriod)\n m = m.split(\"\").reduce((acc, curr) => acc += `${curr}.`, \"\");\n return isLowercase ? m.toLowerCase() : m;\n};\nconst formatDate = (date, formatStr, options = {}) => {\n var _a;\n const years = date.getFullYear();\n const month = date.getMonth();\n const days = date.getDate();\n const hours = date.getHours();\n const minutes = date.getMinutes();\n const seconds = date.getSeconds();\n const milliseconds = date.getMilliseconds();\n const day = date.getDay();\n const meridiem = (_a = options.customMeridiem) != null ? _a : defaultMeridiem;\n const matches = {\n YY: () => String(years).slice(-2),\n YYYY: () => years,\n M: () => month + 1,\n MM: () => `${month + 1}`.padStart(2, \"0\"),\n MMM: () => date.toLocaleDateString(options.locales, { month: \"short\" }),\n MMMM: () => date.toLocaleDateString(options.locales, { month: \"long\" }),\n D: () => String(days),\n DD: () => `${days}`.padStart(2, \"0\"),\n H: () => String(hours),\n HH: () => `${hours}`.padStart(2, \"0\"),\n h: () => `${hours % 12 || 12}`.padStart(1, \"0\"),\n hh: () => `${hours % 12 || 12}`.padStart(2, \"0\"),\n m: () => String(minutes),\n mm: () => `${minutes}`.padStart(2, \"0\"),\n s: () => String(seconds),\n ss: () => `${seconds}`.padStart(2, \"0\"),\n SSS: () => `${milliseconds}`.padStart(3, \"0\"),\n d: () => day,\n dd: () => date.toLocaleDateString(options.locales, { weekday: \"narrow\" }),\n ddd: () => date.toLocaleDateString(options.locales, { weekday: \"short\" }),\n dddd: () => date.toLocaleDateString(options.locales, { weekday: \"long\" }),\n A: () => meridiem(hours, minutes),\n AA: () => meridiem(hours, minutes, false, true),\n a: () => meridiem(hours, minutes, true),\n aa: () => meridiem(hours, minutes, true, true)\n };\n return formatStr.replace(REGEX_FORMAT, (match, $1) => $1 || matches[match]());\n};\nconst normalizeDate = (date) => {\n if (date === null)\n return new Date(NaN);\n if (date === void 0)\n return new Date();\n if (date instanceof Date)\n return new Date(date);\n if (typeof date === \"string\" && !/Z$/i.test(date)) {\n const d = date.match(REGEX_PARSE);\n if (d) {\n const m = d[2] - 1 || 0;\n const ms = (d[7] || \"0\").substring(0, 3);\n return new Date(d[1], m, d[3] || 1, d[4] || 0, d[5] || 0, d[6] || 0, ms);\n }\n }\n return new Date(date);\n};\nfunction useDateFormat(date, formatStr = \"HH:mm:ss\", options = {}) {\n return computed(() => formatDate(normalizeDate(resolveUnref(date)), resolveUnref(formatStr), options));\n}\n\nfunction useIntervalFn(cb, interval = 1e3, options = {}) {\n const {\n immediate = true,\n immediateCallback = false\n } = options;\n let timer = null;\n const isActive = ref(false);\n function clean() {\n if (timer) {\n clearInterval(timer);\n timer = null;\n }\n }\n function pause() {\n isActive.value = false;\n clean();\n }\n function resume() {\n const intervalValue = resolveUnref(interval);\n if (intervalValue <= 0)\n return;\n isActive.value = true;\n if (immediateCallback)\n cb();\n clean();\n timer = setInterval(cb, intervalValue);\n }\n if (immediate && isClient)\n resume();\n if (isRef(interval) || isFunction(interval)) {\n const stopWatch = watch(interval, () => {\n if (isActive.value && isClient)\n resume();\n });\n tryOnScopeDispose(stopWatch);\n }\n tryOnScopeDispose(pause);\n return {\n isActive,\n pause,\n resume\n };\n}\n\nvar __defProp$6 = Object.defineProperty;\nvar __getOwnPropSymbols$8 = Object.getOwnPropertySymbols;\nvar __hasOwnProp$8 = Object.prototype.hasOwnProperty;\nvar __propIsEnum$8 = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$6 = (obj, key, value) => key in obj ? __defProp$6(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$6 = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$8.call(b, prop))\n __defNormalProp$6(a, prop, b[prop]);\n if (__getOwnPropSymbols$8)\n for (var prop of __getOwnPropSymbols$8(b)) {\n if (__propIsEnum$8.call(b, prop))\n __defNormalProp$6(a, prop, b[prop]);\n }\n return a;\n};\nfunction useInterval(interval = 1e3, options = {}) {\n const {\n controls: exposeControls = false,\n immediate = true,\n callback\n } = options;\n const counter = ref(0);\n const update = () => counter.value += 1;\n const reset = () => {\n counter.value = 0;\n };\n const controls = useIntervalFn(callback ? () => {\n update();\n callback(counter.value);\n } : update, interval, { immediate });\n if (exposeControls) {\n return __spreadValues$6({\n counter,\n reset\n }, controls);\n } else {\n return counter;\n }\n}\n\nfunction useLastChanged(source, options = {}) {\n var _a;\n const ms = ref((_a = options.initialValue) != null ? _a : null);\n watch(source, () => ms.value = timestamp(), options);\n return ms;\n}\n\nfunction useTimeoutFn(cb, interval, options = {}) {\n const {\n immediate = true\n } = options;\n const isPending = ref(false);\n let timer = null;\n function clear() {\n if (timer) {\n clearTimeout(timer);\n timer = null;\n }\n }\n function stop() {\n isPending.value = false;\n clear();\n }\n function start(...args) {\n clear();\n isPending.value = true;\n timer = setTimeout(() => {\n isPending.value = false;\n timer = null;\n cb(...args);\n }, resolveUnref(interval));\n }\n if (immediate) {\n isPending.value = true;\n if (isClient)\n start();\n }\n tryOnScopeDispose(stop);\n return {\n isPending: readonly(isPending),\n start,\n stop\n };\n}\n\nvar __defProp$5 = Object.defineProperty;\nvar __getOwnPropSymbols$7 = Object.getOwnPropertySymbols;\nvar __hasOwnProp$7 = Object.prototype.hasOwnProperty;\nvar __propIsEnum$7 = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$5 = (obj, key, value) => key in obj ? __defProp$5(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$5 = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$7.call(b, prop))\n __defNormalProp$5(a, prop, b[prop]);\n if (__getOwnPropSymbols$7)\n for (var prop of __getOwnPropSymbols$7(b)) {\n if (__propIsEnum$7.call(b, prop))\n __defNormalProp$5(a, prop, b[prop]);\n }\n return a;\n};\nfunction useTimeout(interval = 1e3, options = {}) {\n const {\n controls: exposeControls = false,\n callback\n } = options;\n const controls = useTimeoutFn(callback != null ? callback : noop, interval, options);\n const ready = computed(() => !controls.isPending.value);\n if (exposeControls) {\n return __spreadValues$5({\n ready\n }, controls);\n } else {\n return ready;\n }\n}\n\nfunction useToNumber(value, options = {}) {\n const {\n method = \"parseFloat\",\n radix,\n nanToZero\n } = options;\n return computed(() => {\n let resolved = resolveUnref(value);\n if (typeof resolved === \"string\")\n resolved = Number[method](resolved, radix);\n if (nanToZero && isNaN(resolved))\n resolved = 0;\n return resolved;\n });\n}\n\nfunction useToString(value) {\n return computed(() => `${resolveUnref(value)}`);\n}\n\nfunction useToggle(initialValue = false, options = {}) {\n const {\n truthyValue = true,\n falsyValue = false\n } = options;\n const valueIsRef = isRef(initialValue);\n const _value = ref(initialValue);\n function toggle(value) {\n if (arguments.length) {\n _value.value = value;\n return _value.value;\n } else {\n const truthy = resolveUnref(truthyValue);\n _value.value = _value.value === truthy ? resolveUnref(falsyValue) : truthy;\n return _value.value;\n }\n }\n if (valueIsRef)\n return toggle;\n else\n return [_value, toggle];\n}\n\nfunction watchArray(source, cb, options) {\n let oldList = (options == null ? void 0 : options.immediate) ? [] : [\n ...source instanceof Function ? source() : Array.isArray(source) ? source : unref(source)\n ];\n return watch(source, (newList, _, onCleanup) => {\n const oldListRemains = new Array(oldList.length);\n const added = [];\n for (const obj of newList) {\n let found = false;\n for (let i = 0; i < oldList.length; i++) {\n if (!oldListRemains[i] && obj === oldList[i]) {\n oldListRemains[i] = true;\n found = true;\n break;\n }\n }\n if (!found)\n added.push(obj);\n }\n const removed = oldList.filter((_2, i) => !oldListRemains[i]);\n cb(newList, oldList, added, removed, onCleanup);\n oldList = [...newList];\n }, options);\n}\n\nvar __getOwnPropSymbols$6 = Object.getOwnPropertySymbols;\nvar __hasOwnProp$6 = Object.prototype.hasOwnProperty;\nvar __propIsEnum$6 = Object.prototype.propertyIsEnumerable;\nvar __objRest$5 = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp$6.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols$6)\n for (var prop of __getOwnPropSymbols$6(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum$6.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\nfunction watchWithFilter(source, cb, options = {}) {\n const _a = options, {\n eventFilter = bypassFilter\n } = _a, watchOptions = __objRest$5(_a, [\n \"eventFilter\"\n ]);\n return watch(source, createFilterWrapper(eventFilter, cb), watchOptions);\n}\n\nvar __getOwnPropSymbols$5 = Object.getOwnPropertySymbols;\nvar __hasOwnProp$5 = Object.prototype.hasOwnProperty;\nvar __propIsEnum$5 = Object.prototype.propertyIsEnumerable;\nvar __objRest$4 = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp$5.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols$5)\n for (var prop of __getOwnPropSymbols$5(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum$5.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\nfunction watchAtMost(source, cb, options) {\n const _a = options, {\n count\n } = _a, watchOptions = __objRest$4(_a, [\n \"count\"\n ]);\n const current = ref(0);\n const stop = watchWithFilter(source, (...args) => {\n current.value += 1;\n if (current.value >= resolveUnref(count))\n nextTick(() => stop());\n cb(...args);\n }, watchOptions);\n return { count: current, stop };\n}\n\nvar __defProp$4 = Object.defineProperty;\nvar __defProps$4 = Object.defineProperties;\nvar __getOwnPropDescs$4 = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols$4 = Object.getOwnPropertySymbols;\nvar __hasOwnProp$4 = Object.prototype.hasOwnProperty;\nvar __propIsEnum$4 = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$4 = (obj, key, value) => key in obj ? __defProp$4(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$4 = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$4.call(b, prop))\n __defNormalProp$4(a, prop, b[prop]);\n if (__getOwnPropSymbols$4)\n for (var prop of __getOwnPropSymbols$4(b)) {\n if (__propIsEnum$4.call(b, prop))\n __defNormalProp$4(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps$4 = (a, b) => __defProps$4(a, __getOwnPropDescs$4(b));\nvar __objRest$3 = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp$4.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols$4)\n for (var prop of __getOwnPropSymbols$4(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum$4.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\nfunction watchDebounced(source, cb, options = {}) {\n const _a = options, {\n debounce = 0,\n maxWait = void 0\n } = _a, watchOptions = __objRest$3(_a, [\n \"debounce\",\n \"maxWait\"\n ]);\n return watchWithFilter(source, cb, __spreadProps$4(__spreadValues$4({}, watchOptions), {\n eventFilter: debounceFilter(debounce, { maxWait })\n }));\n}\n\nvar __defProp$3 = Object.defineProperty;\nvar __defProps$3 = Object.defineProperties;\nvar __getOwnPropDescs$3 = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols$3 = Object.getOwnPropertySymbols;\nvar __hasOwnProp$3 = Object.prototype.hasOwnProperty;\nvar __propIsEnum$3 = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$3 = (obj, key, value) => key in obj ? __defProp$3(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$3 = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$3.call(b, prop))\n __defNormalProp$3(a, prop, b[prop]);\n if (__getOwnPropSymbols$3)\n for (var prop of __getOwnPropSymbols$3(b)) {\n if (__propIsEnum$3.call(b, prop))\n __defNormalProp$3(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps$3 = (a, b) => __defProps$3(a, __getOwnPropDescs$3(b));\nvar __objRest$2 = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp$3.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols$3)\n for (var prop of __getOwnPropSymbols$3(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum$3.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\nfunction watchIgnorable(source, cb, options = {}) {\n const _a = options, {\n eventFilter = bypassFilter\n } = _a, watchOptions = __objRest$2(_a, [\n \"eventFilter\"\n ]);\n const filteredCb = createFilterWrapper(eventFilter, cb);\n let ignoreUpdates;\n let ignorePrevAsyncUpdates;\n let stop;\n if (watchOptions.flush === \"sync\") {\n const ignore = ref(false);\n ignorePrevAsyncUpdates = () => {\n };\n ignoreUpdates = (updater) => {\n ignore.value = true;\n updater();\n ignore.value = false;\n };\n stop = watch(source, (...args) => {\n if (!ignore.value)\n filteredCb(...args);\n }, watchOptions);\n } else {\n const disposables = [];\n const ignoreCounter = ref(0);\n const syncCounter = ref(0);\n ignorePrevAsyncUpdates = () => {\n ignoreCounter.value = syncCounter.value;\n };\n disposables.push(watch(source, () => {\n syncCounter.value++;\n }, __spreadProps$3(__spreadValues$3({}, watchOptions), { flush: \"sync\" })));\n ignoreUpdates = (updater) => {\n const syncCounterPrev = syncCounter.value;\n updater();\n ignoreCounter.value += syncCounter.value - syncCounterPrev;\n };\n disposables.push(watch(source, (...args) => {\n const ignore = ignoreCounter.value > 0 && ignoreCounter.value === syncCounter.value;\n ignoreCounter.value = 0;\n syncCounter.value = 0;\n if (ignore)\n return;\n filteredCb(...args);\n }, watchOptions));\n stop = () => {\n disposables.forEach((fn) => fn());\n };\n }\n return { stop, ignoreUpdates, ignorePrevAsyncUpdates };\n}\n\nfunction watchOnce(source, cb, options) {\n const stop = watch(source, (...args) => {\n nextTick(() => stop());\n return cb(...args);\n }, options);\n}\n\nvar __defProp$2 = Object.defineProperty;\nvar __defProps$2 = Object.defineProperties;\nvar __getOwnPropDescs$2 = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols$2 = Object.getOwnPropertySymbols;\nvar __hasOwnProp$2 = Object.prototype.hasOwnProperty;\nvar __propIsEnum$2 = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$2 = (obj, key, value) => key in obj ? __defProp$2(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$2 = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$2.call(b, prop))\n __defNormalProp$2(a, prop, b[prop]);\n if (__getOwnPropSymbols$2)\n for (var prop of __getOwnPropSymbols$2(b)) {\n if (__propIsEnum$2.call(b, prop))\n __defNormalProp$2(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps$2 = (a, b) => __defProps$2(a, __getOwnPropDescs$2(b));\nvar __objRest$1 = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp$2.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols$2)\n for (var prop of __getOwnPropSymbols$2(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum$2.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\nfunction watchPausable(source, cb, options = {}) {\n const _a = options, {\n eventFilter: filter\n } = _a, watchOptions = __objRest$1(_a, [\n \"eventFilter\"\n ]);\n const { eventFilter, pause, resume, isActive } = pausableFilter(filter);\n const stop = watchWithFilter(source, cb, __spreadProps$2(__spreadValues$2({}, watchOptions), {\n eventFilter\n }));\n return { stop, pause, resume, isActive };\n}\n\nvar __defProp$1 = Object.defineProperty;\nvar __defProps$1 = Object.defineProperties;\nvar __getOwnPropDescs$1 = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols$1 = Object.getOwnPropertySymbols;\nvar __hasOwnProp$1 = Object.prototype.hasOwnProperty;\nvar __propIsEnum$1 = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$1 = (obj, key, value) => key in obj ? __defProp$1(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$1 = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$1.call(b, prop))\n __defNormalProp$1(a, prop, b[prop]);\n if (__getOwnPropSymbols$1)\n for (var prop of __getOwnPropSymbols$1(b)) {\n if (__propIsEnum$1.call(b, prop))\n __defNormalProp$1(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps$1 = (a, b) => __defProps$1(a, __getOwnPropDescs$1(b));\nvar __objRest = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp$1.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols$1)\n for (var prop of __getOwnPropSymbols$1(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum$1.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\nfunction watchThrottled(source, cb, options = {}) {\n const _a = options, {\n throttle = 0,\n trailing = true,\n leading = true\n } = _a, watchOptions = __objRest(_a, [\n \"throttle\",\n \"trailing\",\n \"leading\"\n ]);\n return watchWithFilter(source, cb, __spreadProps$1(__spreadValues$1({}, watchOptions), {\n eventFilter: throttleFilter(throttle, trailing, leading)\n }));\n}\n\nvar __defProp = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));\nfunction watchTriggerable(source, cb, options = {}) {\n let cleanupFn;\n function onEffect() {\n if (!cleanupFn)\n return;\n const fn = cleanupFn;\n cleanupFn = void 0;\n fn();\n }\n function onCleanup(callback) {\n cleanupFn = callback;\n }\n const _cb = (value, oldValue) => {\n onEffect();\n return cb(value, oldValue, onCleanup);\n };\n const res = watchIgnorable(source, _cb, options);\n const { ignoreUpdates } = res;\n const trigger = () => {\n let res2;\n ignoreUpdates(() => {\n res2 = _cb(getWatchSources(source), getOldValue(source));\n });\n return res2;\n };\n return __spreadProps(__spreadValues({}, res), {\n trigger\n });\n}\nfunction getWatchSources(sources) {\n if (isReactive(sources))\n return sources;\n if (Array.isArray(sources))\n return sources.map((item) => getOneWatchSource(item));\n return getOneWatchSource(sources);\n}\nfunction getOneWatchSource(source) {\n return typeof source === \"function\" ? source() : unref(source);\n}\nfunction getOldValue(source) {\n return Array.isArray(source) ? source.map(() => void 0) : void 0;\n}\n\nfunction whenever(source, cb, options) {\n return watch(source, (v, ov, onInvalidate) => {\n if (v)\n cb(v, ov, onInvalidate);\n }, options);\n}\n\nexport { __onlyVue27Plus, __onlyVue3, assert, refAutoReset as autoResetRef, bypassFilter, clamp, computedEager, computedWithControl, containsProp, computedWithControl as controlledComputed, controlledRef, createEventHook, createFilterWrapper, createGlobalState, createInjectionState, reactify as createReactiveFn, createSharedComposable, createSingletonPromise, debounceFilter, refDebounced as debouncedRef, watchDebounced as debouncedWatch, directiveHooks, computedEager as eagerComputed, extendRef, formatDate, get, hasOwn, identity, watchIgnorable as ignorableWatch, increaseWithUnit, invoke, isBoolean, isClient, isDef, isDefined, isFunction, isIOS, isNumber, isObject, isString, isWindow, makeDestructurable, noop, normalizeDate, now, objectPick, pausableFilter, watchPausable as pausableWatch, promiseTimeout, rand, reactify, reactifyObject, reactiveComputed, reactiveOmit, reactivePick, refAutoReset, refDebounced, refDefault, refThrottled, refWithControl, resolveRef, resolveUnref, set, syncRef, syncRefs, throttleFilter, refThrottled as throttledRef, watchThrottled as throttledWatch, timestamp, toReactive, toRefs, tryOnBeforeMount, tryOnBeforeUnmount, tryOnMounted, tryOnScopeDispose, tryOnUnmounted, until, useArrayEvery, useArrayFilter, useArrayFind, useArrayFindIndex, useArrayFindLast, useArrayJoin, useArrayMap, useArrayReduce, useArraySome, useArrayUnique, useCounter, useDateFormat, refDebounced as useDebounce, useDebounceFn, useInterval, useIntervalFn, useLastChanged, refThrottled as useThrottle, useThrottleFn, useTimeout, useTimeoutFn, useToNumber, useToString, useToggle, watchArray, watchAtMost, watchDebounced, watchIgnorable, watchOnce, watchPausable, watchThrottled, watchTriggerable, watchWithFilter, whenever };\n","import { noop, resolveUnref, isClient, isString, tryOnScopeDispose, isIOS, tryOnMounted, computedWithControl, promiseTimeout, isFunction, resolveRef, increaseWithUnit, useTimeoutFn, pausableWatch, createEventHook, timestamp, pausableFilter, watchIgnorable, debounceFilter, createFilterWrapper, bypassFilter, createSingletonPromise, toRefs, containsProp, until, hasOwn, throttleFilter, useDebounceFn, useThrottleFn, isObject, isNumber, useIntervalFn, clamp, syncRef, objectPick, tryOnUnmounted, watchWithFilter, identity, isDef } from '@vueuse/shared';\nexport * from '@vueuse/shared';\nimport { isRef, ref, shallowRef, watchEffect, computed, inject, unref, watch, getCurrentInstance, customRef, onUpdated, reactive, nextTick, onMounted, markRaw, readonly, getCurrentScope, isVue2, set, del, isReadonly, onBeforeUpdate } from 'vue-demi';\n\nfunction computedAsync(evaluationCallback, initialState, optionsOrRef) {\n let options;\n if (isRef(optionsOrRef)) {\n options = {\n evaluating: optionsOrRef\n };\n } else {\n options = optionsOrRef || {};\n }\n const {\n lazy = false,\n evaluating = void 0,\n shallow = false,\n onError = noop\n } = options;\n const started = ref(!lazy);\n const current = shallow ? shallowRef(initialState) : ref(initialState);\n let counter = 0;\n watchEffect(async (onInvalidate) => {\n if (!started.value)\n return;\n counter++;\n const counterAtBeginning = counter;\n let hasFinished = false;\n if (evaluating) {\n Promise.resolve().then(() => {\n evaluating.value = true;\n });\n }\n try {\n const result = await evaluationCallback((cancelCallback) => {\n onInvalidate(() => {\n if (evaluating)\n evaluating.value = false;\n if (!hasFinished)\n cancelCallback();\n });\n });\n if (counterAtBeginning === counter)\n current.value = result;\n } catch (e) {\n onError(e);\n } finally {\n if (evaluating && counterAtBeginning === counter)\n evaluating.value = false;\n hasFinished = true;\n }\n });\n if (lazy) {\n return computed(() => {\n started.value = true;\n return current.value;\n });\n } else {\n return current;\n }\n}\n\nfunction computedInject(key, options, defaultSource, treatDefaultAsFactory) {\n let source = inject(key);\n if (defaultSource)\n source = inject(key, defaultSource);\n if (treatDefaultAsFactory)\n source = inject(key, defaultSource, treatDefaultAsFactory);\n if (typeof options === \"function\") {\n return computed((ctx) => options(source, ctx));\n } else {\n return computed({\n get: (ctx) => options.get(source, ctx),\n set: options.set\n });\n }\n}\n\nconst createUnrefFn = (fn) => {\n return function(...args) {\n return fn.apply(this, args.map((i) => unref(i)));\n };\n};\n\nfunction unrefElement(elRef) {\n var _a;\n const plain = resolveUnref(elRef);\n return (_a = plain == null ? void 0 : plain.$el) != null ? _a : plain;\n}\n\nconst defaultWindow = isClient ? window : void 0;\nconst defaultDocument = isClient ? window.document : void 0;\nconst defaultNavigator = isClient ? window.navigator : void 0;\nconst defaultLocation = isClient ? window.location : void 0;\n\nfunction useEventListener(...args) {\n let target;\n let events;\n let listeners;\n let options;\n if (isString(args[0]) || Array.isArray(args[0])) {\n [events, listeners, options] = args;\n target = defaultWindow;\n } else {\n [target, events, listeners, options] = args;\n }\n if (!target)\n return noop;\n if (!Array.isArray(events))\n events = [events];\n if (!Array.isArray(listeners))\n listeners = [listeners];\n const cleanups = [];\n const cleanup = () => {\n cleanups.forEach((fn) => fn());\n cleanups.length = 0;\n };\n const register = (el, event, listener, options2) => {\n el.addEventListener(event, listener, options2);\n return () => el.removeEventListener(event, listener, options2);\n };\n const stopWatch = watch(() => [unrefElement(target), resolveUnref(options)], ([el, options2]) => {\n cleanup();\n if (!el)\n return;\n cleanups.push(...events.flatMap((event) => {\n return listeners.map((listener) => register(el, event, listener, options2));\n }));\n }, { immediate: true, flush: \"post\" });\n const stop = () => {\n stopWatch();\n cleanup();\n };\n tryOnScopeDispose(stop);\n return stop;\n}\n\nlet _iOSWorkaround = false;\nfunction onClickOutside(target, handler, options = {}) {\n const { window = defaultWindow, ignore = [], capture = true, detectIframe = false } = options;\n if (!window)\n return;\n if (isIOS && !_iOSWorkaround) {\n _iOSWorkaround = true;\n Array.from(window.document.body.children).forEach((el) => el.addEventListener(\"click\", noop));\n }\n let shouldListen = true;\n const shouldIgnore = (event) => {\n return ignore.some((target2) => {\n if (typeof target2 === \"string\") {\n return Array.from(window.document.querySelectorAll(target2)).some((el) => el === event.target || event.composedPath().includes(el));\n } else {\n const el = unrefElement(target2);\n return el && (event.target === el || event.composedPath().includes(el));\n }\n });\n };\n const listener = (event) => {\n const el = unrefElement(target);\n if (!el || el === event.target || event.composedPath().includes(el))\n return;\n if (event.detail === 0)\n shouldListen = !shouldIgnore(event);\n if (!shouldListen) {\n shouldListen = true;\n return;\n }\n handler(event);\n };\n const cleanup = [\n useEventListener(window, \"click\", listener, { passive: true, capture }),\n useEventListener(window, \"pointerdown\", (e) => {\n const el = unrefElement(target);\n if (el)\n shouldListen = !e.composedPath().includes(el) && !shouldIgnore(e);\n }, { passive: true }),\n detectIframe && useEventListener(window, \"blur\", (event) => {\n var _a;\n const el = unrefElement(target);\n if (((_a = window.document.activeElement) == null ? void 0 : _a.tagName) === \"IFRAME\" && !(el == null ? void 0 : el.contains(window.document.activeElement)))\n handler(event);\n })\n ].filter(Boolean);\n const stop = () => cleanup.forEach((fn) => fn());\n return stop;\n}\n\nvar __defProp$n = Object.defineProperty;\nvar __defProps$9 = Object.defineProperties;\nvar __getOwnPropDescs$9 = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols$p = Object.getOwnPropertySymbols;\nvar __hasOwnProp$p = Object.prototype.hasOwnProperty;\nvar __propIsEnum$p = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$n = (obj, key, value) => key in obj ? __defProp$n(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$n = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$p.call(b, prop))\n __defNormalProp$n(a, prop, b[prop]);\n if (__getOwnPropSymbols$p)\n for (var prop of __getOwnPropSymbols$p(b)) {\n if (__propIsEnum$p.call(b, prop))\n __defNormalProp$n(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps$9 = (a, b) => __defProps$9(a, __getOwnPropDescs$9(b));\nconst createKeyPredicate = (keyFilter) => {\n if (typeof keyFilter === \"function\")\n return keyFilter;\n else if (typeof keyFilter === \"string\")\n return (event) => event.key === keyFilter;\n else if (Array.isArray(keyFilter))\n return (event) => keyFilter.includes(event.key);\n return () => true;\n};\nfunction onKeyStroke(...args) {\n let key;\n let handler;\n let options = {};\n if (args.length === 3) {\n key = args[0];\n handler = args[1];\n options = args[2];\n } else if (args.length === 2) {\n if (typeof args[1] === \"object\") {\n key = true;\n handler = args[0];\n options = args[1];\n } else {\n key = args[0];\n handler = args[1];\n }\n } else {\n key = true;\n handler = args[0];\n }\n const { target = defaultWindow, eventName = \"keydown\", passive = false } = options;\n const predicate = createKeyPredicate(key);\n const listener = (e) => {\n if (predicate(e))\n handler(e);\n };\n return useEventListener(target, eventName, listener, passive);\n}\nfunction onKeyDown(key, handler, options = {}) {\n return onKeyStroke(key, handler, __spreadProps$9(__spreadValues$n({}, options), { eventName: \"keydown\" }));\n}\nfunction onKeyPressed(key, handler, options = {}) {\n return onKeyStroke(key, handler, __spreadProps$9(__spreadValues$n({}, options), { eventName: \"keypress\" }));\n}\nfunction onKeyUp(key, handler, options = {}) {\n return onKeyStroke(key, handler, __spreadProps$9(__spreadValues$n({}, options), { eventName: \"keyup\" }));\n}\n\nconst DEFAULT_DELAY = 500;\nfunction onLongPress(target, handler, options) {\n var _a, _b;\n const elementRef = computed(() => unrefElement(target));\n let timeout;\n function clear() {\n if (timeout) {\n clearTimeout(timeout);\n timeout = void 0;\n }\n }\n function onDown(ev) {\n var _a2, _b2, _c, _d;\n if (((_a2 = options == null ? void 0 : options.modifiers) == null ? void 0 : _a2.self) && ev.target !== elementRef.value)\n return;\n clear();\n if ((_b2 = options == null ? void 0 : options.modifiers) == null ? void 0 : _b2.prevent)\n ev.preventDefault();\n if ((_c = options == null ? void 0 : options.modifiers) == null ? void 0 : _c.stop)\n ev.stopPropagation();\n timeout = setTimeout(() => handler(ev), (_d = options == null ? void 0 : options.delay) != null ? _d : DEFAULT_DELAY);\n }\n const listenerOptions = {\n capture: (_a = options == null ? void 0 : options.modifiers) == null ? void 0 : _a.capture,\n once: (_b = options == null ? void 0 : options.modifiers) == null ? void 0 : _b.once\n };\n useEventListener(elementRef, \"pointerdown\", onDown, listenerOptions);\n useEventListener(elementRef, \"pointerup\", clear, listenerOptions);\n useEventListener(elementRef, \"pointerleave\", clear, listenerOptions);\n}\n\nconst isFocusedElementEditable = () => {\n const { activeElement, body } = document;\n if (!activeElement)\n return false;\n if (activeElement === body)\n return false;\n switch (activeElement.tagName) {\n case \"INPUT\":\n case \"TEXTAREA\":\n return true;\n }\n return activeElement.hasAttribute(\"contenteditable\");\n};\nconst isTypedCharValid = ({\n keyCode,\n metaKey,\n ctrlKey,\n altKey\n}) => {\n if (metaKey || ctrlKey || altKey)\n return false;\n if (keyCode >= 48 && keyCode <= 57 || keyCode >= 96 && keyCode <= 105)\n return true;\n if (keyCode >= 65 && keyCode <= 90)\n return true;\n return false;\n};\nfunction onStartTyping(callback, options = {}) {\n const { document: document2 = defaultDocument } = options;\n const keydown = (event) => {\n !isFocusedElementEditable() && isTypedCharValid(event) && callback(event);\n };\n if (document2)\n useEventListener(document2, \"keydown\", keydown, { passive: true });\n}\n\nfunction templateRef(key, initialValue = null) {\n const instance = getCurrentInstance();\n let _trigger = () => {\n };\n const element = customRef((track, trigger) => {\n _trigger = trigger;\n return {\n get() {\n var _a, _b;\n track();\n return (_b = (_a = instance == null ? void 0 : instance.proxy) == null ? void 0 : _a.$refs[key]) != null ? _b : initialValue;\n },\n set() {\n }\n };\n });\n tryOnMounted(_trigger);\n onUpdated(_trigger);\n return element;\n}\n\nfunction useActiveElement(options = {}) {\n var _a;\n const { window = defaultWindow } = options;\n const document = (_a = options.document) != null ? _a : window == null ? void 0 : window.document;\n const activeElement = computedWithControl(() => null, () => document == null ? void 0 : document.activeElement);\n if (window) {\n useEventListener(window, \"blur\", (event) => {\n if (event.relatedTarget !== null)\n return;\n activeElement.trigger();\n }, true);\n useEventListener(window, \"focus\", activeElement.trigger, true);\n }\n return activeElement;\n}\n\nfunction useAsyncQueue(tasks, options = {}) {\n const {\n interrupt = true,\n onError = noop,\n onFinished = noop\n } = options;\n const promiseState = {\n pending: \"pending\",\n rejected: \"rejected\",\n fulfilled: \"fulfilled\"\n };\n const initialResult = Array.from(new Array(tasks.length), () => ({ state: promiseState.pending, data: null }));\n const result = reactive(initialResult);\n const activeIndex = ref(-1);\n if (!tasks || tasks.length === 0) {\n onFinished();\n return {\n activeIndex,\n result\n };\n }\n function updateResult(state, res) {\n activeIndex.value++;\n result[activeIndex.value].data = res;\n result[activeIndex.value].state = state;\n }\n tasks.reduce((prev, curr) => {\n return prev.then((prevRes) => {\n var _a;\n if (((_a = result[activeIndex.value]) == null ? void 0 : _a.state) === promiseState.rejected && interrupt) {\n onFinished();\n return;\n }\n return curr(prevRes).then((currentRes) => {\n updateResult(promiseState.fulfilled, currentRes);\n activeIndex.value === tasks.length - 1 && onFinished();\n return currentRes;\n });\n }).catch((e) => {\n updateResult(promiseState.rejected, e);\n onError();\n return e;\n });\n }, Promise.resolve());\n return {\n activeIndex,\n result\n };\n}\n\nfunction useAsyncState(promise, initialState, options) {\n const {\n immediate = true,\n delay = 0,\n onError = noop,\n onSuccess = noop,\n resetOnExecute = true,\n shallow = true,\n throwError\n } = options != null ? options : {};\n const state = shallow ? shallowRef(initialState) : ref(initialState);\n const isReady = ref(false);\n const isLoading = ref(false);\n const error = ref(void 0);\n async function execute(delay2 = 0, ...args) {\n if (resetOnExecute)\n state.value = initialState;\n error.value = void 0;\n isReady.value = false;\n isLoading.value = true;\n if (delay2 > 0)\n await promiseTimeout(delay2);\n const _promise = typeof promise === \"function\" ? promise(...args) : promise;\n try {\n const data = await _promise;\n state.value = data;\n isReady.value = true;\n onSuccess(data);\n } catch (e) {\n error.value = e;\n onError(e);\n if (throwError)\n throw error;\n } finally {\n isLoading.value = false;\n }\n return state.value;\n }\n if (immediate)\n execute(delay);\n return {\n state,\n isReady,\n isLoading,\n error,\n execute\n };\n}\n\nconst defaults = {\n array: (v) => JSON.stringify(v),\n object: (v) => JSON.stringify(v),\n set: (v) => JSON.stringify(Array.from(v)),\n map: (v) => JSON.stringify(Object.fromEntries(v)),\n null: () => \"\"\n};\nfunction getDefaultSerialization(target) {\n if (!target)\n return defaults.null;\n if (target instanceof Map)\n return defaults.map;\n else if (target instanceof Set)\n return defaults.set;\n else if (Array.isArray(target))\n return defaults.array;\n else\n return defaults.object;\n}\n\nfunction useBase64(target, options) {\n const base64 = ref(\"\");\n const promise = ref();\n function execute() {\n if (!isClient)\n return;\n promise.value = new Promise((resolve, reject) => {\n try {\n const _target = resolveUnref(target);\n if (_target == null) {\n resolve(\"\");\n } else if (typeof _target === \"string\") {\n resolve(blobToBase64(new Blob([_target], { type: \"text/plain\" })));\n } else if (_target instanceof Blob) {\n resolve(blobToBase64(_target));\n } else if (_target instanceof ArrayBuffer) {\n resolve(window.btoa(String.fromCharCode(...new Uint8Array(_target))));\n } else if (_target instanceof HTMLCanvasElement) {\n resolve(_target.toDataURL(options == null ? void 0 : options.type, options == null ? void 0 : options.quality));\n } else if (_target instanceof HTMLImageElement) {\n const img = _target.cloneNode(false);\n img.crossOrigin = \"Anonymous\";\n imgLoaded(img).then(() => {\n const canvas = document.createElement(\"canvas\");\n const ctx = canvas.getContext(\"2d\");\n canvas.width = img.width;\n canvas.height = img.height;\n ctx.drawImage(img, 0, 0, canvas.width, canvas.height);\n resolve(canvas.toDataURL(options == null ? void 0 : options.type, options == null ? void 0 : options.quality));\n }).catch(reject);\n } else if (typeof _target === \"object\") {\n const _serializeFn = (options == null ? void 0 : options.serializer) || getDefaultSerialization(_target);\n const serialized = _serializeFn(_target);\n return resolve(blobToBase64(new Blob([serialized], { type: \"application/json\" })));\n } else {\n reject(new Error(\"target is unsupported types\"));\n }\n } catch (error) {\n reject(error);\n }\n });\n promise.value.then((res) => base64.value = res);\n return promise.value;\n }\n if (isRef(target) || isFunction(target))\n watch(target, execute, { immediate: true });\n else\n execute();\n return {\n base64,\n promise,\n execute\n };\n}\nfunction imgLoaded(img) {\n return new Promise((resolve, reject) => {\n if (!img.complete) {\n img.onload = () => {\n resolve();\n };\n img.onerror = reject;\n } else {\n resolve();\n }\n });\n}\nfunction blobToBase64(blob) {\n return new Promise((resolve, reject) => {\n const fr = new FileReader();\n fr.onload = (e) => {\n resolve(e.target.result);\n };\n fr.onerror = reject;\n fr.readAsDataURL(blob);\n });\n}\n\nfunction useSupported(callback, sync = false) {\n const isSupported = ref();\n const update = () => isSupported.value = Boolean(callback());\n update();\n tryOnMounted(update, sync);\n return isSupported;\n}\n\nfunction useBattery({ navigator = defaultNavigator } = {}) {\n const events = [\"chargingchange\", \"chargingtimechange\", \"dischargingtimechange\", \"levelchange\"];\n const isSupported = useSupported(() => navigator && \"getBattery\" in navigator);\n const charging = ref(false);\n const chargingTime = ref(0);\n const dischargingTime = ref(0);\n const level = ref(1);\n let battery;\n function updateBatteryInfo() {\n charging.value = this.charging;\n chargingTime.value = this.chargingTime || 0;\n dischargingTime.value = this.dischargingTime || 0;\n level.value = this.level;\n }\n if (isSupported.value) {\n navigator.getBattery().then((_battery) => {\n battery = _battery;\n updateBatteryInfo.call(battery);\n for (const event of events)\n useEventListener(battery, event, updateBatteryInfo, { passive: true });\n });\n }\n return {\n isSupported,\n charging,\n chargingTime,\n dischargingTime,\n level\n };\n}\n\nfunction useBluetooth(options) {\n let {\n acceptAllDevices = false\n } = options || {};\n const {\n filters = void 0,\n optionalServices = void 0,\n navigator = defaultNavigator\n } = options || {};\n const isSupported = useSupported(() => navigator && \"bluetooth\" in navigator);\n const device = shallowRef(void 0);\n const error = shallowRef(null);\n watch(device, () => {\n connectToBluetoothGATTServer();\n });\n async function requestDevice() {\n if (!isSupported.value)\n return;\n error.value = null;\n if (filters && filters.length > 0)\n acceptAllDevices = false;\n try {\n device.value = await (navigator == null ? void 0 : navigator.bluetooth.requestDevice({\n acceptAllDevices,\n filters,\n optionalServices\n }));\n } catch (err) {\n error.value = err;\n }\n }\n const server = ref();\n const isConnected = computed(() => {\n var _a;\n return ((_a = server.value) == null ? void 0 : _a.connected) || false;\n });\n async function connectToBluetoothGATTServer() {\n error.value = null;\n if (device.value && device.value.gatt) {\n device.value.addEventListener(\"gattserverdisconnected\", () => {\n });\n try {\n server.value = await device.value.gatt.connect();\n } catch (err) {\n error.value = err;\n }\n }\n }\n tryOnMounted(() => {\n var _a;\n if (device.value)\n (_a = device.value.gatt) == null ? void 0 : _a.connect();\n });\n tryOnScopeDispose(() => {\n var _a;\n if (device.value)\n (_a = device.value.gatt) == null ? void 0 : _a.disconnect();\n });\n return {\n isSupported,\n isConnected,\n device,\n requestDevice,\n server,\n error\n };\n}\n\nfunction useMediaQuery(query, options = {}) {\n const { window = defaultWindow } = options;\n const isSupported = useSupported(() => window && \"matchMedia\" in window && typeof window.matchMedia === \"function\");\n let mediaQuery;\n const matches = ref(false);\n const cleanup = () => {\n if (!mediaQuery)\n return;\n if (\"removeEventListener\" in mediaQuery)\n mediaQuery.removeEventListener(\"change\", update);\n else\n mediaQuery.removeListener(update);\n };\n const update = () => {\n if (!isSupported.value)\n return;\n cleanup();\n mediaQuery = window.matchMedia(resolveRef(query).value);\n matches.value = mediaQuery.matches;\n if (\"addEventListener\" in mediaQuery)\n mediaQuery.addEventListener(\"change\", update);\n else\n mediaQuery.addListener(update);\n };\n watchEffect(update);\n tryOnScopeDispose(() => cleanup());\n return matches;\n}\n\nconst breakpointsTailwind = {\n \"sm\": 640,\n \"md\": 768,\n \"lg\": 1024,\n \"xl\": 1280,\n \"2xl\": 1536\n};\nconst breakpointsBootstrapV5 = {\n sm: 576,\n md: 768,\n lg: 992,\n xl: 1200,\n xxl: 1400\n};\nconst breakpointsVuetify = {\n xs: 600,\n sm: 960,\n md: 1264,\n lg: 1904\n};\nconst breakpointsAntDesign = {\n xs: 480,\n sm: 576,\n md: 768,\n lg: 992,\n xl: 1200,\n xxl: 1600\n};\nconst breakpointsQuasar = {\n xs: 600,\n sm: 1024,\n md: 1440,\n lg: 1920\n};\nconst breakpointsSematic = {\n mobileS: 320,\n mobileM: 375,\n mobileL: 425,\n tablet: 768,\n laptop: 1024,\n laptopL: 1440,\n desktop4K: 2560\n};\nconst breakpointsMasterCss = {\n \"3xs\": 360,\n \"2xs\": 480,\n \"xs\": 600,\n \"sm\": 768,\n \"md\": 1024,\n \"lg\": 1280,\n \"xl\": 1440,\n \"2xl\": 1600,\n \"3xl\": 1920,\n \"4xl\": 2560\n};\n\nvar __defProp$m = Object.defineProperty;\nvar __getOwnPropSymbols$o = Object.getOwnPropertySymbols;\nvar __hasOwnProp$o = Object.prototype.hasOwnProperty;\nvar __propIsEnum$o = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$m = (obj, key, value) => key in obj ? __defProp$m(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$m = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$o.call(b, prop))\n __defNormalProp$m(a, prop, b[prop]);\n if (__getOwnPropSymbols$o)\n for (var prop of __getOwnPropSymbols$o(b)) {\n if (__propIsEnum$o.call(b, prop))\n __defNormalProp$m(a, prop, b[prop]);\n }\n return a;\n};\nfunction useBreakpoints(breakpoints, options = {}) {\n function getValue(k, delta) {\n let v = breakpoints[k];\n if (delta != null)\n v = increaseWithUnit(v, delta);\n if (typeof v === \"number\")\n v = `${v}px`;\n return v;\n }\n const { window = defaultWindow } = options;\n function match(query) {\n if (!window)\n return false;\n return window.matchMedia(query).matches;\n }\n const greaterOrEqual = (k) => {\n return useMediaQuery(`(min-width: ${getValue(k)})`, options);\n };\n const shortcutMethods = Object.keys(breakpoints).reduce((shortcuts, k) => {\n Object.defineProperty(shortcuts, k, {\n get: () => greaterOrEqual(k),\n enumerable: true,\n configurable: true\n });\n return shortcuts;\n }, {});\n return __spreadValues$m({\n greater(k) {\n return useMediaQuery(`(min-width: ${getValue(k, 0.1)})`, options);\n },\n greaterOrEqual,\n smaller(k) {\n return useMediaQuery(`(max-width: ${getValue(k, -0.1)})`, options);\n },\n smallerOrEqual(k) {\n return useMediaQuery(`(max-width: ${getValue(k)})`, options);\n },\n between(a, b) {\n return useMediaQuery(`(min-width: ${getValue(a)}) and (max-width: ${getValue(b, -0.1)})`, options);\n },\n isGreater(k) {\n return match(`(min-width: ${getValue(k, 0.1)})`);\n },\n isGreaterOrEqual(k) {\n return match(`(min-width: ${getValue(k)})`);\n },\n isSmaller(k) {\n return match(`(max-width: ${getValue(k, -0.1)})`);\n },\n isSmallerOrEqual(k) {\n return match(`(max-width: ${getValue(k)})`);\n },\n isInBetween(a, b) {\n return match(`(min-width: ${getValue(a)}) and (max-width: ${getValue(b, -0.1)})`);\n }\n }, shortcutMethods);\n}\n\nconst useBroadcastChannel = (options) => {\n const {\n name,\n window = defaultWindow\n } = options;\n const isSupported = useSupported(() => window && \"BroadcastChannel\" in window);\n const isClosed = ref(false);\n const channel = ref();\n const data = ref();\n const error = ref(null);\n const post = (data2) => {\n if (channel.value)\n channel.value.postMessage(data2);\n };\n const close = () => {\n if (channel.value)\n channel.value.close();\n isClosed.value = true;\n };\n if (isSupported.value) {\n tryOnMounted(() => {\n error.value = null;\n channel.value = new BroadcastChannel(name);\n channel.value.addEventListener(\"message\", (e) => {\n data.value = e.data;\n }, { passive: true });\n channel.value.addEventListener(\"messageerror\", (e) => {\n error.value = e;\n }, { passive: true });\n channel.value.addEventListener(\"close\", () => {\n isClosed.value = true;\n });\n });\n }\n tryOnScopeDispose(() => {\n close();\n });\n return {\n isSupported,\n channel,\n data,\n post,\n close,\n error,\n isClosed\n };\n};\n\nfunction useBrowserLocation({ window = defaultWindow } = {}) {\n const buildState = (trigger) => {\n const { state: state2, length } = (window == null ? void 0 : window.history) || {};\n const { hash, host, hostname, href, origin, pathname, port, protocol, search } = (window == null ? void 0 : window.location) || {};\n return {\n trigger,\n state: state2,\n length,\n hash,\n host,\n hostname,\n href,\n origin,\n pathname,\n port,\n protocol,\n search\n };\n };\n const state = ref(buildState(\"load\"));\n if (window) {\n useEventListener(window, \"popstate\", () => state.value = buildState(\"popstate\"), { passive: true });\n useEventListener(window, \"hashchange\", () => state.value = buildState(\"hashchange\"), { passive: true });\n }\n return state;\n}\n\nfunction useCached(refValue, comparator = (a, b) => a === b, watchOptions) {\n const cachedValue = ref(refValue.value);\n watch(() => refValue.value, (value) => {\n if (!comparator(value, cachedValue.value))\n cachedValue.value = value;\n }, watchOptions);\n return cachedValue;\n}\n\nfunction useClipboard(options = {}) {\n const {\n navigator = defaultNavigator,\n read = false,\n source,\n copiedDuring = 1500,\n legacy = false\n } = options;\n const events = [\"copy\", \"cut\"];\n const isClipboardApiSupported = useSupported(() => navigator && \"clipboard\" in navigator);\n const isSupported = computed(() => isClipboardApiSupported.value || legacy);\n const text = ref(\"\");\n const copied = ref(false);\n const timeout = useTimeoutFn(() => copied.value = false, copiedDuring);\n function updateText() {\n if (isClipboardApiSupported.value) {\n navigator.clipboard.readText().then((value) => {\n text.value = value;\n });\n } else {\n text.value = legacyRead();\n }\n }\n if (isSupported.value && read) {\n for (const event of events)\n useEventListener(event, updateText);\n }\n async function copy(value = resolveUnref(source)) {\n if (isSupported.value && value != null) {\n if (isClipboardApiSupported.value)\n await navigator.clipboard.writeText(value);\n else\n legacyCopy(value);\n text.value = value;\n copied.value = true;\n timeout.start();\n }\n }\n function legacyCopy(value) {\n const ta = document.createElement(\"textarea\");\n ta.value = value != null ? value : \"\";\n ta.style.position = \"absolute\";\n ta.style.opacity = \"0\";\n document.body.appendChild(ta);\n ta.select();\n document.execCommand(\"copy\");\n ta.remove();\n }\n function legacyRead() {\n var _a, _b, _c;\n return (_c = (_b = (_a = document == null ? void 0 : document.getSelection) == null ? void 0 : _a.call(document)) == null ? void 0 : _b.toString()) != null ? _c : \"\";\n }\n return {\n isSupported,\n text,\n copied,\n copy\n };\n}\n\nvar __defProp$l = Object.defineProperty;\nvar __defProps$8 = Object.defineProperties;\nvar __getOwnPropDescs$8 = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols$n = Object.getOwnPropertySymbols;\nvar __hasOwnProp$n = Object.prototype.hasOwnProperty;\nvar __propIsEnum$n = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$l = (obj, key, value) => key in obj ? __defProp$l(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$l = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$n.call(b, prop))\n __defNormalProp$l(a, prop, b[prop]);\n if (__getOwnPropSymbols$n)\n for (var prop of __getOwnPropSymbols$n(b)) {\n if (__propIsEnum$n.call(b, prop))\n __defNormalProp$l(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps$8 = (a, b) => __defProps$8(a, __getOwnPropDescs$8(b));\nfunction cloneFnJSON(source) {\n return JSON.parse(JSON.stringify(source));\n}\nfunction useCloned(source, options = {}) {\n const cloned = ref({});\n const {\n manual,\n clone = cloneFnJSON,\n deep = true,\n immediate = true\n } = options;\n function sync() {\n cloned.value = clone(unref(source));\n }\n if (!manual && isRef(source)) {\n watch(source, sync, __spreadProps$8(__spreadValues$l({}, options), {\n deep,\n immediate\n }));\n } else {\n sync();\n }\n return { cloned, sync };\n}\n\nconst _global = typeof globalThis !== \"undefined\" ? globalThis : typeof window !== \"undefined\" ? window : typeof global !== \"undefined\" ? global : typeof self !== \"undefined\" ? self : {};\nconst globalKey = \"__vueuse_ssr_handlers__\";\n_global[globalKey] = _global[globalKey] || {};\nconst handlers = _global[globalKey];\nfunction getSSRHandler(key, fallback) {\n return handlers[key] || fallback;\n}\nfunction setSSRHandler(key, fn) {\n handlers[key] = fn;\n}\n\nfunction guessSerializerType(rawInit) {\n return rawInit == null ? \"any\" : rawInit instanceof Set ? \"set\" : rawInit instanceof Map ? \"map\" : rawInit instanceof Date ? \"date\" : typeof rawInit === \"boolean\" ? \"boolean\" : typeof rawInit === \"string\" ? \"string\" : typeof rawInit === \"object\" ? \"object\" : !Number.isNaN(rawInit) ? \"number\" : \"any\";\n}\n\nvar __defProp$k = Object.defineProperty;\nvar __getOwnPropSymbols$m = Object.getOwnPropertySymbols;\nvar __hasOwnProp$m = Object.prototype.hasOwnProperty;\nvar __propIsEnum$m = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$k = (obj, key, value) => key in obj ? __defProp$k(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$k = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$m.call(b, prop))\n __defNormalProp$k(a, prop, b[prop]);\n if (__getOwnPropSymbols$m)\n for (var prop of __getOwnPropSymbols$m(b)) {\n if (__propIsEnum$m.call(b, prop))\n __defNormalProp$k(a, prop, b[prop]);\n }\n return a;\n};\nconst StorageSerializers = {\n boolean: {\n read: (v) => v === \"true\",\n write: (v) => String(v)\n },\n object: {\n read: (v) => JSON.parse(v),\n write: (v) => JSON.stringify(v)\n },\n number: {\n read: (v) => Number.parseFloat(v),\n write: (v) => String(v)\n },\n any: {\n read: (v) => v,\n write: (v) => String(v)\n },\n string: {\n read: (v) => v,\n write: (v) => String(v)\n },\n map: {\n read: (v) => new Map(JSON.parse(v)),\n write: (v) => JSON.stringify(Array.from(v.entries()))\n },\n set: {\n read: (v) => new Set(JSON.parse(v)),\n write: (v) => JSON.stringify(Array.from(v))\n },\n date: {\n read: (v) => new Date(v),\n write: (v) => v.toISOString()\n }\n};\nconst customStorageEventName = \"vueuse-storage\";\nfunction useStorage(key, defaults, storage, options = {}) {\n var _a;\n const {\n flush = \"pre\",\n deep = true,\n listenToStorageChanges = true,\n writeDefaults = true,\n mergeDefaults = false,\n shallow,\n window = defaultWindow,\n eventFilter,\n onError = (e) => {\n console.error(e);\n }\n } = options;\n const data = (shallow ? shallowRef : ref)(defaults);\n if (!storage) {\n try {\n storage = getSSRHandler(\"getDefaultStorage\", () => {\n var _a2;\n return (_a2 = defaultWindow) == null ? void 0 : _a2.localStorage;\n })();\n } catch (e) {\n onError(e);\n }\n }\n if (!storage)\n return data;\n const rawInit = resolveUnref(defaults);\n const type = guessSerializerType(rawInit);\n const serializer = (_a = options.serializer) != null ? _a : StorageSerializers[type];\n const { pause: pauseWatch, resume: resumeWatch } = pausableWatch(data, () => write(data.value), { flush, deep, eventFilter });\n if (window && listenToStorageChanges) {\n useEventListener(window, \"storage\", update);\n useEventListener(window, customStorageEventName, updateFromCustomEvent);\n }\n update();\n return data;\n function write(v) {\n try {\n if (v == null) {\n storage.removeItem(key);\n } else {\n const serialized = serializer.write(v);\n const oldValue = storage.getItem(key);\n if (oldValue !== serialized) {\n storage.setItem(key, serialized);\n if (window) {\n window.dispatchEvent(new CustomEvent(customStorageEventName, {\n detail: {\n key,\n oldValue,\n newValue: serialized,\n storageArea: storage\n }\n }));\n }\n }\n }\n } catch (e) {\n onError(e);\n }\n }\n function read(event) {\n const rawValue = event ? event.newValue : storage.getItem(key);\n if (rawValue == null) {\n if (writeDefaults && rawInit !== null)\n storage.setItem(key, serializer.write(rawInit));\n return rawInit;\n } else if (!event && mergeDefaults) {\n const value = serializer.read(rawValue);\n if (isFunction(mergeDefaults))\n return mergeDefaults(value, rawInit);\n else if (type === \"object\" && !Array.isArray(value))\n return __spreadValues$k(__spreadValues$k({}, rawInit), value);\n return value;\n } else if (typeof rawValue !== \"string\") {\n return rawValue;\n } else {\n return serializer.read(rawValue);\n }\n }\n function updateFromCustomEvent(event) {\n update(event.detail);\n }\n function update(event) {\n if (event && event.storageArea !== storage)\n return;\n if (event && event.key == null) {\n data.value = rawInit;\n return;\n }\n if (event && event.key !== key)\n return;\n pauseWatch();\n try {\n data.value = read(event);\n } catch (e) {\n onError(e);\n } finally {\n if (event)\n nextTick(resumeWatch);\n else\n resumeWatch();\n }\n }\n}\n\nfunction usePreferredDark(options) {\n return useMediaQuery(\"(prefers-color-scheme: dark)\", options);\n}\n\nvar __defProp$j = Object.defineProperty;\nvar __getOwnPropSymbols$l = Object.getOwnPropertySymbols;\nvar __hasOwnProp$l = Object.prototype.hasOwnProperty;\nvar __propIsEnum$l = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$j = (obj, key, value) => key in obj ? __defProp$j(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$j = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$l.call(b, prop))\n __defNormalProp$j(a, prop, b[prop]);\n if (__getOwnPropSymbols$l)\n for (var prop of __getOwnPropSymbols$l(b)) {\n if (__propIsEnum$l.call(b, prop))\n __defNormalProp$j(a, prop, b[prop]);\n }\n return a;\n};\nfunction useColorMode(options = {}) {\n const {\n selector = \"html\",\n attribute = \"class\",\n initialValue = \"auto\",\n window = defaultWindow,\n storage,\n storageKey = \"vueuse-color-scheme\",\n listenToStorageChanges = true,\n storageRef,\n emitAuto\n } = options;\n const modes = __spreadValues$j({\n auto: \"\",\n light: \"light\",\n dark: \"dark\"\n }, options.modes || {});\n const preferredDark = usePreferredDark({ window });\n const preferredMode = computed(() => preferredDark.value ? \"dark\" : \"light\");\n const store = storageRef || (storageKey == null ? ref(initialValue) : useStorage(storageKey, initialValue, storage, { window, listenToStorageChanges }));\n const state = computed({\n get() {\n return store.value === \"auto\" && !emitAuto ? preferredMode.value : store.value;\n },\n set(v) {\n store.value = v;\n }\n });\n const updateHTMLAttrs = getSSRHandler(\"updateHTMLAttrs\", (selector2, attribute2, value) => {\n const el = window == null ? void 0 : window.document.querySelector(selector2);\n if (!el)\n return;\n if (attribute2 === \"class\") {\n const current = value.split(/\\s/g);\n Object.values(modes).flatMap((i) => (i || \"\").split(/\\s/g)).filter(Boolean).forEach((v) => {\n if (current.includes(v))\n el.classList.add(v);\n else\n el.classList.remove(v);\n });\n } else {\n el.setAttribute(attribute2, value);\n }\n });\n function defaultOnChanged(mode) {\n var _a;\n const resolvedMode = mode === \"auto\" ? preferredMode.value : mode;\n updateHTMLAttrs(selector, attribute, (_a = modes[resolvedMode]) != null ? _a : resolvedMode);\n }\n function onChanged(mode) {\n if (options.onChanged)\n options.onChanged(mode, defaultOnChanged);\n else\n defaultOnChanged(mode);\n }\n watch(state, onChanged, { flush: \"post\", immediate: true });\n if (emitAuto)\n watch(preferredMode, () => onChanged(state.value), { flush: \"post\" });\n tryOnMounted(() => onChanged(state.value));\n return state;\n}\n\nfunction useConfirmDialog(revealed = ref(false)) {\n const confirmHook = createEventHook();\n const cancelHook = createEventHook();\n const revealHook = createEventHook();\n let _resolve = noop;\n const reveal = (data) => {\n revealHook.trigger(data);\n revealed.value = true;\n return new Promise((resolve) => {\n _resolve = resolve;\n });\n };\n const confirm = (data) => {\n revealed.value = false;\n confirmHook.trigger(data);\n _resolve({ data, isCanceled: false });\n };\n const cancel = (data) => {\n revealed.value = false;\n cancelHook.trigger(data);\n _resolve({ data, isCanceled: true });\n };\n return {\n isRevealed: computed(() => revealed.value),\n reveal,\n confirm,\n cancel,\n onReveal: revealHook.on,\n onConfirm: confirmHook.on,\n onCancel: cancelHook.on\n };\n}\n\nfunction useCssVar(prop, target, { window = defaultWindow, initialValue = \"\" } = {}) {\n const variable = ref(initialValue);\n const elRef = computed(() => {\n var _a;\n return unrefElement(target) || ((_a = window == null ? void 0 : window.document) == null ? void 0 : _a.documentElement);\n });\n watch([elRef, () => resolveUnref(prop)], ([el, prop2]) => {\n var _a;\n if (el && window) {\n const value = (_a = window.getComputedStyle(el).getPropertyValue(prop2)) == null ? void 0 : _a.trim();\n variable.value = value || initialValue;\n }\n }, { immediate: true });\n watch(variable, (val) => {\n var _a;\n if ((_a = elRef.value) == null ? void 0 : _a.style)\n elRef.value.style.setProperty(resolveUnref(prop), val);\n });\n return variable;\n}\n\nfunction useCurrentElement() {\n const vm = getCurrentInstance();\n const currentElement = computedWithControl(() => null, () => vm.proxy.$el);\n onUpdated(currentElement.trigger);\n onMounted(currentElement.trigger);\n return currentElement;\n}\n\nfunction useCycleList(list, options) {\n var _a;\n const state = shallowRef((_a = options == null ? void 0 : options.initialValue) != null ? _a : list[0]);\n const index = computed({\n get() {\n var _a2;\n let index2 = (options == null ? void 0 : options.getIndexOf) ? options.getIndexOf(state.value, list) : list.indexOf(state.value);\n if (index2 < 0)\n index2 = (_a2 = options == null ? void 0 : options.fallbackIndex) != null ? _a2 : 0;\n return index2;\n },\n set(v) {\n set(v);\n }\n });\n function set(i) {\n const length = list.length;\n const index2 = (i % length + length) % length;\n const value = list[index2];\n state.value = value;\n return value;\n }\n function shift(delta = 1) {\n return set(index.value + delta);\n }\n function next(n = 1) {\n return shift(n);\n }\n function prev(n = 1) {\n return shift(-n);\n }\n return {\n state,\n index,\n next,\n prev\n };\n}\n\nvar __defProp$i = Object.defineProperty;\nvar __defProps$7 = Object.defineProperties;\nvar __getOwnPropDescs$7 = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols$k = Object.getOwnPropertySymbols;\nvar __hasOwnProp$k = Object.prototype.hasOwnProperty;\nvar __propIsEnum$k = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$i = (obj, key, value) => key in obj ? __defProp$i(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$i = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$k.call(b, prop))\n __defNormalProp$i(a, prop, b[prop]);\n if (__getOwnPropSymbols$k)\n for (var prop of __getOwnPropSymbols$k(b)) {\n if (__propIsEnum$k.call(b, prop))\n __defNormalProp$i(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps$7 = (a, b) => __defProps$7(a, __getOwnPropDescs$7(b));\nfunction useDark(options = {}) {\n const {\n valueDark = \"dark\",\n valueLight = \"\",\n window = defaultWindow\n } = options;\n const mode = useColorMode(__spreadProps$7(__spreadValues$i({}, options), {\n onChanged: (mode2, defaultHandler) => {\n var _a;\n if (options.onChanged)\n (_a = options.onChanged) == null ? void 0 : _a.call(options, mode2 === \"dark\");\n else\n defaultHandler(mode2);\n },\n modes: {\n dark: valueDark,\n light: valueLight\n }\n }));\n const preferredDark = usePreferredDark({ window });\n const isDark = computed({\n get() {\n return mode.value === \"dark\";\n },\n set(v) {\n if (v === preferredDark.value)\n mode.value = \"auto\";\n else\n mode.value = v ? \"dark\" : \"light\";\n }\n });\n return isDark;\n}\n\nconst fnBypass = (v) => v;\nconst fnSetSource = (source, value) => source.value = value;\nfunction defaultDump(clone) {\n return clone ? isFunction(clone) ? clone : cloneFnJSON : fnBypass;\n}\nfunction defaultParse(clone) {\n return clone ? isFunction(clone) ? clone : cloneFnJSON : fnBypass;\n}\nfunction useManualRefHistory(source, options = {}) {\n const {\n clone = false,\n dump = defaultDump(clone),\n parse = defaultParse(clone),\n setSource = fnSetSource\n } = options;\n function _createHistoryRecord() {\n return markRaw({\n snapshot: dump(source.value),\n timestamp: timestamp()\n });\n }\n const last = ref(_createHistoryRecord());\n const undoStack = ref([]);\n const redoStack = ref([]);\n const _setSource = (record) => {\n setSource(source, parse(record.snapshot));\n last.value = record;\n };\n const commit = () => {\n undoStack.value.unshift(last.value);\n last.value = _createHistoryRecord();\n if (options.capacity && undoStack.value.length > options.capacity)\n undoStack.value.splice(options.capacity, Infinity);\n if (redoStack.value.length)\n redoStack.value.splice(0, redoStack.value.length);\n };\n const clear = () => {\n undoStack.value.splice(0, undoStack.value.length);\n redoStack.value.splice(0, redoStack.value.length);\n };\n const undo = () => {\n const state = undoStack.value.shift();\n if (state) {\n redoStack.value.unshift(last.value);\n _setSource(state);\n }\n };\n const redo = () => {\n const state = redoStack.value.shift();\n if (state) {\n undoStack.value.unshift(last.value);\n _setSource(state);\n }\n };\n const reset = () => {\n _setSource(last.value);\n };\n const history = computed(() => [last.value, ...undoStack.value]);\n const canUndo = computed(() => undoStack.value.length > 0);\n const canRedo = computed(() => redoStack.value.length > 0);\n return {\n source,\n undoStack,\n redoStack,\n last,\n history,\n canUndo,\n canRedo,\n clear,\n commit,\n reset,\n undo,\n redo\n };\n}\n\nvar __defProp$h = Object.defineProperty;\nvar __defProps$6 = Object.defineProperties;\nvar __getOwnPropDescs$6 = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols$j = Object.getOwnPropertySymbols;\nvar __hasOwnProp$j = Object.prototype.hasOwnProperty;\nvar __propIsEnum$j = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$h = (obj, key, value) => key in obj ? __defProp$h(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$h = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$j.call(b, prop))\n __defNormalProp$h(a, prop, b[prop]);\n if (__getOwnPropSymbols$j)\n for (var prop of __getOwnPropSymbols$j(b)) {\n if (__propIsEnum$j.call(b, prop))\n __defNormalProp$h(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps$6 = (a, b) => __defProps$6(a, __getOwnPropDescs$6(b));\nfunction useRefHistory(source, options = {}) {\n const {\n deep = false,\n flush = \"pre\",\n eventFilter\n } = options;\n const {\n eventFilter: composedFilter,\n pause,\n resume: resumeTracking,\n isActive: isTracking\n } = pausableFilter(eventFilter);\n const {\n ignoreUpdates,\n ignorePrevAsyncUpdates,\n stop\n } = watchIgnorable(source, commit, { deep, flush, eventFilter: composedFilter });\n function setSource(source2, value) {\n ignorePrevAsyncUpdates();\n ignoreUpdates(() => {\n source2.value = value;\n });\n }\n const manualHistory = useManualRefHistory(source, __spreadProps$6(__spreadValues$h({}, options), { clone: options.clone || deep, setSource }));\n const { clear, commit: manualCommit } = manualHistory;\n function commit() {\n ignorePrevAsyncUpdates();\n manualCommit();\n }\n function resume(commitNow) {\n resumeTracking();\n if (commitNow)\n commit();\n }\n function batch(fn) {\n let canceled = false;\n const cancel = () => canceled = true;\n ignoreUpdates(() => {\n fn(cancel);\n });\n if (!canceled)\n commit();\n }\n function dispose() {\n stop();\n clear();\n }\n return __spreadProps$6(__spreadValues$h({}, manualHistory), {\n isTracking,\n pause,\n resume,\n commit,\n batch,\n dispose\n });\n}\n\nvar __defProp$g = Object.defineProperty;\nvar __defProps$5 = Object.defineProperties;\nvar __getOwnPropDescs$5 = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols$i = Object.getOwnPropertySymbols;\nvar __hasOwnProp$i = Object.prototype.hasOwnProperty;\nvar __propIsEnum$i = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$g = (obj, key, value) => key in obj ? __defProp$g(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$g = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$i.call(b, prop))\n __defNormalProp$g(a, prop, b[prop]);\n if (__getOwnPropSymbols$i)\n for (var prop of __getOwnPropSymbols$i(b)) {\n if (__propIsEnum$i.call(b, prop))\n __defNormalProp$g(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps$5 = (a, b) => __defProps$5(a, __getOwnPropDescs$5(b));\nfunction useDebouncedRefHistory(source, options = {}) {\n const filter = options.debounce ? debounceFilter(options.debounce) : void 0;\n const history = useRefHistory(source, __spreadProps$5(__spreadValues$g({}, options), { eventFilter: filter }));\n return __spreadValues$g({}, history);\n}\n\nfunction useDeviceMotion(options = {}) {\n const {\n window = defaultWindow,\n eventFilter = bypassFilter\n } = options;\n const acceleration = ref({ x: null, y: null, z: null });\n const rotationRate = ref({ alpha: null, beta: null, gamma: null });\n const interval = ref(0);\n const accelerationIncludingGravity = ref({\n x: null,\n y: null,\n z: null\n });\n if (window) {\n const onDeviceMotion = createFilterWrapper(eventFilter, (event) => {\n acceleration.value = event.acceleration;\n accelerationIncludingGravity.value = event.accelerationIncludingGravity;\n rotationRate.value = event.rotationRate;\n interval.value = event.interval;\n });\n useEventListener(window, \"devicemotion\", onDeviceMotion);\n }\n return {\n acceleration,\n accelerationIncludingGravity,\n rotationRate,\n interval\n };\n}\n\nfunction useDeviceOrientation(options = {}) {\n const { window = defaultWindow } = options;\n const isSupported = useSupported(() => window && \"DeviceOrientationEvent\" in window);\n const isAbsolute = ref(false);\n const alpha = ref(null);\n const beta = ref(null);\n const gamma = ref(null);\n if (window && isSupported.value) {\n useEventListener(window, \"deviceorientation\", (event) => {\n isAbsolute.value = event.absolute;\n alpha.value = event.alpha;\n beta.value = event.beta;\n gamma.value = event.gamma;\n });\n }\n return {\n isSupported,\n isAbsolute,\n alpha,\n beta,\n gamma\n };\n}\n\nfunction useDevicePixelRatio({\n window = defaultWindow\n} = {}) {\n const pixelRatio = ref(1);\n if (window) {\n let observe = function() {\n pixelRatio.value = window.devicePixelRatio;\n cleanup();\n media = window.matchMedia(`(resolution: ${pixelRatio.value}dppx)`);\n media.addEventListener(\"change\", observe, { once: true });\n }, cleanup = function() {\n media == null ? void 0 : media.removeEventListener(\"change\", observe);\n };\n let media;\n observe();\n tryOnScopeDispose(cleanup);\n }\n return { pixelRatio };\n}\n\nfunction usePermission(permissionDesc, options = {}) {\n const {\n controls = false,\n navigator = defaultNavigator\n } = options;\n const isSupported = useSupported(() => navigator && \"permissions\" in navigator);\n let permissionStatus;\n const desc = typeof permissionDesc === \"string\" ? { name: permissionDesc } : permissionDesc;\n const state = ref();\n const onChange = () => {\n if (permissionStatus)\n state.value = permissionStatus.state;\n };\n const query = createSingletonPromise(async () => {\n if (!isSupported.value)\n return;\n if (!permissionStatus) {\n try {\n permissionStatus = await navigator.permissions.query(desc);\n useEventListener(permissionStatus, \"change\", onChange);\n onChange();\n } catch (e) {\n state.value = \"prompt\";\n }\n }\n return permissionStatus;\n });\n query();\n if (controls) {\n return {\n state,\n isSupported,\n query\n };\n } else {\n return state;\n }\n}\n\nfunction useDevicesList(options = {}) {\n const {\n navigator = defaultNavigator,\n requestPermissions = false,\n constraints = { audio: true, video: true },\n onUpdated\n } = options;\n const devices = ref([]);\n const videoInputs = computed(() => devices.value.filter((i) => i.kind === \"videoinput\"));\n const audioInputs = computed(() => devices.value.filter((i) => i.kind === \"audioinput\"));\n const audioOutputs = computed(() => devices.value.filter((i) => i.kind === \"audiooutput\"));\n const isSupported = useSupported(() => navigator && navigator.mediaDevices && navigator.mediaDevices.enumerateDevices);\n const permissionGranted = ref(false);\n async function update() {\n if (!isSupported.value)\n return;\n devices.value = await navigator.mediaDevices.enumerateDevices();\n onUpdated == null ? void 0 : onUpdated(devices.value);\n }\n async function ensurePermissions() {\n if (!isSupported.value)\n return false;\n if (permissionGranted.value)\n return true;\n const { state, query } = usePermission(\"camera\", { controls: true });\n await query();\n if (state.value !== \"granted\") {\n const stream = await navigator.mediaDevices.getUserMedia(constraints);\n stream.getTracks().forEach((t) => t.stop());\n update();\n permissionGranted.value = true;\n } else {\n permissionGranted.value = true;\n }\n return permissionGranted.value;\n }\n if (isSupported.value) {\n if (requestPermissions)\n ensurePermissions();\n useEventListener(navigator.mediaDevices, \"devicechange\", update);\n update();\n }\n return {\n devices,\n ensurePermissions,\n permissionGranted,\n videoInputs,\n audioInputs,\n audioOutputs,\n isSupported\n };\n}\n\nfunction useDisplayMedia(options = {}) {\n var _a;\n const enabled = ref((_a = options.enabled) != null ? _a : false);\n const video = options.video;\n const audio = options.audio;\n const { navigator = defaultNavigator } = options;\n const isSupported = useSupported(() => {\n var _a2;\n return (_a2 = navigator == null ? void 0 : navigator.mediaDevices) == null ? void 0 : _a2.getDisplayMedia;\n });\n const constraint = { audio, video };\n const stream = shallowRef();\n async function _start() {\n if (!isSupported.value || stream.value)\n return;\n stream.value = await navigator.mediaDevices.getDisplayMedia(constraint);\n return stream.value;\n }\n async function _stop() {\n var _a2;\n (_a2 = stream.value) == null ? void 0 : _a2.getTracks().forEach((t) => t.stop());\n stream.value = void 0;\n }\n function stop() {\n _stop();\n enabled.value = false;\n }\n async function start() {\n await _start();\n if (stream.value)\n enabled.value = true;\n return stream.value;\n }\n watch(enabled, (v) => {\n if (v)\n _start();\n else\n _stop();\n }, { immediate: true });\n return {\n isSupported,\n stream,\n start,\n stop,\n enabled\n };\n}\n\nfunction useDocumentVisibility({ document = defaultDocument } = {}) {\n if (!document)\n return ref(\"visible\");\n const visibility = ref(document.visibilityState);\n useEventListener(document, \"visibilitychange\", () => {\n visibility.value = document.visibilityState;\n });\n return visibility;\n}\n\nvar __defProp$f = Object.defineProperty;\nvar __defProps$4 = Object.defineProperties;\nvar __getOwnPropDescs$4 = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols$h = Object.getOwnPropertySymbols;\nvar __hasOwnProp$h = Object.prototype.hasOwnProperty;\nvar __propIsEnum$h = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$f = (obj, key, value) => key in obj ? __defProp$f(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$f = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$h.call(b, prop))\n __defNormalProp$f(a, prop, b[prop]);\n if (__getOwnPropSymbols$h)\n for (var prop of __getOwnPropSymbols$h(b)) {\n if (__propIsEnum$h.call(b, prop))\n __defNormalProp$f(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps$4 = (a, b) => __defProps$4(a, __getOwnPropDescs$4(b));\nfunction useDraggable(target, options = {}) {\n var _a, _b, _c;\n const draggingElement = (_a = options.draggingElement) != null ? _a : defaultWindow;\n const draggingHandle = (_b = options.handle) != null ? _b : target;\n const position = ref((_c = resolveUnref(options.initialValue)) != null ? _c : { x: 0, y: 0 });\n const pressedDelta = ref();\n const filterEvent = (e) => {\n if (options.pointerTypes)\n return options.pointerTypes.includes(e.pointerType);\n return true;\n };\n const handleEvent = (e) => {\n if (resolveUnref(options.preventDefault))\n e.preventDefault();\n if (resolveUnref(options.stopPropagation))\n e.stopPropagation();\n };\n const start = (e) => {\n var _a2;\n if (!filterEvent(e))\n return;\n if (resolveUnref(options.exact) && e.target !== resolveUnref(target))\n return;\n const rect = resolveUnref(target).getBoundingClientRect();\n const pos = {\n x: e.clientX - rect.left,\n y: e.clientY - rect.top\n };\n if (((_a2 = options.onStart) == null ? void 0 : _a2.call(options, pos, e)) === false)\n return;\n pressedDelta.value = pos;\n handleEvent(e);\n };\n const move = (e) => {\n var _a2;\n if (!filterEvent(e))\n return;\n if (!pressedDelta.value)\n return;\n position.value = {\n x: e.clientX - pressedDelta.value.x,\n y: e.clientY - pressedDelta.value.y\n };\n (_a2 = options.onMove) == null ? void 0 : _a2.call(options, position.value, e);\n handleEvent(e);\n };\n const end = (e) => {\n var _a2;\n if (!filterEvent(e))\n return;\n if (!pressedDelta.value)\n return;\n pressedDelta.value = void 0;\n (_a2 = options.onEnd) == null ? void 0 : _a2.call(options, position.value, e);\n handleEvent(e);\n };\n if (isClient) {\n useEventListener(draggingHandle, \"pointerdown\", start, true);\n useEventListener(draggingElement, \"pointermove\", move, true);\n useEventListener(draggingElement, \"pointerup\", end, true);\n }\n return __spreadProps$4(__spreadValues$f({}, toRefs(position)), {\n position,\n isDragging: computed(() => !!pressedDelta.value),\n style: computed(() => `left:${position.value.x}px;top:${position.value.y}px;`)\n });\n}\n\nfunction useDropZone(target, onDrop) {\n const isOverDropZone = ref(false);\n let counter = 0;\n if (isClient) {\n useEventListener(target, \"dragenter\", (event) => {\n event.preventDefault();\n counter += 1;\n isOverDropZone.value = true;\n });\n useEventListener(target, \"dragover\", (event) => {\n event.preventDefault();\n });\n useEventListener(target, \"dragleave\", (event) => {\n event.preventDefault();\n counter -= 1;\n if (counter === 0)\n isOverDropZone.value = false;\n });\n useEventListener(target, \"drop\", (event) => {\n var _a, _b;\n event.preventDefault();\n counter = 0;\n isOverDropZone.value = false;\n const files = Array.from((_b = (_a = event.dataTransfer) == null ? void 0 : _a.files) != null ? _b : []);\n onDrop == null ? void 0 : onDrop(files.length === 0 ? null : files);\n });\n }\n return {\n isOverDropZone\n };\n}\n\nvar __getOwnPropSymbols$g = Object.getOwnPropertySymbols;\nvar __hasOwnProp$g = Object.prototype.hasOwnProperty;\nvar __propIsEnum$g = Object.prototype.propertyIsEnumerable;\nvar __objRest$2 = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp$g.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols$g)\n for (var prop of __getOwnPropSymbols$g(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum$g.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\nfunction useResizeObserver(target, callback, options = {}) {\n const _a = options, { window = defaultWindow } = _a, observerOptions = __objRest$2(_a, [\"window\"]);\n let observer;\n const isSupported = useSupported(() => window && \"ResizeObserver\" in window);\n const cleanup = () => {\n if (observer) {\n observer.disconnect();\n observer = void 0;\n }\n };\n const stopWatch = watch(() => unrefElement(target), (el) => {\n cleanup();\n if (isSupported.value && window && el) {\n observer = new ResizeObserver(callback);\n observer.observe(el, observerOptions);\n }\n }, { immediate: true, flush: \"post\" });\n const stop = () => {\n cleanup();\n stopWatch();\n };\n tryOnScopeDispose(stop);\n return {\n isSupported,\n stop\n };\n}\n\nfunction useElementBounding(target, options = {}) {\n const {\n reset = true,\n windowResize = true,\n windowScroll = true,\n immediate = true\n } = options;\n const height = ref(0);\n const bottom = ref(0);\n const left = ref(0);\n const right = ref(0);\n const top = ref(0);\n const width = ref(0);\n const x = ref(0);\n const y = ref(0);\n function update() {\n const el = unrefElement(target);\n if (!el) {\n if (reset) {\n height.value = 0;\n bottom.value = 0;\n left.value = 0;\n right.value = 0;\n top.value = 0;\n width.value = 0;\n x.value = 0;\n y.value = 0;\n }\n return;\n }\n const rect = el.getBoundingClientRect();\n height.value = rect.height;\n bottom.value = rect.bottom;\n left.value = rect.left;\n right.value = rect.right;\n top.value = rect.top;\n width.value = rect.width;\n x.value = rect.x;\n y.value = rect.y;\n }\n useResizeObserver(target, update);\n watch(() => unrefElement(target), (ele) => !ele && update());\n if (windowScroll)\n useEventListener(\"scroll\", update, { capture: true, passive: true });\n if (windowResize)\n useEventListener(\"resize\", update, { passive: true });\n tryOnMounted(() => {\n if (immediate)\n update();\n });\n return {\n height,\n bottom,\n left,\n right,\n top,\n width,\n x,\n y,\n update\n };\n}\n\nfunction useRafFn(fn, options = {}) {\n const {\n immediate = true,\n window = defaultWindow\n } = options;\n const isActive = ref(false);\n let previousFrameTimestamp = 0;\n let rafId = null;\n function loop(timestamp) {\n if (!isActive.value || !window)\n return;\n const delta = timestamp - previousFrameTimestamp;\n fn({ delta, timestamp });\n previousFrameTimestamp = timestamp;\n rafId = window.requestAnimationFrame(loop);\n }\n function resume() {\n if (!isActive.value && window) {\n isActive.value = true;\n rafId = window.requestAnimationFrame(loop);\n }\n }\n function pause() {\n isActive.value = false;\n if (rafId != null && window) {\n window.cancelAnimationFrame(rafId);\n rafId = null;\n }\n }\n if (immediate)\n resume();\n tryOnScopeDispose(pause);\n return {\n isActive: readonly(isActive),\n pause,\n resume\n };\n}\n\nvar __defProp$e = Object.defineProperty;\nvar __getOwnPropSymbols$f = Object.getOwnPropertySymbols;\nvar __hasOwnProp$f = Object.prototype.hasOwnProperty;\nvar __propIsEnum$f = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$e = (obj, key, value) => key in obj ? __defProp$e(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$e = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$f.call(b, prop))\n __defNormalProp$e(a, prop, b[prop]);\n if (__getOwnPropSymbols$f)\n for (var prop of __getOwnPropSymbols$f(b)) {\n if (__propIsEnum$f.call(b, prop))\n __defNormalProp$e(a, prop, b[prop]);\n }\n return a;\n};\nfunction useElementByPoint(options) {\n const element = ref(null);\n const { x, y, document = defaultDocument } = options;\n const controls = useRafFn(() => {\n element.value = (document == null ? void 0 : document.elementFromPoint(resolveUnref(x), resolveUnref(y))) || null;\n });\n return __spreadValues$e({\n element\n }, controls);\n}\n\nfunction useElementHover(el, options = {}) {\n const delayEnter = options ? options.delayEnter : 0;\n const delayLeave = options ? options.delayLeave : 0;\n const isHovered = ref(false);\n let timer;\n const toggle = (entering) => {\n const delay = entering ? delayEnter : delayLeave;\n if (timer) {\n clearTimeout(timer);\n timer = void 0;\n }\n if (delay)\n timer = setTimeout(() => isHovered.value = entering, delay);\n else\n isHovered.value = entering;\n };\n if (!window)\n return isHovered;\n useEventListener(el, \"mouseenter\", () => toggle(true), { passive: true });\n useEventListener(el, \"mouseleave\", () => toggle(false), { passive: true });\n return isHovered;\n}\n\nfunction useElementSize(target, initialSize = { width: 0, height: 0 }, options = {}) {\n const { window = defaultWindow, box = \"content-box\" } = options;\n const isSVG = computed(() => {\n var _a, _b;\n return (_b = (_a = unrefElement(target)) == null ? void 0 : _a.namespaceURI) == null ? void 0 : _b.includes(\"svg\");\n });\n const width = ref(initialSize.width);\n const height = ref(initialSize.height);\n useResizeObserver(target, ([entry]) => {\n const boxSize = box === \"border-box\" ? entry.borderBoxSize : box === \"content-box\" ? entry.contentBoxSize : entry.devicePixelContentBoxSize;\n if (window && isSVG.value) {\n const $elem = unrefElement(target);\n if ($elem) {\n const styles = window.getComputedStyle($elem);\n width.value = parseFloat(styles.width);\n height.value = parseFloat(styles.height);\n }\n } else {\n if (boxSize) {\n const formatBoxSize = Array.isArray(boxSize) ? boxSize : [boxSize];\n width.value = formatBoxSize.reduce((acc, { inlineSize }) => acc + inlineSize, 0);\n height.value = formatBoxSize.reduce((acc, { blockSize }) => acc + blockSize, 0);\n } else {\n width.value = entry.contentRect.width;\n height.value = entry.contentRect.height;\n }\n }\n }, options);\n watch(() => unrefElement(target), (ele) => {\n width.value = ele ? initialSize.width : 0;\n height.value = ele ? initialSize.height : 0;\n });\n return {\n width,\n height\n };\n}\n\nfunction useElementVisibility(element, { window = defaultWindow, scrollTarget } = {}) {\n const elementIsVisible = ref(false);\n const testBounding = () => {\n if (!window)\n return;\n const document = window.document;\n const el = unrefElement(element);\n if (!el) {\n elementIsVisible.value = false;\n } else {\n const rect = el.getBoundingClientRect();\n elementIsVisible.value = rect.top <= (window.innerHeight || document.documentElement.clientHeight) && rect.left <= (window.innerWidth || document.documentElement.clientWidth) && rect.bottom >= 0 && rect.right >= 0;\n }\n };\n watch(() => unrefElement(element), () => testBounding(), { immediate: true, flush: \"post\" });\n if (window) {\n useEventListener(scrollTarget || window, \"scroll\", testBounding, {\n capture: false,\n passive: true\n });\n }\n return elementIsVisible;\n}\n\nconst events = new Map();\n\nfunction useEventBus(key) {\n const scope = getCurrentScope();\n function on(listener) {\n var _a;\n const listeners = events.get(key) || [];\n listeners.push(listener);\n events.set(key, listeners);\n const _off = () => off(listener);\n (_a = scope == null ? void 0 : scope.cleanups) == null ? void 0 : _a.push(_off);\n return _off;\n }\n function once(listener) {\n function _listener(...args) {\n off(_listener);\n listener(...args);\n }\n return on(_listener);\n }\n function off(listener) {\n const listeners = events.get(key);\n if (!listeners)\n return;\n const index = listeners.indexOf(listener);\n if (index > -1)\n listeners.splice(index, 1);\n if (!listeners.length)\n events.delete(key);\n }\n function reset() {\n events.delete(key);\n }\n function emit(event, payload) {\n var _a;\n (_a = events.get(key)) == null ? void 0 : _a.forEach((v) => v(event, payload));\n }\n return { on, once, off, emit, reset };\n}\n\nfunction useEventSource(url, events = [], options = {}) {\n const event = ref(null);\n const data = ref(null);\n const status = ref(\"CONNECTING\");\n const eventSource = ref(null);\n const error = ref(null);\n const {\n withCredentials = false\n } = options;\n const close = () => {\n if (eventSource.value) {\n eventSource.value.close();\n eventSource.value = null;\n status.value = \"CLOSED\";\n }\n };\n const es = new EventSource(url, { withCredentials });\n eventSource.value = es;\n es.onopen = () => {\n status.value = \"OPEN\";\n error.value = null;\n };\n es.onerror = (e) => {\n status.value = \"CLOSED\";\n error.value = e;\n };\n es.onmessage = (e) => {\n event.value = null;\n data.value = e.data;\n };\n for (const event_name of events) {\n useEventListener(es, event_name, (e) => {\n event.value = event_name;\n data.value = e.data || null;\n });\n }\n tryOnScopeDispose(() => {\n close();\n });\n return {\n eventSource,\n event,\n data,\n status,\n error,\n close\n };\n}\n\nfunction useEyeDropper(options = {}) {\n const { initialValue = \"\" } = options;\n const isSupported = useSupported(() => typeof window !== \"undefined\" && \"EyeDropper\" in window);\n const sRGBHex = ref(initialValue);\n async function open(openOptions) {\n if (!isSupported.value)\n return;\n const eyeDropper = new window.EyeDropper();\n const result = await eyeDropper.open(openOptions);\n sRGBHex.value = result.sRGBHex;\n return result;\n }\n return { isSupported, sRGBHex, open };\n}\n\nfunction useFavicon(newIcon = null, options = {}) {\n const {\n baseUrl = \"\",\n rel = \"icon\",\n document = defaultDocument\n } = options;\n const favicon = resolveRef(newIcon);\n const applyIcon = (icon) => {\n document == null ? void 0 : document.head.querySelectorAll(`link[rel*=\"${rel}\"]`).forEach((el) => el.href = `${baseUrl}${icon}`);\n };\n watch(favicon, (i, o) => {\n if (isString(i) && i !== o)\n applyIcon(i);\n }, { immediate: true });\n return favicon;\n}\n\nvar __defProp$d = Object.defineProperty;\nvar __defProps$3 = Object.defineProperties;\nvar __getOwnPropDescs$3 = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols$e = Object.getOwnPropertySymbols;\nvar __hasOwnProp$e = Object.prototype.hasOwnProperty;\nvar __propIsEnum$e = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$d = (obj, key, value) => key in obj ? __defProp$d(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$d = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$e.call(b, prop))\n __defNormalProp$d(a, prop, b[prop]);\n if (__getOwnPropSymbols$e)\n for (var prop of __getOwnPropSymbols$e(b)) {\n if (__propIsEnum$e.call(b, prop))\n __defNormalProp$d(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps$3 = (a, b) => __defProps$3(a, __getOwnPropDescs$3(b));\nconst payloadMapping = {\n json: \"application/json\",\n text: \"text/plain\"\n};\nfunction isFetchOptions(obj) {\n return obj && containsProp(obj, \"immediate\", \"refetch\", \"initialData\", \"timeout\", \"beforeFetch\", \"afterFetch\", \"onFetchError\", \"fetch\");\n}\nfunction isAbsoluteURL(url) {\n return /^([a-z][a-z\\d+\\-.]*:)?\\/\\//i.test(url);\n}\nfunction headersToObject(headers) {\n if (typeof Headers !== \"undefined\" && headers instanceof Headers)\n return Object.fromEntries([...headers.entries()]);\n return headers;\n}\nfunction combineCallbacks(combination, ...callbacks) {\n if (combination === \"overwrite\") {\n return async (ctx) => {\n const callback = callbacks[callbacks.length - 1];\n if (callback !== void 0)\n await callback(ctx);\n return ctx;\n };\n } else {\n return async (ctx) => {\n await callbacks.reduce((prevCallback, callback) => prevCallback.then(async () => {\n if (callback)\n ctx = __spreadValues$d(__spreadValues$d({}, ctx), await callback(ctx));\n }), Promise.resolve());\n return ctx;\n };\n }\n}\nfunction createFetch(config = {}) {\n const _combination = config.combination || \"chain\";\n const _options = config.options || {};\n const _fetchOptions = config.fetchOptions || {};\n function useFactoryFetch(url, ...args) {\n const computedUrl = computed(() => {\n const baseUrl = resolveUnref(config.baseUrl);\n const targetUrl = resolveUnref(url);\n return baseUrl && !isAbsoluteURL(targetUrl) ? joinPaths(baseUrl, targetUrl) : targetUrl;\n });\n let options = _options;\n let fetchOptions = _fetchOptions;\n if (args.length > 0) {\n if (isFetchOptions(args[0])) {\n options = __spreadProps$3(__spreadValues$d(__spreadValues$d({}, options), args[0]), {\n beforeFetch: combineCallbacks(_combination, _options.beforeFetch, args[0].beforeFetch),\n afterFetch: combineCallbacks(_combination, _options.afterFetch, args[0].afterFetch),\n onFetchError: combineCallbacks(_combination, _options.onFetchError, args[0].onFetchError)\n });\n } else {\n fetchOptions = __spreadProps$3(__spreadValues$d(__spreadValues$d({}, fetchOptions), args[0]), {\n headers: __spreadValues$d(__spreadValues$d({}, headersToObject(fetchOptions.headers) || {}), headersToObject(args[0].headers) || {})\n });\n }\n }\n if (args.length > 1 && isFetchOptions(args[1])) {\n options = __spreadProps$3(__spreadValues$d(__spreadValues$d({}, options), args[1]), {\n beforeFetch: combineCallbacks(_combination, _options.beforeFetch, args[1].beforeFetch),\n afterFetch: combineCallbacks(_combination, _options.afterFetch, args[1].afterFetch),\n onFetchError: combineCallbacks(_combination, _options.onFetchError, args[1].onFetchError)\n });\n }\n return useFetch(computedUrl, fetchOptions, options);\n }\n return useFactoryFetch;\n}\nfunction useFetch(url, ...args) {\n var _a;\n const supportsAbort = typeof AbortController === \"function\";\n let fetchOptions = {};\n let options = { immediate: true, refetch: false, timeout: 0 };\n const config = {\n method: \"GET\",\n type: \"text\",\n payload: void 0\n };\n if (args.length > 0) {\n if (isFetchOptions(args[0]))\n options = __spreadValues$d(__spreadValues$d({}, options), args[0]);\n else\n fetchOptions = args[0];\n }\n if (args.length > 1) {\n if (isFetchOptions(args[1]))\n options = __spreadValues$d(__spreadValues$d({}, options), args[1]);\n }\n const {\n fetch = (_a = defaultWindow) == null ? void 0 : _a.fetch,\n initialData,\n timeout\n } = options;\n const responseEvent = createEventHook();\n const errorEvent = createEventHook();\n const finallyEvent = createEventHook();\n const isFinished = ref(false);\n const isFetching = ref(false);\n const aborted = ref(false);\n const statusCode = ref(null);\n const response = shallowRef(null);\n const error = shallowRef(null);\n const data = shallowRef(initialData);\n const canAbort = computed(() => supportsAbort && isFetching.value);\n let controller;\n let timer;\n const abort = () => {\n if (supportsAbort && controller) {\n controller.abort();\n controller = void 0;\n }\n };\n const loading = (isLoading) => {\n isFetching.value = isLoading;\n isFinished.value = !isLoading;\n };\n if (timeout)\n timer = useTimeoutFn(abort, timeout, { immediate: false });\n const execute = async (throwOnFailed = false) => {\n var _a2;\n loading(true);\n error.value = null;\n statusCode.value = null;\n aborted.value = false;\n if (supportsAbort) {\n abort();\n controller = new AbortController();\n controller.signal.onabort = () => aborted.value = true;\n fetchOptions = __spreadProps$3(__spreadValues$d({}, fetchOptions), {\n signal: controller.signal\n });\n }\n const defaultFetchOptions = {\n method: config.method,\n headers: {}\n };\n if (config.payload) {\n const headers = headersToObject(defaultFetchOptions.headers);\n if (config.payloadType)\n headers[\"Content-Type\"] = (_a2 = payloadMapping[config.payloadType]) != null ? _a2 : config.payloadType;\n const payload = resolveUnref(config.payload);\n defaultFetchOptions.body = config.payloadType === \"json\" ? JSON.stringify(payload) : payload;\n }\n let isCanceled = false;\n const context = {\n url: resolveUnref(url),\n options: __spreadValues$d(__spreadValues$d({}, defaultFetchOptions), fetchOptions),\n cancel: () => {\n isCanceled = true;\n }\n };\n if (options.beforeFetch)\n Object.assign(context, await options.beforeFetch(context));\n if (isCanceled || !fetch) {\n loading(false);\n return Promise.resolve(null);\n }\n let responseData = null;\n if (timer)\n timer.start();\n return new Promise((resolve, reject) => {\n var _a3;\n fetch(context.url, __spreadProps$3(__spreadValues$d(__spreadValues$d({}, defaultFetchOptions), context.options), {\n headers: __spreadValues$d(__spreadValues$d({}, headersToObject(defaultFetchOptions.headers)), headersToObject((_a3 = context.options) == null ? void 0 : _a3.headers))\n })).then(async (fetchResponse) => {\n response.value = fetchResponse;\n statusCode.value = fetchResponse.status;\n responseData = await fetchResponse[config.type]();\n if (options.afterFetch && statusCode.value >= 200 && statusCode.value < 300)\n ({ data: responseData } = await options.afterFetch({ data: responseData, response: fetchResponse }));\n data.value = responseData;\n if (!fetchResponse.ok)\n throw new Error(fetchResponse.statusText);\n responseEvent.trigger(fetchResponse);\n return resolve(fetchResponse);\n }).catch(async (fetchError) => {\n let errorData = fetchError.message || fetchError.name;\n if (options.onFetchError)\n ({ data: responseData, error: errorData } = await options.onFetchError({ data: responseData, error: fetchError, response: response.value }));\n data.value = responseData;\n error.value = errorData;\n errorEvent.trigger(fetchError);\n if (throwOnFailed)\n return reject(fetchError);\n return resolve(null);\n }).finally(() => {\n loading(false);\n if (timer)\n timer.stop();\n finallyEvent.trigger(null);\n });\n });\n };\n const refetch = resolveRef(options.refetch);\n watch([\n refetch,\n resolveRef(url)\n ], ([refetch2]) => refetch2 && execute(), { deep: true });\n const shell = {\n isFinished,\n statusCode,\n response,\n error,\n data,\n isFetching,\n canAbort,\n aborted,\n abort,\n execute,\n onFetchResponse: responseEvent.on,\n onFetchError: errorEvent.on,\n onFetchFinally: finallyEvent.on,\n get: setMethod(\"GET\"),\n put: setMethod(\"PUT\"),\n post: setMethod(\"POST\"),\n delete: setMethod(\"DELETE\"),\n patch: setMethod(\"PATCH\"),\n head: setMethod(\"HEAD\"),\n options: setMethod(\"OPTIONS\"),\n json: setType(\"json\"),\n text: setType(\"text\"),\n blob: setType(\"blob\"),\n arrayBuffer: setType(\"arrayBuffer\"),\n formData: setType(\"formData\")\n };\n function setMethod(method) {\n return (payload, payloadType) => {\n if (!isFetching.value) {\n config.method = method;\n config.payload = payload;\n config.payloadType = payloadType;\n if (isRef(config.payload)) {\n watch([\n refetch,\n resolveRef(config.payload)\n ], ([refetch2]) => refetch2 && execute(), { deep: true });\n }\n const rawPayload = resolveUnref(config.payload);\n if (!payloadType && rawPayload && Object.getPrototypeOf(rawPayload) === Object.prototype && !(rawPayload instanceof FormData))\n config.payloadType = \"json\";\n return __spreadProps$3(__spreadValues$d({}, shell), {\n then(onFulfilled, onRejected) {\n return waitUntilFinished().then(onFulfilled, onRejected);\n }\n });\n }\n return void 0;\n };\n }\n function waitUntilFinished() {\n return new Promise((resolve, reject) => {\n until(isFinished).toBe(true).then(() => resolve(shell)).catch((error2) => reject(error2));\n });\n }\n function setType(type) {\n return () => {\n if (!isFetching.value) {\n config.type = type;\n return __spreadProps$3(__spreadValues$d({}, shell), {\n then(onFulfilled, onRejected) {\n return waitUntilFinished().then(onFulfilled, onRejected);\n }\n });\n }\n return void 0;\n };\n }\n if (options.immediate)\n setTimeout(execute, 0);\n return __spreadProps$3(__spreadValues$d({}, shell), {\n then(onFulfilled, onRejected) {\n return waitUntilFinished().then(onFulfilled, onRejected);\n }\n });\n}\nfunction joinPaths(start, end) {\n if (!start.endsWith(\"/\") && !end.startsWith(\"/\"))\n return `${start}/${end}`;\n return `${start}${end}`;\n}\n\nvar __defProp$c = Object.defineProperty;\nvar __getOwnPropSymbols$d = Object.getOwnPropertySymbols;\nvar __hasOwnProp$d = Object.prototype.hasOwnProperty;\nvar __propIsEnum$d = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$c = (obj, key, value) => key in obj ? __defProp$c(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$c = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$d.call(b, prop))\n __defNormalProp$c(a, prop, b[prop]);\n if (__getOwnPropSymbols$d)\n for (var prop of __getOwnPropSymbols$d(b)) {\n if (__propIsEnum$d.call(b, prop))\n __defNormalProp$c(a, prop, b[prop]);\n }\n return a;\n};\nconst DEFAULT_OPTIONS = {\n multiple: true,\n accept: \"*\"\n};\nfunction useFileDialog(options = {}) {\n const {\n document = defaultDocument\n } = options;\n const files = ref(null);\n let input;\n if (document) {\n input = document.createElement(\"input\");\n input.type = \"file\";\n input.onchange = (event) => {\n const result = event.target;\n files.value = result.files;\n };\n }\n const open = (localOptions) => {\n if (!input)\n return;\n const _options = __spreadValues$c(__spreadValues$c(__spreadValues$c({}, DEFAULT_OPTIONS), options), localOptions);\n input.multiple = _options.multiple;\n input.accept = _options.accept;\n if (hasOwn(_options, \"capture\"))\n input.capture = _options.capture;\n input.click();\n };\n const reset = () => {\n files.value = null;\n if (input)\n input.value = \"\";\n };\n return {\n files: readonly(files),\n open,\n reset\n };\n}\n\nvar __defProp$b = Object.defineProperty;\nvar __getOwnPropSymbols$c = Object.getOwnPropertySymbols;\nvar __hasOwnProp$c = Object.prototype.hasOwnProperty;\nvar __propIsEnum$c = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$b = (obj, key, value) => key in obj ? __defProp$b(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$b = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$c.call(b, prop))\n __defNormalProp$b(a, prop, b[prop]);\n if (__getOwnPropSymbols$c)\n for (var prop of __getOwnPropSymbols$c(b)) {\n if (__propIsEnum$c.call(b, prop))\n __defNormalProp$b(a, prop, b[prop]);\n }\n return a;\n};\nfunction useFileSystemAccess(options = {}) {\n const {\n window: _window = defaultWindow,\n dataType = \"Text\"\n } = unref(options);\n const window = _window;\n const isSupported = useSupported(() => window && \"showSaveFilePicker\" in window && \"showOpenFilePicker\" in window);\n const fileHandle = ref();\n const data = ref();\n const file = ref();\n const fileName = computed(() => {\n var _a, _b;\n return (_b = (_a = file.value) == null ? void 0 : _a.name) != null ? _b : \"\";\n });\n const fileMIME = computed(() => {\n var _a, _b;\n return (_b = (_a = file.value) == null ? void 0 : _a.type) != null ? _b : \"\";\n });\n const fileSize = computed(() => {\n var _a, _b;\n return (_b = (_a = file.value) == null ? void 0 : _a.size) != null ? _b : 0;\n });\n const fileLastModified = computed(() => {\n var _a, _b;\n return (_b = (_a = file.value) == null ? void 0 : _a.lastModified) != null ? _b : 0;\n });\n async function open(_options = {}) {\n if (!isSupported.value)\n return;\n const [handle] = await window.showOpenFilePicker(__spreadValues$b(__spreadValues$b({}, unref(options)), _options));\n fileHandle.value = handle;\n await updateFile();\n await updateData();\n }\n async function create(_options = {}) {\n if (!isSupported.value)\n return;\n fileHandle.value = await window.showSaveFilePicker(__spreadValues$b(__spreadValues$b({}, unref(options)), _options));\n data.value = void 0;\n await updateFile();\n await updateData();\n }\n async function save(_options = {}) {\n if (!isSupported.value)\n return;\n if (!fileHandle.value)\n return saveAs(_options);\n if (data.value) {\n const writableStream = await fileHandle.value.createWritable();\n await writableStream.write(data.value);\n await writableStream.close();\n }\n await updateFile();\n }\n async function saveAs(_options = {}) {\n if (!isSupported.value)\n return;\n fileHandle.value = await window.showSaveFilePicker(__spreadValues$b(__spreadValues$b({}, unref(options)), _options));\n if (data.value) {\n const writableStream = await fileHandle.value.createWritable();\n await writableStream.write(data.value);\n await writableStream.close();\n }\n await updateFile();\n }\n async function updateFile() {\n var _a;\n file.value = await ((_a = fileHandle.value) == null ? void 0 : _a.getFile());\n }\n async function updateData() {\n var _a, _b;\n if (unref(dataType) === \"Text\")\n data.value = await ((_a = file.value) == null ? void 0 : _a.text());\n if (unref(dataType) === \"ArrayBuffer\")\n data.value = await ((_b = file.value) == null ? void 0 : _b.arrayBuffer());\n if (unref(dataType) === \"Blob\")\n data.value = file.value;\n }\n watch(() => unref(dataType), updateData);\n return {\n isSupported,\n data,\n file,\n fileName,\n fileMIME,\n fileSize,\n fileLastModified,\n open,\n create,\n save,\n saveAs,\n updateData\n };\n}\n\nfunction useFocus(target, options = {}) {\n const { initialValue = false } = options;\n const innerFocused = ref(false);\n const targetElement = computed(() => unrefElement(target));\n useEventListener(targetElement, \"focus\", () => innerFocused.value = true);\n useEventListener(targetElement, \"blur\", () => innerFocused.value = false);\n const focused = computed({\n get: () => innerFocused.value,\n set(value) {\n var _a, _b;\n if (!value && innerFocused.value)\n (_a = targetElement.value) == null ? void 0 : _a.blur();\n else if (value && !innerFocused.value)\n (_b = targetElement.value) == null ? void 0 : _b.focus();\n }\n });\n watch(targetElement, () => {\n focused.value = initialValue;\n }, { immediate: true, flush: \"post\" });\n return { focused };\n}\n\nfunction useFocusWithin(target, options = {}) {\n const activeElement = useActiveElement(options);\n const targetElement = computed(() => unrefElement(target));\n const focused = computed(() => targetElement.value && activeElement.value ? targetElement.value.contains(activeElement.value) : false);\n return { focused };\n}\n\nfunction useFps(options) {\n var _a;\n const fps = ref(0);\n if (typeof performance === \"undefined\")\n return fps;\n const every = (_a = options == null ? void 0 : options.every) != null ? _a : 10;\n let last = performance.now();\n let ticks = 0;\n useRafFn(() => {\n ticks += 1;\n if (ticks >= every) {\n const now = performance.now();\n const diff = now - last;\n fps.value = Math.round(1e3 / (diff / ticks));\n last = now;\n ticks = 0;\n }\n });\n return fps;\n}\n\nconst functionsMap = [\n [\n \"requestFullscreen\",\n \"exitFullscreen\",\n \"fullscreenElement\",\n \"fullscreenEnabled\",\n \"fullscreenchange\",\n \"fullscreenerror\"\n ],\n [\n \"webkitRequestFullscreen\",\n \"webkitExitFullscreen\",\n \"webkitFullscreenElement\",\n \"webkitFullscreenEnabled\",\n \"webkitfullscreenchange\",\n \"webkitfullscreenerror\"\n ],\n [\n \"webkitRequestFullScreen\",\n \"webkitCancelFullScreen\",\n \"webkitCurrentFullScreenElement\",\n \"webkitCancelFullScreen\",\n \"webkitfullscreenchange\",\n \"webkitfullscreenerror\"\n ],\n [\n \"mozRequestFullScreen\",\n \"mozCancelFullScreen\",\n \"mozFullScreenElement\",\n \"mozFullScreenEnabled\",\n \"mozfullscreenchange\",\n \"mozfullscreenerror\"\n ],\n [\n \"msRequestFullscreen\",\n \"msExitFullscreen\",\n \"msFullscreenElement\",\n \"msFullscreenEnabled\",\n \"MSFullscreenChange\",\n \"MSFullscreenError\"\n ]\n];\nfunction useFullscreen(target, options = {}) {\n const { document = defaultDocument, autoExit = false } = options;\n const targetRef = target || (document == null ? void 0 : document.querySelector(\"html\"));\n const isFullscreen = ref(false);\n let map = functionsMap[0];\n const isSupported = useSupported(() => {\n if (!document) {\n return false;\n } else {\n for (const m of functionsMap) {\n if (m[1] in document) {\n map = m;\n return true;\n }\n }\n }\n return false;\n });\n const [REQUEST, EXIT, ELEMENT, , EVENT] = map;\n async function exit() {\n if (!isSupported.value)\n return;\n if (document == null ? void 0 : document[ELEMENT])\n await document[EXIT]();\n isFullscreen.value = false;\n }\n async function enter() {\n if (!isSupported.value)\n return;\n await exit();\n const target2 = unrefElement(targetRef);\n if (target2) {\n await target2[REQUEST]();\n isFullscreen.value = true;\n }\n }\n async function toggle() {\n if (isFullscreen.value)\n await exit();\n else\n await enter();\n }\n if (document) {\n useEventListener(document, EVENT, () => {\n isFullscreen.value = !!(document == null ? void 0 : document[ELEMENT]);\n }, false);\n }\n if (autoExit)\n tryOnScopeDispose(exit);\n return {\n isSupported,\n isFullscreen,\n enter,\n exit,\n toggle\n };\n}\n\nfunction mapGamepadToXbox360Controller(gamepad) {\n return computed(() => {\n if (gamepad.value) {\n return {\n buttons: {\n a: gamepad.value.buttons[0],\n b: gamepad.value.buttons[1],\n x: gamepad.value.buttons[2],\n y: gamepad.value.buttons[3]\n },\n bumper: {\n left: gamepad.value.buttons[4],\n right: gamepad.value.buttons[5]\n },\n triggers: {\n left: gamepad.value.buttons[6],\n right: gamepad.value.buttons[7]\n },\n stick: {\n left: {\n horizontal: gamepad.value.axes[0],\n vertical: gamepad.value.axes[1],\n button: gamepad.value.buttons[10]\n },\n right: {\n horizontal: gamepad.value.axes[2],\n vertical: gamepad.value.axes[3],\n button: gamepad.value.buttons[11]\n }\n },\n dpad: {\n up: gamepad.value.buttons[12],\n down: gamepad.value.buttons[13],\n left: gamepad.value.buttons[14],\n right: gamepad.value.buttons[15]\n },\n back: gamepad.value.buttons[8],\n start: gamepad.value.buttons[9]\n };\n }\n return null;\n });\n}\nfunction useGamepad(options = {}) {\n const {\n navigator = defaultNavigator\n } = options;\n const isSupported = useSupported(() => navigator && \"getGamepads\" in navigator);\n const gamepads = ref([]);\n const onConnectedHook = createEventHook();\n const onDisconnectedHook = createEventHook();\n const stateFromGamepad = (gamepad) => {\n const hapticActuators = [];\n const vibrationActuator = \"vibrationActuator\" in gamepad ? gamepad.vibrationActuator : null;\n if (vibrationActuator)\n hapticActuators.push(vibrationActuator);\n if (gamepad.hapticActuators)\n hapticActuators.push(...gamepad.hapticActuators);\n return {\n id: gamepad.id,\n hapticActuators,\n index: gamepad.index,\n mapping: gamepad.mapping,\n connected: gamepad.connected,\n timestamp: gamepad.timestamp,\n axes: gamepad.axes.map((axes) => axes),\n buttons: gamepad.buttons.map((button) => ({ pressed: button.pressed, touched: button.touched, value: button.value }))\n };\n };\n const updateGamepadState = () => {\n const _gamepads = (navigator == null ? void 0 : navigator.getGamepads()) || [];\n for (let i = 0; i < _gamepads.length; ++i) {\n const gamepad = _gamepads[i];\n if (gamepad) {\n const index = gamepads.value.findIndex(({ index: index2 }) => index2 === gamepad.index);\n if (index > -1)\n gamepads.value[index] = stateFromGamepad(gamepad);\n }\n }\n };\n const { isActive, pause, resume } = useRafFn(updateGamepadState);\n const onGamepadConnected = (gamepad) => {\n if (!gamepads.value.some(({ index }) => index === gamepad.index)) {\n gamepads.value.push(stateFromGamepad(gamepad));\n onConnectedHook.trigger(gamepad.index);\n }\n resume();\n };\n const onGamepadDisconnected = (gamepad) => {\n gamepads.value = gamepads.value.filter((x) => x.index !== gamepad.index);\n onDisconnectedHook.trigger(gamepad.index);\n };\n useEventListener(\"gamepadconnected\", (e) => onGamepadConnected(e.gamepad));\n useEventListener(\"gamepaddisconnected\", (e) => onGamepadDisconnected(e.gamepad));\n tryOnMounted(() => {\n const _gamepads = (navigator == null ? void 0 : navigator.getGamepads()) || [];\n if (_gamepads) {\n for (let i = 0; i < _gamepads.length; ++i) {\n const gamepad = _gamepads[i];\n if (gamepad)\n onGamepadConnected(gamepad);\n }\n }\n });\n pause();\n return {\n isSupported,\n onConnected: onConnectedHook.on,\n onDisconnected: onDisconnectedHook.on,\n gamepads,\n pause,\n resume,\n isActive\n };\n}\n\nfunction useGeolocation(options = {}) {\n const {\n enableHighAccuracy = true,\n maximumAge = 3e4,\n timeout = 27e3,\n navigator = defaultNavigator,\n immediate = true\n } = options;\n const isSupported = useSupported(() => navigator && \"geolocation\" in navigator);\n const locatedAt = ref(null);\n const error = ref(null);\n const coords = ref({\n accuracy: 0,\n latitude: Infinity,\n longitude: Infinity,\n altitude: null,\n altitudeAccuracy: null,\n heading: null,\n speed: null\n });\n function updatePosition(position) {\n locatedAt.value = position.timestamp;\n coords.value = position.coords;\n error.value = null;\n }\n let watcher;\n function resume() {\n if (isSupported.value) {\n watcher = navigator.geolocation.watchPosition(updatePosition, (err) => error.value = err, {\n enableHighAccuracy,\n maximumAge,\n timeout\n });\n }\n }\n if (immediate)\n resume();\n function pause() {\n if (watcher && navigator)\n navigator.geolocation.clearWatch(watcher);\n }\n tryOnScopeDispose(() => {\n pause();\n });\n return {\n isSupported,\n coords,\n locatedAt,\n error,\n resume,\n pause\n };\n}\n\nconst defaultEvents$1 = [\"mousemove\", \"mousedown\", \"resize\", \"keydown\", \"touchstart\", \"wheel\"];\nconst oneMinute = 6e4;\nfunction useIdle(timeout = oneMinute, options = {}) {\n const {\n initialState = false,\n listenForVisibilityChange = true,\n events = defaultEvents$1,\n window = defaultWindow,\n eventFilter = throttleFilter(50)\n } = options;\n const idle = ref(initialState);\n const lastActive = ref(timestamp());\n let timer;\n const onEvent = createFilterWrapper(eventFilter, () => {\n idle.value = false;\n lastActive.value = timestamp();\n clearTimeout(timer);\n timer = setTimeout(() => idle.value = true, timeout);\n });\n if (window) {\n const document = window.document;\n for (const event of events)\n useEventListener(window, event, onEvent, { passive: true });\n if (listenForVisibilityChange) {\n useEventListener(document, \"visibilitychange\", () => {\n if (!document.hidden)\n onEvent();\n });\n }\n }\n timer = setTimeout(() => idle.value = true, timeout);\n return { idle, lastActive };\n}\n\nvar __defProp$a = Object.defineProperty;\nvar __getOwnPropSymbols$b = Object.getOwnPropertySymbols;\nvar __hasOwnProp$b = Object.prototype.hasOwnProperty;\nvar __propIsEnum$b = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$a = (obj, key, value) => key in obj ? __defProp$a(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$a = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$b.call(b, prop))\n __defNormalProp$a(a, prop, b[prop]);\n if (__getOwnPropSymbols$b)\n for (var prop of __getOwnPropSymbols$b(b)) {\n if (__propIsEnum$b.call(b, prop))\n __defNormalProp$a(a, prop, b[prop]);\n }\n return a;\n};\nasync function loadImage(options) {\n return new Promise((resolve, reject) => {\n const img = new Image();\n const { src, srcset, sizes } = options;\n img.src = src;\n if (srcset)\n img.srcset = srcset;\n if (sizes)\n img.sizes = sizes;\n img.onload = () => resolve(img);\n img.onerror = reject;\n });\n}\nconst useImage = (options, asyncStateOptions = {}) => {\n const state = useAsyncState(() => loadImage(resolveUnref(options)), void 0, __spreadValues$a({\n resetOnExecute: true\n }, asyncStateOptions));\n watch(() => resolveUnref(options), () => state.execute(asyncStateOptions.delay), { deep: true });\n return state;\n};\n\nconst ARRIVED_STATE_THRESHOLD_PIXELS = 1;\nfunction useScroll(element, options = {}) {\n const {\n throttle = 0,\n idle = 200,\n onStop = noop,\n onScroll = noop,\n offset = {\n left: 0,\n right: 0,\n top: 0,\n bottom: 0\n },\n eventListenerOptions = {\n capture: false,\n passive: true\n },\n behavior = \"auto\"\n } = options;\n const internalX = ref(0);\n const internalY = ref(0);\n const x = computed({\n get() {\n return internalX.value;\n },\n set(x2) {\n scrollTo(x2, void 0);\n }\n });\n const y = computed({\n get() {\n return internalY.value;\n },\n set(y2) {\n scrollTo(void 0, y2);\n }\n });\n function scrollTo(_x, _y) {\n var _a, _b, _c;\n const _element = resolveUnref(element);\n if (!_element)\n return;\n (_c = _element instanceof Document ? document.body : _element) == null ? void 0 : _c.scrollTo({\n top: (_a = resolveUnref(_y)) != null ? _a : y.value,\n left: (_b = resolveUnref(_x)) != null ? _b : x.value,\n behavior: resolveUnref(behavior)\n });\n }\n const isScrolling = ref(false);\n const arrivedState = reactive({\n left: true,\n right: false,\n top: true,\n bottom: false\n });\n const directions = reactive({\n left: false,\n right: false,\n top: false,\n bottom: false\n });\n const onScrollEnd = (e) => {\n if (!isScrolling.value)\n return;\n isScrolling.value = false;\n directions.left = false;\n directions.right = false;\n directions.top = false;\n directions.bottom = false;\n onStop(e);\n };\n const onScrollEndDebounced = useDebounceFn(onScrollEnd, throttle + idle);\n const onScrollHandler = (e) => {\n const eventTarget = e.target === document ? e.target.documentElement : e.target;\n const scrollLeft = eventTarget.scrollLeft;\n directions.left = scrollLeft < internalX.value;\n directions.right = scrollLeft > internalY.value;\n arrivedState.left = scrollLeft <= 0 + (offset.left || 0);\n arrivedState.right = scrollLeft + eventTarget.clientWidth >= eventTarget.scrollWidth - (offset.right || 0) - ARRIVED_STATE_THRESHOLD_PIXELS;\n internalX.value = scrollLeft;\n let scrollTop = eventTarget.scrollTop;\n if (e.target === document && !scrollTop)\n scrollTop = document.body.scrollTop;\n directions.top = scrollTop < internalY.value;\n directions.bottom = scrollTop > internalY.value;\n arrivedState.top = scrollTop <= 0 + (offset.top || 0);\n arrivedState.bottom = scrollTop + eventTarget.clientHeight >= eventTarget.scrollHeight - (offset.bottom || 0) - ARRIVED_STATE_THRESHOLD_PIXELS;\n internalY.value = scrollTop;\n isScrolling.value = true;\n onScrollEndDebounced(e);\n onScroll(e);\n };\n useEventListener(element, \"scroll\", throttle ? useThrottleFn(onScrollHandler, throttle, true, false) : onScrollHandler, eventListenerOptions);\n useEventListener(element, \"scrollend\", onScrollEnd, eventListenerOptions);\n return {\n x,\n y,\n isScrolling,\n arrivedState,\n directions\n };\n}\n\nvar __defProp$9 = Object.defineProperty;\nvar __defProps$2 = Object.defineProperties;\nvar __getOwnPropDescs$2 = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols$a = Object.getOwnPropertySymbols;\nvar __hasOwnProp$a = Object.prototype.hasOwnProperty;\nvar __propIsEnum$a = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$9 = (obj, key, value) => key in obj ? __defProp$9(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$9 = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$a.call(b, prop))\n __defNormalProp$9(a, prop, b[prop]);\n if (__getOwnPropSymbols$a)\n for (var prop of __getOwnPropSymbols$a(b)) {\n if (__propIsEnum$a.call(b, prop))\n __defNormalProp$9(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps$2 = (a, b) => __defProps$2(a, __getOwnPropDescs$2(b));\nfunction useInfiniteScroll(element, onLoadMore, options = {}) {\n var _a, _b;\n const direction = (_a = options.direction) != null ? _a : \"bottom\";\n const state = reactive(useScroll(element, __spreadProps$2(__spreadValues$9({}, options), {\n offset: __spreadValues$9({\n [direction]: (_b = options.distance) != null ? _b : 0\n }, options.offset)\n })));\n watch(() => state.arrivedState[direction], async (v) => {\n var _a2, _b2;\n if (v) {\n const elem = resolveUnref(element);\n const previous = {\n height: (_a2 = elem == null ? void 0 : elem.scrollHeight) != null ? _a2 : 0,\n width: (_b2 = elem == null ? void 0 : elem.scrollWidth) != null ? _b2 : 0\n };\n await onLoadMore(state);\n if (options.preserveScrollPosition && elem) {\n nextTick(() => {\n elem.scrollTo({\n top: elem.scrollHeight - previous.height,\n left: elem.scrollWidth - previous.width\n });\n });\n }\n }\n });\n}\n\nfunction useIntersectionObserver(target, callback, options = {}) {\n const {\n root,\n rootMargin = \"0px\",\n threshold = 0.1,\n window = defaultWindow\n } = options;\n const isSupported = useSupported(() => window && \"IntersectionObserver\" in window);\n let cleanup = noop;\n const stopWatch = isSupported.value ? watch(() => ({\n el: unrefElement(target),\n root: unrefElement(root)\n }), ({ el, root: root2 }) => {\n cleanup();\n if (!el)\n return;\n const observer = new IntersectionObserver(callback, {\n root: root2,\n rootMargin,\n threshold\n });\n observer.observe(el);\n cleanup = () => {\n observer.disconnect();\n cleanup = noop;\n };\n }, { immediate: true, flush: \"post\" }) : noop;\n const stop = () => {\n cleanup();\n stopWatch();\n };\n tryOnScopeDispose(stop);\n return {\n isSupported,\n stop\n };\n}\n\nconst defaultEvents = [\"mousedown\", \"mouseup\", \"keydown\", \"keyup\"];\nfunction useKeyModifier(modifier, options = {}) {\n const {\n events = defaultEvents,\n document = defaultDocument,\n initial = null\n } = options;\n const state = ref(initial);\n if (document) {\n events.forEach((listenerEvent) => {\n useEventListener(document, listenerEvent, (evt) => {\n if (typeof evt.getModifierState === \"function\")\n state.value = evt.getModifierState(modifier);\n });\n });\n }\n return state;\n}\n\nfunction useLocalStorage(key, initialValue, options = {}) {\n const { window = defaultWindow } = options;\n return useStorage(key, initialValue, window == null ? void 0 : window.localStorage, options);\n}\n\nconst DefaultMagicKeysAliasMap = {\n ctrl: \"control\",\n command: \"meta\",\n cmd: \"meta\",\n option: \"alt\",\n up: \"arrowup\",\n down: \"arrowdown\",\n left: \"arrowleft\",\n right: \"arrowright\"\n};\n\nfunction useMagicKeys(options = {}) {\n const {\n reactive: useReactive = false,\n target = defaultWindow,\n aliasMap = DefaultMagicKeysAliasMap,\n passive = true,\n onEventFired = noop\n } = options;\n const current = reactive(new Set());\n const obj = {\n toJSON() {\n return {};\n },\n current\n };\n const refs = useReactive ? reactive(obj) : obj;\n const metaDeps = new Set();\n const usedKeys = new Set();\n function setRefs(key, value) {\n if (key in refs) {\n if (useReactive)\n refs[key] = value;\n else\n refs[key].value = value;\n }\n }\n function reset() {\n current.clear();\n for (const key of usedKeys)\n setRefs(key, false);\n }\n function updateRefs(e, value) {\n var _a, _b;\n const key = (_a = e.key) == null ? void 0 : _a.toLowerCase();\n const code = (_b = e.code) == null ? void 0 : _b.toLowerCase();\n const values = [code, key].filter(Boolean);\n if (key) {\n if (value)\n current.add(key);\n else\n current.delete(key);\n }\n for (const key2 of values) {\n usedKeys.add(key2);\n setRefs(key2, value);\n }\n if (key === \"meta\" && !value) {\n metaDeps.forEach((key2) => {\n current.delete(key2);\n setRefs(key2, false);\n });\n metaDeps.clear();\n } else if (typeof e.getModifierState === \"function\" && e.getModifierState(\"Meta\") && value) {\n [...current, ...values].forEach((key2) => metaDeps.add(key2));\n }\n }\n useEventListener(target, \"keydown\", (e) => {\n updateRefs(e, true);\n return onEventFired(e);\n }, { passive });\n useEventListener(target, \"keyup\", (e) => {\n updateRefs(e, false);\n return onEventFired(e);\n }, { passive });\n useEventListener(\"blur\", reset, { passive: true });\n useEventListener(\"focus\", reset, { passive: true });\n const proxy = new Proxy(refs, {\n get(target2, prop, rec) {\n if (typeof prop !== \"string\")\n return Reflect.get(target2, prop, rec);\n prop = prop.toLowerCase();\n if (prop in aliasMap)\n prop = aliasMap[prop];\n if (!(prop in refs)) {\n if (/[+_-]/.test(prop)) {\n const keys = prop.split(/[+_-]/g).map((i) => i.trim());\n refs[prop] = computed(() => keys.every((key) => unref(proxy[key])));\n } else {\n refs[prop] = ref(false);\n }\n }\n const r = Reflect.get(target2, prop, rec);\n return useReactive ? unref(r) : r;\n }\n });\n return proxy;\n}\n\nvar __defProp$8 = Object.defineProperty;\nvar __getOwnPropSymbols$9 = Object.getOwnPropertySymbols;\nvar __hasOwnProp$9 = Object.prototype.hasOwnProperty;\nvar __propIsEnum$9 = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$8 = (obj, key, value) => key in obj ? __defProp$8(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$8 = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$9.call(b, prop))\n __defNormalProp$8(a, prop, b[prop]);\n if (__getOwnPropSymbols$9)\n for (var prop of __getOwnPropSymbols$9(b)) {\n if (__propIsEnum$9.call(b, prop))\n __defNormalProp$8(a, prop, b[prop]);\n }\n return a;\n};\nfunction usingElRef(source, cb) {\n if (resolveUnref(source))\n cb(resolveUnref(source));\n}\nfunction timeRangeToArray(timeRanges) {\n let ranges = [];\n for (let i = 0; i < timeRanges.length; ++i)\n ranges = [...ranges, [timeRanges.start(i), timeRanges.end(i)]];\n return ranges;\n}\nfunction tracksToArray(tracks) {\n return Array.from(tracks).map(({ label, kind, language, mode, activeCues, cues, inBandMetadataTrackDispatchType }, id) => ({ id, label, kind, language, mode, activeCues, cues, inBandMetadataTrackDispatchType }));\n}\nconst defaultOptions = {\n src: \"\",\n tracks: []\n};\nfunction useMediaControls(target, options = {}) {\n options = __spreadValues$8(__spreadValues$8({}, defaultOptions), options);\n const {\n document = defaultDocument\n } = options;\n const currentTime = ref(0);\n const duration = ref(0);\n const seeking = ref(false);\n const volume = ref(1);\n const waiting = ref(false);\n const ended = ref(false);\n const playing = ref(false);\n const rate = ref(1);\n const stalled = ref(false);\n const buffered = ref([]);\n const tracks = ref([]);\n const selectedTrack = ref(-1);\n const isPictureInPicture = ref(false);\n const muted = ref(false);\n const supportsPictureInPicture = document && \"pictureInPictureEnabled\" in document;\n const sourceErrorEvent = createEventHook();\n const disableTrack = (track) => {\n usingElRef(target, (el) => {\n if (track) {\n const id = isNumber(track) ? track : track.id;\n el.textTracks[id].mode = \"disabled\";\n } else {\n for (let i = 0; i < el.textTracks.length; ++i)\n el.textTracks[i].mode = \"disabled\";\n }\n selectedTrack.value = -1;\n });\n };\n const enableTrack = (track, disableTracks = true) => {\n usingElRef(target, (el) => {\n const id = isNumber(track) ? track : track.id;\n if (disableTracks)\n disableTrack();\n el.textTracks[id].mode = \"showing\";\n selectedTrack.value = id;\n });\n };\n const togglePictureInPicture = () => {\n return new Promise((resolve, reject) => {\n usingElRef(target, async (el) => {\n if (supportsPictureInPicture) {\n if (!isPictureInPicture.value) {\n el.requestPictureInPicture().then(resolve).catch(reject);\n } else {\n document.exitPictureInPicture().then(resolve).catch(reject);\n }\n }\n });\n });\n };\n watchEffect(() => {\n if (!document)\n return;\n const el = resolveUnref(target);\n if (!el)\n return;\n const src = resolveUnref(options.src);\n let sources = [];\n if (!src)\n return;\n if (isString(src))\n sources = [{ src }];\n else if (Array.isArray(src))\n sources = src;\n else if (isObject(src))\n sources = [src];\n el.querySelectorAll(\"source\").forEach((e) => {\n e.removeEventListener(\"error\", sourceErrorEvent.trigger);\n e.remove();\n });\n sources.forEach(({ src: src2, type }) => {\n const source = document.createElement(\"source\");\n source.setAttribute(\"src\", src2);\n source.setAttribute(\"type\", type || \"\");\n source.addEventListener(\"error\", sourceErrorEvent.trigger);\n el.appendChild(source);\n });\n el.load();\n });\n tryOnScopeDispose(() => {\n const el = resolveUnref(target);\n if (!el)\n return;\n el.querySelectorAll(\"source\").forEach((e) => e.removeEventListener(\"error\", sourceErrorEvent.trigger));\n });\n watch(volume, (vol) => {\n const el = resolveUnref(target);\n if (!el)\n return;\n el.volume = vol;\n });\n watch(muted, (mute) => {\n const el = resolveUnref(target);\n if (!el)\n return;\n el.muted = mute;\n });\n watch(rate, (rate2) => {\n const el = resolveUnref(target);\n if (!el)\n return;\n el.playbackRate = rate2;\n });\n watchEffect(() => {\n if (!document)\n return;\n const textTracks = resolveUnref(options.tracks);\n const el = resolveUnref(target);\n if (!textTracks || !textTracks.length || !el)\n return;\n el.querySelectorAll(\"track\").forEach((e) => e.remove());\n textTracks.forEach(({ default: isDefault, kind, label, src, srcLang }, i) => {\n const track = document.createElement(\"track\");\n track.default = isDefault || false;\n track.kind = kind;\n track.label = label;\n track.src = src;\n track.srclang = srcLang;\n if (track.default)\n selectedTrack.value = i;\n el.appendChild(track);\n });\n });\n const { ignoreUpdates: ignoreCurrentTimeUpdates } = watchIgnorable(currentTime, (time) => {\n const el = resolveUnref(target);\n if (!el)\n return;\n el.currentTime = time;\n });\n const { ignoreUpdates: ignorePlayingUpdates } = watchIgnorable(playing, (isPlaying) => {\n const el = resolveUnref(target);\n if (!el)\n return;\n isPlaying ? el.play() : el.pause();\n });\n useEventListener(target, \"timeupdate\", () => ignoreCurrentTimeUpdates(() => currentTime.value = resolveUnref(target).currentTime));\n useEventListener(target, \"durationchange\", () => duration.value = resolveUnref(target).duration);\n useEventListener(target, \"progress\", () => buffered.value = timeRangeToArray(resolveUnref(target).buffered));\n useEventListener(target, \"seeking\", () => seeking.value = true);\n useEventListener(target, \"seeked\", () => seeking.value = false);\n useEventListener(target, \"waiting\", () => waiting.value = true);\n useEventListener(target, \"playing\", () => {\n waiting.value = false;\n ended.value = false;\n });\n useEventListener(target, \"ratechange\", () => rate.value = resolveUnref(target).playbackRate);\n useEventListener(target, \"stalled\", () => stalled.value = true);\n useEventListener(target, \"ended\", () => ended.value = true);\n useEventListener(target, \"pause\", () => ignorePlayingUpdates(() => playing.value = false));\n useEventListener(target, \"play\", () => ignorePlayingUpdates(() => playing.value = true));\n useEventListener(target, \"enterpictureinpicture\", () => isPictureInPicture.value = true);\n useEventListener(target, \"leavepictureinpicture\", () => isPictureInPicture.value = false);\n useEventListener(target, \"volumechange\", () => {\n const el = resolveUnref(target);\n if (!el)\n return;\n volume.value = el.volume;\n muted.value = el.muted;\n });\n const listeners = [];\n const stop = watch([target], () => {\n const el = resolveUnref(target);\n if (!el)\n return;\n stop();\n listeners[0] = useEventListener(el.textTracks, \"addtrack\", () => tracks.value = tracksToArray(el.textTracks));\n listeners[1] = useEventListener(el.textTracks, \"removetrack\", () => tracks.value = tracksToArray(el.textTracks));\n listeners[2] = useEventListener(el.textTracks, \"change\", () => tracks.value = tracksToArray(el.textTracks));\n });\n tryOnScopeDispose(() => listeners.forEach((listener) => listener()));\n return {\n currentTime,\n duration,\n waiting,\n seeking,\n ended,\n stalled,\n buffered,\n playing,\n rate,\n volume,\n muted,\n tracks,\n selectedTrack,\n enableTrack,\n disableTrack,\n supportsPictureInPicture,\n togglePictureInPicture,\n isPictureInPicture,\n onSourceError: sourceErrorEvent.on\n };\n}\n\nconst getMapVue2Compat = () => {\n const data = reactive({});\n return {\n get: (key) => data[key],\n set: (key, value) => set(data, key, value),\n has: (key) => hasOwn(data, key),\n delete: (key) => del(data, key),\n clear: () => {\n Object.keys(data).forEach((key) => {\n del(data, key);\n });\n }\n };\n};\nfunction useMemoize(resolver, options) {\n const initCache = () => {\n if (options == null ? void 0 : options.cache)\n return reactive(options.cache);\n if (isVue2)\n return getMapVue2Compat();\n return reactive(new Map());\n };\n const cache = initCache();\n const generateKey = (...args) => (options == null ? void 0 : options.getKey) ? options.getKey(...args) : JSON.stringify(args);\n const _loadData = (key, ...args) => {\n cache.set(key, resolver(...args));\n return cache.get(key);\n };\n const loadData = (...args) => _loadData(generateKey(...args), ...args);\n const deleteData = (...args) => {\n cache.delete(generateKey(...args));\n };\n const clearData = () => {\n cache.clear();\n };\n const memoized = (...args) => {\n const key = generateKey(...args);\n if (cache.has(key))\n return cache.get(key);\n return _loadData(key, ...args);\n };\n memoized.load = loadData;\n memoized.delete = deleteData;\n memoized.clear = clearData;\n memoized.generateKey = generateKey;\n memoized.cache = cache;\n return memoized;\n}\n\nfunction useMemory(options = {}) {\n const memory = ref();\n const isSupported = useSupported(() => typeof performance !== \"undefined\" && \"memory\" in performance);\n if (isSupported.value) {\n const { interval = 1e3 } = options;\n useIntervalFn(() => {\n memory.value = performance.memory;\n }, interval, { immediate: options.immediate, immediateCallback: options.immediateCallback });\n }\n return { isSupported, memory };\n}\n\nfunction useMounted() {\n const isMounted = ref(false);\n onMounted(() => {\n isMounted.value = true;\n });\n return isMounted;\n}\n\nfunction useMouse(options = {}) {\n const {\n type = \"page\",\n touch = true,\n resetOnTouchEnds = false,\n initialValue = { x: 0, y: 0 },\n window = defaultWindow,\n eventFilter\n } = options;\n const x = ref(initialValue.x);\n const y = ref(initialValue.y);\n const sourceType = ref(null);\n const mouseHandler = (event) => {\n if (type === \"page\") {\n x.value = event.pageX;\n y.value = event.pageY;\n } else if (type === \"client\") {\n x.value = event.clientX;\n y.value = event.clientY;\n } else if (type === \"movement\") {\n x.value = event.movementX;\n y.value = event.movementY;\n }\n sourceType.value = \"mouse\";\n };\n const reset = () => {\n x.value = initialValue.x;\n y.value = initialValue.y;\n };\n const touchHandler = (event) => {\n if (event.touches.length > 0) {\n const touch2 = event.touches[0];\n if (type === \"page\") {\n x.value = touch2.pageX;\n y.value = touch2.pageY;\n } else if (type === \"client\") {\n x.value = touch2.clientX;\n y.value = touch2.clientY;\n }\n sourceType.value = \"touch\";\n }\n };\n const mouseHandlerWrapper = (event) => {\n return eventFilter === void 0 ? mouseHandler(event) : eventFilter(() => mouseHandler(event), {});\n };\n const touchHandlerWrapper = (event) => {\n return eventFilter === void 0 ? touchHandler(event) : eventFilter(() => touchHandler(event), {});\n };\n if (window) {\n useEventListener(window, \"mousemove\", mouseHandlerWrapper, { passive: true });\n useEventListener(window, \"dragover\", mouseHandlerWrapper, { passive: true });\n if (touch && type !== \"movement\") {\n useEventListener(window, \"touchstart\", touchHandlerWrapper, { passive: true });\n useEventListener(window, \"touchmove\", touchHandlerWrapper, { passive: true });\n if (resetOnTouchEnds)\n useEventListener(window, \"touchend\", reset, { passive: true });\n }\n }\n return {\n x,\n y,\n sourceType\n };\n}\n\nfunction useMouseInElement(target, options = {}) {\n const {\n handleOutside = true,\n window = defaultWindow\n } = options;\n const { x, y, sourceType } = useMouse(options);\n const targetRef = ref(target != null ? target : window == null ? void 0 : window.document.body);\n const elementX = ref(0);\n const elementY = ref(0);\n const elementPositionX = ref(0);\n const elementPositionY = ref(0);\n const elementHeight = ref(0);\n const elementWidth = ref(0);\n const isOutside = ref(true);\n let stop = () => {\n };\n if (window) {\n stop = watch([targetRef, x, y], () => {\n const el = unrefElement(targetRef);\n if (!el)\n return;\n const {\n left,\n top,\n width,\n height\n } = el.getBoundingClientRect();\n elementPositionX.value = left + window.pageXOffset;\n elementPositionY.value = top + window.pageYOffset;\n elementHeight.value = height;\n elementWidth.value = width;\n const elX = x.value - elementPositionX.value;\n const elY = y.value - elementPositionY.value;\n isOutside.value = width === 0 || height === 0 || elX < 0 || elY < 0 || elX > width || elY > height;\n if (handleOutside || !isOutside.value) {\n elementX.value = elX;\n elementY.value = elY;\n }\n }, { immediate: true });\n useEventListener(document, \"mouseleave\", () => {\n isOutside.value = true;\n });\n }\n return {\n x,\n y,\n sourceType,\n elementX,\n elementY,\n elementPositionX,\n elementPositionY,\n elementHeight,\n elementWidth,\n isOutside,\n stop\n };\n}\n\nfunction useMousePressed(options = {}) {\n const {\n touch = true,\n drag = true,\n initialValue = false,\n window = defaultWindow\n } = options;\n const pressed = ref(initialValue);\n const sourceType = ref(null);\n if (!window) {\n return {\n pressed,\n sourceType\n };\n }\n const onPressed = (srcType) => () => {\n pressed.value = true;\n sourceType.value = srcType;\n };\n const onReleased = () => {\n pressed.value = false;\n sourceType.value = null;\n };\n const target = computed(() => unrefElement(options.target) || window);\n useEventListener(target, \"mousedown\", onPressed(\"mouse\"), { passive: true });\n useEventListener(window, \"mouseleave\", onReleased, { passive: true });\n useEventListener(window, \"mouseup\", onReleased, { passive: true });\n if (drag) {\n useEventListener(target, \"dragstart\", onPressed(\"mouse\"), { passive: true });\n useEventListener(window, \"drop\", onReleased, { passive: true });\n useEventListener(window, \"dragend\", onReleased, { passive: true });\n }\n if (touch) {\n useEventListener(target, \"touchstart\", onPressed(\"touch\"), { passive: true });\n useEventListener(window, \"touchend\", onReleased, { passive: true });\n useEventListener(window, \"touchcancel\", onReleased, { passive: true });\n }\n return {\n pressed,\n sourceType\n };\n}\n\nvar __getOwnPropSymbols$8 = Object.getOwnPropertySymbols;\nvar __hasOwnProp$8 = Object.prototype.hasOwnProperty;\nvar __propIsEnum$8 = Object.prototype.propertyIsEnumerable;\nvar __objRest$1 = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp$8.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols$8)\n for (var prop of __getOwnPropSymbols$8(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum$8.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\nfunction useMutationObserver(target, callback, options = {}) {\n const _a = options, { window = defaultWindow } = _a, mutationOptions = __objRest$1(_a, [\"window\"]);\n let observer;\n const isSupported = useSupported(() => window && \"MutationObserver\" in window);\n const cleanup = () => {\n if (observer) {\n observer.disconnect();\n observer = void 0;\n }\n };\n const stopWatch = watch(() => unrefElement(target), (el) => {\n cleanup();\n if (isSupported.value && window && el) {\n observer = new MutationObserver(callback);\n observer.observe(el, mutationOptions);\n }\n }, { immediate: true });\n const stop = () => {\n cleanup();\n stopWatch();\n };\n tryOnScopeDispose(stop);\n return {\n isSupported,\n stop\n };\n}\n\nconst useNavigatorLanguage = (options = {}) => {\n const { window = defaultWindow } = options;\n const navigator = window == null ? void 0 : window.navigator;\n const isSupported = useSupported(() => navigator && \"language\" in navigator);\n const language = ref(navigator == null ? void 0 : navigator.language);\n useEventListener(window, \"languagechange\", () => {\n if (navigator)\n language.value = navigator.language;\n });\n return {\n isSupported,\n language\n };\n};\n\nfunction useNetwork(options = {}) {\n const { window = defaultWindow } = options;\n const navigator = window == null ? void 0 : window.navigator;\n const isSupported = useSupported(() => navigator && \"connection\" in navigator);\n const isOnline = ref(true);\n const saveData = ref(false);\n const offlineAt = ref(void 0);\n const onlineAt = ref(void 0);\n const downlink = ref(void 0);\n const downlinkMax = ref(void 0);\n const rtt = ref(void 0);\n const effectiveType = ref(void 0);\n const type = ref(\"unknown\");\n const connection = isSupported.value && navigator.connection;\n function updateNetworkInformation() {\n if (!navigator)\n return;\n isOnline.value = navigator.onLine;\n offlineAt.value = isOnline.value ? void 0 : Date.now();\n onlineAt.value = isOnline.value ? Date.now() : void 0;\n if (connection) {\n downlink.value = connection.downlink;\n downlinkMax.value = connection.downlinkMax;\n effectiveType.value = connection.effectiveType;\n rtt.value = connection.rtt;\n saveData.value = connection.saveData;\n type.value = connection.type;\n }\n }\n if (window) {\n useEventListener(window, \"offline\", () => {\n isOnline.value = false;\n offlineAt.value = Date.now();\n });\n useEventListener(window, \"online\", () => {\n isOnline.value = true;\n onlineAt.value = Date.now();\n });\n }\n if (connection)\n useEventListener(connection, \"change\", updateNetworkInformation, false);\n updateNetworkInformation();\n return {\n isSupported,\n isOnline,\n saveData,\n offlineAt,\n onlineAt,\n downlink,\n downlinkMax,\n effectiveType,\n rtt,\n type\n };\n}\n\nvar __defProp$7 = Object.defineProperty;\nvar __getOwnPropSymbols$7 = Object.getOwnPropertySymbols;\nvar __hasOwnProp$7 = Object.prototype.hasOwnProperty;\nvar __propIsEnum$7 = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$7 = (obj, key, value) => key in obj ? __defProp$7(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$7 = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$7.call(b, prop))\n __defNormalProp$7(a, prop, b[prop]);\n if (__getOwnPropSymbols$7)\n for (var prop of __getOwnPropSymbols$7(b)) {\n if (__propIsEnum$7.call(b, prop))\n __defNormalProp$7(a, prop, b[prop]);\n }\n return a;\n};\nfunction useNow(options = {}) {\n const {\n controls: exposeControls = false,\n interval = \"requestAnimationFrame\"\n } = options;\n const now = ref(new Date());\n const update = () => now.value = new Date();\n const controls = interval === \"requestAnimationFrame\" ? useRafFn(update, { immediate: true }) : useIntervalFn(update, interval, { immediate: true });\n if (exposeControls) {\n return __spreadValues$7({\n now\n }, controls);\n } else {\n return now;\n }\n}\n\nfunction useObjectUrl(object) {\n const url = ref();\n const release = () => {\n if (url.value)\n URL.revokeObjectURL(url.value);\n url.value = void 0;\n };\n watch(() => unref(object), (newObject) => {\n release();\n if (newObject)\n url.value = URL.createObjectURL(newObject);\n }, { immediate: true });\n tryOnScopeDispose(release);\n return readonly(url);\n}\n\nfunction useClamp(value, min, max) {\n if (isFunction(value) || isReadonly(value))\n return computed(() => clamp(resolveUnref(value), resolveUnref(min), resolveUnref(max)));\n const _value = ref(value);\n return computed({\n get() {\n return _value.value = clamp(_value.value, resolveUnref(min), resolveUnref(max));\n },\n set(value2) {\n _value.value = clamp(value2, resolveUnref(min), resolveUnref(max));\n }\n });\n}\n\nfunction useOffsetPagination(options) {\n const {\n total = Infinity,\n pageSize = 10,\n page = 1,\n onPageChange = noop,\n onPageSizeChange = noop,\n onPageCountChange = noop\n } = options;\n const currentPageSize = useClamp(pageSize, 1, Infinity);\n const pageCount = computed(() => Math.max(1, Math.ceil(unref(total) / unref(currentPageSize))));\n const currentPage = useClamp(page, 1, pageCount);\n const isFirstPage = computed(() => currentPage.value === 1);\n const isLastPage = computed(() => currentPage.value === pageCount.value);\n if (isRef(page))\n syncRef(page, currentPage);\n if (isRef(pageSize))\n syncRef(pageSize, currentPageSize);\n function prev() {\n currentPage.value--;\n }\n function next() {\n currentPage.value++;\n }\n const returnValue = {\n currentPage,\n currentPageSize,\n pageCount,\n isFirstPage,\n isLastPage,\n prev,\n next\n };\n watch(currentPage, () => {\n onPageChange(reactive(returnValue));\n });\n watch(currentPageSize, () => {\n onPageSizeChange(reactive(returnValue));\n });\n watch(pageCount, () => {\n onPageCountChange(reactive(returnValue));\n });\n return returnValue;\n}\n\nfunction useOnline(options = {}) {\n const { isOnline } = useNetwork(options);\n return isOnline;\n}\n\nfunction usePageLeave(options = {}) {\n const { window = defaultWindow } = options;\n const isLeft = ref(false);\n const handler = (event) => {\n if (!window)\n return;\n event = event || window.event;\n const from = event.relatedTarget || event.toElement;\n isLeft.value = !from;\n };\n if (window) {\n useEventListener(window, \"mouseout\", handler, { passive: true });\n useEventListener(window.document, \"mouseleave\", handler, { passive: true });\n useEventListener(window.document, \"mouseenter\", handler, { passive: true });\n }\n return isLeft;\n}\n\nfunction useParallax(target, options = {}) {\n const {\n deviceOrientationTiltAdjust = (i) => i,\n deviceOrientationRollAdjust = (i) => i,\n mouseTiltAdjust = (i) => i,\n mouseRollAdjust = (i) => i,\n window = defaultWindow\n } = options;\n const orientation = reactive(useDeviceOrientation({ window }));\n const {\n elementX: x,\n elementY: y,\n elementWidth: width,\n elementHeight: height\n } = useMouseInElement(target, { handleOutside: false, window });\n const source = computed(() => {\n if (orientation.isSupported && (orientation.alpha != null && orientation.alpha !== 0 || orientation.gamma != null && orientation.gamma !== 0))\n return \"deviceOrientation\";\n return \"mouse\";\n });\n const roll = computed(() => {\n if (source.value === \"deviceOrientation\") {\n const value = -orientation.beta / 90;\n return deviceOrientationRollAdjust(value);\n } else {\n const value = -(y.value - height.value / 2) / height.value;\n return mouseRollAdjust(value);\n }\n });\n const tilt = computed(() => {\n if (source.value === \"deviceOrientation\") {\n const value = orientation.gamma / 90;\n return deviceOrientationTiltAdjust(value);\n } else {\n const value = (x.value - width.value / 2) / width.value;\n return mouseTiltAdjust(value);\n }\n });\n return { roll, tilt, source };\n}\n\nvar __defProp$6 = Object.defineProperty;\nvar __defProps$1 = Object.defineProperties;\nvar __getOwnPropDescs$1 = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols$6 = Object.getOwnPropertySymbols;\nvar __hasOwnProp$6 = Object.prototype.hasOwnProperty;\nvar __propIsEnum$6 = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$6 = (obj, key, value) => key in obj ? __defProp$6(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$6 = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$6.call(b, prop))\n __defNormalProp$6(a, prop, b[prop]);\n if (__getOwnPropSymbols$6)\n for (var prop of __getOwnPropSymbols$6(b)) {\n if (__propIsEnum$6.call(b, prop))\n __defNormalProp$6(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps$1 = (a, b) => __defProps$1(a, __getOwnPropDescs$1(b));\nconst defaultState = {\n x: 0,\n y: 0,\n pointerId: 0,\n pressure: 0,\n tiltX: 0,\n tiltY: 0,\n width: 0,\n height: 0,\n twist: 0,\n pointerType: null\n};\nconst keys = /* @__PURE__ */ Object.keys(defaultState);\nfunction usePointer(options = {}) {\n const {\n target = defaultWindow\n } = options;\n const isInside = ref(false);\n const state = ref(options.initialValue || {});\n Object.assign(state.value, defaultState, state.value);\n const handler = (event) => {\n isInside.value = true;\n if (options.pointerTypes && !options.pointerTypes.includes(event.pointerType))\n return;\n state.value = objectPick(event, keys, false);\n };\n if (target) {\n useEventListener(target, \"pointerdown\", handler, { passive: true });\n useEventListener(target, \"pointermove\", handler, { passive: true });\n useEventListener(target, \"pointerleave\", () => isInside.value = false, { passive: true });\n }\n return __spreadProps$1(__spreadValues$6({}, toRefs(state)), {\n isInside\n });\n}\n\nfunction usePointerLock(target, options = {}) {\n const { document = defaultDocument, pointerLockOptions } = options;\n const isSupported = useSupported(() => document && \"pointerLockElement\" in document);\n const element = ref();\n const triggerElement = ref();\n let targetElement;\n if (isSupported.value) {\n useEventListener(document, \"pointerlockchange\", () => {\n var _a;\n const currentElement = (_a = document.pointerLockElement) != null ? _a : element.value;\n if (targetElement && currentElement === targetElement) {\n element.value = document.pointerLockElement;\n if (!element.value)\n targetElement = triggerElement.value = null;\n }\n });\n useEventListener(document, \"pointerlockerror\", () => {\n var _a;\n const currentElement = (_a = document.pointerLockElement) != null ? _a : element.value;\n if (targetElement && currentElement === targetElement) {\n const action = document.pointerLockElement ? \"release\" : \"acquire\";\n throw new Error(`Failed to ${action} pointer lock.`);\n }\n });\n }\n async function lock(e, options2) {\n var _a;\n if (!isSupported.value)\n throw new Error(\"Pointer Lock API is not supported by your browser.\");\n triggerElement.value = e instanceof Event ? e.currentTarget : null;\n targetElement = e instanceof Event ? (_a = unrefElement(target)) != null ? _a : triggerElement.value : unrefElement(e);\n if (!targetElement)\n throw new Error(\"Target element undefined.\");\n targetElement.requestPointerLock(options2 != null ? options2 : pointerLockOptions);\n return await until(element).toBe(targetElement);\n }\n async function unlock() {\n if (!element.value)\n return false;\n document.exitPointerLock();\n await until(element).toBeNull();\n return true;\n }\n return {\n isSupported,\n element,\n triggerElement,\n lock,\n unlock\n };\n}\n\nvar SwipeDirection;\n(function(SwipeDirection2) {\n SwipeDirection2[\"UP\"] = \"UP\";\n SwipeDirection2[\"RIGHT\"] = \"RIGHT\";\n SwipeDirection2[\"DOWN\"] = \"DOWN\";\n SwipeDirection2[\"LEFT\"] = \"LEFT\";\n SwipeDirection2[\"NONE\"] = \"NONE\";\n})(SwipeDirection || (SwipeDirection = {}));\nfunction useSwipe(target, options = {}) {\n const {\n threshold = 50,\n onSwipe,\n onSwipeEnd,\n onSwipeStart,\n passive = true,\n window = defaultWindow\n } = options;\n const coordsStart = reactive({ x: 0, y: 0 });\n const coordsEnd = reactive({ x: 0, y: 0 });\n const diffX = computed(() => coordsStart.x - coordsEnd.x);\n const diffY = computed(() => coordsStart.y - coordsEnd.y);\n const { max, abs } = Math;\n const isThresholdExceeded = computed(() => max(abs(diffX.value), abs(diffY.value)) >= threshold);\n const isSwiping = ref(false);\n const direction = computed(() => {\n if (!isThresholdExceeded.value)\n return SwipeDirection.NONE;\n if (abs(diffX.value) > abs(diffY.value)) {\n return diffX.value > 0 ? SwipeDirection.LEFT : SwipeDirection.RIGHT;\n } else {\n return diffY.value > 0 ? SwipeDirection.UP : SwipeDirection.DOWN;\n }\n });\n const getTouchEventCoords = (e) => [e.touches[0].clientX, e.touches[0].clientY];\n const updateCoordsStart = (x, y) => {\n coordsStart.x = x;\n coordsStart.y = y;\n };\n const updateCoordsEnd = (x, y) => {\n coordsEnd.x = x;\n coordsEnd.y = y;\n };\n let listenerOptions;\n const isPassiveEventSupported = checkPassiveEventSupport(window == null ? void 0 : window.document);\n if (!passive)\n listenerOptions = isPassiveEventSupported ? { passive: false, capture: true } : { capture: true };\n else\n listenerOptions = isPassiveEventSupported ? { passive: true } : { capture: false };\n const onTouchEnd = (e) => {\n if (isSwiping.value)\n onSwipeEnd == null ? void 0 : onSwipeEnd(e, direction.value);\n isSwiping.value = false;\n };\n const stops = [\n useEventListener(target, \"touchstart\", (e) => {\n if (listenerOptions.capture && !listenerOptions.passive)\n e.preventDefault();\n const [x, y] = getTouchEventCoords(e);\n updateCoordsStart(x, y);\n updateCoordsEnd(x, y);\n onSwipeStart == null ? void 0 : onSwipeStart(e);\n }, listenerOptions),\n useEventListener(target, \"touchmove\", (e) => {\n const [x, y] = getTouchEventCoords(e);\n updateCoordsEnd(x, y);\n if (!isSwiping.value && isThresholdExceeded.value)\n isSwiping.value = true;\n if (isSwiping.value)\n onSwipe == null ? void 0 : onSwipe(e);\n }, listenerOptions),\n useEventListener(target, \"touchend\", onTouchEnd, listenerOptions),\n useEventListener(target, \"touchcancel\", onTouchEnd, listenerOptions)\n ];\n const stop = () => stops.forEach((s) => s());\n return {\n isPassiveEventSupported,\n isSwiping,\n direction,\n coordsStart,\n coordsEnd,\n lengthX: diffX,\n lengthY: diffY,\n stop\n };\n}\nfunction checkPassiveEventSupport(document) {\n if (!document)\n return false;\n let supportsPassive = false;\n const optionsBlock = {\n get passive() {\n supportsPassive = true;\n return false;\n }\n };\n document.addEventListener(\"x\", noop, optionsBlock);\n document.removeEventListener(\"x\", noop);\n return supportsPassive;\n}\n\nfunction usePointerSwipe(target, options = {}) {\n const targetRef = resolveRef(target);\n const {\n threshold = 50,\n onSwipe,\n onSwipeEnd,\n onSwipeStart\n } = options;\n const posStart = reactive({ x: 0, y: 0 });\n const updatePosStart = (x, y) => {\n posStart.x = x;\n posStart.y = y;\n };\n const posEnd = reactive({ x: 0, y: 0 });\n const updatePosEnd = (x, y) => {\n posEnd.x = x;\n posEnd.y = y;\n };\n const distanceX = computed(() => posStart.x - posEnd.x);\n const distanceY = computed(() => posStart.y - posEnd.y);\n const { max, abs } = Math;\n const isThresholdExceeded = computed(() => max(abs(distanceX.value), abs(distanceY.value)) >= threshold);\n const isSwiping = ref(false);\n const isPointerDown = ref(false);\n const direction = computed(() => {\n if (!isThresholdExceeded.value)\n return SwipeDirection.NONE;\n if (abs(distanceX.value) > abs(distanceY.value)) {\n return distanceX.value > 0 ? SwipeDirection.LEFT : SwipeDirection.RIGHT;\n } else {\n return distanceY.value > 0 ? SwipeDirection.UP : SwipeDirection.DOWN;\n }\n });\n const eventIsAllowed = (e) => {\n var _a, _b, _c;\n const isReleasingButton = e.buttons === 0;\n const isPrimaryButton = e.buttons === 1;\n return (_c = (_b = (_a = options.pointerTypes) == null ? void 0 : _a.includes(e.pointerType)) != null ? _b : isReleasingButton || isPrimaryButton) != null ? _c : true;\n };\n const stops = [\n useEventListener(target, \"pointerdown\", (e) => {\n var _a, _b;\n if (!eventIsAllowed(e))\n return;\n isPointerDown.value = true;\n (_b = (_a = targetRef.value) == null ? void 0 : _a.style) == null ? void 0 : _b.setProperty(\"touch-action\", \"none\");\n const eventTarget = e.target;\n eventTarget == null ? void 0 : eventTarget.setPointerCapture(e.pointerId);\n const { clientX: x, clientY: y } = e;\n updatePosStart(x, y);\n updatePosEnd(x, y);\n onSwipeStart == null ? void 0 : onSwipeStart(e);\n }),\n useEventListener(target, \"pointermove\", (e) => {\n if (!eventIsAllowed(e))\n return;\n if (!isPointerDown.value)\n return;\n const { clientX: x, clientY: y } = e;\n updatePosEnd(x, y);\n if (!isSwiping.value && isThresholdExceeded.value)\n isSwiping.value = true;\n if (isSwiping.value)\n onSwipe == null ? void 0 : onSwipe(e);\n }),\n useEventListener(target, \"pointerup\", (e) => {\n var _a, _b;\n if (!eventIsAllowed(e))\n return;\n if (isSwiping.value)\n onSwipeEnd == null ? void 0 : onSwipeEnd(e, direction.value);\n isPointerDown.value = false;\n isSwiping.value = false;\n (_b = (_a = targetRef.value) == null ? void 0 : _a.style) == null ? void 0 : _b.setProperty(\"touch-action\", \"initial\");\n })\n ];\n const stop = () => stops.forEach((s) => s());\n return {\n isSwiping: readonly(isSwiping),\n direction: readonly(direction),\n posStart: readonly(posStart),\n posEnd: readonly(posEnd),\n distanceX,\n distanceY,\n stop\n };\n}\n\nfunction usePreferredColorScheme(options) {\n const isLight = useMediaQuery(\"(prefers-color-scheme: light)\", options);\n const isDark = useMediaQuery(\"(prefers-color-scheme: dark)\", options);\n return computed(() => {\n if (isDark.value)\n return \"dark\";\n if (isLight.value)\n return \"light\";\n return \"no-preference\";\n });\n}\n\nfunction usePreferredContrast(options) {\n const isMore = useMediaQuery(\"(prefers-contrast: more)\", options);\n const isLess = useMediaQuery(\"(prefers-contrast: less)\", options);\n const isCustom = useMediaQuery(\"(prefers-contrast: custom)\", options);\n return computed(() => {\n if (isMore.value)\n return \"more\";\n if (isLess.value)\n return \"less\";\n if (isCustom.value)\n return \"custom\";\n return \"no-preference\";\n });\n}\n\nfunction usePreferredLanguages(options = {}) {\n const { window = defaultWindow } = options;\n if (!window)\n return ref([\"en\"]);\n const navigator = window.navigator;\n const value = ref(navigator.languages);\n useEventListener(window, \"languagechange\", () => {\n value.value = navigator.languages;\n });\n return value;\n}\n\nfunction usePreferredReducedMotion(options) {\n const isReduced = useMediaQuery(\"(prefers-reduced-motion: reduce)\", options);\n return computed(() => {\n if (isReduced.value)\n return \"reduce\";\n return \"no-preference\";\n });\n}\n\nfunction usePrevious(value, initialValue) {\n const previous = shallowRef(initialValue);\n watch(resolveRef(value), (_, oldValue) => {\n previous.value = oldValue;\n }, { flush: \"sync\" });\n return readonly(previous);\n}\n\nconst useScreenOrientation = (options = {}) => {\n const {\n window = defaultWindow\n } = options;\n const isSupported = useSupported(() => window && \"screen\" in window && \"orientation\" in window.screen);\n const screenOrientation = isSupported.value ? window.screen.orientation : {};\n const orientation = ref(screenOrientation.type);\n const angle = ref(screenOrientation.angle || 0);\n if (isSupported.value) {\n useEventListener(window, \"orientationchange\", () => {\n orientation.value = screenOrientation.type;\n angle.value = screenOrientation.angle;\n });\n }\n const lockOrientation = (type) => {\n if (!isSupported.value)\n return Promise.reject(new Error(\"Not supported\"));\n return screenOrientation.lock(type);\n };\n const unlockOrientation = () => {\n if (isSupported.value)\n screenOrientation.unlock();\n };\n return {\n isSupported,\n orientation,\n angle,\n lockOrientation,\n unlockOrientation\n };\n};\n\nconst topVarName = \"--vueuse-safe-area-top\";\nconst rightVarName = \"--vueuse-safe-area-right\";\nconst bottomVarName = \"--vueuse-safe-area-bottom\";\nconst leftVarName = \"--vueuse-safe-area-left\";\nfunction useScreenSafeArea() {\n const top = ref(\"\");\n const right = ref(\"\");\n const bottom = ref(\"\");\n const left = ref(\"\");\n if (isClient) {\n const topCssVar = useCssVar(topVarName);\n const rightCssVar = useCssVar(rightVarName);\n const bottomCssVar = useCssVar(bottomVarName);\n const leftCssVar = useCssVar(leftVarName);\n topCssVar.value = \"env(safe-area-inset-top, 0px)\";\n rightCssVar.value = \"env(safe-area-inset-right, 0px)\";\n bottomCssVar.value = \"env(safe-area-inset-bottom, 0px)\";\n leftCssVar.value = \"env(safe-area-inset-left, 0px)\";\n update();\n useEventListener(\"resize\", useDebounceFn(update));\n }\n function update() {\n top.value = getValue(topVarName);\n right.value = getValue(rightVarName);\n bottom.value = getValue(bottomVarName);\n left.value = getValue(leftVarName);\n }\n return {\n top,\n right,\n bottom,\n left,\n update\n };\n}\nfunction getValue(position) {\n return getComputedStyle(document.documentElement).getPropertyValue(position);\n}\n\nfunction useScriptTag(src, onLoaded = noop, options = {}) {\n const {\n immediate = true,\n manual = false,\n type = \"text/javascript\",\n async = true,\n crossOrigin,\n referrerPolicy,\n noModule,\n defer,\n document = defaultDocument,\n attrs = {}\n } = options;\n const scriptTag = ref(null);\n let _promise = null;\n const loadScript = (waitForScriptLoad) => new Promise((resolve, reject) => {\n const resolveWithElement = (el2) => {\n scriptTag.value = el2;\n resolve(el2);\n return el2;\n };\n if (!document) {\n resolve(false);\n return;\n }\n let shouldAppend = false;\n let el = document.querySelector(`script[src=\"${resolveUnref(src)}\"]`);\n if (!el) {\n el = document.createElement(\"script\");\n el.type = type;\n el.async = async;\n el.src = resolveUnref(src);\n if (defer)\n el.defer = defer;\n if (crossOrigin)\n el.crossOrigin = crossOrigin;\n if (noModule)\n el.noModule = noModule;\n if (referrerPolicy)\n el.referrerPolicy = referrerPolicy;\n Object.entries(attrs).forEach(([name, value]) => el == null ? void 0 : el.setAttribute(name, value));\n shouldAppend = true;\n } else if (el.hasAttribute(\"data-loaded\")) {\n resolveWithElement(el);\n }\n el.addEventListener(\"error\", (event) => reject(event));\n el.addEventListener(\"abort\", (event) => reject(event));\n el.addEventListener(\"load\", () => {\n el.setAttribute(\"data-loaded\", \"true\");\n onLoaded(el);\n resolveWithElement(el);\n });\n if (shouldAppend)\n el = document.head.appendChild(el);\n if (!waitForScriptLoad)\n resolveWithElement(el);\n });\n const load = (waitForScriptLoad = true) => {\n if (!_promise)\n _promise = loadScript(waitForScriptLoad);\n return _promise;\n };\n const unload = () => {\n if (!document)\n return;\n _promise = null;\n if (scriptTag.value)\n scriptTag.value = null;\n const el = document.querySelector(`script[src=\"${resolveUnref(src)}\"]`);\n if (el)\n document.head.removeChild(el);\n };\n if (immediate && !manual)\n tryOnMounted(load);\n if (!manual)\n tryOnUnmounted(unload);\n return { scriptTag, load, unload };\n}\n\nfunction checkOverflowScroll(ele) {\n const style = window.getComputedStyle(ele);\n if (style.overflowX === \"scroll\" || style.overflowY === \"scroll\" || style.overflowX === \"auto\" && ele.clientHeight < ele.scrollHeight || style.overflowY === \"auto\" && ele.clientWidth < ele.scrollWidth) {\n return true;\n } else {\n const parent = ele.parentNode;\n if (!parent || parent.tagName === \"BODY\")\n return false;\n return checkOverflowScroll(parent);\n }\n}\nfunction preventDefault(rawEvent) {\n const e = rawEvent || window.event;\n const _target = e.target;\n if (checkOverflowScroll(_target))\n return false;\n if (e.touches.length > 1)\n return true;\n if (e.preventDefault)\n e.preventDefault();\n return false;\n}\nfunction useScrollLock(element, initialState = false) {\n const isLocked = ref(initialState);\n let stopTouchMoveListener = null;\n let initialOverflow;\n watch(resolveRef(element), (el) => {\n if (el) {\n const ele = el;\n initialOverflow = ele.style.overflow;\n if (isLocked.value)\n ele.style.overflow = \"hidden\";\n }\n }, {\n immediate: true\n });\n const lock = () => {\n const ele = resolveUnref(element);\n if (!ele || isLocked.value)\n return;\n if (isIOS) {\n stopTouchMoveListener = useEventListener(ele, \"touchmove\", (e) => {\n preventDefault(e);\n }, { passive: false });\n }\n ele.style.overflow = \"hidden\";\n isLocked.value = true;\n };\n const unlock = () => {\n const ele = resolveUnref(element);\n if (!ele || !isLocked.value)\n return;\n isIOS && (stopTouchMoveListener == null ? void 0 : stopTouchMoveListener());\n ele.style.overflow = initialOverflow;\n isLocked.value = false;\n };\n tryOnScopeDispose(unlock);\n return computed({\n get() {\n return isLocked.value;\n },\n set(v) {\n if (v)\n lock();\n else\n unlock();\n }\n });\n}\n\nfunction useSessionStorage(key, initialValue, options = {}) {\n const { window = defaultWindow } = options;\n return useStorage(key, initialValue, window == null ? void 0 : window.sessionStorage, options);\n}\n\nvar __defProp$5 = Object.defineProperty;\nvar __getOwnPropSymbols$5 = Object.getOwnPropertySymbols;\nvar __hasOwnProp$5 = Object.prototype.hasOwnProperty;\nvar __propIsEnum$5 = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$5 = (obj, key, value) => key in obj ? __defProp$5(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$5 = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$5.call(b, prop))\n __defNormalProp$5(a, prop, b[prop]);\n if (__getOwnPropSymbols$5)\n for (var prop of __getOwnPropSymbols$5(b)) {\n if (__propIsEnum$5.call(b, prop))\n __defNormalProp$5(a, prop, b[prop]);\n }\n return a;\n};\nfunction useShare(shareOptions = {}, options = {}) {\n const { navigator = defaultNavigator } = options;\n const _navigator = navigator;\n const isSupported = useSupported(() => _navigator && \"canShare\" in _navigator);\n const share = async (overrideOptions = {}) => {\n if (isSupported.value) {\n const data = __spreadValues$5(__spreadValues$5({}, resolveUnref(shareOptions)), resolveUnref(overrideOptions));\n let granted = true;\n if (data.files && _navigator.canShare)\n granted = _navigator.canShare({ files: data.files });\n if (granted)\n return _navigator.share(data);\n }\n };\n return {\n isSupported,\n share\n };\n}\n\nconst defaultSortFn = (source, compareFn) => source.sort(compareFn);\nconst defaultCompare = (a, b) => a - b;\nfunction useSorted(...args) {\n var _a, _b, _c, _d;\n const [source] = args;\n let compareFn = defaultCompare;\n let options = {};\n if (args.length === 2) {\n if (typeof args[1] === \"object\") {\n options = args[1];\n compareFn = (_a = options.compareFn) != null ? _a : defaultCompare;\n } else {\n compareFn = (_b = args[1]) != null ? _b : defaultCompare;\n }\n } else if (args.length > 2) {\n compareFn = (_c = args[1]) != null ? _c : defaultCompare;\n options = (_d = args[2]) != null ? _d : {};\n }\n const {\n dirty = false,\n sortFn = defaultSortFn\n } = options;\n if (!dirty)\n return computed(() => sortFn([...unref(source)], compareFn));\n watchEffect(() => {\n const result = sortFn(unref(source), compareFn);\n if (isRef(source))\n source.value = result;\n else\n source.splice(0, source.length, ...result);\n });\n return source;\n}\n\nfunction useSpeechRecognition(options = {}) {\n const {\n interimResults = true,\n continuous = true,\n window = defaultWindow\n } = options;\n const lang = resolveRef(options.lang || \"en-US\");\n const isListening = ref(false);\n const isFinal = ref(false);\n const result = ref(\"\");\n const error = shallowRef(void 0);\n const toggle = (value = !isListening.value) => {\n isListening.value = value;\n };\n const start = () => {\n isListening.value = true;\n };\n const stop = () => {\n isListening.value = false;\n };\n const SpeechRecognition = window && (window.SpeechRecognition || window.webkitSpeechRecognition);\n const isSupported = useSupported(() => SpeechRecognition);\n let recognition;\n if (isSupported.value) {\n recognition = new SpeechRecognition();\n recognition.continuous = continuous;\n recognition.interimResults = interimResults;\n recognition.lang = unref(lang);\n recognition.onstart = () => {\n isFinal.value = false;\n };\n watch(lang, (lang2) => {\n if (recognition && !isListening.value)\n recognition.lang = lang2;\n });\n recognition.onresult = (event) => {\n const transcript = Array.from(event.results).map((result2) => {\n isFinal.value = result2.isFinal;\n return result2[0];\n }).map((result2) => result2.transcript).join(\"\");\n result.value = transcript;\n error.value = void 0;\n };\n recognition.onerror = (event) => {\n error.value = event;\n };\n recognition.onend = () => {\n isListening.value = false;\n recognition.lang = unref(lang);\n };\n watch(isListening, () => {\n if (isListening.value)\n recognition.start();\n else\n recognition.stop();\n });\n }\n tryOnScopeDispose(() => {\n isListening.value = false;\n });\n return {\n isSupported,\n isListening,\n isFinal,\n recognition,\n result,\n error,\n toggle,\n start,\n stop\n };\n}\n\nfunction useSpeechSynthesis(text, options = {}) {\n const {\n pitch = 1,\n rate = 1,\n volume = 1,\n window = defaultWindow\n } = options;\n const synth = window && window.speechSynthesis;\n const isSupported = useSupported(() => synth);\n const isPlaying = ref(false);\n const status = ref(\"init\");\n const spokenText = resolveRef(text || \"\");\n const lang = resolveRef(options.lang || \"en-US\");\n const error = shallowRef(void 0);\n const toggle = (value = !isPlaying.value) => {\n isPlaying.value = value;\n };\n const bindEventsForUtterance = (utterance2) => {\n utterance2.lang = unref(lang);\n utterance2.voice = unref(options.voice) || null;\n utterance2.pitch = pitch;\n utterance2.rate = rate;\n utterance2.volume = volume;\n utterance2.onstart = () => {\n isPlaying.value = true;\n status.value = \"play\";\n };\n utterance2.onpause = () => {\n isPlaying.value = false;\n status.value = \"pause\";\n };\n utterance2.onresume = () => {\n isPlaying.value = true;\n status.value = \"play\";\n };\n utterance2.onend = () => {\n isPlaying.value = false;\n status.value = \"end\";\n };\n utterance2.onerror = (event) => {\n error.value = event;\n };\n };\n const utterance = computed(() => {\n isPlaying.value = false;\n status.value = \"init\";\n const newUtterance = new SpeechSynthesisUtterance(spokenText.value);\n bindEventsForUtterance(newUtterance);\n return newUtterance;\n });\n const speak = () => {\n synth.cancel();\n utterance && synth.speak(utterance.value);\n };\n const stop = () => {\n synth.cancel();\n isPlaying.value = false;\n };\n if (isSupported.value) {\n bindEventsForUtterance(utterance.value);\n watch(lang, (lang2) => {\n if (utterance.value && !isPlaying.value)\n utterance.value.lang = lang2;\n });\n if (options.voice) {\n watch(options.voice, () => {\n synth.cancel();\n });\n }\n watch(isPlaying, () => {\n if (isPlaying.value)\n synth.resume();\n else\n synth.pause();\n });\n }\n tryOnScopeDispose(() => {\n isPlaying.value = false;\n });\n return {\n isSupported,\n isPlaying,\n status,\n utterance,\n error,\n stop,\n toggle,\n speak\n };\n}\n\nfunction useStepper(steps, initialStep) {\n const stepsRef = ref(steps);\n const stepNames = computed(() => Array.isArray(stepsRef.value) ? stepsRef.value : Object.keys(stepsRef.value));\n const index = ref(stepNames.value.indexOf(initialStep != null ? initialStep : stepNames.value[0]));\n const current = computed(() => at(index.value));\n const isFirst = computed(() => index.value === 0);\n const isLast = computed(() => index.value === stepNames.value.length - 1);\n const next = computed(() => stepNames.value[index.value + 1]);\n const previous = computed(() => stepNames.value[index.value - 1]);\n function at(index2) {\n if (Array.isArray(stepsRef.value))\n return stepsRef.value[index2];\n return stepsRef.value[stepNames.value[index2]];\n }\n function get(step) {\n if (!stepNames.value.includes(step))\n return;\n return at(stepNames.value.indexOf(step));\n }\n function goTo(step) {\n if (stepNames.value.includes(step))\n index.value = stepNames.value.indexOf(step);\n }\n function goToNext() {\n if (isLast.value)\n return;\n index.value++;\n }\n function goToPrevious() {\n if (isFirst.value)\n return;\n index.value--;\n }\n function goBackTo(step) {\n if (isAfter(step))\n goTo(step);\n }\n function isNext(step) {\n return stepNames.value.indexOf(step) === index.value + 1;\n }\n function isPrevious(step) {\n return stepNames.value.indexOf(step) === index.value - 1;\n }\n function isCurrent(step) {\n return stepNames.value.indexOf(step) === index.value;\n }\n function isBefore(step) {\n return index.value < stepNames.value.indexOf(step);\n }\n function isAfter(step) {\n return index.value > stepNames.value.indexOf(step);\n }\n return {\n steps: stepsRef,\n stepNames,\n index,\n current,\n next,\n previous,\n isFirst,\n isLast,\n at,\n get,\n goTo,\n goToNext,\n goToPrevious,\n goBackTo,\n isNext,\n isPrevious,\n isCurrent,\n isBefore,\n isAfter\n };\n}\n\nvar __defProp$4 = Object.defineProperty;\nvar __getOwnPropSymbols$4 = Object.getOwnPropertySymbols;\nvar __hasOwnProp$4 = Object.prototype.hasOwnProperty;\nvar __propIsEnum$4 = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$4 = (obj, key, value) => key in obj ? __defProp$4(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$4 = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$4.call(b, prop))\n __defNormalProp$4(a, prop, b[prop]);\n if (__getOwnPropSymbols$4)\n for (var prop of __getOwnPropSymbols$4(b)) {\n if (__propIsEnum$4.call(b, prop))\n __defNormalProp$4(a, prop, b[prop]);\n }\n return a;\n};\nfunction useStorageAsync(key, initialValue, storage, options = {}) {\n var _a;\n const {\n flush = \"pre\",\n deep = true,\n listenToStorageChanges = true,\n writeDefaults = true,\n mergeDefaults = false,\n shallow,\n window = defaultWindow,\n eventFilter,\n onError = (e) => {\n console.error(e);\n }\n } = options;\n const rawInit = resolveUnref(initialValue);\n const type = guessSerializerType(rawInit);\n const data = (shallow ? shallowRef : ref)(initialValue);\n const serializer = (_a = options.serializer) != null ? _a : StorageSerializers[type];\n if (!storage) {\n try {\n storage = getSSRHandler(\"getDefaultStorage\", () => {\n var _a2;\n return (_a2 = defaultWindow) == null ? void 0 : _a2.localStorage;\n })();\n } catch (e) {\n onError(e);\n }\n }\n async function read(event) {\n if (!storage || event && event.key !== key)\n return;\n try {\n const rawValue = event ? event.newValue : await storage.getItem(key);\n if (rawValue == null) {\n data.value = rawInit;\n if (writeDefaults && rawInit !== null)\n await storage.setItem(key, await serializer.write(rawInit));\n } else if (mergeDefaults) {\n const value = await serializer.read(rawValue);\n if (isFunction(mergeDefaults))\n data.value = mergeDefaults(value, rawInit);\n else if (type === \"object\" && !Array.isArray(value))\n data.value = __spreadValues$4(__spreadValues$4({}, rawInit), value);\n else\n data.value = value;\n } else {\n data.value = await serializer.read(rawValue);\n }\n } catch (e) {\n onError(e);\n }\n }\n read();\n if (window && listenToStorageChanges)\n useEventListener(window, \"storage\", (e) => setTimeout(() => read(e), 0));\n if (storage) {\n watchWithFilter(data, async () => {\n try {\n if (data.value == null)\n await storage.removeItem(key);\n else\n await storage.setItem(key, await serializer.write(data.value));\n } catch (e) {\n onError(e);\n }\n }, {\n flush,\n deep,\n eventFilter\n });\n }\n return data;\n}\n\nlet _id = 0;\nfunction useStyleTag(css, options = {}) {\n const isLoaded = ref(false);\n const {\n document = defaultDocument,\n immediate = true,\n manual = false,\n id = `vueuse_styletag_${++_id}`\n } = options;\n const cssRef = ref(css);\n let stop = () => {\n };\n const load = () => {\n if (!document)\n return;\n const el = document.getElementById(id) || document.createElement(\"style\");\n if (!el.isConnected) {\n el.type = \"text/css\";\n el.id = id;\n if (options.media)\n el.media = options.media;\n document.head.appendChild(el);\n }\n if (isLoaded.value)\n return;\n stop = watch(cssRef, (value) => {\n el.textContent = value;\n }, { immediate: true });\n isLoaded.value = true;\n };\n const unload = () => {\n if (!document || !isLoaded.value)\n return;\n stop();\n document.head.removeChild(document.getElementById(id));\n isLoaded.value = false;\n };\n if (immediate && !manual)\n tryOnMounted(load);\n if (!manual)\n tryOnScopeDispose(unload);\n return {\n id,\n css: cssRef,\n unload,\n load,\n isLoaded: readonly(isLoaded)\n };\n}\n\nfunction useTemplateRefsList() {\n const refs = ref([]);\n refs.value.set = (el) => {\n if (el)\n refs.value.push(el);\n };\n onBeforeUpdate(() => {\n refs.value.length = 0;\n });\n return refs;\n}\n\nfunction useTextDirection(options = {}) {\n const {\n document = defaultDocument,\n selector = \"html\",\n observe = false,\n initialValue = \"ltr\"\n } = options;\n function getValue() {\n var _a, _b;\n return (_b = (_a = document == null ? void 0 : document.querySelector(selector)) == null ? void 0 : _a.getAttribute(\"dir\")) != null ? _b : initialValue;\n }\n const dir = ref(getValue());\n tryOnMounted(() => dir.value = getValue());\n if (observe && document) {\n useMutationObserver(document.querySelector(selector), () => dir.value = getValue(), { attributes: true });\n }\n return computed({\n get() {\n return dir.value;\n },\n set(v) {\n var _a, _b;\n dir.value = v;\n if (!document)\n return;\n if (dir.value)\n (_a = document.querySelector(selector)) == null ? void 0 : _a.setAttribute(\"dir\", dir.value);\n else\n (_b = document.querySelector(selector)) == null ? void 0 : _b.removeAttribute(\"dir\");\n }\n });\n}\n\nfunction getRangesFromSelection(selection) {\n var _a;\n const rangeCount = (_a = selection.rangeCount) != null ? _a : 0;\n const ranges = new Array(rangeCount);\n for (let i = 0; i < rangeCount; i++) {\n const range = selection.getRangeAt(i);\n ranges[i] = range;\n }\n return ranges;\n}\nfunction useTextSelection(options = {}) {\n const {\n window = defaultWindow\n } = options;\n const selection = ref(null);\n const text = computed(() => {\n var _a, _b;\n return (_b = (_a = selection.value) == null ? void 0 : _a.toString()) != null ? _b : \"\";\n });\n const ranges = computed(() => selection.value ? getRangesFromSelection(selection.value) : []);\n const rects = computed(() => ranges.value.map((range) => range.getBoundingClientRect()));\n function onSelectionChange() {\n selection.value = null;\n if (window)\n selection.value = window.getSelection();\n }\n if (window)\n useEventListener(window.document, \"selectionchange\", onSelectionChange);\n return {\n text,\n rects,\n ranges,\n selection\n };\n}\n\nfunction useTextareaAutosize(options) {\n const textarea = ref(options == null ? void 0 : options.element);\n const input = ref(options == null ? void 0 : options.input);\n function triggerResize() {\n var _a, _b;\n if (!textarea.value)\n return;\n textarea.value.style.height = \"1px\";\n textarea.value.style.height = `${(_a = textarea.value) == null ? void 0 : _a.scrollHeight}px`;\n (_b = options == null ? void 0 : options.onResize) == null ? void 0 : _b.call(options);\n }\n watch([input, textarea], triggerResize, { immediate: true });\n useResizeObserver(textarea, () => triggerResize());\n if (options == null ? void 0 : options.watch)\n watch(options.watch, triggerResize, { immediate: true, deep: true });\n return {\n textarea,\n input,\n triggerResize\n };\n}\n\nvar __defProp$3 = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols$3 = Object.getOwnPropertySymbols;\nvar __hasOwnProp$3 = Object.prototype.hasOwnProperty;\nvar __propIsEnum$3 = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$3 = (obj, key, value) => key in obj ? __defProp$3(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$3 = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$3.call(b, prop))\n __defNormalProp$3(a, prop, b[prop]);\n if (__getOwnPropSymbols$3)\n for (var prop of __getOwnPropSymbols$3(b)) {\n if (__propIsEnum$3.call(b, prop))\n __defNormalProp$3(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));\nfunction useThrottledRefHistory(source, options = {}) {\n const { throttle = 200, trailing = true } = options;\n const filter = throttleFilter(throttle, trailing);\n const history = useRefHistory(source, __spreadProps(__spreadValues$3({}, options), { eventFilter: filter }));\n return __spreadValues$3({}, history);\n}\n\nvar __defProp$2 = Object.defineProperty;\nvar __getOwnPropSymbols$2 = Object.getOwnPropertySymbols;\nvar __hasOwnProp$2 = Object.prototype.hasOwnProperty;\nvar __propIsEnum$2 = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$2 = (obj, key, value) => key in obj ? __defProp$2(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$2 = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$2.call(b, prop))\n __defNormalProp$2(a, prop, b[prop]);\n if (__getOwnPropSymbols$2)\n for (var prop of __getOwnPropSymbols$2(b)) {\n if (__propIsEnum$2.call(b, prop))\n __defNormalProp$2(a, prop, b[prop]);\n }\n return a;\n};\nvar __objRest = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp$2.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols$2)\n for (var prop of __getOwnPropSymbols$2(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum$2.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\nconst DEFAULT_UNITS = [\n { max: 6e4, value: 1e3, name: \"second\" },\n { max: 276e4, value: 6e4, name: \"minute\" },\n { max: 72e6, value: 36e5, name: \"hour\" },\n { max: 5184e5, value: 864e5, name: \"day\" },\n { max: 24192e5, value: 6048e5, name: \"week\" },\n { max: 28512e6, value: 2592e6, name: \"month\" },\n { max: Infinity, value: 31536e6, name: \"year\" }\n];\nconst DEFAULT_MESSAGES = {\n justNow: \"just now\",\n past: (n) => n.match(/\\d/) ? `${n} ago` : n,\n future: (n) => n.match(/\\d/) ? `in ${n}` : n,\n month: (n, past) => n === 1 ? past ? \"last month\" : \"next month\" : `${n} month${n > 1 ? \"s\" : \"\"}`,\n year: (n, past) => n === 1 ? past ? \"last year\" : \"next year\" : `${n} year${n > 1 ? \"s\" : \"\"}`,\n day: (n, past) => n === 1 ? past ? \"yesterday\" : \"tomorrow\" : `${n} day${n > 1 ? \"s\" : \"\"}`,\n week: (n, past) => n === 1 ? past ? \"last week\" : \"next week\" : `${n} week${n > 1 ? \"s\" : \"\"}`,\n hour: (n) => `${n} hour${n > 1 ? \"s\" : \"\"}`,\n minute: (n) => `${n} minute${n > 1 ? \"s\" : \"\"}`,\n second: (n) => `${n} second${n > 1 ? \"s\" : \"\"}`,\n invalid: \"\"\n};\nconst DEFAULT_FORMATTER = (date) => date.toISOString().slice(0, 10);\nfunction useTimeAgo(time, options = {}) {\n const {\n controls: exposeControls = false,\n updateInterval = 3e4\n } = options;\n const _a = useNow({ interval: updateInterval, controls: true }), { now } = _a, controls = __objRest(_a, [\"now\"]);\n const timeAgo = computed(() => formatTimeAgo(new Date(resolveUnref(time)), options, unref(now.value)));\n if (exposeControls) {\n return __spreadValues$2({\n timeAgo\n }, controls);\n } else {\n return timeAgo;\n }\n}\nfunction formatTimeAgo(from, options = {}, now = Date.now()) {\n var _a;\n const {\n max,\n messages = DEFAULT_MESSAGES,\n fullDateFormatter = DEFAULT_FORMATTER,\n units = DEFAULT_UNITS,\n showSecond = false,\n rounding = \"round\"\n } = options;\n const roundFn = typeof rounding === \"number\" ? (n) => +n.toFixed(rounding) : Math[rounding];\n const diff = +now - +from;\n const absDiff = Math.abs(diff);\n function getValue(diff2, unit) {\n return roundFn(Math.abs(diff2) / unit.value);\n }\n function format(diff2, unit) {\n const val = getValue(diff2, unit);\n const past = diff2 > 0;\n const str = applyFormat(unit.name, val, past);\n return applyFormat(past ? \"past\" : \"future\", str, past);\n }\n function applyFormat(name, val, isPast) {\n const formatter = messages[name];\n if (typeof formatter === \"function\")\n return formatter(val, isPast);\n return formatter.replace(\"{0}\", val.toString());\n }\n if (absDiff < 6e4 && !showSecond)\n return messages.justNow;\n if (typeof max === \"number\" && absDiff > max)\n return fullDateFormatter(new Date(from));\n if (typeof max === \"string\") {\n const unitMax = (_a = units.find((i) => i.name === max)) == null ? void 0 : _a.max;\n if (unitMax && absDiff > unitMax)\n return fullDateFormatter(new Date(from));\n }\n for (const [idx, unit] of units.entries()) {\n const val = getValue(diff, unit);\n if (val <= 0 && units[idx - 1])\n return format(diff, units[idx - 1]);\n if (absDiff < unit.max)\n return format(diff, unit);\n }\n return messages.invalid;\n}\n\nfunction useTimeoutPoll(fn, interval, timeoutPollOptions) {\n const { start } = useTimeoutFn(loop, interval);\n const isActive = ref(false);\n async function loop() {\n if (!isActive.value)\n return;\n await fn();\n start();\n }\n function resume() {\n if (!isActive.value) {\n isActive.value = true;\n loop();\n }\n }\n function pause() {\n isActive.value = false;\n }\n if (timeoutPollOptions == null ? void 0 : timeoutPollOptions.immediate)\n resume();\n tryOnScopeDispose(pause);\n return {\n isActive,\n pause,\n resume\n };\n}\n\nvar __defProp$1 = Object.defineProperty;\nvar __getOwnPropSymbols$1 = Object.getOwnPropertySymbols;\nvar __hasOwnProp$1 = Object.prototype.hasOwnProperty;\nvar __propIsEnum$1 = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$1 = (obj, key, value) => key in obj ? __defProp$1(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$1 = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$1.call(b, prop))\n __defNormalProp$1(a, prop, b[prop]);\n if (__getOwnPropSymbols$1)\n for (var prop of __getOwnPropSymbols$1(b)) {\n if (__propIsEnum$1.call(b, prop))\n __defNormalProp$1(a, prop, b[prop]);\n }\n return a;\n};\nfunction useTimestamp(options = {}) {\n const {\n controls: exposeControls = false,\n offset = 0,\n immediate = true,\n interval = \"requestAnimationFrame\",\n callback\n } = options;\n const ts = ref(timestamp() + offset);\n const update = () => ts.value = timestamp() + offset;\n const cb = callback ? () => {\n update();\n callback(ts.value);\n } : update;\n const controls = interval === \"requestAnimationFrame\" ? useRafFn(cb, { immediate }) : useIntervalFn(cb, interval, { immediate });\n if (exposeControls) {\n return __spreadValues$1({\n timestamp: ts\n }, controls);\n } else {\n return ts;\n }\n}\n\nfunction useTitle(newTitle = null, options = {}) {\n var _a, _b;\n const {\n document = defaultDocument\n } = options;\n const title = resolveRef((_a = newTitle != null ? newTitle : document == null ? void 0 : document.title) != null ? _a : null);\n const isReadonly = newTitle && isFunction(newTitle);\n function format(t) {\n if (!(\"titleTemplate\" in options))\n return t;\n const template = options.titleTemplate || \"%s\";\n return isFunction(template) ? template(t) : unref(template).replace(/%s/g, t);\n }\n watch(title, (t, o) => {\n if (t !== o && document)\n document.title = format(isString(t) ? t : \"\");\n }, { immediate: true });\n if (options.observe && !options.titleTemplate && document && !isReadonly) {\n useMutationObserver((_b = document.head) == null ? void 0 : _b.querySelector(\"title\"), () => {\n if (document && document.title !== title.value)\n title.value = format(document.title);\n }, { childList: true });\n }\n return title;\n}\n\nvar __defProp = Object.defineProperty;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nconst _TransitionPresets = {\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};\nconst TransitionPresets = __spreadValues({\n linear: identity\n}, _TransitionPresets);\nfunction createEasingFunction([p0, p1, p2, p3]) {\n const a = (a1, a2) => 1 - 3 * a2 + 3 * a1;\n const b = (a1, a2) => 3 * a2 - 6 * a1;\n const c = (a1) => 3 * a1;\n const calcBezier = (t, a1, a2) => ((a(a1, a2) * t + b(a1, a2)) * t + c(a1)) * t;\n const getSlope = (t, a1, a2) => 3 * a(a1, a2) * t * t + 2 * b(a1, a2) * t + c(a1);\n const getTforX = (x) => {\n let aGuessT = x;\n for (let i = 0; i < 4; ++i) {\n const currentSlope = getSlope(aGuessT, p0, p2);\n if (currentSlope === 0)\n return aGuessT;\n const currentX = calcBezier(aGuessT, p0, p2) - x;\n aGuessT -= currentX / currentSlope;\n }\n return aGuessT;\n };\n return (x) => p0 === p1 && p2 === p3 ? x : calcBezier(getTforX(x), p1, p3);\n}\nfunction useTransition(source, options = {}) {\n const {\n delay = 0,\n disabled = false,\n duration = 1e3,\n onFinished = noop,\n onStarted = noop,\n transition = identity\n } = options;\n const currentTransition = computed(() => {\n const t = unref(transition);\n return isFunction(t) ? t : createEasingFunction(t);\n });\n const sourceValue = computed(() => {\n const s = unref(source);\n return isNumber(s) ? s : s.map(unref);\n });\n const sourceVector = computed(() => isNumber(sourceValue.value) ? [sourceValue.value] : sourceValue.value);\n const outputVector = ref(sourceVector.value.slice(0));\n let currentDuration;\n let diffVector;\n let endAt;\n let startAt;\n let startVector;\n const { resume, pause } = useRafFn(() => {\n const now = Date.now();\n const progress = clamp(1 - (endAt - now) / currentDuration, 0, 1);\n outputVector.value = startVector.map((val, i) => {\n var _a;\n return val + ((_a = diffVector[i]) != null ? _a : 0) * currentTransition.value(progress);\n });\n if (progress >= 1) {\n pause();\n onFinished();\n }\n }, { immediate: false });\n const start = () => {\n pause();\n currentDuration = unref(duration);\n diffVector = outputVector.value.map((n, i) => {\n var _a, _b;\n return ((_a = sourceVector.value[i]) != null ? _a : 0) - ((_b = outputVector.value[i]) != null ? _b : 0);\n });\n startVector = outputVector.value.slice(0);\n startAt = Date.now();\n endAt = startAt + currentDuration;\n resume();\n onStarted();\n };\n const timeout = useTimeoutFn(start, delay, { immediate: false });\n watch(sourceVector, () => {\n if (unref(disabled))\n return;\n if (unref(delay) <= 0)\n start();\n else\n timeout.start();\n }, { deep: true });\n watch(() => unref(disabled), (v) => {\n if (v) {\n outputVector.value = sourceVector.value.slice(0);\n pause();\n }\n });\n return computed(() => {\n const targetVector = unref(disabled) ? sourceVector : outputVector;\n return isNumber(sourceValue.value) ? targetVector.value[0] : targetVector.value;\n });\n}\n\nfunction useUrlSearchParams(mode = \"history\", options = {}) {\n const {\n initialValue = {},\n removeNullishValues = true,\n removeFalsyValues = false,\n write: enableWrite = true,\n window = defaultWindow\n } = options;\n if (!window)\n return reactive(initialValue);\n const state = reactive({});\n function getRawParams() {\n if (mode === \"history\") {\n return window.location.search || \"\";\n } else if (mode === \"hash\") {\n const hash = window.location.hash || \"\";\n const index = hash.indexOf(\"?\");\n return index > 0 ? hash.slice(index) : \"\";\n } else {\n return (window.location.hash || \"\").replace(/^#/, \"\");\n }\n }\n function constructQuery(params) {\n const stringified = params.toString();\n if (mode === \"history\")\n return `${stringified ? `?${stringified}` : \"\"}${window.location.hash || \"\"}`;\n if (mode === \"hash-params\")\n return `${window.location.search || \"\"}${stringified ? `#${stringified}` : \"\"}`;\n const hash = window.location.hash || \"#\";\n const index = hash.indexOf(\"?\");\n if (index > 0)\n return `${hash.slice(0, index)}${stringified ? `?${stringified}` : \"\"}`;\n return `${hash}${stringified ? `?${stringified}` : \"\"}`;\n }\n function read() {\n return new URLSearchParams(getRawParams());\n }\n function updateState(params) {\n const unusedKeys = new Set(Object.keys(state));\n for (const key of params.keys()) {\n const paramsForKey = params.getAll(key);\n state[key] = paramsForKey.length > 1 ? paramsForKey : params.get(key) || \"\";\n unusedKeys.delete(key);\n }\n Array.from(unusedKeys).forEach((key) => delete state[key]);\n }\n const { pause, resume } = pausableWatch(state, () => {\n const params = new URLSearchParams(\"\");\n Object.keys(state).forEach((key) => {\n const mapEntry = state[key];\n if (Array.isArray(mapEntry))\n mapEntry.forEach((value) => params.append(key, value));\n else if (removeNullishValues && mapEntry == null)\n params.delete(key);\n else if (removeFalsyValues && !mapEntry)\n params.delete(key);\n else\n params.set(key, mapEntry);\n });\n write(params);\n }, { deep: true });\n function write(params, shouldUpdate) {\n pause();\n if (shouldUpdate)\n updateState(params);\n window.history.replaceState(window.history.state, window.document.title, window.location.pathname + constructQuery(params));\n resume();\n }\n function onChanged() {\n if (!enableWrite)\n return;\n write(read(), true);\n }\n useEventListener(window, \"popstate\", onChanged, false);\n if (mode !== \"history\")\n useEventListener(window, \"hashchange\", onChanged, false);\n const initial = read();\n if (initial.keys().next().value)\n updateState(initial);\n else\n Object.assign(state, initialValue);\n return state;\n}\n\nfunction useUserMedia(options = {}) {\n var _a, _b;\n const enabled = ref((_a = options.enabled) != null ? _a : false);\n const autoSwitch = ref((_b = options.autoSwitch) != null ? _b : true);\n const videoDeviceId = ref(options.videoDeviceId);\n const audioDeviceId = ref(options.audioDeviceId);\n const { navigator = defaultNavigator } = options;\n const isSupported = useSupported(() => {\n var _a2;\n return (_a2 = navigator == null ? void 0 : navigator.mediaDevices) == null ? void 0 : _a2.getUserMedia;\n });\n const stream = shallowRef();\n function getDeviceOptions(device) {\n if (device.value === \"none\" || device.value === false)\n return false;\n if (device.value == null)\n return true;\n return {\n deviceId: device.value\n };\n }\n async function _start() {\n if (!isSupported.value || stream.value)\n return;\n stream.value = await navigator.mediaDevices.getUserMedia({\n video: getDeviceOptions(videoDeviceId),\n audio: getDeviceOptions(audioDeviceId)\n });\n return stream.value;\n }\n async function _stop() {\n var _a2;\n (_a2 = stream.value) == null ? void 0 : _a2.getTracks().forEach((t) => t.stop());\n stream.value = void 0;\n }\n function stop() {\n _stop();\n enabled.value = false;\n }\n async function start() {\n await _start();\n if (stream.value)\n enabled.value = true;\n return stream.value;\n }\n async function restart() {\n _stop();\n return await start();\n }\n watch(enabled, (v) => {\n if (v)\n _start();\n else\n _stop();\n }, { immediate: true });\n watch([videoDeviceId, audioDeviceId], () => {\n if (autoSwitch.value && stream.value)\n restart();\n }, { immediate: true });\n return {\n isSupported,\n stream,\n start,\n stop,\n restart,\n videoDeviceId,\n audioDeviceId,\n enabled,\n autoSwitch\n };\n}\n\nfunction useVModel(props, key, emit, options = {}) {\n var _a, _b, _c, _d, _e;\n const {\n clone = false,\n passive = false,\n eventName,\n deep = false,\n defaultValue\n } = options;\n const vm = getCurrentInstance();\n const _emit = emit || (vm == null ? void 0 : vm.emit) || ((_a = vm == null ? void 0 : vm.$emit) == null ? void 0 : _a.bind(vm)) || ((_c = (_b = vm == null ? void 0 : vm.proxy) == null ? void 0 : _b.$emit) == null ? void 0 : _c.bind(vm == null ? void 0 : vm.proxy));\n let event = eventName;\n if (!key) {\n if (isVue2) {\n const modelOptions = (_e = (_d = vm == null ? void 0 : vm.proxy) == null ? void 0 : _d.$options) == null ? void 0 : _e.model;\n key = (modelOptions == null ? void 0 : modelOptions.value) || \"value\";\n if (!eventName)\n event = (modelOptions == null ? void 0 : modelOptions.event) || \"input\";\n } else {\n key = \"modelValue\";\n }\n }\n event = eventName || event || `update:${key.toString()}`;\n const cloneFn = (val) => !clone ? val : isFunction(clone) ? clone(val) : cloneFnJSON(val);\n const getValue = () => isDef(props[key]) ? cloneFn(props[key]) : defaultValue;\n if (passive) {\n const initialValue = getValue();\n const proxy = ref(initialValue);\n watch(() => props[key], (v) => proxy.value = cloneFn(v));\n watch(proxy, (v) => {\n if (v !== props[key] || deep)\n _emit(event, v);\n }, { deep });\n return proxy;\n } else {\n return computed({\n get() {\n return getValue();\n },\n set(value) {\n _emit(event, value);\n }\n });\n }\n}\n\nfunction useVModels(props, emit, options = {}) {\n const ret = {};\n for (const key in props)\n ret[key] = useVModel(props, key, emit, options);\n return ret;\n}\n\nfunction useVibrate(options) {\n const {\n pattern = [],\n interval = 0,\n navigator = defaultNavigator\n } = options || {};\n const isSupported = useSupported(() => typeof navigator !== \"undefined\" && \"vibrate\" in navigator);\n const patternRef = resolveRef(pattern);\n let intervalControls;\n const vibrate = (pattern2 = patternRef.value) => {\n if (isSupported.value)\n navigator.vibrate(pattern2);\n };\n const stop = () => {\n if (isSupported.value)\n navigator.vibrate(0);\n intervalControls == null ? void 0 : intervalControls.pause();\n };\n if (interval > 0) {\n intervalControls = useIntervalFn(vibrate, interval, {\n immediate: false,\n immediateCallback: false\n });\n }\n return {\n isSupported,\n pattern,\n intervalControls,\n vibrate,\n stop\n };\n}\n\nfunction useVirtualList(list, options) {\n const { containerStyle, wrapperProps, scrollTo, calculateRange, currentList, containerRef } = \"itemHeight\" in options ? useVerticalVirtualList(options, list) : useHorizontalVirtualList(options, list);\n return {\n list: currentList,\n scrollTo,\n containerProps: {\n ref: containerRef,\n onScroll: () => {\n calculateRange();\n },\n style: containerStyle\n },\n wrapperProps\n };\n}\nfunction useVirtualListResources(list) {\n const containerRef = ref(null);\n const size = useElementSize(containerRef);\n const currentList = ref([]);\n const source = shallowRef(list);\n const state = ref({ start: 0, end: 10 });\n return { state, source, currentList, size, containerRef };\n}\nfunction createGetViewCapacity(state, source, itemSize) {\n return (containerSize) => {\n if (typeof itemSize === \"number\")\n return Math.ceil(containerSize / itemSize);\n const { start = 0 } = state.value;\n let sum = 0;\n let capacity = 0;\n for (let i = start; i < source.value.length; i++) {\n const size = itemSize(i);\n sum += size;\n capacity = i;\n if (sum > containerSize)\n break;\n }\n return capacity - start;\n };\n}\nfunction createGetOffset(source, itemSize) {\n return (scrollDirection) => {\n if (typeof itemSize === \"number\")\n return Math.floor(scrollDirection / itemSize) + 1;\n let sum = 0;\n let offset = 0;\n for (let i = 0; i < source.value.length; i++) {\n const size = itemSize(i);\n sum += size;\n if (sum >= scrollDirection) {\n offset = i;\n break;\n }\n }\n return offset + 1;\n };\n}\nfunction createCalculateRange(type, overscan, getOffset, getViewCapacity, { containerRef, state, currentList, source }) {\n return () => {\n const element = containerRef.value;\n if (element) {\n const offset = getOffset(type === \"vertical\" ? element.scrollTop : element.scrollLeft);\n const viewCapacity = getViewCapacity(type === \"vertical\" ? element.clientHeight : element.clientWidth);\n const from = offset - overscan;\n const to = offset + viewCapacity + overscan;\n state.value = {\n start: from < 0 ? 0 : from,\n end: to > source.value.length ? source.value.length : to\n };\n currentList.value = source.value.slice(state.value.start, state.value.end).map((ele, index) => ({\n data: ele,\n index: index + state.value.start\n }));\n }\n };\n}\nfunction createGetDistance(itemSize, source) {\n return (index) => {\n if (typeof itemSize === \"number\") {\n const size2 = index * itemSize;\n return size2;\n }\n const size = source.value.slice(0, index).reduce((sum, _, i) => sum + itemSize(i), 0);\n return size;\n };\n}\nfunction useWatchForSizes(size, list, calculateRange) {\n watch([size.width, size.height, list], () => {\n calculateRange();\n });\n}\nfunction createComputedTotalSize(itemSize, source) {\n return computed(() => {\n if (typeof itemSize === \"number\")\n return source.value.length * itemSize;\n return source.value.reduce((sum, _, index) => sum + itemSize(index), 0);\n });\n}\nconst scrollToDictionaryForElementScrollKey = {\n horizontal: \"scrollLeft\",\n vertical: \"scrollTop\"\n};\nfunction createScrollTo(type, calculateRange, getDistance, containerRef) {\n return (index) => {\n if (containerRef.value) {\n containerRef.value[scrollToDictionaryForElementScrollKey[type]] = getDistance(index);\n calculateRange();\n }\n };\n}\nfunction useHorizontalVirtualList(options, list) {\n const resources = useVirtualListResources(list);\n const { state, source, currentList, size, containerRef } = resources;\n const containerStyle = { overflowX: \"auto\" };\n const { itemWidth, overscan = 5 } = options;\n const getViewCapacity = createGetViewCapacity(state, source, itemWidth);\n const getOffset = createGetOffset(source, itemWidth);\n const calculateRange = createCalculateRange(\"horizontal\", overscan, getOffset, getViewCapacity, resources);\n const getDistanceLeft = createGetDistance(itemWidth, source);\n const offsetLeft = computed(() => getDistanceLeft(state.value.start));\n const totalWidth = createComputedTotalSize(itemWidth, source);\n useWatchForSizes(size, list, calculateRange);\n const scrollTo = createScrollTo(\"horizontal\", calculateRange, getDistanceLeft, containerRef);\n const wrapperProps = computed(() => {\n return {\n style: {\n height: \"100%\",\n width: `${totalWidth.value - offsetLeft.value}px`,\n marginLeft: `${offsetLeft.value}px`,\n display: \"flex\"\n }\n };\n });\n return {\n scrollTo,\n calculateRange,\n wrapperProps,\n containerStyle,\n currentList,\n containerRef\n };\n}\nfunction useVerticalVirtualList(options, list) {\n const resources = useVirtualListResources(list);\n const { state, source, currentList, size, containerRef } = resources;\n const containerStyle = { overflowY: \"auto\" };\n const { itemHeight, overscan = 5 } = options;\n const getViewCapacity = createGetViewCapacity(state, source, itemHeight);\n const getOffset = createGetOffset(source, itemHeight);\n const calculateRange = createCalculateRange(\"vertical\", overscan, getOffset, getViewCapacity, resources);\n const getDistanceTop = createGetDistance(itemHeight, source);\n const offsetTop = computed(() => getDistanceTop(state.value.start));\n const totalHeight = createComputedTotalSize(itemHeight, source);\n useWatchForSizes(size, list, calculateRange);\n const scrollTo = createScrollTo(\"vertical\", calculateRange, getDistanceTop, containerRef);\n const wrapperProps = computed(() => {\n return {\n style: {\n width: \"100%\",\n height: `${totalHeight.value - offsetTop.value}px`,\n marginTop: `${offsetTop.value}px`\n }\n };\n });\n return {\n calculateRange,\n scrollTo,\n containerStyle,\n wrapperProps,\n currentList,\n containerRef\n };\n}\n\nconst useWakeLock = (options = {}) => {\n const {\n navigator = defaultNavigator,\n document = defaultDocument\n } = options;\n let wakeLock;\n const isSupported = useSupported(() => navigator && \"wakeLock\" in navigator);\n const isActive = ref(false);\n async function onVisibilityChange() {\n if (!isSupported.value || !wakeLock)\n return;\n if (document && document.visibilityState === \"visible\")\n wakeLock = await navigator.wakeLock.request(\"screen\");\n isActive.value = !wakeLock.released;\n }\n if (document)\n useEventListener(document, \"visibilitychange\", onVisibilityChange, { passive: true });\n async function request(type) {\n if (!isSupported.value)\n return;\n wakeLock = await navigator.wakeLock.request(type);\n isActive.value = !wakeLock.released;\n }\n async function release() {\n if (!isSupported.value || !wakeLock)\n return;\n await wakeLock.release();\n isActive.value = !wakeLock.released;\n wakeLock = null;\n }\n return {\n isSupported,\n isActive,\n request,\n release\n };\n};\n\nconst useWebNotification = (defaultOptions = {}) => {\n const {\n window = defaultWindow\n } = defaultOptions;\n const isSupported = useSupported(() => !!window && \"Notification\" in window);\n const notification = ref(null);\n const requestPermission = async () => {\n if (!isSupported.value)\n return;\n if (\"permission\" in Notification && Notification.permission !== \"denied\")\n await Notification.requestPermission();\n };\n const onClick = createEventHook();\n const onShow = createEventHook();\n const onError = createEventHook();\n const onClose = createEventHook();\n const show = async (overrides) => {\n if (!isSupported.value)\n return;\n await requestPermission();\n const options = Object.assign({}, defaultOptions, overrides);\n notification.value = new Notification(options.title || \"\", options);\n notification.value.onclick = (event) => onClick.trigger(event);\n notification.value.onshow = (event) => onShow.trigger(event);\n notification.value.onerror = (event) => onError.trigger(event);\n notification.value.onclose = (event) => onClose.trigger(event);\n return notification.value;\n };\n const close = () => {\n if (notification.value)\n notification.value.close();\n notification.value = null;\n };\n tryOnMounted(async () => {\n if (isSupported.value)\n await requestPermission();\n });\n tryOnScopeDispose(close);\n if (isSupported.value && window) {\n const document = window.document;\n useEventListener(document, \"visibilitychange\", (e) => {\n e.preventDefault();\n if (document.visibilityState === \"visible\") {\n close();\n }\n });\n }\n return {\n isSupported,\n notification,\n show,\n close,\n onClick,\n onShow,\n onError,\n onClose\n };\n};\n\nconst DEFAULT_PING_MESSAGE = \"ping\";\nfunction resolveNestedOptions(options) {\n if (options === true)\n return {};\n return options;\n}\nfunction useWebSocket(url, options = {}) {\n const {\n onConnected,\n onDisconnected,\n onError,\n onMessage,\n immediate = true,\n autoClose = true,\n protocols = []\n } = options;\n const data = ref(null);\n const status = ref(\"CLOSED\");\n const wsRef = ref();\n const urlRef = resolveRef(url);\n let heartbeatPause;\n let heartbeatResume;\n let explicitlyClosed = false;\n let retried = 0;\n let bufferedData = [];\n let pongTimeoutWait;\n const close = (code = 1e3, reason) => {\n if (!wsRef.value)\n return;\n explicitlyClosed = true;\n heartbeatPause == null ? void 0 : heartbeatPause();\n wsRef.value.close(code, reason);\n };\n const _sendBuffer = () => {\n if (bufferedData.length && wsRef.value && status.value === \"OPEN\") {\n for (const buffer of bufferedData)\n wsRef.value.send(buffer);\n bufferedData = [];\n }\n };\n const resetHeartbeat = () => {\n clearTimeout(pongTimeoutWait);\n pongTimeoutWait = void 0;\n };\n const send = (data2, useBuffer = true) => {\n if (!wsRef.value || status.value !== \"OPEN\") {\n if (useBuffer)\n bufferedData.push(data2);\n return false;\n }\n _sendBuffer();\n wsRef.value.send(data2);\n return true;\n };\n const _init = () => {\n if (explicitlyClosed || typeof urlRef.value === \"undefined\")\n return;\n const ws = new WebSocket(urlRef.value, protocols);\n wsRef.value = ws;\n status.value = \"CONNECTING\";\n ws.onopen = () => {\n status.value = \"OPEN\";\n onConnected == null ? void 0 : onConnected(ws);\n heartbeatResume == null ? void 0 : heartbeatResume();\n _sendBuffer();\n };\n ws.onclose = (ev) => {\n status.value = \"CLOSED\";\n wsRef.value = void 0;\n onDisconnected == null ? void 0 : onDisconnected(ws, ev);\n if (!explicitlyClosed && options.autoReconnect) {\n const {\n retries = -1,\n delay = 1e3,\n onFailed\n } = resolveNestedOptions(options.autoReconnect);\n retried += 1;\n if (typeof retries === \"number\" && (retries < 0 || retried < retries))\n setTimeout(_init, delay);\n else if (typeof retries === \"function\" && retries())\n setTimeout(_init, delay);\n else\n onFailed == null ? void 0 : onFailed();\n }\n };\n ws.onerror = (e) => {\n onError == null ? void 0 : onError(ws, e);\n };\n ws.onmessage = (e) => {\n if (options.heartbeat) {\n resetHeartbeat();\n const {\n message = DEFAULT_PING_MESSAGE\n } = resolveNestedOptions(options.heartbeat);\n if (e.data === message)\n return;\n }\n data.value = e.data;\n onMessage == null ? void 0 : onMessage(ws, e);\n };\n };\n if (options.heartbeat) {\n const {\n message = DEFAULT_PING_MESSAGE,\n interval = 1e3,\n pongTimeout = 1e3\n } = resolveNestedOptions(options.heartbeat);\n const { pause, resume } = useIntervalFn(() => {\n send(message, false);\n if (pongTimeoutWait != null)\n return;\n pongTimeoutWait = setTimeout(() => {\n close();\n }, pongTimeout);\n }, interval, { immediate: false });\n heartbeatPause = pause;\n heartbeatResume = resume;\n }\n if (autoClose) {\n useEventListener(window, \"beforeunload\", () => close());\n tryOnScopeDispose(close);\n }\n const open = () => {\n close();\n explicitlyClosed = false;\n retried = 0;\n _init();\n };\n if (immediate)\n watch(urlRef, open, { immediate: true });\n return {\n data,\n status,\n close,\n send,\n open,\n ws: wsRef\n };\n}\n\nfunction useWebWorker(arg0, workerOptions, options) {\n const {\n window = defaultWindow\n } = options != null ? options : {};\n const data = ref(null);\n const worker = shallowRef();\n const post = function post2(val) {\n if (!worker.value)\n return;\n worker.value.postMessage(val);\n };\n const terminate = function terminate2() {\n if (!worker.value)\n return;\n worker.value.terminate();\n };\n if (window) {\n if (isString(arg0))\n worker.value = new Worker(arg0, workerOptions);\n else if (isFunction(arg0))\n worker.value = arg0();\n else\n worker.value = arg0;\n worker.value.onmessage = (e) => {\n data.value = e.data;\n };\n tryOnScopeDispose(() => {\n if (worker.value)\n worker.value.terminate();\n });\n }\n return {\n data,\n post,\n terminate,\n worker\n };\n}\n\nconst jobRunner = (userFunc) => (e) => {\n const userFuncArgs = e.data[0];\n return Promise.resolve(userFunc.apply(void 0, userFuncArgs)).then((result) => {\n postMessage([\"SUCCESS\", result]);\n }).catch((error) => {\n postMessage([\"ERROR\", error]);\n });\n};\n\nconst depsParser = (deps) => {\n if (deps.length === 0)\n return \"\";\n const depsString = deps.map((dep) => `'${dep}'`).toString();\n return `importScripts(${depsString})`;\n};\n\nconst createWorkerBlobUrl = (fn, deps) => {\n const blobCode = `${depsParser(deps)}; onmessage=(${jobRunner})(${fn})`;\n const blob = new Blob([blobCode], { type: \"text/javascript\" });\n const url = URL.createObjectURL(blob);\n return url;\n};\n\nconst useWebWorkerFn = (fn, options = {}) => {\n const {\n dependencies = [],\n timeout,\n window = defaultWindow\n } = options;\n const worker = ref();\n const workerStatus = ref(\"PENDING\");\n const promise = ref({});\n const timeoutId = ref();\n const workerTerminate = (status = \"PENDING\") => {\n if (worker.value && worker.value._url && window) {\n worker.value.terminate();\n URL.revokeObjectURL(worker.value._url);\n promise.value = {};\n worker.value = void 0;\n window.clearTimeout(timeoutId.value);\n workerStatus.value = status;\n }\n };\n workerTerminate();\n tryOnScopeDispose(workerTerminate);\n const generateWorker = () => {\n const blobUrl = createWorkerBlobUrl(fn, dependencies);\n const newWorker = new Worker(blobUrl);\n newWorker._url = blobUrl;\n newWorker.onmessage = (e) => {\n const { resolve = () => {\n }, reject = () => {\n } } = promise.value;\n const [status, result] = e.data;\n switch (status) {\n case \"SUCCESS\":\n resolve(result);\n workerTerminate(status);\n break;\n default:\n reject(result);\n workerTerminate(\"ERROR\");\n break;\n }\n };\n newWorker.onerror = (e) => {\n const { reject = () => {\n } } = promise.value;\n reject(e);\n workerTerminate(\"ERROR\");\n };\n if (timeout) {\n timeoutId.value = setTimeout(() => workerTerminate(\"TIMEOUT_EXPIRED\"), timeout);\n }\n return newWorker;\n };\n const callWorker = (...fnArgs) => new Promise((resolve, reject) => {\n promise.value = {\n resolve,\n reject\n };\n worker.value && worker.value.postMessage([[...fnArgs]]);\n workerStatus.value = \"RUNNING\";\n });\n const workerFn = (...fnArgs) => {\n if (workerStatus.value === \"RUNNING\") {\n console.error(\"[useWebWorkerFn] You can only run one instance of the worker at a time.\");\n return Promise.reject();\n }\n worker.value = generateWorker();\n return callWorker(...fnArgs);\n };\n return {\n workerFn,\n workerStatus,\n workerTerminate\n };\n};\n\nfunction useWindowFocus({ window = defaultWindow } = {}) {\n if (!window)\n return ref(false);\n const focused = ref(window.document.hasFocus());\n useEventListener(window, \"blur\", () => {\n focused.value = false;\n });\n useEventListener(window, \"focus\", () => {\n focused.value = true;\n });\n return focused;\n}\n\nfunction useWindowScroll({ window = defaultWindow } = {}) {\n if (!window) {\n return {\n x: ref(0),\n y: ref(0)\n };\n }\n const x = ref(window.scrollX);\n const y = ref(window.scrollY);\n useEventListener(window, \"scroll\", () => {\n x.value = window.scrollX;\n y.value = window.scrollY;\n }, {\n capture: false,\n passive: true\n });\n return { x, y };\n}\n\nfunction useWindowSize(options = {}) {\n const {\n window = defaultWindow,\n initialWidth = Infinity,\n initialHeight = Infinity,\n listenOrientation = true,\n includeScrollbar = true\n } = options;\n const width = ref(initialWidth);\n const height = ref(initialHeight);\n const update = () => {\n if (window) {\n if (includeScrollbar) {\n width.value = window.innerWidth;\n height.value = window.innerHeight;\n } else {\n width.value = window.document.documentElement.clientWidth;\n height.value = window.document.documentElement.clientHeight;\n }\n }\n };\n update();\n tryOnMounted(update);\n useEventListener(\"resize\", update, { passive: true });\n if (listenOrientation)\n useEventListener(\"orientationchange\", update, { passive: true });\n return { width, height };\n}\n\nexport { DefaultMagicKeysAliasMap, StorageSerializers, SwipeDirection, TransitionPresets, computedAsync as asyncComputed, breakpointsAntDesign, breakpointsBootstrapV5, breakpointsMasterCss, breakpointsQuasar, breakpointsSematic, breakpointsTailwind, breakpointsVuetify, cloneFnJSON, computedAsync, computedInject, createFetch, createUnrefFn, customStorageEventName, defaultDocument, defaultLocation, defaultNavigator, defaultWindow, formatTimeAgo, getSSRHandler, mapGamepadToXbox360Controller, onClickOutside, onKeyDown, onKeyPressed, onKeyStroke, onKeyUp, onLongPress, onStartTyping, setSSRHandler, templateRef, unrefElement, useActiveElement, useAsyncQueue, useAsyncState, useBase64, useBattery, useBluetooth, useBreakpoints, useBroadcastChannel, useBrowserLocation, useCached, useClipboard, useCloned, useColorMode, useConfirmDialog, useCssVar, useCurrentElement, useCycleList, useDark, useDebouncedRefHistory, useDeviceMotion, useDeviceOrientation, useDevicePixelRatio, useDevicesList, useDisplayMedia, useDocumentVisibility, useDraggable, useDropZone, useElementBounding, useElementByPoint, useElementHover, useElementSize, useElementVisibility, useEventBus, useEventListener, useEventSource, useEyeDropper, useFavicon, useFetch, useFileDialog, useFileSystemAccess, useFocus, useFocusWithin, useFps, useFullscreen, useGamepad, useGeolocation, useIdle, useImage, useInfiniteScroll, useIntersectionObserver, useKeyModifier, useLocalStorage, useMagicKeys, useManualRefHistory, useMediaControls, useMediaQuery, useMemoize, useMemory, useMounted, useMouse, useMouseInElement, useMousePressed, useMutationObserver, useNavigatorLanguage, useNetwork, useNow, useObjectUrl, useOffsetPagination, useOnline, usePageLeave, useParallax, usePermission, usePointer, usePointerLock, usePointerSwipe, usePreferredColorScheme, usePreferredContrast, usePreferredDark, usePreferredLanguages, usePreferredReducedMotion, usePrevious, useRafFn, useRefHistory, useResizeObserver, useScreenOrientation, useScreenSafeArea, useScriptTag, useScroll, useScrollLock, useSessionStorage, useShare, useSorted, useSpeechRecognition, useSpeechSynthesis, useStepper, useStorage, useStorageAsync, useStyleTag, useSupported, useSwipe, useTemplateRefsList, useTextDirection, useTextSelection, useTextareaAutosize, useThrottledRefHistory, useTimeAgo, useTimeoutPoll, useTimestamp, useTitle, useTransition, useUrlSearchParams, useUserMedia, useVModel, useVModels, useVibrate, useVirtualList, useWakeLock, useWebNotification, useWebSocket, useWebWorker, useWebWorkerFn, useWindowFocus, useWindowScroll, useWindowSize };\n","import { onMounted, onBeforeUnmount } from 'vue'\nimport { useElementVisibility } from '@vueuse/core'\n\nimport type { KeyboardNavigationOptions, KeypressHandlers } from 'types'\n\n// helper functions\nconst isVisible = (element: HTMLElement) => {\n\tlet isVisible = useElementVisibility(element).value\n\tisVisible = isVisible && element.offsetHeight > 0\n\treturn isVisible\n}\n\nconst isFocusable = (element: HTMLElement) => {\n\treturn element.tabIndex >= 0\n}\n\n// navigation functions\nconst getUpCell = (event: KeyboardEvent) => {\n\tconst $target = event.target as HTMLElement\n\treturn _getUpCell($target)\n}\n\nconst _getUpCell = (element: HTMLElement): HTMLElement | undefined => {\n\tlet $upCell: HTMLElement | undefined\n\tif (element instanceof HTMLTableCellElement) {\n\t\tconst $prevRow = element.parentElement?.previousElementSibling as HTMLTableRowElement\n\t\tif ($prevRow) {\n\t\t\tconst $prevRowCells = Array.from($prevRow.children)\n\t\t\tconst $prevCell = $prevRowCells[element.cellIndex] as HTMLElement\n\t\t\tif ($prevCell) {\n\t\t\t\t$upCell = $prevCell\n\t\t\t}\n\t\t}\n\t} else if (element instanceof HTMLTableRowElement) {\n\t\tconst $prevRow = element.previousElementSibling as HTMLTableRowElement\n\t\tif ($prevRow) {\n\t\t\t$upCell = $prevRow\n\t\t}\n\t} else {\n\t\t// handle other contexts\n\t}\n\tif ($upCell && (!isFocusable($upCell) || !isVisible($upCell))) {\n\t\treturn _getUpCell($upCell)\n\t}\n\treturn $upCell\n}\n\nconst getTopCell = (event: KeyboardEvent) => {\n\tconst $target = event.target as HTMLElement\n\tlet $topCell: HTMLElement | undefined\n\tif ($target instanceof HTMLTableCellElement) {\n\t\tconst $table = $target.parentElement?.parentElement\n\t\tif ($table) {\n\t\t\tconst $firstRow = $table.firstElementChild\n\t\t\tconst $navCell = $firstRow.children[$target.cellIndex] as HTMLElement\n\t\t\tif ($navCell) {\n\t\t\t\t$topCell = $navCell\n\t\t\t}\n\t\t}\n\t} else if ($target instanceof HTMLTableRowElement) {\n\t\tconst $table = $target.parentElement as HTMLTableElement\n\t\tif ($table) {\n\t\t\tconst $firstRow = $table.firstElementChild as HTMLTableRowElement\n\t\t\tif ($firstRow) {\n\t\t\t\t$topCell = $firstRow\n\t\t\t}\n\t\t}\n\t} else {\n\t\t// handle other contexts\n\t}\n\tif ($topCell && (!isFocusable($topCell) || !isVisible($topCell))) {\n\t\treturn _getDownCell($topCell)\n\t}\n\treturn $topCell\n}\n\nconst getDownCell = (event: KeyboardEvent) => {\n\tconst $target = event.target as HTMLElement\n\treturn _getDownCell($target)\n}\n\nconst _getDownCell = (element: HTMLElement): HTMLElement | undefined => {\n\tlet $downCell: HTMLElement | undefined\n\tif (element instanceof HTMLTableCellElement) {\n\t\tconst $nextRow = element.parentElement?.nextElementSibling\n\t\tif ($nextRow) {\n\t\t\tconst $nextRowCells = Array.from($nextRow.children)\n\t\t\tconst $nextCell = $nextRowCells[element.cellIndex] as HTMLElement\n\t\t\tif ($nextCell) {\n\t\t\t\t$downCell = $nextCell\n\t\t\t}\n\t\t}\n\t} else if (element instanceof HTMLTableRowElement) {\n\t\tconst $nextRow = element.nextElementSibling as HTMLTableRowElement\n\t\tif ($nextRow) {\n\t\t\t$downCell = $nextRow\n\t\t}\n\t} else {\n\t\t// handle other contexts\n\t}\n\tif ($downCell && (!isFocusable($downCell) || !isVisible($downCell))) {\n\t\treturn _getDownCell($downCell)\n\t}\n\treturn $downCell\n}\n\nconst getBottomCell = (event: KeyboardEvent) => {\n\tconst $target = event.target as HTMLElement\n\tlet $bottomCell: HTMLElement | undefined\n\tif ($target instanceof HTMLTableCellElement) {\n\t\tconst $table = $target.parentElement?.parentElement\n\t\tif ($table) {\n\t\t\tconst $lastRow = $table.lastElementChild\n\t\t\tconst $navCell = $lastRow.children[$target.cellIndex] as HTMLElement\n\t\t\tif ($navCell) {\n\t\t\t\t$bottomCell = $navCell\n\t\t\t}\n\t\t}\n\t} else if ($target instanceof HTMLTableRowElement) {\n\t\tconst $table = $target.parentElement as HTMLTableElement\n\t\tif ($table) {\n\t\t\tconst $lastRow = $table.lastElementChild as HTMLTableRowElement\n\t\t\tif ($lastRow) {\n\t\t\t\t$bottomCell = $lastRow\n\t\t\t}\n\t\t}\n\t} else {\n\t\t// handle other contexts\n\t}\n\tif ($bottomCell && (!isFocusable($bottomCell) || !isVisible($bottomCell))) {\n\t\treturn _getUpCell($bottomCell)\n\t}\n\treturn $bottomCell\n}\n\nconst getPrevCell = (event: KeyboardEvent) => {\n\tconst $target = event.target as HTMLElement\n\treturn _getPrevCell($target)\n}\n\nconst _getPrevCell = (element: HTMLElement): HTMLElement | undefined => {\n\tlet $prevCell: HTMLElement | undefined\n\tif (element.previousElementSibling) {\n\t\t$prevCell = element.previousElementSibling as HTMLElement\n\t} else {\n\t\tconst $prevRow = element.parentElement?.previousElementSibling\n\t\t$prevCell = $prevRow?.lastElementChild as HTMLElement\n\t}\n\tif ($prevCell && (!isFocusable($prevCell) || !isVisible($prevCell))) {\n\t\treturn _getPrevCell($prevCell)\n\t}\n\treturn $prevCell\n}\n\nconst getNextCell = (event: KeyboardEvent) => {\n\tconst $target = event.target as HTMLElement\n\treturn _getNextCell($target)\n}\n\nconst _getNextCell = (element: HTMLElement): HTMLElement | undefined => {\n\tlet $nextCell: HTMLElement | undefined\n\tif (element.nextElementSibling) {\n\t\t$nextCell = element.nextElementSibling as HTMLElement\n\t} else {\n\t\tconst $nextRow = element.parentElement?.nextElementSibling\n\t\t$nextCell = $nextRow?.firstElementChild as HTMLElement\n\t}\n\tif ($nextCell && (!isFocusable($nextCell) || !isVisible($nextCell))) {\n\t\treturn _getNextCell($nextCell)\n\t}\n\treturn $nextCell\n}\n\nconst getFirstCell = (event: KeyboardEvent) => {\n\tconst $target = event.target as HTMLElement\n\tconst $parent = $target.parentElement\n\tconst $firstCell = $parent.firstElementChild as HTMLElement | null\n\tif ($firstCell && (!isFocusable($firstCell) || !isVisible($firstCell))) {\n\t\treturn _getNextCell($firstCell)\n\t}\n\treturn $firstCell\n}\n\nconst getLastCell = (event: KeyboardEvent) => {\n\tconst $target = event.target as HTMLElement\n\tconst $parent = $target.parentElement\n\tconst $lastCell = $parent.lastElementChild as HTMLElement | null\n\tif ($lastCell && (!isFocusable($lastCell) || !isVisible($lastCell))) {\n\t\treturn _getPrevCell($lastCell)\n\t}\n\treturn $lastCell\n}\n\nconst modifierKeys = ['alt', 'control', 'shift', 'meta']\n\nconst eventKeyMap = {\n\tArrowUp: 'up',\n\tArrowDown: 'down',\n\tArrowLeft: 'left',\n\tArrowRight: 'right',\n}\n\nexport const defaultKeypressHandlers: KeypressHandlers = {\n\t'keydown.up': (event: KeyboardEvent) => {\n\t\tconst $upCell = getUpCell(event)\n\t\tif ($upCell) {\n\t\t\tevent.preventDefault()\n\t\t\tevent.stopPropagation()\n\t\t\t$upCell.focus()\n\t\t}\n\t},\n\t'keydown.down': (event: KeyboardEvent) => {\n\t\tconst $downCell = getDownCell(event)\n\t\tif ($downCell) {\n\t\t\tevent.preventDefault()\n\t\t\tevent.stopPropagation()\n\t\t\t$downCell.focus()\n\t\t}\n\t},\n\t'keydown.left': (event: KeyboardEvent) => {\n\t\tconst $prevCell = getPrevCell(event)\n\t\t// prevent default edit-cell behaviour on first cell\n\t\tevent.preventDefault()\n\t\tevent.stopPropagation()\n\t\tif ($prevCell) {\n\t\t\t$prevCell.focus()\n\t\t}\n\t},\n\t'keydown.right': (event: KeyboardEvent) => {\n\t\tconst $nextCell = getNextCell(event)\n\t\t// prevent default edit-cell behaviour on last cell\n\t\tevent.preventDefault()\n\t\tevent.stopPropagation()\n\t\tif ($nextCell) {\n\t\t\t$nextCell.focus()\n\t\t}\n\t},\n\t'keydown.control.up': (event: KeyboardEvent) => {\n\t\tconst $topCell = getTopCell(event)\n\t\tif ($topCell) {\n\t\t\tevent.preventDefault()\n\t\t\tevent.stopPropagation()\n\t\t\t$topCell.focus()\n\t\t}\n\t},\n\t'keydown.control.down': (event: KeyboardEvent) => {\n\t\tconst $bottomCell = getBottomCell(event)\n\t\tif ($bottomCell) {\n\t\t\tevent.preventDefault()\n\t\t\tevent.stopPropagation()\n\t\t\t$bottomCell.focus()\n\t\t}\n\t},\n\t'keydown.control.left': (event: KeyboardEvent) => {\n\t\tconst $firstCell = getFirstCell(event)\n\t\tif ($firstCell) {\n\t\t\tevent.preventDefault()\n\t\t\tevent.stopPropagation()\n\t\t\t$firstCell.focus()\n\t\t}\n\t},\n\t'keydown.control.right': (event: KeyboardEvent) => {\n\t\tconst $lastCell = getLastCell(event)\n\t\tif ($lastCell) {\n\t\t\tevent.preventDefault()\n\t\t\tevent.stopPropagation()\n\t\t\t$lastCell.focus()\n\t\t}\n\t},\n\t'keydown.end': (event: KeyboardEvent) => {\n\t\tconst $lastCell = getLastCell(event)\n\t\tif ($lastCell) {\n\t\t\tevent.preventDefault()\n\t\t\tevent.stopPropagation()\n\t\t\t$lastCell.focus()\n\t\t}\n\t},\n\t'keydown.enter': (event: KeyboardEvent) => {\n\t\tconst $target = event.target as HTMLElement\n\t\tif ($target instanceof HTMLTableCellElement) {\n\t\t\tevent.preventDefault()\n\t\t\tevent.stopPropagation()\n\t\t\tconst $downCell = getDownCell(event)\n\t\t\tif ($downCell) {\n\t\t\t\t$downCell.focus()\n\t\t\t}\n\t\t} else {\n\t\t\t// handle other contexts\n\t\t}\n\t},\n\t'keydown.shift.enter': (event: KeyboardEvent) => {\n\t\tconst $target = event.target as HTMLElement\n\t\tif ($target instanceof HTMLTableCellElement) {\n\t\t\tevent.preventDefault()\n\t\t\tevent.stopPropagation()\n\t\t\tconst $upCell = getUpCell(event)\n\t\t\tif ($upCell) {\n\t\t\t\t$upCell.focus()\n\t\t\t}\n\t\t} else {\n\t\t\t// handle other contexts\n\t\t}\n\t},\n\t'keydown.home': (event: KeyboardEvent) => {\n\t\tconst $firstCell = getFirstCell(event)\n\t\tif ($firstCell) {\n\t\t\tevent.preventDefault()\n\t\t\tevent.stopPropagation()\n\t\t\t$firstCell.focus()\n\t\t}\n\t},\n\t'keydown.tab': (event: KeyboardEvent) => {\n\t\tconst $nextCell = getNextCell(event)\n\t\tif ($nextCell) {\n\t\t\tevent.preventDefault()\n\t\t\tevent.stopPropagation()\n\t\t\t$nextCell.focus()\n\t\t}\n\t},\n\t'keydown.shift.tab': (event: KeyboardEvent) => {\n\t\tconst $prevCell = getPrevCell(event)\n\t\tif ($prevCell) {\n\t\t\tevent.preventDefault()\n\t\t\tevent.stopPropagation()\n\t\t\t$prevCell.focus()\n\t\t}\n\t},\n}\n\nexport function useKeyboardNav(options: KeyboardNavigationOptions[]) {\n\tconst getSelectors = (option: KeyboardNavigationOptions) => {\n\t\t// get parent element\n\t\tlet $parent: Element | null = null\n\t\tif (option.parent) {\n\t\t\tif (typeof option.parent === 'string') {\n\t\t\t\t$parent = document.querySelector(option.parent)\n\t\t\t} else if (option.parent instanceof Element) {\n\t\t\t\t$parent = option.parent\n\t\t\t} else {\n\t\t\t\t$parent = option.parent.value\n\t\t\t}\n\t\t}\n\n\t\t// generate a list of selector(s)\n\t\tlet selectors: Element[] = []\n\n\t\tif (option.selectors) {\n\t\t\tif (typeof option.selectors === 'string') {\n\t\t\t\tselectors = $parent\n\t\t\t\t\t? Array.from($parent.querySelectorAll(option.selectors))\n\t\t\t\t\t: Array.from(document.querySelectorAll(option.selectors))\n\t\t\t} else if (option.selectors instanceof Element) {\n\t\t\t\tselectors.push(option.selectors)\n\t\t\t} else {\n\t\t\t\tif (Array.isArray(option.selectors.value)) {\n\t\t\t\t\tfor (const element of option.selectors.value) {\n\t\t\t\t\t\tif (element instanceof Element) {\n\t\t\t\t\t\t\tselectors.push(element)\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tselectors.push(element.$el as Element)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tselectors.push(option.selectors.value)\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tconst $children = Array.from($parent.children)\n\t\t\tselectors = $children.filter((selector: HTMLElement) => {\n\t\t\t\t// ignore elements not in the tab order or are not visible\n\t\t\t\treturn isFocusable(selector) && isVisible(selector)\n\t\t\t})\n\t\t}\n\n\t\treturn selectors\n\t}\n\n\tconst getEventListener = (option: KeyboardNavigationOptions) => {\n\t\treturn (event: KeyboardEvent) => {\n\t\t\tconst activeKey = (eventKeyMap[event.key] as string) || event.key.toLowerCase()\n\t\t\tif (modifierKeys.includes(activeKey)) return // ignore modifier key presses\n\n\t\t\tconst handlers = option.handlers || defaultKeypressHandlers\n\t\t\tfor (const key of Object.keys(handlers)) {\n\t\t\t\tconst [eventType, ...keys] = key.split('.')\n\t\t\t\tif (eventType !== 'keydown') {\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\n\t\t\t\tif (keys.includes(activeKey)) {\n\t\t\t\t\tconst listener = handlers[key]\n\n\t\t\t\t\t// check if the handler has modifiers, and if the modifier is active;\n\t\t\t\t\t// this is to ensure exact key-press matches\n\t\t\t\t\tconst hasModifier = keys.filter(key => modifierKeys.includes(key))\n\t\t\t\t\tconst isModifierActive = modifierKeys.some(key => {\n\t\t\t\t\t\tconst modifierKey = key.charAt(0).toUpperCase() + key.slice(1)\n\t\t\t\t\t\treturn event.getModifierState(modifierKey)\n\t\t\t\t\t})\n\n\t\t\t\t\tif (hasModifier.length > 0) {\n\t\t\t\t\t\tif (isModifierActive) {\n\t\t\t\t\t\t\tfor (const modifier of modifierKeys) {\n\t\t\t\t\t\t\t\tif (keys.includes(modifier)) {\n\t\t\t\t\t\t\t\t\t// docs: https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/getModifierState\n\t\t\t\t\t\t\t\t\tconst modifierKey = modifier.charAt(0).toUpperCase() + modifier.slice(1)\n\t\t\t\t\t\t\t\t\tif (event.getModifierState(modifierKey)) {\n\t\t\t\t\t\t\t\t\t\tlistener(event)\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif (!isModifierActive) {\n\t\t\t\t\t\t\tlistener(event)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tonMounted(() => {\n\t\tfor (const option of options) {\n\t\t\tconst selectors = getSelectors(option)\n\t\t\tfor (const selector of selectors) {\n\t\t\t\tselector.addEventListener('keydown', getEventListener(option))\n\t\t\t}\n\t\t}\n\t})\n\n\tonBeforeUnmount(() => {\n\t\tfor (const option of options) {\n\t\t\tconst selectors = getSelectors(option)\n\t\t\tfor (const selector of selectors) {\n\t\t\t\tselector.removeEventListener('keydown', getEventListener(option))\n\t\t\t}\n\t\t}\n\t})\n}\n","import { App } from 'vue'\n\nimport { defaultKeypressHandlers, useKeyboardNav } from './composables/keyboard'\n\nfunction install(app: App /* options */) {}\n\nexport { defaultKeypressHandlers, install, useKeyboardNav }\n"],"names":["_a","isClient","isString","val","noop","resolveUnref","r","unref","identity","arg","tryOnScopeDispose","fn","getCurrentScope","onScopeDispose","unrefElement","elRef","plain","defaultWindow","useEventListener","args","target","events","listeners","options","cleanups","cleanup","register","el","event","listener","options2","stopWatch","watch","stop","_global","globalKey","useElementVisibility","element","window","scrollTarget","elementIsVisible","ref","testBounding","document","rect","SwipeDirection","SwipeDirection2","__defProp","__getOwnPropSymbols","__hasOwnProp","__propIsEnum","__defNormalProp","obj","key","value","__spreadValues","a","b","prop","_TransitionPresets","isVisible","isFocusable","getUpCell","$target","_getUpCell","$upCell","$prevRow","$prevCell","getTopCell","$topCell","$table","$navCell","$firstRow","_getDownCell","getDownCell","$downCell","$nextRow","$nextCell","getBottomCell","$bottomCell","$lastRow","getPrevCell","_getPrevCell","getNextCell","_getNextCell","getFirstCell","$firstCell","getLastCell","$lastCell","modifierKeys","eventKeyMap","defaultKeypressHandlers","useKeyboardNav","getSelectors","option","$parent","selectors","selector","getEventListener","activeKey","handlers","eventType","keys","hasModifier","isModifierActive","modifierKey","modifier","onMounted","onBeforeUnmount","install","app"],"mappings":"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","x_google_ignoreList":[0,1]} \ No newline at end of file diff --git a/utilities/dist/utilities.umd.cjs b/utilities/dist/utilities.umd.cjs new file mode 100644 index 00000000..5a99a736 --- /dev/null +++ b/utilities/dist/utilities.umd.cjs @@ -0,0 +1,2 @@ +(function(u,a){typeof exports=="object"&&typeof module<"u"?a(exports,require("vue")):typeof define=="function"&&define.amd?define(["exports","vue"],a):(u=typeof globalThis<"u"?globalThis:u||self,a(u["@stonecrop/utilities"]={},u.Vue))})(this,function(u,a){"use strict";var O;const P=typeof window<"u",U=e=>typeof e=="string",B=()=>{};P&&((O=window==null?void 0:window.navigator)!=null&&O.userAgent)&&/iP(ad|hone|od)/.test(window.navigator.userAgent);function _(e){return typeof e=="function"?e():a.unref(e)}function V(e){return e}function W(e){return a.getCurrentScope()?(a.onScopeDispose(e),!0):!1}function $(e){var t;const r=_(e);return(t=r==null?void 0:r.$el)!=null?t:r}const I=P?window:void 0;function j(...e){let t,r,n,o;if(U(e[0])||Array.isArray(e[0])?([r,n,o]=e,t=I):[t,r,n,o]=e,!t)return B;Array.isArray(r)||(r=[r]),Array.isArray(n)||(n=[n]);const s=[],l=()=>{s.forEach(c=>c()),s.length=0},f=(c,y,g,i)=>(c.addEventListener(y,g,i),()=>c.removeEventListener(y,g,i)),T=a.watch(()=>[$(t),_(o)],([c,y])=>{l(),c&&s.push(...r.flatMap(g=>n.map(i=>f(c,g,i,y))))},{immediate:!0,flush:"post"}),m=()=>{T(),l()};return W(m),m}const A=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},S="__vueuse_ssr_handlers__";A[S]=A[S]||{};function q(e,{window:t=I,scrollTarget:r}={}){const n=a.ref(!1),o=()=>{if(!t)return;const s=t.document,l=$(e);if(!l)n.value=!1;else{const f=l.getBoundingClientRect();n.value=f.top<=(t.innerHeight||s.documentElement.clientHeight)&&f.left<=(t.innerWidth||s.documentElement.clientWidth)&&f.bottom>=0&&f.right>=0}};return a.watch(()=>$(e),()=>o(),{immediate:!0,flush:"post"}),t&&j(r||t,"scroll",o,{capture:!1,passive:!0}),n}var k;(function(e){e.UP="UP",e.RIGHT="RIGHT",e.DOWN="DOWN",e.LEFT="LEFT",e.NONE="NONE"})(k||(k={}));var F=Object.defineProperty,x=Object.getOwnPropertySymbols,G=Object.prototype.hasOwnProperty,z=Object.prototype.propertyIsEnumerable,L=(e,t,r)=>t in e?F(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,J=(e,t)=>{for(var r in t||(t={}))G.call(t,r)&&L(e,r,t[r]);if(x)for(var r of x(t))z.call(t,r)&&L(e,r,t[r]);return e};J({linear:V},{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 p=e=>{let t=q(e).value;return t=t&&e.offsetHeight>0,t},d=e=>e.tabIndex>=0,R=e=>{const t=e.target;return E(t)},E=e=>{var r;let t;if(e instanceof HTMLTableCellElement){const n=(r=e.parentElement)==null?void 0:r.previousElementSibling;if(n){const s=Array.from(n.children)[e.cellIndex];s&&(t=s)}}else if(e instanceof HTMLTableRowElement){const n=e.previousElementSibling;n&&(t=n)}return t&&(!d(t)||!p(t))?E(t):t},X=e=>{var n;const t=e.target;let r;if(t instanceof HTMLTableCellElement){const o=(n=t.parentElement)==null?void 0:n.parentElement;if(o){const l=o.firstElementChild.children[t.cellIndex];l&&(r=l)}}else if(t instanceof HTMLTableRowElement){const o=t.parentElement;if(o){const s=o.firstElementChild;s&&(r=s)}}return r&&(!d(r)||!p(r))?h(r):r},D=e=>{const t=e.target;return h(t)},h=e=>{var r;let t;if(e instanceof HTMLTableCellElement){const n=(r=e.parentElement)==null?void 0:r.nextElementSibling;if(n){const s=Array.from(n.children)[e.cellIndex];s&&(t=s)}}else if(e instanceof HTMLTableRowElement){const n=e.nextElementSibling;n&&(t=n)}return t&&(!d(t)||!p(t))?h(t):t},Y=e=>{var n;const t=e.target;let r;if(t instanceof HTMLTableCellElement){const o=(n=t.parentElement)==null?void 0:n.parentElement;if(o){const l=o.lastElementChild.children[t.cellIndex];l&&(r=l)}}else if(t instanceof HTMLTableRowElement){const o=t.parentElement;if(o){const s=o.lastElementChild;s&&(r=s)}}return r&&(!d(r)||!p(r))?E(r):r},M=e=>{const t=e.target;return w(t)},w=e=>{var r;let t;if(e.previousElementSibling)t=e.previousElementSibling;else{const n=(r=e.parentElement)==null?void 0:r.previousElementSibling;t=n==null?void 0:n.lastElementChild}return t&&(!d(t)||!p(t))?w(t):t},H=e=>{const t=e.target;return b(t)},b=e=>{var r;let t;if(e.nextElementSibling)t=e.nextElementSibling;else{const n=(r=e.parentElement)==null?void 0:r.nextElementSibling;t=n==null?void 0:n.firstElementChild}return t&&(!d(t)||!p(t))?b(t):t},N=e=>{const n=e.target.parentElement.firstElementChild;return n&&(!d(n)||!p(n))?b(n):n},K=e=>{const n=e.target.parentElement.lastElementChild;return n&&(!d(n)||!p(n))?w(n):n},C=["alt","control","shift","meta"],Z={ArrowUp:"up",ArrowDown:"down",ArrowLeft:"left",ArrowRight:"right"},Q={"keydown.up":e=>{const t=R(e);t&&(e.preventDefault(),e.stopPropagation(),t.focus())},"keydown.down":e=>{const t=D(e);t&&(e.preventDefault(),e.stopPropagation(),t.focus())},"keydown.left":e=>{const t=M(e);e.preventDefault(),e.stopPropagation(),t&&t.focus()},"keydown.right":e=>{const t=H(e);e.preventDefault(),e.stopPropagation(),t&&t.focus()},"keydown.control.up":e=>{const t=X(e);t&&(e.preventDefault(),e.stopPropagation(),t.focus())},"keydown.control.down":e=>{const t=Y(e);t&&(e.preventDefault(),e.stopPropagation(),t.focus())},"keydown.control.left":e=>{const t=N(e);t&&(e.preventDefault(),e.stopPropagation(),t.focus())},"keydown.control.right":e=>{const t=K(e);t&&(e.preventDefault(),e.stopPropagation(),t.focus())},"keydown.end":e=>{const t=K(e);t&&(e.preventDefault(),e.stopPropagation(),t.focus())},"keydown.enter":e=>{if(e.target instanceof HTMLTableCellElement){e.preventDefault(),e.stopPropagation();const r=D(e);r&&r.focus()}},"keydown.shift.enter":e=>{if(e.target instanceof HTMLTableCellElement){e.preventDefault(),e.stopPropagation();const r=R(e);r&&r.focus()}},"keydown.home":e=>{const t=N(e);t&&(e.preventDefault(),e.stopPropagation(),t.focus())},"keydown.tab":e=>{const t=H(e);t&&(e.preventDefault(),e.stopPropagation(),t.focus())},"keydown.shift.tab":e=>{const t=M(e);t&&(e.preventDefault(),e.stopPropagation(),t.focus())}};function ee(e){const t=n=>{let o=null;n.parent&&(typeof n.parent=="string"?o=document.querySelector(n.parent):n.parent instanceof Element?o=n.parent:o=n.parent.value);let s=[];if(n.selectors)if(typeof n.selectors=="string")s=o?Array.from(o.querySelectorAll(n.selectors)):Array.from(document.querySelectorAll(n.selectors));else if(n.selectors instanceof Element)s.push(n.selectors);else if(Array.isArray(n.selectors.value))for(const l of n.selectors.value)l instanceof Element?s.push(l):s.push(l.$el);else s.push(n.selectors.value);else s=Array.from(o.children).filter(f=>d(f)&&p(f));return s},r=n=>o=>{const s=Z[o.key]||o.key.toLowerCase();if(C.includes(s))return;const l=n.handlers||Q;for(const f of Object.keys(l)){const[T,...m]=f.split(".");if(T==="keydown"&&m.includes(s)){const c=l[f],y=m.filter(i=>C.includes(i)),g=C.some(i=>{const v=i.charAt(0).toUpperCase()+i.slice(1);return o.getModifierState(v)});if(y.length>0){if(g){for(const i of C)if(m.includes(i)){const v=i.charAt(0).toUpperCase()+i.slice(1);o.getModifierState(v)&&c(o)}}}else g||c(o)}}};a.onMounted(()=>{for(const n of e){const o=t(n);for(const s of o)s.addEventListener("keydown",r(n))}}),a.onBeforeUnmount(()=>{for(const n of e){const o=t(n);for(const s of o)s.removeEventListener("keydown",r(n))}})}function te(e){}u.defaultKeypressHandlers=Q,u.install=te,u.useKeyboardNav=ee,Object.defineProperty(u,Symbol.toStringTag,{value:"Module"})}); +//# sourceMappingURL=utilities.umd.cjs.map diff --git a/utilities/dist/utilities.umd.cjs.map b/utilities/dist/utilities.umd.cjs.map new file mode 100644 index 00000000..d0d1cbbe --- /dev/null +++ b/utilities/dist/utilities.umd.cjs.map @@ -0,0 +1 @@ +{"version":3,"file":"utilities.umd.cjs","sources":["../../common/temp/node_modules/.pnpm/@vueuse+shared@9.13.0_vue@3.4.19/node_modules/@vueuse/shared/index.mjs","../../common/temp/node_modules/.pnpm/@vueuse+core@9.13.0_vue@3.4.19/node_modules/@vueuse/core/index.mjs","../src/composables/keyboard.ts","../src/index.ts"],"sourcesContent":["import { shallowRef, watchEffect, readonly, unref, ref, isVue3, version, watch, customRef, getCurrentScope, onScopeDispose, effectScope, provide, inject, isRef, computed, reactive, toRefs as toRefs$1, toRef, isVue2, set as set$1, getCurrentInstance, onBeforeMount, nextTick, onBeforeUnmount, onMounted, onUnmounted, isReactive } from 'vue-demi';\n\nvar __defProp$9 = Object.defineProperty;\nvar __defProps$6 = Object.defineProperties;\nvar __getOwnPropDescs$6 = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols$b = Object.getOwnPropertySymbols;\nvar __hasOwnProp$b = Object.prototype.hasOwnProperty;\nvar __propIsEnum$b = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$9 = (obj, key, value) => key in obj ? __defProp$9(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$9 = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$b.call(b, prop))\n __defNormalProp$9(a, prop, b[prop]);\n if (__getOwnPropSymbols$b)\n for (var prop of __getOwnPropSymbols$b(b)) {\n if (__propIsEnum$b.call(b, prop))\n __defNormalProp$9(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps$6 = (a, b) => __defProps$6(a, __getOwnPropDescs$6(b));\nfunction computedEager(fn, options) {\n var _a;\n const result = shallowRef();\n watchEffect(() => {\n result.value = fn();\n }, __spreadProps$6(__spreadValues$9({}, options), {\n flush: (_a = options == null ? void 0 : options.flush) != null ? _a : \"sync\"\n }));\n return readonly(result);\n}\n\nvar _a;\nconst isClient = typeof window !== \"undefined\";\nconst isDef = (val) => typeof val !== \"undefined\";\nconst assert = (condition, ...infos) => {\n if (!condition)\n console.warn(...infos);\n};\nconst toString = Object.prototype.toString;\nconst isBoolean = (val) => typeof val === \"boolean\";\nconst isFunction = (val) => typeof val === \"function\";\nconst isNumber = (val) => typeof val === \"number\";\nconst isString = (val) => typeof val === \"string\";\nconst isObject = (val) => toString.call(val) === \"[object Object]\";\nconst isWindow = (val) => typeof window !== \"undefined\" && toString.call(val) === \"[object Window]\";\nconst now = () => Date.now();\nconst timestamp = () => +Date.now();\nconst clamp = (n, min, max) => Math.min(max, Math.max(min, n));\nconst noop = () => {\n};\nconst rand = (min, max) => {\n min = Math.ceil(min);\n max = Math.floor(max);\n return Math.floor(Math.random() * (max - min + 1)) + min;\n};\nconst isIOS = isClient && ((_a = window == null ? void 0 : window.navigator) == null ? void 0 : _a.userAgent) && /iP(ad|hone|od)/.test(window.navigator.userAgent);\nconst hasOwn = (val, key) => Object.prototype.hasOwnProperty.call(val, key);\n\nfunction resolveUnref(r) {\n return typeof r === \"function\" ? r() : unref(r);\n}\n\nfunction createFilterWrapper(filter, fn) {\n function wrapper(...args) {\n return new Promise((resolve, reject) => {\n Promise.resolve(filter(() => fn.apply(this, args), { fn, thisArg: this, args })).then(resolve).catch(reject);\n });\n }\n return wrapper;\n}\nconst bypassFilter = (invoke) => {\n return invoke();\n};\nfunction debounceFilter(ms, options = {}) {\n let timer;\n let maxTimer;\n let lastRejector = noop;\n const _clearTimeout = (timer2) => {\n clearTimeout(timer2);\n lastRejector();\n lastRejector = noop;\n };\n const filter = (invoke) => {\n const duration = resolveUnref(ms);\n const maxDuration = resolveUnref(options.maxWait);\n if (timer)\n _clearTimeout(timer);\n if (duration <= 0 || maxDuration !== void 0 && maxDuration <= 0) {\n if (maxTimer) {\n _clearTimeout(maxTimer);\n maxTimer = null;\n }\n return Promise.resolve(invoke());\n }\n return new Promise((resolve, reject) => {\n lastRejector = options.rejectOnCancel ? reject : resolve;\n if (maxDuration && !maxTimer) {\n maxTimer = setTimeout(() => {\n if (timer)\n _clearTimeout(timer);\n maxTimer = null;\n resolve(invoke());\n }, maxDuration);\n }\n timer = setTimeout(() => {\n if (maxTimer)\n _clearTimeout(maxTimer);\n maxTimer = null;\n resolve(invoke());\n }, duration);\n });\n };\n return filter;\n}\nfunction throttleFilter(ms, trailing = true, leading = true, rejectOnCancel = false) {\n let lastExec = 0;\n let timer;\n let isLeading = true;\n let lastRejector = noop;\n let lastValue;\n const clear = () => {\n if (timer) {\n clearTimeout(timer);\n timer = void 0;\n lastRejector();\n lastRejector = noop;\n }\n };\n const filter = (_invoke) => {\n const duration = resolveUnref(ms);\n const elapsed = Date.now() - lastExec;\n const invoke = () => {\n return lastValue = _invoke();\n };\n clear();\n if (duration <= 0) {\n lastExec = Date.now();\n return invoke();\n }\n if (elapsed > duration && (leading || !isLeading)) {\n lastExec = Date.now();\n invoke();\n } else if (trailing) {\n lastValue = new Promise((resolve, reject) => {\n lastRejector = rejectOnCancel ? reject : resolve;\n timer = setTimeout(() => {\n lastExec = Date.now();\n isLeading = true;\n resolve(invoke());\n clear();\n }, Math.max(0, duration - elapsed));\n });\n }\n if (!leading && !timer)\n timer = setTimeout(() => isLeading = true, duration);\n isLeading = false;\n return lastValue;\n };\n return filter;\n}\nfunction pausableFilter(extendFilter = bypassFilter) {\n const isActive = ref(true);\n function pause() {\n isActive.value = false;\n }\n function resume() {\n isActive.value = true;\n }\n const eventFilter = (...args) => {\n if (isActive.value)\n extendFilter(...args);\n };\n return { isActive: readonly(isActive), pause, resume, eventFilter };\n}\n\nfunction __onlyVue3(name = \"this function\") {\n if (isVue3)\n return;\n throw new Error(`[VueUse] ${name} is only works on Vue 3.`);\n}\nfunction __onlyVue27Plus(name = \"this function\") {\n if (isVue3 || version.startsWith(\"2.7.\"))\n return;\n throw new Error(`[VueUse] ${name} is only works on Vue 2.7 or above.`);\n}\nconst directiveHooks = {\n mounted: isVue3 ? \"mounted\" : \"inserted\",\n updated: isVue3 ? \"updated\" : \"componentUpdated\",\n unmounted: isVue3 ? \"unmounted\" : \"unbind\"\n};\n\nfunction promiseTimeout(ms, throwOnTimeout = false, reason = \"Timeout\") {\n return new Promise((resolve, reject) => {\n if (throwOnTimeout)\n setTimeout(() => reject(reason), ms);\n else\n setTimeout(resolve, ms);\n });\n}\nfunction identity(arg) {\n return arg;\n}\nfunction createSingletonPromise(fn) {\n let _promise;\n function wrapper() {\n if (!_promise)\n _promise = fn();\n return _promise;\n }\n wrapper.reset = async () => {\n const _prev = _promise;\n _promise = void 0;\n if (_prev)\n await _prev;\n };\n return wrapper;\n}\nfunction invoke(fn) {\n return fn();\n}\nfunction containsProp(obj, ...props) {\n return props.some((k) => k in obj);\n}\nfunction increaseWithUnit(target, delta) {\n var _a;\n if (typeof target === \"number\")\n return target + delta;\n const value = ((_a = target.match(/^-?[0-9]+\\.?[0-9]*/)) == null ? void 0 : _a[0]) || \"\";\n const unit = target.slice(value.length);\n const result = parseFloat(value) + delta;\n if (Number.isNaN(result))\n return target;\n return result + unit;\n}\nfunction objectPick(obj, keys, omitUndefined = false) {\n return keys.reduce((n, k) => {\n if (k in obj) {\n if (!omitUndefined || obj[k] !== void 0)\n n[k] = obj[k];\n }\n return n;\n }, {});\n}\n\nfunction computedWithControl(source, fn) {\n let v = void 0;\n let track;\n let trigger;\n const dirty = ref(true);\n const update = () => {\n dirty.value = true;\n trigger();\n };\n watch(source, update, { flush: \"sync\" });\n const get = isFunction(fn) ? fn : fn.get;\n const set = isFunction(fn) ? void 0 : fn.set;\n const result = customRef((_track, _trigger) => {\n track = _track;\n trigger = _trigger;\n return {\n get() {\n if (dirty.value) {\n v = get();\n dirty.value = false;\n }\n track();\n return v;\n },\n set(v2) {\n set == null ? void 0 : set(v2);\n }\n };\n });\n if (Object.isExtensible(result))\n result.trigger = update;\n return result;\n}\n\nfunction tryOnScopeDispose(fn) {\n if (getCurrentScope()) {\n onScopeDispose(fn);\n return true;\n }\n return false;\n}\n\nfunction createEventHook() {\n const fns = [];\n const off = (fn) => {\n const index = fns.indexOf(fn);\n if (index !== -1)\n fns.splice(index, 1);\n };\n const on = (fn) => {\n fns.push(fn);\n const offFn = () => off(fn);\n tryOnScopeDispose(offFn);\n return {\n off: offFn\n };\n };\n const trigger = (param) => {\n fns.forEach((fn) => fn(param));\n };\n return {\n on,\n off,\n trigger\n };\n}\n\nfunction createGlobalState(stateFactory) {\n let initialized = false;\n let state;\n const scope = effectScope(true);\n return () => {\n if (!initialized) {\n state = scope.run(stateFactory);\n initialized = true;\n }\n return state;\n };\n}\n\nfunction createInjectionState(composable) {\n const key = Symbol(\"InjectionState\");\n const useProvidingState = (...args) => {\n const state = composable(...args);\n provide(key, state);\n return state;\n };\n const useInjectedState = () => inject(key);\n return [useProvidingState, useInjectedState];\n}\n\nfunction createSharedComposable(composable) {\n let subscribers = 0;\n let state;\n let scope;\n const dispose = () => {\n subscribers -= 1;\n if (scope && subscribers <= 0) {\n scope.stop();\n state = void 0;\n scope = void 0;\n }\n };\n return (...args) => {\n subscribers += 1;\n if (!state) {\n scope = effectScope(true);\n state = scope.run(() => composable(...args));\n }\n tryOnScopeDispose(dispose);\n return state;\n };\n}\n\nfunction extendRef(ref, extend, { enumerable = false, unwrap = true } = {}) {\n __onlyVue27Plus();\n for (const [key, value] of Object.entries(extend)) {\n if (key === \"value\")\n continue;\n if (isRef(value) && unwrap) {\n Object.defineProperty(ref, key, {\n get() {\n return value.value;\n },\n set(v) {\n value.value = v;\n },\n enumerable\n });\n } else {\n Object.defineProperty(ref, key, { value, enumerable });\n }\n }\n return ref;\n}\n\nfunction get(obj, key) {\n if (key == null)\n return unref(obj);\n return unref(obj)[key];\n}\n\nfunction isDefined(v) {\n return unref(v) != null;\n}\n\nvar __defProp$8 = Object.defineProperty;\nvar __getOwnPropSymbols$a = Object.getOwnPropertySymbols;\nvar __hasOwnProp$a = Object.prototype.hasOwnProperty;\nvar __propIsEnum$a = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$8 = (obj, key, value) => key in obj ? __defProp$8(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$8 = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$a.call(b, prop))\n __defNormalProp$8(a, prop, b[prop]);\n if (__getOwnPropSymbols$a)\n for (var prop of __getOwnPropSymbols$a(b)) {\n if (__propIsEnum$a.call(b, prop))\n __defNormalProp$8(a, prop, b[prop]);\n }\n return a;\n};\nfunction makeDestructurable(obj, arr) {\n if (typeof Symbol !== \"undefined\") {\n const clone = __spreadValues$8({}, obj);\n Object.defineProperty(clone, Symbol.iterator, {\n enumerable: false,\n value() {\n let index = 0;\n return {\n next: () => ({\n value: arr[index++],\n done: index > arr.length\n })\n };\n }\n });\n return clone;\n } else {\n return Object.assign([...arr], obj);\n }\n}\n\nfunction reactify(fn, options) {\n const unrefFn = (options == null ? void 0 : options.computedGetter) === false ? unref : resolveUnref;\n return function(...args) {\n return computed(() => fn.apply(this, args.map((i) => unrefFn(i))));\n };\n}\n\nfunction reactifyObject(obj, optionsOrKeys = {}) {\n let keys = [];\n let options;\n if (Array.isArray(optionsOrKeys)) {\n keys = optionsOrKeys;\n } else {\n options = optionsOrKeys;\n const { includeOwnProperties = true } = optionsOrKeys;\n keys.push(...Object.keys(obj));\n if (includeOwnProperties)\n keys.push(...Object.getOwnPropertyNames(obj));\n }\n return Object.fromEntries(keys.map((key) => {\n const value = obj[key];\n return [\n key,\n typeof value === \"function\" ? reactify(value.bind(obj), options) : value\n ];\n }));\n}\n\nfunction toReactive(objectRef) {\n if (!isRef(objectRef))\n return reactive(objectRef);\n const proxy = new Proxy({}, {\n get(_, p, receiver) {\n return unref(Reflect.get(objectRef.value, p, receiver));\n },\n set(_, p, value) {\n if (isRef(objectRef.value[p]) && !isRef(value))\n objectRef.value[p].value = value;\n else\n objectRef.value[p] = value;\n return true;\n },\n deleteProperty(_, p) {\n return Reflect.deleteProperty(objectRef.value, p);\n },\n has(_, p) {\n return Reflect.has(objectRef.value, p);\n },\n ownKeys() {\n return Object.keys(objectRef.value);\n },\n getOwnPropertyDescriptor() {\n return {\n enumerable: true,\n configurable: true\n };\n }\n });\n return reactive(proxy);\n}\n\nfunction reactiveComputed(fn) {\n return toReactive(computed(fn));\n}\n\nfunction reactiveOmit(obj, ...keys) {\n const flatKeys = keys.flat();\n return reactiveComputed(() => Object.fromEntries(Object.entries(toRefs$1(obj)).filter((e) => !flatKeys.includes(e[0]))));\n}\n\nfunction reactivePick(obj, ...keys) {\n const flatKeys = keys.flat();\n return reactive(Object.fromEntries(flatKeys.map((k) => [k, toRef(obj, k)])));\n}\n\nfunction refAutoReset(defaultValue, afterMs = 1e4) {\n return customRef((track, trigger) => {\n let value = defaultValue;\n let timer;\n const resetAfter = () => setTimeout(() => {\n value = defaultValue;\n trigger();\n }, resolveUnref(afterMs));\n tryOnScopeDispose(() => {\n clearTimeout(timer);\n });\n return {\n get() {\n track();\n return value;\n },\n set(newValue) {\n value = newValue;\n trigger();\n clearTimeout(timer);\n timer = resetAfter();\n }\n };\n });\n}\n\nfunction useDebounceFn(fn, ms = 200, options = {}) {\n return createFilterWrapper(debounceFilter(ms, options), fn);\n}\n\nfunction refDebounced(value, ms = 200, options = {}) {\n const debounced = ref(value.value);\n const updater = useDebounceFn(() => {\n debounced.value = value.value;\n }, ms, options);\n watch(value, () => updater());\n return debounced;\n}\n\nfunction refDefault(source, defaultValue) {\n return computed({\n get() {\n var _a;\n return (_a = source.value) != null ? _a : defaultValue;\n },\n set(value) {\n source.value = value;\n }\n });\n}\n\nfunction useThrottleFn(fn, ms = 200, trailing = false, leading = true, rejectOnCancel = false) {\n return createFilterWrapper(throttleFilter(ms, trailing, leading, rejectOnCancel), fn);\n}\n\nfunction refThrottled(value, delay = 200, trailing = true, leading = true) {\n if (delay <= 0)\n return value;\n const throttled = ref(value.value);\n const updater = useThrottleFn(() => {\n throttled.value = value.value;\n }, delay, trailing, leading);\n watch(value, () => updater());\n return throttled;\n}\n\nfunction refWithControl(initial, options = {}) {\n let source = initial;\n let track;\n let trigger;\n const ref = customRef((_track, _trigger) => {\n track = _track;\n trigger = _trigger;\n return {\n get() {\n return get();\n },\n set(v) {\n set(v);\n }\n };\n });\n function get(tracking = true) {\n if (tracking)\n track();\n return source;\n }\n function set(value, triggering = true) {\n var _a, _b;\n if (value === source)\n return;\n const old = source;\n if (((_a = options.onBeforeChange) == null ? void 0 : _a.call(options, value, old)) === false)\n return;\n source = value;\n (_b = options.onChanged) == null ? void 0 : _b.call(options, value, old);\n if (triggering)\n trigger();\n }\n const untrackedGet = () => get(false);\n const silentSet = (v) => set(v, false);\n const peek = () => get(false);\n const lay = (v) => set(v, false);\n return extendRef(ref, {\n get,\n set,\n untrackedGet,\n silentSet,\n peek,\n lay\n }, { enumerable: true });\n}\nconst controlledRef = refWithControl;\n\nfunction resolveRef(r) {\n return typeof r === \"function\" ? computed(r) : ref(r);\n}\n\nfunction set(...args) {\n if (args.length === 2) {\n const [ref, value] = args;\n ref.value = value;\n }\n if (args.length === 3) {\n if (isVue2) {\n set$1(...args);\n } else {\n const [target, key, value] = args;\n target[key] = value;\n }\n }\n}\n\nfunction syncRef(left, right, options = {}) {\n var _a, _b;\n const {\n flush = \"sync\",\n deep = false,\n immediate = true,\n direction = \"both\",\n transform = {}\n } = options;\n let watchLeft;\n let watchRight;\n const transformLTR = (_a = transform.ltr) != null ? _a : (v) => v;\n const transformRTL = (_b = transform.rtl) != null ? _b : (v) => v;\n if (direction === \"both\" || direction === \"ltr\") {\n watchLeft = watch(left, (newValue) => right.value = transformLTR(newValue), { flush, deep, immediate });\n }\n if (direction === \"both\" || direction === \"rtl\") {\n watchRight = watch(right, (newValue) => left.value = transformRTL(newValue), { flush, deep, immediate });\n }\n return () => {\n watchLeft == null ? void 0 : watchLeft();\n watchRight == null ? void 0 : watchRight();\n };\n}\n\nfunction syncRefs(source, targets, options = {}) {\n const {\n flush = \"sync\",\n deep = false,\n immediate = true\n } = options;\n if (!Array.isArray(targets))\n targets = [targets];\n return watch(source, (newValue) => targets.forEach((target) => target.value = newValue), { flush, deep, immediate });\n}\n\nvar __defProp$7 = Object.defineProperty;\nvar __defProps$5 = Object.defineProperties;\nvar __getOwnPropDescs$5 = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols$9 = Object.getOwnPropertySymbols;\nvar __hasOwnProp$9 = Object.prototype.hasOwnProperty;\nvar __propIsEnum$9 = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$7 = (obj, key, value) => key in obj ? __defProp$7(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$7 = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$9.call(b, prop))\n __defNormalProp$7(a, prop, b[prop]);\n if (__getOwnPropSymbols$9)\n for (var prop of __getOwnPropSymbols$9(b)) {\n if (__propIsEnum$9.call(b, prop))\n __defNormalProp$7(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps$5 = (a, b) => __defProps$5(a, __getOwnPropDescs$5(b));\nfunction toRefs(objectRef) {\n if (!isRef(objectRef))\n return toRefs$1(objectRef);\n const result = Array.isArray(objectRef.value) ? new Array(objectRef.value.length) : {};\n for (const key in objectRef.value) {\n result[key] = customRef(() => ({\n get() {\n return objectRef.value[key];\n },\n set(v) {\n if (Array.isArray(objectRef.value)) {\n const copy = [...objectRef.value];\n copy[key] = v;\n objectRef.value = copy;\n } else {\n const newObject = __spreadProps$5(__spreadValues$7({}, objectRef.value), { [key]: v });\n Object.setPrototypeOf(newObject, objectRef.value);\n objectRef.value = newObject;\n }\n }\n }));\n }\n return result;\n}\n\nfunction tryOnBeforeMount(fn, sync = true) {\n if (getCurrentInstance())\n onBeforeMount(fn);\n else if (sync)\n fn();\n else\n nextTick(fn);\n}\n\nfunction tryOnBeforeUnmount(fn) {\n if (getCurrentInstance())\n onBeforeUnmount(fn);\n}\n\nfunction tryOnMounted(fn, sync = true) {\n if (getCurrentInstance())\n onMounted(fn);\n else if (sync)\n fn();\n else\n nextTick(fn);\n}\n\nfunction tryOnUnmounted(fn) {\n if (getCurrentInstance())\n onUnmounted(fn);\n}\n\nfunction createUntil(r, isNot = false) {\n function toMatch(condition, { flush = \"sync\", deep = false, timeout, throwOnTimeout } = {}) {\n let stop = null;\n const watcher = new Promise((resolve) => {\n stop = watch(r, (v) => {\n if (condition(v) !== isNot) {\n stop == null ? void 0 : stop();\n resolve(v);\n }\n }, {\n flush,\n deep,\n immediate: true\n });\n });\n const promises = [watcher];\n if (timeout != null) {\n promises.push(promiseTimeout(timeout, throwOnTimeout).then(() => resolveUnref(r)).finally(() => stop == null ? void 0 : stop()));\n }\n return Promise.race(promises);\n }\n function toBe(value, options) {\n if (!isRef(value))\n return toMatch((v) => v === value, options);\n const { flush = \"sync\", deep = false, timeout, throwOnTimeout } = options != null ? options : {};\n let stop = null;\n const watcher = new Promise((resolve) => {\n stop = watch([r, value], ([v1, v2]) => {\n if (isNot !== (v1 === v2)) {\n stop == null ? void 0 : stop();\n resolve(v1);\n }\n }, {\n flush,\n deep,\n immediate: true\n });\n });\n const promises = [watcher];\n if (timeout != null) {\n promises.push(promiseTimeout(timeout, throwOnTimeout).then(() => resolveUnref(r)).finally(() => {\n stop == null ? void 0 : stop();\n return resolveUnref(r);\n }));\n }\n return Promise.race(promises);\n }\n function toBeTruthy(options) {\n return toMatch((v) => Boolean(v), options);\n }\n function toBeNull(options) {\n return toBe(null, options);\n }\n function toBeUndefined(options) {\n return toBe(void 0, options);\n }\n function toBeNaN(options) {\n return toMatch(Number.isNaN, options);\n }\n function toContains(value, options) {\n return toMatch((v) => {\n const array = Array.from(v);\n return array.includes(value) || array.includes(resolveUnref(value));\n }, options);\n }\n function changed(options) {\n return changedTimes(1, options);\n }\n function changedTimes(n = 1, options) {\n let count = -1;\n return toMatch(() => {\n count += 1;\n return count >= n;\n }, options);\n }\n if (Array.isArray(resolveUnref(r))) {\n const instance = {\n toMatch,\n toContains,\n changed,\n changedTimes,\n get not() {\n return createUntil(r, !isNot);\n }\n };\n return instance;\n } else {\n const instance = {\n toMatch,\n toBe,\n toBeTruthy,\n toBeNull,\n toBeNaN,\n toBeUndefined,\n changed,\n changedTimes,\n get not() {\n return createUntil(r, !isNot);\n }\n };\n return instance;\n }\n}\nfunction until(r) {\n return createUntil(r);\n}\n\nfunction useArrayEvery(list, fn) {\n return computed(() => resolveUnref(list).every((element, index, array) => fn(resolveUnref(element), index, array)));\n}\n\nfunction useArrayFilter(list, fn) {\n return computed(() => resolveUnref(list).map((i) => resolveUnref(i)).filter(fn));\n}\n\nfunction useArrayFind(list, fn) {\n return computed(() => resolveUnref(resolveUnref(list).find((element, index, array) => fn(resolveUnref(element), index, array))));\n}\n\nfunction useArrayFindIndex(list, fn) {\n return computed(() => resolveUnref(list).findIndex((element, index, array) => fn(resolveUnref(element), index, array)));\n}\n\nfunction findLast(arr, cb) {\n let index = arr.length;\n while (index-- > 0) {\n if (cb(arr[index], index, arr))\n return arr[index];\n }\n return void 0;\n}\nfunction useArrayFindLast(list, fn) {\n return computed(() => resolveUnref(!Array.prototype.findLast ? findLast(resolveUnref(list), (element, index, array) => fn(resolveUnref(element), index, array)) : resolveUnref(list).findLast((element, index, array) => fn(resolveUnref(element), index, array))));\n}\n\nfunction useArrayJoin(list, separator) {\n return computed(() => resolveUnref(list).map((i) => resolveUnref(i)).join(resolveUnref(separator)));\n}\n\nfunction useArrayMap(list, fn) {\n return computed(() => resolveUnref(list).map((i) => resolveUnref(i)).map(fn));\n}\n\nfunction useArrayReduce(list, reducer, ...args) {\n const reduceCallback = (sum, value, index) => reducer(resolveUnref(sum), resolveUnref(value), index);\n return computed(() => {\n const resolved = resolveUnref(list);\n return args.length ? resolved.reduce(reduceCallback, resolveUnref(args[0])) : resolved.reduce(reduceCallback);\n });\n}\n\nfunction useArraySome(list, fn) {\n return computed(() => resolveUnref(list).some((element, index, array) => fn(resolveUnref(element), index, array)));\n}\n\nfunction useArrayUnique(list) {\n return computed(() => [...new Set(resolveUnref(list).map((element) => resolveUnref(element)))]);\n}\n\nfunction useCounter(initialValue = 0, options = {}) {\n const count = ref(initialValue);\n const {\n max = Infinity,\n min = -Infinity\n } = options;\n const inc = (delta = 1) => count.value = Math.min(max, count.value + delta);\n const dec = (delta = 1) => count.value = Math.max(min, count.value - delta);\n const get = () => count.value;\n const set = (val) => count.value = Math.max(min, Math.min(max, val));\n const reset = (val = initialValue) => {\n initialValue = val;\n return set(val);\n };\n return { count, inc, dec, get, set, reset };\n}\n\nconst REGEX_PARSE = /^(\\d{4})[-/]?(\\d{1,2})?[-/]?(\\d{0,2})[Tt\\s]*(\\d{1,2})?:?(\\d{1,2})?:?(\\d{1,2})?[.:]?(\\d+)?$/;\nconst REGEX_FORMAT = /\\[([^\\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a{1,2}|A{1,2}|m{1,2}|s{1,2}|Z{1,2}|SSS/g;\nconst defaultMeridiem = (hours, minutes, isLowercase, hasPeriod) => {\n let m = hours < 12 ? \"AM\" : \"PM\";\n if (hasPeriod)\n m = m.split(\"\").reduce((acc, curr) => acc += `${curr}.`, \"\");\n return isLowercase ? m.toLowerCase() : m;\n};\nconst formatDate = (date, formatStr, options = {}) => {\n var _a;\n const years = date.getFullYear();\n const month = date.getMonth();\n const days = date.getDate();\n const hours = date.getHours();\n const minutes = date.getMinutes();\n const seconds = date.getSeconds();\n const milliseconds = date.getMilliseconds();\n const day = date.getDay();\n const meridiem = (_a = options.customMeridiem) != null ? _a : defaultMeridiem;\n const matches = {\n YY: () => String(years).slice(-2),\n YYYY: () => years,\n M: () => month + 1,\n MM: () => `${month + 1}`.padStart(2, \"0\"),\n MMM: () => date.toLocaleDateString(options.locales, { month: \"short\" }),\n MMMM: () => date.toLocaleDateString(options.locales, { month: \"long\" }),\n D: () => String(days),\n DD: () => `${days}`.padStart(2, \"0\"),\n H: () => String(hours),\n HH: () => `${hours}`.padStart(2, \"0\"),\n h: () => `${hours % 12 || 12}`.padStart(1, \"0\"),\n hh: () => `${hours % 12 || 12}`.padStart(2, \"0\"),\n m: () => String(minutes),\n mm: () => `${minutes}`.padStart(2, \"0\"),\n s: () => String(seconds),\n ss: () => `${seconds}`.padStart(2, \"0\"),\n SSS: () => `${milliseconds}`.padStart(3, \"0\"),\n d: () => day,\n dd: () => date.toLocaleDateString(options.locales, { weekday: \"narrow\" }),\n ddd: () => date.toLocaleDateString(options.locales, { weekday: \"short\" }),\n dddd: () => date.toLocaleDateString(options.locales, { weekday: \"long\" }),\n A: () => meridiem(hours, minutes),\n AA: () => meridiem(hours, minutes, false, true),\n a: () => meridiem(hours, minutes, true),\n aa: () => meridiem(hours, minutes, true, true)\n };\n return formatStr.replace(REGEX_FORMAT, (match, $1) => $1 || matches[match]());\n};\nconst normalizeDate = (date) => {\n if (date === null)\n return new Date(NaN);\n if (date === void 0)\n return new Date();\n if (date instanceof Date)\n return new Date(date);\n if (typeof date === \"string\" && !/Z$/i.test(date)) {\n const d = date.match(REGEX_PARSE);\n if (d) {\n const m = d[2] - 1 || 0;\n const ms = (d[7] || \"0\").substring(0, 3);\n return new Date(d[1], m, d[3] || 1, d[4] || 0, d[5] || 0, d[6] || 0, ms);\n }\n }\n return new Date(date);\n};\nfunction useDateFormat(date, formatStr = \"HH:mm:ss\", options = {}) {\n return computed(() => formatDate(normalizeDate(resolveUnref(date)), resolveUnref(formatStr), options));\n}\n\nfunction useIntervalFn(cb, interval = 1e3, options = {}) {\n const {\n immediate = true,\n immediateCallback = false\n } = options;\n let timer = null;\n const isActive = ref(false);\n function clean() {\n if (timer) {\n clearInterval(timer);\n timer = null;\n }\n }\n function pause() {\n isActive.value = false;\n clean();\n }\n function resume() {\n const intervalValue = resolveUnref(interval);\n if (intervalValue <= 0)\n return;\n isActive.value = true;\n if (immediateCallback)\n cb();\n clean();\n timer = setInterval(cb, intervalValue);\n }\n if (immediate && isClient)\n resume();\n if (isRef(interval) || isFunction(interval)) {\n const stopWatch = watch(interval, () => {\n if (isActive.value && isClient)\n resume();\n });\n tryOnScopeDispose(stopWatch);\n }\n tryOnScopeDispose(pause);\n return {\n isActive,\n pause,\n resume\n };\n}\n\nvar __defProp$6 = Object.defineProperty;\nvar __getOwnPropSymbols$8 = Object.getOwnPropertySymbols;\nvar __hasOwnProp$8 = Object.prototype.hasOwnProperty;\nvar __propIsEnum$8 = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$6 = (obj, key, value) => key in obj ? __defProp$6(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$6 = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$8.call(b, prop))\n __defNormalProp$6(a, prop, b[prop]);\n if (__getOwnPropSymbols$8)\n for (var prop of __getOwnPropSymbols$8(b)) {\n if (__propIsEnum$8.call(b, prop))\n __defNormalProp$6(a, prop, b[prop]);\n }\n return a;\n};\nfunction useInterval(interval = 1e3, options = {}) {\n const {\n controls: exposeControls = false,\n immediate = true,\n callback\n } = options;\n const counter = ref(0);\n const update = () => counter.value += 1;\n const reset = () => {\n counter.value = 0;\n };\n const controls = useIntervalFn(callback ? () => {\n update();\n callback(counter.value);\n } : update, interval, { immediate });\n if (exposeControls) {\n return __spreadValues$6({\n counter,\n reset\n }, controls);\n } else {\n return counter;\n }\n}\n\nfunction useLastChanged(source, options = {}) {\n var _a;\n const ms = ref((_a = options.initialValue) != null ? _a : null);\n watch(source, () => ms.value = timestamp(), options);\n return ms;\n}\n\nfunction useTimeoutFn(cb, interval, options = {}) {\n const {\n immediate = true\n } = options;\n const isPending = ref(false);\n let timer = null;\n function clear() {\n if (timer) {\n clearTimeout(timer);\n timer = null;\n }\n }\n function stop() {\n isPending.value = false;\n clear();\n }\n function start(...args) {\n clear();\n isPending.value = true;\n timer = setTimeout(() => {\n isPending.value = false;\n timer = null;\n cb(...args);\n }, resolveUnref(interval));\n }\n if (immediate) {\n isPending.value = true;\n if (isClient)\n start();\n }\n tryOnScopeDispose(stop);\n return {\n isPending: readonly(isPending),\n start,\n stop\n };\n}\n\nvar __defProp$5 = Object.defineProperty;\nvar __getOwnPropSymbols$7 = Object.getOwnPropertySymbols;\nvar __hasOwnProp$7 = Object.prototype.hasOwnProperty;\nvar __propIsEnum$7 = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$5 = (obj, key, value) => key in obj ? __defProp$5(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$5 = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$7.call(b, prop))\n __defNormalProp$5(a, prop, b[prop]);\n if (__getOwnPropSymbols$7)\n for (var prop of __getOwnPropSymbols$7(b)) {\n if (__propIsEnum$7.call(b, prop))\n __defNormalProp$5(a, prop, b[prop]);\n }\n return a;\n};\nfunction useTimeout(interval = 1e3, options = {}) {\n const {\n controls: exposeControls = false,\n callback\n } = options;\n const controls = useTimeoutFn(callback != null ? callback : noop, interval, options);\n const ready = computed(() => !controls.isPending.value);\n if (exposeControls) {\n return __spreadValues$5({\n ready\n }, controls);\n } else {\n return ready;\n }\n}\n\nfunction useToNumber(value, options = {}) {\n const {\n method = \"parseFloat\",\n radix,\n nanToZero\n } = options;\n return computed(() => {\n let resolved = resolveUnref(value);\n if (typeof resolved === \"string\")\n resolved = Number[method](resolved, radix);\n if (nanToZero && isNaN(resolved))\n resolved = 0;\n return resolved;\n });\n}\n\nfunction useToString(value) {\n return computed(() => `${resolveUnref(value)}`);\n}\n\nfunction useToggle(initialValue = false, options = {}) {\n const {\n truthyValue = true,\n falsyValue = false\n } = options;\n const valueIsRef = isRef(initialValue);\n const _value = ref(initialValue);\n function toggle(value) {\n if (arguments.length) {\n _value.value = value;\n return _value.value;\n } else {\n const truthy = resolveUnref(truthyValue);\n _value.value = _value.value === truthy ? resolveUnref(falsyValue) : truthy;\n return _value.value;\n }\n }\n if (valueIsRef)\n return toggle;\n else\n return [_value, toggle];\n}\n\nfunction watchArray(source, cb, options) {\n let oldList = (options == null ? void 0 : options.immediate) ? [] : [\n ...source instanceof Function ? source() : Array.isArray(source) ? source : unref(source)\n ];\n return watch(source, (newList, _, onCleanup) => {\n const oldListRemains = new Array(oldList.length);\n const added = [];\n for (const obj of newList) {\n let found = false;\n for (let i = 0; i < oldList.length; i++) {\n if (!oldListRemains[i] && obj === oldList[i]) {\n oldListRemains[i] = true;\n found = true;\n break;\n }\n }\n if (!found)\n added.push(obj);\n }\n const removed = oldList.filter((_2, i) => !oldListRemains[i]);\n cb(newList, oldList, added, removed, onCleanup);\n oldList = [...newList];\n }, options);\n}\n\nvar __getOwnPropSymbols$6 = Object.getOwnPropertySymbols;\nvar __hasOwnProp$6 = Object.prototype.hasOwnProperty;\nvar __propIsEnum$6 = Object.prototype.propertyIsEnumerable;\nvar __objRest$5 = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp$6.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols$6)\n for (var prop of __getOwnPropSymbols$6(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum$6.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\nfunction watchWithFilter(source, cb, options = {}) {\n const _a = options, {\n eventFilter = bypassFilter\n } = _a, watchOptions = __objRest$5(_a, [\n \"eventFilter\"\n ]);\n return watch(source, createFilterWrapper(eventFilter, cb), watchOptions);\n}\n\nvar __getOwnPropSymbols$5 = Object.getOwnPropertySymbols;\nvar __hasOwnProp$5 = Object.prototype.hasOwnProperty;\nvar __propIsEnum$5 = Object.prototype.propertyIsEnumerable;\nvar __objRest$4 = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp$5.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols$5)\n for (var prop of __getOwnPropSymbols$5(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum$5.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\nfunction watchAtMost(source, cb, options) {\n const _a = options, {\n count\n } = _a, watchOptions = __objRest$4(_a, [\n \"count\"\n ]);\n const current = ref(0);\n const stop = watchWithFilter(source, (...args) => {\n current.value += 1;\n if (current.value >= resolveUnref(count))\n nextTick(() => stop());\n cb(...args);\n }, watchOptions);\n return { count: current, stop };\n}\n\nvar __defProp$4 = Object.defineProperty;\nvar __defProps$4 = Object.defineProperties;\nvar __getOwnPropDescs$4 = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols$4 = Object.getOwnPropertySymbols;\nvar __hasOwnProp$4 = Object.prototype.hasOwnProperty;\nvar __propIsEnum$4 = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$4 = (obj, key, value) => key in obj ? __defProp$4(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$4 = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$4.call(b, prop))\n __defNormalProp$4(a, prop, b[prop]);\n if (__getOwnPropSymbols$4)\n for (var prop of __getOwnPropSymbols$4(b)) {\n if (__propIsEnum$4.call(b, prop))\n __defNormalProp$4(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps$4 = (a, b) => __defProps$4(a, __getOwnPropDescs$4(b));\nvar __objRest$3 = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp$4.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols$4)\n for (var prop of __getOwnPropSymbols$4(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum$4.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\nfunction watchDebounced(source, cb, options = {}) {\n const _a = options, {\n debounce = 0,\n maxWait = void 0\n } = _a, watchOptions = __objRest$3(_a, [\n \"debounce\",\n \"maxWait\"\n ]);\n return watchWithFilter(source, cb, __spreadProps$4(__spreadValues$4({}, watchOptions), {\n eventFilter: debounceFilter(debounce, { maxWait })\n }));\n}\n\nvar __defProp$3 = Object.defineProperty;\nvar __defProps$3 = Object.defineProperties;\nvar __getOwnPropDescs$3 = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols$3 = Object.getOwnPropertySymbols;\nvar __hasOwnProp$3 = Object.prototype.hasOwnProperty;\nvar __propIsEnum$3 = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$3 = (obj, key, value) => key in obj ? __defProp$3(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$3 = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$3.call(b, prop))\n __defNormalProp$3(a, prop, b[prop]);\n if (__getOwnPropSymbols$3)\n for (var prop of __getOwnPropSymbols$3(b)) {\n if (__propIsEnum$3.call(b, prop))\n __defNormalProp$3(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps$3 = (a, b) => __defProps$3(a, __getOwnPropDescs$3(b));\nvar __objRest$2 = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp$3.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols$3)\n for (var prop of __getOwnPropSymbols$3(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum$3.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\nfunction watchIgnorable(source, cb, options = {}) {\n const _a = options, {\n eventFilter = bypassFilter\n } = _a, watchOptions = __objRest$2(_a, [\n \"eventFilter\"\n ]);\n const filteredCb = createFilterWrapper(eventFilter, cb);\n let ignoreUpdates;\n let ignorePrevAsyncUpdates;\n let stop;\n if (watchOptions.flush === \"sync\") {\n const ignore = ref(false);\n ignorePrevAsyncUpdates = () => {\n };\n ignoreUpdates = (updater) => {\n ignore.value = true;\n updater();\n ignore.value = false;\n };\n stop = watch(source, (...args) => {\n if (!ignore.value)\n filteredCb(...args);\n }, watchOptions);\n } else {\n const disposables = [];\n const ignoreCounter = ref(0);\n const syncCounter = ref(0);\n ignorePrevAsyncUpdates = () => {\n ignoreCounter.value = syncCounter.value;\n };\n disposables.push(watch(source, () => {\n syncCounter.value++;\n }, __spreadProps$3(__spreadValues$3({}, watchOptions), { flush: \"sync\" })));\n ignoreUpdates = (updater) => {\n const syncCounterPrev = syncCounter.value;\n updater();\n ignoreCounter.value += syncCounter.value - syncCounterPrev;\n };\n disposables.push(watch(source, (...args) => {\n const ignore = ignoreCounter.value > 0 && ignoreCounter.value === syncCounter.value;\n ignoreCounter.value = 0;\n syncCounter.value = 0;\n if (ignore)\n return;\n filteredCb(...args);\n }, watchOptions));\n stop = () => {\n disposables.forEach((fn) => fn());\n };\n }\n return { stop, ignoreUpdates, ignorePrevAsyncUpdates };\n}\n\nfunction watchOnce(source, cb, options) {\n const stop = watch(source, (...args) => {\n nextTick(() => stop());\n return cb(...args);\n }, options);\n}\n\nvar __defProp$2 = Object.defineProperty;\nvar __defProps$2 = Object.defineProperties;\nvar __getOwnPropDescs$2 = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols$2 = Object.getOwnPropertySymbols;\nvar __hasOwnProp$2 = Object.prototype.hasOwnProperty;\nvar __propIsEnum$2 = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$2 = (obj, key, value) => key in obj ? __defProp$2(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$2 = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$2.call(b, prop))\n __defNormalProp$2(a, prop, b[prop]);\n if (__getOwnPropSymbols$2)\n for (var prop of __getOwnPropSymbols$2(b)) {\n if (__propIsEnum$2.call(b, prop))\n __defNormalProp$2(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps$2 = (a, b) => __defProps$2(a, __getOwnPropDescs$2(b));\nvar __objRest$1 = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp$2.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols$2)\n for (var prop of __getOwnPropSymbols$2(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum$2.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\nfunction watchPausable(source, cb, options = {}) {\n const _a = options, {\n eventFilter: filter\n } = _a, watchOptions = __objRest$1(_a, [\n \"eventFilter\"\n ]);\n const { eventFilter, pause, resume, isActive } = pausableFilter(filter);\n const stop = watchWithFilter(source, cb, __spreadProps$2(__spreadValues$2({}, watchOptions), {\n eventFilter\n }));\n return { stop, pause, resume, isActive };\n}\n\nvar __defProp$1 = Object.defineProperty;\nvar __defProps$1 = Object.defineProperties;\nvar __getOwnPropDescs$1 = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols$1 = Object.getOwnPropertySymbols;\nvar __hasOwnProp$1 = Object.prototype.hasOwnProperty;\nvar __propIsEnum$1 = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$1 = (obj, key, value) => key in obj ? __defProp$1(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$1 = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$1.call(b, prop))\n __defNormalProp$1(a, prop, b[prop]);\n if (__getOwnPropSymbols$1)\n for (var prop of __getOwnPropSymbols$1(b)) {\n if (__propIsEnum$1.call(b, prop))\n __defNormalProp$1(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps$1 = (a, b) => __defProps$1(a, __getOwnPropDescs$1(b));\nvar __objRest = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp$1.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols$1)\n for (var prop of __getOwnPropSymbols$1(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum$1.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\nfunction watchThrottled(source, cb, options = {}) {\n const _a = options, {\n throttle = 0,\n trailing = true,\n leading = true\n } = _a, watchOptions = __objRest(_a, [\n \"throttle\",\n \"trailing\",\n \"leading\"\n ]);\n return watchWithFilter(source, cb, __spreadProps$1(__spreadValues$1({}, watchOptions), {\n eventFilter: throttleFilter(throttle, trailing, leading)\n }));\n}\n\nvar __defProp = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));\nfunction watchTriggerable(source, cb, options = {}) {\n let cleanupFn;\n function onEffect() {\n if (!cleanupFn)\n return;\n const fn = cleanupFn;\n cleanupFn = void 0;\n fn();\n }\n function onCleanup(callback) {\n cleanupFn = callback;\n }\n const _cb = (value, oldValue) => {\n onEffect();\n return cb(value, oldValue, onCleanup);\n };\n const res = watchIgnorable(source, _cb, options);\n const { ignoreUpdates } = res;\n const trigger = () => {\n let res2;\n ignoreUpdates(() => {\n res2 = _cb(getWatchSources(source), getOldValue(source));\n });\n return res2;\n };\n return __spreadProps(__spreadValues({}, res), {\n trigger\n });\n}\nfunction getWatchSources(sources) {\n if (isReactive(sources))\n return sources;\n if (Array.isArray(sources))\n return sources.map((item) => getOneWatchSource(item));\n return getOneWatchSource(sources);\n}\nfunction getOneWatchSource(source) {\n return typeof source === \"function\" ? source() : unref(source);\n}\nfunction getOldValue(source) {\n return Array.isArray(source) ? source.map(() => void 0) : void 0;\n}\n\nfunction whenever(source, cb, options) {\n return watch(source, (v, ov, onInvalidate) => {\n if (v)\n cb(v, ov, onInvalidate);\n }, options);\n}\n\nexport { __onlyVue27Plus, __onlyVue3, assert, refAutoReset as autoResetRef, bypassFilter, clamp, computedEager, computedWithControl, containsProp, computedWithControl as controlledComputed, controlledRef, createEventHook, createFilterWrapper, createGlobalState, createInjectionState, reactify as createReactiveFn, createSharedComposable, createSingletonPromise, debounceFilter, refDebounced as debouncedRef, watchDebounced as debouncedWatch, directiveHooks, computedEager as eagerComputed, extendRef, formatDate, get, hasOwn, identity, watchIgnorable as ignorableWatch, increaseWithUnit, invoke, isBoolean, isClient, isDef, isDefined, isFunction, isIOS, isNumber, isObject, isString, isWindow, makeDestructurable, noop, normalizeDate, now, objectPick, pausableFilter, watchPausable as pausableWatch, promiseTimeout, rand, reactify, reactifyObject, reactiveComputed, reactiveOmit, reactivePick, refAutoReset, refDebounced, refDefault, refThrottled, refWithControl, resolveRef, resolveUnref, set, syncRef, syncRefs, throttleFilter, refThrottled as throttledRef, watchThrottled as throttledWatch, timestamp, toReactive, toRefs, tryOnBeforeMount, tryOnBeforeUnmount, tryOnMounted, tryOnScopeDispose, tryOnUnmounted, until, useArrayEvery, useArrayFilter, useArrayFind, useArrayFindIndex, useArrayFindLast, useArrayJoin, useArrayMap, useArrayReduce, useArraySome, useArrayUnique, useCounter, useDateFormat, refDebounced as useDebounce, useDebounceFn, useInterval, useIntervalFn, useLastChanged, refThrottled as useThrottle, useThrottleFn, useTimeout, useTimeoutFn, useToNumber, useToString, useToggle, watchArray, watchAtMost, watchDebounced, watchIgnorable, watchOnce, watchPausable, watchThrottled, watchTriggerable, watchWithFilter, whenever };\n","import { noop, resolveUnref, isClient, isString, tryOnScopeDispose, isIOS, tryOnMounted, computedWithControl, promiseTimeout, isFunction, resolveRef, increaseWithUnit, useTimeoutFn, pausableWatch, createEventHook, timestamp, pausableFilter, watchIgnorable, debounceFilter, createFilterWrapper, bypassFilter, createSingletonPromise, toRefs, containsProp, until, hasOwn, throttleFilter, useDebounceFn, useThrottleFn, isObject, isNumber, useIntervalFn, clamp, syncRef, objectPick, tryOnUnmounted, watchWithFilter, identity, isDef } from '@vueuse/shared';\nexport * from '@vueuse/shared';\nimport { isRef, ref, shallowRef, watchEffect, computed, inject, unref, watch, getCurrentInstance, customRef, onUpdated, reactive, nextTick, onMounted, markRaw, readonly, getCurrentScope, isVue2, set, del, isReadonly, onBeforeUpdate } from 'vue-demi';\n\nfunction computedAsync(evaluationCallback, initialState, optionsOrRef) {\n let options;\n if (isRef(optionsOrRef)) {\n options = {\n evaluating: optionsOrRef\n };\n } else {\n options = optionsOrRef || {};\n }\n const {\n lazy = false,\n evaluating = void 0,\n shallow = false,\n onError = noop\n } = options;\n const started = ref(!lazy);\n const current = shallow ? shallowRef(initialState) : ref(initialState);\n let counter = 0;\n watchEffect(async (onInvalidate) => {\n if (!started.value)\n return;\n counter++;\n const counterAtBeginning = counter;\n let hasFinished = false;\n if (evaluating) {\n Promise.resolve().then(() => {\n evaluating.value = true;\n });\n }\n try {\n const result = await evaluationCallback((cancelCallback) => {\n onInvalidate(() => {\n if (evaluating)\n evaluating.value = false;\n if (!hasFinished)\n cancelCallback();\n });\n });\n if (counterAtBeginning === counter)\n current.value = result;\n } catch (e) {\n onError(e);\n } finally {\n if (evaluating && counterAtBeginning === counter)\n evaluating.value = false;\n hasFinished = true;\n }\n });\n if (lazy) {\n return computed(() => {\n started.value = true;\n return current.value;\n });\n } else {\n return current;\n }\n}\n\nfunction computedInject(key, options, defaultSource, treatDefaultAsFactory) {\n let source = inject(key);\n if (defaultSource)\n source = inject(key, defaultSource);\n if (treatDefaultAsFactory)\n source = inject(key, defaultSource, treatDefaultAsFactory);\n if (typeof options === \"function\") {\n return computed((ctx) => options(source, ctx));\n } else {\n return computed({\n get: (ctx) => options.get(source, ctx),\n set: options.set\n });\n }\n}\n\nconst createUnrefFn = (fn) => {\n return function(...args) {\n return fn.apply(this, args.map((i) => unref(i)));\n };\n};\n\nfunction unrefElement(elRef) {\n var _a;\n const plain = resolveUnref(elRef);\n return (_a = plain == null ? void 0 : plain.$el) != null ? _a : plain;\n}\n\nconst defaultWindow = isClient ? window : void 0;\nconst defaultDocument = isClient ? window.document : void 0;\nconst defaultNavigator = isClient ? window.navigator : void 0;\nconst defaultLocation = isClient ? window.location : void 0;\n\nfunction useEventListener(...args) {\n let target;\n let events;\n let listeners;\n let options;\n if (isString(args[0]) || Array.isArray(args[0])) {\n [events, listeners, options] = args;\n target = defaultWindow;\n } else {\n [target, events, listeners, options] = args;\n }\n if (!target)\n return noop;\n if (!Array.isArray(events))\n events = [events];\n if (!Array.isArray(listeners))\n listeners = [listeners];\n const cleanups = [];\n const cleanup = () => {\n cleanups.forEach((fn) => fn());\n cleanups.length = 0;\n };\n const register = (el, event, listener, options2) => {\n el.addEventListener(event, listener, options2);\n return () => el.removeEventListener(event, listener, options2);\n };\n const stopWatch = watch(() => [unrefElement(target), resolveUnref(options)], ([el, options2]) => {\n cleanup();\n if (!el)\n return;\n cleanups.push(...events.flatMap((event) => {\n return listeners.map((listener) => register(el, event, listener, options2));\n }));\n }, { immediate: true, flush: \"post\" });\n const stop = () => {\n stopWatch();\n cleanup();\n };\n tryOnScopeDispose(stop);\n return stop;\n}\n\nlet _iOSWorkaround = false;\nfunction onClickOutside(target, handler, options = {}) {\n const { window = defaultWindow, ignore = [], capture = true, detectIframe = false } = options;\n if (!window)\n return;\n if (isIOS && !_iOSWorkaround) {\n _iOSWorkaround = true;\n Array.from(window.document.body.children).forEach((el) => el.addEventListener(\"click\", noop));\n }\n let shouldListen = true;\n const shouldIgnore = (event) => {\n return ignore.some((target2) => {\n if (typeof target2 === \"string\") {\n return Array.from(window.document.querySelectorAll(target2)).some((el) => el === event.target || event.composedPath().includes(el));\n } else {\n const el = unrefElement(target2);\n return el && (event.target === el || event.composedPath().includes(el));\n }\n });\n };\n const listener = (event) => {\n const el = unrefElement(target);\n if (!el || el === event.target || event.composedPath().includes(el))\n return;\n if (event.detail === 0)\n shouldListen = !shouldIgnore(event);\n if (!shouldListen) {\n shouldListen = true;\n return;\n }\n handler(event);\n };\n const cleanup = [\n useEventListener(window, \"click\", listener, { passive: true, capture }),\n useEventListener(window, \"pointerdown\", (e) => {\n const el = unrefElement(target);\n if (el)\n shouldListen = !e.composedPath().includes(el) && !shouldIgnore(e);\n }, { passive: true }),\n detectIframe && useEventListener(window, \"blur\", (event) => {\n var _a;\n const el = unrefElement(target);\n if (((_a = window.document.activeElement) == null ? void 0 : _a.tagName) === \"IFRAME\" && !(el == null ? void 0 : el.contains(window.document.activeElement)))\n handler(event);\n })\n ].filter(Boolean);\n const stop = () => cleanup.forEach((fn) => fn());\n return stop;\n}\n\nvar __defProp$n = Object.defineProperty;\nvar __defProps$9 = Object.defineProperties;\nvar __getOwnPropDescs$9 = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols$p = Object.getOwnPropertySymbols;\nvar __hasOwnProp$p = Object.prototype.hasOwnProperty;\nvar __propIsEnum$p = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$n = (obj, key, value) => key in obj ? __defProp$n(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$n = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$p.call(b, prop))\n __defNormalProp$n(a, prop, b[prop]);\n if (__getOwnPropSymbols$p)\n for (var prop of __getOwnPropSymbols$p(b)) {\n if (__propIsEnum$p.call(b, prop))\n __defNormalProp$n(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps$9 = (a, b) => __defProps$9(a, __getOwnPropDescs$9(b));\nconst createKeyPredicate = (keyFilter) => {\n if (typeof keyFilter === \"function\")\n return keyFilter;\n else if (typeof keyFilter === \"string\")\n return (event) => event.key === keyFilter;\n else if (Array.isArray(keyFilter))\n return (event) => keyFilter.includes(event.key);\n return () => true;\n};\nfunction onKeyStroke(...args) {\n let key;\n let handler;\n let options = {};\n if (args.length === 3) {\n key = args[0];\n handler = args[1];\n options = args[2];\n } else if (args.length === 2) {\n if (typeof args[1] === \"object\") {\n key = true;\n handler = args[0];\n options = args[1];\n } else {\n key = args[0];\n handler = args[1];\n }\n } else {\n key = true;\n handler = args[0];\n }\n const { target = defaultWindow, eventName = \"keydown\", passive = false } = options;\n const predicate = createKeyPredicate(key);\n const listener = (e) => {\n if (predicate(e))\n handler(e);\n };\n return useEventListener(target, eventName, listener, passive);\n}\nfunction onKeyDown(key, handler, options = {}) {\n return onKeyStroke(key, handler, __spreadProps$9(__spreadValues$n({}, options), { eventName: \"keydown\" }));\n}\nfunction onKeyPressed(key, handler, options = {}) {\n return onKeyStroke(key, handler, __spreadProps$9(__spreadValues$n({}, options), { eventName: \"keypress\" }));\n}\nfunction onKeyUp(key, handler, options = {}) {\n return onKeyStroke(key, handler, __spreadProps$9(__spreadValues$n({}, options), { eventName: \"keyup\" }));\n}\n\nconst DEFAULT_DELAY = 500;\nfunction onLongPress(target, handler, options) {\n var _a, _b;\n const elementRef = computed(() => unrefElement(target));\n let timeout;\n function clear() {\n if (timeout) {\n clearTimeout(timeout);\n timeout = void 0;\n }\n }\n function onDown(ev) {\n var _a2, _b2, _c, _d;\n if (((_a2 = options == null ? void 0 : options.modifiers) == null ? void 0 : _a2.self) && ev.target !== elementRef.value)\n return;\n clear();\n if ((_b2 = options == null ? void 0 : options.modifiers) == null ? void 0 : _b2.prevent)\n ev.preventDefault();\n if ((_c = options == null ? void 0 : options.modifiers) == null ? void 0 : _c.stop)\n ev.stopPropagation();\n timeout = setTimeout(() => handler(ev), (_d = options == null ? void 0 : options.delay) != null ? _d : DEFAULT_DELAY);\n }\n const listenerOptions = {\n capture: (_a = options == null ? void 0 : options.modifiers) == null ? void 0 : _a.capture,\n once: (_b = options == null ? void 0 : options.modifiers) == null ? void 0 : _b.once\n };\n useEventListener(elementRef, \"pointerdown\", onDown, listenerOptions);\n useEventListener(elementRef, \"pointerup\", clear, listenerOptions);\n useEventListener(elementRef, \"pointerleave\", clear, listenerOptions);\n}\n\nconst isFocusedElementEditable = () => {\n const { activeElement, body } = document;\n if (!activeElement)\n return false;\n if (activeElement === body)\n return false;\n switch (activeElement.tagName) {\n case \"INPUT\":\n case \"TEXTAREA\":\n return true;\n }\n return activeElement.hasAttribute(\"contenteditable\");\n};\nconst isTypedCharValid = ({\n keyCode,\n metaKey,\n ctrlKey,\n altKey\n}) => {\n if (metaKey || ctrlKey || altKey)\n return false;\n if (keyCode >= 48 && keyCode <= 57 || keyCode >= 96 && keyCode <= 105)\n return true;\n if (keyCode >= 65 && keyCode <= 90)\n return true;\n return false;\n};\nfunction onStartTyping(callback, options = {}) {\n const { document: document2 = defaultDocument } = options;\n const keydown = (event) => {\n !isFocusedElementEditable() && isTypedCharValid(event) && callback(event);\n };\n if (document2)\n useEventListener(document2, \"keydown\", keydown, { passive: true });\n}\n\nfunction templateRef(key, initialValue = null) {\n const instance = getCurrentInstance();\n let _trigger = () => {\n };\n const element = customRef((track, trigger) => {\n _trigger = trigger;\n return {\n get() {\n var _a, _b;\n track();\n return (_b = (_a = instance == null ? void 0 : instance.proxy) == null ? void 0 : _a.$refs[key]) != null ? _b : initialValue;\n },\n set() {\n }\n };\n });\n tryOnMounted(_trigger);\n onUpdated(_trigger);\n return element;\n}\n\nfunction useActiveElement(options = {}) {\n var _a;\n const { window = defaultWindow } = options;\n const document = (_a = options.document) != null ? _a : window == null ? void 0 : window.document;\n const activeElement = computedWithControl(() => null, () => document == null ? void 0 : document.activeElement);\n if (window) {\n useEventListener(window, \"blur\", (event) => {\n if (event.relatedTarget !== null)\n return;\n activeElement.trigger();\n }, true);\n useEventListener(window, \"focus\", activeElement.trigger, true);\n }\n return activeElement;\n}\n\nfunction useAsyncQueue(tasks, options = {}) {\n const {\n interrupt = true,\n onError = noop,\n onFinished = noop\n } = options;\n const promiseState = {\n pending: \"pending\",\n rejected: \"rejected\",\n fulfilled: \"fulfilled\"\n };\n const initialResult = Array.from(new Array(tasks.length), () => ({ state: promiseState.pending, data: null }));\n const result = reactive(initialResult);\n const activeIndex = ref(-1);\n if (!tasks || tasks.length === 0) {\n onFinished();\n return {\n activeIndex,\n result\n };\n }\n function updateResult(state, res) {\n activeIndex.value++;\n result[activeIndex.value].data = res;\n result[activeIndex.value].state = state;\n }\n tasks.reduce((prev, curr) => {\n return prev.then((prevRes) => {\n var _a;\n if (((_a = result[activeIndex.value]) == null ? void 0 : _a.state) === promiseState.rejected && interrupt) {\n onFinished();\n return;\n }\n return curr(prevRes).then((currentRes) => {\n updateResult(promiseState.fulfilled, currentRes);\n activeIndex.value === tasks.length - 1 && onFinished();\n return currentRes;\n });\n }).catch((e) => {\n updateResult(promiseState.rejected, e);\n onError();\n return e;\n });\n }, Promise.resolve());\n return {\n activeIndex,\n result\n };\n}\n\nfunction useAsyncState(promise, initialState, options) {\n const {\n immediate = true,\n delay = 0,\n onError = noop,\n onSuccess = noop,\n resetOnExecute = true,\n shallow = true,\n throwError\n } = options != null ? options : {};\n const state = shallow ? shallowRef(initialState) : ref(initialState);\n const isReady = ref(false);\n const isLoading = ref(false);\n const error = ref(void 0);\n async function execute(delay2 = 0, ...args) {\n if (resetOnExecute)\n state.value = initialState;\n error.value = void 0;\n isReady.value = false;\n isLoading.value = true;\n if (delay2 > 0)\n await promiseTimeout(delay2);\n const _promise = typeof promise === \"function\" ? promise(...args) : promise;\n try {\n const data = await _promise;\n state.value = data;\n isReady.value = true;\n onSuccess(data);\n } catch (e) {\n error.value = e;\n onError(e);\n if (throwError)\n throw error;\n } finally {\n isLoading.value = false;\n }\n return state.value;\n }\n if (immediate)\n execute(delay);\n return {\n state,\n isReady,\n isLoading,\n error,\n execute\n };\n}\n\nconst defaults = {\n array: (v) => JSON.stringify(v),\n object: (v) => JSON.stringify(v),\n set: (v) => JSON.stringify(Array.from(v)),\n map: (v) => JSON.stringify(Object.fromEntries(v)),\n null: () => \"\"\n};\nfunction getDefaultSerialization(target) {\n if (!target)\n return defaults.null;\n if (target instanceof Map)\n return defaults.map;\n else if (target instanceof Set)\n return defaults.set;\n else if (Array.isArray(target))\n return defaults.array;\n else\n return defaults.object;\n}\n\nfunction useBase64(target, options) {\n const base64 = ref(\"\");\n const promise = ref();\n function execute() {\n if (!isClient)\n return;\n promise.value = new Promise((resolve, reject) => {\n try {\n const _target = resolveUnref(target);\n if (_target == null) {\n resolve(\"\");\n } else if (typeof _target === \"string\") {\n resolve(blobToBase64(new Blob([_target], { type: \"text/plain\" })));\n } else if (_target instanceof Blob) {\n resolve(blobToBase64(_target));\n } else if (_target instanceof ArrayBuffer) {\n resolve(window.btoa(String.fromCharCode(...new Uint8Array(_target))));\n } else if (_target instanceof HTMLCanvasElement) {\n resolve(_target.toDataURL(options == null ? void 0 : options.type, options == null ? void 0 : options.quality));\n } else if (_target instanceof HTMLImageElement) {\n const img = _target.cloneNode(false);\n img.crossOrigin = \"Anonymous\";\n imgLoaded(img).then(() => {\n const canvas = document.createElement(\"canvas\");\n const ctx = canvas.getContext(\"2d\");\n canvas.width = img.width;\n canvas.height = img.height;\n ctx.drawImage(img, 0, 0, canvas.width, canvas.height);\n resolve(canvas.toDataURL(options == null ? void 0 : options.type, options == null ? void 0 : options.quality));\n }).catch(reject);\n } else if (typeof _target === \"object\") {\n const _serializeFn = (options == null ? void 0 : options.serializer) || getDefaultSerialization(_target);\n const serialized = _serializeFn(_target);\n return resolve(blobToBase64(new Blob([serialized], { type: \"application/json\" })));\n } else {\n reject(new Error(\"target is unsupported types\"));\n }\n } catch (error) {\n reject(error);\n }\n });\n promise.value.then((res) => base64.value = res);\n return promise.value;\n }\n if (isRef(target) || isFunction(target))\n watch(target, execute, { immediate: true });\n else\n execute();\n return {\n base64,\n promise,\n execute\n };\n}\nfunction imgLoaded(img) {\n return new Promise((resolve, reject) => {\n if (!img.complete) {\n img.onload = () => {\n resolve();\n };\n img.onerror = reject;\n } else {\n resolve();\n }\n });\n}\nfunction blobToBase64(blob) {\n return new Promise((resolve, reject) => {\n const fr = new FileReader();\n fr.onload = (e) => {\n resolve(e.target.result);\n };\n fr.onerror = reject;\n fr.readAsDataURL(blob);\n });\n}\n\nfunction useSupported(callback, sync = false) {\n const isSupported = ref();\n const update = () => isSupported.value = Boolean(callback());\n update();\n tryOnMounted(update, sync);\n return isSupported;\n}\n\nfunction useBattery({ navigator = defaultNavigator } = {}) {\n const events = [\"chargingchange\", \"chargingtimechange\", \"dischargingtimechange\", \"levelchange\"];\n const isSupported = useSupported(() => navigator && \"getBattery\" in navigator);\n const charging = ref(false);\n const chargingTime = ref(0);\n const dischargingTime = ref(0);\n const level = ref(1);\n let battery;\n function updateBatteryInfo() {\n charging.value = this.charging;\n chargingTime.value = this.chargingTime || 0;\n dischargingTime.value = this.dischargingTime || 0;\n level.value = this.level;\n }\n if (isSupported.value) {\n navigator.getBattery().then((_battery) => {\n battery = _battery;\n updateBatteryInfo.call(battery);\n for (const event of events)\n useEventListener(battery, event, updateBatteryInfo, { passive: true });\n });\n }\n return {\n isSupported,\n charging,\n chargingTime,\n dischargingTime,\n level\n };\n}\n\nfunction useBluetooth(options) {\n let {\n acceptAllDevices = false\n } = options || {};\n const {\n filters = void 0,\n optionalServices = void 0,\n navigator = defaultNavigator\n } = options || {};\n const isSupported = useSupported(() => navigator && \"bluetooth\" in navigator);\n const device = shallowRef(void 0);\n const error = shallowRef(null);\n watch(device, () => {\n connectToBluetoothGATTServer();\n });\n async function requestDevice() {\n if (!isSupported.value)\n return;\n error.value = null;\n if (filters && filters.length > 0)\n acceptAllDevices = false;\n try {\n device.value = await (navigator == null ? void 0 : navigator.bluetooth.requestDevice({\n acceptAllDevices,\n filters,\n optionalServices\n }));\n } catch (err) {\n error.value = err;\n }\n }\n const server = ref();\n const isConnected = computed(() => {\n var _a;\n return ((_a = server.value) == null ? void 0 : _a.connected) || false;\n });\n async function connectToBluetoothGATTServer() {\n error.value = null;\n if (device.value && device.value.gatt) {\n device.value.addEventListener(\"gattserverdisconnected\", () => {\n });\n try {\n server.value = await device.value.gatt.connect();\n } catch (err) {\n error.value = err;\n }\n }\n }\n tryOnMounted(() => {\n var _a;\n if (device.value)\n (_a = device.value.gatt) == null ? void 0 : _a.connect();\n });\n tryOnScopeDispose(() => {\n var _a;\n if (device.value)\n (_a = device.value.gatt) == null ? void 0 : _a.disconnect();\n });\n return {\n isSupported,\n isConnected,\n device,\n requestDevice,\n server,\n error\n };\n}\n\nfunction useMediaQuery(query, options = {}) {\n const { window = defaultWindow } = options;\n const isSupported = useSupported(() => window && \"matchMedia\" in window && typeof window.matchMedia === \"function\");\n let mediaQuery;\n const matches = ref(false);\n const cleanup = () => {\n if (!mediaQuery)\n return;\n if (\"removeEventListener\" in mediaQuery)\n mediaQuery.removeEventListener(\"change\", update);\n else\n mediaQuery.removeListener(update);\n };\n const update = () => {\n if (!isSupported.value)\n return;\n cleanup();\n mediaQuery = window.matchMedia(resolveRef(query).value);\n matches.value = mediaQuery.matches;\n if (\"addEventListener\" in mediaQuery)\n mediaQuery.addEventListener(\"change\", update);\n else\n mediaQuery.addListener(update);\n };\n watchEffect(update);\n tryOnScopeDispose(() => cleanup());\n return matches;\n}\n\nconst breakpointsTailwind = {\n \"sm\": 640,\n \"md\": 768,\n \"lg\": 1024,\n \"xl\": 1280,\n \"2xl\": 1536\n};\nconst breakpointsBootstrapV5 = {\n sm: 576,\n md: 768,\n lg: 992,\n xl: 1200,\n xxl: 1400\n};\nconst breakpointsVuetify = {\n xs: 600,\n sm: 960,\n md: 1264,\n lg: 1904\n};\nconst breakpointsAntDesign = {\n xs: 480,\n sm: 576,\n md: 768,\n lg: 992,\n xl: 1200,\n xxl: 1600\n};\nconst breakpointsQuasar = {\n xs: 600,\n sm: 1024,\n md: 1440,\n lg: 1920\n};\nconst breakpointsSematic = {\n mobileS: 320,\n mobileM: 375,\n mobileL: 425,\n tablet: 768,\n laptop: 1024,\n laptopL: 1440,\n desktop4K: 2560\n};\nconst breakpointsMasterCss = {\n \"3xs\": 360,\n \"2xs\": 480,\n \"xs\": 600,\n \"sm\": 768,\n \"md\": 1024,\n \"lg\": 1280,\n \"xl\": 1440,\n \"2xl\": 1600,\n \"3xl\": 1920,\n \"4xl\": 2560\n};\n\nvar __defProp$m = Object.defineProperty;\nvar __getOwnPropSymbols$o = Object.getOwnPropertySymbols;\nvar __hasOwnProp$o = Object.prototype.hasOwnProperty;\nvar __propIsEnum$o = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$m = (obj, key, value) => key in obj ? __defProp$m(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$m = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$o.call(b, prop))\n __defNormalProp$m(a, prop, b[prop]);\n if (__getOwnPropSymbols$o)\n for (var prop of __getOwnPropSymbols$o(b)) {\n if (__propIsEnum$o.call(b, prop))\n __defNormalProp$m(a, prop, b[prop]);\n }\n return a;\n};\nfunction useBreakpoints(breakpoints, options = {}) {\n function getValue(k, delta) {\n let v = breakpoints[k];\n if (delta != null)\n v = increaseWithUnit(v, delta);\n if (typeof v === \"number\")\n v = `${v}px`;\n return v;\n }\n const { window = defaultWindow } = options;\n function match(query) {\n if (!window)\n return false;\n return window.matchMedia(query).matches;\n }\n const greaterOrEqual = (k) => {\n return useMediaQuery(`(min-width: ${getValue(k)})`, options);\n };\n const shortcutMethods = Object.keys(breakpoints).reduce((shortcuts, k) => {\n Object.defineProperty(shortcuts, k, {\n get: () => greaterOrEqual(k),\n enumerable: true,\n configurable: true\n });\n return shortcuts;\n }, {});\n return __spreadValues$m({\n greater(k) {\n return useMediaQuery(`(min-width: ${getValue(k, 0.1)})`, options);\n },\n greaterOrEqual,\n smaller(k) {\n return useMediaQuery(`(max-width: ${getValue(k, -0.1)})`, options);\n },\n smallerOrEqual(k) {\n return useMediaQuery(`(max-width: ${getValue(k)})`, options);\n },\n between(a, b) {\n return useMediaQuery(`(min-width: ${getValue(a)}) and (max-width: ${getValue(b, -0.1)})`, options);\n },\n isGreater(k) {\n return match(`(min-width: ${getValue(k, 0.1)})`);\n },\n isGreaterOrEqual(k) {\n return match(`(min-width: ${getValue(k)})`);\n },\n isSmaller(k) {\n return match(`(max-width: ${getValue(k, -0.1)})`);\n },\n isSmallerOrEqual(k) {\n return match(`(max-width: ${getValue(k)})`);\n },\n isInBetween(a, b) {\n return match(`(min-width: ${getValue(a)}) and (max-width: ${getValue(b, -0.1)})`);\n }\n }, shortcutMethods);\n}\n\nconst useBroadcastChannel = (options) => {\n const {\n name,\n window = defaultWindow\n } = options;\n const isSupported = useSupported(() => window && \"BroadcastChannel\" in window);\n const isClosed = ref(false);\n const channel = ref();\n const data = ref();\n const error = ref(null);\n const post = (data2) => {\n if (channel.value)\n channel.value.postMessage(data2);\n };\n const close = () => {\n if (channel.value)\n channel.value.close();\n isClosed.value = true;\n };\n if (isSupported.value) {\n tryOnMounted(() => {\n error.value = null;\n channel.value = new BroadcastChannel(name);\n channel.value.addEventListener(\"message\", (e) => {\n data.value = e.data;\n }, { passive: true });\n channel.value.addEventListener(\"messageerror\", (e) => {\n error.value = e;\n }, { passive: true });\n channel.value.addEventListener(\"close\", () => {\n isClosed.value = true;\n });\n });\n }\n tryOnScopeDispose(() => {\n close();\n });\n return {\n isSupported,\n channel,\n data,\n post,\n close,\n error,\n isClosed\n };\n};\n\nfunction useBrowserLocation({ window = defaultWindow } = {}) {\n const buildState = (trigger) => {\n const { state: state2, length } = (window == null ? void 0 : window.history) || {};\n const { hash, host, hostname, href, origin, pathname, port, protocol, search } = (window == null ? void 0 : window.location) || {};\n return {\n trigger,\n state: state2,\n length,\n hash,\n host,\n hostname,\n href,\n origin,\n pathname,\n port,\n protocol,\n search\n };\n };\n const state = ref(buildState(\"load\"));\n if (window) {\n useEventListener(window, \"popstate\", () => state.value = buildState(\"popstate\"), { passive: true });\n useEventListener(window, \"hashchange\", () => state.value = buildState(\"hashchange\"), { passive: true });\n }\n return state;\n}\n\nfunction useCached(refValue, comparator = (a, b) => a === b, watchOptions) {\n const cachedValue = ref(refValue.value);\n watch(() => refValue.value, (value) => {\n if (!comparator(value, cachedValue.value))\n cachedValue.value = value;\n }, watchOptions);\n return cachedValue;\n}\n\nfunction useClipboard(options = {}) {\n const {\n navigator = defaultNavigator,\n read = false,\n source,\n copiedDuring = 1500,\n legacy = false\n } = options;\n const events = [\"copy\", \"cut\"];\n const isClipboardApiSupported = useSupported(() => navigator && \"clipboard\" in navigator);\n const isSupported = computed(() => isClipboardApiSupported.value || legacy);\n const text = ref(\"\");\n const copied = ref(false);\n const timeout = useTimeoutFn(() => copied.value = false, copiedDuring);\n function updateText() {\n if (isClipboardApiSupported.value) {\n navigator.clipboard.readText().then((value) => {\n text.value = value;\n });\n } else {\n text.value = legacyRead();\n }\n }\n if (isSupported.value && read) {\n for (const event of events)\n useEventListener(event, updateText);\n }\n async function copy(value = resolveUnref(source)) {\n if (isSupported.value && value != null) {\n if (isClipboardApiSupported.value)\n await navigator.clipboard.writeText(value);\n else\n legacyCopy(value);\n text.value = value;\n copied.value = true;\n timeout.start();\n }\n }\n function legacyCopy(value) {\n const ta = document.createElement(\"textarea\");\n ta.value = value != null ? value : \"\";\n ta.style.position = \"absolute\";\n ta.style.opacity = \"0\";\n document.body.appendChild(ta);\n ta.select();\n document.execCommand(\"copy\");\n ta.remove();\n }\n function legacyRead() {\n var _a, _b, _c;\n return (_c = (_b = (_a = document == null ? void 0 : document.getSelection) == null ? void 0 : _a.call(document)) == null ? void 0 : _b.toString()) != null ? _c : \"\";\n }\n return {\n isSupported,\n text,\n copied,\n copy\n };\n}\n\nvar __defProp$l = Object.defineProperty;\nvar __defProps$8 = Object.defineProperties;\nvar __getOwnPropDescs$8 = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols$n = Object.getOwnPropertySymbols;\nvar __hasOwnProp$n = Object.prototype.hasOwnProperty;\nvar __propIsEnum$n = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$l = (obj, key, value) => key in obj ? __defProp$l(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$l = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$n.call(b, prop))\n __defNormalProp$l(a, prop, b[prop]);\n if (__getOwnPropSymbols$n)\n for (var prop of __getOwnPropSymbols$n(b)) {\n if (__propIsEnum$n.call(b, prop))\n __defNormalProp$l(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps$8 = (a, b) => __defProps$8(a, __getOwnPropDescs$8(b));\nfunction cloneFnJSON(source) {\n return JSON.parse(JSON.stringify(source));\n}\nfunction useCloned(source, options = {}) {\n const cloned = ref({});\n const {\n manual,\n clone = cloneFnJSON,\n deep = true,\n immediate = true\n } = options;\n function sync() {\n cloned.value = clone(unref(source));\n }\n if (!manual && isRef(source)) {\n watch(source, sync, __spreadProps$8(__spreadValues$l({}, options), {\n deep,\n immediate\n }));\n } else {\n sync();\n }\n return { cloned, sync };\n}\n\nconst _global = typeof globalThis !== \"undefined\" ? globalThis : typeof window !== \"undefined\" ? window : typeof global !== \"undefined\" ? global : typeof self !== \"undefined\" ? self : {};\nconst globalKey = \"__vueuse_ssr_handlers__\";\n_global[globalKey] = _global[globalKey] || {};\nconst handlers = _global[globalKey];\nfunction getSSRHandler(key, fallback) {\n return handlers[key] || fallback;\n}\nfunction setSSRHandler(key, fn) {\n handlers[key] = fn;\n}\n\nfunction guessSerializerType(rawInit) {\n return rawInit == null ? \"any\" : rawInit instanceof Set ? \"set\" : rawInit instanceof Map ? \"map\" : rawInit instanceof Date ? \"date\" : typeof rawInit === \"boolean\" ? \"boolean\" : typeof rawInit === \"string\" ? \"string\" : typeof rawInit === \"object\" ? \"object\" : !Number.isNaN(rawInit) ? \"number\" : \"any\";\n}\n\nvar __defProp$k = Object.defineProperty;\nvar __getOwnPropSymbols$m = Object.getOwnPropertySymbols;\nvar __hasOwnProp$m = Object.prototype.hasOwnProperty;\nvar __propIsEnum$m = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$k = (obj, key, value) => key in obj ? __defProp$k(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$k = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$m.call(b, prop))\n __defNormalProp$k(a, prop, b[prop]);\n if (__getOwnPropSymbols$m)\n for (var prop of __getOwnPropSymbols$m(b)) {\n if (__propIsEnum$m.call(b, prop))\n __defNormalProp$k(a, prop, b[prop]);\n }\n return a;\n};\nconst StorageSerializers = {\n boolean: {\n read: (v) => v === \"true\",\n write: (v) => String(v)\n },\n object: {\n read: (v) => JSON.parse(v),\n write: (v) => JSON.stringify(v)\n },\n number: {\n read: (v) => Number.parseFloat(v),\n write: (v) => String(v)\n },\n any: {\n read: (v) => v,\n write: (v) => String(v)\n },\n string: {\n read: (v) => v,\n write: (v) => String(v)\n },\n map: {\n read: (v) => new Map(JSON.parse(v)),\n write: (v) => JSON.stringify(Array.from(v.entries()))\n },\n set: {\n read: (v) => new Set(JSON.parse(v)),\n write: (v) => JSON.stringify(Array.from(v))\n },\n date: {\n read: (v) => new Date(v),\n write: (v) => v.toISOString()\n }\n};\nconst customStorageEventName = \"vueuse-storage\";\nfunction useStorage(key, defaults, storage, options = {}) {\n var _a;\n const {\n flush = \"pre\",\n deep = true,\n listenToStorageChanges = true,\n writeDefaults = true,\n mergeDefaults = false,\n shallow,\n window = defaultWindow,\n eventFilter,\n onError = (e) => {\n console.error(e);\n }\n } = options;\n const data = (shallow ? shallowRef : ref)(defaults);\n if (!storage) {\n try {\n storage = getSSRHandler(\"getDefaultStorage\", () => {\n var _a2;\n return (_a2 = defaultWindow) == null ? void 0 : _a2.localStorage;\n })();\n } catch (e) {\n onError(e);\n }\n }\n if (!storage)\n return data;\n const rawInit = resolveUnref(defaults);\n const type = guessSerializerType(rawInit);\n const serializer = (_a = options.serializer) != null ? _a : StorageSerializers[type];\n const { pause: pauseWatch, resume: resumeWatch } = pausableWatch(data, () => write(data.value), { flush, deep, eventFilter });\n if (window && listenToStorageChanges) {\n useEventListener(window, \"storage\", update);\n useEventListener(window, customStorageEventName, updateFromCustomEvent);\n }\n update();\n return data;\n function write(v) {\n try {\n if (v == null) {\n storage.removeItem(key);\n } else {\n const serialized = serializer.write(v);\n const oldValue = storage.getItem(key);\n if (oldValue !== serialized) {\n storage.setItem(key, serialized);\n if (window) {\n window.dispatchEvent(new CustomEvent(customStorageEventName, {\n detail: {\n key,\n oldValue,\n newValue: serialized,\n storageArea: storage\n }\n }));\n }\n }\n }\n } catch (e) {\n onError(e);\n }\n }\n function read(event) {\n const rawValue = event ? event.newValue : storage.getItem(key);\n if (rawValue == null) {\n if (writeDefaults && rawInit !== null)\n storage.setItem(key, serializer.write(rawInit));\n return rawInit;\n } else if (!event && mergeDefaults) {\n const value = serializer.read(rawValue);\n if (isFunction(mergeDefaults))\n return mergeDefaults(value, rawInit);\n else if (type === \"object\" && !Array.isArray(value))\n return __spreadValues$k(__spreadValues$k({}, rawInit), value);\n return value;\n } else if (typeof rawValue !== \"string\") {\n return rawValue;\n } else {\n return serializer.read(rawValue);\n }\n }\n function updateFromCustomEvent(event) {\n update(event.detail);\n }\n function update(event) {\n if (event && event.storageArea !== storage)\n return;\n if (event && event.key == null) {\n data.value = rawInit;\n return;\n }\n if (event && event.key !== key)\n return;\n pauseWatch();\n try {\n data.value = read(event);\n } catch (e) {\n onError(e);\n } finally {\n if (event)\n nextTick(resumeWatch);\n else\n resumeWatch();\n }\n }\n}\n\nfunction usePreferredDark(options) {\n return useMediaQuery(\"(prefers-color-scheme: dark)\", options);\n}\n\nvar __defProp$j = Object.defineProperty;\nvar __getOwnPropSymbols$l = Object.getOwnPropertySymbols;\nvar __hasOwnProp$l = Object.prototype.hasOwnProperty;\nvar __propIsEnum$l = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$j = (obj, key, value) => key in obj ? __defProp$j(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$j = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$l.call(b, prop))\n __defNormalProp$j(a, prop, b[prop]);\n if (__getOwnPropSymbols$l)\n for (var prop of __getOwnPropSymbols$l(b)) {\n if (__propIsEnum$l.call(b, prop))\n __defNormalProp$j(a, prop, b[prop]);\n }\n return a;\n};\nfunction useColorMode(options = {}) {\n const {\n selector = \"html\",\n attribute = \"class\",\n initialValue = \"auto\",\n window = defaultWindow,\n storage,\n storageKey = \"vueuse-color-scheme\",\n listenToStorageChanges = true,\n storageRef,\n emitAuto\n } = options;\n const modes = __spreadValues$j({\n auto: \"\",\n light: \"light\",\n dark: \"dark\"\n }, options.modes || {});\n const preferredDark = usePreferredDark({ window });\n const preferredMode = computed(() => preferredDark.value ? \"dark\" : \"light\");\n const store = storageRef || (storageKey == null ? ref(initialValue) : useStorage(storageKey, initialValue, storage, { window, listenToStorageChanges }));\n const state = computed({\n get() {\n return store.value === \"auto\" && !emitAuto ? preferredMode.value : store.value;\n },\n set(v) {\n store.value = v;\n }\n });\n const updateHTMLAttrs = getSSRHandler(\"updateHTMLAttrs\", (selector2, attribute2, value) => {\n const el = window == null ? void 0 : window.document.querySelector(selector2);\n if (!el)\n return;\n if (attribute2 === \"class\") {\n const current = value.split(/\\s/g);\n Object.values(modes).flatMap((i) => (i || \"\").split(/\\s/g)).filter(Boolean).forEach((v) => {\n if (current.includes(v))\n el.classList.add(v);\n else\n el.classList.remove(v);\n });\n } else {\n el.setAttribute(attribute2, value);\n }\n });\n function defaultOnChanged(mode) {\n var _a;\n const resolvedMode = mode === \"auto\" ? preferredMode.value : mode;\n updateHTMLAttrs(selector, attribute, (_a = modes[resolvedMode]) != null ? _a : resolvedMode);\n }\n function onChanged(mode) {\n if (options.onChanged)\n options.onChanged(mode, defaultOnChanged);\n else\n defaultOnChanged(mode);\n }\n watch(state, onChanged, { flush: \"post\", immediate: true });\n if (emitAuto)\n watch(preferredMode, () => onChanged(state.value), { flush: \"post\" });\n tryOnMounted(() => onChanged(state.value));\n return state;\n}\n\nfunction useConfirmDialog(revealed = ref(false)) {\n const confirmHook = createEventHook();\n const cancelHook = createEventHook();\n const revealHook = createEventHook();\n let _resolve = noop;\n const reveal = (data) => {\n revealHook.trigger(data);\n revealed.value = true;\n return new Promise((resolve) => {\n _resolve = resolve;\n });\n };\n const confirm = (data) => {\n revealed.value = false;\n confirmHook.trigger(data);\n _resolve({ data, isCanceled: false });\n };\n const cancel = (data) => {\n revealed.value = false;\n cancelHook.trigger(data);\n _resolve({ data, isCanceled: true });\n };\n return {\n isRevealed: computed(() => revealed.value),\n reveal,\n confirm,\n cancel,\n onReveal: revealHook.on,\n onConfirm: confirmHook.on,\n onCancel: cancelHook.on\n };\n}\n\nfunction useCssVar(prop, target, { window = defaultWindow, initialValue = \"\" } = {}) {\n const variable = ref(initialValue);\n const elRef = computed(() => {\n var _a;\n return unrefElement(target) || ((_a = window == null ? void 0 : window.document) == null ? void 0 : _a.documentElement);\n });\n watch([elRef, () => resolveUnref(prop)], ([el, prop2]) => {\n var _a;\n if (el && window) {\n const value = (_a = window.getComputedStyle(el).getPropertyValue(prop2)) == null ? void 0 : _a.trim();\n variable.value = value || initialValue;\n }\n }, { immediate: true });\n watch(variable, (val) => {\n var _a;\n if ((_a = elRef.value) == null ? void 0 : _a.style)\n elRef.value.style.setProperty(resolveUnref(prop), val);\n });\n return variable;\n}\n\nfunction useCurrentElement() {\n const vm = getCurrentInstance();\n const currentElement = computedWithControl(() => null, () => vm.proxy.$el);\n onUpdated(currentElement.trigger);\n onMounted(currentElement.trigger);\n return currentElement;\n}\n\nfunction useCycleList(list, options) {\n var _a;\n const state = shallowRef((_a = options == null ? void 0 : options.initialValue) != null ? _a : list[0]);\n const index = computed({\n get() {\n var _a2;\n let index2 = (options == null ? void 0 : options.getIndexOf) ? options.getIndexOf(state.value, list) : list.indexOf(state.value);\n if (index2 < 0)\n index2 = (_a2 = options == null ? void 0 : options.fallbackIndex) != null ? _a2 : 0;\n return index2;\n },\n set(v) {\n set(v);\n }\n });\n function set(i) {\n const length = list.length;\n const index2 = (i % length + length) % length;\n const value = list[index2];\n state.value = value;\n return value;\n }\n function shift(delta = 1) {\n return set(index.value + delta);\n }\n function next(n = 1) {\n return shift(n);\n }\n function prev(n = 1) {\n return shift(-n);\n }\n return {\n state,\n index,\n next,\n prev\n };\n}\n\nvar __defProp$i = Object.defineProperty;\nvar __defProps$7 = Object.defineProperties;\nvar __getOwnPropDescs$7 = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols$k = Object.getOwnPropertySymbols;\nvar __hasOwnProp$k = Object.prototype.hasOwnProperty;\nvar __propIsEnum$k = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$i = (obj, key, value) => key in obj ? __defProp$i(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$i = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$k.call(b, prop))\n __defNormalProp$i(a, prop, b[prop]);\n if (__getOwnPropSymbols$k)\n for (var prop of __getOwnPropSymbols$k(b)) {\n if (__propIsEnum$k.call(b, prop))\n __defNormalProp$i(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps$7 = (a, b) => __defProps$7(a, __getOwnPropDescs$7(b));\nfunction useDark(options = {}) {\n const {\n valueDark = \"dark\",\n valueLight = \"\",\n window = defaultWindow\n } = options;\n const mode = useColorMode(__spreadProps$7(__spreadValues$i({}, options), {\n onChanged: (mode2, defaultHandler) => {\n var _a;\n if (options.onChanged)\n (_a = options.onChanged) == null ? void 0 : _a.call(options, mode2 === \"dark\");\n else\n defaultHandler(mode2);\n },\n modes: {\n dark: valueDark,\n light: valueLight\n }\n }));\n const preferredDark = usePreferredDark({ window });\n const isDark = computed({\n get() {\n return mode.value === \"dark\";\n },\n set(v) {\n if (v === preferredDark.value)\n mode.value = \"auto\";\n else\n mode.value = v ? \"dark\" : \"light\";\n }\n });\n return isDark;\n}\n\nconst fnBypass = (v) => v;\nconst fnSetSource = (source, value) => source.value = value;\nfunction defaultDump(clone) {\n return clone ? isFunction(clone) ? clone : cloneFnJSON : fnBypass;\n}\nfunction defaultParse(clone) {\n return clone ? isFunction(clone) ? clone : cloneFnJSON : fnBypass;\n}\nfunction useManualRefHistory(source, options = {}) {\n const {\n clone = false,\n dump = defaultDump(clone),\n parse = defaultParse(clone),\n setSource = fnSetSource\n } = options;\n function _createHistoryRecord() {\n return markRaw({\n snapshot: dump(source.value),\n timestamp: timestamp()\n });\n }\n const last = ref(_createHistoryRecord());\n const undoStack = ref([]);\n const redoStack = ref([]);\n const _setSource = (record) => {\n setSource(source, parse(record.snapshot));\n last.value = record;\n };\n const commit = () => {\n undoStack.value.unshift(last.value);\n last.value = _createHistoryRecord();\n if (options.capacity && undoStack.value.length > options.capacity)\n undoStack.value.splice(options.capacity, Infinity);\n if (redoStack.value.length)\n redoStack.value.splice(0, redoStack.value.length);\n };\n const clear = () => {\n undoStack.value.splice(0, undoStack.value.length);\n redoStack.value.splice(0, redoStack.value.length);\n };\n const undo = () => {\n const state = undoStack.value.shift();\n if (state) {\n redoStack.value.unshift(last.value);\n _setSource(state);\n }\n };\n const redo = () => {\n const state = redoStack.value.shift();\n if (state) {\n undoStack.value.unshift(last.value);\n _setSource(state);\n }\n };\n const reset = () => {\n _setSource(last.value);\n };\n const history = computed(() => [last.value, ...undoStack.value]);\n const canUndo = computed(() => undoStack.value.length > 0);\n const canRedo = computed(() => redoStack.value.length > 0);\n return {\n source,\n undoStack,\n redoStack,\n last,\n history,\n canUndo,\n canRedo,\n clear,\n commit,\n reset,\n undo,\n redo\n };\n}\n\nvar __defProp$h = Object.defineProperty;\nvar __defProps$6 = Object.defineProperties;\nvar __getOwnPropDescs$6 = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols$j = Object.getOwnPropertySymbols;\nvar __hasOwnProp$j = Object.prototype.hasOwnProperty;\nvar __propIsEnum$j = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$h = (obj, key, value) => key in obj ? __defProp$h(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$h = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$j.call(b, prop))\n __defNormalProp$h(a, prop, b[prop]);\n if (__getOwnPropSymbols$j)\n for (var prop of __getOwnPropSymbols$j(b)) {\n if (__propIsEnum$j.call(b, prop))\n __defNormalProp$h(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps$6 = (a, b) => __defProps$6(a, __getOwnPropDescs$6(b));\nfunction useRefHistory(source, options = {}) {\n const {\n deep = false,\n flush = \"pre\",\n eventFilter\n } = options;\n const {\n eventFilter: composedFilter,\n pause,\n resume: resumeTracking,\n isActive: isTracking\n } = pausableFilter(eventFilter);\n const {\n ignoreUpdates,\n ignorePrevAsyncUpdates,\n stop\n } = watchIgnorable(source, commit, { deep, flush, eventFilter: composedFilter });\n function setSource(source2, value) {\n ignorePrevAsyncUpdates();\n ignoreUpdates(() => {\n source2.value = value;\n });\n }\n const manualHistory = useManualRefHistory(source, __spreadProps$6(__spreadValues$h({}, options), { clone: options.clone || deep, setSource }));\n const { clear, commit: manualCommit } = manualHistory;\n function commit() {\n ignorePrevAsyncUpdates();\n manualCommit();\n }\n function resume(commitNow) {\n resumeTracking();\n if (commitNow)\n commit();\n }\n function batch(fn) {\n let canceled = false;\n const cancel = () => canceled = true;\n ignoreUpdates(() => {\n fn(cancel);\n });\n if (!canceled)\n commit();\n }\n function dispose() {\n stop();\n clear();\n }\n return __spreadProps$6(__spreadValues$h({}, manualHistory), {\n isTracking,\n pause,\n resume,\n commit,\n batch,\n dispose\n });\n}\n\nvar __defProp$g = Object.defineProperty;\nvar __defProps$5 = Object.defineProperties;\nvar __getOwnPropDescs$5 = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols$i = Object.getOwnPropertySymbols;\nvar __hasOwnProp$i = Object.prototype.hasOwnProperty;\nvar __propIsEnum$i = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$g = (obj, key, value) => key in obj ? __defProp$g(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$g = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$i.call(b, prop))\n __defNormalProp$g(a, prop, b[prop]);\n if (__getOwnPropSymbols$i)\n for (var prop of __getOwnPropSymbols$i(b)) {\n if (__propIsEnum$i.call(b, prop))\n __defNormalProp$g(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps$5 = (a, b) => __defProps$5(a, __getOwnPropDescs$5(b));\nfunction useDebouncedRefHistory(source, options = {}) {\n const filter = options.debounce ? debounceFilter(options.debounce) : void 0;\n const history = useRefHistory(source, __spreadProps$5(__spreadValues$g({}, options), { eventFilter: filter }));\n return __spreadValues$g({}, history);\n}\n\nfunction useDeviceMotion(options = {}) {\n const {\n window = defaultWindow,\n eventFilter = bypassFilter\n } = options;\n const acceleration = ref({ x: null, y: null, z: null });\n const rotationRate = ref({ alpha: null, beta: null, gamma: null });\n const interval = ref(0);\n const accelerationIncludingGravity = ref({\n x: null,\n y: null,\n z: null\n });\n if (window) {\n const onDeviceMotion = createFilterWrapper(eventFilter, (event) => {\n acceleration.value = event.acceleration;\n accelerationIncludingGravity.value = event.accelerationIncludingGravity;\n rotationRate.value = event.rotationRate;\n interval.value = event.interval;\n });\n useEventListener(window, \"devicemotion\", onDeviceMotion);\n }\n return {\n acceleration,\n accelerationIncludingGravity,\n rotationRate,\n interval\n };\n}\n\nfunction useDeviceOrientation(options = {}) {\n const { window = defaultWindow } = options;\n const isSupported = useSupported(() => window && \"DeviceOrientationEvent\" in window);\n const isAbsolute = ref(false);\n const alpha = ref(null);\n const beta = ref(null);\n const gamma = ref(null);\n if (window && isSupported.value) {\n useEventListener(window, \"deviceorientation\", (event) => {\n isAbsolute.value = event.absolute;\n alpha.value = event.alpha;\n beta.value = event.beta;\n gamma.value = event.gamma;\n });\n }\n return {\n isSupported,\n isAbsolute,\n alpha,\n beta,\n gamma\n };\n}\n\nfunction useDevicePixelRatio({\n window = defaultWindow\n} = {}) {\n const pixelRatio = ref(1);\n if (window) {\n let observe = function() {\n pixelRatio.value = window.devicePixelRatio;\n cleanup();\n media = window.matchMedia(`(resolution: ${pixelRatio.value}dppx)`);\n media.addEventListener(\"change\", observe, { once: true });\n }, cleanup = function() {\n media == null ? void 0 : media.removeEventListener(\"change\", observe);\n };\n let media;\n observe();\n tryOnScopeDispose(cleanup);\n }\n return { pixelRatio };\n}\n\nfunction usePermission(permissionDesc, options = {}) {\n const {\n controls = false,\n navigator = defaultNavigator\n } = options;\n const isSupported = useSupported(() => navigator && \"permissions\" in navigator);\n let permissionStatus;\n const desc = typeof permissionDesc === \"string\" ? { name: permissionDesc } : permissionDesc;\n const state = ref();\n const onChange = () => {\n if (permissionStatus)\n state.value = permissionStatus.state;\n };\n const query = createSingletonPromise(async () => {\n if (!isSupported.value)\n return;\n if (!permissionStatus) {\n try {\n permissionStatus = await navigator.permissions.query(desc);\n useEventListener(permissionStatus, \"change\", onChange);\n onChange();\n } catch (e) {\n state.value = \"prompt\";\n }\n }\n return permissionStatus;\n });\n query();\n if (controls) {\n return {\n state,\n isSupported,\n query\n };\n } else {\n return state;\n }\n}\n\nfunction useDevicesList(options = {}) {\n const {\n navigator = defaultNavigator,\n requestPermissions = false,\n constraints = { audio: true, video: true },\n onUpdated\n } = options;\n const devices = ref([]);\n const videoInputs = computed(() => devices.value.filter((i) => i.kind === \"videoinput\"));\n const audioInputs = computed(() => devices.value.filter((i) => i.kind === \"audioinput\"));\n const audioOutputs = computed(() => devices.value.filter((i) => i.kind === \"audiooutput\"));\n const isSupported = useSupported(() => navigator && navigator.mediaDevices && navigator.mediaDevices.enumerateDevices);\n const permissionGranted = ref(false);\n async function update() {\n if (!isSupported.value)\n return;\n devices.value = await navigator.mediaDevices.enumerateDevices();\n onUpdated == null ? void 0 : onUpdated(devices.value);\n }\n async function ensurePermissions() {\n if (!isSupported.value)\n return false;\n if (permissionGranted.value)\n return true;\n const { state, query } = usePermission(\"camera\", { controls: true });\n await query();\n if (state.value !== \"granted\") {\n const stream = await navigator.mediaDevices.getUserMedia(constraints);\n stream.getTracks().forEach((t) => t.stop());\n update();\n permissionGranted.value = true;\n } else {\n permissionGranted.value = true;\n }\n return permissionGranted.value;\n }\n if (isSupported.value) {\n if (requestPermissions)\n ensurePermissions();\n useEventListener(navigator.mediaDevices, \"devicechange\", update);\n update();\n }\n return {\n devices,\n ensurePermissions,\n permissionGranted,\n videoInputs,\n audioInputs,\n audioOutputs,\n isSupported\n };\n}\n\nfunction useDisplayMedia(options = {}) {\n var _a;\n const enabled = ref((_a = options.enabled) != null ? _a : false);\n const video = options.video;\n const audio = options.audio;\n const { navigator = defaultNavigator } = options;\n const isSupported = useSupported(() => {\n var _a2;\n return (_a2 = navigator == null ? void 0 : navigator.mediaDevices) == null ? void 0 : _a2.getDisplayMedia;\n });\n const constraint = { audio, video };\n const stream = shallowRef();\n async function _start() {\n if (!isSupported.value || stream.value)\n return;\n stream.value = await navigator.mediaDevices.getDisplayMedia(constraint);\n return stream.value;\n }\n async function _stop() {\n var _a2;\n (_a2 = stream.value) == null ? void 0 : _a2.getTracks().forEach((t) => t.stop());\n stream.value = void 0;\n }\n function stop() {\n _stop();\n enabled.value = false;\n }\n async function start() {\n await _start();\n if (stream.value)\n enabled.value = true;\n return stream.value;\n }\n watch(enabled, (v) => {\n if (v)\n _start();\n else\n _stop();\n }, { immediate: true });\n return {\n isSupported,\n stream,\n start,\n stop,\n enabled\n };\n}\n\nfunction useDocumentVisibility({ document = defaultDocument } = {}) {\n if (!document)\n return ref(\"visible\");\n const visibility = ref(document.visibilityState);\n useEventListener(document, \"visibilitychange\", () => {\n visibility.value = document.visibilityState;\n });\n return visibility;\n}\n\nvar __defProp$f = Object.defineProperty;\nvar __defProps$4 = Object.defineProperties;\nvar __getOwnPropDescs$4 = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols$h = Object.getOwnPropertySymbols;\nvar __hasOwnProp$h = Object.prototype.hasOwnProperty;\nvar __propIsEnum$h = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$f = (obj, key, value) => key in obj ? __defProp$f(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$f = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$h.call(b, prop))\n __defNormalProp$f(a, prop, b[prop]);\n if (__getOwnPropSymbols$h)\n for (var prop of __getOwnPropSymbols$h(b)) {\n if (__propIsEnum$h.call(b, prop))\n __defNormalProp$f(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps$4 = (a, b) => __defProps$4(a, __getOwnPropDescs$4(b));\nfunction useDraggable(target, options = {}) {\n var _a, _b, _c;\n const draggingElement = (_a = options.draggingElement) != null ? _a : defaultWindow;\n const draggingHandle = (_b = options.handle) != null ? _b : target;\n const position = ref((_c = resolveUnref(options.initialValue)) != null ? _c : { x: 0, y: 0 });\n const pressedDelta = ref();\n const filterEvent = (e) => {\n if (options.pointerTypes)\n return options.pointerTypes.includes(e.pointerType);\n return true;\n };\n const handleEvent = (e) => {\n if (resolveUnref(options.preventDefault))\n e.preventDefault();\n if (resolveUnref(options.stopPropagation))\n e.stopPropagation();\n };\n const start = (e) => {\n var _a2;\n if (!filterEvent(e))\n return;\n if (resolveUnref(options.exact) && e.target !== resolveUnref(target))\n return;\n const rect = resolveUnref(target).getBoundingClientRect();\n const pos = {\n x: e.clientX - rect.left,\n y: e.clientY - rect.top\n };\n if (((_a2 = options.onStart) == null ? void 0 : _a2.call(options, pos, e)) === false)\n return;\n pressedDelta.value = pos;\n handleEvent(e);\n };\n const move = (e) => {\n var _a2;\n if (!filterEvent(e))\n return;\n if (!pressedDelta.value)\n return;\n position.value = {\n x: e.clientX - pressedDelta.value.x,\n y: e.clientY - pressedDelta.value.y\n };\n (_a2 = options.onMove) == null ? void 0 : _a2.call(options, position.value, e);\n handleEvent(e);\n };\n const end = (e) => {\n var _a2;\n if (!filterEvent(e))\n return;\n if (!pressedDelta.value)\n return;\n pressedDelta.value = void 0;\n (_a2 = options.onEnd) == null ? void 0 : _a2.call(options, position.value, e);\n handleEvent(e);\n };\n if (isClient) {\n useEventListener(draggingHandle, \"pointerdown\", start, true);\n useEventListener(draggingElement, \"pointermove\", move, true);\n useEventListener(draggingElement, \"pointerup\", end, true);\n }\n return __spreadProps$4(__spreadValues$f({}, toRefs(position)), {\n position,\n isDragging: computed(() => !!pressedDelta.value),\n style: computed(() => `left:${position.value.x}px;top:${position.value.y}px;`)\n });\n}\n\nfunction useDropZone(target, onDrop) {\n const isOverDropZone = ref(false);\n let counter = 0;\n if (isClient) {\n useEventListener(target, \"dragenter\", (event) => {\n event.preventDefault();\n counter += 1;\n isOverDropZone.value = true;\n });\n useEventListener(target, \"dragover\", (event) => {\n event.preventDefault();\n });\n useEventListener(target, \"dragleave\", (event) => {\n event.preventDefault();\n counter -= 1;\n if (counter === 0)\n isOverDropZone.value = false;\n });\n useEventListener(target, \"drop\", (event) => {\n var _a, _b;\n event.preventDefault();\n counter = 0;\n isOverDropZone.value = false;\n const files = Array.from((_b = (_a = event.dataTransfer) == null ? void 0 : _a.files) != null ? _b : []);\n onDrop == null ? void 0 : onDrop(files.length === 0 ? null : files);\n });\n }\n return {\n isOverDropZone\n };\n}\n\nvar __getOwnPropSymbols$g = Object.getOwnPropertySymbols;\nvar __hasOwnProp$g = Object.prototype.hasOwnProperty;\nvar __propIsEnum$g = Object.prototype.propertyIsEnumerable;\nvar __objRest$2 = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp$g.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols$g)\n for (var prop of __getOwnPropSymbols$g(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum$g.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\nfunction useResizeObserver(target, callback, options = {}) {\n const _a = options, { window = defaultWindow } = _a, observerOptions = __objRest$2(_a, [\"window\"]);\n let observer;\n const isSupported = useSupported(() => window && \"ResizeObserver\" in window);\n const cleanup = () => {\n if (observer) {\n observer.disconnect();\n observer = void 0;\n }\n };\n const stopWatch = watch(() => unrefElement(target), (el) => {\n cleanup();\n if (isSupported.value && window && el) {\n observer = new ResizeObserver(callback);\n observer.observe(el, observerOptions);\n }\n }, { immediate: true, flush: \"post\" });\n const stop = () => {\n cleanup();\n stopWatch();\n };\n tryOnScopeDispose(stop);\n return {\n isSupported,\n stop\n };\n}\n\nfunction useElementBounding(target, options = {}) {\n const {\n reset = true,\n windowResize = true,\n windowScroll = true,\n immediate = true\n } = options;\n const height = ref(0);\n const bottom = ref(0);\n const left = ref(0);\n const right = ref(0);\n const top = ref(0);\n const width = ref(0);\n const x = ref(0);\n const y = ref(0);\n function update() {\n const el = unrefElement(target);\n if (!el) {\n if (reset) {\n height.value = 0;\n bottom.value = 0;\n left.value = 0;\n right.value = 0;\n top.value = 0;\n width.value = 0;\n x.value = 0;\n y.value = 0;\n }\n return;\n }\n const rect = el.getBoundingClientRect();\n height.value = rect.height;\n bottom.value = rect.bottom;\n left.value = rect.left;\n right.value = rect.right;\n top.value = rect.top;\n width.value = rect.width;\n x.value = rect.x;\n y.value = rect.y;\n }\n useResizeObserver(target, update);\n watch(() => unrefElement(target), (ele) => !ele && update());\n if (windowScroll)\n useEventListener(\"scroll\", update, { capture: true, passive: true });\n if (windowResize)\n useEventListener(\"resize\", update, { passive: true });\n tryOnMounted(() => {\n if (immediate)\n update();\n });\n return {\n height,\n bottom,\n left,\n right,\n top,\n width,\n x,\n y,\n update\n };\n}\n\nfunction useRafFn(fn, options = {}) {\n const {\n immediate = true,\n window = defaultWindow\n } = options;\n const isActive = ref(false);\n let previousFrameTimestamp = 0;\n let rafId = null;\n function loop(timestamp) {\n if (!isActive.value || !window)\n return;\n const delta = timestamp - previousFrameTimestamp;\n fn({ delta, timestamp });\n previousFrameTimestamp = timestamp;\n rafId = window.requestAnimationFrame(loop);\n }\n function resume() {\n if (!isActive.value && window) {\n isActive.value = true;\n rafId = window.requestAnimationFrame(loop);\n }\n }\n function pause() {\n isActive.value = false;\n if (rafId != null && window) {\n window.cancelAnimationFrame(rafId);\n rafId = null;\n }\n }\n if (immediate)\n resume();\n tryOnScopeDispose(pause);\n return {\n isActive: readonly(isActive),\n pause,\n resume\n };\n}\n\nvar __defProp$e = Object.defineProperty;\nvar __getOwnPropSymbols$f = Object.getOwnPropertySymbols;\nvar __hasOwnProp$f = Object.prototype.hasOwnProperty;\nvar __propIsEnum$f = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$e = (obj, key, value) => key in obj ? __defProp$e(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$e = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$f.call(b, prop))\n __defNormalProp$e(a, prop, b[prop]);\n if (__getOwnPropSymbols$f)\n for (var prop of __getOwnPropSymbols$f(b)) {\n if (__propIsEnum$f.call(b, prop))\n __defNormalProp$e(a, prop, b[prop]);\n }\n return a;\n};\nfunction useElementByPoint(options) {\n const element = ref(null);\n const { x, y, document = defaultDocument } = options;\n const controls = useRafFn(() => {\n element.value = (document == null ? void 0 : document.elementFromPoint(resolveUnref(x), resolveUnref(y))) || null;\n });\n return __spreadValues$e({\n element\n }, controls);\n}\n\nfunction useElementHover(el, options = {}) {\n const delayEnter = options ? options.delayEnter : 0;\n const delayLeave = options ? options.delayLeave : 0;\n const isHovered = ref(false);\n let timer;\n const toggle = (entering) => {\n const delay = entering ? delayEnter : delayLeave;\n if (timer) {\n clearTimeout(timer);\n timer = void 0;\n }\n if (delay)\n timer = setTimeout(() => isHovered.value = entering, delay);\n else\n isHovered.value = entering;\n };\n if (!window)\n return isHovered;\n useEventListener(el, \"mouseenter\", () => toggle(true), { passive: true });\n useEventListener(el, \"mouseleave\", () => toggle(false), { passive: true });\n return isHovered;\n}\n\nfunction useElementSize(target, initialSize = { width: 0, height: 0 }, options = {}) {\n const { window = defaultWindow, box = \"content-box\" } = options;\n const isSVG = computed(() => {\n var _a, _b;\n return (_b = (_a = unrefElement(target)) == null ? void 0 : _a.namespaceURI) == null ? void 0 : _b.includes(\"svg\");\n });\n const width = ref(initialSize.width);\n const height = ref(initialSize.height);\n useResizeObserver(target, ([entry]) => {\n const boxSize = box === \"border-box\" ? entry.borderBoxSize : box === \"content-box\" ? entry.contentBoxSize : entry.devicePixelContentBoxSize;\n if (window && isSVG.value) {\n const $elem = unrefElement(target);\n if ($elem) {\n const styles = window.getComputedStyle($elem);\n width.value = parseFloat(styles.width);\n height.value = parseFloat(styles.height);\n }\n } else {\n if (boxSize) {\n const formatBoxSize = Array.isArray(boxSize) ? boxSize : [boxSize];\n width.value = formatBoxSize.reduce((acc, { inlineSize }) => acc + inlineSize, 0);\n height.value = formatBoxSize.reduce((acc, { blockSize }) => acc + blockSize, 0);\n } else {\n width.value = entry.contentRect.width;\n height.value = entry.contentRect.height;\n }\n }\n }, options);\n watch(() => unrefElement(target), (ele) => {\n width.value = ele ? initialSize.width : 0;\n height.value = ele ? initialSize.height : 0;\n });\n return {\n width,\n height\n };\n}\n\nfunction useElementVisibility(element, { window = defaultWindow, scrollTarget } = {}) {\n const elementIsVisible = ref(false);\n const testBounding = () => {\n if (!window)\n return;\n const document = window.document;\n const el = unrefElement(element);\n if (!el) {\n elementIsVisible.value = false;\n } else {\n const rect = el.getBoundingClientRect();\n elementIsVisible.value = rect.top <= (window.innerHeight || document.documentElement.clientHeight) && rect.left <= (window.innerWidth || document.documentElement.clientWidth) && rect.bottom >= 0 && rect.right >= 0;\n }\n };\n watch(() => unrefElement(element), () => testBounding(), { immediate: true, flush: \"post\" });\n if (window) {\n useEventListener(scrollTarget || window, \"scroll\", testBounding, {\n capture: false,\n passive: true\n });\n }\n return elementIsVisible;\n}\n\nconst events = new Map();\n\nfunction useEventBus(key) {\n const scope = getCurrentScope();\n function on(listener) {\n var _a;\n const listeners = events.get(key) || [];\n listeners.push(listener);\n events.set(key, listeners);\n const _off = () => off(listener);\n (_a = scope == null ? void 0 : scope.cleanups) == null ? void 0 : _a.push(_off);\n return _off;\n }\n function once(listener) {\n function _listener(...args) {\n off(_listener);\n listener(...args);\n }\n return on(_listener);\n }\n function off(listener) {\n const listeners = events.get(key);\n if (!listeners)\n return;\n const index = listeners.indexOf(listener);\n if (index > -1)\n listeners.splice(index, 1);\n if (!listeners.length)\n events.delete(key);\n }\n function reset() {\n events.delete(key);\n }\n function emit(event, payload) {\n var _a;\n (_a = events.get(key)) == null ? void 0 : _a.forEach((v) => v(event, payload));\n }\n return { on, once, off, emit, reset };\n}\n\nfunction useEventSource(url, events = [], options = {}) {\n const event = ref(null);\n const data = ref(null);\n const status = ref(\"CONNECTING\");\n const eventSource = ref(null);\n const error = ref(null);\n const {\n withCredentials = false\n } = options;\n const close = () => {\n if (eventSource.value) {\n eventSource.value.close();\n eventSource.value = null;\n status.value = \"CLOSED\";\n }\n };\n const es = new EventSource(url, { withCredentials });\n eventSource.value = es;\n es.onopen = () => {\n status.value = \"OPEN\";\n error.value = null;\n };\n es.onerror = (e) => {\n status.value = \"CLOSED\";\n error.value = e;\n };\n es.onmessage = (e) => {\n event.value = null;\n data.value = e.data;\n };\n for (const event_name of events) {\n useEventListener(es, event_name, (e) => {\n event.value = event_name;\n data.value = e.data || null;\n });\n }\n tryOnScopeDispose(() => {\n close();\n });\n return {\n eventSource,\n event,\n data,\n status,\n error,\n close\n };\n}\n\nfunction useEyeDropper(options = {}) {\n const { initialValue = \"\" } = options;\n const isSupported = useSupported(() => typeof window !== \"undefined\" && \"EyeDropper\" in window);\n const sRGBHex = ref(initialValue);\n async function open(openOptions) {\n if (!isSupported.value)\n return;\n const eyeDropper = new window.EyeDropper();\n const result = await eyeDropper.open(openOptions);\n sRGBHex.value = result.sRGBHex;\n return result;\n }\n return { isSupported, sRGBHex, open };\n}\n\nfunction useFavicon(newIcon = null, options = {}) {\n const {\n baseUrl = \"\",\n rel = \"icon\",\n document = defaultDocument\n } = options;\n const favicon = resolveRef(newIcon);\n const applyIcon = (icon) => {\n document == null ? void 0 : document.head.querySelectorAll(`link[rel*=\"${rel}\"]`).forEach((el) => el.href = `${baseUrl}${icon}`);\n };\n watch(favicon, (i, o) => {\n if (isString(i) && i !== o)\n applyIcon(i);\n }, { immediate: true });\n return favicon;\n}\n\nvar __defProp$d = Object.defineProperty;\nvar __defProps$3 = Object.defineProperties;\nvar __getOwnPropDescs$3 = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols$e = Object.getOwnPropertySymbols;\nvar __hasOwnProp$e = Object.prototype.hasOwnProperty;\nvar __propIsEnum$e = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$d = (obj, key, value) => key in obj ? __defProp$d(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$d = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$e.call(b, prop))\n __defNormalProp$d(a, prop, b[prop]);\n if (__getOwnPropSymbols$e)\n for (var prop of __getOwnPropSymbols$e(b)) {\n if (__propIsEnum$e.call(b, prop))\n __defNormalProp$d(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps$3 = (a, b) => __defProps$3(a, __getOwnPropDescs$3(b));\nconst payloadMapping = {\n json: \"application/json\",\n text: \"text/plain\"\n};\nfunction isFetchOptions(obj) {\n return obj && containsProp(obj, \"immediate\", \"refetch\", \"initialData\", \"timeout\", \"beforeFetch\", \"afterFetch\", \"onFetchError\", \"fetch\");\n}\nfunction isAbsoluteURL(url) {\n return /^([a-z][a-z\\d+\\-.]*:)?\\/\\//i.test(url);\n}\nfunction headersToObject(headers) {\n if (typeof Headers !== \"undefined\" && headers instanceof Headers)\n return Object.fromEntries([...headers.entries()]);\n return headers;\n}\nfunction combineCallbacks(combination, ...callbacks) {\n if (combination === \"overwrite\") {\n return async (ctx) => {\n const callback = callbacks[callbacks.length - 1];\n if (callback !== void 0)\n await callback(ctx);\n return ctx;\n };\n } else {\n return async (ctx) => {\n await callbacks.reduce((prevCallback, callback) => prevCallback.then(async () => {\n if (callback)\n ctx = __spreadValues$d(__spreadValues$d({}, ctx), await callback(ctx));\n }), Promise.resolve());\n return ctx;\n };\n }\n}\nfunction createFetch(config = {}) {\n const _combination = config.combination || \"chain\";\n const _options = config.options || {};\n const _fetchOptions = config.fetchOptions || {};\n function useFactoryFetch(url, ...args) {\n const computedUrl = computed(() => {\n const baseUrl = resolveUnref(config.baseUrl);\n const targetUrl = resolveUnref(url);\n return baseUrl && !isAbsoluteURL(targetUrl) ? joinPaths(baseUrl, targetUrl) : targetUrl;\n });\n let options = _options;\n let fetchOptions = _fetchOptions;\n if (args.length > 0) {\n if (isFetchOptions(args[0])) {\n options = __spreadProps$3(__spreadValues$d(__spreadValues$d({}, options), args[0]), {\n beforeFetch: combineCallbacks(_combination, _options.beforeFetch, args[0].beforeFetch),\n afterFetch: combineCallbacks(_combination, _options.afterFetch, args[0].afterFetch),\n onFetchError: combineCallbacks(_combination, _options.onFetchError, args[0].onFetchError)\n });\n } else {\n fetchOptions = __spreadProps$3(__spreadValues$d(__spreadValues$d({}, fetchOptions), args[0]), {\n headers: __spreadValues$d(__spreadValues$d({}, headersToObject(fetchOptions.headers) || {}), headersToObject(args[0].headers) || {})\n });\n }\n }\n if (args.length > 1 && isFetchOptions(args[1])) {\n options = __spreadProps$3(__spreadValues$d(__spreadValues$d({}, options), args[1]), {\n beforeFetch: combineCallbacks(_combination, _options.beforeFetch, args[1].beforeFetch),\n afterFetch: combineCallbacks(_combination, _options.afterFetch, args[1].afterFetch),\n onFetchError: combineCallbacks(_combination, _options.onFetchError, args[1].onFetchError)\n });\n }\n return useFetch(computedUrl, fetchOptions, options);\n }\n return useFactoryFetch;\n}\nfunction useFetch(url, ...args) {\n var _a;\n const supportsAbort = typeof AbortController === \"function\";\n let fetchOptions = {};\n let options = { immediate: true, refetch: false, timeout: 0 };\n const config = {\n method: \"GET\",\n type: \"text\",\n payload: void 0\n };\n if (args.length > 0) {\n if (isFetchOptions(args[0]))\n options = __spreadValues$d(__spreadValues$d({}, options), args[0]);\n else\n fetchOptions = args[0];\n }\n if (args.length > 1) {\n if (isFetchOptions(args[1]))\n options = __spreadValues$d(__spreadValues$d({}, options), args[1]);\n }\n const {\n fetch = (_a = defaultWindow) == null ? void 0 : _a.fetch,\n initialData,\n timeout\n } = options;\n const responseEvent = createEventHook();\n const errorEvent = createEventHook();\n const finallyEvent = createEventHook();\n const isFinished = ref(false);\n const isFetching = ref(false);\n const aborted = ref(false);\n const statusCode = ref(null);\n const response = shallowRef(null);\n const error = shallowRef(null);\n const data = shallowRef(initialData);\n const canAbort = computed(() => supportsAbort && isFetching.value);\n let controller;\n let timer;\n const abort = () => {\n if (supportsAbort && controller) {\n controller.abort();\n controller = void 0;\n }\n };\n const loading = (isLoading) => {\n isFetching.value = isLoading;\n isFinished.value = !isLoading;\n };\n if (timeout)\n timer = useTimeoutFn(abort, timeout, { immediate: false });\n const execute = async (throwOnFailed = false) => {\n var _a2;\n loading(true);\n error.value = null;\n statusCode.value = null;\n aborted.value = false;\n if (supportsAbort) {\n abort();\n controller = new AbortController();\n controller.signal.onabort = () => aborted.value = true;\n fetchOptions = __spreadProps$3(__spreadValues$d({}, fetchOptions), {\n signal: controller.signal\n });\n }\n const defaultFetchOptions = {\n method: config.method,\n headers: {}\n };\n if (config.payload) {\n const headers = headersToObject(defaultFetchOptions.headers);\n if (config.payloadType)\n headers[\"Content-Type\"] = (_a2 = payloadMapping[config.payloadType]) != null ? _a2 : config.payloadType;\n const payload = resolveUnref(config.payload);\n defaultFetchOptions.body = config.payloadType === \"json\" ? JSON.stringify(payload) : payload;\n }\n let isCanceled = false;\n const context = {\n url: resolveUnref(url),\n options: __spreadValues$d(__spreadValues$d({}, defaultFetchOptions), fetchOptions),\n cancel: () => {\n isCanceled = true;\n }\n };\n if (options.beforeFetch)\n Object.assign(context, await options.beforeFetch(context));\n if (isCanceled || !fetch) {\n loading(false);\n return Promise.resolve(null);\n }\n let responseData = null;\n if (timer)\n timer.start();\n return new Promise((resolve, reject) => {\n var _a3;\n fetch(context.url, __spreadProps$3(__spreadValues$d(__spreadValues$d({}, defaultFetchOptions), context.options), {\n headers: __spreadValues$d(__spreadValues$d({}, headersToObject(defaultFetchOptions.headers)), headersToObject((_a3 = context.options) == null ? void 0 : _a3.headers))\n })).then(async (fetchResponse) => {\n response.value = fetchResponse;\n statusCode.value = fetchResponse.status;\n responseData = await fetchResponse[config.type]();\n if (options.afterFetch && statusCode.value >= 200 && statusCode.value < 300)\n ({ data: responseData } = await options.afterFetch({ data: responseData, response: fetchResponse }));\n data.value = responseData;\n if (!fetchResponse.ok)\n throw new Error(fetchResponse.statusText);\n responseEvent.trigger(fetchResponse);\n return resolve(fetchResponse);\n }).catch(async (fetchError) => {\n let errorData = fetchError.message || fetchError.name;\n if (options.onFetchError)\n ({ data: responseData, error: errorData } = await options.onFetchError({ data: responseData, error: fetchError, response: response.value }));\n data.value = responseData;\n error.value = errorData;\n errorEvent.trigger(fetchError);\n if (throwOnFailed)\n return reject(fetchError);\n return resolve(null);\n }).finally(() => {\n loading(false);\n if (timer)\n timer.stop();\n finallyEvent.trigger(null);\n });\n });\n };\n const refetch = resolveRef(options.refetch);\n watch([\n refetch,\n resolveRef(url)\n ], ([refetch2]) => refetch2 && execute(), { deep: true });\n const shell = {\n isFinished,\n statusCode,\n response,\n error,\n data,\n isFetching,\n canAbort,\n aborted,\n abort,\n execute,\n onFetchResponse: responseEvent.on,\n onFetchError: errorEvent.on,\n onFetchFinally: finallyEvent.on,\n get: setMethod(\"GET\"),\n put: setMethod(\"PUT\"),\n post: setMethod(\"POST\"),\n delete: setMethod(\"DELETE\"),\n patch: setMethod(\"PATCH\"),\n head: setMethod(\"HEAD\"),\n options: setMethod(\"OPTIONS\"),\n json: setType(\"json\"),\n text: setType(\"text\"),\n blob: setType(\"blob\"),\n arrayBuffer: setType(\"arrayBuffer\"),\n formData: setType(\"formData\")\n };\n function setMethod(method) {\n return (payload, payloadType) => {\n if (!isFetching.value) {\n config.method = method;\n config.payload = payload;\n config.payloadType = payloadType;\n if (isRef(config.payload)) {\n watch([\n refetch,\n resolveRef(config.payload)\n ], ([refetch2]) => refetch2 && execute(), { deep: true });\n }\n const rawPayload = resolveUnref(config.payload);\n if (!payloadType && rawPayload && Object.getPrototypeOf(rawPayload) === Object.prototype && !(rawPayload instanceof FormData))\n config.payloadType = \"json\";\n return __spreadProps$3(__spreadValues$d({}, shell), {\n then(onFulfilled, onRejected) {\n return waitUntilFinished().then(onFulfilled, onRejected);\n }\n });\n }\n return void 0;\n };\n }\n function waitUntilFinished() {\n return new Promise((resolve, reject) => {\n until(isFinished).toBe(true).then(() => resolve(shell)).catch((error2) => reject(error2));\n });\n }\n function setType(type) {\n return () => {\n if (!isFetching.value) {\n config.type = type;\n return __spreadProps$3(__spreadValues$d({}, shell), {\n then(onFulfilled, onRejected) {\n return waitUntilFinished().then(onFulfilled, onRejected);\n }\n });\n }\n return void 0;\n };\n }\n if (options.immediate)\n setTimeout(execute, 0);\n return __spreadProps$3(__spreadValues$d({}, shell), {\n then(onFulfilled, onRejected) {\n return waitUntilFinished().then(onFulfilled, onRejected);\n }\n });\n}\nfunction joinPaths(start, end) {\n if (!start.endsWith(\"/\") && !end.startsWith(\"/\"))\n return `${start}/${end}`;\n return `${start}${end}`;\n}\n\nvar __defProp$c = Object.defineProperty;\nvar __getOwnPropSymbols$d = Object.getOwnPropertySymbols;\nvar __hasOwnProp$d = Object.prototype.hasOwnProperty;\nvar __propIsEnum$d = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$c = (obj, key, value) => key in obj ? __defProp$c(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$c = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$d.call(b, prop))\n __defNormalProp$c(a, prop, b[prop]);\n if (__getOwnPropSymbols$d)\n for (var prop of __getOwnPropSymbols$d(b)) {\n if (__propIsEnum$d.call(b, prop))\n __defNormalProp$c(a, prop, b[prop]);\n }\n return a;\n};\nconst DEFAULT_OPTIONS = {\n multiple: true,\n accept: \"*\"\n};\nfunction useFileDialog(options = {}) {\n const {\n document = defaultDocument\n } = options;\n const files = ref(null);\n let input;\n if (document) {\n input = document.createElement(\"input\");\n input.type = \"file\";\n input.onchange = (event) => {\n const result = event.target;\n files.value = result.files;\n };\n }\n const open = (localOptions) => {\n if (!input)\n return;\n const _options = __spreadValues$c(__spreadValues$c(__spreadValues$c({}, DEFAULT_OPTIONS), options), localOptions);\n input.multiple = _options.multiple;\n input.accept = _options.accept;\n if (hasOwn(_options, \"capture\"))\n input.capture = _options.capture;\n input.click();\n };\n const reset = () => {\n files.value = null;\n if (input)\n input.value = \"\";\n };\n return {\n files: readonly(files),\n open,\n reset\n };\n}\n\nvar __defProp$b = Object.defineProperty;\nvar __getOwnPropSymbols$c = Object.getOwnPropertySymbols;\nvar __hasOwnProp$c = Object.prototype.hasOwnProperty;\nvar __propIsEnum$c = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$b = (obj, key, value) => key in obj ? __defProp$b(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$b = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$c.call(b, prop))\n __defNormalProp$b(a, prop, b[prop]);\n if (__getOwnPropSymbols$c)\n for (var prop of __getOwnPropSymbols$c(b)) {\n if (__propIsEnum$c.call(b, prop))\n __defNormalProp$b(a, prop, b[prop]);\n }\n return a;\n};\nfunction useFileSystemAccess(options = {}) {\n const {\n window: _window = defaultWindow,\n dataType = \"Text\"\n } = unref(options);\n const window = _window;\n const isSupported = useSupported(() => window && \"showSaveFilePicker\" in window && \"showOpenFilePicker\" in window);\n const fileHandle = ref();\n const data = ref();\n const file = ref();\n const fileName = computed(() => {\n var _a, _b;\n return (_b = (_a = file.value) == null ? void 0 : _a.name) != null ? _b : \"\";\n });\n const fileMIME = computed(() => {\n var _a, _b;\n return (_b = (_a = file.value) == null ? void 0 : _a.type) != null ? _b : \"\";\n });\n const fileSize = computed(() => {\n var _a, _b;\n return (_b = (_a = file.value) == null ? void 0 : _a.size) != null ? _b : 0;\n });\n const fileLastModified = computed(() => {\n var _a, _b;\n return (_b = (_a = file.value) == null ? void 0 : _a.lastModified) != null ? _b : 0;\n });\n async function open(_options = {}) {\n if (!isSupported.value)\n return;\n const [handle] = await window.showOpenFilePicker(__spreadValues$b(__spreadValues$b({}, unref(options)), _options));\n fileHandle.value = handle;\n await updateFile();\n await updateData();\n }\n async function create(_options = {}) {\n if (!isSupported.value)\n return;\n fileHandle.value = await window.showSaveFilePicker(__spreadValues$b(__spreadValues$b({}, unref(options)), _options));\n data.value = void 0;\n await updateFile();\n await updateData();\n }\n async function save(_options = {}) {\n if (!isSupported.value)\n return;\n if (!fileHandle.value)\n return saveAs(_options);\n if (data.value) {\n const writableStream = await fileHandle.value.createWritable();\n await writableStream.write(data.value);\n await writableStream.close();\n }\n await updateFile();\n }\n async function saveAs(_options = {}) {\n if (!isSupported.value)\n return;\n fileHandle.value = await window.showSaveFilePicker(__spreadValues$b(__spreadValues$b({}, unref(options)), _options));\n if (data.value) {\n const writableStream = await fileHandle.value.createWritable();\n await writableStream.write(data.value);\n await writableStream.close();\n }\n await updateFile();\n }\n async function updateFile() {\n var _a;\n file.value = await ((_a = fileHandle.value) == null ? void 0 : _a.getFile());\n }\n async function updateData() {\n var _a, _b;\n if (unref(dataType) === \"Text\")\n data.value = await ((_a = file.value) == null ? void 0 : _a.text());\n if (unref(dataType) === \"ArrayBuffer\")\n data.value = await ((_b = file.value) == null ? void 0 : _b.arrayBuffer());\n if (unref(dataType) === \"Blob\")\n data.value = file.value;\n }\n watch(() => unref(dataType), updateData);\n return {\n isSupported,\n data,\n file,\n fileName,\n fileMIME,\n fileSize,\n fileLastModified,\n open,\n create,\n save,\n saveAs,\n updateData\n };\n}\n\nfunction useFocus(target, options = {}) {\n const { initialValue = false } = options;\n const innerFocused = ref(false);\n const targetElement = computed(() => unrefElement(target));\n useEventListener(targetElement, \"focus\", () => innerFocused.value = true);\n useEventListener(targetElement, \"blur\", () => innerFocused.value = false);\n const focused = computed({\n get: () => innerFocused.value,\n set(value) {\n var _a, _b;\n if (!value && innerFocused.value)\n (_a = targetElement.value) == null ? void 0 : _a.blur();\n else if (value && !innerFocused.value)\n (_b = targetElement.value) == null ? void 0 : _b.focus();\n }\n });\n watch(targetElement, () => {\n focused.value = initialValue;\n }, { immediate: true, flush: \"post\" });\n return { focused };\n}\n\nfunction useFocusWithin(target, options = {}) {\n const activeElement = useActiveElement(options);\n const targetElement = computed(() => unrefElement(target));\n const focused = computed(() => targetElement.value && activeElement.value ? targetElement.value.contains(activeElement.value) : false);\n return { focused };\n}\n\nfunction useFps(options) {\n var _a;\n const fps = ref(0);\n if (typeof performance === \"undefined\")\n return fps;\n const every = (_a = options == null ? void 0 : options.every) != null ? _a : 10;\n let last = performance.now();\n let ticks = 0;\n useRafFn(() => {\n ticks += 1;\n if (ticks >= every) {\n const now = performance.now();\n const diff = now - last;\n fps.value = Math.round(1e3 / (diff / ticks));\n last = now;\n ticks = 0;\n }\n });\n return fps;\n}\n\nconst functionsMap = [\n [\n \"requestFullscreen\",\n \"exitFullscreen\",\n \"fullscreenElement\",\n \"fullscreenEnabled\",\n \"fullscreenchange\",\n \"fullscreenerror\"\n ],\n [\n \"webkitRequestFullscreen\",\n \"webkitExitFullscreen\",\n \"webkitFullscreenElement\",\n \"webkitFullscreenEnabled\",\n \"webkitfullscreenchange\",\n \"webkitfullscreenerror\"\n ],\n [\n \"webkitRequestFullScreen\",\n \"webkitCancelFullScreen\",\n \"webkitCurrentFullScreenElement\",\n \"webkitCancelFullScreen\",\n \"webkitfullscreenchange\",\n \"webkitfullscreenerror\"\n ],\n [\n \"mozRequestFullScreen\",\n \"mozCancelFullScreen\",\n \"mozFullScreenElement\",\n \"mozFullScreenEnabled\",\n \"mozfullscreenchange\",\n \"mozfullscreenerror\"\n ],\n [\n \"msRequestFullscreen\",\n \"msExitFullscreen\",\n \"msFullscreenElement\",\n \"msFullscreenEnabled\",\n \"MSFullscreenChange\",\n \"MSFullscreenError\"\n ]\n];\nfunction useFullscreen(target, options = {}) {\n const { document = defaultDocument, autoExit = false } = options;\n const targetRef = target || (document == null ? void 0 : document.querySelector(\"html\"));\n const isFullscreen = ref(false);\n let map = functionsMap[0];\n const isSupported = useSupported(() => {\n if (!document) {\n return false;\n } else {\n for (const m of functionsMap) {\n if (m[1] in document) {\n map = m;\n return true;\n }\n }\n }\n return false;\n });\n const [REQUEST, EXIT, ELEMENT, , EVENT] = map;\n async function exit() {\n if (!isSupported.value)\n return;\n if (document == null ? void 0 : document[ELEMENT])\n await document[EXIT]();\n isFullscreen.value = false;\n }\n async function enter() {\n if (!isSupported.value)\n return;\n await exit();\n const target2 = unrefElement(targetRef);\n if (target2) {\n await target2[REQUEST]();\n isFullscreen.value = true;\n }\n }\n async function toggle() {\n if (isFullscreen.value)\n await exit();\n else\n await enter();\n }\n if (document) {\n useEventListener(document, EVENT, () => {\n isFullscreen.value = !!(document == null ? void 0 : document[ELEMENT]);\n }, false);\n }\n if (autoExit)\n tryOnScopeDispose(exit);\n return {\n isSupported,\n isFullscreen,\n enter,\n exit,\n toggle\n };\n}\n\nfunction mapGamepadToXbox360Controller(gamepad) {\n return computed(() => {\n if (gamepad.value) {\n return {\n buttons: {\n a: gamepad.value.buttons[0],\n b: gamepad.value.buttons[1],\n x: gamepad.value.buttons[2],\n y: gamepad.value.buttons[3]\n },\n bumper: {\n left: gamepad.value.buttons[4],\n right: gamepad.value.buttons[5]\n },\n triggers: {\n left: gamepad.value.buttons[6],\n right: gamepad.value.buttons[7]\n },\n stick: {\n left: {\n horizontal: gamepad.value.axes[0],\n vertical: gamepad.value.axes[1],\n button: gamepad.value.buttons[10]\n },\n right: {\n horizontal: gamepad.value.axes[2],\n vertical: gamepad.value.axes[3],\n button: gamepad.value.buttons[11]\n }\n },\n dpad: {\n up: gamepad.value.buttons[12],\n down: gamepad.value.buttons[13],\n left: gamepad.value.buttons[14],\n right: gamepad.value.buttons[15]\n },\n back: gamepad.value.buttons[8],\n start: gamepad.value.buttons[9]\n };\n }\n return null;\n });\n}\nfunction useGamepad(options = {}) {\n const {\n navigator = defaultNavigator\n } = options;\n const isSupported = useSupported(() => navigator && \"getGamepads\" in navigator);\n const gamepads = ref([]);\n const onConnectedHook = createEventHook();\n const onDisconnectedHook = createEventHook();\n const stateFromGamepad = (gamepad) => {\n const hapticActuators = [];\n const vibrationActuator = \"vibrationActuator\" in gamepad ? gamepad.vibrationActuator : null;\n if (vibrationActuator)\n hapticActuators.push(vibrationActuator);\n if (gamepad.hapticActuators)\n hapticActuators.push(...gamepad.hapticActuators);\n return {\n id: gamepad.id,\n hapticActuators,\n index: gamepad.index,\n mapping: gamepad.mapping,\n connected: gamepad.connected,\n timestamp: gamepad.timestamp,\n axes: gamepad.axes.map((axes) => axes),\n buttons: gamepad.buttons.map((button) => ({ pressed: button.pressed, touched: button.touched, value: button.value }))\n };\n };\n const updateGamepadState = () => {\n const _gamepads = (navigator == null ? void 0 : navigator.getGamepads()) || [];\n for (let i = 0; i < _gamepads.length; ++i) {\n const gamepad = _gamepads[i];\n if (gamepad) {\n const index = gamepads.value.findIndex(({ index: index2 }) => index2 === gamepad.index);\n if (index > -1)\n gamepads.value[index] = stateFromGamepad(gamepad);\n }\n }\n };\n const { isActive, pause, resume } = useRafFn(updateGamepadState);\n const onGamepadConnected = (gamepad) => {\n if (!gamepads.value.some(({ index }) => index === gamepad.index)) {\n gamepads.value.push(stateFromGamepad(gamepad));\n onConnectedHook.trigger(gamepad.index);\n }\n resume();\n };\n const onGamepadDisconnected = (gamepad) => {\n gamepads.value = gamepads.value.filter((x) => x.index !== gamepad.index);\n onDisconnectedHook.trigger(gamepad.index);\n };\n useEventListener(\"gamepadconnected\", (e) => onGamepadConnected(e.gamepad));\n useEventListener(\"gamepaddisconnected\", (e) => onGamepadDisconnected(e.gamepad));\n tryOnMounted(() => {\n const _gamepads = (navigator == null ? void 0 : navigator.getGamepads()) || [];\n if (_gamepads) {\n for (let i = 0; i < _gamepads.length; ++i) {\n const gamepad = _gamepads[i];\n if (gamepad)\n onGamepadConnected(gamepad);\n }\n }\n });\n pause();\n return {\n isSupported,\n onConnected: onConnectedHook.on,\n onDisconnected: onDisconnectedHook.on,\n gamepads,\n pause,\n resume,\n isActive\n };\n}\n\nfunction useGeolocation(options = {}) {\n const {\n enableHighAccuracy = true,\n maximumAge = 3e4,\n timeout = 27e3,\n navigator = defaultNavigator,\n immediate = true\n } = options;\n const isSupported = useSupported(() => navigator && \"geolocation\" in navigator);\n const locatedAt = ref(null);\n const error = ref(null);\n const coords = ref({\n accuracy: 0,\n latitude: Infinity,\n longitude: Infinity,\n altitude: null,\n altitudeAccuracy: null,\n heading: null,\n speed: null\n });\n function updatePosition(position) {\n locatedAt.value = position.timestamp;\n coords.value = position.coords;\n error.value = null;\n }\n let watcher;\n function resume() {\n if (isSupported.value) {\n watcher = navigator.geolocation.watchPosition(updatePosition, (err) => error.value = err, {\n enableHighAccuracy,\n maximumAge,\n timeout\n });\n }\n }\n if (immediate)\n resume();\n function pause() {\n if (watcher && navigator)\n navigator.geolocation.clearWatch(watcher);\n }\n tryOnScopeDispose(() => {\n pause();\n });\n return {\n isSupported,\n coords,\n locatedAt,\n error,\n resume,\n pause\n };\n}\n\nconst defaultEvents$1 = [\"mousemove\", \"mousedown\", \"resize\", \"keydown\", \"touchstart\", \"wheel\"];\nconst oneMinute = 6e4;\nfunction useIdle(timeout = oneMinute, options = {}) {\n const {\n initialState = false,\n listenForVisibilityChange = true,\n events = defaultEvents$1,\n window = defaultWindow,\n eventFilter = throttleFilter(50)\n } = options;\n const idle = ref(initialState);\n const lastActive = ref(timestamp());\n let timer;\n const onEvent = createFilterWrapper(eventFilter, () => {\n idle.value = false;\n lastActive.value = timestamp();\n clearTimeout(timer);\n timer = setTimeout(() => idle.value = true, timeout);\n });\n if (window) {\n const document = window.document;\n for (const event of events)\n useEventListener(window, event, onEvent, { passive: true });\n if (listenForVisibilityChange) {\n useEventListener(document, \"visibilitychange\", () => {\n if (!document.hidden)\n onEvent();\n });\n }\n }\n timer = setTimeout(() => idle.value = true, timeout);\n return { idle, lastActive };\n}\n\nvar __defProp$a = Object.defineProperty;\nvar __getOwnPropSymbols$b = Object.getOwnPropertySymbols;\nvar __hasOwnProp$b = Object.prototype.hasOwnProperty;\nvar __propIsEnum$b = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$a = (obj, key, value) => key in obj ? __defProp$a(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$a = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$b.call(b, prop))\n __defNormalProp$a(a, prop, b[prop]);\n if (__getOwnPropSymbols$b)\n for (var prop of __getOwnPropSymbols$b(b)) {\n if (__propIsEnum$b.call(b, prop))\n __defNormalProp$a(a, prop, b[prop]);\n }\n return a;\n};\nasync function loadImage(options) {\n return new Promise((resolve, reject) => {\n const img = new Image();\n const { src, srcset, sizes } = options;\n img.src = src;\n if (srcset)\n img.srcset = srcset;\n if (sizes)\n img.sizes = sizes;\n img.onload = () => resolve(img);\n img.onerror = reject;\n });\n}\nconst useImage = (options, asyncStateOptions = {}) => {\n const state = useAsyncState(() => loadImage(resolveUnref(options)), void 0, __spreadValues$a({\n resetOnExecute: true\n }, asyncStateOptions));\n watch(() => resolveUnref(options), () => state.execute(asyncStateOptions.delay), { deep: true });\n return state;\n};\n\nconst ARRIVED_STATE_THRESHOLD_PIXELS = 1;\nfunction useScroll(element, options = {}) {\n const {\n throttle = 0,\n idle = 200,\n onStop = noop,\n onScroll = noop,\n offset = {\n left: 0,\n right: 0,\n top: 0,\n bottom: 0\n },\n eventListenerOptions = {\n capture: false,\n passive: true\n },\n behavior = \"auto\"\n } = options;\n const internalX = ref(0);\n const internalY = ref(0);\n const x = computed({\n get() {\n return internalX.value;\n },\n set(x2) {\n scrollTo(x2, void 0);\n }\n });\n const y = computed({\n get() {\n return internalY.value;\n },\n set(y2) {\n scrollTo(void 0, y2);\n }\n });\n function scrollTo(_x, _y) {\n var _a, _b, _c;\n const _element = resolveUnref(element);\n if (!_element)\n return;\n (_c = _element instanceof Document ? document.body : _element) == null ? void 0 : _c.scrollTo({\n top: (_a = resolveUnref(_y)) != null ? _a : y.value,\n left: (_b = resolveUnref(_x)) != null ? _b : x.value,\n behavior: resolveUnref(behavior)\n });\n }\n const isScrolling = ref(false);\n const arrivedState = reactive({\n left: true,\n right: false,\n top: true,\n bottom: false\n });\n const directions = reactive({\n left: false,\n right: false,\n top: false,\n bottom: false\n });\n const onScrollEnd = (e) => {\n if (!isScrolling.value)\n return;\n isScrolling.value = false;\n directions.left = false;\n directions.right = false;\n directions.top = false;\n directions.bottom = false;\n onStop(e);\n };\n const onScrollEndDebounced = useDebounceFn(onScrollEnd, throttle + idle);\n const onScrollHandler = (e) => {\n const eventTarget = e.target === document ? e.target.documentElement : e.target;\n const scrollLeft = eventTarget.scrollLeft;\n directions.left = scrollLeft < internalX.value;\n directions.right = scrollLeft > internalY.value;\n arrivedState.left = scrollLeft <= 0 + (offset.left || 0);\n arrivedState.right = scrollLeft + eventTarget.clientWidth >= eventTarget.scrollWidth - (offset.right || 0) - ARRIVED_STATE_THRESHOLD_PIXELS;\n internalX.value = scrollLeft;\n let scrollTop = eventTarget.scrollTop;\n if (e.target === document && !scrollTop)\n scrollTop = document.body.scrollTop;\n directions.top = scrollTop < internalY.value;\n directions.bottom = scrollTop > internalY.value;\n arrivedState.top = scrollTop <= 0 + (offset.top || 0);\n arrivedState.bottom = scrollTop + eventTarget.clientHeight >= eventTarget.scrollHeight - (offset.bottom || 0) - ARRIVED_STATE_THRESHOLD_PIXELS;\n internalY.value = scrollTop;\n isScrolling.value = true;\n onScrollEndDebounced(e);\n onScroll(e);\n };\n useEventListener(element, \"scroll\", throttle ? useThrottleFn(onScrollHandler, throttle, true, false) : onScrollHandler, eventListenerOptions);\n useEventListener(element, \"scrollend\", onScrollEnd, eventListenerOptions);\n return {\n x,\n y,\n isScrolling,\n arrivedState,\n directions\n };\n}\n\nvar __defProp$9 = Object.defineProperty;\nvar __defProps$2 = Object.defineProperties;\nvar __getOwnPropDescs$2 = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols$a = Object.getOwnPropertySymbols;\nvar __hasOwnProp$a = Object.prototype.hasOwnProperty;\nvar __propIsEnum$a = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$9 = (obj, key, value) => key in obj ? __defProp$9(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$9 = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$a.call(b, prop))\n __defNormalProp$9(a, prop, b[prop]);\n if (__getOwnPropSymbols$a)\n for (var prop of __getOwnPropSymbols$a(b)) {\n if (__propIsEnum$a.call(b, prop))\n __defNormalProp$9(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps$2 = (a, b) => __defProps$2(a, __getOwnPropDescs$2(b));\nfunction useInfiniteScroll(element, onLoadMore, options = {}) {\n var _a, _b;\n const direction = (_a = options.direction) != null ? _a : \"bottom\";\n const state = reactive(useScroll(element, __spreadProps$2(__spreadValues$9({}, options), {\n offset: __spreadValues$9({\n [direction]: (_b = options.distance) != null ? _b : 0\n }, options.offset)\n })));\n watch(() => state.arrivedState[direction], async (v) => {\n var _a2, _b2;\n if (v) {\n const elem = resolveUnref(element);\n const previous = {\n height: (_a2 = elem == null ? void 0 : elem.scrollHeight) != null ? _a2 : 0,\n width: (_b2 = elem == null ? void 0 : elem.scrollWidth) != null ? _b2 : 0\n };\n await onLoadMore(state);\n if (options.preserveScrollPosition && elem) {\n nextTick(() => {\n elem.scrollTo({\n top: elem.scrollHeight - previous.height,\n left: elem.scrollWidth - previous.width\n });\n });\n }\n }\n });\n}\n\nfunction useIntersectionObserver(target, callback, options = {}) {\n const {\n root,\n rootMargin = \"0px\",\n threshold = 0.1,\n window = defaultWindow\n } = options;\n const isSupported = useSupported(() => window && \"IntersectionObserver\" in window);\n let cleanup = noop;\n const stopWatch = isSupported.value ? watch(() => ({\n el: unrefElement(target),\n root: unrefElement(root)\n }), ({ el, root: root2 }) => {\n cleanup();\n if (!el)\n return;\n const observer = new IntersectionObserver(callback, {\n root: root2,\n rootMargin,\n threshold\n });\n observer.observe(el);\n cleanup = () => {\n observer.disconnect();\n cleanup = noop;\n };\n }, { immediate: true, flush: \"post\" }) : noop;\n const stop = () => {\n cleanup();\n stopWatch();\n };\n tryOnScopeDispose(stop);\n return {\n isSupported,\n stop\n };\n}\n\nconst defaultEvents = [\"mousedown\", \"mouseup\", \"keydown\", \"keyup\"];\nfunction useKeyModifier(modifier, options = {}) {\n const {\n events = defaultEvents,\n document = defaultDocument,\n initial = null\n } = options;\n const state = ref(initial);\n if (document) {\n events.forEach((listenerEvent) => {\n useEventListener(document, listenerEvent, (evt) => {\n if (typeof evt.getModifierState === \"function\")\n state.value = evt.getModifierState(modifier);\n });\n });\n }\n return state;\n}\n\nfunction useLocalStorage(key, initialValue, options = {}) {\n const { window = defaultWindow } = options;\n return useStorage(key, initialValue, window == null ? void 0 : window.localStorage, options);\n}\n\nconst DefaultMagicKeysAliasMap = {\n ctrl: \"control\",\n command: \"meta\",\n cmd: \"meta\",\n option: \"alt\",\n up: \"arrowup\",\n down: \"arrowdown\",\n left: \"arrowleft\",\n right: \"arrowright\"\n};\n\nfunction useMagicKeys(options = {}) {\n const {\n reactive: useReactive = false,\n target = defaultWindow,\n aliasMap = DefaultMagicKeysAliasMap,\n passive = true,\n onEventFired = noop\n } = options;\n const current = reactive(new Set());\n const obj = {\n toJSON() {\n return {};\n },\n current\n };\n const refs = useReactive ? reactive(obj) : obj;\n const metaDeps = new Set();\n const usedKeys = new Set();\n function setRefs(key, value) {\n if (key in refs) {\n if (useReactive)\n refs[key] = value;\n else\n refs[key].value = value;\n }\n }\n function reset() {\n current.clear();\n for (const key of usedKeys)\n setRefs(key, false);\n }\n function updateRefs(e, value) {\n var _a, _b;\n const key = (_a = e.key) == null ? void 0 : _a.toLowerCase();\n const code = (_b = e.code) == null ? void 0 : _b.toLowerCase();\n const values = [code, key].filter(Boolean);\n if (key) {\n if (value)\n current.add(key);\n else\n current.delete(key);\n }\n for (const key2 of values) {\n usedKeys.add(key2);\n setRefs(key2, value);\n }\n if (key === \"meta\" && !value) {\n metaDeps.forEach((key2) => {\n current.delete(key2);\n setRefs(key2, false);\n });\n metaDeps.clear();\n } else if (typeof e.getModifierState === \"function\" && e.getModifierState(\"Meta\") && value) {\n [...current, ...values].forEach((key2) => metaDeps.add(key2));\n }\n }\n useEventListener(target, \"keydown\", (e) => {\n updateRefs(e, true);\n return onEventFired(e);\n }, { passive });\n useEventListener(target, \"keyup\", (e) => {\n updateRefs(e, false);\n return onEventFired(e);\n }, { passive });\n useEventListener(\"blur\", reset, { passive: true });\n useEventListener(\"focus\", reset, { passive: true });\n const proxy = new Proxy(refs, {\n get(target2, prop, rec) {\n if (typeof prop !== \"string\")\n return Reflect.get(target2, prop, rec);\n prop = prop.toLowerCase();\n if (prop in aliasMap)\n prop = aliasMap[prop];\n if (!(prop in refs)) {\n if (/[+_-]/.test(prop)) {\n const keys = prop.split(/[+_-]/g).map((i) => i.trim());\n refs[prop] = computed(() => keys.every((key) => unref(proxy[key])));\n } else {\n refs[prop] = ref(false);\n }\n }\n const r = Reflect.get(target2, prop, rec);\n return useReactive ? unref(r) : r;\n }\n });\n return proxy;\n}\n\nvar __defProp$8 = Object.defineProperty;\nvar __getOwnPropSymbols$9 = Object.getOwnPropertySymbols;\nvar __hasOwnProp$9 = Object.prototype.hasOwnProperty;\nvar __propIsEnum$9 = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$8 = (obj, key, value) => key in obj ? __defProp$8(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$8 = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$9.call(b, prop))\n __defNormalProp$8(a, prop, b[prop]);\n if (__getOwnPropSymbols$9)\n for (var prop of __getOwnPropSymbols$9(b)) {\n if (__propIsEnum$9.call(b, prop))\n __defNormalProp$8(a, prop, b[prop]);\n }\n return a;\n};\nfunction usingElRef(source, cb) {\n if (resolveUnref(source))\n cb(resolveUnref(source));\n}\nfunction timeRangeToArray(timeRanges) {\n let ranges = [];\n for (let i = 0; i < timeRanges.length; ++i)\n ranges = [...ranges, [timeRanges.start(i), timeRanges.end(i)]];\n return ranges;\n}\nfunction tracksToArray(tracks) {\n return Array.from(tracks).map(({ label, kind, language, mode, activeCues, cues, inBandMetadataTrackDispatchType }, id) => ({ id, label, kind, language, mode, activeCues, cues, inBandMetadataTrackDispatchType }));\n}\nconst defaultOptions = {\n src: \"\",\n tracks: []\n};\nfunction useMediaControls(target, options = {}) {\n options = __spreadValues$8(__spreadValues$8({}, defaultOptions), options);\n const {\n document = defaultDocument\n } = options;\n const currentTime = ref(0);\n const duration = ref(0);\n const seeking = ref(false);\n const volume = ref(1);\n const waiting = ref(false);\n const ended = ref(false);\n const playing = ref(false);\n const rate = ref(1);\n const stalled = ref(false);\n const buffered = ref([]);\n const tracks = ref([]);\n const selectedTrack = ref(-1);\n const isPictureInPicture = ref(false);\n const muted = ref(false);\n const supportsPictureInPicture = document && \"pictureInPictureEnabled\" in document;\n const sourceErrorEvent = createEventHook();\n const disableTrack = (track) => {\n usingElRef(target, (el) => {\n if (track) {\n const id = isNumber(track) ? track : track.id;\n el.textTracks[id].mode = \"disabled\";\n } else {\n for (let i = 0; i < el.textTracks.length; ++i)\n el.textTracks[i].mode = \"disabled\";\n }\n selectedTrack.value = -1;\n });\n };\n const enableTrack = (track, disableTracks = true) => {\n usingElRef(target, (el) => {\n const id = isNumber(track) ? track : track.id;\n if (disableTracks)\n disableTrack();\n el.textTracks[id].mode = \"showing\";\n selectedTrack.value = id;\n });\n };\n const togglePictureInPicture = () => {\n return new Promise((resolve, reject) => {\n usingElRef(target, async (el) => {\n if (supportsPictureInPicture) {\n if (!isPictureInPicture.value) {\n el.requestPictureInPicture().then(resolve).catch(reject);\n } else {\n document.exitPictureInPicture().then(resolve).catch(reject);\n }\n }\n });\n });\n };\n watchEffect(() => {\n if (!document)\n return;\n const el = resolveUnref(target);\n if (!el)\n return;\n const src = resolveUnref(options.src);\n let sources = [];\n if (!src)\n return;\n if (isString(src))\n sources = [{ src }];\n else if (Array.isArray(src))\n sources = src;\n else if (isObject(src))\n sources = [src];\n el.querySelectorAll(\"source\").forEach((e) => {\n e.removeEventListener(\"error\", sourceErrorEvent.trigger);\n e.remove();\n });\n sources.forEach(({ src: src2, type }) => {\n const source = document.createElement(\"source\");\n source.setAttribute(\"src\", src2);\n source.setAttribute(\"type\", type || \"\");\n source.addEventListener(\"error\", sourceErrorEvent.trigger);\n el.appendChild(source);\n });\n el.load();\n });\n tryOnScopeDispose(() => {\n const el = resolveUnref(target);\n if (!el)\n return;\n el.querySelectorAll(\"source\").forEach((e) => e.removeEventListener(\"error\", sourceErrorEvent.trigger));\n });\n watch(volume, (vol) => {\n const el = resolveUnref(target);\n if (!el)\n return;\n el.volume = vol;\n });\n watch(muted, (mute) => {\n const el = resolveUnref(target);\n if (!el)\n return;\n el.muted = mute;\n });\n watch(rate, (rate2) => {\n const el = resolveUnref(target);\n if (!el)\n return;\n el.playbackRate = rate2;\n });\n watchEffect(() => {\n if (!document)\n return;\n const textTracks = resolveUnref(options.tracks);\n const el = resolveUnref(target);\n if (!textTracks || !textTracks.length || !el)\n return;\n el.querySelectorAll(\"track\").forEach((e) => e.remove());\n textTracks.forEach(({ default: isDefault, kind, label, src, srcLang }, i) => {\n const track = document.createElement(\"track\");\n track.default = isDefault || false;\n track.kind = kind;\n track.label = label;\n track.src = src;\n track.srclang = srcLang;\n if (track.default)\n selectedTrack.value = i;\n el.appendChild(track);\n });\n });\n const { ignoreUpdates: ignoreCurrentTimeUpdates } = watchIgnorable(currentTime, (time) => {\n const el = resolveUnref(target);\n if (!el)\n return;\n el.currentTime = time;\n });\n const { ignoreUpdates: ignorePlayingUpdates } = watchIgnorable(playing, (isPlaying) => {\n const el = resolveUnref(target);\n if (!el)\n return;\n isPlaying ? el.play() : el.pause();\n });\n useEventListener(target, \"timeupdate\", () => ignoreCurrentTimeUpdates(() => currentTime.value = resolveUnref(target).currentTime));\n useEventListener(target, \"durationchange\", () => duration.value = resolveUnref(target).duration);\n useEventListener(target, \"progress\", () => buffered.value = timeRangeToArray(resolveUnref(target).buffered));\n useEventListener(target, \"seeking\", () => seeking.value = true);\n useEventListener(target, \"seeked\", () => seeking.value = false);\n useEventListener(target, \"waiting\", () => waiting.value = true);\n useEventListener(target, \"playing\", () => {\n waiting.value = false;\n ended.value = false;\n });\n useEventListener(target, \"ratechange\", () => rate.value = resolveUnref(target).playbackRate);\n useEventListener(target, \"stalled\", () => stalled.value = true);\n useEventListener(target, \"ended\", () => ended.value = true);\n useEventListener(target, \"pause\", () => ignorePlayingUpdates(() => playing.value = false));\n useEventListener(target, \"play\", () => ignorePlayingUpdates(() => playing.value = true));\n useEventListener(target, \"enterpictureinpicture\", () => isPictureInPicture.value = true);\n useEventListener(target, \"leavepictureinpicture\", () => isPictureInPicture.value = false);\n useEventListener(target, \"volumechange\", () => {\n const el = resolveUnref(target);\n if (!el)\n return;\n volume.value = el.volume;\n muted.value = el.muted;\n });\n const listeners = [];\n const stop = watch([target], () => {\n const el = resolveUnref(target);\n if (!el)\n return;\n stop();\n listeners[0] = useEventListener(el.textTracks, \"addtrack\", () => tracks.value = tracksToArray(el.textTracks));\n listeners[1] = useEventListener(el.textTracks, \"removetrack\", () => tracks.value = tracksToArray(el.textTracks));\n listeners[2] = useEventListener(el.textTracks, \"change\", () => tracks.value = tracksToArray(el.textTracks));\n });\n tryOnScopeDispose(() => listeners.forEach((listener) => listener()));\n return {\n currentTime,\n duration,\n waiting,\n seeking,\n ended,\n stalled,\n buffered,\n playing,\n rate,\n volume,\n muted,\n tracks,\n selectedTrack,\n enableTrack,\n disableTrack,\n supportsPictureInPicture,\n togglePictureInPicture,\n isPictureInPicture,\n onSourceError: sourceErrorEvent.on\n };\n}\n\nconst getMapVue2Compat = () => {\n const data = reactive({});\n return {\n get: (key) => data[key],\n set: (key, value) => set(data, key, value),\n has: (key) => hasOwn(data, key),\n delete: (key) => del(data, key),\n clear: () => {\n Object.keys(data).forEach((key) => {\n del(data, key);\n });\n }\n };\n};\nfunction useMemoize(resolver, options) {\n const initCache = () => {\n if (options == null ? void 0 : options.cache)\n return reactive(options.cache);\n if (isVue2)\n return getMapVue2Compat();\n return reactive(new Map());\n };\n const cache = initCache();\n const generateKey = (...args) => (options == null ? void 0 : options.getKey) ? options.getKey(...args) : JSON.stringify(args);\n const _loadData = (key, ...args) => {\n cache.set(key, resolver(...args));\n return cache.get(key);\n };\n const loadData = (...args) => _loadData(generateKey(...args), ...args);\n const deleteData = (...args) => {\n cache.delete(generateKey(...args));\n };\n const clearData = () => {\n cache.clear();\n };\n const memoized = (...args) => {\n const key = generateKey(...args);\n if (cache.has(key))\n return cache.get(key);\n return _loadData(key, ...args);\n };\n memoized.load = loadData;\n memoized.delete = deleteData;\n memoized.clear = clearData;\n memoized.generateKey = generateKey;\n memoized.cache = cache;\n return memoized;\n}\n\nfunction useMemory(options = {}) {\n const memory = ref();\n const isSupported = useSupported(() => typeof performance !== \"undefined\" && \"memory\" in performance);\n if (isSupported.value) {\n const { interval = 1e3 } = options;\n useIntervalFn(() => {\n memory.value = performance.memory;\n }, interval, { immediate: options.immediate, immediateCallback: options.immediateCallback });\n }\n return { isSupported, memory };\n}\n\nfunction useMounted() {\n const isMounted = ref(false);\n onMounted(() => {\n isMounted.value = true;\n });\n return isMounted;\n}\n\nfunction useMouse(options = {}) {\n const {\n type = \"page\",\n touch = true,\n resetOnTouchEnds = false,\n initialValue = { x: 0, y: 0 },\n window = defaultWindow,\n eventFilter\n } = options;\n const x = ref(initialValue.x);\n const y = ref(initialValue.y);\n const sourceType = ref(null);\n const mouseHandler = (event) => {\n if (type === \"page\") {\n x.value = event.pageX;\n y.value = event.pageY;\n } else if (type === \"client\") {\n x.value = event.clientX;\n y.value = event.clientY;\n } else if (type === \"movement\") {\n x.value = event.movementX;\n y.value = event.movementY;\n }\n sourceType.value = \"mouse\";\n };\n const reset = () => {\n x.value = initialValue.x;\n y.value = initialValue.y;\n };\n const touchHandler = (event) => {\n if (event.touches.length > 0) {\n const touch2 = event.touches[0];\n if (type === \"page\") {\n x.value = touch2.pageX;\n y.value = touch2.pageY;\n } else if (type === \"client\") {\n x.value = touch2.clientX;\n y.value = touch2.clientY;\n }\n sourceType.value = \"touch\";\n }\n };\n const mouseHandlerWrapper = (event) => {\n return eventFilter === void 0 ? mouseHandler(event) : eventFilter(() => mouseHandler(event), {});\n };\n const touchHandlerWrapper = (event) => {\n return eventFilter === void 0 ? touchHandler(event) : eventFilter(() => touchHandler(event), {});\n };\n if (window) {\n useEventListener(window, \"mousemove\", mouseHandlerWrapper, { passive: true });\n useEventListener(window, \"dragover\", mouseHandlerWrapper, { passive: true });\n if (touch && type !== \"movement\") {\n useEventListener(window, \"touchstart\", touchHandlerWrapper, { passive: true });\n useEventListener(window, \"touchmove\", touchHandlerWrapper, { passive: true });\n if (resetOnTouchEnds)\n useEventListener(window, \"touchend\", reset, { passive: true });\n }\n }\n return {\n x,\n y,\n sourceType\n };\n}\n\nfunction useMouseInElement(target, options = {}) {\n const {\n handleOutside = true,\n window = defaultWindow\n } = options;\n const { x, y, sourceType } = useMouse(options);\n const targetRef = ref(target != null ? target : window == null ? void 0 : window.document.body);\n const elementX = ref(0);\n const elementY = ref(0);\n const elementPositionX = ref(0);\n const elementPositionY = ref(0);\n const elementHeight = ref(0);\n const elementWidth = ref(0);\n const isOutside = ref(true);\n let stop = () => {\n };\n if (window) {\n stop = watch([targetRef, x, y], () => {\n const el = unrefElement(targetRef);\n if (!el)\n return;\n const {\n left,\n top,\n width,\n height\n } = el.getBoundingClientRect();\n elementPositionX.value = left + window.pageXOffset;\n elementPositionY.value = top + window.pageYOffset;\n elementHeight.value = height;\n elementWidth.value = width;\n const elX = x.value - elementPositionX.value;\n const elY = y.value - elementPositionY.value;\n isOutside.value = width === 0 || height === 0 || elX < 0 || elY < 0 || elX > width || elY > height;\n if (handleOutside || !isOutside.value) {\n elementX.value = elX;\n elementY.value = elY;\n }\n }, { immediate: true });\n useEventListener(document, \"mouseleave\", () => {\n isOutside.value = true;\n });\n }\n return {\n x,\n y,\n sourceType,\n elementX,\n elementY,\n elementPositionX,\n elementPositionY,\n elementHeight,\n elementWidth,\n isOutside,\n stop\n };\n}\n\nfunction useMousePressed(options = {}) {\n const {\n touch = true,\n drag = true,\n initialValue = false,\n window = defaultWindow\n } = options;\n const pressed = ref(initialValue);\n const sourceType = ref(null);\n if (!window) {\n return {\n pressed,\n sourceType\n };\n }\n const onPressed = (srcType) => () => {\n pressed.value = true;\n sourceType.value = srcType;\n };\n const onReleased = () => {\n pressed.value = false;\n sourceType.value = null;\n };\n const target = computed(() => unrefElement(options.target) || window);\n useEventListener(target, \"mousedown\", onPressed(\"mouse\"), { passive: true });\n useEventListener(window, \"mouseleave\", onReleased, { passive: true });\n useEventListener(window, \"mouseup\", onReleased, { passive: true });\n if (drag) {\n useEventListener(target, \"dragstart\", onPressed(\"mouse\"), { passive: true });\n useEventListener(window, \"drop\", onReleased, { passive: true });\n useEventListener(window, \"dragend\", onReleased, { passive: true });\n }\n if (touch) {\n useEventListener(target, \"touchstart\", onPressed(\"touch\"), { passive: true });\n useEventListener(window, \"touchend\", onReleased, { passive: true });\n useEventListener(window, \"touchcancel\", onReleased, { passive: true });\n }\n return {\n pressed,\n sourceType\n };\n}\n\nvar __getOwnPropSymbols$8 = Object.getOwnPropertySymbols;\nvar __hasOwnProp$8 = Object.prototype.hasOwnProperty;\nvar __propIsEnum$8 = Object.prototype.propertyIsEnumerable;\nvar __objRest$1 = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp$8.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols$8)\n for (var prop of __getOwnPropSymbols$8(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum$8.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\nfunction useMutationObserver(target, callback, options = {}) {\n const _a = options, { window = defaultWindow } = _a, mutationOptions = __objRest$1(_a, [\"window\"]);\n let observer;\n const isSupported = useSupported(() => window && \"MutationObserver\" in window);\n const cleanup = () => {\n if (observer) {\n observer.disconnect();\n observer = void 0;\n }\n };\n const stopWatch = watch(() => unrefElement(target), (el) => {\n cleanup();\n if (isSupported.value && window && el) {\n observer = new MutationObserver(callback);\n observer.observe(el, mutationOptions);\n }\n }, { immediate: true });\n const stop = () => {\n cleanup();\n stopWatch();\n };\n tryOnScopeDispose(stop);\n return {\n isSupported,\n stop\n };\n}\n\nconst useNavigatorLanguage = (options = {}) => {\n const { window = defaultWindow } = options;\n const navigator = window == null ? void 0 : window.navigator;\n const isSupported = useSupported(() => navigator && \"language\" in navigator);\n const language = ref(navigator == null ? void 0 : navigator.language);\n useEventListener(window, \"languagechange\", () => {\n if (navigator)\n language.value = navigator.language;\n });\n return {\n isSupported,\n language\n };\n};\n\nfunction useNetwork(options = {}) {\n const { window = defaultWindow } = options;\n const navigator = window == null ? void 0 : window.navigator;\n const isSupported = useSupported(() => navigator && \"connection\" in navigator);\n const isOnline = ref(true);\n const saveData = ref(false);\n const offlineAt = ref(void 0);\n const onlineAt = ref(void 0);\n const downlink = ref(void 0);\n const downlinkMax = ref(void 0);\n const rtt = ref(void 0);\n const effectiveType = ref(void 0);\n const type = ref(\"unknown\");\n const connection = isSupported.value && navigator.connection;\n function updateNetworkInformation() {\n if (!navigator)\n return;\n isOnline.value = navigator.onLine;\n offlineAt.value = isOnline.value ? void 0 : Date.now();\n onlineAt.value = isOnline.value ? Date.now() : void 0;\n if (connection) {\n downlink.value = connection.downlink;\n downlinkMax.value = connection.downlinkMax;\n effectiveType.value = connection.effectiveType;\n rtt.value = connection.rtt;\n saveData.value = connection.saveData;\n type.value = connection.type;\n }\n }\n if (window) {\n useEventListener(window, \"offline\", () => {\n isOnline.value = false;\n offlineAt.value = Date.now();\n });\n useEventListener(window, \"online\", () => {\n isOnline.value = true;\n onlineAt.value = Date.now();\n });\n }\n if (connection)\n useEventListener(connection, \"change\", updateNetworkInformation, false);\n updateNetworkInformation();\n return {\n isSupported,\n isOnline,\n saveData,\n offlineAt,\n onlineAt,\n downlink,\n downlinkMax,\n effectiveType,\n rtt,\n type\n };\n}\n\nvar __defProp$7 = Object.defineProperty;\nvar __getOwnPropSymbols$7 = Object.getOwnPropertySymbols;\nvar __hasOwnProp$7 = Object.prototype.hasOwnProperty;\nvar __propIsEnum$7 = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$7 = (obj, key, value) => key in obj ? __defProp$7(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$7 = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$7.call(b, prop))\n __defNormalProp$7(a, prop, b[prop]);\n if (__getOwnPropSymbols$7)\n for (var prop of __getOwnPropSymbols$7(b)) {\n if (__propIsEnum$7.call(b, prop))\n __defNormalProp$7(a, prop, b[prop]);\n }\n return a;\n};\nfunction useNow(options = {}) {\n const {\n controls: exposeControls = false,\n interval = \"requestAnimationFrame\"\n } = options;\n const now = ref(new Date());\n const update = () => now.value = new Date();\n const controls = interval === \"requestAnimationFrame\" ? useRafFn(update, { immediate: true }) : useIntervalFn(update, interval, { immediate: true });\n if (exposeControls) {\n return __spreadValues$7({\n now\n }, controls);\n } else {\n return now;\n }\n}\n\nfunction useObjectUrl(object) {\n const url = ref();\n const release = () => {\n if (url.value)\n URL.revokeObjectURL(url.value);\n url.value = void 0;\n };\n watch(() => unref(object), (newObject) => {\n release();\n if (newObject)\n url.value = URL.createObjectURL(newObject);\n }, { immediate: true });\n tryOnScopeDispose(release);\n return readonly(url);\n}\n\nfunction useClamp(value, min, max) {\n if (isFunction(value) || isReadonly(value))\n return computed(() => clamp(resolveUnref(value), resolveUnref(min), resolveUnref(max)));\n const _value = ref(value);\n return computed({\n get() {\n return _value.value = clamp(_value.value, resolveUnref(min), resolveUnref(max));\n },\n set(value2) {\n _value.value = clamp(value2, resolveUnref(min), resolveUnref(max));\n }\n });\n}\n\nfunction useOffsetPagination(options) {\n const {\n total = Infinity,\n pageSize = 10,\n page = 1,\n onPageChange = noop,\n onPageSizeChange = noop,\n onPageCountChange = noop\n } = options;\n const currentPageSize = useClamp(pageSize, 1, Infinity);\n const pageCount = computed(() => Math.max(1, Math.ceil(unref(total) / unref(currentPageSize))));\n const currentPage = useClamp(page, 1, pageCount);\n const isFirstPage = computed(() => currentPage.value === 1);\n const isLastPage = computed(() => currentPage.value === pageCount.value);\n if (isRef(page))\n syncRef(page, currentPage);\n if (isRef(pageSize))\n syncRef(pageSize, currentPageSize);\n function prev() {\n currentPage.value--;\n }\n function next() {\n currentPage.value++;\n }\n const returnValue = {\n currentPage,\n currentPageSize,\n pageCount,\n isFirstPage,\n isLastPage,\n prev,\n next\n };\n watch(currentPage, () => {\n onPageChange(reactive(returnValue));\n });\n watch(currentPageSize, () => {\n onPageSizeChange(reactive(returnValue));\n });\n watch(pageCount, () => {\n onPageCountChange(reactive(returnValue));\n });\n return returnValue;\n}\n\nfunction useOnline(options = {}) {\n const { isOnline } = useNetwork(options);\n return isOnline;\n}\n\nfunction usePageLeave(options = {}) {\n const { window = defaultWindow } = options;\n const isLeft = ref(false);\n const handler = (event) => {\n if (!window)\n return;\n event = event || window.event;\n const from = event.relatedTarget || event.toElement;\n isLeft.value = !from;\n };\n if (window) {\n useEventListener(window, \"mouseout\", handler, { passive: true });\n useEventListener(window.document, \"mouseleave\", handler, { passive: true });\n useEventListener(window.document, \"mouseenter\", handler, { passive: true });\n }\n return isLeft;\n}\n\nfunction useParallax(target, options = {}) {\n const {\n deviceOrientationTiltAdjust = (i) => i,\n deviceOrientationRollAdjust = (i) => i,\n mouseTiltAdjust = (i) => i,\n mouseRollAdjust = (i) => i,\n window = defaultWindow\n } = options;\n const orientation = reactive(useDeviceOrientation({ window }));\n const {\n elementX: x,\n elementY: y,\n elementWidth: width,\n elementHeight: height\n } = useMouseInElement(target, { handleOutside: false, window });\n const source = computed(() => {\n if (orientation.isSupported && (orientation.alpha != null && orientation.alpha !== 0 || orientation.gamma != null && orientation.gamma !== 0))\n return \"deviceOrientation\";\n return \"mouse\";\n });\n const roll = computed(() => {\n if (source.value === \"deviceOrientation\") {\n const value = -orientation.beta / 90;\n return deviceOrientationRollAdjust(value);\n } else {\n const value = -(y.value - height.value / 2) / height.value;\n return mouseRollAdjust(value);\n }\n });\n const tilt = computed(() => {\n if (source.value === \"deviceOrientation\") {\n const value = orientation.gamma / 90;\n return deviceOrientationTiltAdjust(value);\n } else {\n const value = (x.value - width.value / 2) / width.value;\n return mouseTiltAdjust(value);\n }\n });\n return { roll, tilt, source };\n}\n\nvar __defProp$6 = Object.defineProperty;\nvar __defProps$1 = Object.defineProperties;\nvar __getOwnPropDescs$1 = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols$6 = Object.getOwnPropertySymbols;\nvar __hasOwnProp$6 = Object.prototype.hasOwnProperty;\nvar __propIsEnum$6 = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$6 = (obj, key, value) => key in obj ? __defProp$6(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$6 = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$6.call(b, prop))\n __defNormalProp$6(a, prop, b[prop]);\n if (__getOwnPropSymbols$6)\n for (var prop of __getOwnPropSymbols$6(b)) {\n if (__propIsEnum$6.call(b, prop))\n __defNormalProp$6(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps$1 = (a, b) => __defProps$1(a, __getOwnPropDescs$1(b));\nconst defaultState = {\n x: 0,\n y: 0,\n pointerId: 0,\n pressure: 0,\n tiltX: 0,\n tiltY: 0,\n width: 0,\n height: 0,\n twist: 0,\n pointerType: null\n};\nconst keys = /* @__PURE__ */ Object.keys(defaultState);\nfunction usePointer(options = {}) {\n const {\n target = defaultWindow\n } = options;\n const isInside = ref(false);\n const state = ref(options.initialValue || {});\n Object.assign(state.value, defaultState, state.value);\n const handler = (event) => {\n isInside.value = true;\n if (options.pointerTypes && !options.pointerTypes.includes(event.pointerType))\n return;\n state.value = objectPick(event, keys, false);\n };\n if (target) {\n useEventListener(target, \"pointerdown\", handler, { passive: true });\n useEventListener(target, \"pointermove\", handler, { passive: true });\n useEventListener(target, \"pointerleave\", () => isInside.value = false, { passive: true });\n }\n return __spreadProps$1(__spreadValues$6({}, toRefs(state)), {\n isInside\n });\n}\n\nfunction usePointerLock(target, options = {}) {\n const { document = defaultDocument, pointerLockOptions } = options;\n const isSupported = useSupported(() => document && \"pointerLockElement\" in document);\n const element = ref();\n const triggerElement = ref();\n let targetElement;\n if (isSupported.value) {\n useEventListener(document, \"pointerlockchange\", () => {\n var _a;\n const currentElement = (_a = document.pointerLockElement) != null ? _a : element.value;\n if (targetElement && currentElement === targetElement) {\n element.value = document.pointerLockElement;\n if (!element.value)\n targetElement = triggerElement.value = null;\n }\n });\n useEventListener(document, \"pointerlockerror\", () => {\n var _a;\n const currentElement = (_a = document.pointerLockElement) != null ? _a : element.value;\n if (targetElement && currentElement === targetElement) {\n const action = document.pointerLockElement ? \"release\" : \"acquire\";\n throw new Error(`Failed to ${action} pointer lock.`);\n }\n });\n }\n async function lock(e, options2) {\n var _a;\n if (!isSupported.value)\n throw new Error(\"Pointer Lock API is not supported by your browser.\");\n triggerElement.value = e instanceof Event ? e.currentTarget : null;\n targetElement = e instanceof Event ? (_a = unrefElement(target)) != null ? _a : triggerElement.value : unrefElement(e);\n if (!targetElement)\n throw new Error(\"Target element undefined.\");\n targetElement.requestPointerLock(options2 != null ? options2 : pointerLockOptions);\n return await until(element).toBe(targetElement);\n }\n async function unlock() {\n if (!element.value)\n return false;\n document.exitPointerLock();\n await until(element).toBeNull();\n return true;\n }\n return {\n isSupported,\n element,\n triggerElement,\n lock,\n unlock\n };\n}\n\nvar SwipeDirection;\n(function(SwipeDirection2) {\n SwipeDirection2[\"UP\"] = \"UP\";\n SwipeDirection2[\"RIGHT\"] = \"RIGHT\";\n SwipeDirection2[\"DOWN\"] = \"DOWN\";\n SwipeDirection2[\"LEFT\"] = \"LEFT\";\n SwipeDirection2[\"NONE\"] = \"NONE\";\n})(SwipeDirection || (SwipeDirection = {}));\nfunction useSwipe(target, options = {}) {\n const {\n threshold = 50,\n onSwipe,\n onSwipeEnd,\n onSwipeStart,\n passive = true,\n window = defaultWindow\n } = options;\n const coordsStart = reactive({ x: 0, y: 0 });\n const coordsEnd = reactive({ x: 0, y: 0 });\n const diffX = computed(() => coordsStart.x - coordsEnd.x);\n const diffY = computed(() => coordsStart.y - coordsEnd.y);\n const { max, abs } = Math;\n const isThresholdExceeded = computed(() => max(abs(diffX.value), abs(diffY.value)) >= threshold);\n const isSwiping = ref(false);\n const direction = computed(() => {\n if (!isThresholdExceeded.value)\n return SwipeDirection.NONE;\n if (abs(diffX.value) > abs(diffY.value)) {\n return diffX.value > 0 ? SwipeDirection.LEFT : SwipeDirection.RIGHT;\n } else {\n return diffY.value > 0 ? SwipeDirection.UP : SwipeDirection.DOWN;\n }\n });\n const getTouchEventCoords = (e) => [e.touches[0].clientX, e.touches[0].clientY];\n const updateCoordsStart = (x, y) => {\n coordsStart.x = x;\n coordsStart.y = y;\n };\n const updateCoordsEnd = (x, y) => {\n coordsEnd.x = x;\n coordsEnd.y = y;\n };\n let listenerOptions;\n const isPassiveEventSupported = checkPassiveEventSupport(window == null ? void 0 : window.document);\n if (!passive)\n listenerOptions = isPassiveEventSupported ? { passive: false, capture: true } : { capture: true };\n else\n listenerOptions = isPassiveEventSupported ? { passive: true } : { capture: false };\n const onTouchEnd = (e) => {\n if (isSwiping.value)\n onSwipeEnd == null ? void 0 : onSwipeEnd(e, direction.value);\n isSwiping.value = false;\n };\n const stops = [\n useEventListener(target, \"touchstart\", (e) => {\n if (listenerOptions.capture && !listenerOptions.passive)\n e.preventDefault();\n const [x, y] = getTouchEventCoords(e);\n updateCoordsStart(x, y);\n updateCoordsEnd(x, y);\n onSwipeStart == null ? void 0 : onSwipeStart(e);\n }, listenerOptions),\n useEventListener(target, \"touchmove\", (e) => {\n const [x, y] = getTouchEventCoords(e);\n updateCoordsEnd(x, y);\n if (!isSwiping.value && isThresholdExceeded.value)\n isSwiping.value = true;\n if (isSwiping.value)\n onSwipe == null ? void 0 : onSwipe(e);\n }, listenerOptions),\n useEventListener(target, \"touchend\", onTouchEnd, listenerOptions),\n useEventListener(target, \"touchcancel\", onTouchEnd, listenerOptions)\n ];\n const stop = () => stops.forEach((s) => s());\n return {\n isPassiveEventSupported,\n isSwiping,\n direction,\n coordsStart,\n coordsEnd,\n lengthX: diffX,\n lengthY: diffY,\n stop\n };\n}\nfunction checkPassiveEventSupport(document) {\n if (!document)\n return false;\n let supportsPassive = false;\n const optionsBlock = {\n get passive() {\n supportsPassive = true;\n return false;\n }\n };\n document.addEventListener(\"x\", noop, optionsBlock);\n document.removeEventListener(\"x\", noop);\n return supportsPassive;\n}\n\nfunction usePointerSwipe(target, options = {}) {\n const targetRef = resolveRef(target);\n const {\n threshold = 50,\n onSwipe,\n onSwipeEnd,\n onSwipeStart\n } = options;\n const posStart = reactive({ x: 0, y: 0 });\n const updatePosStart = (x, y) => {\n posStart.x = x;\n posStart.y = y;\n };\n const posEnd = reactive({ x: 0, y: 0 });\n const updatePosEnd = (x, y) => {\n posEnd.x = x;\n posEnd.y = y;\n };\n const distanceX = computed(() => posStart.x - posEnd.x);\n const distanceY = computed(() => posStart.y - posEnd.y);\n const { max, abs } = Math;\n const isThresholdExceeded = computed(() => max(abs(distanceX.value), abs(distanceY.value)) >= threshold);\n const isSwiping = ref(false);\n const isPointerDown = ref(false);\n const direction = computed(() => {\n if (!isThresholdExceeded.value)\n return SwipeDirection.NONE;\n if (abs(distanceX.value) > abs(distanceY.value)) {\n return distanceX.value > 0 ? SwipeDirection.LEFT : SwipeDirection.RIGHT;\n } else {\n return distanceY.value > 0 ? SwipeDirection.UP : SwipeDirection.DOWN;\n }\n });\n const eventIsAllowed = (e) => {\n var _a, _b, _c;\n const isReleasingButton = e.buttons === 0;\n const isPrimaryButton = e.buttons === 1;\n return (_c = (_b = (_a = options.pointerTypes) == null ? void 0 : _a.includes(e.pointerType)) != null ? _b : isReleasingButton || isPrimaryButton) != null ? _c : true;\n };\n const stops = [\n useEventListener(target, \"pointerdown\", (e) => {\n var _a, _b;\n if (!eventIsAllowed(e))\n return;\n isPointerDown.value = true;\n (_b = (_a = targetRef.value) == null ? void 0 : _a.style) == null ? void 0 : _b.setProperty(\"touch-action\", \"none\");\n const eventTarget = e.target;\n eventTarget == null ? void 0 : eventTarget.setPointerCapture(e.pointerId);\n const { clientX: x, clientY: y } = e;\n updatePosStart(x, y);\n updatePosEnd(x, y);\n onSwipeStart == null ? void 0 : onSwipeStart(e);\n }),\n useEventListener(target, \"pointermove\", (e) => {\n if (!eventIsAllowed(e))\n return;\n if (!isPointerDown.value)\n return;\n const { clientX: x, clientY: y } = e;\n updatePosEnd(x, y);\n if (!isSwiping.value && isThresholdExceeded.value)\n isSwiping.value = true;\n if (isSwiping.value)\n onSwipe == null ? void 0 : onSwipe(e);\n }),\n useEventListener(target, \"pointerup\", (e) => {\n var _a, _b;\n if (!eventIsAllowed(e))\n return;\n if (isSwiping.value)\n onSwipeEnd == null ? void 0 : onSwipeEnd(e, direction.value);\n isPointerDown.value = false;\n isSwiping.value = false;\n (_b = (_a = targetRef.value) == null ? void 0 : _a.style) == null ? void 0 : _b.setProperty(\"touch-action\", \"initial\");\n })\n ];\n const stop = () => stops.forEach((s) => s());\n return {\n isSwiping: readonly(isSwiping),\n direction: readonly(direction),\n posStart: readonly(posStart),\n posEnd: readonly(posEnd),\n distanceX,\n distanceY,\n stop\n };\n}\n\nfunction usePreferredColorScheme(options) {\n const isLight = useMediaQuery(\"(prefers-color-scheme: light)\", options);\n const isDark = useMediaQuery(\"(prefers-color-scheme: dark)\", options);\n return computed(() => {\n if (isDark.value)\n return \"dark\";\n if (isLight.value)\n return \"light\";\n return \"no-preference\";\n });\n}\n\nfunction usePreferredContrast(options) {\n const isMore = useMediaQuery(\"(prefers-contrast: more)\", options);\n const isLess = useMediaQuery(\"(prefers-contrast: less)\", options);\n const isCustom = useMediaQuery(\"(prefers-contrast: custom)\", options);\n return computed(() => {\n if (isMore.value)\n return \"more\";\n if (isLess.value)\n return \"less\";\n if (isCustom.value)\n return \"custom\";\n return \"no-preference\";\n });\n}\n\nfunction usePreferredLanguages(options = {}) {\n const { window = defaultWindow } = options;\n if (!window)\n return ref([\"en\"]);\n const navigator = window.navigator;\n const value = ref(navigator.languages);\n useEventListener(window, \"languagechange\", () => {\n value.value = navigator.languages;\n });\n return value;\n}\n\nfunction usePreferredReducedMotion(options) {\n const isReduced = useMediaQuery(\"(prefers-reduced-motion: reduce)\", options);\n return computed(() => {\n if (isReduced.value)\n return \"reduce\";\n return \"no-preference\";\n });\n}\n\nfunction usePrevious(value, initialValue) {\n const previous = shallowRef(initialValue);\n watch(resolveRef(value), (_, oldValue) => {\n previous.value = oldValue;\n }, { flush: \"sync\" });\n return readonly(previous);\n}\n\nconst useScreenOrientation = (options = {}) => {\n const {\n window = defaultWindow\n } = options;\n const isSupported = useSupported(() => window && \"screen\" in window && \"orientation\" in window.screen);\n const screenOrientation = isSupported.value ? window.screen.orientation : {};\n const orientation = ref(screenOrientation.type);\n const angle = ref(screenOrientation.angle || 0);\n if (isSupported.value) {\n useEventListener(window, \"orientationchange\", () => {\n orientation.value = screenOrientation.type;\n angle.value = screenOrientation.angle;\n });\n }\n const lockOrientation = (type) => {\n if (!isSupported.value)\n return Promise.reject(new Error(\"Not supported\"));\n return screenOrientation.lock(type);\n };\n const unlockOrientation = () => {\n if (isSupported.value)\n screenOrientation.unlock();\n };\n return {\n isSupported,\n orientation,\n angle,\n lockOrientation,\n unlockOrientation\n };\n};\n\nconst topVarName = \"--vueuse-safe-area-top\";\nconst rightVarName = \"--vueuse-safe-area-right\";\nconst bottomVarName = \"--vueuse-safe-area-bottom\";\nconst leftVarName = \"--vueuse-safe-area-left\";\nfunction useScreenSafeArea() {\n const top = ref(\"\");\n const right = ref(\"\");\n const bottom = ref(\"\");\n const left = ref(\"\");\n if (isClient) {\n const topCssVar = useCssVar(topVarName);\n const rightCssVar = useCssVar(rightVarName);\n const bottomCssVar = useCssVar(bottomVarName);\n const leftCssVar = useCssVar(leftVarName);\n topCssVar.value = \"env(safe-area-inset-top, 0px)\";\n rightCssVar.value = \"env(safe-area-inset-right, 0px)\";\n bottomCssVar.value = \"env(safe-area-inset-bottom, 0px)\";\n leftCssVar.value = \"env(safe-area-inset-left, 0px)\";\n update();\n useEventListener(\"resize\", useDebounceFn(update));\n }\n function update() {\n top.value = getValue(topVarName);\n right.value = getValue(rightVarName);\n bottom.value = getValue(bottomVarName);\n left.value = getValue(leftVarName);\n }\n return {\n top,\n right,\n bottom,\n left,\n update\n };\n}\nfunction getValue(position) {\n return getComputedStyle(document.documentElement).getPropertyValue(position);\n}\n\nfunction useScriptTag(src, onLoaded = noop, options = {}) {\n const {\n immediate = true,\n manual = false,\n type = \"text/javascript\",\n async = true,\n crossOrigin,\n referrerPolicy,\n noModule,\n defer,\n document = defaultDocument,\n attrs = {}\n } = options;\n const scriptTag = ref(null);\n let _promise = null;\n const loadScript = (waitForScriptLoad) => new Promise((resolve, reject) => {\n const resolveWithElement = (el2) => {\n scriptTag.value = el2;\n resolve(el2);\n return el2;\n };\n if (!document) {\n resolve(false);\n return;\n }\n let shouldAppend = false;\n let el = document.querySelector(`script[src=\"${resolveUnref(src)}\"]`);\n if (!el) {\n el = document.createElement(\"script\");\n el.type = type;\n el.async = async;\n el.src = resolveUnref(src);\n if (defer)\n el.defer = defer;\n if (crossOrigin)\n el.crossOrigin = crossOrigin;\n if (noModule)\n el.noModule = noModule;\n if (referrerPolicy)\n el.referrerPolicy = referrerPolicy;\n Object.entries(attrs).forEach(([name, value]) => el == null ? void 0 : el.setAttribute(name, value));\n shouldAppend = true;\n } else if (el.hasAttribute(\"data-loaded\")) {\n resolveWithElement(el);\n }\n el.addEventListener(\"error\", (event) => reject(event));\n el.addEventListener(\"abort\", (event) => reject(event));\n el.addEventListener(\"load\", () => {\n el.setAttribute(\"data-loaded\", \"true\");\n onLoaded(el);\n resolveWithElement(el);\n });\n if (shouldAppend)\n el = document.head.appendChild(el);\n if (!waitForScriptLoad)\n resolveWithElement(el);\n });\n const load = (waitForScriptLoad = true) => {\n if (!_promise)\n _promise = loadScript(waitForScriptLoad);\n return _promise;\n };\n const unload = () => {\n if (!document)\n return;\n _promise = null;\n if (scriptTag.value)\n scriptTag.value = null;\n const el = document.querySelector(`script[src=\"${resolveUnref(src)}\"]`);\n if (el)\n document.head.removeChild(el);\n };\n if (immediate && !manual)\n tryOnMounted(load);\n if (!manual)\n tryOnUnmounted(unload);\n return { scriptTag, load, unload };\n}\n\nfunction checkOverflowScroll(ele) {\n const style = window.getComputedStyle(ele);\n if (style.overflowX === \"scroll\" || style.overflowY === \"scroll\" || style.overflowX === \"auto\" && ele.clientHeight < ele.scrollHeight || style.overflowY === \"auto\" && ele.clientWidth < ele.scrollWidth) {\n return true;\n } else {\n const parent = ele.parentNode;\n if (!parent || parent.tagName === \"BODY\")\n return false;\n return checkOverflowScroll(parent);\n }\n}\nfunction preventDefault(rawEvent) {\n const e = rawEvent || window.event;\n const _target = e.target;\n if (checkOverflowScroll(_target))\n return false;\n if (e.touches.length > 1)\n return true;\n if (e.preventDefault)\n e.preventDefault();\n return false;\n}\nfunction useScrollLock(element, initialState = false) {\n const isLocked = ref(initialState);\n let stopTouchMoveListener = null;\n let initialOverflow;\n watch(resolveRef(element), (el) => {\n if (el) {\n const ele = el;\n initialOverflow = ele.style.overflow;\n if (isLocked.value)\n ele.style.overflow = \"hidden\";\n }\n }, {\n immediate: true\n });\n const lock = () => {\n const ele = resolveUnref(element);\n if (!ele || isLocked.value)\n return;\n if (isIOS) {\n stopTouchMoveListener = useEventListener(ele, \"touchmove\", (e) => {\n preventDefault(e);\n }, { passive: false });\n }\n ele.style.overflow = \"hidden\";\n isLocked.value = true;\n };\n const unlock = () => {\n const ele = resolveUnref(element);\n if (!ele || !isLocked.value)\n return;\n isIOS && (stopTouchMoveListener == null ? void 0 : stopTouchMoveListener());\n ele.style.overflow = initialOverflow;\n isLocked.value = false;\n };\n tryOnScopeDispose(unlock);\n return computed({\n get() {\n return isLocked.value;\n },\n set(v) {\n if (v)\n lock();\n else\n unlock();\n }\n });\n}\n\nfunction useSessionStorage(key, initialValue, options = {}) {\n const { window = defaultWindow } = options;\n return useStorage(key, initialValue, window == null ? void 0 : window.sessionStorage, options);\n}\n\nvar __defProp$5 = Object.defineProperty;\nvar __getOwnPropSymbols$5 = Object.getOwnPropertySymbols;\nvar __hasOwnProp$5 = Object.prototype.hasOwnProperty;\nvar __propIsEnum$5 = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$5 = (obj, key, value) => key in obj ? __defProp$5(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$5 = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$5.call(b, prop))\n __defNormalProp$5(a, prop, b[prop]);\n if (__getOwnPropSymbols$5)\n for (var prop of __getOwnPropSymbols$5(b)) {\n if (__propIsEnum$5.call(b, prop))\n __defNormalProp$5(a, prop, b[prop]);\n }\n return a;\n};\nfunction useShare(shareOptions = {}, options = {}) {\n const { navigator = defaultNavigator } = options;\n const _navigator = navigator;\n const isSupported = useSupported(() => _navigator && \"canShare\" in _navigator);\n const share = async (overrideOptions = {}) => {\n if (isSupported.value) {\n const data = __spreadValues$5(__spreadValues$5({}, resolveUnref(shareOptions)), resolveUnref(overrideOptions));\n let granted = true;\n if (data.files && _navigator.canShare)\n granted = _navigator.canShare({ files: data.files });\n if (granted)\n return _navigator.share(data);\n }\n };\n return {\n isSupported,\n share\n };\n}\n\nconst defaultSortFn = (source, compareFn) => source.sort(compareFn);\nconst defaultCompare = (a, b) => a - b;\nfunction useSorted(...args) {\n var _a, _b, _c, _d;\n const [source] = args;\n let compareFn = defaultCompare;\n let options = {};\n if (args.length === 2) {\n if (typeof args[1] === \"object\") {\n options = args[1];\n compareFn = (_a = options.compareFn) != null ? _a : defaultCompare;\n } else {\n compareFn = (_b = args[1]) != null ? _b : defaultCompare;\n }\n } else if (args.length > 2) {\n compareFn = (_c = args[1]) != null ? _c : defaultCompare;\n options = (_d = args[2]) != null ? _d : {};\n }\n const {\n dirty = false,\n sortFn = defaultSortFn\n } = options;\n if (!dirty)\n return computed(() => sortFn([...unref(source)], compareFn));\n watchEffect(() => {\n const result = sortFn(unref(source), compareFn);\n if (isRef(source))\n source.value = result;\n else\n source.splice(0, source.length, ...result);\n });\n return source;\n}\n\nfunction useSpeechRecognition(options = {}) {\n const {\n interimResults = true,\n continuous = true,\n window = defaultWindow\n } = options;\n const lang = resolveRef(options.lang || \"en-US\");\n const isListening = ref(false);\n const isFinal = ref(false);\n const result = ref(\"\");\n const error = shallowRef(void 0);\n const toggle = (value = !isListening.value) => {\n isListening.value = value;\n };\n const start = () => {\n isListening.value = true;\n };\n const stop = () => {\n isListening.value = false;\n };\n const SpeechRecognition = window && (window.SpeechRecognition || window.webkitSpeechRecognition);\n const isSupported = useSupported(() => SpeechRecognition);\n let recognition;\n if (isSupported.value) {\n recognition = new SpeechRecognition();\n recognition.continuous = continuous;\n recognition.interimResults = interimResults;\n recognition.lang = unref(lang);\n recognition.onstart = () => {\n isFinal.value = false;\n };\n watch(lang, (lang2) => {\n if (recognition && !isListening.value)\n recognition.lang = lang2;\n });\n recognition.onresult = (event) => {\n const transcript = Array.from(event.results).map((result2) => {\n isFinal.value = result2.isFinal;\n return result2[0];\n }).map((result2) => result2.transcript).join(\"\");\n result.value = transcript;\n error.value = void 0;\n };\n recognition.onerror = (event) => {\n error.value = event;\n };\n recognition.onend = () => {\n isListening.value = false;\n recognition.lang = unref(lang);\n };\n watch(isListening, () => {\n if (isListening.value)\n recognition.start();\n else\n recognition.stop();\n });\n }\n tryOnScopeDispose(() => {\n isListening.value = false;\n });\n return {\n isSupported,\n isListening,\n isFinal,\n recognition,\n result,\n error,\n toggle,\n start,\n stop\n };\n}\n\nfunction useSpeechSynthesis(text, options = {}) {\n const {\n pitch = 1,\n rate = 1,\n volume = 1,\n window = defaultWindow\n } = options;\n const synth = window && window.speechSynthesis;\n const isSupported = useSupported(() => synth);\n const isPlaying = ref(false);\n const status = ref(\"init\");\n const spokenText = resolveRef(text || \"\");\n const lang = resolveRef(options.lang || \"en-US\");\n const error = shallowRef(void 0);\n const toggle = (value = !isPlaying.value) => {\n isPlaying.value = value;\n };\n const bindEventsForUtterance = (utterance2) => {\n utterance2.lang = unref(lang);\n utterance2.voice = unref(options.voice) || null;\n utterance2.pitch = pitch;\n utterance2.rate = rate;\n utterance2.volume = volume;\n utterance2.onstart = () => {\n isPlaying.value = true;\n status.value = \"play\";\n };\n utterance2.onpause = () => {\n isPlaying.value = false;\n status.value = \"pause\";\n };\n utterance2.onresume = () => {\n isPlaying.value = true;\n status.value = \"play\";\n };\n utterance2.onend = () => {\n isPlaying.value = false;\n status.value = \"end\";\n };\n utterance2.onerror = (event) => {\n error.value = event;\n };\n };\n const utterance = computed(() => {\n isPlaying.value = false;\n status.value = \"init\";\n const newUtterance = new SpeechSynthesisUtterance(spokenText.value);\n bindEventsForUtterance(newUtterance);\n return newUtterance;\n });\n const speak = () => {\n synth.cancel();\n utterance && synth.speak(utterance.value);\n };\n const stop = () => {\n synth.cancel();\n isPlaying.value = false;\n };\n if (isSupported.value) {\n bindEventsForUtterance(utterance.value);\n watch(lang, (lang2) => {\n if (utterance.value && !isPlaying.value)\n utterance.value.lang = lang2;\n });\n if (options.voice) {\n watch(options.voice, () => {\n synth.cancel();\n });\n }\n watch(isPlaying, () => {\n if (isPlaying.value)\n synth.resume();\n else\n synth.pause();\n });\n }\n tryOnScopeDispose(() => {\n isPlaying.value = false;\n });\n return {\n isSupported,\n isPlaying,\n status,\n utterance,\n error,\n stop,\n toggle,\n speak\n };\n}\n\nfunction useStepper(steps, initialStep) {\n const stepsRef = ref(steps);\n const stepNames = computed(() => Array.isArray(stepsRef.value) ? stepsRef.value : Object.keys(stepsRef.value));\n const index = ref(stepNames.value.indexOf(initialStep != null ? initialStep : stepNames.value[0]));\n const current = computed(() => at(index.value));\n const isFirst = computed(() => index.value === 0);\n const isLast = computed(() => index.value === stepNames.value.length - 1);\n const next = computed(() => stepNames.value[index.value + 1]);\n const previous = computed(() => stepNames.value[index.value - 1]);\n function at(index2) {\n if (Array.isArray(stepsRef.value))\n return stepsRef.value[index2];\n return stepsRef.value[stepNames.value[index2]];\n }\n function get(step) {\n if (!stepNames.value.includes(step))\n return;\n return at(stepNames.value.indexOf(step));\n }\n function goTo(step) {\n if (stepNames.value.includes(step))\n index.value = stepNames.value.indexOf(step);\n }\n function goToNext() {\n if (isLast.value)\n return;\n index.value++;\n }\n function goToPrevious() {\n if (isFirst.value)\n return;\n index.value--;\n }\n function goBackTo(step) {\n if (isAfter(step))\n goTo(step);\n }\n function isNext(step) {\n return stepNames.value.indexOf(step) === index.value + 1;\n }\n function isPrevious(step) {\n return stepNames.value.indexOf(step) === index.value - 1;\n }\n function isCurrent(step) {\n return stepNames.value.indexOf(step) === index.value;\n }\n function isBefore(step) {\n return index.value < stepNames.value.indexOf(step);\n }\n function isAfter(step) {\n return index.value > stepNames.value.indexOf(step);\n }\n return {\n steps: stepsRef,\n stepNames,\n index,\n current,\n next,\n previous,\n isFirst,\n isLast,\n at,\n get,\n goTo,\n goToNext,\n goToPrevious,\n goBackTo,\n isNext,\n isPrevious,\n isCurrent,\n isBefore,\n isAfter\n };\n}\n\nvar __defProp$4 = Object.defineProperty;\nvar __getOwnPropSymbols$4 = Object.getOwnPropertySymbols;\nvar __hasOwnProp$4 = Object.prototype.hasOwnProperty;\nvar __propIsEnum$4 = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$4 = (obj, key, value) => key in obj ? __defProp$4(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$4 = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$4.call(b, prop))\n __defNormalProp$4(a, prop, b[prop]);\n if (__getOwnPropSymbols$4)\n for (var prop of __getOwnPropSymbols$4(b)) {\n if (__propIsEnum$4.call(b, prop))\n __defNormalProp$4(a, prop, b[prop]);\n }\n return a;\n};\nfunction useStorageAsync(key, initialValue, storage, options = {}) {\n var _a;\n const {\n flush = \"pre\",\n deep = true,\n listenToStorageChanges = true,\n writeDefaults = true,\n mergeDefaults = false,\n shallow,\n window = defaultWindow,\n eventFilter,\n onError = (e) => {\n console.error(e);\n }\n } = options;\n const rawInit = resolveUnref(initialValue);\n const type = guessSerializerType(rawInit);\n const data = (shallow ? shallowRef : ref)(initialValue);\n const serializer = (_a = options.serializer) != null ? _a : StorageSerializers[type];\n if (!storage) {\n try {\n storage = getSSRHandler(\"getDefaultStorage\", () => {\n var _a2;\n return (_a2 = defaultWindow) == null ? void 0 : _a2.localStorage;\n })();\n } catch (e) {\n onError(e);\n }\n }\n async function read(event) {\n if (!storage || event && event.key !== key)\n return;\n try {\n const rawValue = event ? event.newValue : await storage.getItem(key);\n if (rawValue == null) {\n data.value = rawInit;\n if (writeDefaults && rawInit !== null)\n await storage.setItem(key, await serializer.write(rawInit));\n } else if (mergeDefaults) {\n const value = await serializer.read(rawValue);\n if (isFunction(mergeDefaults))\n data.value = mergeDefaults(value, rawInit);\n else if (type === \"object\" && !Array.isArray(value))\n data.value = __spreadValues$4(__spreadValues$4({}, rawInit), value);\n else\n data.value = value;\n } else {\n data.value = await serializer.read(rawValue);\n }\n } catch (e) {\n onError(e);\n }\n }\n read();\n if (window && listenToStorageChanges)\n useEventListener(window, \"storage\", (e) => setTimeout(() => read(e), 0));\n if (storage) {\n watchWithFilter(data, async () => {\n try {\n if (data.value == null)\n await storage.removeItem(key);\n else\n await storage.setItem(key, await serializer.write(data.value));\n } catch (e) {\n onError(e);\n }\n }, {\n flush,\n deep,\n eventFilter\n });\n }\n return data;\n}\n\nlet _id = 0;\nfunction useStyleTag(css, options = {}) {\n const isLoaded = ref(false);\n const {\n document = defaultDocument,\n immediate = true,\n manual = false,\n id = `vueuse_styletag_${++_id}`\n } = options;\n const cssRef = ref(css);\n let stop = () => {\n };\n const load = () => {\n if (!document)\n return;\n const el = document.getElementById(id) || document.createElement(\"style\");\n if (!el.isConnected) {\n el.type = \"text/css\";\n el.id = id;\n if (options.media)\n el.media = options.media;\n document.head.appendChild(el);\n }\n if (isLoaded.value)\n return;\n stop = watch(cssRef, (value) => {\n el.textContent = value;\n }, { immediate: true });\n isLoaded.value = true;\n };\n const unload = () => {\n if (!document || !isLoaded.value)\n return;\n stop();\n document.head.removeChild(document.getElementById(id));\n isLoaded.value = false;\n };\n if (immediate && !manual)\n tryOnMounted(load);\n if (!manual)\n tryOnScopeDispose(unload);\n return {\n id,\n css: cssRef,\n unload,\n load,\n isLoaded: readonly(isLoaded)\n };\n}\n\nfunction useTemplateRefsList() {\n const refs = ref([]);\n refs.value.set = (el) => {\n if (el)\n refs.value.push(el);\n };\n onBeforeUpdate(() => {\n refs.value.length = 0;\n });\n return refs;\n}\n\nfunction useTextDirection(options = {}) {\n const {\n document = defaultDocument,\n selector = \"html\",\n observe = false,\n initialValue = \"ltr\"\n } = options;\n function getValue() {\n var _a, _b;\n return (_b = (_a = document == null ? void 0 : document.querySelector(selector)) == null ? void 0 : _a.getAttribute(\"dir\")) != null ? _b : initialValue;\n }\n const dir = ref(getValue());\n tryOnMounted(() => dir.value = getValue());\n if (observe && document) {\n useMutationObserver(document.querySelector(selector), () => dir.value = getValue(), { attributes: true });\n }\n return computed({\n get() {\n return dir.value;\n },\n set(v) {\n var _a, _b;\n dir.value = v;\n if (!document)\n return;\n if (dir.value)\n (_a = document.querySelector(selector)) == null ? void 0 : _a.setAttribute(\"dir\", dir.value);\n else\n (_b = document.querySelector(selector)) == null ? void 0 : _b.removeAttribute(\"dir\");\n }\n });\n}\n\nfunction getRangesFromSelection(selection) {\n var _a;\n const rangeCount = (_a = selection.rangeCount) != null ? _a : 0;\n const ranges = new Array(rangeCount);\n for (let i = 0; i < rangeCount; i++) {\n const range = selection.getRangeAt(i);\n ranges[i] = range;\n }\n return ranges;\n}\nfunction useTextSelection(options = {}) {\n const {\n window = defaultWindow\n } = options;\n const selection = ref(null);\n const text = computed(() => {\n var _a, _b;\n return (_b = (_a = selection.value) == null ? void 0 : _a.toString()) != null ? _b : \"\";\n });\n const ranges = computed(() => selection.value ? getRangesFromSelection(selection.value) : []);\n const rects = computed(() => ranges.value.map((range) => range.getBoundingClientRect()));\n function onSelectionChange() {\n selection.value = null;\n if (window)\n selection.value = window.getSelection();\n }\n if (window)\n useEventListener(window.document, \"selectionchange\", onSelectionChange);\n return {\n text,\n rects,\n ranges,\n selection\n };\n}\n\nfunction useTextareaAutosize(options) {\n const textarea = ref(options == null ? void 0 : options.element);\n const input = ref(options == null ? void 0 : options.input);\n function triggerResize() {\n var _a, _b;\n if (!textarea.value)\n return;\n textarea.value.style.height = \"1px\";\n textarea.value.style.height = `${(_a = textarea.value) == null ? void 0 : _a.scrollHeight}px`;\n (_b = options == null ? void 0 : options.onResize) == null ? void 0 : _b.call(options);\n }\n watch([input, textarea], triggerResize, { immediate: true });\n useResizeObserver(textarea, () => triggerResize());\n if (options == null ? void 0 : options.watch)\n watch(options.watch, triggerResize, { immediate: true, deep: true });\n return {\n textarea,\n input,\n triggerResize\n };\n}\n\nvar __defProp$3 = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols$3 = Object.getOwnPropertySymbols;\nvar __hasOwnProp$3 = Object.prototype.hasOwnProperty;\nvar __propIsEnum$3 = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$3 = (obj, key, value) => key in obj ? __defProp$3(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$3 = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$3.call(b, prop))\n __defNormalProp$3(a, prop, b[prop]);\n if (__getOwnPropSymbols$3)\n for (var prop of __getOwnPropSymbols$3(b)) {\n if (__propIsEnum$3.call(b, prop))\n __defNormalProp$3(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));\nfunction useThrottledRefHistory(source, options = {}) {\n const { throttle = 200, trailing = true } = options;\n const filter = throttleFilter(throttle, trailing);\n const history = useRefHistory(source, __spreadProps(__spreadValues$3({}, options), { eventFilter: filter }));\n return __spreadValues$3({}, history);\n}\n\nvar __defProp$2 = Object.defineProperty;\nvar __getOwnPropSymbols$2 = Object.getOwnPropertySymbols;\nvar __hasOwnProp$2 = Object.prototype.hasOwnProperty;\nvar __propIsEnum$2 = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$2 = (obj, key, value) => key in obj ? __defProp$2(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$2 = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$2.call(b, prop))\n __defNormalProp$2(a, prop, b[prop]);\n if (__getOwnPropSymbols$2)\n for (var prop of __getOwnPropSymbols$2(b)) {\n if (__propIsEnum$2.call(b, prop))\n __defNormalProp$2(a, prop, b[prop]);\n }\n return a;\n};\nvar __objRest = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp$2.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols$2)\n for (var prop of __getOwnPropSymbols$2(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum$2.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\nconst DEFAULT_UNITS = [\n { max: 6e4, value: 1e3, name: \"second\" },\n { max: 276e4, value: 6e4, name: \"minute\" },\n { max: 72e6, value: 36e5, name: \"hour\" },\n { max: 5184e5, value: 864e5, name: \"day\" },\n { max: 24192e5, value: 6048e5, name: \"week\" },\n { max: 28512e6, value: 2592e6, name: \"month\" },\n { max: Infinity, value: 31536e6, name: \"year\" }\n];\nconst DEFAULT_MESSAGES = {\n justNow: \"just now\",\n past: (n) => n.match(/\\d/) ? `${n} ago` : n,\n future: (n) => n.match(/\\d/) ? `in ${n}` : n,\n month: (n, past) => n === 1 ? past ? \"last month\" : \"next month\" : `${n} month${n > 1 ? \"s\" : \"\"}`,\n year: (n, past) => n === 1 ? past ? \"last year\" : \"next year\" : `${n} year${n > 1 ? \"s\" : \"\"}`,\n day: (n, past) => n === 1 ? past ? \"yesterday\" : \"tomorrow\" : `${n} day${n > 1 ? \"s\" : \"\"}`,\n week: (n, past) => n === 1 ? past ? \"last week\" : \"next week\" : `${n} week${n > 1 ? \"s\" : \"\"}`,\n hour: (n) => `${n} hour${n > 1 ? \"s\" : \"\"}`,\n minute: (n) => `${n} minute${n > 1 ? \"s\" : \"\"}`,\n second: (n) => `${n} second${n > 1 ? \"s\" : \"\"}`,\n invalid: \"\"\n};\nconst DEFAULT_FORMATTER = (date) => date.toISOString().slice(0, 10);\nfunction useTimeAgo(time, options = {}) {\n const {\n controls: exposeControls = false,\n updateInterval = 3e4\n } = options;\n const _a = useNow({ interval: updateInterval, controls: true }), { now } = _a, controls = __objRest(_a, [\"now\"]);\n const timeAgo = computed(() => formatTimeAgo(new Date(resolveUnref(time)), options, unref(now.value)));\n if (exposeControls) {\n return __spreadValues$2({\n timeAgo\n }, controls);\n } else {\n return timeAgo;\n }\n}\nfunction formatTimeAgo(from, options = {}, now = Date.now()) {\n var _a;\n const {\n max,\n messages = DEFAULT_MESSAGES,\n fullDateFormatter = DEFAULT_FORMATTER,\n units = DEFAULT_UNITS,\n showSecond = false,\n rounding = \"round\"\n } = options;\n const roundFn = typeof rounding === \"number\" ? (n) => +n.toFixed(rounding) : Math[rounding];\n const diff = +now - +from;\n const absDiff = Math.abs(diff);\n function getValue(diff2, unit) {\n return roundFn(Math.abs(diff2) / unit.value);\n }\n function format(diff2, unit) {\n const val = getValue(diff2, unit);\n const past = diff2 > 0;\n const str = applyFormat(unit.name, val, past);\n return applyFormat(past ? \"past\" : \"future\", str, past);\n }\n function applyFormat(name, val, isPast) {\n const formatter = messages[name];\n if (typeof formatter === \"function\")\n return formatter(val, isPast);\n return formatter.replace(\"{0}\", val.toString());\n }\n if (absDiff < 6e4 && !showSecond)\n return messages.justNow;\n if (typeof max === \"number\" && absDiff > max)\n return fullDateFormatter(new Date(from));\n if (typeof max === \"string\") {\n const unitMax = (_a = units.find((i) => i.name === max)) == null ? void 0 : _a.max;\n if (unitMax && absDiff > unitMax)\n return fullDateFormatter(new Date(from));\n }\n for (const [idx, unit] of units.entries()) {\n const val = getValue(diff, unit);\n if (val <= 0 && units[idx - 1])\n return format(diff, units[idx - 1]);\n if (absDiff < unit.max)\n return format(diff, unit);\n }\n return messages.invalid;\n}\n\nfunction useTimeoutPoll(fn, interval, timeoutPollOptions) {\n const { start } = useTimeoutFn(loop, interval);\n const isActive = ref(false);\n async function loop() {\n if (!isActive.value)\n return;\n await fn();\n start();\n }\n function resume() {\n if (!isActive.value) {\n isActive.value = true;\n loop();\n }\n }\n function pause() {\n isActive.value = false;\n }\n if (timeoutPollOptions == null ? void 0 : timeoutPollOptions.immediate)\n resume();\n tryOnScopeDispose(pause);\n return {\n isActive,\n pause,\n resume\n };\n}\n\nvar __defProp$1 = Object.defineProperty;\nvar __getOwnPropSymbols$1 = Object.getOwnPropertySymbols;\nvar __hasOwnProp$1 = Object.prototype.hasOwnProperty;\nvar __propIsEnum$1 = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$1 = (obj, key, value) => key in obj ? __defProp$1(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$1 = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$1.call(b, prop))\n __defNormalProp$1(a, prop, b[prop]);\n if (__getOwnPropSymbols$1)\n for (var prop of __getOwnPropSymbols$1(b)) {\n if (__propIsEnum$1.call(b, prop))\n __defNormalProp$1(a, prop, b[prop]);\n }\n return a;\n};\nfunction useTimestamp(options = {}) {\n const {\n controls: exposeControls = false,\n offset = 0,\n immediate = true,\n interval = \"requestAnimationFrame\",\n callback\n } = options;\n const ts = ref(timestamp() + offset);\n const update = () => ts.value = timestamp() + offset;\n const cb = callback ? () => {\n update();\n callback(ts.value);\n } : update;\n const controls = interval === \"requestAnimationFrame\" ? useRafFn(cb, { immediate }) : useIntervalFn(cb, interval, { immediate });\n if (exposeControls) {\n return __spreadValues$1({\n timestamp: ts\n }, controls);\n } else {\n return ts;\n }\n}\n\nfunction useTitle(newTitle = null, options = {}) {\n var _a, _b;\n const {\n document = defaultDocument\n } = options;\n const title = resolveRef((_a = newTitle != null ? newTitle : document == null ? void 0 : document.title) != null ? _a : null);\n const isReadonly = newTitle && isFunction(newTitle);\n function format(t) {\n if (!(\"titleTemplate\" in options))\n return t;\n const template = options.titleTemplate || \"%s\";\n return isFunction(template) ? template(t) : unref(template).replace(/%s/g, t);\n }\n watch(title, (t, o) => {\n if (t !== o && document)\n document.title = format(isString(t) ? t : \"\");\n }, { immediate: true });\n if (options.observe && !options.titleTemplate && document && !isReadonly) {\n useMutationObserver((_b = document.head) == null ? void 0 : _b.querySelector(\"title\"), () => {\n if (document && document.title !== title.value)\n title.value = format(document.title);\n }, { childList: true });\n }\n return title;\n}\n\nvar __defProp = Object.defineProperty;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nconst _TransitionPresets = {\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};\nconst TransitionPresets = __spreadValues({\n linear: identity\n}, _TransitionPresets);\nfunction createEasingFunction([p0, p1, p2, p3]) {\n const a = (a1, a2) => 1 - 3 * a2 + 3 * a1;\n const b = (a1, a2) => 3 * a2 - 6 * a1;\n const c = (a1) => 3 * a1;\n const calcBezier = (t, a1, a2) => ((a(a1, a2) * t + b(a1, a2)) * t + c(a1)) * t;\n const getSlope = (t, a1, a2) => 3 * a(a1, a2) * t * t + 2 * b(a1, a2) * t + c(a1);\n const getTforX = (x) => {\n let aGuessT = x;\n for (let i = 0; i < 4; ++i) {\n const currentSlope = getSlope(aGuessT, p0, p2);\n if (currentSlope === 0)\n return aGuessT;\n const currentX = calcBezier(aGuessT, p0, p2) - x;\n aGuessT -= currentX / currentSlope;\n }\n return aGuessT;\n };\n return (x) => p0 === p1 && p2 === p3 ? x : calcBezier(getTforX(x), p1, p3);\n}\nfunction useTransition(source, options = {}) {\n const {\n delay = 0,\n disabled = false,\n duration = 1e3,\n onFinished = noop,\n onStarted = noop,\n transition = identity\n } = options;\n const currentTransition = computed(() => {\n const t = unref(transition);\n return isFunction(t) ? t : createEasingFunction(t);\n });\n const sourceValue = computed(() => {\n const s = unref(source);\n return isNumber(s) ? s : s.map(unref);\n });\n const sourceVector = computed(() => isNumber(sourceValue.value) ? [sourceValue.value] : sourceValue.value);\n const outputVector = ref(sourceVector.value.slice(0));\n let currentDuration;\n let diffVector;\n let endAt;\n let startAt;\n let startVector;\n const { resume, pause } = useRafFn(() => {\n const now = Date.now();\n const progress = clamp(1 - (endAt - now) / currentDuration, 0, 1);\n outputVector.value = startVector.map((val, i) => {\n var _a;\n return val + ((_a = diffVector[i]) != null ? _a : 0) * currentTransition.value(progress);\n });\n if (progress >= 1) {\n pause();\n onFinished();\n }\n }, { immediate: false });\n const start = () => {\n pause();\n currentDuration = unref(duration);\n diffVector = outputVector.value.map((n, i) => {\n var _a, _b;\n return ((_a = sourceVector.value[i]) != null ? _a : 0) - ((_b = outputVector.value[i]) != null ? _b : 0);\n });\n startVector = outputVector.value.slice(0);\n startAt = Date.now();\n endAt = startAt + currentDuration;\n resume();\n onStarted();\n };\n const timeout = useTimeoutFn(start, delay, { immediate: false });\n watch(sourceVector, () => {\n if (unref(disabled))\n return;\n if (unref(delay) <= 0)\n start();\n else\n timeout.start();\n }, { deep: true });\n watch(() => unref(disabled), (v) => {\n if (v) {\n outputVector.value = sourceVector.value.slice(0);\n pause();\n }\n });\n return computed(() => {\n const targetVector = unref(disabled) ? sourceVector : outputVector;\n return isNumber(sourceValue.value) ? targetVector.value[0] : targetVector.value;\n });\n}\n\nfunction useUrlSearchParams(mode = \"history\", options = {}) {\n const {\n initialValue = {},\n removeNullishValues = true,\n removeFalsyValues = false,\n write: enableWrite = true,\n window = defaultWindow\n } = options;\n if (!window)\n return reactive(initialValue);\n const state = reactive({});\n function getRawParams() {\n if (mode === \"history\") {\n return window.location.search || \"\";\n } else if (mode === \"hash\") {\n const hash = window.location.hash || \"\";\n const index = hash.indexOf(\"?\");\n return index > 0 ? hash.slice(index) : \"\";\n } else {\n return (window.location.hash || \"\").replace(/^#/, \"\");\n }\n }\n function constructQuery(params) {\n const stringified = params.toString();\n if (mode === \"history\")\n return `${stringified ? `?${stringified}` : \"\"}${window.location.hash || \"\"}`;\n if (mode === \"hash-params\")\n return `${window.location.search || \"\"}${stringified ? `#${stringified}` : \"\"}`;\n const hash = window.location.hash || \"#\";\n const index = hash.indexOf(\"?\");\n if (index > 0)\n return `${hash.slice(0, index)}${stringified ? `?${stringified}` : \"\"}`;\n return `${hash}${stringified ? `?${stringified}` : \"\"}`;\n }\n function read() {\n return new URLSearchParams(getRawParams());\n }\n function updateState(params) {\n const unusedKeys = new Set(Object.keys(state));\n for (const key of params.keys()) {\n const paramsForKey = params.getAll(key);\n state[key] = paramsForKey.length > 1 ? paramsForKey : params.get(key) || \"\";\n unusedKeys.delete(key);\n }\n Array.from(unusedKeys).forEach((key) => delete state[key]);\n }\n const { pause, resume } = pausableWatch(state, () => {\n const params = new URLSearchParams(\"\");\n Object.keys(state).forEach((key) => {\n const mapEntry = state[key];\n if (Array.isArray(mapEntry))\n mapEntry.forEach((value) => params.append(key, value));\n else if (removeNullishValues && mapEntry == null)\n params.delete(key);\n else if (removeFalsyValues && !mapEntry)\n params.delete(key);\n else\n params.set(key, mapEntry);\n });\n write(params);\n }, { deep: true });\n function write(params, shouldUpdate) {\n pause();\n if (shouldUpdate)\n updateState(params);\n window.history.replaceState(window.history.state, window.document.title, window.location.pathname + constructQuery(params));\n resume();\n }\n function onChanged() {\n if (!enableWrite)\n return;\n write(read(), true);\n }\n useEventListener(window, \"popstate\", onChanged, false);\n if (mode !== \"history\")\n useEventListener(window, \"hashchange\", onChanged, false);\n const initial = read();\n if (initial.keys().next().value)\n updateState(initial);\n else\n Object.assign(state, initialValue);\n return state;\n}\n\nfunction useUserMedia(options = {}) {\n var _a, _b;\n const enabled = ref((_a = options.enabled) != null ? _a : false);\n const autoSwitch = ref((_b = options.autoSwitch) != null ? _b : true);\n const videoDeviceId = ref(options.videoDeviceId);\n const audioDeviceId = ref(options.audioDeviceId);\n const { navigator = defaultNavigator } = options;\n const isSupported = useSupported(() => {\n var _a2;\n return (_a2 = navigator == null ? void 0 : navigator.mediaDevices) == null ? void 0 : _a2.getUserMedia;\n });\n const stream = shallowRef();\n function getDeviceOptions(device) {\n if (device.value === \"none\" || device.value === false)\n return false;\n if (device.value == null)\n return true;\n return {\n deviceId: device.value\n };\n }\n async function _start() {\n if (!isSupported.value || stream.value)\n return;\n stream.value = await navigator.mediaDevices.getUserMedia({\n video: getDeviceOptions(videoDeviceId),\n audio: getDeviceOptions(audioDeviceId)\n });\n return stream.value;\n }\n async function _stop() {\n var _a2;\n (_a2 = stream.value) == null ? void 0 : _a2.getTracks().forEach((t) => t.stop());\n stream.value = void 0;\n }\n function stop() {\n _stop();\n enabled.value = false;\n }\n async function start() {\n await _start();\n if (stream.value)\n enabled.value = true;\n return stream.value;\n }\n async function restart() {\n _stop();\n return await start();\n }\n watch(enabled, (v) => {\n if (v)\n _start();\n else\n _stop();\n }, { immediate: true });\n watch([videoDeviceId, audioDeviceId], () => {\n if (autoSwitch.value && stream.value)\n restart();\n }, { immediate: true });\n return {\n isSupported,\n stream,\n start,\n stop,\n restart,\n videoDeviceId,\n audioDeviceId,\n enabled,\n autoSwitch\n };\n}\n\nfunction useVModel(props, key, emit, options = {}) {\n var _a, _b, _c, _d, _e;\n const {\n clone = false,\n passive = false,\n eventName,\n deep = false,\n defaultValue\n } = options;\n const vm = getCurrentInstance();\n const _emit = emit || (vm == null ? void 0 : vm.emit) || ((_a = vm == null ? void 0 : vm.$emit) == null ? void 0 : _a.bind(vm)) || ((_c = (_b = vm == null ? void 0 : vm.proxy) == null ? void 0 : _b.$emit) == null ? void 0 : _c.bind(vm == null ? void 0 : vm.proxy));\n let event = eventName;\n if (!key) {\n if (isVue2) {\n const modelOptions = (_e = (_d = vm == null ? void 0 : vm.proxy) == null ? void 0 : _d.$options) == null ? void 0 : _e.model;\n key = (modelOptions == null ? void 0 : modelOptions.value) || \"value\";\n if (!eventName)\n event = (modelOptions == null ? void 0 : modelOptions.event) || \"input\";\n } else {\n key = \"modelValue\";\n }\n }\n event = eventName || event || `update:${key.toString()}`;\n const cloneFn = (val) => !clone ? val : isFunction(clone) ? clone(val) : cloneFnJSON(val);\n const getValue = () => isDef(props[key]) ? cloneFn(props[key]) : defaultValue;\n if (passive) {\n const initialValue = getValue();\n const proxy = ref(initialValue);\n watch(() => props[key], (v) => proxy.value = cloneFn(v));\n watch(proxy, (v) => {\n if (v !== props[key] || deep)\n _emit(event, v);\n }, { deep });\n return proxy;\n } else {\n return computed({\n get() {\n return getValue();\n },\n set(value) {\n _emit(event, value);\n }\n });\n }\n}\n\nfunction useVModels(props, emit, options = {}) {\n const ret = {};\n for (const key in props)\n ret[key] = useVModel(props, key, emit, options);\n return ret;\n}\n\nfunction useVibrate(options) {\n const {\n pattern = [],\n interval = 0,\n navigator = defaultNavigator\n } = options || {};\n const isSupported = useSupported(() => typeof navigator !== \"undefined\" && \"vibrate\" in navigator);\n const patternRef = resolveRef(pattern);\n let intervalControls;\n const vibrate = (pattern2 = patternRef.value) => {\n if (isSupported.value)\n navigator.vibrate(pattern2);\n };\n const stop = () => {\n if (isSupported.value)\n navigator.vibrate(0);\n intervalControls == null ? void 0 : intervalControls.pause();\n };\n if (interval > 0) {\n intervalControls = useIntervalFn(vibrate, interval, {\n immediate: false,\n immediateCallback: false\n });\n }\n return {\n isSupported,\n pattern,\n intervalControls,\n vibrate,\n stop\n };\n}\n\nfunction useVirtualList(list, options) {\n const { containerStyle, wrapperProps, scrollTo, calculateRange, currentList, containerRef } = \"itemHeight\" in options ? useVerticalVirtualList(options, list) : useHorizontalVirtualList(options, list);\n return {\n list: currentList,\n scrollTo,\n containerProps: {\n ref: containerRef,\n onScroll: () => {\n calculateRange();\n },\n style: containerStyle\n },\n wrapperProps\n };\n}\nfunction useVirtualListResources(list) {\n const containerRef = ref(null);\n const size = useElementSize(containerRef);\n const currentList = ref([]);\n const source = shallowRef(list);\n const state = ref({ start: 0, end: 10 });\n return { state, source, currentList, size, containerRef };\n}\nfunction createGetViewCapacity(state, source, itemSize) {\n return (containerSize) => {\n if (typeof itemSize === \"number\")\n return Math.ceil(containerSize / itemSize);\n const { start = 0 } = state.value;\n let sum = 0;\n let capacity = 0;\n for (let i = start; i < source.value.length; i++) {\n const size = itemSize(i);\n sum += size;\n capacity = i;\n if (sum > containerSize)\n break;\n }\n return capacity - start;\n };\n}\nfunction createGetOffset(source, itemSize) {\n return (scrollDirection) => {\n if (typeof itemSize === \"number\")\n return Math.floor(scrollDirection / itemSize) + 1;\n let sum = 0;\n let offset = 0;\n for (let i = 0; i < source.value.length; i++) {\n const size = itemSize(i);\n sum += size;\n if (sum >= scrollDirection) {\n offset = i;\n break;\n }\n }\n return offset + 1;\n };\n}\nfunction createCalculateRange(type, overscan, getOffset, getViewCapacity, { containerRef, state, currentList, source }) {\n return () => {\n const element = containerRef.value;\n if (element) {\n const offset = getOffset(type === \"vertical\" ? element.scrollTop : element.scrollLeft);\n const viewCapacity = getViewCapacity(type === \"vertical\" ? element.clientHeight : element.clientWidth);\n const from = offset - overscan;\n const to = offset + viewCapacity + overscan;\n state.value = {\n start: from < 0 ? 0 : from,\n end: to > source.value.length ? source.value.length : to\n };\n currentList.value = source.value.slice(state.value.start, state.value.end).map((ele, index) => ({\n data: ele,\n index: index + state.value.start\n }));\n }\n };\n}\nfunction createGetDistance(itemSize, source) {\n return (index) => {\n if (typeof itemSize === \"number\") {\n const size2 = index * itemSize;\n return size2;\n }\n const size = source.value.slice(0, index).reduce((sum, _, i) => sum + itemSize(i), 0);\n return size;\n };\n}\nfunction useWatchForSizes(size, list, calculateRange) {\n watch([size.width, size.height, list], () => {\n calculateRange();\n });\n}\nfunction createComputedTotalSize(itemSize, source) {\n return computed(() => {\n if (typeof itemSize === \"number\")\n return source.value.length * itemSize;\n return source.value.reduce((sum, _, index) => sum + itemSize(index), 0);\n });\n}\nconst scrollToDictionaryForElementScrollKey = {\n horizontal: \"scrollLeft\",\n vertical: \"scrollTop\"\n};\nfunction createScrollTo(type, calculateRange, getDistance, containerRef) {\n return (index) => {\n if (containerRef.value) {\n containerRef.value[scrollToDictionaryForElementScrollKey[type]] = getDistance(index);\n calculateRange();\n }\n };\n}\nfunction useHorizontalVirtualList(options, list) {\n const resources = useVirtualListResources(list);\n const { state, source, currentList, size, containerRef } = resources;\n const containerStyle = { overflowX: \"auto\" };\n const { itemWidth, overscan = 5 } = options;\n const getViewCapacity = createGetViewCapacity(state, source, itemWidth);\n const getOffset = createGetOffset(source, itemWidth);\n const calculateRange = createCalculateRange(\"horizontal\", overscan, getOffset, getViewCapacity, resources);\n const getDistanceLeft = createGetDistance(itemWidth, source);\n const offsetLeft = computed(() => getDistanceLeft(state.value.start));\n const totalWidth = createComputedTotalSize(itemWidth, source);\n useWatchForSizes(size, list, calculateRange);\n const scrollTo = createScrollTo(\"horizontal\", calculateRange, getDistanceLeft, containerRef);\n const wrapperProps = computed(() => {\n return {\n style: {\n height: \"100%\",\n width: `${totalWidth.value - offsetLeft.value}px`,\n marginLeft: `${offsetLeft.value}px`,\n display: \"flex\"\n }\n };\n });\n return {\n scrollTo,\n calculateRange,\n wrapperProps,\n containerStyle,\n currentList,\n containerRef\n };\n}\nfunction useVerticalVirtualList(options, list) {\n const resources = useVirtualListResources(list);\n const { state, source, currentList, size, containerRef } = resources;\n const containerStyle = { overflowY: \"auto\" };\n const { itemHeight, overscan = 5 } = options;\n const getViewCapacity = createGetViewCapacity(state, source, itemHeight);\n const getOffset = createGetOffset(source, itemHeight);\n const calculateRange = createCalculateRange(\"vertical\", overscan, getOffset, getViewCapacity, resources);\n const getDistanceTop = createGetDistance(itemHeight, source);\n const offsetTop = computed(() => getDistanceTop(state.value.start));\n const totalHeight = createComputedTotalSize(itemHeight, source);\n useWatchForSizes(size, list, calculateRange);\n const scrollTo = createScrollTo(\"vertical\", calculateRange, getDistanceTop, containerRef);\n const wrapperProps = computed(() => {\n return {\n style: {\n width: \"100%\",\n height: `${totalHeight.value - offsetTop.value}px`,\n marginTop: `${offsetTop.value}px`\n }\n };\n });\n return {\n calculateRange,\n scrollTo,\n containerStyle,\n wrapperProps,\n currentList,\n containerRef\n };\n}\n\nconst useWakeLock = (options = {}) => {\n const {\n navigator = defaultNavigator,\n document = defaultDocument\n } = options;\n let wakeLock;\n const isSupported = useSupported(() => navigator && \"wakeLock\" in navigator);\n const isActive = ref(false);\n async function onVisibilityChange() {\n if (!isSupported.value || !wakeLock)\n return;\n if (document && document.visibilityState === \"visible\")\n wakeLock = await navigator.wakeLock.request(\"screen\");\n isActive.value = !wakeLock.released;\n }\n if (document)\n useEventListener(document, \"visibilitychange\", onVisibilityChange, { passive: true });\n async function request(type) {\n if (!isSupported.value)\n return;\n wakeLock = await navigator.wakeLock.request(type);\n isActive.value = !wakeLock.released;\n }\n async function release() {\n if (!isSupported.value || !wakeLock)\n return;\n await wakeLock.release();\n isActive.value = !wakeLock.released;\n wakeLock = null;\n }\n return {\n isSupported,\n isActive,\n request,\n release\n };\n};\n\nconst useWebNotification = (defaultOptions = {}) => {\n const {\n window = defaultWindow\n } = defaultOptions;\n const isSupported = useSupported(() => !!window && \"Notification\" in window);\n const notification = ref(null);\n const requestPermission = async () => {\n if (!isSupported.value)\n return;\n if (\"permission\" in Notification && Notification.permission !== \"denied\")\n await Notification.requestPermission();\n };\n const onClick = createEventHook();\n const onShow = createEventHook();\n const onError = createEventHook();\n const onClose = createEventHook();\n const show = async (overrides) => {\n if (!isSupported.value)\n return;\n await requestPermission();\n const options = Object.assign({}, defaultOptions, overrides);\n notification.value = new Notification(options.title || \"\", options);\n notification.value.onclick = (event) => onClick.trigger(event);\n notification.value.onshow = (event) => onShow.trigger(event);\n notification.value.onerror = (event) => onError.trigger(event);\n notification.value.onclose = (event) => onClose.trigger(event);\n return notification.value;\n };\n const close = () => {\n if (notification.value)\n notification.value.close();\n notification.value = null;\n };\n tryOnMounted(async () => {\n if (isSupported.value)\n await requestPermission();\n });\n tryOnScopeDispose(close);\n if (isSupported.value && window) {\n const document = window.document;\n useEventListener(document, \"visibilitychange\", (e) => {\n e.preventDefault();\n if (document.visibilityState === \"visible\") {\n close();\n }\n });\n }\n return {\n isSupported,\n notification,\n show,\n close,\n onClick,\n onShow,\n onError,\n onClose\n };\n};\n\nconst DEFAULT_PING_MESSAGE = \"ping\";\nfunction resolveNestedOptions(options) {\n if (options === true)\n return {};\n return options;\n}\nfunction useWebSocket(url, options = {}) {\n const {\n onConnected,\n onDisconnected,\n onError,\n onMessage,\n immediate = true,\n autoClose = true,\n protocols = []\n } = options;\n const data = ref(null);\n const status = ref(\"CLOSED\");\n const wsRef = ref();\n const urlRef = resolveRef(url);\n let heartbeatPause;\n let heartbeatResume;\n let explicitlyClosed = false;\n let retried = 0;\n let bufferedData = [];\n let pongTimeoutWait;\n const close = (code = 1e3, reason) => {\n if (!wsRef.value)\n return;\n explicitlyClosed = true;\n heartbeatPause == null ? void 0 : heartbeatPause();\n wsRef.value.close(code, reason);\n };\n const _sendBuffer = () => {\n if (bufferedData.length && wsRef.value && status.value === \"OPEN\") {\n for (const buffer of bufferedData)\n wsRef.value.send(buffer);\n bufferedData = [];\n }\n };\n const resetHeartbeat = () => {\n clearTimeout(pongTimeoutWait);\n pongTimeoutWait = void 0;\n };\n const send = (data2, useBuffer = true) => {\n if (!wsRef.value || status.value !== \"OPEN\") {\n if (useBuffer)\n bufferedData.push(data2);\n return false;\n }\n _sendBuffer();\n wsRef.value.send(data2);\n return true;\n };\n const _init = () => {\n if (explicitlyClosed || typeof urlRef.value === \"undefined\")\n return;\n const ws = new WebSocket(urlRef.value, protocols);\n wsRef.value = ws;\n status.value = \"CONNECTING\";\n ws.onopen = () => {\n status.value = \"OPEN\";\n onConnected == null ? void 0 : onConnected(ws);\n heartbeatResume == null ? void 0 : heartbeatResume();\n _sendBuffer();\n };\n ws.onclose = (ev) => {\n status.value = \"CLOSED\";\n wsRef.value = void 0;\n onDisconnected == null ? void 0 : onDisconnected(ws, ev);\n if (!explicitlyClosed && options.autoReconnect) {\n const {\n retries = -1,\n delay = 1e3,\n onFailed\n } = resolveNestedOptions(options.autoReconnect);\n retried += 1;\n if (typeof retries === \"number\" && (retries < 0 || retried < retries))\n setTimeout(_init, delay);\n else if (typeof retries === \"function\" && retries())\n setTimeout(_init, delay);\n else\n onFailed == null ? void 0 : onFailed();\n }\n };\n ws.onerror = (e) => {\n onError == null ? void 0 : onError(ws, e);\n };\n ws.onmessage = (e) => {\n if (options.heartbeat) {\n resetHeartbeat();\n const {\n message = DEFAULT_PING_MESSAGE\n } = resolveNestedOptions(options.heartbeat);\n if (e.data === message)\n return;\n }\n data.value = e.data;\n onMessage == null ? void 0 : onMessage(ws, e);\n };\n };\n if (options.heartbeat) {\n const {\n message = DEFAULT_PING_MESSAGE,\n interval = 1e3,\n pongTimeout = 1e3\n } = resolveNestedOptions(options.heartbeat);\n const { pause, resume } = useIntervalFn(() => {\n send(message, false);\n if (pongTimeoutWait != null)\n return;\n pongTimeoutWait = setTimeout(() => {\n close();\n }, pongTimeout);\n }, interval, { immediate: false });\n heartbeatPause = pause;\n heartbeatResume = resume;\n }\n if (autoClose) {\n useEventListener(window, \"beforeunload\", () => close());\n tryOnScopeDispose(close);\n }\n const open = () => {\n close();\n explicitlyClosed = false;\n retried = 0;\n _init();\n };\n if (immediate)\n watch(urlRef, open, { immediate: true });\n return {\n data,\n status,\n close,\n send,\n open,\n ws: wsRef\n };\n}\n\nfunction useWebWorker(arg0, workerOptions, options) {\n const {\n window = defaultWindow\n } = options != null ? options : {};\n const data = ref(null);\n const worker = shallowRef();\n const post = function post2(val) {\n if (!worker.value)\n return;\n worker.value.postMessage(val);\n };\n const terminate = function terminate2() {\n if (!worker.value)\n return;\n worker.value.terminate();\n };\n if (window) {\n if (isString(arg0))\n worker.value = new Worker(arg0, workerOptions);\n else if (isFunction(arg0))\n worker.value = arg0();\n else\n worker.value = arg0;\n worker.value.onmessage = (e) => {\n data.value = e.data;\n };\n tryOnScopeDispose(() => {\n if (worker.value)\n worker.value.terminate();\n });\n }\n return {\n data,\n post,\n terminate,\n worker\n };\n}\n\nconst jobRunner = (userFunc) => (e) => {\n const userFuncArgs = e.data[0];\n return Promise.resolve(userFunc.apply(void 0, userFuncArgs)).then((result) => {\n postMessage([\"SUCCESS\", result]);\n }).catch((error) => {\n postMessage([\"ERROR\", error]);\n });\n};\n\nconst depsParser = (deps) => {\n if (deps.length === 0)\n return \"\";\n const depsString = deps.map((dep) => `'${dep}'`).toString();\n return `importScripts(${depsString})`;\n};\n\nconst createWorkerBlobUrl = (fn, deps) => {\n const blobCode = `${depsParser(deps)}; onmessage=(${jobRunner})(${fn})`;\n const blob = new Blob([blobCode], { type: \"text/javascript\" });\n const url = URL.createObjectURL(blob);\n return url;\n};\n\nconst useWebWorkerFn = (fn, options = {}) => {\n const {\n dependencies = [],\n timeout,\n window = defaultWindow\n } = options;\n const worker = ref();\n const workerStatus = ref(\"PENDING\");\n const promise = ref({});\n const timeoutId = ref();\n const workerTerminate = (status = \"PENDING\") => {\n if (worker.value && worker.value._url && window) {\n worker.value.terminate();\n URL.revokeObjectURL(worker.value._url);\n promise.value = {};\n worker.value = void 0;\n window.clearTimeout(timeoutId.value);\n workerStatus.value = status;\n }\n };\n workerTerminate();\n tryOnScopeDispose(workerTerminate);\n const generateWorker = () => {\n const blobUrl = createWorkerBlobUrl(fn, dependencies);\n const newWorker = new Worker(blobUrl);\n newWorker._url = blobUrl;\n newWorker.onmessage = (e) => {\n const { resolve = () => {\n }, reject = () => {\n } } = promise.value;\n const [status, result] = e.data;\n switch (status) {\n case \"SUCCESS\":\n resolve(result);\n workerTerminate(status);\n break;\n default:\n reject(result);\n workerTerminate(\"ERROR\");\n break;\n }\n };\n newWorker.onerror = (e) => {\n const { reject = () => {\n } } = promise.value;\n reject(e);\n workerTerminate(\"ERROR\");\n };\n if (timeout) {\n timeoutId.value = setTimeout(() => workerTerminate(\"TIMEOUT_EXPIRED\"), timeout);\n }\n return newWorker;\n };\n const callWorker = (...fnArgs) => new Promise((resolve, reject) => {\n promise.value = {\n resolve,\n reject\n };\n worker.value && worker.value.postMessage([[...fnArgs]]);\n workerStatus.value = \"RUNNING\";\n });\n const workerFn = (...fnArgs) => {\n if (workerStatus.value === \"RUNNING\") {\n console.error(\"[useWebWorkerFn] You can only run one instance of the worker at a time.\");\n return Promise.reject();\n }\n worker.value = generateWorker();\n return callWorker(...fnArgs);\n };\n return {\n workerFn,\n workerStatus,\n workerTerminate\n };\n};\n\nfunction useWindowFocus({ window = defaultWindow } = {}) {\n if (!window)\n return ref(false);\n const focused = ref(window.document.hasFocus());\n useEventListener(window, \"blur\", () => {\n focused.value = false;\n });\n useEventListener(window, \"focus\", () => {\n focused.value = true;\n });\n return focused;\n}\n\nfunction useWindowScroll({ window = defaultWindow } = {}) {\n if (!window) {\n return {\n x: ref(0),\n y: ref(0)\n };\n }\n const x = ref(window.scrollX);\n const y = ref(window.scrollY);\n useEventListener(window, \"scroll\", () => {\n x.value = window.scrollX;\n y.value = window.scrollY;\n }, {\n capture: false,\n passive: true\n });\n return { x, y };\n}\n\nfunction useWindowSize(options = {}) {\n const {\n window = defaultWindow,\n initialWidth = Infinity,\n initialHeight = Infinity,\n listenOrientation = true,\n includeScrollbar = true\n } = options;\n const width = ref(initialWidth);\n const height = ref(initialHeight);\n const update = () => {\n if (window) {\n if (includeScrollbar) {\n width.value = window.innerWidth;\n height.value = window.innerHeight;\n } else {\n width.value = window.document.documentElement.clientWidth;\n height.value = window.document.documentElement.clientHeight;\n }\n }\n };\n update();\n tryOnMounted(update);\n useEventListener(\"resize\", update, { passive: true });\n if (listenOrientation)\n useEventListener(\"orientationchange\", update, { passive: true });\n return { width, height };\n}\n\nexport { DefaultMagicKeysAliasMap, StorageSerializers, SwipeDirection, TransitionPresets, computedAsync as asyncComputed, breakpointsAntDesign, breakpointsBootstrapV5, breakpointsMasterCss, breakpointsQuasar, breakpointsSematic, breakpointsTailwind, breakpointsVuetify, cloneFnJSON, computedAsync, computedInject, createFetch, createUnrefFn, customStorageEventName, defaultDocument, defaultLocation, defaultNavigator, defaultWindow, formatTimeAgo, getSSRHandler, mapGamepadToXbox360Controller, onClickOutside, onKeyDown, onKeyPressed, onKeyStroke, onKeyUp, onLongPress, onStartTyping, setSSRHandler, templateRef, unrefElement, useActiveElement, useAsyncQueue, useAsyncState, useBase64, useBattery, useBluetooth, useBreakpoints, useBroadcastChannel, useBrowserLocation, useCached, useClipboard, useCloned, useColorMode, useConfirmDialog, useCssVar, useCurrentElement, useCycleList, useDark, useDebouncedRefHistory, useDeviceMotion, useDeviceOrientation, useDevicePixelRatio, useDevicesList, useDisplayMedia, useDocumentVisibility, useDraggable, useDropZone, useElementBounding, useElementByPoint, useElementHover, useElementSize, useElementVisibility, useEventBus, useEventListener, useEventSource, useEyeDropper, useFavicon, useFetch, useFileDialog, useFileSystemAccess, useFocus, useFocusWithin, useFps, useFullscreen, useGamepad, useGeolocation, useIdle, useImage, useInfiniteScroll, useIntersectionObserver, useKeyModifier, useLocalStorage, useMagicKeys, useManualRefHistory, useMediaControls, useMediaQuery, useMemoize, useMemory, useMounted, useMouse, useMouseInElement, useMousePressed, useMutationObserver, useNavigatorLanguage, useNetwork, useNow, useObjectUrl, useOffsetPagination, useOnline, usePageLeave, useParallax, usePermission, usePointer, usePointerLock, usePointerSwipe, usePreferredColorScheme, usePreferredContrast, usePreferredDark, usePreferredLanguages, usePreferredReducedMotion, usePrevious, useRafFn, useRefHistory, useResizeObserver, useScreenOrientation, useScreenSafeArea, useScriptTag, useScroll, useScrollLock, useSessionStorage, useShare, useSorted, useSpeechRecognition, useSpeechSynthesis, useStepper, useStorage, useStorageAsync, useStyleTag, useSupported, useSwipe, useTemplateRefsList, useTextDirection, useTextSelection, useTextareaAutosize, useThrottledRefHistory, useTimeAgo, useTimeoutPoll, useTimestamp, useTitle, useTransition, useUrlSearchParams, useUserMedia, useVModel, useVModels, useVibrate, useVirtualList, useWakeLock, useWebNotification, useWebSocket, useWebWorker, useWebWorkerFn, useWindowFocus, useWindowScroll, useWindowSize };\n","import { onMounted, onBeforeUnmount } from 'vue'\nimport { useElementVisibility } from '@vueuse/core'\n\nimport type { KeyboardNavigationOptions, KeypressHandlers } from 'types'\n\n// helper functions\nconst isVisible = (element: HTMLElement) => {\n\tlet isVisible = useElementVisibility(element).value\n\tisVisible = isVisible && element.offsetHeight > 0\n\treturn isVisible\n}\n\nconst isFocusable = (element: HTMLElement) => {\n\treturn element.tabIndex >= 0\n}\n\n// navigation functions\nconst getUpCell = (event: KeyboardEvent) => {\n\tconst $target = event.target as HTMLElement\n\treturn _getUpCell($target)\n}\n\nconst _getUpCell = (element: HTMLElement): HTMLElement | undefined => {\n\tlet $upCell: HTMLElement | undefined\n\tif (element instanceof HTMLTableCellElement) {\n\t\tconst $prevRow = element.parentElement?.previousElementSibling as HTMLTableRowElement\n\t\tif ($prevRow) {\n\t\t\tconst $prevRowCells = Array.from($prevRow.children)\n\t\t\tconst $prevCell = $prevRowCells[element.cellIndex] as HTMLElement\n\t\t\tif ($prevCell) {\n\t\t\t\t$upCell = $prevCell\n\t\t\t}\n\t\t}\n\t} else if (element instanceof HTMLTableRowElement) {\n\t\tconst $prevRow = element.previousElementSibling as HTMLTableRowElement\n\t\tif ($prevRow) {\n\t\t\t$upCell = $prevRow\n\t\t}\n\t} else {\n\t\t// handle other contexts\n\t}\n\tif ($upCell && (!isFocusable($upCell) || !isVisible($upCell))) {\n\t\treturn _getUpCell($upCell)\n\t}\n\treturn $upCell\n}\n\nconst getTopCell = (event: KeyboardEvent) => {\n\tconst $target = event.target as HTMLElement\n\tlet $topCell: HTMLElement | undefined\n\tif ($target instanceof HTMLTableCellElement) {\n\t\tconst $table = $target.parentElement?.parentElement\n\t\tif ($table) {\n\t\t\tconst $firstRow = $table.firstElementChild\n\t\t\tconst $navCell = $firstRow.children[$target.cellIndex] as HTMLElement\n\t\t\tif ($navCell) {\n\t\t\t\t$topCell = $navCell\n\t\t\t}\n\t\t}\n\t} else if ($target instanceof HTMLTableRowElement) {\n\t\tconst $table = $target.parentElement as HTMLTableElement\n\t\tif ($table) {\n\t\t\tconst $firstRow = $table.firstElementChild as HTMLTableRowElement\n\t\t\tif ($firstRow) {\n\t\t\t\t$topCell = $firstRow\n\t\t\t}\n\t\t}\n\t} else {\n\t\t// handle other contexts\n\t}\n\tif ($topCell && (!isFocusable($topCell) || !isVisible($topCell))) {\n\t\treturn _getDownCell($topCell)\n\t}\n\treturn $topCell\n}\n\nconst getDownCell = (event: KeyboardEvent) => {\n\tconst $target = event.target as HTMLElement\n\treturn _getDownCell($target)\n}\n\nconst _getDownCell = (element: HTMLElement): HTMLElement | undefined => {\n\tlet $downCell: HTMLElement | undefined\n\tif (element instanceof HTMLTableCellElement) {\n\t\tconst $nextRow = element.parentElement?.nextElementSibling\n\t\tif ($nextRow) {\n\t\t\tconst $nextRowCells = Array.from($nextRow.children)\n\t\t\tconst $nextCell = $nextRowCells[element.cellIndex] as HTMLElement\n\t\t\tif ($nextCell) {\n\t\t\t\t$downCell = $nextCell\n\t\t\t}\n\t\t}\n\t} else if (element instanceof HTMLTableRowElement) {\n\t\tconst $nextRow = element.nextElementSibling as HTMLTableRowElement\n\t\tif ($nextRow) {\n\t\t\t$downCell = $nextRow\n\t\t}\n\t} else {\n\t\t// handle other contexts\n\t}\n\tif ($downCell && (!isFocusable($downCell) || !isVisible($downCell))) {\n\t\treturn _getDownCell($downCell)\n\t}\n\treturn $downCell\n}\n\nconst getBottomCell = (event: KeyboardEvent) => {\n\tconst $target = event.target as HTMLElement\n\tlet $bottomCell: HTMLElement | undefined\n\tif ($target instanceof HTMLTableCellElement) {\n\t\tconst $table = $target.parentElement?.parentElement\n\t\tif ($table) {\n\t\t\tconst $lastRow = $table.lastElementChild\n\t\t\tconst $navCell = $lastRow.children[$target.cellIndex] as HTMLElement\n\t\t\tif ($navCell) {\n\t\t\t\t$bottomCell = $navCell\n\t\t\t}\n\t\t}\n\t} else if ($target instanceof HTMLTableRowElement) {\n\t\tconst $table = $target.parentElement as HTMLTableElement\n\t\tif ($table) {\n\t\t\tconst $lastRow = $table.lastElementChild as HTMLTableRowElement\n\t\t\tif ($lastRow) {\n\t\t\t\t$bottomCell = $lastRow\n\t\t\t}\n\t\t}\n\t} else {\n\t\t// handle other contexts\n\t}\n\tif ($bottomCell && (!isFocusable($bottomCell) || !isVisible($bottomCell))) {\n\t\treturn _getUpCell($bottomCell)\n\t}\n\treturn $bottomCell\n}\n\nconst getPrevCell = (event: KeyboardEvent) => {\n\tconst $target = event.target as HTMLElement\n\treturn _getPrevCell($target)\n}\n\nconst _getPrevCell = (element: HTMLElement): HTMLElement | undefined => {\n\tlet $prevCell: HTMLElement | undefined\n\tif (element.previousElementSibling) {\n\t\t$prevCell = element.previousElementSibling as HTMLElement\n\t} else {\n\t\tconst $prevRow = element.parentElement?.previousElementSibling\n\t\t$prevCell = $prevRow?.lastElementChild as HTMLElement\n\t}\n\tif ($prevCell && (!isFocusable($prevCell) || !isVisible($prevCell))) {\n\t\treturn _getPrevCell($prevCell)\n\t}\n\treturn $prevCell\n}\n\nconst getNextCell = (event: KeyboardEvent) => {\n\tconst $target = event.target as HTMLElement\n\treturn _getNextCell($target)\n}\n\nconst _getNextCell = (element: HTMLElement): HTMLElement | undefined => {\n\tlet $nextCell: HTMLElement | undefined\n\tif (element.nextElementSibling) {\n\t\t$nextCell = element.nextElementSibling as HTMLElement\n\t} else {\n\t\tconst $nextRow = element.parentElement?.nextElementSibling\n\t\t$nextCell = $nextRow?.firstElementChild as HTMLElement\n\t}\n\tif ($nextCell && (!isFocusable($nextCell) || !isVisible($nextCell))) {\n\t\treturn _getNextCell($nextCell)\n\t}\n\treturn $nextCell\n}\n\nconst getFirstCell = (event: KeyboardEvent) => {\n\tconst $target = event.target as HTMLElement\n\tconst $parent = $target.parentElement\n\tconst $firstCell = $parent.firstElementChild as HTMLElement | null\n\tif ($firstCell && (!isFocusable($firstCell) || !isVisible($firstCell))) {\n\t\treturn _getNextCell($firstCell)\n\t}\n\treturn $firstCell\n}\n\nconst getLastCell = (event: KeyboardEvent) => {\n\tconst $target = event.target as HTMLElement\n\tconst $parent = $target.parentElement\n\tconst $lastCell = $parent.lastElementChild as HTMLElement | null\n\tif ($lastCell && (!isFocusable($lastCell) || !isVisible($lastCell))) {\n\t\treturn _getPrevCell($lastCell)\n\t}\n\treturn $lastCell\n}\n\nconst modifierKeys = ['alt', 'control', 'shift', 'meta']\n\nconst eventKeyMap = {\n\tArrowUp: 'up',\n\tArrowDown: 'down',\n\tArrowLeft: 'left',\n\tArrowRight: 'right',\n}\n\nexport const defaultKeypressHandlers: KeypressHandlers = {\n\t'keydown.up': (event: KeyboardEvent) => {\n\t\tconst $upCell = getUpCell(event)\n\t\tif ($upCell) {\n\t\t\tevent.preventDefault()\n\t\t\tevent.stopPropagation()\n\t\t\t$upCell.focus()\n\t\t}\n\t},\n\t'keydown.down': (event: KeyboardEvent) => {\n\t\tconst $downCell = getDownCell(event)\n\t\tif ($downCell) {\n\t\t\tevent.preventDefault()\n\t\t\tevent.stopPropagation()\n\t\t\t$downCell.focus()\n\t\t}\n\t},\n\t'keydown.left': (event: KeyboardEvent) => {\n\t\tconst $prevCell = getPrevCell(event)\n\t\t// prevent default edit-cell behaviour on first cell\n\t\tevent.preventDefault()\n\t\tevent.stopPropagation()\n\t\tif ($prevCell) {\n\t\t\t$prevCell.focus()\n\t\t}\n\t},\n\t'keydown.right': (event: KeyboardEvent) => {\n\t\tconst $nextCell = getNextCell(event)\n\t\t// prevent default edit-cell behaviour on last cell\n\t\tevent.preventDefault()\n\t\tevent.stopPropagation()\n\t\tif ($nextCell) {\n\t\t\t$nextCell.focus()\n\t\t}\n\t},\n\t'keydown.control.up': (event: KeyboardEvent) => {\n\t\tconst $topCell = getTopCell(event)\n\t\tif ($topCell) {\n\t\t\tevent.preventDefault()\n\t\t\tevent.stopPropagation()\n\t\t\t$topCell.focus()\n\t\t}\n\t},\n\t'keydown.control.down': (event: KeyboardEvent) => {\n\t\tconst $bottomCell = getBottomCell(event)\n\t\tif ($bottomCell) {\n\t\t\tevent.preventDefault()\n\t\t\tevent.stopPropagation()\n\t\t\t$bottomCell.focus()\n\t\t}\n\t},\n\t'keydown.control.left': (event: KeyboardEvent) => {\n\t\tconst $firstCell = getFirstCell(event)\n\t\tif ($firstCell) {\n\t\t\tevent.preventDefault()\n\t\t\tevent.stopPropagation()\n\t\t\t$firstCell.focus()\n\t\t}\n\t},\n\t'keydown.control.right': (event: KeyboardEvent) => {\n\t\tconst $lastCell = getLastCell(event)\n\t\tif ($lastCell) {\n\t\t\tevent.preventDefault()\n\t\t\tevent.stopPropagation()\n\t\t\t$lastCell.focus()\n\t\t}\n\t},\n\t'keydown.end': (event: KeyboardEvent) => {\n\t\tconst $lastCell = getLastCell(event)\n\t\tif ($lastCell) {\n\t\t\tevent.preventDefault()\n\t\t\tevent.stopPropagation()\n\t\t\t$lastCell.focus()\n\t\t}\n\t},\n\t'keydown.enter': (event: KeyboardEvent) => {\n\t\tconst $target = event.target as HTMLElement\n\t\tif ($target instanceof HTMLTableCellElement) {\n\t\t\tevent.preventDefault()\n\t\t\tevent.stopPropagation()\n\t\t\tconst $downCell = getDownCell(event)\n\t\t\tif ($downCell) {\n\t\t\t\t$downCell.focus()\n\t\t\t}\n\t\t} else {\n\t\t\t// handle other contexts\n\t\t}\n\t},\n\t'keydown.shift.enter': (event: KeyboardEvent) => {\n\t\tconst $target = event.target as HTMLElement\n\t\tif ($target instanceof HTMLTableCellElement) {\n\t\t\tevent.preventDefault()\n\t\t\tevent.stopPropagation()\n\t\t\tconst $upCell = getUpCell(event)\n\t\t\tif ($upCell) {\n\t\t\t\t$upCell.focus()\n\t\t\t}\n\t\t} else {\n\t\t\t// handle other contexts\n\t\t}\n\t},\n\t'keydown.home': (event: KeyboardEvent) => {\n\t\tconst $firstCell = getFirstCell(event)\n\t\tif ($firstCell) {\n\t\t\tevent.preventDefault()\n\t\t\tevent.stopPropagation()\n\t\t\t$firstCell.focus()\n\t\t}\n\t},\n\t'keydown.tab': (event: KeyboardEvent) => {\n\t\tconst $nextCell = getNextCell(event)\n\t\tif ($nextCell) {\n\t\t\tevent.preventDefault()\n\t\t\tevent.stopPropagation()\n\t\t\t$nextCell.focus()\n\t\t}\n\t},\n\t'keydown.shift.tab': (event: KeyboardEvent) => {\n\t\tconst $prevCell = getPrevCell(event)\n\t\tif ($prevCell) {\n\t\t\tevent.preventDefault()\n\t\t\tevent.stopPropagation()\n\t\t\t$prevCell.focus()\n\t\t}\n\t},\n}\n\nexport function useKeyboardNav(options: KeyboardNavigationOptions[]) {\n\tconst getSelectors = (option: KeyboardNavigationOptions) => {\n\t\t// get parent element\n\t\tlet $parent: Element | null = null\n\t\tif (option.parent) {\n\t\t\tif (typeof option.parent === 'string') {\n\t\t\t\t$parent = document.querySelector(option.parent)\n\t\t\t} else if (option.parent instanceof Element) {\n\t\t\t\t$parent = option.parent\n\t\t\t} else {\n\t\t\t\t$parent = option.parent.value\n\t\t\t}\n\t\t}\n\n\t\t// generate a list of selector(s)\n\t\tlet selectors: Element[] = []\n\n\t\tif (option.selectors) {\n\t\t\tif (typeof option.selectors === 'string') {\n\t\t\t\tselectors = $parent\n\t\t\t\t\t? Array.from($parent.querySelectorAll(option.selectors))\n\t\t\t\t\t: Array.from(document.querySelectorAll(option.selectors))\n\t\t\t} else if (option.selectors instanceof Element) {\n\t\t\t\tselectors.push(option.selectors)\n\t\t\t} else {\n\t\t\t\tif (Array.isArray(option.selectors.value)) {\n\t\t\t\t\tfor (const element of option.selectors.value) {\n\t\t\t\t\t\tif (element instanceof Element) {\n\t\t\t\t\t\t\tselectors.push(element)\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tselectors.push(element.$el as Element)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tselectors.push(option.selectors.value)\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tconst $children = Array.from($parent.children)\n\t\t\tselectors = $children.filter((selector: HTMLElement) => {\n\t\t\t\t// ignore elements not in the tab order or are not visible\n\t\t\t\treturn isFocusable(selector) && isVisible(selector)\n\t\t\t})\n\t\t}\n\n\t\treturn selectors\n\t}\n\n\tconst getEventListener = (option: KeyboardNavigationOptions) => {\n\t\treturn (event: KeyboardEvent) => {\n\t\t\tconst activeKey = (eventKeyMap[event.key] as string) || event.key.toLowerCase()\n\t\t\tif (modifierKeys.includes(activeKey)) return // ignore modifier key presses\n\n\t\t\tconst handlers = option.handlers || defaultKeypressHandlers\n\t\t\tfor (const key of Object.keys(handlers)) {\n\t\t\t\tconst [eventType, ...keys] = key.split('.')\n\t\t\t\tif (eventType !== 'keydown') {\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\n\t\t\t\tif (keys.includes(activeKey)) {\n\t\t\t\t\tconst listener = handlers[key]\n\n\t\t\t\t\t// check if the handler has modifiers, and if the modifier is active;\n\t\t\t\t\t// this is to ensure exact key-press matches\n\t\t\t\t\tconst hasModifier = keys.filter(key => modifierKeys.includes(key))\n\t\t\t\t\tconst isModifierActive = modifierKeys.some(key => {\n\t\t\t\t\t\tconst modifierKey = key.charAt(0).toUpperCase() + key.slice(1)\n\t\t\t\t\t\treturn event.getModifierState(modifierKey)\n\t\t\t\t\t})\n\n\t\t\t\t\tif (hasModifier.length > 0) {\n\t\t\t\t\t\tif (isModifierActive) {\n\t\t\t\t\t\t\tfor (const modifier of modifierKeys) {\n\t\t\t\t\t\t\t\tif (keys.includes(modifier)) {\n\t\t\t\t\t\t\t\t\t// docs: https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/getModifierState\n\t\t\t\t\t\t\t\t\tconst modifierKey = modifier.charAt(0).toUpperCase() + modifier.slice(1)\n\t\t\t\t\t\t\t\t\tif (event.getModifierState(modifierKey)) {\n\t\t\t\t\t\t\t\t\t\tlistener(event)\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif (!isModifierActive) {\n\t\t\t\t\t\t\tlistener(event)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tonMounted(() => {\n\t\tfor (const option of options) {\n\t\t\tconst selectors = getSelectors(option)\n\t\t\tfor (const selector of selectors) {\n\t\t\t\tselector.addEventListener('keydown', getEventListener(option))\n\t\t\t}\n\t\t}\n\t})\n\n\tonBeforeUnmount(() => {\n\t\tfor (const option of options) {\n\t\t\tconst selectors = getSelectors(option)\n\t\t\tfor (const selector of selectors) {\n\t\t\t\tselector.removeEventListener('keydown', getEventListener(option))\n\t\t\t}\n\t\t}\n\t})\n}\n","import { App } from 'vue'\n\nimport { defaultKeypressHandlers, useKeyboardNav } from './composables/keyboard'\n\nfunction install(app: App /* options */) {}\n\nexport { defaultKeypressHandlers, install, useKeyboardNav }\n"],"names":["_a","isClient","isString","val","noop","resolveUnref","r","unref","identity","arg","tryOnScopeDispose","fn","getCurrentScope","onScopeDispose","unrefElement","elRef","plain","defaultWindow","useEventListener","args","target","events","listeners","options","cleanups","cleanup","register","el","event","listener","options2","stopWatch","watch","stop","_global","globalKey","useElementVisibility","element","window","scrollTarget","elementIsVisible","ref","testBounding","document","rect","SwipeDirection","SwipeDirection2","__defProp","__getOwnPropSymbols","__hasOwnProp","__propIsEnum","__defNormalProp","obj","key","value","__spreadValues","a","b","prop","isVisible","isFocusable","getUpCell","$target","_getUpCell","$upCell","$prevRow","$prevCell","getTopCell","$topCell","$table","$navCell","$firstRow","_getDownCell","getDownCell","$downCell","$nextRow","$nextCell","getBottomCell","$bottomCell","$lastRow","getPrevCell","_getPrevCell","getNextCell","_getNextCell","getFirstCell","$firstCell","getLastCell","$lastCell","modifierKeys","eventKeyMap","defaultKeypressHandlers","useKeyboardNav","getSelectors","option","$parent","selectors","selector","getEventListener","activeKey","handlers","eventType","keys","hasModifier","isModifierActive","modifierKey","modifier","onMounted","onBeforeUnmount","install","app"],"mappings":"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","x_google_ignoreList":[0,1]} \ No newline at end of file diff --git a/utilities/package.json b/utilities/package.json index afe8fc29..6a14a27d 100644 --- a/utilities/package.json +++ b/utilities/package.json @@ -1,50 +1,50 @@ { - "name": "@agritheory/utilities", - "version": "0.2.0", + "name": "@stonecrop/utilities", + "version": "0.2.2", + "license": "MIT", "type": "module", + "exports": { + ".": { + "import": "./dist/utilities.js", + "require": "./dist/utilities.umd.cjs" + } + }, "main": "dist/utilities.js", "module": "dist/utilities.js", - "umd": "dist/utilities.umd.cjs", "types": "src/index", "files": [ "dist/*", "src/**/*.ts" ], - "license": "MIT", "scripts": { - "dev": "vite", "build": "tsc -b && vite build", + "dev": "vite", + "lint": "eslint . --ext .ts,.vue", "preview": "vite preview", - "story:dev": "histoire dev", "story:build": "histoire build", - "story:preview": "histoire preview", - "lint": "eslint . --ext .ts,.vue" + "story:dev": "histoire dev", + "story:preview": "histoire preview" }, "dependencies": { "vue": "^3.2.47" }, "devDependencies": { - "@histoire/plugin-vue": "^0.14.2", - "@typescript-eslint/eslint-plugin": "^5.33.0", - "@typescript-eslint/parser": "^5.33.0", - "@vitejs/plugin-vue": "^4.0.0", + "@histoire/plugin-vue": "^0.16.1", + "@typescript-eslint/eslint-plugin": "^5.59.5", + "@typescript-eslint/parser": "^5.59.5", + "@vitejs/plugin-vue": "^4.2.1", "@vueuse/core": "^9.13.0", - "cypress": "^12.2.0", - "eslint-config-prettier": "^8.5.0", - "eslint-plugin-vue": "^9.3.0", - "eslint": "^8.22.0", - "histoire": "^0.14.2", - "typescript": "^4.9.4", - "vite": "^4.1.1", + "cypress": "^12.11.0", + "eslint": "^8.40.0", + "eslint-config-prettier": "^8.8.0", + "eslint-plugin-vue": "^9.11.1", + "histoire": "^0.16.1", + "typescript": "^5.0.4", + "vite": "^4.3.5", "vue-router": "^4" }, - "exports": { - ".": { - "import": "./dist/utilities.js", - "require": "./dist/utilities.umd.cjs" - } - }, "engines": { - "node": ">=16.19.1" - } + "node": ">=20.11.0" + }, + "umd": "dist/utilities.umd.cjs" } diff --git a/utilities/vite.config.ts b/utilities/vite.config.ts index 243d7389..7ce552f4 100644 --- a/utilities/vite.config.ts +++ b/utilities/vite.config.ts @@ -18,7 +18,7 @@ export default defineConfig({ sourcemap: true, lib: { entry: resolve(projectRootDir, 'src/index.ts'), - name: '@agritheory/utilities', + name: '@stonecrop/utilities', }, rollupOptions: { external: ['vue'], 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'])