@stonecrop/desktop 0.13.12 → 0.13.14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"desktop.js","sources":["../src/components/ActionSet.vue","../src/components/CommandPalette.vue","../../common/temp/node_modules/.pnpm/pinia@3.0.4_typescript@6.0.3_vue@3.5.33_typescript@6.0.3_/node_modules/pinia/dist/pinia.mjs","../../stonecrop/dist/stonecrop.js","../../aform/dist/aform.js","../src/components/SheetNav.vue","../src/components/Desktop.vue","../src/plugins/index.ts"],"sourcesContent":["<template>\n\t<div :class=\"{ collapsed: !isOpen }\" class=\"action-set\">\n\t\t<div class=\"action-menu-icon\">\n\t\t\t<div id=\"cross\" :class=\"{ rotated: isOpen }\" @click=\"onClick\">×</div>\n\t\t</div>\n\t\t<div style=\"margin-right: 30px\"></div>\n\t\t<div v-for=\"(el, index) in elements\" :key=\"el.label\" class=\"action-element\">\n\t\t\t<div class=\"action-element-header\">\n\t\t\t\t<button\n\t\t\t\t\tv-if=\"el.type == 'button'\"\n\t\t\t\t\t:disabled=\"el.disabled\"\n\t\t\t\t\tclass=\"button-default\"\n\t\t\t\t\t@click=\"handleClick(el.action, el.label)\">\n\t\t\t\t\t{{ el.label }}\n\t\t\t\t</button>\n\t\t\t</div>\n\t\t\t<div v-if=\"el.type == 'dropdown'\">\n\t\t\t\t<div class=\"dropdown-header\">\n\t\t\t\t\t<div class=\"cross\" :class=\"{ rotated: dropdownOpen[index] }\" @click=\"toggleDropdown(index)\">×</div>\n\t\t\t\t\t<button class=\"button-default dropdown-title\" @click=\"toggleDropdown(index)\">\n\t\t\t\t\t\t{{ el.label }}\n\t\t\t\t\t</button>\n\t\t\t\t</div>\n\t\t\t\t<div v-show=\"dropdownStates[index]\" class=\"dropdown-container\">\n\t\t\t\t\t<div class=\"dropdown\">\n\t\t\t\t\t\t<div v-for=\"item in el.actions\" :key=\"item.label\">\n\t\t\t\t\t\t\t<button v-if=\"item.action != null\" class=\"dropdown-item\" @click=\"handleClick(item.action, item.label)\">\n\t\t\t\t\t\t\t\t{{ item.label }}\n\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t<a v-else-if=\"item.link != null\" :href=\"item.link\"\n\t\t\t\t\t\t\t\t><button class=\"dropdown-item\">{{ item.label }}</button></a\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t</div>\n</template>\n\n<script setup lang=\"ts\">\nimport { onMounted, ref } from 'vue'\n\nimport type { ActionElements } from '../types'\n\nconst { elements = [] } = defineProps<{ elements?: ActionElements[] }>()\nconst emit = defineEmits<{\n\tactionClick: [label: string, action: (() => void | Promise<void>) | undefined]\n}>()\n\n// Track dropdown open state separately (index -> boolean)\nconst dropdownStates = ref<Record<number, boolean>>({})\n\nconst isOpen = ref(true)\nconst dropdownOpen = ref([])\n\nonMounted(() => {\n\tcloseDropdowns()\n})\n\nconst closeDropdowns = () => {\n\tdropdownStates.value = {}\n\tdropdownOpen.value = []\n}\n\nconst onClick = () => {\n\tisOpen.value = !isOpen.value\n}\n\nconst toggleDropdown = (index: number) => {\n\tconst showDropdown = !dropdownStates.value[index]\n\tcloseDropdowns()\n\tif (showDropdown) {\n\t\tdropdownStates.value[index] = true\n\t\tdropdownOpen.value[index] = true\n\t}\n}\n\nconst handleClick = (action: (() => void | Promise<void>) | undefined, label: string) => {\n\t// Emit event to parent - parent will handle execution\n\temit('actionClick', label, action)\n}\n</script>\n\n<style scoped>\n#cross {\n\tposition: relative;\n\ttransform: rotate(45deg);\n\tcursor: pointer;\n\ttransition: all 0.2s ease-in-out;\n\tuser-select: none;\n\tline-height: 1rem;\n}\n#cross.rotated,\n.cross.rotated {\n\ttransform: rotate(0deg);\n}\n#cross svg {\n\twidth: 1.5em;\n\theight: 1.5em;\n}\n\n.action-set {\n\tposition: fixed;\n\ttop: 300px;\n\tright: 10px;\n\tpadding: 10px;\n\tdisplay: flex;\n\tflex-direction: column;\n\talign-items: flex-end;\n\tbackground: var(--sc-form-background);\n\tborder: 1px solid var(--sc-gray-20);\n\tborder-left: 4px solid var(--sc-gray-20);\n\tborder-radius: 0;\n\toverflow: hidden;\n\tz-index: 1001; /* Above SheetNav (100) and operation log button (999) */\n\t-webkit-transition: all 0.5s ease-in-out;\n\t-moz-transition: all 0.5s ease-in-out;\n\t-o-transition: all 0.5s ease-in-out;\n\ttransition: all 0.5s ease-in-out;\n}\n.action-menu-icon {\n\tposition: relative;\n\tfont-size: 2rem;\n\tdisplay: inline-block;\n\tcolor: var(--sc-gray-60, #666);\n\ttransition: all 0.2s ease-in-out;\n}\n.action-set.collapsed {\n\tmax-width: 46px;\n\tmax-height: 40px;\n\toverflow: hidden;\n}\n.action-set.collapsed .action-element {\n\topacity: 0;\n\t-webkit-transition: opacity 0.25s ease-in-out;\n\t-moz-transition: opacity 0.25s ease-in-out;\n\t-o-transition: opacity 0.25s ease-in-out;\n\ttransition: opacity 0.25s ease-in-out;\n}\n\n.action-element {\n\twidth: 100%;\n\ttext-align: right;\n\tborder: 1px solid var(--sc-gray-20);\n\tbackground: none;\n\tfont-size: 1.5rem;\n\tfont-family: var(--sc-font-family);\n\tfont-weight: 600;\n\tmargin-top: 10px;\n\tposition: relative; /* Make this the positioning context for absolute children */\n}\n.action-element-header {\n\tdisplay: flex;\n\tjustify-content: end;\n}\nbutton.button-default {\n\tbackground-color: transparent;\n\tpadding: 5px 12px;\n\tborder-radius: 0px;\n\tbox-shadow: none;\n\tborder: none;\n\tcursor: pointer;\n\twhite-space: nowrap;\n\tfont-weight: bold;\n\tfont-size: 1rem;\n\ttext-align: right;\n\tcolor: var(--sc-gray-80);\n\tpadding-left: 50px;\n\tfont-family: var(--sc-font-family);\n}\n.dropdown-header:hover button.button-default,\n.dropdown-header:hover,\n.action-element-header:hover {\n\tbackground-color: #f2f2f2;\n}\n\n.dropdown-title {\n\tposition: relative;\n}\n.dropdown-header {\n\tdisplay: flex;\n\talign-items: center;\n}\n.cross {\n\tpointer-events: all;\n\tmargin-left: 5px;\n\tfont-family: var(--sc-font-family);\n\tcolor: var(--sc-gray-60, #666);\n\tcursor: pointer;\n\ttransform: rotate(45deg);\n\tuser-select: none;\n\ttransition: all 0.2s ease-in-out;\n\tline-height: 1rem;\n}\n\nbutton.dropdown-item {\n\twidth: 100%;\n\tpadding: 5px 12px;\n\ttext-align: right;\n\tborder: none;\n\tbackground-color: #ffffff;\n\tcursor: pointer;\n\tborder-radius: 5px;\n\tfont-size: 1rem;\n}\n\nbutton.dropdown-item:hover {\n\tbackground-color: #f2f2f2;\n}\n</style>\n","<template>\n\t<Teleport to=\"body\">\n\t\t<Transition name=\"fade\">\n\t\t\t<div v-if=\"isOpen\" class=\"command-palette-overlay\" @click=\"closeModal\">\n\t\t\t\t<div class=\"command-palette\" @click.stop>\n\t\t\t\t\t<div class=\"command-palette-header\">\n\t\t\t\t\t\t<input\n\t\t\t\t\t\t\tref=\"input\"\n\t\t\t\t\t\t\tv-model=\"query\"\n\t\t\t\t\t\t\ttype=\"text\"\n\t\t\t\t\t\t\tclass=\"command-palette-input\"\n\t\t\t\t\t\t\t:placeholder=\"placeholder\"\n\t\t\t\t\t\t\tautofocus\n\t\t\t\t\t\t\t@keydown=\"handleKeydown\" />\n\t\t\t\t\t</div>\n\n\t\t\t\t\t<div v-if=\"results.length\" class=\"command-palette-results\">\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tv-for=\"(result, index) in results\"\n\t\t\t\t\t\t\t:key=\"index\"\n\t\t\t\t\t\t\tclass=\"command-palette-result\"\n\t\t\t\t\t\t\t:class=\"{ selected: index === selectedIndex }\"\n\t\t\t\t\t\t\t@click=\"selectResult(result)\"\n\t\t\t\t\t\t\t@mouseover=\"selectedIndex = index\">\n\t\t\t\t\t\t\t<div class=\"result-title\">\n\t\t\t\t\t\t\t\t<slot name=\"title\" :result=\"result\" />\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div class=\"result-content\">\n\t\t\t\t\t\t\t\t<slot name=\"content\" :result=\"result\" />\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div v-else-if=\"query && !results.length\" class=\"command-palette-no-results\">\n\t\t\t\t\t\t<slot name=\"empty\"> No results found for \"{{ query }}\" </slot>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</Transition>\n\t</Teleport>\n</template>\n\n<script setup lang=\"ts\" generic=\"T\">\nimport { ref, computed, watch, nextTick, useTemplateRef } from 'vue'\n\ndefineSlots<{\n\ttitle?: { result: T }\n\tcontent?: { result: T }\n\tempty?: null\n}>()\n\nconst {\n\tsearch,\n\tisOpen = false,\n\tplaceholder = 'Type a command or search...',\n\tmaxResults = 10,\n} = defineProps<{\n\tsearch: (query: string) => T[]\n\tisOpen?: boolean\n\tplaceholder?: string\n\tmaxResults?: number\n}>()\n\nconst emit = defineEmits<{\n\tselect: [T]\n\tclose: []\n}>()\n\nconst query = ref('')\nconst selectedIndex = ref(0)\nconst inputRef = useTemplateRef('input')\n\nconst results = computed(() => {\n\tif (!query.value) return []\n\tconst searchResults = search(query.value)\n\treturn searchResults.slice(0, maxResults)\n})\n\n// reset search query when modal opens\nwatch(\n\t() => isOpen,\n\tasync open => {\n\t\tif (open) {\n\t\t\tquery.value = ''\n\t\t\tselectedIndex.value = 0\n\t\t\tawait nextTick()\n\t\t\t;(inputRef.value as HTMLInputElement)?.focus()\n\t\t}\n\t}\n)\n\n// reset selected index when results change\nwatch(results, () => {\n\tselectedIndex.value = 0\n})\n\nconst closeModal = () => {\n\temit('close')\n}\n\nconst handleKeydown = (e: KeyboardEvent) => {\n\tswitch (e.key) {\n\t\tcase 'Escape':\n\t\t\tcloseModal()\n\t\t\tbreak\n\t\tcase 'ArrowDown':\n\t\t\te.preventDefault()\n\t\t\tif (results.value.length) {\n\t\t\t\tselectedIndex.value = (selectedIndex.value + 1) % results.value.length\n\t\t\t}\n\t\t\tbreak\n\t\tcase 'ArrowUp':\n\t\t\te.preventDefault()\n\t\t\tif (results.value.length) {\n\t\t\t\tselectedIndex.value = (selectedIndex.value - 1 + results.value.length) % results.value.length\n\t\t\t}\n\t\t\tbreak\n\t\tcase 'Enter':\n\t\t\tif (results.value.length && selectedIndex.value >= 0) {\n\t\t\t\tselectResult(results.value[selectedIndex.value])\n\t\t\t}\n\t\t\tbreak\n\t}\n}\n\nconst selectResult = (result: T) => {\n\temit('select', result)\n\tcloseModal()\n}\n</script>\n\n<style>\n.fade-enter-active,\n.fade-leave-active {\n\ttransition: opacity 0.2s ease;\n}\n\n.fade-enter-from,\n.fade-leave-to {\n\topacity: 0;\n}\n\n.command-palette-overlay {\n\tposition: fixed;\n\ttop: 0;\n\tleft: 0;\n\twidth: 100%;\n\theight: 100%;\n\tbackground-color: rgba(0, 0, 0, 0.5);\n\tdisplay: flex;\n\talign-items: flex-start;\n\tjustify-content: center;\n\tz-index: 300;\n\tpadding-top: 100px;\n}\n\n.command-palette {\n\twidth: 600px;\n\tmax-width: 90%;\n\tbackground-color: white;\n\tborder-radius: 8px;\n\tbox-shadow: 0 4px 20px rgba(0, 0, 0, 0.15);\n\toverflow: hidden;\n\tmax-height: 80vh;\n\tdisplay: flex;\n\tflex-direction: column;\n}\n\n.command-palette-header {\n\tdisplay: flex;\n\tborder-bottom: 1px solid #eaeaea;\n\tpadding: 12px;\n}\n\n.command-palette-input {\n\tflex: 1;\n\tborder: none;\n\toutline: none;\n\tfont-size: 16px;\n\tpadding: 8px 12px;\n\tbackground-color: transparent;\n}\n\n.command-palette-close {\n\tbackground: transparent;\n\tborder: none;\n\tfont-size: 24px;\n\tcursor: pointer;\n\tcolor: #666;\n\tpadding: 0 8px;\n}\n\n.command-palette-close:hover {\n\tcolor: #333;\n}\n\n.command-palette-results {\n\toverflow-y: auto;\n\tmax-height: 60vh;\n}\n\n.command-palette-result {\n\tpadding: 12px 16px;\n\tcursor: pointer;\n\tborder-bottom: 1px solid #f0f0f0;\n}\n\n.command-palette-result:hover,\n.command-palette-result.selected {\n\tbackground-color: #f5f5f5;\n}\n\n.command-palette-result.selected {\n\tbackground-color: rgba(132, 60, 3, 0.1);\n}\n\n.result-title {\n\tfont-weight: 500;\n\tmargin-bottom: 4px;\n\tcolor: #333;\n}\n\n.result-content {\n\tfont-size: 14px;\n\tcolor: #666;\n\twhite-space: nowrap;\n\toverflow: hidden;\n\ttext-overflow: ellipsis;\n}\n\n.command-palette-no-results {\n\tpadding: 20px 16px;\n\ttext-align: center;\n\tcolor: #666;\n}\n</style>\n","/*!\n * pinia v3.0.4\n * (c) 2025 Eduardo San Martin Morote\n * @license MIT\n */\nimport { hasInjectionContext, inject, toRaw, watch, unref, markRaw, effectScope, ref, isRef, isReactive, getCurrentScope, onScopeDispose, getCurrentInstance, reactive, toRef, nextTick, computed, toRefs } from 'vue';\nimport { setupDevtoolsPlugin } from '@vue/devtools-api';\n\nconst IS_CLIENT = typeof window !== 'undefined';\n\n/**\n * setActivePinia must be called to handle SSR at the top of functions like\n * `fetch`, `setup`, `serverPrefetch` and others\n */\nlet activePinia;\n/**\n * Sets or unsets the active pinia. Used in SSR and internally when calling\n * actions and getters\n *\n * @param pinia - Pinia instance\n */\n// @ts-expect-error: cannot constrain the type of the return\nconst setActivePinia = (pinia) => (activePinia = pinia);\n/**\n * Get the currently active pinia if there is any.\n */\nconst getActivePinia = (process.env.NODE_ENV !== 'production')\n ? () => {\n const pinia = hasInjectionContext() && inject(piniaSymbol);\n if (!pinia && !IS_CLIENT) {\n console.error(`[🍍]: Pinia instance not found in context. This falls back to the global activePinia which exposes you to cross-request pollution on the server. Most of the time, it means you are calling \"useStore()\" in the wrong place.\\n` +\n `Read https://vuejs.org/guide/reusability/composables.html to learn more`);\n }\n return pinia || activePinia;\n }\n : () => (hasInjectionContext() && inject(piniaSymbol)) || activePinia;\nconst piniaSymbol = ((process.env.NODE_ENV !== 'production') ? Symbol('pinia') : /* istanbul ignore next */ Symbol());\n\nfunction isPlainObject(\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\no) {\n return (o &&\n typeof o === 'object' &&\n Object.prototype.toString.call(o) === '[object Object]' &&\n typeof o.toJSON !== 'function');\n}\n// type DeepReadonly<T> = { readonly [P in keyof T]: DeepReadonly<T[P]> }\n// TODO: can we change these to numbers?\n/**\n * Possible types for SubscriptionCallback\n */\nvar MutationType;\n(function (MutationType) {\n /**\n * Direct mutation of the state:\n *\n * - `store.name = 'new name'`\n * - `store.$state.name = 'new name'`\n * - `store.list.push('new item')`\n */\n MutationType[\"direct\"] = \"direct\";\n /**\n * Mutated the state with `$patch` and an object\n *\n * - `store.$patch({ name: 'newName' })`\n */\n MutationType[\"patchObject\"] = \"patch object\";\n /**\n * Mutated the state with `$patch` and a function\n *\n * - `store.$patch(state => state.name = 'newName')`\n */\n MutationType[\"patchFunction\"] = \"patch function\";\n // maybe reset? for $state = {} and $reset\n})(MutationType || (MutationType = {}));\n\n/*\n * FileSaver.js A saveAs() FileSaver implementation.\n *\n * Originally by Eli Grey, adapted as an ESM module by Eduardo San Martin\n * Morote.\n *\n * License : MIT\n */\n// The one and only way of getting global scope in all environments\n// https://stackoverflow.com/q/3277182/1008999\nconst _global = /*#__PURE__*/ (() => typeof window === 'object' && window.window === window\n ? window\n : typeof self === 'object' && self.self === self\n ? self\n : typeof global === 'object' && global.global === global\n ? global\n : typeof globalThis === 'object'\n ? globalThis\n : { HTMLElement: null })();\nfunction bom(blob, { autoBom = false } = {}) {\n // prepend BOM for UTF-8 XML and text/* types (including HTML)\n // note: your browser will automatically convert UTF-16 U+FEFF to EF BB BF\n if (autoBom &&\n /^\\s*(?:text\\/\\S*|application\\/xml|\\S*\\/\\S*\\+xml)\\s*;.*charset\\s*=\\s*utf-8/i.test(blob.type)) {\n return new Blob([String.fromCharCode(0xfeff), 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 // use sync to avoid popup blocker\n xhr.open('HEAD', url, false);\n try {\n xhr.send();\n }\n catch (e) { }\n return xhr.status >= 200 && xhr.status <= 299;\n}\n// `a.click()` doesn't work for all browsers (#465)\nfunction click(node) {\n try {\n node.dispatchEvent(new MouseEvent('click'));\n }\n catch (e) {\n const evt = new MouseEvent('click', {\n bubbles: true,\n cancelable: true,\n view: window,\n detail: 0,\n screenX: 80,\n screenY: 20,\n clientX: 80,\n clientY: 20,\n ctrlKey: false,\n altKey: false,\n shiftKey: false,\n metaKey: false,\n button: 0,\n relatedTarget: null,\n });\n node.dispatchEvent(evt);\n }\n}\nconst _navigator = typeof navigator === 'object' ? navigator : { userAgent: '' };\n// Detect WebView inside a native macOS app by ruling out all browsers\n// We just need to check for 'Safari' because all other browsers (besides Firefox) include that too\n// https://www.whatismybrowser.com/guides/the-latest-user-agent/macos\nconst isMacOSWebView = /*#__PURE__*/ (() => /Macintosh/.test(_navigator.userAgent) &&\n /AppleWebKit/.test(_navigator.userAgent) &&\n !/Safari/.test(_navigator.userAgent))();\nconst saveAs = !IS_CLIENT\n ? () => { } // noop\n : // Use download attribute first if possible (#193 Lumia mobile) unless this is a macOS WebView or mini program\n typeof HTMLAnchorElement !== 'undefined' &&\n 'download' in HTMLAnchorElement.prototype &&\n !isMacOSWebView\n ? downloadSaveAs\n : // Use msSaveOrOpenBlob as a second approach\n 'msSaveOrOpenBlob' in _navigator\n ? msSaveAs\n : // Fallback to using FileReader and a popup\n fileSaverSaveAs;\nfunction downloadSaveAs(blob, name = 'download', opts) {\n const a = document.createElement('a');\n a.download = name;\n a.rel = 'noopener'; // tabnabbing\n // TODO: detect chrome extensions & packaged apps\n // a.target = '_blank'\n if (typeof blob === 'string') {\n // Support regular links\n a.href = blob;\n if (a.origin !== location.origin) {\n if (corsEnabled(a.href)) {\n download(blob, name, opts);\n }\n else {\n a.target = '_blank';\n click(a);\n }\n }\n else {\n click(a);\n }\n }\n else {\n // Support blobs\n a.href = URL.createObjectURL(blob);\n setTimeout(function () {\n URL.revokeObjectURL(a.href);\n }, 4e4); // 40s\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 }\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 }\n else {\n // @ts-ignore: works on windows\n navigator.msSaveOrOpenBlob(bom(blob, opts), name);\n }\n}\nfunction fileSaverSaveAs(blob, name, opts, popup) {\n // Open a popup immediately do go around popup blocker\n // Mostly only available on user interaction and the fileReader is async so...\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) &&\n typeof FileReader !== 'undefined') {\n // Safari doesn't allow downloading of blob URLs\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\n ? url\n : url.replace(/^data:[^;]*;/, 'data:attachment/file;');\n if (popup) {\n popup.location.href = url;\n }\n else {\n location.assign(url);\n }\n popup = null; // reverse-tabnabbing #460\n };\n reader.readAsDataURL(blob);\n }\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; // reverse-tabnabbing #460\n setTimeout(function () {\n URL.revokeObjectURL(url);\n }, 4e4); // 40s\n }\n}\n\n/**\n * Shows a toast or console.log\n *\n * @param message - message to log\n * @param type - different color of the tooltip\n */\nfunction toastMessage(message, type) {\n const piniaMessage = '🍍 ' + message;\n if (typeof __VUE_DEVTOOLS_TOAST__ === 'function') {\n // No longer available :(\n __VUE_DEVTOOLS_TOAST__(piniaMessage, type);\n }\n else if (type === 'error') {\n console.error(piniaMessage);\n }\n else if (type === 'warn') {\n console.warn(piniaMessage);\n }\n else {\n console.log(piniaMessage);\n }\n}\nfunction isPinia(o) {\n return '_a' in o && 'install' in o;\n}\n\n/**\n * This file contain devtools actions, they are not Pinia actions.\n */\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 &&\n 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(pinia) {\n if (checkClipboardAccess())\n return;\n try {\n await navigator.clipboard.writeText(JSON.stringify(pinia.state.value));\n toastMessage('Global state copied to clipboard.');\n }\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(pinia) {\n if (checkClipboardAccess())\n return;\n try {\n loadStoresState(pinia, JSON.parse(await navigator.clipboard.readText()));\n toastMessage('Global state pasted from clipboard.');\n }\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(pinia) {\n try {\n saveAs(new Blob([JSON.stringify(pinia.state.value)], {\n type: 'text/plain;charset=utf-8',\n }), 'pinia-state.json');\n }\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 // @ts-ignore: TODO: changed from 4.3 to 4.4\n fileInput.oncancel = () => resolve(null);\n fileInput.onerror = reject;\n fileInput.click();\n });\n }\n return openFile;\n}\nasync function actionGlobalOpenStateFile(pinia) {\n try {\n const open = getFileOpener();\n const result = await open();\n if (!result)\n return;\n const { text, file } = result;\n loadStoresState(pinia, JSON.parse(text));\n toastMessage(`Global state imported from \"${file.name}\".`);\n }\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(pinia, state) {\n for (const key in state) {\n const storeState = pinia.state.value[key];\n // store is already instantiated, patch it\n if (storeState) {\n Object.assign(storeState, state[key]);\n }\n else {\n // store is not instantiated, set the initial state\n pinia.state.value[key] = state[key];\n }\n }\n}\n\nfunction formatDisplay(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 ? {\n id: PINIA_ROOT_ID,\n label: PINIA_ROOT_LABEL,\n }\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 state = {\n state: storeNames.map((storeId) => ({\n editable: true,\n key: storeId,\n value: store.state.value[storeId],\n })),\n getters: storeNames\n .filter((id) => storeMap.get(id)._getters)\n .map((id) => {\n const store = storeMap.get(id);\n return {\n editable: false,\n key: id,\n value: store._getters.reduce((getters, key) => {\n getters[key] = store[key];\n return getters;\n }, {}),\n };\n }),\n };\n return state;\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 // avoid adding empty getters\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 // TODO: handle add and delete for arrays and objects\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 }\n else {\n return {\n operation: formatDisplay(events.type),\n key: formatDisplay(events.key),\n oldValue: events.oldValue,\n newValue: events.newValue,\n };\n }\n}\nfunction formatMutationType(type) {\n switch (type) {\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}\n\n// timeline can be paused when directly changing the state\nlet isTimelineActive = true;\nconst componentStateTypes = [];\nconst MUTATIONS_LAYER_ID = 'pinia:mutations';\nconst INSPECTOR_ID = 'pinia';\nconst { assign: assign$1 } = Object;\n/**\n * Gets the displayed name of a store in devtools\n *\n * @param id - id of the store\n * @returns a formatted string\n */\nconst getStoreType = (id) => '🍍 ' + id;\n/**\n * Add the pinia plugin without any store. Allows displaying a Pinia plugin tab\n * as soon as it is added to the application.\n *\n * @param app - Vue application\n * @param pinia - pinia instance\n */\nfunction registerPiniaDevtools(app, pinia) {\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: 0xe5df88,\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(pinia);\n },\n tooltip: 'Serialize and copy the state',\n },\n {\n icon: 'content_paste',\n action: async () => {\n await actionGlobalPasteState(pinia);\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(pinia);\n },\n tooltip: 'Save the state as a JSON file',\n },\n {\n icon: 'folder_open',\n action: async () => {\n await actionGlobalOpenStateFile(pinia);\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 = pinia._s.get(nodeId);\n if (!store) {\n toastMessage(`Cannot reset \"${nodeId}\" store because it wasn't found.`, 'warn');\n }\n else if (typeof store.$reset !== 'function') {\n toastMessage(`Cannot reset \"${nodeId}\" store because it doesn't have a \"$reset\" method implemented.`, 'warn');\n }\n else {\n store.$reset();\n toastMessage(`Store \"${nodeId}\" reset.`);\n }\n },\n },\n ],\n });\n api.on.inspectComponent((payload) => {\n const proxy = (payload.componentInstance &&\n 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 ? {\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 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 }\n catch (error) {\n // @ts-expect-error: we just want to show it in devtools\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 = [pinia];\n stores = stores.concat(Array.from(pinia._s.values()));\n payload.rootNodes = (payload.filter\n ? stores.filter((store) => '$id' in store\n ? store.$id\n .toLowerCase()\n .includes(payload.filter.toLowerCase())\n : PINIA_ROOT_LABEL.toLowerCase().includes(payload.filter.toLowerCase()))\n : stores).map(formatStoreForInspectorTree);\n }\n });\n // Expose pinia instance as $pinia to window\n globalThis.$pinia = pinia;\n api.on.getInspectorState((payload) => {\n if (payload.app === app && payload.inspectorId === INSPECTOR_ID) {\n const inspectedStore = payload.nodeId === PINIA_ROOT_ID\n ? pinia\n : pinia._s.get(payload.nodeId);\n if (!inspectedStore) {\n // this could be the selected store restored for a different project\n // so it's better not to say anything here\n return;\n }\n if (inspectedStore) {\n // Expose selected store as $store to window\n if (payload.nodeId !== PINIA_ROOT_ID)\n globalThis.$store = toRaw(inspectedStore);\n payload.state = formatStoreForInspectorState(inspectedStore);\n }\n }\n });\n api.on.editInspectorState((payload) => {\n if (payload.app === app && payload.inspectorId === INSPECTOR_ID) {\n const inspectedStore = payload.nodeId === PINIA_ROOT_ID\n ? pinia\n : pinia._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 // access only the state\n if (path.length !== 1 ||\n !inspectedStore._customProperties.has(path[0]) ||\n path[0] in inspectedStore.$state) {\n path.unshift('$state');\n }\n }\n else {\n // Root access, we can omit the `.value` because the devtools API does it for us\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 = pinia._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 // rewrite the first entry to be able to directly set the state as\n // well as any other path\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 // gracefully handle errors\n const now = 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: now(),\n title: '🛫 ' + name,\n subtitle: 'start',\n data: {\n store: formatDisplay(store.$id),\n action: formatDisplay(name),\n args,\n },\n groupId,\n },\n });\n after((result) => {\n activeAction = undefined;\n api.addTimelineEvent({\n layerId: MUTATIONS_LAYER_ID,\n event: {\n time: now(),\n title: '🛬 ' + name,\n subtitle: 'end',\n data: {\n store: formatDisplay(store.$id),\n action: formatDisplay(name),\n args,\n result,\n },\n groupId,\n },\n });\n });\n onError((error) => {\n activeAction = undefined;\n api.addTimelineEvent({\n layerId: MUTATIONS_LAYER_ID,\n event: {\n time: now(),\n logType: 'error',\n title: '💥 ' + name,\n subtitle: 'end',\n data: {\n store: formatDisplay(store.$id),\n action: formatDisplay(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: now(),\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 }, state) => {\n api.notifyComponentUpdate();\n api.sendInspectorState(INSPECTOR_ID);\n if (!isTimelineActive)\n return;\n // rootStore.state[store.id] = state\n const eventData = {\n time: now(),\n title: formatMutationType(type),\n data: assign$1({ store: formatDisplay(store.$id) }, formatEventData(events)),\n groupId: activeAction,\n };\n if (type === MutationType.patchFunction) {\n eventData.subtitle = '⤵️';\n }\n else if (type === MutationType.patchObject) {\n eventData.subtitle = '🧩';\n }\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: now(),\n title: '🔥 ' + store.$id,\n subtitle: 'HMR update',\n data: {\n store: formatDisplay(store.$id),\n info: formatDisplay(`HMR update`),\n },\n },\n });\n // update the devtools too\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 &&\n toastMessage(`Disposed \"${store.$id}\" store 🗑`);\n };\n // trigger an update so it can display new registered stores\n api.notifyComponentUpdate();\n api.sendInspectorTree(INSPECTOR_ID);\n api.sendInspectorState(INSPECTOR_ID);\n api.getSettings().logStoreChanges &&\n toastMessage(`\"${store.$id}\" store installed 🆕`);\n });\n}\nlet runningActionId = 0;\nlet activeAction;\n/**\n * Patches a store to enable action grouping in devtools by wrapping the store with a Proxy that is passed as the\n * context of all actions, allowing us to set `runningAction` on each access and effectively associating any state\n * mutation to the action.\n *\n * @param store - store to patch\n * @param actionNames - list of actionst to patch\n */\nfunction patchActionForGrouping(store, actionNames, wrapWithProxy) {\n // original actions of the store as they are given by pinia. We are going to override them\n const actions = actionNames.reduce((storeActions, actionName) => {\n // use toRaw to avoid tracking #541\n storeActions[actionName] = toRaw(store)[actionName];\n return storeActions;\n }, {});\n for (const actionName in actions) {\n store[actionName] = function () {\n // the running action id is incremented in a before action hook\n const _actionId = runningActionId;\n const trackedStore = wrapWithProxy\n ? 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 })\n : store;\n // For Setup Stores we need https://github.com/tc39/proposal-async-context\n activeAction = _actionId;\n const retValue = actions[actionName].apply(trackedStore, arguments);\n // this is safer as async actions in Setup Stores would associate mutations done outside of the action\n activeAction = undefined;\n return retValue;\n };\n }\n}\n/**\n * pinia.use(devtoolsPlugin)\n */\nfunction devtoolsPlugin({ app, store, options }) {\n // HMR module\n if (store.$id.startsWith('__hot:')) {\n return;\n }\n // detect option api vs setup api\n store._isOptionsAPI = !!options.state;\n // Do not overwrite actions mocked by @pinia/testing (#2298)\n if (!store._p._testing) {\n patchActionForGrouping(store, Object.keys(options.actions), store._isOptionsAPI);\n // Upgrade the HMR to also update the new actions\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 }\n addStoreToDevtools(app, \n // FIXME: is there a way to allow the assignment from Store<Id, S, G, A> to StoreGeneric?\n store);\n}\n\n/**\n * Creates a Pinia instance to be used by the application\n */\nfunction createPinia() {\n const scope = effectScope(true);\n // NOTE: here we could check the window object for a state and directly set it\n // if there is anything like it with Vue 3 SSR\n const state = scope.run(() => ref({}));\n let _p = [];\n // plugins added before calling app.use(pinia)\n let toBeInstalled = [];\n const pinia = markRaw({\n install(app) {\n // this allows calling useStore() outside of a component setup after\n // installing pinia's plugin\n setActivePinia(pinia);\n pinia._a = app;\n app.provide(piniaSymbol, pinia);\n app.config.globalProperties.$pinia = pinia;\n /* istanbul ignore else */\n if ((((process.env.NODE_ENV !== 'production') || (typeof __VUE_PROD_DEVTOOLS__ !== 'undefined' && __VUE_PROD_DEVTOOLS__)) && !(process.env.NODE_ENV === 'test')) && IS_CLIENT) {\n registerPiniaDevtools(app, pinia);\n }\n toBeInstalled.forEach((plugin) => _p.push(plugin));\n toBeInstalled = [];\n },\n use(plugin) {\n if (!this._a) {\n toBeInstalled.push(plugin);\n }\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: new Map(),\n state,\n });\n // pinia devtools rely on dev only features so they cannot be forced unless\n // the dev build of Vue is used. Avoid old browsers like IE11.\n if ((((process.env.NODE_ENV !== 'production') || (typeof __VUE_PROD_DEVTOOLS__ !== 'undefined' && __VUE_PROD_DEVTOOLS__)) && !(process.env.NODE_ENV === 'test')) && IS_CLIENT && typeof Proxy !== 'undefined') {\n pinia.use(devtoolsPlugin);\n }\n return pinia;\n}\n/**\n * Dispose a Pinia instance by stopping its effectScope and removing the state, plugins and stores. This is mostly\n * useful in tests, with both a testing pinia or a regular pinia and in applications that use multiple pinia instances.\n * Once disposed, the pinia instance cannot be used anymore.\n *\n * @param pinia - pinia instance\n */\nfunction disposePinia(pinia) {\n pinia._e.stop();\n pinia._s.clear();\n pinia._p.splice(0);\n pinia.state.value = {};\n // @ts-expect-error: non valid\n pinia._a = null;\n}\n\n/**\n * Checks if a function is a `StoreDefinition`.\n *\n * @param fn - object to test\n * @returns true if `fn` is a StoreDefinition\n */\nconst isUseStore = (fn) => {\n return typeof fn === 'function' && typeof fn.$id === 'string';\n};\n/**\n * Mutates in place `newState` with `oldState` to _hot update_ it. It will\n * remove any key not existing in `newState` and recursively merge plain\n * objects.\n *\n * @param newState - new state object to be patched\n * @param oldState - old state that should be used to patch newState\n * @returns - newState\n */\nfunction patchObject(newState, oldState) {\n // no need to go through symbols because they cannot be serialized anyway\n for (const key in oldState) {\n const subPatch = oldState[key];\n // skip the whole sub tree\n if (!(key in newState)) {\n continue;\n }\n const targetValue = newState[key];\n if (isPlainObject(targetValue) &&\n isPlainObject(subPatch) &&\n !isRef(subPatch) &&\n !isReactive(subPatch)) {\n newState[key] = patchObject(targetValue, subPatch);\n }\n else {\n // objects are either a bit more complex (e.g. refs) or primitives, so we\n // just set the whole thing\n newState[key] = subPatch;\n }\n }\n return newState;\n}\n/**\n * Creates an _accept_ function to pass to `import.meta.hot` in Vite applications.\n *\n * @example\n * ```js\n * const useUser = defineStore(...)\n * if (import.meta.hot) {\n * import.meta.hot.accept(acceptHMRUpdate(useUser, import.meta.hot))\n * }\n * ```\n *\n * @param initialUseStore - return of the defineStore to hot update\n * @param hot - `import.meta.hot`\n */\nfunction acceptHMRUpdate(initialUseStore, hot) {\n // strip as much as possible from iife.prod\n if (!(process.env.NODE_ENV !== 'production')) {\n return () => { };\n }\n return (newModule) => {\n const pinia = hot.data.pinia || initialUseStore._pinia;\n if (!pinia) {\n // this store is still not used\n return;\n }\n // preserve the pinia instance across loads\n hot.data.pinia = pinia;\n // console.log('got data', newStore)\n for (const exportName in newModule) {\n const useStore = newModule[exportName];\n // console.log('checking for', exportName)\n if (isUseStore(useStore) && pinia._s.has(useStore.$id)) {\n // console.log('Accepting update for', useStore.$id)\n const id = useStore.$id;\n if (id !== initialUseStore.$id) {\n console.warn(`The id of the store changed from \"${initialUseStore.$id}\" to \"${id}\". Reloading.`);\n // return import.meta.hot.invalidate()\n return hot.invalidate();\n }\n const existingStore = pinia._s.get(id);\n if (!existingStore) {\n console.log(`[Pinia]: skipping hmr because store doesn't exist yet`);\n return;\n }\n useStore(pinia, existingStore);\n }\n }\n };\n}\n\nconst noop = () => { };\nfunction addSubscription(subscriptions, callback, detached, onCleanup = noop) {\n subscriptions.add(callback);\n const removeSubscription = () => {\n const isDel = subscriptions.delete(callback);\n isDel && onCleanup();\n };\n if (!detached && getCurrentScope()) {\n onScopeDispose(removeSubscription);\n }\n return removeSubscription;\n}\nfunction triggerSubscriptions(subscriptions, ...args) {\n subscriptions.forEach((callback) => {\n callback(...args);\n });\n}\n\nconst fallbackRunWithContext = (fn) => fn();\n/**\n * Marks a function as an action for `$onAction`\n * @internal\n */\nconst ACTION_MARKER = Symbol();\n/**\n * Action name symbol. Allows to add a name to an action after defining it\n * @internal\n */\nconst ACTION_NAME = Symbol();\nfunction mergeReactiveObjects(target, patchToApply) {\n // Handle Map instances\n if (target instanceof Map && patchToApply instanceof Map) {\n patchToApply.forEach((value, key) => target.set(key, value));\n }\n else if (target instanceof Set && patchToApply instanceof Set) {\n // Handle Set instances\n patchToApply.forEach(target.add, target);\n }\n // no need to go through symbols because they cannot be serialized anyway\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) &&\n isPlainObject(subPatch) &&\n target.hasOwnProperty(key) &&\n !isRef(subPatch) &&\n !isReactive(subPatch)) {\n // NOTE: here I wanted to warn about inconsistent types but it's not possible because in setup stores one might\n // start the value of a property as a certain type e.g. a Map, and then for some reason, during SSR, change that\n // to `undefined`. When trying to hydrate, we want to override the Map with `undefined`.\n target[key] = mergeReactiveObjects(targetValue, subPatch);\n }\n else {\n // @ts-expect-error: subPatch is a valid value\n target[key] = subPatch;\n }\n }\n return target;\n}\nconst skipHydrateSymbol = (process.env.NODE_ENV !== 'production')\n ? Symbol('pinia:skipHydration')\n : /* istanbul ignore next */ Symbol();\n/**\n * Tells Pinia to skip the hydration process of a given object. This is useful in setup stores (only) when you return a\n * stateful object in the store but it isn't really state. e.g. returning a router instance in a setup store.\n *\n * @param obj - target object\n * @returns obj\n */\nfunction skipHydrate(obj) {\n return Object.defineProperty(obj, skipHydrateSymbol, {});\n}\n/**\n * Returns whether a value should be hydrated\n *\n * @param obj - target variable\n * @returns true if `obj` should be hydrated\n */\nfunction shouldHydrate(obj) {\n return (!isPlainObject(obj) ||\n !Object.prototype.hasOwnProperty.call(obj, skipHydrateSymbol));\n}\nconst { assign } = Object;\nfunction isComputed(o) {\n return !!(isRef(o) && o.effect);\n}\nfunction createOptionsStore(id, options, pinia, hot) {\n const { state, actions, getters } = options;\n const initialState = pinia.state.value[id];\n let store;\n function setup() {\n if (!initialState && (!(process.env.NODE_ENV !== 'production') || !hot)) {\n /* istanbul ignore if */\n pinia.state.value[id] = state ? state() : {};\n }\n // avoid creating a state in pinia.state.value\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(pinia.state.value[id]);\n return assign(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(pinia);\n // it was created just before\n const store = pinia._s.get(id);\n // allow cross using stores\n // @ts-expect-error\n // return getters![name].call(context, context)\n // TODO: avoid reading the getter while assigning with a global variable\n return getters[name].call(store, store);\n }));\n return computedGetters;\n }, {}));\n }\n store = createSetupStore(id, setup, options, pinia, hot, true);\n return store;\n}\nfunction createSetupStore($id, setup, options = {}, pinia, hot, isOptionsStore) {\n let scope;\n const optionsForPlugin = assign({ actions: {} }, options);\n /* istanbul ignore if */\n if ((process.env.NODE_ENV !== 'production') && !pinia._e.active) {\n throw new Error('Pinia destroyed');\n }\n // watcher options for $subscribe\n const $subscribeOptions = { deep: true };\n /* istanbul ignore else */\n if ((process.env.NODE_ENV !== 'production')) {\n $subscribeOptions.onTrigger = (event) => {\n /* istanbul ignore else */\n if (isListening) {\n debuggerEvents = event;\n // avoid triggering this while the store is being built and the state is being set in pinia\n }\n else if (isListening == false && !store._hotUpdating) {\n // let patch send all the events together later\n /* istanbul ignore else */\n if (Array.isArray(debuggerEvents)) {\n debuggerEvents.push(event);\n }\n else {\n console.error('🍍 debuggerEvents should be an array. This is most likely an internal Pinia bug.');\n }\n }\n };\n }\n // internal state\n let isListening; // set to true at the end\n let isSyncListening; // set to true at the end\n let subscriptions = new Set();\n let actionSubscriptions = new Set();\n let debuggerEvents;\n const initialState = pinia.state.value[$id];\n // avoid setting the state for option stores if it is set\n // by the setup\n if (!isOptionsStore && !initialState && (!(process.env.NODE_ENV !== 'production') || !hot)) {\n /* istanbul ignore if */\n pinia.state.value[$id] = {};\n }\n const hotState = ref({});\n // avoid triggering too many listeners\n // https://github.com/vuejs/pinia/issues/1129\n let activeListener;\n function $patch(partialStateOrMutator) {\n let subscriptionMutation;\n isListening = isSyncListening = false;\n // reset the debugger events since patches are sync\n /* istanbul ignore else */\n if ((process.env.NODE_ENV !== 'production')) {\n debuggerEvents = [];\n }\n if (typeof partialStateOrMutator === 'function') {\n partialStateOrMutator(pinia.state.value[$id]);\n subscriptionMutation = {\n type: MutationType.patchFunction,\n storeId: $id,\n events: debuggerEvents,\n };\n }\n else {\n mergeReactiveObjects(pinia.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 // because we paused the watcher, we need to manually call the subscriptions\n triggerSubscriptions(subscriptions, subscriptionMutation, pinia.state.value[$id]);\n }\n const $reset = isOptionsStore\n ? function $reset() {\n const { state } = options;\n const newState = state ? state() : {};\n // we use a patch to group all changes into one single subscription\n this.$patch(($state) => {\n // @ts-expect-error: FIXME: shouldn't error?\n assign($state, newState);\n });\n }\n : /* istanbul ignore next */\n (process.env.NODE_ENV !== 'production')\n ? () => {\n throw new Error(`🍍: Store \"${$id}\" is built using the setup syntax and does not implement $reset().`);\n }\n : noop;\n function $dispose() {\n scope.stop();\n subscriptions.clear();\n actionSubscriptions.clear();\n pinia._s.delete($id);\n }\n /**\n * Helper that wraps function so it can be tracked with $onAction\n * @param fn - action to wrap\n * @param name - name of the action\n */\n const action = (fn, name = '') => {\n if (ACTION_MARKER in fn) {\n fn[ACTION_NAME] = name;\n return fn;\n }\n const wrappedAction = function () {\n setActivePinia(pinia);\n const args = Array.from(arguments);\n const afterCallbackSet = new Set();\n const onErrorCallbackSet = new Set();\n function after(callback) {\n afterCallbackSet.add(callback);\n }\n function onError(callback) {\n onErrorCallbackSet.add(callback);\n }\n // @ts-expect-error\n triggerSubscriptions(actionSubscriptions, {\n args,\n name: wrappedAction[ACTION_NAME],\n store,\n after,\n onError,\n });\n let ret;\n try {\n ret = fn.apply(this && this.$id === $id ? this : store, args);\n // handle sync errors\n }\n catch (error) {\n triggerSubscriptions(onErrorCallbackSet, error);\n throw error;\n }\n if (ret instanceof Promise) {\n return ret\n .then((value) => {\n triggerSubscriptions(afterCallbackSet, value);\n return value;\n })\n .catch((error) => {\n triggerSubscriptions(onErrorCallbackSet, error);\n return Promise.reject(error);\n });\n }\n // trigger after callbacks\n triggerSubscriptions(afterCallbackSet, ret);\n return ret;\n };\n wrappedAction[ACTION_MARKER] = true;\n wrappedAction[ACTION_NAME] = name; // will be set later\n // @ts-expect-error: we are intentionally limiting the returned type to just Fn\n // because all the added properties are internals that are exposed through `$onAction()` only\n return wrappedAction;\n };\n const _hmrPayload = /*#__PURE__*/ markRaw({\n actions: {},\n getters: {},\n state: [],\n hotState,\n });\n const partialStore = {\n _p: pinia,\n // _s: scope,\n $id,\n $onAction: addSubscription.bind(null, actionSubscriptions),\n $patch,\n $reset,\n $subscribe(callback, options = {}) {\n const removeSubscription = addSubscription(subscriptions, callback, options.detached, () => stopWatcher());\n const stopWatcher = scope.run(() => watch(() => pinia.state.value[$id], (state) => {\n if (options.flush === 'sync' ? isSyncListening : isListening) {\n callback({\n storeId: $id,\n type: MutationType.direct,\n events: debuggerEvents,\n }, state);\n }\n }, assign({}, $subscribeOptions, options)));\n return removeSubscription;\n },\n $dispose,\n };\n const store = reactive((process.env.NODE_ENV !== 'production') || ((((process.env.NODE_ENV !== 'production') || (typeof __VUE_PROD_DEVTOOLS__ !== 'undefined' && __VUE_PROD_DEVTOOLS__)) && !(process.env.NODE_ENV === 'test')) && IS_CLIENT)\n ? assign({\n _hmrPayload,\n _customProperties: markRaw(new Set()), // devtools custom properties\n }, partialStore\n // must be added later\n // setupStore\n )\n : partialStore);\n // store the partial store now so the setup of stores can instantiate each other before they are finished without\n // creating infinite loops.\n pinia._s.set($id, store);\n const runWithContext = (pinia._a && pinia._a.runWithContext) || fallbackRunWithContext;\n // TODO: idea create skipSerialize that marks properties as non serializable and they are skipped\n const setupStore = runWithContext(() => pinia._e.run(() => (scope = effectScope()).run(() => setup({ action }))));\n // overwrite existing actions to support $onAction\n for (const key in setupStore) {\n const prop = setupStore[key];\n if ((isRef(prop) && !isComputed(prop)) || isReactive(prop)) {\n // mark it as a piece of state to be serialized\n if ((process.env.NODE_ENV !== 'production') && hot) {\n hotState.value[key] = toRef(setupStore, key);\n // createOptionStore directly sets the state in pinia.state.value so we\n // can just skip that\n }\n else if (!isOptionsStore) {\n // in setup stores we must hydrate the state and sync pinia state tree with the refs the user just created\n if (initialState && shouldHydrate(prop)) {\n if (isRef(prop)) {\n prop.value = initialState[key];\n }\n else {\n // probably a reactive object, lets recursively assign\n // @ts-expect-error: prop is unknown\n mergeReactiveObjects(prop, initialState[key]);\n }\n }\n // transfer the ref to the pinia state to keep everything in sync\n pinia.state.value[$id][key] = prop;\n }\n /* istanbul ignore else */\n if ((process.env.NODE_ENV !== 'production')) {\n _hmrPayload.state.push(key);\n }\n // action\n }\n else if (typeof prop === 'function') {\n const actionValue = (process.env.NODE_ENV !== 'production') && hot ? prop : action(prop, key);\n // this a hot module replacement store because the hotUpdate method needs\n // to do it with the right context\n // @ts-expect-error\n setupStore[key] = actionValue;\n /* istanbul ignore else */\n if ((process.env.NODE_ENV !== 'production')) {\n _hmrPayload.actions[key] = prop;\n }\n // list actions so they can be used in plugins\n // @ts-expect-error\n optionsForPlugin.actions[key] = prop;\n }\n else if ((process.env.NODE_ENV !== 'production')) {\n // add getters for devtools\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 ||\n // @ts-expect-error: same\n (setupStore._getters = markRaw([]));\n getters.push(key);\n }\n }\n }\n }\n // add the state, getters, and action properties\n /* istanbul ignore if */\n assign(store, setupStore);\n // allows retrieving reactive objects with `storeToRefs()`. Must be called after assigning to the reactive object.\n // Make `storeToRefs()` work with `reactive()` #799\n assign(toRaw(store), setupStore);\n // use this instead of a computed with setter to be able to create it anywhere\n // without linking the computed lifespan to wherever the store is first\n // created.\n Object.defineProperty(store, '$state', {\n get: () => ((process.env.NODE_ENV !== 'production') && hot ? hotState.value : pinia.state.value[$id]),\n set: (state) => {\n /* istanbul ignore if */\n if ((process.env.NODE_ENV !== 'production') && hot) {\n throw new Error('cannot set hotState');\n }\n $patch(($state) => {\n // @ts-expect-error: FIXME: shouldn't error?\n assign($state, state);\n });\n },\n });\n // add the hotUpdate before plugins to allow them to override it\n /* istanbul ignore else */\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' &&\n isPlainObject(newStateTarget) &&\n isPlainObject(oldStateSource)) {\n patchObject(newStateTarget, oldStateSource);\n }\n else {\n // transfer the ref\n newStore.$state[stateKey] = oldStateSource;\n }\n }\n // patch direct access properties to allow store.stateProperty to work as\n // store.$state.stateProperty\n // @ts-expect-error: any type\n store[stateKey] = toRef(newStore.$state, stateKey);\n });\n // remove deleted state properties\n Object.keys(store.$state).forEach((stateKey) => {\n if (!(stateKey in newStore.$state)) {\n // @ts-expect-error: noop if doesn't exist\n delete store[stateKey];\n }\n });\n // avoid devtools logging this as a mutation\n isListening = false;\n isSyncListening = false;\n pinia.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 actionFn = newStore[actionName];\n // @ts-expect-error: actionName is a string\n store[actionName] =\n //\n action(actionFn, actionName);\n }\n // TODO: does this work in both setup and option store?\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(pinia);\n return getter.call(store, store);\n })\n : getter;\n // @ts-expect-error: getterName is a string\n store[getterName] =\n //\n getterValue;\n }\n // remove deleted getters\n Object.keys(store._hmrPayload.getters).forEach((key) => {\n if (!(key in newStore._hmrPayload.getters)) {\n // @ts-expect-error: noop if doesn't exist\n delete store[key];\n }\n });\n // remove old actions\n Object.keys(store._hmrPayload.actions).forEach((key) => {\n if (!(key in newStore._hmrPayload.actions)) {\n // @ts-expect-error: noop if doesn't exist\n delete store[key];\n }\n });\n // update the values used in devtools and to allow deleting new properties later on\n store._hmrPayload = newStore._hmrPayload;\n store._getters = newStore._getters;\n store._hotUpdating = false;\n });\n }\n if ((((process.env.NODE_ENV !== 'production') || (typeof __VUE_PROD_DEVTOOLS__ !== 'undefined' && __VUE_PROD_DEVTOOLS__)) && !(process.env.NODE_ENV === 'test')) && IS_CLIENT) {\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({ value: store[p] }, nonEnumerable));\n });\n }\n // apply all plugins\n pinia._p.forEach((extender) => {\n /* istanbul ignore else */\n if ((((process.env.NODE_ENV !== 'production') || (typeof __VUE_PROD_DEVTOOLS__ !== 'undefined' && __VUE_PROD_DEVTOOLS__)) && !(process.env.NODE_ENV === 'test')) && IS_CLIENT) {\n const extensions = scope.run(() => extender({\n store: store,\n app: pinia._a,\n pinia,\n options: optionsForPlugin,\n }));\n Object.keys(extensions || {}).forEach((key) => store._customProperties.add(key));\n assign(store, extensions);\n }\n else {\n assign(store, scope.run(() => extender({\n store: store,\n app: pinia._a,\n pinia,\n options: optionsForPlugin,\n })));\n }\n });\n if ((process.env.NODE_ENV !== 'production') &&\n store.$state &&\n typeof store.$state === 'object' &&\n typeof store.$state.constructor === 'function' &&\n !store.$state.constructor.toString().includes('[native code]')) {\n console.warn(`[🍍]: The \"state\" must be a plain object. It cannot be\\n` +\n `\\tstate: () => new MyClass()\\n` +\n `Found in store \"${store.$id}\".`);\n }\n // only apply hydrate to option stores with an initial state in pinia\n if (initialState &&\n isOptionsStore &&\n options.hydrate) {\n options.hydrate(store.$state, initialState);\n }\n isListening = true;\n isSyncListening = true;\n return store;\n}\n// allows unused stores to be tree shaken\n/*! #__NO_SIDE_EFFECTS__ */\nfunction defineStore(\n// TODO: add proper types from above\nid, setup, setupOptions) {\n let options;\n const isSetupStore = typeof setup === 'function';\n // the option store setup will contain the actual options in this case\n options = isSetupStore ? setupOptions : setup;\n function useStore(pinia, hot) {\n const hasContext = hasInjectionContext();\n pinia =\n // 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 : pinia) ||\n (hasContext ? inject(piniaSymbol, null) : null);\n if (pinia)\n setActivePinia(pinia);\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)\"?\\n` +\n `See https://pinia.vuejs.org/core-concepts/outside-component-usage.html for help.\\n` +\n `This will fail in production.`);\n }\n pinia = activePinia;\n if (!pinia._s.has(id)) {\n // creating the store registers it in `pinia._s`\n if (isSetupStore) {\n createSetupStore(id, setup, options, pinia);\n }\n else {\n createOptionsStore(id, options, pinia);\n }\n /* istanbul ignore else */\n if ((process.env.NODE_ENV !== 'production')) {\n // @ts-expect-error: not the right inferred type\n useStore._pinia = pinia;\n }\n }\n const store = pinia._s.get(id);\n if ((process.env.NODE_ENV !== 'production') && hot) {\n const hotId = '__hot:' + id;\n const newStore = isSetupStore\n ? createSetupStore(hotId, setup, options, pinia, true)\n : createOptionsStore(hotId, assign({}, options), pinia, true);\n hot._hotUpdate(newStore);\n // cleanup the state properties and the store from the cache\n delete pinia.state.value[hotId];\n pinia._s.delete(hotId);\n }\n if ((process.env.NODE_ENV !== 'production') && IS_CLIENT) {\n const currentInstance = getCurrentInstance();\n // save stores in instances to access them devtools\n if (currentInstance &&\n currentInstance.proxy &&\n // 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 // StoreGeneric cannot be casted towards Store\n return store;\n }\n useStore.$id = id;\n return useStore;\n}\n\nlet mapStoreSuffix = 'Store';\n/**\n * Changes the suffix added by `mapStores()`. Can be set to an empty string.\n * Defaults to `\"Store\"`. Make sure to extend the MapStoresCustomization\n * interface if you are using TypeScript.\n *\n * @param suffix - new suffix\n */\nfunction setMapStoreSuffix(suffix // could be 'Store' but that would be annoying for JS\n) {\n mapStoreSuffix = suffix;\n}\n/**\n * Allows using stores without the composition API (`setup()`) by generating an\n * object to be spread in the `computed` field of a component. It accepts a list\n * of store definitions.\n *\n * @example\n * ```js\n * export default {\n * computed: {\n * // other computed properties\n * ...mapStores(useUserStore, useCartStore)\n * },\n *\n * created() {\n * this.userStore // store with id \"user\"\n * this.cartStore // store with id \"cart\"\n * }\n * }\n * ```\n *\n * @param stores - list of stores to map to an object\n */\nfunction mapStores(...stores) {\n if ((process.env.NODE_ENV !== 'production') && Array.isArray(stores[0])) {\n console.warn(`[🍍]: Directly pass all stores to \"mapStores()\" without putting them in an array:\\n` +\n `Replace\\n` +\n `\\tmapStores([useAuthStore, useCartStore])\\n` +\n `with\\n` +\n `\\tmapStores(useAuthStore, useCartStore)\\n` +\n `This will fail in production if not fixed.`);\n stores = stores[0];\n }\n return stores.reduce((reduced, useStore) => {\n // @ts-expect-error: $id is added by defineStore\n reduced[useStore.$id + mapStoreSuffix] = function () {\n return useStore(this.$pinia);\n };\n return reduced;\n }, {});\n}\n/**\n * Allows using state and getters from one store without using the composition\n * API (`setup()`) by generating an object to be spread in the `computed` field\n * of a component.\n *\n * @param useStore - store to map from\n * @param keysOrMapper - array or object\n */\nfunction mapState(useStore, keysOrMapper) {\n return Array.isArray(keysOrMapper)\n ? keysOrMapper.reduce((reduced, key) => {\n reduced[key] = function () {\n // @ts-expect-error: FIXME: should work?\n return useStore(this.$pinia)[key];\n };\n return reduced;\n }, {})\n : Object.keys(keysOrMapper).reduce((reduced, key) => {\n // @ts-expect-error\n reduced[key] = function () {\n const store = useStore(this.$pinia);\n const storeKey = keysOrMapper[key];\n // for some reason TS is unable to infer the type of storeKey to be a\n // function\n return typeof storeKey === 'function'\n ? storeKey.call(this, store)\n : // @ts-expect-error: FIXME: should work?\n store[storeKey];\n };\n return reduced;\n }, {});\n}\n/**\n * Alias for `mapState()`. You should use `mapState()` instead.\n * @deprecated use `mapState()` instead.\n */\nconst mapGetters = mapState;\n/**\n * Allows directly using actions from your store without using the composition\n * API (`setup()`) by generating an object to be spread in the `methods` field\n * of a component.\n *\n * @param useStore - store to map from\n * @param keysOrMapper - array or object\n */\nfunction mapActions(useStore, keysOrMapper) {\n return Array.isArray(keysOrMapper)\n ? keysOrMapper.reduce((reduced, key) => {\n // @ts-expect-error\n reduced[key] = function (...args) {\n // @ts-expect-error: FIXME: should work?\n return useStore(this.$pinia)[key](...args);\n };\n return reduced;\n }, {})\n : Object.keys(keysOrMapper).reduce((reduced, key) => {\n // @ts-expect-error\n reduced[key] = function (...args) {\n // @ts-expect-error: FIXME: should work?\n return useStore(this.$pinia)[keysOrMapper[key]](...args);\n };\n return reduced;\n }, {});\n}\n/**\n * Allows using state and getters from one store without using the composition\n * API (`setup()`) by generating an object to be spread in the `computed` field\n * of a component.\n *\n * @param useStore - store to map from\n * @param keysOrMapper - array or object\n */\nfunction mapWritableState(useStore, keysOrMapper) {\n return Array.isArray(keysOrMapper)\n ? keysOrMapper.reduce((reduced, key) => {\n reduced[key] = {\n get() {\n return useStore(this.$pinia)[key];\n },\n set(value) {\n return (useStore(this.$pinia)[key] = value);\n },\n };\n return reduced;\n }, {})\n : Object.keys(keysOrMapper).reduce((reduced, key) => {\n reduced[key] = {\n get() {\n return useStore(this.$pinia)[keysOrMapper[key]];\n },\n set(value) {\n return (useStore(this.$pinia)[keysOrMapper[key]] = value);\n },\n };\n return reduced;\n }, {});\n}\n\n/**\n * Creates an object of references with all the state, getters, and plugin-added\n * state properties of the store. Similar to `toRefs()` but specifically\n * designed for Pinia stores so methods and non reactive properties are\n * completely ignored.\n *\n * @param store - store to extract the refs from\n */\nfunction storeToRefs(store) {\n const rawStore = toRaw(store);\n const refs = {};\n for (const key in rawStore) {\n const value = rawStore[key];\n // There is no native method to check for a computed\n // https://github.com/vuejs/core/pull/4165\n if (value.effect) {\n // @ts-expect-error: too hard to type correctly\n refs[key] =\n // ...\n computed({\n get: () => store[key],\n set(value) {\n store[key] = value;\n },\n });\n }\n else if (isRef(value) || isReactive(value)) {\n // @ts-expect-error: the key is state or getter\n refs[key] =\n // ---\n toRef(store, key);\n }\n }\n return refs;\n}\n\nexport { MutationType, acceptHMRUpdate, createPinia, defineStore, disposePinia, getActivePinia, mapActions, mapGetters, mapState, mapStores, mapWritableState, setActivePinia, setMapStoreSuffix, shouldHydrate, skipHydrate, storeToRefs };\n","import { watch as zt, onMounted as Mn, nextTick as br, readonly as $n, getCurrentInstance as zn, toRef as Ti, customRef as Li, ref as j, reactive as lr, computed as J, toValue as At, shallowRef as Tn, unref as Di, inject as xe, provide as Xr } from \"vue\";\nimport { defineStore as Ci, storeToRefs as Ln } from \"pinia\";\nconst qi = typeof window < \"u\" && typeof document < \"u\";\ntypeof WorkerGlobalScope < \"u\" && globalThis instanceof WorkerGlobalScope;\nconst Ni = Object.prototype.toString, Pi = (e) => Ni.call(e) === \"[object Object]\", Dn = () => {\n};\nfunction Fi(...e) {\n if (e.length !== 1) return Ti(...e);\n const t = e[0];\n return typeof t == \"function\" ? $n(Li(() => ({\n get: t,\n set: Dn\n }))) : j(t);\n}\nfunction ji(e, t) {\n function r(...n) {\n return new Promise((i, o) => {\n Promise.resolve(e(() => t.apply(this, n), {\n fn: t,\n thisArg: this,\n args: n\n })).then(i).catch(o);\n });\n }\n return r;\n}\nconst Cn = (e) => e();\nfunction Bi(e = Cn, t = {}) {\n const { initialState: r = \"active\" } = t, n = Fi(r === \"active\");\n function i() {\n n.value = !1;\n }\n function o() {\n n.value = !0;\n }\n const s = (...a) => {\n n.value && e(...a);\n };\n return {\n isActive: $n(n),\n pause: i,\n resume: o,\n eventFilter: s\n };\n}\nfunction nr(e) {\n return Array.isArray(e) ? e : [e];\n}\nfunction xi(e) {\n return zn();\n}\nfunction Ui(e, t, r = {}) {\n const { eventFilter: n = Cn, ...i } = r;\n return zt(e, ji(n, t), i);\n}\nfunction Wi(e, t, r = {}) {\n const { eventFilter: n, initialState: i = \"active\", ...o } = r, { eventFilter: s, pause: a, resume: u, isActive: c } = Bi(n, { initialState: i });\n return {\n stop: Ui(e, t, {\n ...o,\n eventFilter: s\n }),\n pause: a,\n resume: u,\n isActive: c\n };\n}\nfunction Ki(e, t = !0, r) {\n xi() ? Mn(e, r) : t ? e() : br(e);\n}\nfunction Hi(e, t, r) {\n return zt(e, t, {\n ...r,\n immediate: !0\n });\n}\nfunction he(e, t, r) {\n return zt(e, (i, o, s) => {\n i && t(i, o, s);\n }, {\n ...r,\n once: !1\n });\n}\nconst Ft = qi ? window : void 0;\nfunction Vi(e) {\n var t;\n const r = At(e);\n return (t = r?.$el) !== null && t !== void 0 ? t : r;\n}\nfunction Ht(...e) {\n const t = (n, i, o, s) => (n.addEventListener(i, o, s), () => n.removeEventListener(i, o, s)), r = J(() => {\n const n = nr(At(e[0])).filter((i) => i != null);\n return n.every((i) => typeof i != \"string\") ? n : void 0;\n });\n return Hi(() => {\n var n, i;\n return [\n (n = (i = r.value) === null || i === void 0 ? void 0 : i.map((o) => Vi(o))) !== null && n !== void 0 ? n : [Ft].filter((o) => o != null),\n nr(At(r.value ? e[1] : e[0])),\n nr(Di(r.value ? e[2] : e[1])),\n At(r.value ? e[3] : e[2])\n ];\n }, ([n, i, o, s], a, u) => {\n if (!n?.length || !i?.length || !o?.length) return;\n const c = Pi(s) ? { ...s } : s, f = n.flatMap((h) => i.flatMap((l) => o.map((d) => t(h, l, d, c))));\n u(() => {\n f.forEach((h) => h());\n });\n }, { flush: \"post\" });\n}\nconst De = typeof globalThis < \"u\" ? globalThis : typeof window < \"u\" ? window : typeof global < \"u\" ? global : typeof self < \"u\" ? self : {}, Ce = \"__vueuse_ssr_handlers__\", Yi = /* @__PURE__ */ Ji();\nfunction Ji() {\n return Ce in De || (De[Ce] = De[Ce] || {}), De[Ce];\n}\nfunction Gi(e, t) {\n return Yi[e] || t;\n}\nfunction Zi(e) {\n return e == null ? \"any\" : e instanceof Set ? \"set\" : e instanceof Map ? \"map\" : e instanceof Date ? \"date\" : typeof e == \"boolean\" ? \"boolean\" : typeof e == \"string\" ? \"string\" : typeof e == \"object\" ? \"object\" : Number.isNaN(e) ? \"any\" : \"number\";\n}\nconst Xi = {\n boolean: {\n read: (e) => e === \"true\",\n write: (e) => String(e)\n },\n object: {\n read: (e) => JSON.parse(e),\n write: (e) => JSON.stringify(e)\n },\n number: {\n read: (e) => Number.parseFloat(e),\n write: (e) => String(e)\n },\n any: {\n read: (e) => e,\n write: (e) => String(e)\n },\n string: {\n read: (e) => e,\n write: (e) => String(e)\n },\n map: {\n read: (e) => new Map(JSON.parse(e)),\n write: (e) => JSON.stringify(Array.from(e.entries()))\n },\n set: {\n read: (e) => new Set(JSON.parse(e)),\n write: (e) => JSON.stringify(Array.from(e))\n },\n date: {\n read: (e) => new Date(e),\n write: (e) => e.toISOString()\n }\n}, Qr = \"vueuse-storage\";\nfunction Qi(e, t, r, n = {}) {\n var i;\n const { flush: o = \"pre\", deep: s = !0, listenToStorageChanges: a = !0, writeDefaults: u = !0, mergeDefaults: c = !1, shallow: f, window: h = Ft, eventFilter: l, onError: d = (E) => {\n console.error(E);\n }, initOnMounted: p } = n, _ = (f ? Tn : j)(t), m = J(() => At(e));\n if (!r) try {\n r = Gi(\"getDefaultStorage\", () => Ft?.localStorage)();\n } catch (E) {\n d(E);\n }\n if (!r) return _;\n const R = At(t), O = Zi(R), w = (i = n.serializer) !== null && i !== void 0 ? i : Xi[O], { pause: K, resume: A } = Wi(_, (E) => ce(E), {\n flush: o,\n deep: s,\n eventFilter: l\n });\n zt(m, () => bt(), { flush: o });\n let $ = !1;\n const z = (E) => {\n p && !$ || bt(E);\n }, Y = (E) => {\n p && !$ || Wt(E);\n };\n h && a && (r instanceof Storage ? Ht(h, \"storage\", z, { passive: !0 }) : Ht(h, Qr, Y)), p ? Ki(() => {\n $ = !0, bt();\n }) : bt();\n function _t(E, B) {\n if (h) {\n const X = {\n key: m.value,\n oldValue: E,\n newValue: B,\n storageArea: r\n };\n h.dispatchEvent(r instanceof Storage ? new StorageEvent(\"storage\", X) : new CustomEvent(Qr, { detail: X }));\n }\n }\n function ce(E) {\n try {\n const B = r.getItem(m.value);\n if (E == null)\n _t(B, null), r.removeItem(m.value);\n else {\n const X = w.write(E);\n B !== X && (r.setItem(m.value, X), _t(B, X));\n }\n } catch (B) {\n d(B);\n }\n }\n function fe(E) {\n const B = E ? E.newValue : r.getItem(m.value);\n if (B == null)\n return u && R != null && r.setItem(m.value, w.write(R)), R;\n if (!E && c) {\n const X = w.read(B);\n return typeof c == \"function\" ? c(X, R) : O === \"object\" && !Array.isArray(X) ? {\n ...R,\n ...X\n } : X;\n } else return typeof B != \"string\" ? B : w.read(B);\n }\n function bt(E) {\n if (!(E && E.storageArea !== r)) {\n if (E && E.key == null) {\n _.value = R;\n return;\n }\n if (!(E && E.key !== m.value)) {\n K();\n try {\n const B = w.write(_.value);\n (E === void 0 || E?.newValue !== B) && (_.value = fe(E));\n } catch (B) {\n d(B);\n } finally {\n E ? br(A) : A();\n }\n }\n }\n }\n function Wt(E) {\n bt(E.detail);\n }\n return _;\n}\nfunction to(e, t, r = {}) {\n const { window: n = Ft } = r;\n return Qi(e, t, n?.localStorage, r);\n}\nconst eo = {\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};\nfunction ro(e = {}) {\n const { reactive: t = !1, target: r = Ft, aliasMap: n = eo, passive: i = !0, onEventFired: o = Dn } = e, s = lr(/* @__PURE__ */ new Set()), a = {\n toJSON() {\n return {};\n },\n current: s\n }, u = t ? lr(a) : a, c = /* @__PURE__ */ new Set(), f = /* @__PURE__ */ new Map([\n [\"Meta\", c],\n [\"Shift\", /* @__PURE__ */ new Set()],\n [\"Alt\", /* @__PURE__ */ new Set()]\n ]), h = /* @__PURE__ */ new Set();\n function l(O, w) {\n O in u && (t ? u[O] = w : u[O].value = w);\n }\n function d() {\n s.clear();\n for (const O of h) l(O, !1);\n }\n function p(O, w, K) {\n if (!(!O || typeof w.getModifierState != \"function\")) {\n for (const [A, $] of f) if (w.getModifierState(A)) {\n K.forEach((z) => $.add(z));\n break;\n }\n }\n }\n function _(O, w) {\n if (O) return;\n const K = `${w[0].toUpperCase()}${w.slice(1)}`, A = f.get(K);\n if (![\"shift\", \"alt\"].includes(w) || !A) return;\n const $ = Array.from(A), z = $.indexOf(w);\n $.forEach((Y, _t) => {\n _t >= z && (s.delete(Y), l(Y, !1));\n }), A.clear();\n }\n function m(O, w) {\n var K, A;\n const $ = (K = O.key) === null || K === void 0 ? void 0 : K.toLowerCase(), z = [(A = O.code) === null || A === void 0 ? void 0 : A.toLowerCase(), $].filter(Boolean);\n if ($) {\n $ && (w ? s.add($) : s.delete($));\n for (const Y of z)\n h.add(Y), l(Y, w);\n p(w, O, [...s, ...z]), _(w, $), $ === \"meta\" && !w && (c.forEach((Y) => {\n s.delete(Y), l(Y, !1);\n }), c.clear());\n }\n }\n Ht(r, \"keydown\", (O) => (m(O, !0), o(O)), { passive: i }), Ht(r, \"keyup\", (O) => (m(O, !1), o(O)), { passive: i }), Ht(\"blur\", d, { passive: i }), Ht(\"focus\", d, { passive: i });\n const R = new Proxy(u, { get(O, w, K) {\n if (typeof w != \"string\") return Reflect.get(O, w, K);\n if (w = w.toLowerCase(), w in n && (w = n[w]), !(w in u)) if (/[+_-]/.test(w)) {\n const $ = w.split(/[+_-]/g).map((z) => z.trim());\n u[w] = J(() => $.map((z) => At(R[z])).every(Boolean));\n } else u[w] = Tn(!1);\n const A = Reflect.get(O, w, K);\n return t ? At(A) : A;\n } });\n return R;\n}\nfunction ir() {\n return typeof crypto < \"u\" && crypto.randomUUID ? crypto.randomUUID() : `${Date.now()}-${Math.random().toString(36).substring(2, 9)}`;\n}\nfunction qe(e) {\n const t = {\n type: e.type,\n clientId: e.clientId,\n timestamp: e.timestamp.toISOString()\n };\n return e.operation && (t.operation = {\n ...e.operation,\n timestamp: e.operation.timestamp.toISOString()\n }), e.operations && (t.operations = e.operations.map((r) => ({\n ...r,\n timestamp: r.timestamp.toISOString()\n }))), t;\n}\nfunction no(e) {\n const t = {\n type: e.type,\n clientId: e.clientId,\n timestamp: new Date(e.timestamp)\n };\n return e.operation && (t.operation = {\n ...e.operation,\n timestamp: new Date(e.operation.timestamp)\n }), e.operations && (t.operations = e.operations.map((r) => ({\n ...r,\n timestamp: new Date(r.timestamp)\n }))), t;\n}\nfunction tn(e, t) {\n (e.type === \"set\" || e.type === \"delete\") && t && typeof t.set == \"function\" && t.set(e.path, e.beforeValue, \"undo\");\n}\nfunction en(e, t) {\n (e.type === \"set\" || e.type === \"delete\") && t && typeof t.set == \"function\" && t.set(e.path, e.afterValue, \"redo\");\n}\nconst Ie = Ci(\"hst-operation-log\", () => {\n const e = j({\n maxOperations: 100,\n enableCrossTabSync: !0,\n autoSyncInterval: 3e4,\n enablePersistence: !1,\n persistenceKeyPrefix: \"stonecrop-ops\"\n }), t = j([]), r = j(-1), n = j(ir()), i = j(!1), o = j([]), s = J(() => r.value < 0 ? !1 : t.value[r.value]?.reversible ?? !1), a = J(() => r.value < t.value.length - 1), u = J(() => {\n let v = 0;\n for (let y = r.value; y >= 0 && t.value[y]?.reversible; y--)\n v++;\n return v;\n }), c = J(() => t.value.length - 1 - r.value), f = J(\n () => ({\n canUndo: s.value,\n canRedo: a.value,\n undoCount: u.value,\n redoCount: c.value,\n currentIndex: r.value\n })\n );\n function h(v) {\n e.value = { ...e.value, ...v }, e.value.enablePersistence && (E(), X()), e.value.enableCrossTabSync && Y();\n }\n function l(v, y = \"user\") {\n const g = {\n ...v,\n id: ir(),\n timestamp: /* @__PURE__ */ new Date(),\n source: y,\n userId: e.value.userId\n };\n if (e.value.operationFilter && !e.value.operationFilter(g))\n return g.id;\n if (i.value && o.value.length > 0)\n return o.value[o.value.length - 1].operations.push(g), g.id;\n if (r.value < t.value.length - 1 && (t.value = t.value.slice(0, r.value + 1)), t.value.push(g), r.value++, e.value.maxOperations && t.value.length > e.value.maxOperations) {\n const U = t.value.length - e.value.maxOperations;\n t.value = t.value.slice(U), r.value -= U;\n }\n return e.value.enableCrossTabSync && _t(g), g.id;\n }\n function d() {\n i.value = !0, o.value.push({\n id: ir(),\n operations: []\n });\n }\n function p(v) {\n if (!i.value || o.value.length === 0)\n return null;\n const y = o.value.pop(), g = y.operations;\n if (g.length === 0)\n return o.value.length === 0 && (i.value = !1), null;\n const U = y.id, ft = g.every((Ot) => Ot.reversible), gt = {\n id: U,\n type: \"batch\",\n path: \"\",\n // Batch doesn't have a single path\n fieldname: \"\",\n beforeValue: null,\n afterValue: null,\n doctype: g[0]?.doctype || \"\",\n timestamp: /* @__PURE__ */ new Date(),\n source: \"user\",\n reversible: ft,\n irreversibleReason: ft ? void 0 : \"Contains irreversible operations\",\n descendantOperationIds: g.map((Ot) => Ot.id),\n metadata: { description: v }\n };\n return g.forEach((Ot) => {\n Ot.ancestorOperationId = U;\n }), o.value.length > 0 ? o.value[o.value.length - 1].operations.push(gt) : (t.value.push(...g, gt), r.value = t.value.length - 1), e.value.enableCrossTabSync && ce(g, gt), o.value.length === 0 && (i.value = !1), U;\n }\n function _() {\n o.value = [], i.value = !1;\n }\n function m(v) {\n if (!s.value) return !1;\n const y = t.value[r.value];\n if (!y.reversible)\n return typeof console < \"u\" && y.irreversibleReason && console.warn(\"Cannot undo irreversible operation:\", y.irreversibleReason), !1;\n try {\n if (y.type === \"batch\" && y.descendantOperationIds)\n for (let g = y.descendantOperationIds.length - 1; g >= 0; g--) {\n const U = y.descendantOperationIds[g], ft = t.value.find((gt) => gt.id === U);\n ft && tn(ft, v);\n }\n else\n tn(y, v);\n return r.value--, e.value.enableCrossTabSync && fe(y), !0;\n } catch (g) {\n return typeof console < \"u\" && console.error(\"Undo failed:\", g), !1;\n }\n }\n function R(v) {\n if (!a.value) return !1;\n const y = t.value[r.value + 1];\n try {\n if (y.type === \"batch\" && y.descendantOperationIds)\n for (const g of y.descendantOperationIds) {\n const U = t.value.find((ft) => ft.id === g);\n U && en(U, v);\n }\n else\n en(y, v);\n return r.value++, e.value.enableCrossTabSync && bt(y), !0;\n } catch (g) {\n return typeof console < \"u\" && console.error(\"Redo failed:\", g), !1;\n }\n }\n function O() {\n const v = t.value.filter((g) => g.reversible).length, y = t.value.map((g) => g.timestamp);\n return {\n operations: [...t.value],\n currentIndex: r.value,\n totalOperations: t.value.length,\n reversibleOperations: v,\n irreversibleOperations: t.value.length - v,\n oldestOperation: y.length > 0 ? new Date(Math.min(...y.map((g) => g.getTime()))) : void 0,\n newestOperation: y.length > 0 ? new Date(Math.max(...y.map((g) => g.getTime()))) : void 0\n };\n }\n function w() {\n t.value = [], r.value = -1;\n }\n function K(v, y) {\n return t.value.filter((g) => g.doctype === v && (y === void 0 || g.recordId === y));\n }\n function A(v, y) {\n const g = t.value.find((U) => U.id === v);\n g && (g.reversible = !1, g.irreversibleReason = y);\n }\n function $(v, y, g, U = \"success\", ft) {\n const gt = {\n type: \"action\",\n path: g && g.length > 0 ? `${v}.${g[0]}` : v,\n fieldname: \"\",\n beforeValue: null,\n afterValue: null,\n doctype: v,\n recordId: g && g.length > 0 ? g[0] : void 0,\n reversible: !1,\n // Actions are typically not reversible\n actionName: y,\n actionRecordIds: g,\n actionResult: U,\n actionError: ft\n };\n return l(gt);\n }\n let z = null;\n function Y() {\n typeof window > \"u\" || !window.BroadcastChannel || (z = new BroadcastChannel(\"stonecrop-operation-log\"), z.addEventListener(\"message\", (v) => {\n const y = v.data;\n if (!y || typeof y != \"object\") return;\n const g = no(y);\n g.clientId !== n.value && (g.type === \"operation\" && g.operation ? (t.value.push({ ...g.operation, source: \"sync\" }), r.value = t.value.length - 1) : g.type === \"operation\" && g.operations && (t.value.push(\n ...g.operations.map((U) => Object.assign({}, U, { source: \"sync\" }))\n ), r.value = t.value.length - 1));\n }));\n }\n function _t(v) {\n if (!z) return;\n const y = {\n type: \"operation\",\n operation: v,\n clientId: n.value,\n timestamp: /* @__PURE__ */ new Date()\n };\n z.postMessage(qe(y));\n }\n function ce(v, y) {\n if (!z) return;\n const g = {\n type: \"operation\",\n operations: [...v, y],\n clientId: n.value,\n timestamp: /* @__PURE__ */ new Date()\n };\n z.postMessage(qe(g));\n }\n function fe(v) {\n if (!z) return;\n const y = {\n type: \"undo\",\n operation: v,\n clientId: n.value,\n timestamp: /* @__PURE__ */ new Date()\n };\n z.postMessage(qe(y));\n }\n function bt(v) {\n if (!z) return;\n const y = {\n type: \"redo\",\n operation: v,\n clientId: n.value,\n timestamp: /* @__PURE__ */ new Date()\n };\n z.postMessage(qe(y));\n }\n const Wt = to(\"stonecrop-operations\", null, {\n serializer: {\n read: (v) => {\n try {\n return JSON.parse(v);\n } catch {\n return null;\n }\n },\n write: (v) => v ? JSON.stringify(v) : \"\"\n }\n });\n function E() {\n if (!(typeof window > \"u\"))\n try {\n const v = Wt.value;\n v && Array.isArray(v.operations) && (t.value = v.operations.map((y) => ({\n ...y,\n timestamp: new Date(y.timestamp)\n })), r.value = v.currentIndex ?? -1);\n } catch (v) {\n typeof console < \"u\" && console.error(\"Failed to load operations from persistence:\", v);\n }\n }\n function B() {\n if (!(typeof window > \"u\"))\n try {\n Wt.value = {\n operations: t.value.map((v) => ({\n ...v,\n timestamp: v.timestamp.toISOString()\n })),\n currentIndex: r.value\n };\n } catch (v) {\n typeof console < \"u\" && console.error(\"Failed to save operations to persistence:\", v);\n }\n }\n function X() {\n zt(\n [t, r],\n () => {\n e.value.enablePersistence && B();\n },\n { deep: !0 }\n );\n }\n return {\n // State\n operations: t,\n currentIndex: r,\n config: e,\n clientId: n,\n undoRedoState: f,\n // Computed\n canUndo: s,\n canRedo: a,\n undoCount: u,\n redoCount: c,\n // Methods\n configure: h,\n addOperation: l,\n startBatch: d,\n commitBatch: p,\n cancelBatch: _,\n undo: m,\n redo: R,\n clear: w,\n getOperationsFor: K,\n getSnapshot: O,\n markIrreversible: A,\n logAction: $\n };\n});\nclass ge {\n /**\n * The root FieldTriggerEngine instance\n */\n static _root;\n options;\n doctypeActions = /* @__PURE__ */ new Map();\n // doctype -> action/field -> functions\n doctypeTransitions = /* @__PURE__ */ new Map();\n // doctype -> transition -> functions\n fieldRollbackConfig = /* @__PURE__ */ new Map();\n // doctype -> field -> rollback enabled\n globalActions = /* @__PURE__ */ new Map();\n // action name -> function\n globalTransitionActions = /* @__PURE__ */ new Map();\n // transition action name -> function\n /**\n * Creates a new FieldTriggerEngine instance (singleton pattern)\n * @param options - Configuration options for the field trigger engine\n */\n constructor(t = {}) {\n return ge._root ? ge._root : (ge._root = this, this.options = {\n defaultTimeout: t.defaultTimeout ?? 5e3,\n debug: t.debug ?? !1,\n enableRollback: t.enableRollback ?? !0,\n errorHandler: t.errorHandler\n }, this);\n }\n /**\n * Register a global action function\n * @param name - The name of the action\n * @param fn - The action function\n */\n registerAction(t, r) {\n this.globalActions.set(t, r);\n }\n /**\n * Look up a registered action function by name.\n * Returns `undefined` if the action has not been registered.\n * @param name - The action name\n */\n getAction(t) {\n return this.globalActions.get(t);\n }\n /**\n * Register a global XState transition action function\n * @param name - The name of the transition action\n * @param fn - The transition action function\n */\n registerTransitionAction(t, r) {\n this.globalTransitionActions.set(t, r);\n }\n /**\n * Configure rollback behavior for a specific field trigger\n * @param doctype - The doctype name\n * @param fieldname - The field name\n * @param enableRollback - Whether to enable rollback\n */\n setFieldRollback(t, r, n) {\n this.fieldRollbackConfig.has(t) || this.fieldRollbackConfig.set(t, /* @__PURE__ */ new Map()), this.fieldRollbackConfig.get(t).set(r, n);\n }\n /**\n * Get rollback configuration for a specific field trigger\n */\n getFieldRollback(t, r) {\n return this.fieldRollbackConfig.get(t)?.get(r);\n }\n /**\n * Register actions from a doctype - both regular actions and field triggers\n * Separates XState transitions (uppercase) from field triggers (lowercase)\n * @param doctype - The doctype name\n * @param actions - The actions to register (supports Immutable Map, Map, or plain object)\n */\n registerDoctypeActions(t, r) {\n if (!r) return;\n const n = /* @__PURE__ */ new Map(), i = /* @__PURE__ */ new Map(), o = r;\n if (typeof o.entrySeq == \"function\")\n o.entrySeq().forEach(([s, a]) => {\n this.categorizeAction(s, a, n, i);\n });\n else if (r instanceof Map)\n for (const [s, a] of r)\n this.categorizeAction(s, a, n, i);\n else r && typeof r == \"object\" && Object.entries(r).forEach(([s, a]) => {\n this.categorizeAction(s, a, n, i);\n });\n this.doctypeActions.set(t, n), this.doctypeTransitions.set(t, i);\n }\n /**\n * Categorize an action as either a field trigger or XState transition\n * Uses uppercase convention: UPPERCASE = transition, lowercase/mixed = field trigger\n */\n categorizeAction(t, r, n, i) {\n this.isTransitionKey(t) ? i.set(t, r) : n.set(t, r);\n }\n /**\n * Determine if a key represents an XState transition\n * Transitions are identified by being all uppercase\n */\n isTransitionKey(t) {\n return /^[A-Z0-9_]+$/.test(t) && t.length > 0;\n }\n /**\n * Execute field triggers for a changed field\n * @param context - The field change context\n * @param options - Execution options (timeout and enableRollback)\n */\n async executeFieldTriggers(t, r = {}) {\n const { doctype: n, fieldname: i } = t, o = this.findFieldTriggers(n, i);\n if (o.length === 0)\n return {\n path: t.path,\n actionResults: [],\n totalExecutionTime: 0,\n allSucceeded: !0,\n stoppedOnError: !1,\n rolledBack: !1\n };\n const s = performance.now(), a = [];\n let u = !1, c = !1, f;\n const h = this.getFieldRollback(n, i), l = r.enableRollback ?? h ?? this.options.enableRollback;\n l && t.store && (f = this.captureSnapshot(t));\n for (const m of o)\n try {\n const R = await this.executeAction(m, t, r.timeout);\n if (a.push(R), !R.success) {\n u = !0;\n break;\n }\n } catch (R) {\n const w = {\n success: !1,\n error: R instanceof Error ? R : new Error(String(R)),\n executionTime: 0,\n action: m\n };\n a.push(w), u = !0;\n break;\n }\n if (l && u && f && t.store)\n try {\n this.restoreSnapshot(t, f), c = !0;\n } catch (m) {\n console.error(\"[FieldTriggers] Rollback failed:\", m);\n }\n const d = performance.now() - s, p = a.filter((m) => !m.success && m.error != null);\n if (p.length > 0 && this.options.errorHandler)\n for (const m of p)\n try {\n m.error && this.options.errorHandler(m.error, t, m.action);\n } catch (R) {\n console.error(\"[FieldTriggers] Error in global error handler:\", R);\n }\n return {\n path: t.path,\n actionResults: a,\n totalExecutionTime: d,\n allSucceeded: a.every((m) => m.success),\n stoppedOnError: u,\n rolledBack: c,\n snapshot: this.options.debug && l ? f : void 0\n // Only include snapshot in debug mode if rollback is enabled\n };\n }\n /**\n * Execute XState transition actions\n * Similar to field triggers but specifically for FSM state transitions\n * @param context - The transition change context\n * @param options - Execution options (timeout)\n */\n async executeTransitionActions(t, r = {}) {\n const { doctype: n, transition: i } = t, o = this.findTransitionActions(n, i);\n if (o.length === 0)\n return [];\n const s = [];\n for (const u of o)\n try {\n const c = await this.executeTransitionAction(u, t, r.timeout);\n if (s.push(c), !c.success)\n break;\n } catch (c) {\n const h = {\n success: !1,\n error: c instanceof Error ? c : new Error(String(c)),\n executionTime: 0,\n action: u,\n transition: i\n };\n s.push(h);\n break;\n }\n const a = s.filter((u) => !u.success);\n if (a.length > 0 && this.options.errorHandler)\n for (const u of a)\n try {\n u.error && this.options.errorHandler(u.error, t, u.action);\n } catch (c) {\n console.error(\"[FieldTriggers] Error in global error handler:\", c);\n }\n return s;\n }\n /**\n * Find transition actions for a specific doctype and transition\n */\n findTransitionActions(t, r) {\n const n = this.doctypeTransitions.get(t);\n return n ? n.get(r) || [] : [];\n }\n /**\n * Execute a single transition action by name\n */\n async executeTransitionAction(t, r, n) {\n const i = performance.now(), o = n ?? this.options.defaultTimeout;\n try {\n let s = this.globalTransitionActions.get(t);\n if (!s) {\n const u = this.globalActions.get(t);\n u && (s = u);\n }\n if (!s)\n throw new Error(`Transition action \"${t}\" not found in registry`);\n return await this.executeWithTimeout(s, r, o), {\n success: !0,\n executionTime: performance.now() - i,\n action: t,\n transition: r.transition\n };\n } catch (s) {\n const a = performance.now() - i;\n return {\n success: !1,\n error: s instanceof Error ? s : new Error(String(s)),\n executionTime: a,\n action: t,\n transition: r.transition\n };\n }\n }\n /**\n * Find field triggers for a specific doctype and field\n * Field triggers are identified by keys that look like field paths (contain dots or match field names)\n */\n findFieldTriggers(t, r) {\n const n = this.doctypeActions.get(t);\n if (!n) return [];\n const i = [];\n for (const [o, s] of n)\n this.isFieldTriggerKey(o, r) && i.push(...s);\n return i;\n }\n /**\n * Determine if an action key represents a field trigger\n * Field triggers can be:\n * - Exact field name match: \"emailAddress\"\n * - Wildcard patterns: \"emailAddress.*\", \"*.is_primary\"\n * - Nested field paths: \"address.street\", \"contact.email\"\n */\n isFieldTriggerKey(t, r) {\n return t === r ? !0 : t.includes(\".\") ? this.matchFieldPattern(t, r) : t.includes(\"*\") ? this.matchFieldPattern(t, r) : !1;\n }\n /**\n * Match a field pattern against a field name\n * Supports wildcards (*) for dynamic segments\n */\n matchFieldPattern(t, r) {\n const n = t.split(\".\"), i = r.split(\".\");\n if (n.length !== i.length)\n return !1;\n for (let o = 0; o < n.length; o++) {\n const s = n[o], a = i[o];\n if (s !== \"*\" && s !== a)\n return !1;\n }\n return !0;\n }\n /**\n * Execute a single action by name\n */\n async executeAction(t, r, n) {\n const i = performance.now(), o = n ?? this.options.defaultTimeout;\n try {\n const s = this.globalActions.get(t);\n if (!s)\n throw new Error(`Action \"${t}\" not found in registry`);\n return await this.executeWithTimeout(s, r, o), {\n success: !0,\n executionTime: performance.now() - i,\n action: t\n };\n } catch (s) {\n const a = performance.now() - i;\n return {\n success: !1,\n error: s instanceof Error ? s : new Error(String(s)),\n executionTime: a,\n action: t\n };\n }\n }\n /**\n * Execute a function with timeout\n */\n async executeWithTimeout(t, r, n) {\n return new Promise((i, o) => {\n const s = setTimeout(() => {\n o(new Error(`Action timeout after ${n}ms`));\n }, n);\n Promise.resolve(t(r)).then((a) => (clearTimeout(s), i(a))).catch((a) => {\n clearTimeout(s), o(a instanceof Error ? a : new Error(String(a)));\n });\n });\n }\n /**\n * Capture a snapshot of the record state before executing actions\n * This creates a deep copy of the record data for potential rollback\n */\n captureSnapshot(t) {\n if (!(!t.store || !t.doctype || !t.recordId))\n try {\n const r = `${t.doctype}.${t.recordId}`, n = t.store.get(r);\n return !n || typeof n != \"object\" ? void 0 : JSON.parse(JSON.stringify(n));\n } catch (r) {\n this.options.debug && console.warn(\"[FieldTriggers] Failed to capture snapshot:\", r);\n return;\n }\n }\n /**\n * Restore a previously captured snapshot\n * This reverts the record to its state before actions were executed\n */\n restoreSnapshot(t, r) {\n if (!(!t.store || !t.doctype || !t.recordId || !r))\n try {\n const n = `${t.doctype}.${t.recordId}`;\n t.store.set(n, r), this.options.debug && console.log(`[FieldTriggers] Rolled back ${n} to previous state`);\n } catch (n) {\n throw console.error(\"[FieldTriggers] Failed to restore snapshot:\", n), n;\n }\n }\n}\nfunction Et(e) {\n return new ge(e);\n}\nfunction as(e, t) {\n Et().registerAction(e, t);\n}\nfunction us(e, t) {\n Et().registerTransitionAction(e, t);\n}\nfunction cs(e, t, r) {\n Et().setFieldRollback(e, t, r);\n}\nasync function fs(e, t, r) {\n const n = Et(), i = {\n path: r?.path || (r?.recordId ? `${e}.${r.recordId}` : e),\n fieldname: \"\",\n beforeValue: void 0,\n afterValue: void 0,\n operation: \"set\",\n doctype: e,\n recordId: r?.recordId,\n timestamp: /* @__PURE__ */ new Date(),\n transition: t,\n currentState: r?.currentState,\n targetState: r?.targetState,\n fsmContext: r?.fsmContext\n };\n return await n.executeTransitionActions(i);\n}\nfunction hs(e, t) {\n if (e)\n try {\n Ie().markIrreversible(e, t);\n } catch {\n }\n}\nfunction rn() {\n try {\n return Ie();\n } catch {\n return null;\n }\n}\nclass Vt {\n static instance;\n /**\n * Gets the singleton instance of HST\n * @returns The HST singleton instance\n */\n static getInstance() {\n return Vt.instance || (Vt.instance = new Vt()), Vt.instance;\n }\n /**\n * Gets the global registry instance\n * @returns The global registry object or undefined if not found\n */\n getRegistry() {\n if (typeof globalThis < \"u\") {\n const t = globalThis.Registry?._root;\n if (t)\n return t;\n }\n if (typeof window < \"u\") {\n const t = window.Registry?._root;\n if (t)\n return t;\n }\n if (typeof global < \"u\" && global) {\n const t = global.Registry?._root;\n if (t)\n return t;\n }\n }\n /**\n * Helper method to get doctype metadata from the registry\n * @param doctype - The name of the doctype to retrieve metadata for\n * @returns The doctype metadata object or undefined if not found\n */\n getDoctypeMeta(t) {\n const r = this.getRegistry();\n if (r && typeof r == \"object\" && \"registry\" in r)\n return r.registry[t];\n }\n}\nclass Ue {\n target;\n ancestorPath;\n rootNode;\n doctype;\n hst;\n constructor(t, r, n = \"\", i = null) {\n return this.target = t, this.ancestorPath = n, this.rootNode = i || this, this.doctype = r, this.hst = Vt.getInstance(), new Proxy(this, {\n get(o, s) {\n if (s in o) return Reflect.get(o, s);\n const a = String(s);\n return o.getNode(a);\n },\n set(o, s, a) {\n const u = String(s);\n return o.set(u, a), !0;\n }\n });\n }\n get(t) {\n return this.resolveValue(t);\n }\n // Method to get a tree-wrapped node for navigation\n getNode(t) {\n const r = this.resolvePath(t), n = this.resolveValue(t), i = r.split(\".\");\n let o = this.doctype;\n return this.doctype === \"StonecropStore\" && i.length >= 1 && (o = i[0]), typeof n == \"object\" && n !== null && !this.isPrimitive(n) ? new Ue(n, o, r, this.rootNode) : new Ue(n, o, r, this.rootNode);\n }\n set(t, r, n = \"user\") {\n const i = this.resolvePath(t);\n if (i === void 0) {\n console.warn(\"HST.set: resolved path is undefined, skipping operation\");\n return;\n }\n const o = this.has(t) ? this.get(t) : void 0;\n if (n !== \"undo\" && n !== \"redo\") {\n const s = rn();\n if (s && typeof s.addOperation == \"function\") {\n const a = i.split(\".\"), u = this.doctype === \"StonecropStore\" && a.length >= 1 ? a[0] : this.doctype, c = a.length >= 2 ? a[1] : void 0, f = a.slice(2).join(\".\") || a[a.length - 1], l = r === void 0 && o !== void 0 ? \"delete\" : \"set\";\n s.addOperation(\n {\n type: l,\n path: i,\n fieldname: f,\n beforeValue: o,\n afterValue: r,\n doctype: u,\n recordId: c,\n reversible: !0\n // Default to reversible, can be changed by field triggers\n },\n n\n );\n }\n }\n this.updateValue(t, r), this.triggerFieldActions(i, o, r);\n }\n has(t) {\n try {\n if (t === \"\")\n return !0;\n const r = this.parsePath(t);\n let n = this.target;\n for (let i = 0; i < r.length; i++) {\n const o = r[i];\n if (n == null)\n return !1;\n if (i === r.length - 1)\n return this.isImmutable(n) ? n.has(o) : this.isPiniaStore(n) && n.$state && o in n.$state || o in n;\n n = this.getProperty(n, o);\n }\n return !1;\n } catch {\n return !1;\n }\n }\n // Tree navigation methods\n getAncestor() {\n if (!this.ancestorPath) return null;\n const r = this.ancestorPath.split(\".\").slice(0, -1).join(\".\");\n return r === \"\" ? this.rootNode : this.rootNode.getNode(r);\n }\n getRoot() {\n return this.rootNode;\n }\n getPath() {\n return this.ancestorPath;\n }\n getDepth() {\n return this.ancestorPath ? this.ancestorPath.split(\".\").length : 0;\n }\n getBreadcrumbs() {\n return this.ancestorPath ? this.ancestorPath.split(\".\") : [];\n }\n /**\n * Trigger an XState transition with optional context data\n */\n async triggerTransition(t, r) {\n const n = Et(), i = this.ancestorPath.split(\".\");\n let o = this.doctype, s;\n this.doctype === \"StonecropStore\" && i.length >= 1 && (o = i[0]), i.length >= 2 && (s = i[1]);\n const a = {\n path: this.ancestorPath,\n fieldname: \"\",\n // No specific field for transitions\n beforeValue: void 0,\n afterValue: void 0,\n operation: \"set\",\n doctype: o,\n recordId: s,\n timestamp: /* @__PURE__ */ new Date(),\n store: this.rootNode || void 0,\n transition: t,\n currentState: r?.currentState,\n targetState: r?.targetState,\n fsmContext: r?.fsmContext\n }, u = rn();\n return u && typeof u.addOperation == \"function\" && u.addOperation(\n {\n type: \"transition\",\n path: this.ancestorPath,\n fieldname: t,\n beforeValue: r?.currentState,\n afterValue: r?.targetState,\n doctype: o,\n recordId: s,\n reversible: !1,\n // FSM transitions are generally not reversible\n metadata: {\n transition: t,\n currentState: r?.currentState,\n targetState: r?.targetState,\n fsmContext: r?.fsmContext\n }\n },\n \"user\"\n ), await n.executeTransitionActions(a);\n }\n // Private helper methods\n resolvePath(t) {\n return t === \"\" ? this.ancestorPath ?? \"\" : this.ancestorPath ? `${this.ancestorPath}.${t}` : t;\n }\n resolveValue(t) {\n if (t === \"\")\n return this.target;\n const r = this.parsePath(t);\n let n = this.target;\n for (const i of r) {\n if (n == null)\n return;\n n = this.getProperty(n, i);\n }\n return n;\n }\n updateValue(t, r) {\n if (t === \"\")\n throw new Error(\"Cannot set value on empty path\");\n const n = this.parsePath(t), i = n.pop();\n let o = this.target;\n for (const s of n)\n if (o = this.getProperty(o, s), o == null)\n throw new Error(`Cannot set property on null/undefined path: ${t}`);\n this.setProperty(o, i, r);\n }\n getProperty(t, r) {\n return this.isImmutable(t) ? t.get(r) : this.isVueReactive(t) ? t[r] : this.isPiniaStore(t) ? t.$state?.[r] ?? t[r] : t[r];\n }\n setProperty(t, r, n) {\n if (this.isImmutable(t))\n throw new Error(\"Cannot directly mutate immutable objects. Use immutable update methods instead.\");\n if (this.isPiniaStore(t)) {\n t.$patch ? t.$patch({ [r]: n }) : t[r] = n;\n return;\n }\n t[r] = n;\n }\n async triggerFieldActions(t, r, n) {\n try {\n if (!t || typeof t != \"string\" || Object.is(r, n))\n return;\n const i = t.split(\".\");\n if (i.length < 3)\n return;\n const o = Et(), s = i.slice(2).join(\".\") || i[i.length - 1];\n let a = this.doctype;\n this.doctype === \"StonecropStore\" && i.length >= 1 && (a = i[0]);\n let u;\n i.length >= 2 && (u = i[1]);\n const c = {\n path: t,\n fieldname: s,\n beforeValue: r,\n afterValue: n,\n operation: \"set\",\n doctype: a,\n recordId: u,\n timestamp: /* @__PURE__ */ new Date(),\n store: this.rootNode || void 0\n // Pass the root store for snapshot/rollback capabilities\n };\n await o.executeFieldTriggers(c);\n } catch (i) {\n i instanceof Error && console.warn(\"Field trigger error:\", i.message);\n }\n }\n isVueReactive(t) {\n return t && typeof t == \"object\" && \"__v_isReactive\" in t && t.__v_isReactive === !0;\n }\n isPiniaStore(t) {\n return t && typeof t == \"object\" && (\"$state\" in t || \"$patch\" in t || \"$id\" in t);\n }\n isImmutable(t) {\n if (!t || typeof t != \"object\")\n return !1;\n const r = \"get\" in t && typeof t.get == \"function\", n = \"set\" in t && typeof t.set == \"function\", i = \"has\" in t && typeof t.has == \"function\", o = \"__ownerID\" in t || \"_map\" in t || \"_list\" in t || \"_origin\" in t || \"_capacity\" in t || \"_defaultValues\" in t || \"_tail\" in t || \"_root\" in t || \"size\" in t && r && n;\n let s;\n try {\n if (\"constructor\" in t && t.constructor && typeof t.constructor == \"object\" && \"name\" in t.constructor) {\n const u = t.constructor.name;\n s = typeof u == \"string\" ? u : void 0;\n }\n } catch {\n s = void 0;\n }\n const a = s && (s.includes(\"Map\") || s.includes(\"List\") || s.includes(\"Set\") || s.includes(\"Stack\") || s.includes(\"Seq\")) && (r || n);\n return !!(r && n && i && o || r && n && a);\n }\n isPrimitive(t) {\n return t == null || typeof t == \"string\" || typeof t == \"number\" || typeof t == \"boolean\" || typeof t == \"function\" || typeof t == \"symbol\" || typeof t == \"bigint\";\n }\n /**\n * Parse a path string into segments, handling both dot notation and array bracket notation\n * @param path - The path string to parse (e.g., \"order.456.line_items[0].product\")\n * @returns Array of path segments (e.g., ['order', '456', 'line_items', '0', 'product'])\n */\n parsePath(t) {\n return t ? t.replace(/\\[(\\d+)\\]/g, \".$1\").split(\".\").filter((n) => n.length > 0) : [];\n }\n}\nfunction io(e, t) {\n return new Ue(e, t, \"\", null);\n}\nclass Mt {\n /**\n * Singleton instance of Stonecrop. Only one Stonecrop instance can exist\n * per application, ensuring consistent HST state and registry access.\n * Subsequent constructor calls return this instance instead of creating new ones.\n * @internal\n */\n static _root;\n /** The HST store instance for reactive state management */\n hstStore;\n _operationLogStore;\n _operationLogConfig;\n _client;\n /** The registry instance containing all doctype definitions */\n registry;\n /**\n * Creates a new Stonecrop instance with HST integration (singleton pattern)\n * @param registry - The Registry instance containing doctype definitions\n * @param operationLogConfig - Optional configuration for the operation log\n * @param options - Options including the data client (can be set later via setClient)\n */\n constructor(t, r, n) {\n return Mt._root ? Mt._root : (Mt._root = this, this.registry = t, this._operationLogConfig = r, this._client = n?.client, this.initializeHSTStore(), this.setupRegistrySync(), this);\n }\n /**\n * Set the data client for fetching doctype metadata and records.\n * Use this for deferred configuration in Nuxt/Vue plugin setups.\n *\n * @param client - DataClient implementation (e.g., StonecropClient from \\@stonecrop/graphql-client)\n *\n * @example\n * ```ts\n * const { setClient } = useStonecropRegistry()\n * const client = new StonecropClient({ endpoint: '/graphql' })\n * setClient(client)\n * ```\n */\n setClient(t) {\n this._client = t;\n }\n /**\n * Get the current data client\n * @returns The DataClient instance or undefined if not set\n */\n getClient() {\n return this._client;\n }\n /**\n * Get the operation log store (lazy initialization)\n * @internal\n */\n getOperationLogStore() {\n return this._operationLogStore || (this._operationLogStore = Ie(), this._operationLogConfig && this._operationLogStore.configure(this._operationLogConfig)), this._operationLogStore;\n }\n /**\n * Initialize the HST store structure\n */\n initializeHSTStore() {\n const t = {};\n Object.keys(this.registry.registry).forEach((r) => {\n t[r] = {};\n }), this.hstStore = io(lr(t), \"StonecropStore\");\n }\n /**\n * Setup automatic sync with Registry when doctypes are added\n */\n setupRegistrySync() {\n const t = this.registry.addDoctype.bind(this.registry);\n this.registry.addDoctype = (r) => {\n t(r), this.hstStore.has(r.slug) || this.hstStore.set(r.slug, {});\n };\n }\n /**\n * Get records hash for a doctype\n * @param doctype - The doctype to get records for\n * @returns HST node containing records hash\n */\n records(t) {\n const r = typeof t == \"string\" ? t : t.slug;\n return this.ensureDoctypeExists(r), this.hstStore.getNode(r);\n }\n /**\n * Add a record to the store\n * @param doctype - The doctype\n * @param recordId - The record ID\n * @param recordData - The record data\n */\n addRecord(t, r, n) {\n const i = typeof t == \"string\" ? t : t.slug;\n this.ensureDoctypeExists(i), this.hstStore.set(`${i}.${r}`, n);\n }\n /**\n * Get a specific record\n * @param doctype - The doctype\n * @param recordId - The record ID\n * @returns HST node for the record or undefined\n */\n getRecordById(t, r) {\n const n = typeof t == \"string\" ? t : t.slug;\n if (this.ensureDoctypeExists(n), !(!this.hstStore.has(`${n}.${r}`) || this.hstStore.get(`${n}.${r}`) === void 0))\n return this.hstStore.getNode(`${n}.${r}`);\n }\n /**\n * Remove a record from the store\n * @param doctype - The doctype\n * @param recordId - The record ID\n */\n removeRecord(t, r) {\n const n = typeof t == \"string\" ? t : t.slug;\n this.ensureDoctypeExists(n), this.hstStore.has(`${n}.${r}`) && this.hstStore.set(`${n}.${r}`, void 0);\n }\n /**\n * Get all record IDs for a doctype\n * @param doctype - The doctype\n * @returns Array of record IDs\n */\n getRecordIds(t) {\n const r = typeof t == \"string\" ? t : t.slug;\n this.ensureDoctypeExists(r);\n const n = this.hstStore.get(r);\n return !n || typeof n != \"object\" ? [] : Object.keys(n).filter((i) => n[i] !== void 0);\n }\n /**\n * Clear all records for a doctype\n * @param doctype - The doctype\n */\n clearRecords(t) {\n const r = typeof t == \"string\" ? t : t.slug;\n this.ensureDoctypeExists(r), this.getRecordIds(r).forEach((i) => {\n this.hstStore.set(`${r}.${i}`, void 0);\n });\n }\n /**\n * Setup method for doctype initialization\n * @param doctype - The doctype to setup\n */\n setup(t) {\n this.ensureDoctypeExists(t.slug);\n }\n /**\n * Run action on doctype\n * Executes the action and logs it to the operation log for audit tracking\n * @param doctype - The doctype\n * @param action - The action to run\n * @param args - Action arguments (typically record IDs)\n */\n runAction(t, r, n) {\n const o = this.registry.registry[t.slug]?.actions?.get(r), s = Array.isArray(n) ? n.filter((l) => typeof l == \"string\") : void 0, a = s?.[0], u = a ? this.isWorkflowReady(t, a) : { ready: !0 };\n if (!u.ready)\n throw this.getOperationLogStore().logAction(\n t.doctype,\n r,\n s,\n \"failure\",\n `BLOCKED: missing data for links: ${u.blockedLinks?.join(\", \")}`\n ), new Error(`Workflow blocked: missing data for links: ${u.blockedLinks?.join(\", \")}`);\n const c = this.getOperationLogStore();\n let f = \"success\", h;\n try {\n if (o && o.length > 0) {\n const l = Et();\n o.forEach((d) => {\n try {\n const p = l.getAction(d);\n if (!p) throw new Error(`Action \"${d}\" is not registered in FieldTriggerEngine`);\n const _ = {\n path: `${t.slug}.${s?.[0] ?? \"\"}`,\n fieldname: r,\n beforeValue: void 0,\n afterValue: n,\n operation: \"set\",\n doctype: t.doctype,\n recordId: a,\n timestamp: /* @__PURE__ */ new Date()\n };\n p(_);\n } catch (p) {\n throw f = \"failure\", h = p instanceof Error ? p.message : \"Unknown error\", p;\n }\n });\n }\n } catch {\n } finally {\n c.logAction(t.doctype, r, s, f, h);\n }\n }\n /**\n * Get the effective blockWorkflows value for a link.\n * Returns true if blockWorkflows is explicitly true, or if it's absent and fetch method is 'sync'.\n * @param link - The link declaration\n * @returns Whether workflows should be blocked until this link is loaded\n */\n getEffectiveBlockWorkflows(t) {\n return t.blockWorkflows !== void 0 ? t.blockWorkflows : t.fetch?.method === \"sync\";\n }\n /**\n * Check if workflow actions are ready to run (all required link data is loaded).\n * A link's data is considered loaded if it exists in HST at `slug.recordId.linkname`.\n * @param doctype - The doctype to check\n * @param recordId - The record ID\n * @returns Object with `ready: true` if all blocked links are loaded, or `ready: false` with `blockedLinks` array\n */\n isWorkflowReady(t, r) {\n if (r === \"new\")\n return { ready: !0 };\n const n = this.registry.getDescendantLinks(t.slug), i = [];\n for (const o of n)\n if (this.getEffectiveBlockWorkflows(o)) {\n const s = `${t.slug}.${r}.${o.fieldname}`;\n this.hstStore.has(s) || i.push(o.fieldname);\n }\n return i.length > 0 ? { ready: !1, blockedLinks: i } : { ready: !0 };\n }\n /**\n * Get records from server using the configured data client.\n * @param doctype - The doctype\n * @throws Error if no data client has been configured\n */\n async getRecords(t) {\n if (!this._client)\n throw new Error(\n \"No data client configured. Call setClient() with a DataClient implementation (e.g., StonecropClient from @stonecrop/graphql-client) before fetching records.\"\n );\n (await this._client.getRecords(t)).forEach((n) => {\n typeof n.id == \"string\" && n.id ? this.addRecord(t, n.id, n) : typeof n.id == \"number\" && this.addRecord(t, String(n.id), n);\n });\n }\n /**\n * Get single record from server using the configured data client.\n * @param doctype - The doctype slug string or Doctype object\n * @param recordId - The record ID\n * @throws Error if no data client has been configured\n * @throws Error if a slug string is given and no matching doctype is found in the registry\n */\n async getRecord(t, r) {\n if (!this._client)\n throw new Error(\n \"No data client configured. Call setClient() with a DataClient implementation (e.g., StonecropClient from @stonecrop/graphql-client) before fetching records.\"\n );\n const n = typeof t == \"string\" ? this.registry.getDoctype(t) : t;\n if (!n)\n throw new Error(`Doctype not found: ${typeof t == \"string\" ? t : t.slug}`);\n const i = await this._client.getRecord(n, r);\n i?.record && this.addRecord(n, r, i.record);\n }\n /**\n * Dispatch an action to the server via the configured data client.\n * All state changes flow through this single mutation endpoint.\n *\n * @param doctype - The doctype\n * @param action - Action name to execute (e.g., 'SUBMIT', 'APPROVE', 'save')\n * @param args - Action arguments (typically record ID and/or form data)\n * @returns Action result with success status, response data, and any error\n * @throws Error if no data client has been configured\n */\n async dispatchAction(t, r, n) {\n if (!this._client)\n throw new Error(\n \"No data client configured. Call setClient() with a DataClient implementation (e.g., StonecropClient from @stonecrop/graphql-client) before dispatching actions.\"\n );\n return this._client.runAction(t, r, n);\n }\n /**\n * Ensure doctype section exists in HST store\n * @param slug - The doctype slug\n */\n ensureDoctypeExists(t) {\n this.hstStore.has(t) || this.hstStore.set(t, {});\n }\n /**\n * Get doctype metadata from the registry\n * @param context - The route context\n * @returns The doctype metadata\n */\n async getMeta(t) {\n if (!this.registry.getMeta)\n throw new Error(\"No getMeta function provided to Registry\");\n return await this.registry.getMeta(t);\n }\n /**\n * Get the root HST store node for advanced usage\n * @returns Root HST node\n */\n getStore() {\n return this.hstStore;\n }\n /**\n * Determine the current workflow state for a record.\n *\n * Reads the record's `status` field from the HST store. If the field is absent or\n * empty the doctype's declared `workflow.initial` state is used as the fallback,\n * giving callers a reliable state name without having to duplicate that logic.\n *\n * @param doctype - The doctype slug or Doctype instance\n * @param recordId - The record identifier\n * @returns The current state name, or an empty string if the doctype has no workflow\n *\n * @public\n */\n getRecordState(t, r) {\n const n = typeof t == \"string\" ? t : t.slug, i = this.registry.getDoctype(n);\n if (!i?.workflow) return \"\";\n const s = this.getRecordById(n, r)?.get(\"status\"), a = i.workflow;\n let u;\n return Array.isArray(a.states) ? u = a.states[0] ?? \"\" : u = typeof a.initial == \"string\" ? a.initial : Object.keys(a.states ?? {})[0] ?? \"\", s || u;\n }\n /**\n * Collect a record payload with all nested doctype fields from HST\n * @param doctype - The doctype metadata\n * @param recordId - The record ID to collect\n * @returns The complete record payload ready for API submission\n * @public\n */\n collectRecordPayload(t, r) {\n const n = `${t.slug}.${r}`, o = { ...this.hstStore.get(n) || {} };\n if (t.links)\n for (const [s, a] of Object.entries(t.links)) {\n const u = `${n}.${s}`;\n if (a.cardinality === \"noneOrMany\" || a.cardinality === \"atLeastOne\") {\n const f = this.hstStore.get(u);\n Array.isArray(f) && (o[s] = f);\n } else {\n const f = this.registry.getDoctype(a.target);\n f?.links ? o[s] = this.collectNestedData(u, f) : o[s] = this.hstStore.get(u) || {};\n }\n }\n return o;\n }\n /**\n * Scaffold empty descendant records from defaults for all descendant links.\n *\n * Initializes all scalar and link fields at their HST paths with default values.\n * For new records, call this after setting up the doctype to ensure all paths exist.\n *\n * @param path - HST path (e.g., \"customer.new\")\n * @param doctype - The doctype to initialize\n * @public\n */\n initializeNestedData(t, r) {\n const n = r.slug;\n this.ensureDoctypeExists(n);\n const i = this.registry.resolveSchema(r), o = this.registry.initializeRecord(i);\n this.hstStore.get(t) || this.hstStore.set(t, {}, \"system\");\n for (const [a, u] of Object.entries(o))\n this.hstStore.set(`${t}.${a}`, u, \"system\");\n }\n /**\n * Fetch a record and its nested data from the server.\n *\n * Calls `_client.getRecord()` with nested sub-selections and stores each scalar field at its own HST path\n * (`slug.recordId.fieldname`), descendants at the link-level path (`slug.recordId.linkname`).\n *\n * @param path - HST path (e.g., \"recipe.r1\")\n * @param doctype - The doctype to fetch\n * @param recordId - Record ID to fetch\n * @param options - Query options (includeNested to control which links are fetched)\n * @throws Error with code `\"CLIENT_REQUIRED\"` if no data client is configured\n * @throws Error with code `\"RECORD_NOT_FOUND\"` if the server returns null\n * @public\n */\n async fetchNestedData(t, r, n, i) {\n if (!this._client)\n throw nn(\n \"No data client configured. Call setClient() with a DataClient implementation (e.g., StonecropClient from @stonecrop/graphql-client) before fetching records.\",\n \"CLIENT_REQUIRED\"\n );\n const o = await this._client.getRecord({ name: r.doctype }, n, {\n includeNested: i?.includeNested ?? !0\n });\n if (!o?.record)\n throw nn(`Record not found: ${r.doctype} ${n}`, \"RECORD_NOT_FOUND\");\n const s = r.slug;\n this.ensureDoctypeExists(s), this.hstStore.get(`${s}.${n}`) || this.hstStore.set(`${s}.${n}`, {}, \"system\");\n for (const [u, c] of Object.entries(o.record))\n this.hstStore.set(`${s}.${n}.${u}`, c, \"system\");\n }\n /**\n * Recursively collect nested data from HST\n * @param basePath - The base path in HST (e.g., \"customer.123.address\")\n * @param doctype - The doctype whose links drive the recursive traversal\n * @returns The collected data object\n */\n collectNestedData(t, r) {\n const i = { ...this.hstStore.get(t) || {} };\n if (!r.links) return i;\n for (const [o, s] of Object.entries(r.links)) {\n const a = `${t}.${o}`;\n if (s.cardinality === \"noneOrMany\" || s.cardinality === \"atLeastOne\") {\n const c = this.hstStore.get(a);\n Array.isArray(c) && (i[o] = c);\n } else {\n const c = this.registry.getDoctype(s.target);\n c?.links ? i[o] = this.collectNestedData(a, c) : i[o] = this.hstStore.get(a) || {};\n }\n }\n return i;\n }\n}\nfunction ls() {\n return Mt._root;\n}\nfunction nn(e, t) {\n const r = new Error(e);\n return r.code = t, r;\n}\nfunction ps(e, t, r) {\n const n = xe(\"$stonecrop\") || Mt._root;\n if (!n)\n throw new Error(\"Stonecrop instance not available. Ensure useStonecrop() has been called first.\");\n const i = j(!1), o = j(!1), s = j(null), a = n.getStore(), u = () => `${e.slug || e.doctype}.${t}.${r}`, c = () => e.links?.[r]?.fetch, f = async (p) => {\n try {\n return await new Function(\n \"stonecrop\",\n \"path\",\n \"hst\",\n `\n\t\t\t\treturn (${p})(stonecrop, path, hst)\n\t\t\t`\n )(n, u(), a);\n } catch (_) {\n throw new Error(`Custom handler failed: ${_ instanceof Error ? _.message : String(_)}`, { cause: _ });\n }\n }, h = async () => {\n const p = c(), _ = `${e.slug || e.doctype}.${t}`;\n if (p?.method === \"custom\") {\n a.has(_) || a.set(_, {}, \"system\");\n const m = await f(p.handler);\n a.set(u(), m, \"system\");\n } else\n await n.fetchNestedData(_, e, t, { includeNested: [r] });\n }, l = async () => {\n if (!i.value) {\n i.value = !0, s.value = null;\n try {\n await h(), o.value = !0;\n } catch (p) {\n throw s.value = p instanceof Error ? p : new Error(String(p)), p;\n } finally {\n i.value = !1;\n }\n }\n }, d = J(() => {\n if (o.value)\n return a.get(u());\n });\n return {\n // State\n loading: i,\n loaded: o,\n error: s,\n // Computed\n data: d,\n // Actions\n reload: l\n };\n}\nfunction ds(e) {\n e || (e = {});\n const t = e.registry || xe(\"$registry\"), r = xe(\"$stonecrop\"), n = j(), i = j(), o = j({}), s = j(), a = j(), u = j([]), c = j(!1), f = j(null), h = j(), l = J(() => !n.value || !h.value || !e.recordId || e.recordId === \"new\" ? !0 : n.value.isWorkflowReady(h.value, e.recordId).ready), d = J(() => !n.value || !h.value || !e.recordId || e.recordId === \"new\" ? [] : n.value.isWorkflowReady(h.value, e.recordId).blockedLinks ?? []), p = r || Mt._root;\n p && (n.value = p), e?.doctype && typeof e.doctype != \"string\" && (h.value = e.doctype);\n const _ = j([]), m = j(-1), R = J(() => n.value?.getOperationLogStore().canUndo ?? !1), O = J(() => n.value?.getOperationLogStore().canRedo ?? !1), w = J(() => n.value?.getOperationLogStore().undoCount ?? 0), K = J(() => n.value?.getOperationLogStore().redoCount ?? 0), A = J(\n () => n.value?.getOperationLogStore().undoRedoState ?? {\n canUndo: !1,\n canRedo: !1,\n undoCount: 0,\n redoCount: 0,\n currentIndex: -1\n }\n ), $ = (S) => n.value?.getOperationLogStore().undo(S) ?? !1, z = (S) => n.value?.getOperationLogStore().redo(S) ?? !1, Y = () => {\n n.value?.getOperationLogStore().startBatch();\n }, _t = (S) => n.value?.getOperationLogStore().commitBatch(S) ?? null, ce = () => {\n n.value?.getOperationLogStore().cancelBatch();\n }, fe = () => {\n n.value?.getOperationLogStore().clear();\n }, bt = (S, I) => n.value?.getOperationLogStore().getOperationsFor(S, I) ?? [], Wt = () => n.value?.getOperationLogStore().getSnapshot() ?? {\n operations: [],\n currentIndex: -1,\n totalOperations: 0,\n reversibleOperations: 0,\n irreversibleOperations: 0\n }, E = (S, I) => {\n n.value?.getOperationLogStore().markIrreversible(S, I);\n }, B = (S, I, b, D = \"success\", C) => n.value?.getOperationLogStore().logAction(S, I, b, D, C) ?? \"\", X = (S) => {\n n.value?.getOperationLogStore().configure(S);\n };\n if (t && n.value)\n try {\n const S = n.value.getOperationLogStore(), I = Ln(S);\n _.value = I.operations.value, m.value = I.currentIndex.value, zt(\n () => I.operations.value,\n (b) => {\n _.value = b;\n }\n ), zt(\n () => I.currentIndex.value,\n (b) => {\n m.value = b;\n }\n );\n } catch {\n }\n e.doctype && typeof e.doctype != \"string\" && t && n.value && (i.value = n.value.getStore(), u.value = t.resolveSchema(e.doctype), (!e.recordId || e.recordId === \"new\") && (o.value = t.initializeRecord(u.value)), i.value && or(e.doctype, e.recordId || \"new\", o, i.value)), Mn(async () => {\n if (!(!t || !n.value)) {\n if (!e.doctype && t.router) {\n const S = t.router.currentRoute.value;\n if (!S.path) return;\n const I = S.path.split(\"/\").filter((D) => D.length > 0), b = I[1]?.toLowerCase();\n if (I.length > 0) {\n const D = {\n path: S.path,\n segments: I\n }, C = await t.getMeta?.(D);\n if (C) {\n if (t.addDoctype(C), n.value.setup(C), s.value = C, a.value = b, i.value = n.value.getStore(), t && (u.value = t.resolveSchema(C)), b && b !== \"new\") {\n const Nt = n.value.getRecordById(C, b);\n if (Nt)\n o.value = Nt.get(\"\") || {};\n else\n try {\n await n.value.getRecord(C, b);\n const Kt = n.value.getRecordById(C, b);\n Kt && (o.value = Kt.get(\"\") || {});\n } catch {\n o.value = t.initializeRecord(u.value);\n }\n } else\n o.value = t.initializeRecord(u.value);\n i.value && or(C, b || \"new\", o, i.value), n.value.runAction(C, \"load\", b ? [b] : void 0);\n }\n }\n }\n if (e.doctype) {\n const S = e.recordId;\n if (typeof e.doctype == \"string\") {\n const I = e.doctype;\n i.value = n.value.getStore(), c.value = !0, f.value = null;\n let b;\n try {\n if (b = t.getDoctype(I), !b && t.getMeta) {\n const D = {\n path: `/${I}`,\n segments: [I]\n };\n b = await t.getMeta(D), b && t.addDoctype(b);\n }\n b || (f.value = new Error(`Doctype '${I}' not found in registry and getMeta returned no result`));\n } catch (D) {\n f.value = D instanceof Error ? D : new Error(String(D));\n } finally {\n c.value = !1;\n }\n if (h.value = b, !b) return;\n if (u.value = t.resolveSchema(b), S && S !== \"new\") {\n const D = n.value.getRecordById(b, S);\n if (D)\n o.value = D.get(\"\") || {};\n else\n try {\n await n.value.getRecord(b, S);\n const C = n.value.getRecordById(b, S);\n C && (o.value = C.get(\"\") || {});\n } catch {\n o.value = t.initializeRecord(u.value);\n }\n } else\n o.value = t.initializeRecord(u.value);\n i.value && or(b, S || \"new\", o, i.value);\n } else if (S && S !== \"new\") {\n const I = e.doctype, b = n.value.getRecordById(I, S);\n if (b)\n o.value = b.get(\"\") || {};\n else\n try {\n await n.value.getRecord(I, S);\n const D = n.value.getRecordById(I, S);\n D && (o.value = D.get(\"\") || {});\n } catch {\n o.value = t.initializeRecord(u.value);\n }\n }\n }\n }\n });\n const v = (S, I) => {\n const b = h.value || s.value;\n if (!b) return \"\";\n const D = I || e.recordId || a.value || \"new\";\n return `${b.slug}.${D}.${S}`;\n }, y = (S) => {\n const I = h.value || s.value;\n if (!(!i.value || !n.value || !I))\n try {\n const b = S.path.split(\".\");\n if (b.length >= 2) {\n const Nt = b[0], Kt = b[1];\n if (i.value.has(`${Nt}.${Kt}`) || n.value.addRecord(I, Kt, { ...o.value }), b.length > 3) {\n const Mi = `${Nt}.${Kt}`, er = b.slice(2);\n let rr = Mi;\n for (let Le = 0; Le < er.length - 1; Le++)\n if (rr += `.${er[Le]}`, !i.value.has(rr)) {\n const $i = er[Le + 1], zi = !isNaN(Number($i));\n i.value.set(rr, zi ? [] : {});\n }\n }\n }\n i.value.set(S.path, S.value);\n const D = S.fieldname.split(\".\"), C = { ...o.value };\n D.length === 1 ? C[D[0]] = S.value : oo(C, D, S.value), o.value = C;\n } catch {\n }\n };\n (e.doctype || t?.router) && (Xr(\"hstPathProvider\", v), Xr(\"hstChangeHandler\", y));\n const g = (S, I) => {\n if (!n.value)\n throw new Error(\"Stonecrop instance not available\");\n return n.value.initializeNestedData(S, I);\n }, U = async (S, I, b, D) => {\n if (!n.value)\n throw new Error(\"Stonecrop instance not available\");\n return n.value.fetchNestedData(S, I, b, D);\n }, ft = (S, I) => {\n if (!n.value)\n throw new Error(\"Stonecrop instance not available\");\n return n.value.collectRecordPayload(S, I);\n }, gt = (S, I) => ({\n provideHSTPath: (C) => `${S}.${C}`,\n handleHSTChange: (C) => {\n const Nt = C.path.startsWith(S) ? C.path : `${S}.${C.fieldname}`;\n y({\n ...C,\n path: Nt\n });\n }\n }), Ot = {\n operations: _,\n currentIndex: m,\n undoRedoState: A,\n canUndo: R,\n canRedo: O,\n undoCount: w,\n redoCount: K,\n undo: $,\n redo: z,\n startBatch: Y,\n commitBatch: _t,\n cancelBatch: ce,\n clear: fe,\n getOperationsFor: bt,\n getSnapshot: Wt,\n markIrreversible: E,\n logAction: B,\n configure: X\n };\n return e.doctype ? {\n stonecrop: n,\n operationLog: Ot,\n provideHSTPath: v,\n handleHSTChange: y,\n hstStore: i,\n formData: o,\n resolvedSchema: u,\n initializeNestedData: g,\n fetchNestedData: U,\n collectRecordPayload: ft,\n createNestedContext: gt,\n isLoading: c,\n error: f,\n resolvedDoctype: h,\n isWorkflowReady: l,\n blockedLinks: d\n } : !e.doctype && t?.router ? {\n stonecrop: n,\n operationLog: Ot,\n provideHSTPath: v,\n handleHSTChange: y,\n hstStore: i,\n formData: o,\n resolvedSchema: u,\n initializeNestedData: g,\n fetchNestedData: U,\n collectRecordPayload: ft,\n createNestedContext: gt,\n isLoading: c,\n error: f,\n resolvedDoctype: h,\n isWorkflowReady: l,\n blockedLinks: d\n } : {\n stonecrop: n,\n operationLog: Ot\n };\n}\nfunction or(e, t, r, n) {\n zt(\n r,\n (i) => {\n const o = `${e.slug}.${t}`;\n Object.keys(i).forEach((s) => {\n const a = `${o}.${s}`;\n try {\n n.set(a, i[s]);\n } catch {\n }\n });\n },\n { deep: !0 }\n );\n}\nfunction oo(e, t, r) {\n let n = e;\n for (let o = 0; o < t.length - 1; o++) {\n const s = t[o];\n (!(s in n) || typeof n[s] != \"object\") && (n[s] = isNaN(Number(t[o + 1])) ? {} : []), n = n[s];\n }\n const i = t[t.length - 1];\n n[i] = r;\n}\nfunction qn(e) {\n const r = (zn() ? xe(\"$operationLogStore\", void 0) : void 0) || Ie();\n e && r.configure(e);\n const { operations: n, currentIndex: i, undoRedoState: o, canUndo: s, canRedo: a, undoCount: u, redoCount: c } = Ln(r);\n function f(A) {\n return r.undo(A);\n }\n function h(A) {\n return r.redo(A);\n }\n function l() {\n r.startBatch();\n }\n function d(A) {\n return r.commitBatch(A);\n }\n function p() {\n r.cancelBatch();\n }\n function _() {\n r.clear();\n }\n function m(A, $) {\n return r.getOperationsFor(A, $);\n }\n function R() {\n return r.getSnapshot();\n }\n function O(A, $) {\n r.markIrreversible(A, $);\n }\n function w(A, $, z, Y = \"success\", _t) {\n return r.logAction(A, $, z, Y, _t);\n }\n function K(A) {\n r.configure(A);\n }\n return {\n // State\n operations: n,\n currentIndex: i,\n undoRedoState: o,\n canUndo: s,\n canRedo: a,\n undoCount: u,\n redoCount: c,\n // Methods\n undo: f,\n redo: h,\n startBatch: l,\n commitBatch: d,\n cancelBatch: p,\n clear: _,\n getOperationsFor: m,\n getSnapshot: R,\n markIrreversible: O,\n logAction: w,\n configure: K\n };\n}\nfunction _s(e, t = !0) {\n if (!t) return;\n const { undo: r, redo: n, canUndo: i, canRedo: o } = qn(), s = ro();\n he(s[\"Ctrl+Z\"], () => {\n i.value && r(e);\n }), he(s[\"Meta+Z\"], () => {\n i.value && r(e);\n }), he(s[\"Ctrl+Shift+Z\"], () => {\n o.value && n(e);\n }), he(s[\"Meta+Shift+Z\"], () => {\n o.value && n(e);\n }), he(s[\"Ctrl+Y\"], () => {\n o.value && n(e);\n });\n}\nasync function gs(e, t) {\n const { startBatch: r, commitBatch: n, cancelBatch: i } = qn();\n r();\n try {\n return await e(), n(t);\n } catch (o) {\n throw i(), o;\n }\n}\nvar We = \"@@__IMMUTABLE_INDEXED__@@\";\nfunction lt(e) {\n return !!(e && // @ts-expect-error: maybeIndexed is typed as `{}`, need to change in 6.0 to `maybeIndexed && typeof maybeIndexed === 'object' && IS_INDEXED_SYMBOL in maybeIndexed`\n e[We]);\n}\nvar Ke = \"@@__IMMUTABLE_KEYED__@@\";\nfunction P(e) {\n return !!(e && // @ts-expect-error: maybeKeyed is typed as `{}`, need to change in 6.0 to `maybeKeyed && typeof maybeKeyed === 'object' && IS_KEYED_SYMBOL in maybeKeyed`\n e[Ke]);\n}\nfunction Or(e) {\n return P(e) || lt(e);\n}\nvar Nn = \"@@__IMMUTABLE_ITERABLE__@@\";\nfunction at(e) {\n return !!(e && // @ts-expect-error: maybeCollection is typed as `{}`, need to change in 6.0 to `maybeCollection && typeof maybeCollection === 'object' && IS_COLLECTION_SYMBOL in maybeCollection`\n e[Nn]);\n}\nvar G = function(t) {\n return at(t) ? t : rt(t);\n}, pt = /* @__PURE__ */ (function(e) {\n function t(r) {\n return P(r) ? r : qt(r);\n }\n return e && (t.__proto__ = e), t.prototype = Object.create(e && e.prototype), t.prototype.constructor = t, t;\n})(G), jt = /* @__PURE__ */ (function(e) {\n function t(r) {\n return lt(r) ? r : dt(r);\n }\n return e && (t.__proto__ = e), t.prototype = Object.create(e && e.prototype), t.prototype.constructor = t, t;\n})(G), ne = /* @__PURE__ */ (function(e) {\n function t(r) {\n return at(r) && !Or(r) ? r : se(r);\n }\n return e && (t.__proto__ = e), t.prototype = Object.create(e && e.prototype), t.prototype.constructor = t, t;\n})(G);\nG.Keyed = pt;\nG.Indexed = jt;\nG.Set = ne;\nvar ie = 0, ut = 1, ct = 2, pr = typeof Symbol == \"function\" && Symbol.iterator, Pn = \"@@iterator\", Ye = pr || Pn, M = function(t) {\n this.next = t;\n};\nM.prototype.toString = function() {\n return \"[Iterator]\";\n};\nM.KEYS = ie;\nM.VALUES = ut;\nM.ENTRIES = ct;\nM.prototype.inspect = M.prototype.toSource = function() {\n return this.toString();\n};\nM.prototype[Ye] = function() {\n return this;\n};\nfunction F(e, t, r, n) {\n var i = e === ie ? t : e === ut ? r : [t, r];\n return n ? n.value = i : n = {\n // @ts-expect-error ensure value is not undefined\n value: i,\n done: !1\n }, n;\n}\nfunction tt() {\n return { value: void 0, done: !0 };\n}\nfunction Fn(e) {\n return Array.isArray(e) ? !0 : !!Je(e);\n}\nfunction on(e) {\n return !!(e && // @ts-expect-error: maybeIterator is typed as `{}`\n typeof e.next == \"function\");\n}\nfunction dr(e) {\n var t = Je(e);\n return t && t.call(e);\n}\nfunction Je(e) {\n var t = e && // @ts-expect-error: maybeIterator is typed as `{}`\n (pr && e[pr] || // @ts-expect-error: maybeIterator is typed as `{}`\n e[Pn]);\n if (typeof t == \"function\")\n return t;\n}\nfunction so(e) {\n var t = Je(e);\n return t && t === e.entries;\n}\nfunction ao(e) {\n var t = Je(e);\n return t && t === e.keys;\n}\nvar ke = \"delete\", L = 5, ot = 1 << L, Q = ot - 1, k = {};\nfunction _r() {\n return { value: !1 };\n}\nfunction ht(e) {\n e && (e.value = !0);\n}\nfunction Er() {\n}\nfunction Yt(e) {\n return e.size === void 0 && (e.size = e.__iterate(jn)), e.size;\n}\nfunction Tt(e, t) {\n if (typeof t != \"number\") {\n var r = t >>> 0;\n if (\"\" + r !== t || r === 4294967295)\n return NaN;\n t = r;\n }\n return t < 0 ? Yt(e) + t : t;\n}\nfunction jn() {\n return !0;\n}\nfunction Ge(e, t, r) {\n return (e === 0 && !xn(e) || r !== void 0 && e <= -r) && (t === void 0 || r !== void 0 && t >= r);\n}\nfunction Ae(e, t) {\n return Bn(e, t, 0);\n}\nfunction Ze(e, t) {\n return Bn(e, t, t);\n}\nfunction Bn(e, t, r) {\n return e === void 0 ? r : xn(e) ? t === 1 / 0 ? t : Math.max(0, t + e) | 0 : t === void 0 || t === e ? e : Math.min(t, e) | 0;\n}\nfunction xn(e) {\n return e < 0 || e === 0 && 1 / e === -1 / 0;\n}\nvar Un = \"@@__IMMUTABLE_RECORD__@@\";\nfunction Bt(e) {\n return !!(e && // @ts-expect-error: maybeRecord is typed as `{}`, need to change in 6.0 to `maybeRecord && typeof maybeRecord === 'object' && IS_RECORD_SYMBOL in maybeRecord`\n e[Un]);\n}\nfunction St(e) {\n return at(e) || Bt(e);\n}\nvar Lt = \"@@__IMMUTABLE_ORDERED__@@\";\nfunction mt(e) {\n return !!(e && // @ts-expect-error: maybeOrdered is typed as `{}`, need to change in 6.0 to `maybeOrdered && typeof maybeOrdered === 'object' && IS_ORDERED_SYMBOL in maybeOrdered`\n e[Lt]);\n}\nvar Wn = \"@@__IMMUTABLE_SEQ__@@\";\nfunction Rr(e) {\n return !!(e && // @ts-expect-error: maybeSeq is typed as `{}`, need to change in 6.0 to `maybeSeq && typeof maybeSeq === 'object' && MAYBE_SEQ_SYMBOL in maybeSeq`\n e[Wn]);\n}\nvar oe = Object.prototype.hasOwnProperty;\nfunction Kn(e) {\n return Array.isArray(e) || typeof e == \"string\" ? !0 : e && typeof e == \"object\" && // @ts-expect-error check that `'length' in value &&`\n Number.isInteger(e.length) && // @ts-expect-error check that `'length' in value &&`\n e.length >= 0 && // @ts-expect-error check that `'length' in value &&`\n (e.length === 0 ? (\n // Only {length: 0} is considered Array-like.\n Object.keys(e).length === 1\n ) : (\n // An object is only Array-like if it has a property where the last value\n // in the array-like may be found (which could be undefined).\n // @ts-expect-error check that `'length' in value &&`\n e.hasOwnProperty(e.length - 1)\n ));\n}\nvar rt = /* @__PURE__ */ (function(e) {\n function t(r) {\n return r == null ? kr() : St(r) ? r.toSeq() : co(r);\n }\n return e && (t.__proto__ = e), t.prototype = Object.create(e && e.prototype), t.prototype.constructor = t, t.prototype.toSeq = function() {\n return this;\n }, t.prototype.toString = function() {\n return this.__toString(\"Seq {\", \"}\");\n }, t.prototype.cacheResult = function() {\n return !this._cache && this.__iterateUncached && (this._cache = this.entrySeq().toArray(), this.size = this._cache.length), this;\n }, t.prototype.__iterate = function(n, i) {\n var o = this._cache;\n if (o) {\n for (var s = o.length, a = 0; a !== s; ) {\n var u = o[i ? s - ++a : a++];\n if (n(u[1], u[0], this) === !1)\n break;\n }\n return a;\n }\n return this.__iterateUncached(n, i);\n }, t.prototype.__iterator = function(n, i) {\n var o = this._cache;\n if (o) {\n var s = o.length, a = 0;\n return new M(function() {\n if (a === s)\n return tt();\n var u = o[i ? s - ++a : a++];\n return F(n, u[0], u[1]);\n });\n }\n return this.__iteratorUncached(n, i);\n }, t;\n})(G), qt = /* @__PURE__ */ (function(e) {\n function t(r) {\n return r == null ? kr().toKeyedSeq() : at(r) ? P(r) ? r.toSeq() : r.fromEntrySeq() : Bt(r) ? r.toSeq() : Ar(r);\n }\n return e && (t.__proto__ = e), t.prototype = Object.create(e && e.prototype), t.prototype.constructor = t, t.prototype.toKeyedSeq = function() {\n return this;\n }, t;\n})(rt), dt = /* @__PURE__ */ (function(e) {\n function t(r) {\n return r == null ? kr() : at(r) ? P(r) ? r.entrySeq() : r.toIndexedSeq() : Bt(r) ? r.toSeq().entrySeq() : Hn(r);\n }\n return e && (t.__proto__ = e), t.prototype = Object.create(e && e.prototype), t.prototype.constructor = t, t.of = function() {\n return t(arguments);\n }, t.prototype.toIndexedSeq = function() {\n return this;\n }, t.prototype.toString = function() {\n return this.__toString(\"Seq [\", \"]\");\n }, t;\n})(rt), se = /* @__PURE__ */ (function(e) {\n function t(r) {\n return (at(r) && !Or(r) ? r : dt(r)).toSetSeq();\n }\n return e && (t.__proto__ = e), t.prototype = Object.create(e && e.prototype), t.prototype.constructor = t, t.of = function() {\n return t(arguments);\n }, t.prototype.toSetSeq = function() {\n return this;\n }, t;\n})(rt);\nrt.isSeq = Rr;\nrt.Keyed = qt;\nrt.Set = se;\nrt.Indexed = dt;\nrt.prototype[Wn] = !0;\nvar Jt = /* @__PURE__ */ (function(e) {\n function t(r) {\n this._array = r, this.size = r.length;\n }\n return e && (t.__proto__ = e), t.prototype = Object.create(e && e.prototype), t.prototype.constructor = t, t.prototype.get = function(n, i) {\n return this.has(n) ? this._array[Tt(this, n)] : i;\n }, t.prototype.__iterate = function(n, i) {\n for (var o = this._array, s = o.length, a = 0; a !== s; ) {\n var u = i ? s - ++a : a++;\n if (n(o[u], u, this) === !1)\n break;\n }\n return a;\n }, t.prototype.__iterator = function(n, i) {\n var o = this._array, s = o.length, a = 0;\n return new M(function() {\n if (a === s)\n return tt();\n var u = i ? s - ++a : a++;\n return F(n, u, o[u]);\n });\n }, t;\n})(dt), Ir = /* @__PURE__ */ (function(e) {\n function t(r) {\n var n = Object.keys(r).concat(\n Object.getOwnPropertySymbols ? Object.getOwnPropertySymbols(r) : []\n );\n this._object = r, this._keys = n, this.size = n.length;\n }\n return e && (t.__proto__ = e), t.prototype = Object.create(e && e.prototype), t.prototype.constructor = t, t.prototype.get = function(n, i) {\n return i !== void 0 && !this.has(n) ? i : this._object[n];\n }, t.prototype.has = function(n) {\n return oe.call(this._object, n);\n }, t.prototype.__iterate = function(n, i) {\n for (var o = this._object, s = this._keys, a = s.length, u = 0; u !== a; ) {\n var c = s[i ? a - ++u : u++];\n if (n(o[c], c, this) === !1)\n break;\n }\n return u;\n }, t.prototype.__iterator = function(n, i) {\n var o = this._object, s = this._keys, a = s.length, u = 0;\n return new M(function() {\n if (u === a)\n return tt();\n var c = s[i ? a - ++u : u++];\n return F(n, c, o[c]);\n });\n }, t;\n})(qt);\nIr.prototype[Lt] = !0;\nvar uo = /* @__PURE__ */ (function(e) {\n function t(r) {\n this._collection = r, this.size = r.length || r.size;\n }\n return e && (t.__proto__ = e), t.prototype = Object.create(e && e.prototype), t.prototype.constructor = t, t.prototype.__iterateUncached = function(n, i) {\n if (i)\n return this.cacheResult().__iterate(n, i);\n var o = this._collection, s = dr(o), a = 0;\n if (on(s))\n for (var u; !(u = s.next()).done && n(u.value, a++, this) !== !1; )\n ;\n return a;\n }, t.prototype.__iteratorUncached = function(n, i) {\n if (i)\n return this.cacheResult().__iterator(n, i);\n var o = this._collection, s = dr(o);\n if (!on(s))\n return new M(tt);\n var a = 0;\n return new M(function() {\n var u = s.next();\n return u.done ? u : F(n, a++, u.value);\n });\n }, t;\n})(dt), sn;\nfunction kr() {\n return sn || (sn = new Jt([]));\n}\nfunction Ar(e) {\n var t = Mr(e);\n if (t)\n return t.fromEntrySeq();\n if (typeof e == \"object\")\n return new Ir(e);\n throw new TypeError(\n \"Expected Array or collection object of [k, v] entries, or keyed object: \" + e\n );\n}\nfunction Hn(e) {\n var t = Mr(e);\n if (t)\n return t;\n throw new TypeError(\n \"Expected Array or collection object of values: \" + e\n );\n}\nfunction co(e) {\n var t = Mr(e);\n if (t)\n return so(e) ? t.fromEntrySeq() : ao(e) ? t.toSetSeq() : t;\n if (typeof e == \"object\")\n return new Ir(e);\n throw new TypeError(\n \"Expected Array or collection object of values, or keyed object: \" + e\n );\n}\nfunction Mr(e) {\n return Kn(e) ? new Jt(e) : Fn(e) ? new uo(e) : void 0;\n}\nfunction Me() {\n return this.__ensureOwner();\n}\nfunction $e() {\n return this.__ownerID ? this : this.__ensureOwner(new Er());\n}\nvar le = typeof Math.imul == \"function\" && Math.imul(4294967295, 2) === -2 ? Math.imul : function(t, r) {\n t |= 0, r |= 0;\n var n = t & 65535, i = r & 65535;\n return n * i + ((t >>> 16) * i + n * (r >>> 16) << 16 >>> 0) | 0;\n};\nfunction Xe(e) {\n return e >>> 1 & 1073741824 | e & 3221225471;\n}\nvar fo = Object.prototype.valueOf;\nfunction nt(e) {\n if (e == null)\n return an(e);\n if (typeof e.hashCode == \"function\")\n return Xe(e.hashCode(e));\n var t = vo(e);\n if (t == null)\n return an(t);\n switch (typeof t) {\n case \"boolean\":\n return t ? 1108378657 : 1108378656;\n case \"number\":\n return ho(t);\n case \"string\":\n return t.length > yo ? lo(t) : gr(t);\n case \"object\":\n case \"function\":\n return _o(t);\n case \"symbol\":\n return po(t);\n default:\n if (typeof t.toString == \"function\")\n return gr(t.toString());\n throw new Error(\"Value type \" + typeof t + \" cannot be hashed.\");\n }\n}\nfunction an(e) {\n return e === null ? 1108378658 : (\n /* undefined */\n 1108378659\n );\n}\nfunction ho(e) {\n if (e !== e || e === 1 / 0)\n return 0;\n var t = e | 0;\n for (t !== e && (t ^= e * 4294967295); e > 4294967295; )\n e /= 4294967295, t ^= e;\n return Xe(t);\n}\nfunction lo(e) {\n var t = ur[e];\n return t === void 0 && (t = gr(e), ar === mo && (ar = 0, ur = {}), ar++, ur[e] = t), t;\n}\nfunction gr(e) {\n for (var t = 0, r = 0; r < e.length; r++)\n t = 31 * t + e.charCodeAt(r) | 0;\n return Xe(t);\n}\nfunction po(e) {\n var t = fn[e];\n return t !== void 0 || (t = Vn(), fn[e] = t), t;\n}\nfunction _o(e) {\n var t;\n if (vr && (t = yr.get(e), t !== void 0) || (t = e[Pt], t !== void 0) || !cn && (t = e.propertyIsEnumerable && e.propertyIsEnumerable[Pt], t !== void 0 || (t = go(e), t !== void 0)))\n return t;\n if (t = Vn(), vr)\n yr.set(e, t);\n else {\n if (un !== void 0 && un(e) === !1)\n throw new Error(\"Non-extensible objects are not allowed as keys.\");\n if (cn)\n Object.defineProperty(e, Pt, {\n enumerable: !1,\n configurable: !1,\n writable: !1,\n value: t\n });\n else if (e.propertyIsEnumerable !== void 0 && e.propertyIsEnumerable === e.constructor.prototype.propertyIsEnumerable)\n e.propertyIsEnumerable = function() {\n return this.constructor.prototype.propertyIsEnumerable.apply(\n this,\n // eslint-disable-next-line prefer-rest-params\n arguments\n );\n }, e.propertyIsEnumerable[Pt] = t;\n else if (e.nodeType !== void 0)\n e[Pt] = t;\n else\n throw new Error(\"Unable to set a non-enumerable property on object.\");\n }\n return t;\n}\nvar un = Object.isExtensible, cn = (function() {\n try {\n return Object.defineProperty({}, \"@\", {}), !0;\n } catch {\n return !1;\n }\n})();\nfunction go(e) {\n if (e && e.nodeType > 0)\n switch (e.nodeType) {\n case 1:\n return e.uniqueID;\n case 9:\n return e.documentElement && e.documentElement.uniqueID;\n }\n}\nfunction vo(e) {\n return e.valueOf !== fo && typeof e.valueOf == \"function\" ? (\n // @ts-expect-error weird the \"obj\" parameter as `valueOf` should not have a parameter\n e.valueOf(e)\n ) : e;\n}\nfunction Vn() {\n var e = ++sr;\n return sr & 1073741824 && (sr = 0), e;\n}\nvar vr = typeof WeakMap == \"function\", yr;\nvr && (yr = /* @__PURE__ */ new WeakMap());\nvar fn = /* @__PURE__ */ Object.create(null), sr = 0, Pt = \"__immutablehash__\";\ntypeof Symbol == \"function\" && (Pt = Symbol(Pt));\nvar yo = 16, mo = 255, ar = 0, ur = {}, Qe = /* @__PURE__ */ (function(e) {\n function t(r, n) {\n this._iter = r, this._useKeys = n, this.size = r.size;\n }\n return e && (t.__proto__ = e), t.prototype = Object.create(e && e.prototype), t.prototype.constructor = t, t.prototype.get = function(n, i) {\n return this._iter.get(n, i);\n }, t.prototype.has = function(n) {\n return this._iter.has(n);\n }, t.prototype.valueSeq = function() {\n return this._iter.valueSeq();\n }, t.prototype.reverse = function() {\n var n = this, i = $r(this, !0);\n return this._useKeys || (i.valueSeq = function() {\n return n._iter.toSeq().reverse();\n }), i;\n }, t.prototype.map = function(n, i) {\n var o = this, s = Xn(this, n, i);\n return this._useKeys || (s.valueSeq = function() {\n return o._iter.toSeq().map(n, i);\n }), s;\n }, t.prototype.__iterate = function(n, i) {\n var o = this;\n return this._iter.__iterate(function(s, a) {\n return n(s, a, o);\n }, i);\n }, t.prototype.__iterator = function(n, i) {\n return this._iter.__iterator(n, i);\n }, t;\n})(qt);\nQe.prototype[Lt] = !0;\nvar Yn = /* @__PURE__ */ (function(e) {\n function t(r) {\n this._iter = r, this.size = r.size;\n }\n return e && (t.__proto__ = e), t.prototype = Object.create(e && e.prototype), t.prototype.constructor = t, t.prototype.includes = function(n) {\n return this._iter.includes(n);\n }, t.prototype.__iterate = function(n, i) {\n var o = this, s = 0;\n return i && Yt(this), this._iter.__iterate(\n function(a) {\n return n(a, i ? o.size - ++s : s++, o);\n },\n i\n );\n }, t.prototype.__iterator = function(n, i) {\n var o = this, s = this._iter.__iterator(ut, i), a = 0;\n return i && Yt(this), new M(function() {\n var u = s.next();\n return u.done ? u : F(\n n,\n i ? o.size - ++a : a++,\n u.value,\n u\n );\n });\n }, t;\n})(dt), Jn = /* @__PURE__ */ (function(e) {\n function t(r) {\n this._iter = r, this.size = r.size;\n }\n return e && (t.__proto__ = e), t.prototype = Object.create(e && e.prototype), t.prototype.constructor = t, t.prototype.has = function(n) {\n return this._iter.includes(n);\n }, t.prototype.__iterate = function(n, i) {\n var o = this;\n return this._iter.__iterate(function(s) {\n return n(s, s, o);\n }, i);\n }, t.prototype.__iterator = function(n, i) {\n var o = this._iter.__iterator(ut, i);\n return new M(function() {\n var s = o.next();\n return s.done ? s : F(n, s.value, s.value, s);\n });\n }, t;\n})(se), Gn = /* @__PURE__ */ (function(e) {\n function t(r) {\n this._iter = r, this.size = r.size;\n }\n return e && (t.__proto__ = e), t.prototype = Object.create(e && e.prototype), t.prototype.constructor = t, t.prototype.entrySeq = function() {\n return this._iter.toSeq();\n }, t.prototype.__iterate = function(n, i) {\n var o = this;\n return this._iter.__iterate(function(s) {\n if (s) {\n ln(s);\n var a = at(s);\n return n(\n a ? s.get(1) : s[1],\n a ? s.get(0) : s[0],\n o\n );\n }\n }, i);\n }, t.prototype.__iterator = function(n, i) {\n var o = this._iter.__iterator(ut, i);\n return new M(function() {\n for (; ; ) {\n var s = o.next();\n if (s.done)\n return s;\n var a = s.value;\n if (a) {\n ln(a);\n var u = at(a);\n return F(\n n,\n u ? a.get(0) : a[0],\n u ? a.get(1) : a[1],\n s\n );\n }\n }\n });\n }, t;\n})(qt);\nYn.prototype.cacheResult = Qe.prototype.cacheResult = Jn.prototype.cacheResult = Gn.prototype.cacheResult = Lr;\nfunction Zn(e) {\n var t = wt(e);\n return t._iter = e, t.size = e.size, t.flip = function() {\n return e;\n }, t.reverse = function() {\n var r = e.reverse.apply(this);\n return r.flip = function() {\n return e.reverse();\n }, r;\n }, t.has = function(r) {\n return e.includes(r);\n }, t.includes = function(r) {\n return e.has(r);\n }, t.cacheResult = Lr, t.__iterateUncached = function(r, n) {\n var i = this;\n return e.__iterate(function(o, s) {\n return r(s, o, i) !== !1;\n }, n);\n }, t.__iteratorUncached = function(r, n) {\n if (r === ct) {\n var i = e.__iterator(r, n);\n return new M(function() {\n var o = i.next();\n if (!o.done) {\n var s = o.value[0];\n o.value[0] = o.value[1], o.value[1] = s;\n }\n return o;\n });\n }\n return e.__iterator(\n r === ut ? ie : ut,\n n\n );\n }, t;\n}\nfunction Xn(e, t, r) {\n var n = wt(e);\n return n.size = e.size, n.has = function(i) {\n return e.has(i);\n }, n.get = function(i, o) {\n var s = e.get(i, k);\n return s === k ? o : t.call(r, s, i, e);\n }, n.__iterateUncached = function(i, o) {\n var s = this;\n return e.__iterate(\n function(a, u, c) {\n return i(t.call(r, a, u, c), u, s) !== !1;\n },\n o\n );\n }, n.__iteratorUncached = function(i, o) {\n var s = e.__iterator(ct, o);\n return new M(function() {\n var a = s.next();\n if (a.done)\n return a;\n var u = a.value, c = u[0];\n return F(\n i,\n c,\n t.call(r, u[1], c, e),\n a\n );\n });\n }, n;\n}\nfunction $r(e, t) {\n var r = this, n = wt(e);\n return n._iter = e, n.size = e.size, n.reverse = function() {\n return e;\n }, e.flip && (n.flip = function() {\n var i = Zn(e);\n return i.reverse = function() {\n return e.flip();\n }, i;\n }), n.get = function(i, o) {\n return e.get(t ? i : -1 - i, o);\n }, n.has = function(i) {\n return e.has(t ? i : -1 - i);\n }, n.includes = function(i) {\n return e.includes(i);\n }, n.cacheResult = Lr, n.__iterate = function(i, o) {\n var s = this, a = 0;\n return o && Yt(e), e.__iterate(\n function(u, c) {\n return i(u, t ? c : o ? s.size - ++a : a++, s);\n },\n !o\n );\n }, n.__iterator = function(i, o) {\n var s = 0;\n o && Yt(e);\n var a = e.__iterator(ct, !o);\n return new M(function() {\n var u = a.next();\n if (u.done)\n return u;\n var c = u.value;\n return F(\n i,\n t ? c[0] : o ? r.size - ++s : s++,\n c[1],\n u\n );\n });\n }, n;\n}\nfunction Qn(e, t, r, n) {\n var i = wt(e);\n return n && (i.has = function(o) {\n var s = e.get(o, k);\n return s !== k && !!t.call(r, s, o, e);\n }, i.get = function(o, s) {\n var a = e.get(o, k);\n return a !== k && t.call(r, a, o, e) ? a : s;\n }), i.__iterateUncached = function(o, s) {\n var a = this, u = 0;\n return e.__iterate(function(c, f, h) {\n if (t.call(r, c, f, h))\n return u++, o(c, n ? f : u - 1, a);\n }, s), u;\n }, i.__iteratorUncached = function(o, s) {\n var a = e.__iterator(ct, s), u = 0;\n return new M(function() {\n for (; ; ) {\n var c = a.next();\n if (c.done)\n return c;\n var f = c.value, h = f[0], l = f[1];\n if (t.call(r, l, h, e))\n return F(o, n ? h : u++, l, c);\n }\n });\n }, i;\n}\nfunction So(e, t, r) {\n var n = Ct().asMutable();\n return e.__iterate(function(i, o) {\n n.update(t.call(r, i, o, e), 0, function(s) {\n return s + 1;\n });\n }), n.asImmutable();\n}\nfunction wo(e, t, r) {\n var n = P(e), i = (mt(e) ? It() : Ct()).asMutable();\n e.__iterate(function(s, a) {\n i.update(\n t.call(r, s, a, e),\n function(u) {\n return u = u || [], u.push(n ? [a, s] : s), u;\n }\n );\n });\n var o = Tr(e);\n return i.map(function(s) {\n return T(e, o(s));\n }).asImmutable();\n}\nfunction bo(e, t, r) {\n var n = P(e), i = [[], []];\n e.__iterate(function(s, a) {\n i[t.call(r, s, a, e) ? 1 : 0].push(\n n ? [a, s] : s\n );\n });\n var o = Tr(e);\n return i.map(function(s) {\n return T(e, o(s));\n });\n}\nfunction zr(e, t, r, n) {\n var i = e.size;\n if (Ge(t, r, i))\n return e;\n if (typeof i > \"u\" && (t < 0 || r < 0))\n return zr(e.toSeq().cacheResult(), t, r, n);\n var o = Ae(t, i), s = Ze(r, i), a = s - o, u;\n a === a && (u = a < 0 ? 0 : a);\n var c = wt(e);\n return c.size = u === 0 ? u : e.size && u || void 0, !n && Rr(e) && u >= 0 && (c.get = function(f, h) {\n return f = Tt(this, f), f >= 0 && f < u ? e.get(f + o, h) : h;\n }), c.__iterateUncached = function(f, h) {\n var l = this;\n if (u === 0)\n return 0;\n if (h)\n return this.cacheResult().__iterate(f, h);\n var d = 0, p = !0, _ = 0;\n return e.__iterate(function(m, R) {\n if (!(p && (p = d++ < o)))\n return _++, f(m, n ? R : _ - 1, l) !== !1 && _ !== u;\n }), _;\n }, c.__iteratorUncached = function(f, h) {\n if (u !== 0 && h)\n return this.cacheResult().__iterator(f, h);\n if (u === 0)\n return new M(tt);\n var l = e.__iterator(f, h), d = 0, p = 0;\n return new M(function() {\n for (; d++ < o; )\n l.next();\n if (++p > u)\n return tt();\n var _ = l.next();\n return n || f === ut || _.done ? _ : f === ie ? F(f, p - 1, void 0, _) : F(f, p - 1, _.value[1], _);\n });\n }, c;\n}\nfunction Oo(e, t, r) {\n var n = wt(e);\n return n.__iterateUncached = function(i, o) {\n var s = this;\n if (o)\n return this.cacheResult().__iterate(i, o);\n var a = 0;\n return e.__iterate(\n function(u, c, f) {\n return t.call(r, u, c, f) && ++a && i(u, c, s);\n }\n ), a;\n }, n.__iteratorUncached = function(i, o) {\n var s = this;\n if (o)\n return this.cacheResult().__iterator(i, o);\n var a = e.__iterator(ct, o), u = !0;\n return new M(function() {\n if (!u)\n return tt();\n var c = a.next();\n if (c.done)\n return c;\n var f = c.value, h = f[0], l = f[1];\n return t.call(r, l, h, s) ? i === ct ? c : F(i, h, l, c) : (u = !1, tt());\n });\n }, n;\n}\nfunction ti(e, t, r, n) {\n var i = wt(e);\n return i.__iterateUncached = function(o, s) {\n var a = this;\n if (s)\n return this.cacheResult().__iterate(o, s);\n var u = !0, c = 0;\n return e.__iterate(function(f, h, l) {\n if (!(u && (u = t.call(r, f, h, l))))\n return c++, o(f, n ? h : c - 1, a);\n }), c;\n }, i.__iteratorUncached = function(o, s) {\n var a = this;\n if (s)\n return this.cacheResult().__iterator(o, s);\n var u = e.__iterator(ct, s), c = !0, f = 0;\n return new M(function() {\n var h, l, d;\n do {\n if (h = u.next(), h.done)\n return n || o === ut ? h : o === ie ? F(o, f++, void 0, h) : F(o, f++, h.value[1], h);\n var p = h.value;\n l = p[0], d = p[1], c && (c = t.call(r, d, l, a));\n } while (c);\n return o === ct ? h : F(o, l, d, h);\n });\n }, i;\n}\nvar Eo = /* @__PURE__ */ (function(e) {\n function t(r) {\n this._wrappedIterables = r.flatMap(function(n) {\n return n._wrappedIterables ? n._wrappedIterables : [n];\n }), this.size = this._wrappedIterables.reduce(function(n, i) {\n if (n !== void 0) {\n var o = i.size;\n if (o !== void 0)\n return n + o;\n }\n }, 0), this[Ke] = this._wrappedIterables[0][Ke], this[We] = this._wrappedIterables[0][We], this[Lt] = this._wrappedIterables[0][Lt];\n }\n return e && (t.__proto__ = e), t.prototype = Object.create(e && e.prototype), t.prototype.constructor = t, t.prototype.__iterateUncached = function(n, i) {\n if (this._wrappedIterables.length !== 0) {\n if (i)\n return this.cacheResult().__iterate(n, i);\n for (var o = 0, s = P(this), a = s ? ct : ut, u = this._wrappedIterables[o].__iterator(\n a,\n i\n ), c = !0, f = 0; c; ) {\n for (var h = u.next(); h.done; ) {\n if (o++, o === this._wrappedIterables.length)\n return f;\n u = this._wrappedIterables[o].__iterator(\n a,\n i\n ), h = u.next();\n }\n var l = s ? n(h.value[1], h.value[0], this) : n(h.value, f, this);\n c = l !== !1, f++;\n }\n return f;\n }\n }, t.prototype.__iteratorUncached = function(n, i) {\n var o = this;\n if (this._wrappedIterables.length === 0)\n return new M(tt);\n if (i)\n return this.cacheResult().__iterator(n, i);\n var s = 0, a = this._wrappedIterables[s].__iterator(\n n,\n i\n );\n return new M(function() {\n for (var u = a.next(); u.done; ) {\n if (s++, s === o._wrappedIterables.length)\n return u;\n a = o._wrappedIterables[s].__iterator(\n n,\n i\n ), u = a.next();\n }\n return u;\n });\n }, t;\n})(rt);\nfunction Ro(e, t) {\n var r = P(e), n = [e].concat(t).map(function(o) {\n return at(o) ? r && (o = pt(o)) : o = r ? Ar(o) : Hn(Array.isArray(o) ? o : [o]), o;\n }).filter(function(o) {\n return o.size !== 0;\n });\n if (n.length === 0)\n return e;\n if (n.length === 1) {\n var i = n[0];\n if (i === e || r && P(i) || lt(e) && lt(i))\n return i;\n }\n return new Eo(n);\n}\nfunction ei(e, t, r) {\n var n = wt(e);\n return n.__iterateUncached = function(i, o) {\n if (o)\n return this.cacheResult().__iterate(i, o);\n var s = 0, a = !1;\n function u(c, f) {\n c.__iterate(function(h, l) {\n return (!t || f < t) && at(h) ? u(h, f + 1) : (s++, i(h, r ? l : s - 1, n) === !1 && (a = !0)), !a;\n }, o);\n }\n return u(e, 0), s;\n }, n.__iteratorUncached = function(i, o) {\n if (o)\n return this.cacheResult().__iterator(i, o);\n var s = e.__iterator(i, o), a = [], u = 0;\n return new M(function() {\n for (; s; ) {\n var c = s.next();\n if (c.done !== !1) {\n s = a.pop();\n continue;\n }\n var f = c.value;\n if (i === ct && (f = f[1]), (!t || a.length < t) && at(f))\n a.push(s), s = f.__iterator(i, o);\n else\n return r ? c : F(i, u++, f, c);\n }\n return tt();\n });\n }, n;\n}\nfunction Io(e, t, r) {\n var n = Tr(e);\n return e.toSeq().map(function(i, o) {\n return n(t.call(r, i, o, e));\n }).flatten(!0);\n}\nfunction ko(e, t) {\n var r = wt(e);\n return r.size = e.size && e.size * 2 - 1, r.__iterateUncached = function(n, i) {\n var o = this, s = 0;\n return e.__iterate(\n function(a) {\n return (!s || n(t, s++, o) !== !1) && n(a, s++, o) !== !1;\n },\n i\n ), s;\n }, r.__iteratorUncached = function(n, i) {\n var o = e.__iterator(ut, i), s = 0, a;\n return new M(function() {\n return (!a || s % 2) && (a = o.next(), a.done) ? a : s % 2 ? F(n, s++, t) : F(n, s++, a.value, a);\n });\n }, r;\n}\nfunction Gt(e, t, r) {\n t || (t = ri);\n var n = P(e), i = 0, o = e.toSeq().map(function(s, a) {\n return [a, s, i++, r ? r(s, a, e) : s];\n }).valueSeq().toArray();\n return o.sort(function(s, a) {\n return t(s[3], a[3]) || s[2] - a[2];\n }).forEach(\n n ? function(s, a) {\n o[a].length = 2;\n } : function(s, a) {\n o[a] = s[1];\n }\n ), n ? qt(o) : lt(e) ? dt(o) : se(o);\n}\nfunction Ne(e, t, r) {\n if (t || (t = ri), r) {\n var n = e.toSeq().map(function(i, o) {\n return [i, r(i, o, e)];\n }).reduce(function(i, o) {\n return hn(t, i[1], o[1]) ? o : i;\n });\n return n && n[0];\n }\n return e.reduce(function(i, o) {\n return hn(t, i, o) ? o : i;\n });\n}\nfunction hn(e, t, r) {\n var n = e(r, t);\n return n === 0 && r !== t && (r == null || r !== r) || n > 0;\n}\nfunction Pe(e, t, r, n) {\n var i = wt(e), o = new Jt(r).map(function(s) {\n return s.size;\n });\n return i.size = n ? o.max() : o.min(), i.__iterate = function(s, a) {\n for (var u = this.__iterator(ut, a), c, f = 0; !(c = u.next()).done && s(c.value, f++, this) !== !1; )\n ;\n return f;\n }, i.__iteratorUncached = function(s, a) {\n var u = r.map(\n function(h) {\n return h = G(h), dr(a ? h.reverse() : h);\n }\n ), c = 0, f = !1;\n return new M(function() {\n var h;\n return f || (h = u.map(function(l) {\n return l.next();\n }), f = n ? h.every(function(l) {\n return l.done;\n }) : h.some(function(l) {\n return l.done;\n })), f ? tt() : F(\n s,\n c++,\n t.apply(\n null,\n h.map(function(l) {\n return l.value;\n })\n )\n );\n });\n }, i;\n}\nfunction T(e, t) {\n return e === t ? e : Rr(e) ? t : e.constructor(t);\n}\nfunction ln(e) {\n if (e !== Object(e))\n throw new TypeError(\"Expected [K, V] tuple: \" + e);\n}\nfunction Tr(e) {\n return P(e) ? pt : lt(e) ? jt : ne;\n}\nfunction wt(e) {\n return Object.create(\n (P(e) ? qt : lt(e) ? dt : se).prototype\n );\n}\nfunction Lr() {\n return this._iter.cacheResult ? (this._iter.cacheResult(), this.size = this._iter.size, this) : rt.prototype.cacheResult.call(this);\n}\nfunction ri(e, t) {\n return e === void 0 && t === void 0 ? 0 : e === void 0 ? 1 : t === void 0 ? -1 : e > t ? 1 : e < t ? -1 : 0;\n}\nfunction pn(e) {\n return !!(e && // @ts-expect-error: maybeValue is typed as `{}`\n typeof e.equals == \"function\" && // @ts-expect-error: maybeValue is typed as `{}`\n typeof e.hashCode == \"function\");\n}\nfunction st(e, t) {\n if (e === t || e !== e && t !== t)\n return !0;\n if (!e || !t)\n return !1;\n if (typeof e.valueOf == \"function\" && typeof t.valueOf == \"function\") {\n if (e = e.valueOf(), t = t.valueOf(), e === t || e !== e && t !== t)\n return !0;\n if (!e || !t)\n return !1;\n }\n return !!(pn(e) && pn(t) && e.equals(t));\n}\nfunction ni(e, t, r, n) {\n return ae(\n // @ts-expect-error Index signature for type string is missing in type V[]\n e,\n [t],\n r,\n n\n );\n}\nfunction ii() {\n for (var e = [], t = arguments.length; t--; ) e[t] = arguments[t];\n return si(this, e);\n}\nfunction oi(e) {\n for (var t = [], r = arguments.length - 1; r-- > 0; ) t[r] = arguments[r + 1];\n if (typeof e != \"function\")\n throw new TypeError(\"Invalid merger function: \" + e);\n return si(this, t, e);\n}\nfunction si(e, t, r) {\n for (var n = [], i = 0; i < t.length; i++) {\n var o = pt(t[i]);\n o.size !== 0 && n.push(o);\n }\n return n.length === 0 ? e : e.toSeq().size === 0 && !e.__ownerID && n.length === 1 ? Bt(e) ? e : e.constructor(n[0]) : e.withMutations(function(s) {\n for (var a = r ? function(c, f) {\n ni(\n s,\n f,\n k,\n function(h) {\n return h === k ? c : r(h, c, f);\n }\n );\n } : function(c, f) {\n s.set(f, c);\n }, u = 0; u < n.length; u++)\n n[u].forEach(a);\n });\n}\nvar Ao = Object.prototype.toString;\nfunction Mo(e) {\n if (!e || typeof e != \"object\" || Ao.call(e) !== \"[object Object]\")\n return !1;\n var t = Object.getPrototypeOf(e);\n if (t === null)\n return !0;\n for (var r = t, n = Object.getPrototypeOf(t); n !== null; )\n r = n, n = Object.getPrototypeOf(r);\n return r === t;\n}\nfunction Dt(e) {\n return typeof e == \"object\" && (St(e) || Array.isArray(e) || Mo(e));\n}\nfunction vt(e, t) {\n t = t || 0;\n for (var r = Math.max(0, e.length - t), n = new Array(r), i = 0; i < r; i++)\n n[i] = e[i + t];\n return n;\n}\nfunction He(e) {\n if (Array.isArray(e))\n return vt(e);\n var t = {};\n for (var r in e)\n oe.call(e, r) && (t[r] = e[r]);\n return t;\n}\nfunction Dr(e, t, r) {\n return Cr(e, t, $o(r));\n}\nfunction Cr(e, t, r) {\n if (!Dt(e))\n throw new TypeError(\n \"Cannot merge into non-data-structure value: \" + e\n );\n if (St(e))\n return typeof r == \"function\" && e.mergeWith ? e.mergeWith.apply(e, [r].concat(t)) : e.merge ? e.merge.apply(e, t) : e.concat.apply(e, t);\n for (var n = Array.isArray(e), i = e, o = n ? jt : pt, s = n ? function(u) {\n i === e && (i = He(i)), i.push(u);\n } : function(u, c) {\n var f = oe.call(i, c), h = f && r ? r(i[c], u, c) : u;\n (!f || h !== i[c]) && (i === e && (i = He(i)), i[c] = h);\n }, a = 0; a < t.length; a++)\n o(t[a]).forEach(s);\n return i;\n}\nfunction $o(e) {\n function t(r, n, i) {\n return Dt(r) && Dt(n) && zo(r, n) ? Cr(r, [n], t) : e ? e(r, n, i) : n;\n }\n return t;\n}\nfunction zo(e, t) {\n var r = rt(e), n = rt(t);\n return lt(r) === lt(n) && P(r) === P(n);\n}\nfunction ai() {\n for (var e = [], t = arguments.length; t--; ) e[t] = arguments[t];\n return Dr(this, e);\n}\nfunction ui(e) {\n for (var t = [], r = arguments.length - 1; r-- > 0; ) t[r] = arguments[r + 1];\n return Dr(this, t, e);\n}\nfunction qr(e) {\n for (var t = [], r = arguments.length - 1; r-- > 0; ) t[r] = arguments[r + 1];\n return ae(\n this,\n e,\n yt(),\n function(n) {\n return Dr(n, t);\n }\n );\n}\nfunction Nr(e) {\n for (var t = [], r = arguments.length - 1; r-- > 0; ) t[r] = arguments[r + 1];\n return ae(this, e, yt(), function(n) {\n return Cr(n, t);\n });\n}\nfunction To(e, t, r) {\n return ae(e, t, k, function() {\n return r;\n });\n}\nfunction Pr(e, t) {\n return To(this, e, t);\n}\nfunction Fr(e, t, r) {\n return arguments.length === 1 ? e(this) : ni(this, e, t, r);\n}\nfunction jr(e, t, r) {\n return ae(this, e, t, r);\n}\nfunction Br() {\n return this.__altered;\n}\nfunction ze(e) {\n var t = this.asMutable();\n return e(t), t.wasAltered() ? t.__ensureOwner(this.__ownerID) : this;\n}\nvar ci = \"@@__IMMUTABLE_MAP__@@\";\nfunction xr(e) {\n return !!(e && // @ts-expect-error: maybeMap is typed as `{}`, need to change in 6.0 to `maybeMap && typeof maybeMap === 'object' && IS_MAP_SYMBOL in maybeMap`\n e[ci]);\n}\nfunction ve(e, t) {\n if (!e)\n throw new Error(t);\n}\nfunction it(e) {\n ve(e !== 1 / 0, \"Cannot perform this action with an infinite size.\");\n}\nvar Ct = /* @__PURE__ */ (function(e) {\n function t(r) {\n return r == null ? yt() : xr(r) && !mt(r) ? r : yt().withMutations(function(n) {\n var i = e(r);\n it(i.size), i.forEach(function(o, s) {\n return n.set(s, o);\n });\n });\n }\n return e && (t.__proto__ = e), t.prototype = Object.create(e && e.prototype), t.prototype.constructor = t, t.prototype.toString = function() {\n return this.__toString(\"Map {\", \"}\");\n }, t.prototype.get = function(n, i) {\n return this._root ? this._root.get(0, void 0, n, i) : i;\n }, t.prototype.set = function(n, i) {\n return gn(this, n, i);\n }, t.prototype.remove = function(n) {\n return gn(this, n, k);\n }, t.prototype.deleteAll = function(n) {\n var i = G(n);\n return i.size === 0 ? this : this.withMutations(function(o) {\n i.forEach(function(s) {\n return o.remove(s);\n });\n });\n }, t.prototype.clear = function() {\n return this.size === 0 ? this : this.__ownerID ? (this.size = 0, this._root = null, this.__hash = void 0, this.__altered = !0, this) : yt();\n }, t.prototype.sort = function(n) {\n return It(Gt(this, n));\n }, t.prototype.sortBy = function(n, i) {\n return It(Gt(this, i, n));\n }, t.prototype.map = function(n, i) {\n var o = this;\n return this.withMutations(function(s) {\n s.forEach(function(a, u) {\n s.set(u, n.call(i, a, u, o));\n });\n });\n }, t.prototype.__iterator = function(n, i) {\n return new Lo(this, n, i);\n }, t.prototype.__iterate = function(n, i) {\n var o = this, s = 0;\n return this._root && this._root.iterate(function(a) {\n return s++, n(a[1], a[0], o);\n }, i), s;\n }, t.prototype.__ensureOwner = function(n) {\n return n === this.__ownerID ? this : n ? Ur(this.size, this._root, n, this.__hash) : this.size === 0 ? yt() : (this.__ownerID = n, this.__altered = !1, this);\n }, t;\n})(pt);\nCt.isMap = xr;\nvar N = Ct.prototype;\nN[ci] = !0;\nN[ke] = N.remove;\nN.removeAll = N.deleteAll;\nN.setIn = Pr;\nN.removeIn = N.deleteIn = Hr;\nN.update = Fr;\nN.updateIn = jr;\nN.merge = N.concat = ii;\nN.mergeWith = oi;\nN.mergeDeep = ai;\nN.mergeDeepWith = ui;\nN.mergeIn = Nr;\nN.mergeDeepIn = qr;\nN.withMutations = ze;\nN.wasAltered = Br;\nN.asImmutable = Me;\nN[\"@@transducer/init\"] = N.asMutable = $e;\nN[\"@@transducer/step\"] = function(e, t) {\n return e.set(t[0], t[1]);\n};\nN[\"@@transducer/result\"] = function(e) {\n return e.asImmutable();\n};\nvar Se = function(t, r) {\n this.ownerID = t, this.entries = r;\n};\nSe.prototype.get = function(t, r, n, i) {\n for (var o = this.entries, s = 0, a = o.length; s < a; s++)\n if (st(n, o[s][0]))\n return o[s][1];\n return i;\n};\nSe.prototype.update = function(t, r, n, i, o, s, a) {\n for (var u = o === k, c = this.entries, f = 0, h = c.length; f < h && !st(i, c[f][0]); f++)\n ;\n var l = f < h;\n if (l ? c[f][1] === o : u)\n return this;\n if (ht(a), (u || !l) && ht(s), !(u && c.length === 1)) {\n if (!l && !u && c.length >= Fo)\n return Do(t, c, i, o);\n var d = t && t === this.ownerID, p = d ? c : vt(c);\n return l ? u ? f === h - 1 ? p.pop() : p[f] = p.pop() : p[f] = [i, o] : p.push([i, o]), d ? (this.entries = p, this) : new Se(t, p);\n }\n};\nvar Zt = function(t, r, n) {\n this.ownerID = t, this.bitmap = r, this.nodes = n;\n};\nZt.prototype.get = function(t, r, n, i) {\n r === void 0 && (r = nt(n));\n var o = 1 << ((t === 0 ? r : r >>> t) & Q), s = this.bitmap;\n return (s & o) === 0 ? i : this.nodes[fi(s & o - 1)].get(\n t + L,\n r,\n n,\n i\n );\n};\nZt.prototype.update = function(t, r, n, i, o, s, a) {\n n === void 0 && (n = nt(i));\n var u = (r === 0 ? n : n >>> r) & Q, c = 1 << u, f = this.bitmap, h = (f & c) !== 0;\n if (!h && o === k)\n return this;\n var l = fi(f & c - 1), d = this.nodes, p = h ? d[l] : void 0, _ = Wr(\n p,\n t,\n r + L,\n n,\n i,\n o,\n s,\n a\n );\n if (_ === p)\n return this;\n if (!h && _ && d.length >= jo)\n return qo(t, d, f, u, _);\n if (h && !_ && d.length === 2 && vn(d[l ^ 1]))\n return d[l ^ 1];\n if (h && _ && d.length === 1 && vn(_))\n return _;\n var m = t && t === this.ownerID, R = h ? _ ? f : f ^ c : f | c, O = h ? _ ? hi(d, l, _, m) : Po(d, l, m) : No(d, l, _, m);\n return m ? (this.bitmap = R, this.nodes = O, this) : new Zt(t, R, O);\n};\nvar we = function(t, r, n) {\n this.ownerID = t, this.count = r, this.nodes = n;\n};\nwe.prototype.get = function(t, r, n, i) {\n r === void 0 && (r = nt(n));\n var o = (t === 0 ? r : r >>> t) & Q, s = this.nodes[o];\n return s ? s.get(t + L, r, n, i) : i;\n};\nwe.prototype.update = function(t, r, n, i, o, s, a) {\n n === void 0 && (n = nt(i));\n var u = (r === 0 ? n : n >>> r) & Q, c = o === k, f = this.nodes, h = f[u];\n if (c && !h)\n return this;\n var l = Wr(\n h,\n t,\n r + L,\n n,\n i,\n o,\n s,\n a\n );\n if (l === h)\n return this;\n var d = this.count;\n if (!h)\n d++;\n else if (!l && (d--, d < Bo))\n return Co(t, f, d, u);\n var p = t && t === this.ownerID, _ = hi(f, u, l, p);\n return p ? (this.count = d, this.nodes = _, this) : new we(t, d, _);\n};\nvar Xt = function(t, r, n) {\n this.ownerID = t, this.keyHash = r, this.entries = n;\n};\nXt.prototype.get = function(t, r, n, i) {\n for (var o = this.entries, s = 0, a = o.length; s < a; s++)\n if (st(n, o[s][0]))\n return o[s][1];\n return i;\n};\nXt.prototype.update = function(t, r, n, i, o, s, a) {\n n === void 0 && (n = nt(i));\n var u = o === k;\n if (n !== this.keyHash)\n return u ? this : (ht(a), ht(s), Kr(this, t, r, n, [i, o]));\n for (var c = this.entries, f = 0, h = c.length; f < h && !st(i, c[f][0]); f++)\n ;\n var l = f < h;\n if (l ? c[f][1] === o : u)\n return this;\n if (ht(a), (u || !l) && ht(s), u && h === 2)\n return new Rt(t, this.keyHash, c[f ^ 1]);\n var d = t && t === this.ownerID, p = d ? c : vt(c);\n return l ? u ? f === h - 1 ? p.pop() : p[f] = p.pop() : p[f] = [i, o] : p.push([i, o]), d ? (this.entries = p, this) : new Xt(t, this.keyHash, p);\n};\nvar Rt = function(t, r, n) {\n this.ownerID = t, this.keyHash = r, this.entry = n;\n};\nRt.prototype.get = function(t, r, n, i) {\n return st(n, this.entry[0]) ? this.entry[1] : i;\n};\nRt.prototype.update = function(t, r, n, i, o, s, a) {\n var u = o === k, c = st(i, this.entry[0]);\n if (c ? o === this.entry[1] : u)\n return this;\n if (ht(a), u) {\n ht(s);\n return;\n }\n return c ? t && t === this.ownerID ? (this.entry[1] = o, this) : new Rt(t, this.keyHash, [i, o]) : (ht(s), Kr(this, t, r, nt(i), [i, o]));\n};\nSe.prototype.iterate = Xt.prototype.iterate = function(e, t) {\n for (var r = this.entries, n = 0, i = r.length - 1; n <= i; n++)\n if (e(r[t ? i - n : n]) === !1)\n return !1;\n};\nZt.prototype.iterate = we.prototype.iterate = function(e, t) {\n for (var r = this.nodes, n = 0, i = r.length - 1; n <= i; n++) {\n var o = r[t ? i - n : n];\n if (o && o.iterate(e, t) === !1)\n return !1;\n }\n};\nRt.prototype.iterate = function(e, t) {\n return e(this.entry);\n};\nvar Lo = /* @__PURE__ */ (function(e) {\n function t(r, n, i) {\n this._type = n, this._reverse = i, this._stack = r._root && dn(r._root);\n }\n return e && (t.__proto__ = e), t.prototype = Object.create(e && e.prototype), t.prototype.constructor = t, t.prototype.next = function() {\n for (var n = this._type, i = this._stack; i; ) {\n var o = i.node, s = i.index++, a = void 0;\n if (o.entry) {\n if (s === 0)\n return cr(n, o.entry);\n } else if (o.entries) {\n if (a = o.entries.length - 1, s <= a)\n return cr(\n n,\n o.entries[this._reverse ? a - s : s]\n );\n } else if (a = o.nodes.length - 1, s <= a) {\n var u = o.nodes[this._reverse ? a - s : s];\n if (u) {\n if (u.entry)\n return cr(n, u.entry);\n i = this._stack = dn(u, i);\n }\n continue;\n }\n i = this._stack = this._stack.__prev;\n }\n return tt();\n }, t;\n})(M);\nfunction cr(e, t) {\n return F(e, t[0], t[1]);\n}\nfunction dn(e, t) {\n return {\n node: e,\n index: 0,\n __prev: t\n };\n}\nfunction Ur(e, t, r, n) {\n var i = Object.create(N);\n return i.size = e, i._root = t, i.__ownerID = r, i.__hash = n, i.__altered = !1, i;\n}\nvar _n;\nfunction yt() {\n return _n || (_n = Ur(0));\n}\nfunction gn(e, t, r) {\n var n, i;\n if (e._root) {\n var o = _r(), s = _r();\n if (n = Wr(\n e._root,\n e.__ownerID,\n 0,\n void 0,\n t,\n r,\n o,\n s\n ), !s.value)\n return e;\n i = e.size + (o.value ? r === k ? -1 : 1 : 0);\n } else {\n if (r === k)\n return e;\n i = 1, n = new Se(e.__ownerID, [[t, r]]);\n }\n return e.__ownerID ? (e.size = i, e._root = n, e.__hash = void 0, e.__altered = !0, e) : n ? Ur(i, n) : yt();\n}\nfunction Wr(e, t, r, n, i, o, s, a) {\n return e ? e.update(\n t,\n r,\n n,\n i,\n o,\n s,\n a\n ) : o === k ? e : (ht(a), ht(s), new Rt(t, n, [i, o]));\n}\nfunction vn(e) {\n return e.constructor === Rt || e.constructor === Xt;\n}\nfunction Kr(e, t, r, n, i) {\n if (e.keyHash === n)\n return new Xt(t, n, [e.entry, i]);\n var o = (r === 0 ? e.keyHash : e.keyHash >>> r) & Q, s = (r === 0 ? n : n >>> r) & Q, a, u = o === s ? [Kr(e, t, r + L, n, i)] : (a = new Rt(t, n, i), o < s ? [e, a] : [a, e]);\n return new Zt(t, 1 << o | 1 << s, u);\n}\nfunction Do(e, t, r, n) {\n e || (e = new Er());\n for (var i = new Rt(e, nt(r), [r, n]), o = 0; o < t.length; o++) {\n var s = t[o];\n i = i.update(e, 0, void 0, s[0], s[1]);\n }\n return i;\n}\nfunction Co(e, t, r, n) {\n for (var i = 0, o = 0, s = new Array(r), a = 0, u = 1, c = t.length; a < c; a++, u <<= 1) {\n var f = t[a];\n f !== void 0 && a !== n && (i |= u, s[o++] = f);\n }\n return new Zt(e, i, s);\n}\nfunction qo(e, t, r, n, i) {\n for (var o = 0, s = new Array(ot), a = 0; r !== 0; a++, r >>>= 1)\n s[a] = r & 1 ? t[o++] : void 0;\n return s[n] = i, new we(e, o + 1, s);\n}\nfunction fi(e) {\n return e -= e >> 1 & 1431655765, e = (e & 858993459) + (e >> 2 & 858993459), e = e + (e >> 4) & 252645135, e += e >> 8, e += e >> 16, e & 127;\n}\nfunction hi(e, t, r, n) {\n var i = n ? e : vt(e);\n return i[t] = r, i;\n}\nfunction No(e, t, r, n) {\n var i = e.length + 1;\n if (n && t + 1 === i)\n return e[t] = r, e;\n for (var o = new Array(i), s = 0, a = 0; a < i; a++)\n a === t ? (o[a] = r, s = -1) : o[a] = e[a + s];\n return o;\n}\nfunction Po(e, t, r) {\n var n = e.length - 1;\n if (r && t === n)\n return e.pop(), e;\n for (var i = new Array(n), o = 0, s = 0; s < n; s++)\n s === t && (o = 1), i[s] = e[s + o];\n return i;\n}\nvar Fo = ot / 4, jo = ot / 2, Bo = ot / 4;\nfunction li(e) {\n if (Kn(e) && typeof e != \"string\")\n return e;\n if (mt(e))\n return e.toArray();\n throw new TypeError(\"Invalid keyPath: expected Ordered Collection or Array: \" + e);\n}\nfunction be(e) {\n try {\n return typeof e == \"string\" ? JSON.stringify(e) : String(e);\n } catch {\n return JSON.stringify(e);\n }\n}\nfunction xo(e, t) {\n return St(e) ? (\n // @ts-expect-error key might be a number or symbol, which is not handled be Record key type\n e.has(t)\n ) : (\n // @ts-expect-error key might be anything else than PropertyKey, and will return false in that case but runtime is OK\n Dt(e) && oe.call(e, t)\n );\n}\nfunction pi(e, t, r) {\n return St(e) ? e.get(t, r) : xo(e, t) ? (\n // @ts-expect-error weird \"get\" here,\n typeof e.get == \"function\" ? (\n // @ts-expect-error weird \"get\" here,\n e.get(t)\n ) : (\n // @ts-expect-error key is unknown here,\n e[t]\n )\n ) : r;\n}\nfunction Uo(e, t) {\n if (!Dt(e))\n throw new TypeError(\"Cannot update non-data-structure value: \" + e);\n if (St(e)) {\n if (!e.remove)\n throw new TypeError(\"Cannot update immutable value without .remove() method: \" + e);\n return e.remove(t);\n }\n if (!oe.call(e, t))\n return e;\n var r = He(e);\n return Array.isArray(r) ? r.splice(t, 1) : delete r[t], r;\n}\nfunction Wo(e, t, r) {\n if (!Dt(e))\n throw new TypeError(\"Cannot update non-data-structure value: \" + e);\n if (St(e)) {\n if (!e.set)\n throw new TypeError(\"Cannot update immutable value without .set() method: \" + e);\n return e.set(t, r);\n }\n if (oe.call(e, t) && r === e[t])\n return e;\n var n = He(e);\n return n[t] = r, n;\n}\nfunction ae(e, t, r, n) {\n n || (n = r, r = void 0);\n var i = di(\n St(e),\n // @ts-expect-error type issues with Record and mixed types\n e,\n li(t),\n 0,\n r,\n n\n );\n return i === k ? r : i;\n}\nfunction di(e, t, r, n, i, o) {\n var s = t === k;\n if (n === r.length) {\n var a = s ? i : t, u = o(a);\n return u === a ? t : u;\n }\n if (!s && !Dt(t))\n throw new TypeError(\"Cannot update within non-data-structure value in path [\" + Array.from(r).slice(0, n).map(be) + \"]: \" + t);\n var c = r[n], f = s ? k : pi(t, c, k), h = di(\n f === k ? e : St(f),\n // @ts-expect-error mixed type\n f,\n r,\n n + 1,\n i,\n o\n );\n return h === f ? t : h === k ? Uo(t, c) : Wo(s ? e ? yt() : {} : t, c, h);\n}\nfunction Ko(e, t) {\n return ae(e, t, function() {\n return k;\n });\n}\nfunction Hr(e) {\n return Ko(this, e);\n}\nvar _i = \"@@__IMMUTABLE_LIST__@@\";\nfunction gi(e) {\n return !!(e && // @ts-expect-error: maybeList is typed as `{}`, need to change in 6.0 to `maybeList && typeof maybeList === 'object' && IS_LIST_SYMBOL in maybeList`\n e[_i]);\n}\nvar Qt = /* @__PURE__ */ (function(e) {\n function t(r) {\n var n = Be();\n if (r == null)\n return n;\n if (gi(r))\n return r;\n var i = e(r), o = i.size;\n return o === 0 ? n : (it(o), o > 0 && o < ot ? Oe(0, o, L, null, new $t(i.toArray())) : n.withMutations(function(s) {\n s.setSize(o), i.forEach(function(a, u) {\n return s.set(u, a);\n });\n }));\n }\n return e && (t.__proto__ = e), t.prototype = Object.create(e && e.prototype), t.prototype.constructor = t, t.of = function() {\n return this(arguments);\n }, t.prototype.toString = function() {\n return this.__toString(\"List [\", \"]\");\n }, t.prototype.get = function(n, i) {\n if (n = Tt(this, n), n >= 0 && n < this.size) {\n n += this._origin;\n var o = vi(this, n);\n return o && o.array[n & Q];\n }\n return i;\n }, t.prototype.set = function(n, i) {\n return Ho(this, n, i);\n }, t.prototype.remove = function(n) {\n return this.has(n) ? n === 0 ? this.shift() : n === this.size - 1 ? this.pop() : this.splice(n, 1) : this;\n }, t.prototype.insert = function(n, i) {\n return this.splice(n, 0, i);\n }, t.prototype.clear = function() {\n return this.size === 0 ? this : this.__ownerID ? (this.size = this._origin = this._capacity = 0, this._level = L, this._root = this._tail = this.__hash = void 0, this.__altered = !0, this) : Be();\n }, t.prototype.push = function() {\n var n = arguments, i = this.size;\n return this.withMutations(function(o) {\n kt(o, 0, i + n.length);\n for (var s = 0; s < n.length; s++)\n o.set(i + s, n[s]);\n });\n }, t.prototype.pop = function() {\n return kt(this, 0, -1);\n }, t.prototype.unshift = function() {\n var n = arguments;\n return this.withMutations(function(i) {\n kt(i, -n.length);\n for (var o = 0; o < n.length; o++)\n i.set(o, n[o]);\n });\n }, t.prototype.shift = function() {\n return kt(this, 1);\n }, t.prototype.shuffle = function(n) {\n return n === void 0 && (n = Math.random), this.withMutations(function(i) {\n for (var o = i.size, s, a; o; )\n s = Math.floor(n() * o--), a = i.get(s), i.set(s, i.get(o)), i.set(o, a);\n });\n }, t.prototype.concat = function() {\n for (var n = arguments, i = [], o = 0; o < arguments.length; o++) {\n var s = n[o], a = e(\n typeof s != \"string\" && Fn(s) ? s : [s]\n );\n a.size !== 0 && i.push(a);\n }\n return i.length === 0 ? this : this.size === 0 && !this.__ownerID && i.length === 1 ? this.constructor(i[0]) : this.withMutations(function(u) {\n i.forEach(function(c) {\n return c.forEach(function(f) {\n return u.push(f);\n });\n });\n });\n }, t.prototype.setSize = function(n) {\n return kt(this, 0, n);\n }, t.prototype.map = function(n, i) {\n var o = this;\n return this.withMutations(function(s) {\n for (var a = 0; a < o.size; a++)\n s.set(a, n.call(i, s.get(a), a, o));\n });\n }, t.prototype.slice = function(n, i) {\n var o = this.size;\n return Ge(n, i, o) ? this : kt(\n this,\n Ae(n, o),\n Ze(i, o)\n );\n }, t.prototype.__iterator = function(n, i) {\n var o = i ? this.size : 0, s = yn(this, i);\n return new M(function() {\n var a = s();\n return a === ye ? tt() : F(n, i ? --o : o++, a);\n });\n }, t.prototype.__iterate = function(n, i) {\n for (var o = i ? this.size : 0, s = yn(this, i), a; (a = s()) !== ye && n(a, i ? --o : o++, this) !== !1; )\n ;\n return o;\n }, t.prototype.__ensureOwner = function(n) {\n return n === this.__ownerID ? this : n ? Oe(\n this._origin,\n this._capacity,\n this._level,\n this._root,\n this._tail,\n n,\n this.__hash\n ) : this.size === 0 ? Be() : (this.__ownerID = n, this.__altered = !1, this);\n }, t;\n})(jt);\nQt.isList = gi;\nvar W = Qt.prototype;\nW[_i] = !0;\nW[ke] = W.remove;\nW.merge = W.concat;\nW.setIn = Pr;\nW.deleteIn = W.removeIn = Hr;\nW.update = Fr;\nW.updateIn = jr;\nW.mergeIn = Nr;\nW.mergeDeepIn = qr;\nW.withMutations = ze;\nW.wasAltered = Br;\nW.asImmutable = Me;\nW[\"@@transducer/init\"] = W.asMutable = $e;\nW[\"@@transducer/step\"] = function(e, t) {\n return e.push(t);\n};\nW[\"@@transducer/result\"] = function(e) {\n return e.asImmutable();\n};\nvar $t = function(t, r) {\n this.array = t, this.ownerID = r;\n};\n$t.prototype.removeBefore = function(t, r, n) {\n if ((n & (1 << r + L) - 1) === 0 || this.array.length === 0)\n return this;\n var i = n >>> r & Q;\n if (i >= this.array.length)\n return new $t([], t);\n var o = i === 0, s;\n if (r > 0) {\n var a = this.array[i];\n if (s = a && a.removeBefore(t, r - L, n), s === a && o)\n return this;\n }\n if (o && !s)\n return this;\n var u = te(this, t);\n if (!o)\n for (var c = 0; c < i; c++)\n u.array[c] = void 0;\n return s && (u.array[i] = s), u;\n};\n$t.prototype.removeAfter = function(t, r, n) {\n if (n === (r ? 1 << r + L : ot) || this.array.length === 0)\n return this;\n var i = n - 1 >>> r & Q;\n if (i >= this.array.length)\n return this;\n var o;\n if (r > 0) {\n var s = this.array[i];\n if (o = s && s.removeAfter(t, r - L, n), o === s && i === this.array.length - 1)\n return this;\n }\n var a = te(this, t);\n return a.array.splice(i + 1), o && (a.array[i] = o), a;\n};\nvar ye = {};\nfunction yn(e, t) {\n var r = e._origin, n = e._capacity, i = Ee(n), o = e._tail;\n return s(e._root, e._level, 0);\n function s(c, f, h) {\n return f === 0 ? a(c, h) : u(c, f, h);\n }\n function a(c, f) {\n var h = f === i ? o && o.array : c && c.array, l = f > r ? 0 : r - f, d = n - f;\n return d > ot && (d = ot), function() {\n if (l === d)\n return ye;\n var p = t ? --d : l++;\n return h && h[p];\n };\n }\n function u(c, f, h) {\n var l, d = c && c.array, p = h > r ? 0 : r - h >> f, _ = (n - h >> f) + 1;\n return _ > ot && (_ = ot), function() {\n for (; ; ) {\n if (l) {\n var m = l();\n if (m !== ye)\n return m;\n l = null;\n }\n if (p === _)\n return ye;\n var R = t ? --_ : p++;\n l = s(\n d && d[R],\n f - L,\n h + (R << f)\n );\n }\n };\n }\n}\nfunction Oe(e, t, r, n, i, o, s) {\n var a = Object.create(W);\n return a.size = t - e, a._origin = e, a._capacity = t, a._level = r, a._root = n, a._tail = i, a.__ownerID = o, a.__hash = s, a.__altered = !1, a;\n}\nfunction Be() {\n return Oe(0, 0, L);\n}\nfunction Ho(e, t, r) {\n if (t = Tt(e, t), t !== t)\n return e;\n if (t >= e.size || t < 0)\n return e.withMutations(function(s) {\n t < 0 ? kt(s, t).set(0, r) : kt(s, 0, t + 1).set(t, r);\n });\n t += e._origin;\n var n = e._tail, i = e._root, o = _r();\n return t >= Ee(e._capacity) ? n = mr(n, e.__ownerID, 0, t, r, o) : i = mr(\n i,\n e.__ownerID,\n e._level,\n t,\n r,\n o\n ), o.value ? e.__ownerID ? (e._root = i, e._tail = n, e.__hash = void 0, e.__altered = !0, e) : Oe(e._origin, e._capacity, e._level, i, n) : e;\n}\nfunction mr(e, t, r, n, i, o) {\n var s = n >>> r & Q, a = e && s < e.array.length;\n if (!a && i === void 0)\n return e;\n var u;\n if (r > 0) {\n var c = e && e.array[s], f = mr(\n c,\n t,\n r - L,\n n,\n i,\n o\n );\n return f === c ? e : (u = te(e, t), u.array[s] = f, u);\n }\n return a && e.array[s] === i ? e : (o && ht(o), u = te(e, t), i === void 0 && s === u.array.length - 1 ? u.array.pop() : u.array[s] = i, u);\n}\nfunction te(e, t) {\n return t && e && t === e.ownerID ? e : new $t(e ? e.array.slice() : [], t);\n}\nfunction vi(e, t) {\n if (t >= Ee(e._capacity))\n return e._tail;\n if (t < 1 << e._level + L) {\n for (var r = e._root, n = e._level; r && n > 0; )\n r = r.array[t >>> n & Q], n -= L;\n return r;\n }\n}\nfunction kt(e, t, r) {\n t !== void 0 && (t |= 0), r !== void 0 && (r |= 0);\n var n = e.__ownerID || new Er(), i = e._origin, o = e._capacity, s = i + t, a = r === void 0 ? o : r < 0 ? o + r : i + r;\n if (s === i && a === o)\n return e;\n if (s >= a)\n return e.clear();\n for (var u = e._level, c = e._root, f = 0; s + f < 0; )\n c = new $t(\n c && c.array.length ? [void 0, c] : [],\n n\n ), u += L, f += 1 << u;\n f && (s += f, i += f, a += f, o += f);\n for (var h = Ee(o), l = Ee(a); l >= 1 << u + L; )\n c = new $t(\n c && c.array.length ? [c] : [],\n n\n ), u += L;\n var d = e._tail, p = l < h ? vi(e, a - 1) : l > h ? new $t([], n) : d;\n if (d && l > h && s < o && d.array.length) {\n c = te(c, n);\n for (var _ = c, m = u; m > L; m -= L) {\n var R = h >>> m & Q;\n _ = _.array[R] = te(_.array[R], n);\n }\n _.array[h >>> L & Q] = d;\n }\n if (a < o && (p = p && p.removeAfter(n, 0, a)), s >= l)\n s -= l, a -= l, u = L, c = null, p = p && p.removeBefore(n, 0, s);\n else if (s > i || l < h) {\n for (f = 0; c; ) {\n var O = s >>> u & Q;\n if (O !== l >>> u & Q)\n break;\n O && (f += (1 << u) * O), u -= L, c = c.array[O];\n }\n c && s > i && (c = c.removeBefore(n, u, s - f)), c && l < h && (c = c.removeAfter(\n n,\n u,\n l - f\n )), f && (s -= f, a -= f);\n }\n return e.__ownerID ? (e.size = a - s, e._origin = s, e._capacity = a, e._level = u, e._root = c, e._tail = p, e.__hash = void 0, e.__altered = !0, e) : Oe(s, a, u, c, p);\n}\nfunction Ee(e) {\n return e < ot ? 0 : e - 1 >>> L << L;\n}\nfunction yi(e) {\n return xr(e) && mt(e);\n}\nvar It = /* @__PURE__ */ (function(e) {\n function t(r) {\n return r == null ? pe() : yi(r) ? r : pe().withMutations(function(n) {\n var i = pt(r);\n it(i.size), i.forEach(function(o, s) {\n return n.set(s, o);\n });\n });\n }\n return e && (t.__proto__ = e), t.prototype = Object.create(e && e.prototype), t.prototype.constructor = t, t.of = function() {\n return this(arguments);\n }, t.prototype.toString = function() {\n return this.__toString(\"OrderedMap {\", \"}\");\n }, t.prototype.get = function(n, i) {\n var o = this._map.get(n);\n return o !== void 0 ? this._list.get(o)[1] : i;\n }, t.prototype.clear = function() {\n return this.size === 0 ? this : this.__ownerID ? (this.size = 0, this._map.clear(), this._list.clear(), this.__altered = !0, this) : pe();\n }, t.prototype.set = function(n, i) {\n return Sn(this, n, i);\n }, t.prototype.remove = function(n) {\n return Sn(this, n, k);\n }, t.prototype.__iterate = function(n, i) {\n var o = this;\n return this._list.__iterate(\n function(s) {\n return s && n(s[1], s[0], o);\n },\n i\n );\n }, t.prototype.__iterator = function(n, i) {\n return this._list.fromEntrySeq().__iterator(n, i);\n }, t.prototype.__ensureOwner = function(n) {\n if (n === this.__ownerID)\n return this;\n var i = this._map.__ensureOwner(n), o = this._list.__ensureOwner(n);\n return n ? Vr(i, o, n, this.__hash) : this.size === 0 ? pe() : (this.__ownerID = n, this.__altered = !1, this._map = i, this._list = o, this);\n }, t;\n})(Ct);\nIt.isOrderedMap = yi;\nIt.prototype[Lt] = !0;\nIt.prototype[ke] = It.prototype.remove;\nfunction Vr(e, t, r, n) {\n var i = Object.create(It.prototype);\n return i.size = e ? e.size : 0, i._map = e, i._list = t, i.__ownerID = r, i.__hash = n, i.__altered = !1, i;\n}\nvar mn;\nfunction pe() {\n return mn || (mn = Vr(yt(), Be()));\n}\nfunction Sn(e, t, r) {\n var n = e._map, i = e._list, o = n.get(t), s = o !== void 0, a, u;\n if (r === k) {\n if (!s)\n return e;\n i.size >= ot && i.size >= n.size * 2 ? (u = i.filter(function(c, f) {\n return c !== void 0 && o !== f;\n }), a = u.toKeyedSeq().map(function(c) {\n return c[0];\n }).flip().toMap(), e.__ownerID && (a.__ownerID = u.__ownerID = e.__ownerID)) : (a = n.remove(t), u = o === i.size - 1 ? i.pop() : i.set(o, void 0));\n } else if (s) {\n if (r === i.get(o)[1])\n return e;\n a = n, u = i.set(o, [t, r]);\n } else\n a = n.set(t, i.size), u = i.set(i.size, [t, r]);\n return e.__ownerID ? (e.size = a.size, e._map = a, e._list = u, e.__hash = void 0, e.__altered = !0, e) : Vr(a, u);\n}\nvar mi = \"@@__IMMUTABLE_STACK__@@\";\nfunction Sr(e) {\n return !!(e && // @ts-expect-error: maybeStack is typed as `{}`, need to change in 6.0 to `maybeStack && typeof maybeStack === 'object' && MAYBE_STACK_SYMBOL in maybeStack`\n e[mi]);\n}\nvar Yr = /* @__PURE__ */ (function(e) {\n function t(r) {\n return r == null ? Fe() : Sr(r) ? r : Fe().pushAll(r);\n }\n return e && (t.__proto__ = e), t.prototype = Object.create(e && e.prototype), t.prototype.constructor = t, t.of = function() {\n return this(arguments);\n }, t.prototype.toString = function() {\n return this.__toString(\"Stack [\", \"]\");\n }, t.prototype.get = function(n, i) {\n var o = this._head;\n for (n = Tt(this, n); o && n--; )\n o = o.next;\n return o ? o.value : i;\n }, t.prototype.peek = function() {\n return this._head && this._head.value;\n }, t.prototype.push = function() {\n var n = arguments;\n if (arguments.length === 0)\n return this;\n for (var i = this.size + arguments.length, o = this._head, s = arguments.length - 1; s >= 0; s--)\n o = {\n value: n[s],\n next: o\n };\n return this.__ownerID ? (this.size = i, this._head = o, this.__hash = void 0, this.__altered = !0, this) : de(i, o);\n }, t.prototype.pushAll = function(n) {\n if (n = e(n), n.size === 0)\n return this;\n if (this.size === 0 && Sr(n))\n return n;\n it(n.size);\n var i = this.size, o = this._head;\n return n.__iterate(\n function(s) {\n i++, o = {\n value: s,\n next: o\n };\n },\n /* reverse */\n !0\n ), this.__ownerID ? (this.size = i, this._head = o, this.__hash = void 0, this.__altered = !0, this) : de(i, o);\n }, t.prototype.pop = function() {\n return this.slice(1);\n }, t.prototype.clear = function() {\n return this.size === 0 ? this : this.__ownerID ? (this.size = 0, this._head = void 0, this.__hash = void 0, this.__altered = !0, this) : Fe();\n }, t.prototype.slice = function(n, i) {\n if (Ge(n, i, this.size))\n return this;\n var o = Ae(n, this.size), s = Ze(i, this.size);\n if (s !== this.size)\n return e.prototype.slice.call(this, n, i);\n for (var a = this.size - o, u = this._head; o--; )\n u = u.next;\n return this.__ownerID ? (this.size = a, this._head = u, this.__hash = void 0, this.__altered = !0, this) : de(a, u);\n }, t.prototype.__ensureOwner = function(n) {\n return n === this.__ownerID ? this : n ? de(this.size, this._head, n, this.__hash) : this.size === 0 ? Fe() : (this.__ownerID = n, this.__altered = !1, this);\n }, t.prototype.__iterate = function(n, i) {\n var o = this;\n if (i)\n return new Jt(this.toArray()).__iterate(\n function(u, c) {\n return n(u, c, o);\n },\n i\n );\n for (var s = 0, a = this._head; a && n(a.value, s++, this) !== !1; )\n a = a.next;\n return s;\n }, t.prototype.__iterator = function(n, i) {\n if (i)\n return new Jt(this.toArray()).__iterator(n, i);\n var o = 0, s = this._head;\n return new M(function() {\n if (s) {\n var a = s.value;\n return s = s.next, F(n, o++, a);\n }\n return tt();\n });\n }, t;\n})(jt);\nYr.isStack = Sr;\nvar et = Yr.prototype;\net[mi] = !0;\net.shift = et.pop;\net.unshift = et.push;\net.unshiftAll = et.pushAll;\net.withMutations = ze;\net.wasAltered = Br;\net.asImmutable = Me;\net[\"@@transducer/init\"] = et.asMutable = $e;\net[\"@@transducer/step\"] = function(e, t) {\n return e.unshift(t);\n};\net[\"@@transducer/result\"] = function(e) {\n return e.asImmutable();\n};\nfunction de(e, t, r, n) {\n var i = Object.create(et);\n return i.size = e, i._head = t, i.__ownerID = r, i.__hash = n, i.__altered = !1, i;\n}\nvar wn;\nfunction Fe() {\n return wn || (wn = de(0));\n}\nfunction bn(e, t, r, n, i, o) {\n return it(e.size), e.__iterate(function(s, a, u) {\n i ? (i = !1, r = s) : r = t.call(n, r, s, a, u);\n }, o), r;\n}\nfunction Vo(e, t) {\n return t;\n}\nfunction Yo(e, t) {\n return [t, e];\n}\nfunction fr(e) {\n return function() {\n for (var t = [], r = arguments.length; r--; ) t[r] = arguments[r];\n return !e.apply(this, t);\n };\n}\nfunction On(e) {\n return function() {\n for (var t = [], r = arguments.length; r--; ) t[r] = arguments[r];\n return -e.apply(this, t);\n };\n}\nfunction En(e, t) {\n return e < t ? 1 : e > t ? -1 : 0;\n}\nfunction Si(e, t) {\n if (e === t)\n return !0;\n if (!at(t) || // @ts-expect-error size should exists on Collection\n e.size !== void 0 && t.size !== void 0 && e.size !== t.size || // @ts-expect-error __hash exists on Collection\n e.__hash !== void 0 && // @ts-expect-error __hash exists on Collection\n t.__hash !== void 0 && // @ts-expect-error __hash exists on Collection\n e.__hash !== t.__hash || P(e) !== P(t) || lt(e) !== lt(t) || // @ts-expect-error Range extends Collection, which implements [Symbol.iterator], so it is valid\n mt(e) !== mt(t))\n return !1;\n if (e.size === 0 && t.size === 0)\n return !0;\n var r = !Or(e);\n if (mt(e)) {\n var n = e.entries();\n return t.every(function(u, c) {\n var f = n.next().value;\n return f && st(f[1], u) && (r || st(f[0], c));\n }) && n.next().done;\n }\n var i = !1;\n if (e.size === void 0)\n if (t.size === void 0)\n typeof e.cacheResult == \"function\" && e.cacheResult();\n else {\n i = !0;\n var o = e;\n e = t, t = o;\n }\n var s = !0, a = (\n // @ts-expect-error b is Range | Repeat | Collection<unknown, unknown> as it may have been flipped, and __iterate is valid\n t.__iterate(function(u, c) {\n if (r ? (\n // @ts-expect-error has exists on Collection\n !e.has(u)\n ) : i ? (\n // @ts-expect-error type of `get` does not \"catch\" the version with `notSetValue`\n !st(u, e.get(c, k))\n ) : (\n // @ts-expect-error type of `get` does not \"catch\" the version with `notSetValue`\n !st(e.get(c, k), u)\n ))\n return s = !1, !1;\n })\n );\n return s && // @ts-expect-error size should exists on Collection\n e.size === a;\n}\nvar Jo = /* @__PURE__ */ (function(e) {\n function t(r, n, i) {\n if (i === void 0 && (i = 1), !(this instanceof t))\n return new t(r, n, i);\n if (ve(i !== 0, \"Cannot step a Range by 0\"), ve(\n r !== void 0,\n \"You must define a start value when using Range\"\n ), ve(\n n !== void 0,\n \"You must define an end value when using Range\"\n ), i = Math.abs(i), n < r && (i = -i), this._start = r, this._end = n, this._step = i, this.size = Math.max(0, Math.ceil((n - r) / i - 1) + 1), this.size === 0) {\n if (hr)\n return hr;\n hr = this;\n }\n }\n return e && (t.__proto__ = e), t.prototype = Object.create(e && e.prototype), t.prototype.constructor = t, t.prototype.toString = function() {\n return this.size === 0 ? \"Range []\" : \"Range [ \" + this._start + \"...\" + this._end + (this._step !== 1 ? \" by \" + this._step : \"\") + \" ]\";\n }, t.prototype.get = function(n, i) {\n return this.has(n) ? this._start + Tt(this, n) * this._step : i;\n }, t.prototype.includes = function(n) {\n var i = (n - this._start) / this._step;\n return i >= 0 && i < this.size && i === Math.floor(i);\n }, t.prototype.slice = function(n, i) {\n return Ge(n, i, this.size) ? this : (n = Ae(n, this.size), i = Ze(i, this.size), i <= n ? new t(0, 0) : new t(\n this.get(n, this._end),\n this.get(i, this._end),\n this._step\n ));\n }, t.prototype.indexOf = function(n) {\n var i = n - this._start;\n if (i % this._step === 0) {\n var o = i / this._step;\n if (o >= 0 && o < this.size)\n return o;\n }\n return -1;\n }, t.prototype.lastIndexOf = function(n) {\n return this.indexOf(n);\n }, t.prototype.__iterate = function(n, i) {\n for (var o = this.size, s = this._step, a = i ? this._start + (o - 1) * s : this._start, u = 0; u !== o && n(a, i ? o - ++u : u++, this) !== !1; )\n a += i ? -s : s;\n return u;\n }, t.prototype.__iterator = function(n, i) {\n var o = this.size, s = this._step, a = i ? this._start + (o - 1) * s : this._start, u = 0;\n return new M(function() {\n if (u === o)\n return tt();\n var c = a;\n return a += i ? -s : s, F(n, i ? o - ++u : u++, c);\n });\n }, t.prototype.equals = function(n) {\n return n instanceof t ? this._start === n._start && this._end === n._end && this._step === n._step : Si(this, n);\n }, t;\n})(dt), hr, wi = \"@@__IMMUTABLE_SET__@@\";\nfunction Jr(e) {\n return !!(e && // @ts-expect-error: maybeSet is typed as `{}`, need to change in 6.0 to `maybeSeq && typeof maybeSet === 'object' && MAYBE_SET_SYMBOL in maybeSet`\n e[wi]);\n}\nvar tr = /* @__PURE__ */ (function(e) {\n function t(r) {\n return r == null ? _e() : Jr(r) && !mt(r) ? r : _e().withMutations(function(n) {\n var i = e(r);\n it(i.size), i.forEach(function(o) {\n return n.add(o);\n });\n });\n }\n return e && (t.__proto__ = e), t.prototype = Object.create(e && e.prototype), t.prototype.constructor = t, t.of = function() {\n return this(arguments);\n }, t.fromKeys = function(n) {\n return this(pt(n).keySeq());\n }, t.intersect = function(n) {\n return n = G(n).toArray(), n.length ? V.intersect.apply(t(n.pop()), n) : _e();\n }, t.union = function(n) {\n return n = G(n).toArray(), n.length ? V.union.apply(t(n.pop()), n) : _e();\n }, t.prototype.toString = function() {\n return this.__toString(\"Set {\", \"}\");\n }, t.prototype.has = function(n) {\n return this._map.has(n);\n }, t.prototype.add = function(n) {\n return je(this, this._map.set(n, n));\n }, t.prototype.remove = function(n) {\n return je(this, this._map.remove(n));\n }, t.prototype.clear = function() {\n return je(this, this._map.clear());\n }, t.prototype.map = function(n, i) {\n var o = this, s = !1, a = je(\n this,\n this._map.mapEntries(function(u) {\n var c = u[1], f = n.call(i, c, c, o);\n return f !== c && (s = !0), [f, f];\n }, i)\n );\n return s ? a : this;\n }, t.prototype.union = function() {\n for (var n = [], i = arguments.length; i--; ) n[i] = arguments[i];\n return n = n.filter(function(o) {\n return o.size !== 0;\n }), n.length === 0 ? this : this.size === 0 && !this.__ownerID && n.length === 1 ? this.constructor(n[0]) : this.withMutations(function(o) {\n for (var s = 0; s < n.length; s++)\n typeof n[s] == \"string\" ? o.add(n[s]) : e(n[s]).forEach(function(a) {\n return o.add(a);\n });\n });\n }, t.prototype.intersect = function() {\n for (var n = [], i = arguments.length; i--; ) n[i] = arguments[i];\n if (n.length === 0)\n return this;\n n = n.map(function(s) {\n return e(s);\n });\n var o = [];\n return this.forEach(function(s) {\n n.every(function(a) {\n return a.includes(s);\n }) || o.push(s);\n }), this.withMutations(function(s) {\n o.forEach(function(a) {\n s.remove(a);\n });\n });\n }, t.prototype.subtract = function() {\n for (var n = [], i = arguments.length; i--; ) n[i] = arguments[i];\n if (n.length === 0)\n return this;\n n = n.map(function(s) {\n return e(s);\n });\n var o = [];\n return this.forEach(function(s) {\n n.some(function(a) {\n return a.includes(s);\n }) && o.push(s);\n }), this.withMutations(function(s) {\n o.forEach(function(a) {\n s.remove(a);\n });\n });\n }, t.prototype.sort = function(n) {\n return Re(Gt(this, n));\n }, t.prototype.sortBy = function(n, i) {\n return Re(Gt(this, i, n));\n }, t.prototype.wasAltered = function() {\n return this._map.wasAltered();\n }, t.prototype.__iterate = function(n, i) {\n var o = this;\n return this._map.__iterate(function(s) {\n return n(s, s, o);\n }, i);\n }, t.prototype.__iterator = function(n, i) {\n return this._map.__iterator(n, i);\n }, t.prototype.__ensureOwner = function(n) {\n if (n === this.__ownerID)\n return this;\n var i = this._map.__ensureOwner(n);\n return n ? this.__make(i, n) : this.size === 0 ? this.__empty() : (this.__ownerID = n, this._map = i, this);\n }, t;\n})(ne);\ntr.isSet = Jr;\nvar V = tr.prototype;\nV[wi] = !0;\nV[ke] = V.remove;\nV.merge = V.concat = V.union;\nV.withMutations = ze;\nV.asImmutable = Me;\nV[\"@@transducer/init\"] = V.asMutable = $e;\nV[\"@@transducer/step\"] = function(e, t) {\n return e.add(t);\n};\nV[\"@@transducer/result\"] = function(e) {\n return e.asImmutable();\n};\nV.__empty = _e;\nV.__make = bi;\nfunction je(e, t) {\n return e.__ownerID ? (e.size = t.size, e._map = t, e) : t === e._map ? e : t.size === 0 ? e.__empty() : e.__make(t);\n}\nfunction bi(e, t) {\n var r = Object.create(V);\n return r.size = e ? e.size : 0, r._map = e, r.__ownerID = t, r;\n}\nvar Rn;\nfunction _e() {\n return Rn || (Rn = bi(yt()));\n}\nfunction Oi(e, t, r) {\n for (var n = li(t), i = 0; i !== n.length; )\n if (e = pi(e, n[i++], k), e === k)\n return r;\n return e;\n}\nfunction Ei(e, t) {\n return Oi(this, e, t);\n}\nfunction Go(e, t) {\n return Oi(e, t, k) !== k;\n}\nfunction Zo(e) {\n return Go(this, e);\n}\nfunction Ri() {\n it(this.size);\n var e = {};\n return this.__iterate(function(t, r) {\n e[r] = t;\n }), e;\n}\nfunction Ve(e) {\n if (!e || typeof e != \"object\")\n return e;\n if (!at(e)) {\n if (!Dt(e))\n return e;\n e = rt(e);\n }\n if (P(e)) {\n var t = {};\n return e.__iterate(function(n, i) {\n t[i] = Ve(n);\n }), t;\n }\n var r = [];\n return e.__iterate(function(n) {\n r.push(Ve(n));\n }), r;\n}\nfunction Xo(e) {\n if (e.size === 1 / 0)\n return 0;\n var t = mt(e), r = P(e), n = t ? 1 : 0;\n return e.__iterate(r ? t ? function(i, o) {\n n = 31 * n + In(nt(i), nt(o)) | 0;\n } : function(i, o) {\n n = n + In(nt(i), nt(o)) | 0;\n } : t ? function(i) {\n n = 31 * n + nt(i) | 0;\n } : function(i) {\n n = n + nt(i) | 0;\n }), Qo(e.size, n);\n}\nfunction Qo(e, t) {\n return t = le(t, 3432918353), t = le(t << 15 | t >>> -15, 461845907), t = le(t << 13 | t >>> -13, 5), t = (t + 3864292196 | 0) ^ e, t = le(t ^ t >>> 16, 2246822507), t = le(t ^ t >>> 13, 3266489909), t = Xe(t ^ t >>> 16), t;\n}\nfunction In(e, t) {\n return e ^ t + 2654435769 + (e << 6) + (e >> 2) | 0;\n}\nfunction xt(e, t) {\n var r = function(n) {\n e.prototype[n] = t[n];\n };\n return Object.keys(t).forEach(r), Object.getOwnPropertySymbols && Object.getOwnPropertySymbols(t).forEach(r), e;\n}\nG.Iterator = M;\nxt(G, {\n // ### Conversion to other types\n toArray: function() {\n it(this.size);\n var t = new Array(this.size || 0), r = P(this), n = 0;\n return this.__iterate(function(i, o) {\n t[n++] = r ? [o, i] : i;\n }), t;\n },\n toIndexedSeq: function() {\n return new Yn(this);\n },\n toJS: function() {\n return Ve(this);\n },\n toKeyedSeq: function() {\n return new Qe(this, !0);\n },\n toMap: function() {\n return Ct(this.toKeyedSeq());\n },\n toObject: Ri,\n toOrderedMap: function() {\n return It(this.toKeyedSeq());\n },\n toOrderedSet: function() {\n return Re(P(this) ? this.valueSeq() : this);\n },\n toSet: function() {\n return tr(P(this) ? this.valueSeq() : this);\n },\n toSetSeq: function() {\n return new Jn(this);\n },\n toSeq: function() {\n return lt(this) ? this.toIndexedSeq() : P(this) ? this.toKeyedSeq() : this.toSetSeq();\n },\n toStack: function() {\n return Yr(P(this) ? this.valueSeq() : this);\n },\n toList: function() {\n return Qt(P(this) ? this.valueSeq() : this);\n },\n // ### Common JavaScript methods and properties\n toString: function() {\n return \"[Collection]\";\n },\n __toString: function(t, r) {\n return this.size === 0 ? t + r : t + \" \" + this.toSeq().map(this.__toStringMapper).join(\", \") + \" \" + r;\n },\n // ### ES6 Collection methods (ES6 Array and Map)\n concat: function() {\n for (var t = [], r = arguments.length; r--; ) t[r] = arguments[r];\n return T(this, Ro(this, t));\n },\n includes: function(t) {\n return this.some(function(r) {\n return st(r, t);\n });\n },\n entries: function() {\n return this.__iterator(ct);\n },\n every: function(t, r) {\n it(this.size);\n var n = !0;\n return this.__iterate(function(i, o, s) {\n if (!t.call(r, i, o, s))\n return n = !1, !1;\n }), n;\n },\n filter: function(t, r) {\n return T(this, Qn(this, t, r, !0));\n },\n partition: function(t, r) {\n return bo(this, t, r);\n },\n find: function(t, r, n) {\n var i = this.findEntry(t, r);\n return i ? i[1] : n;\n },\n forEach: function(t, r) {\n return it(this.size), this.__iterate(r ? t.bind(r) : t);\n },\n join: function(t) {\n it(this.size), t = t !== void 0 ? \"\" + t : \",\";\n var r = \"\", n = !0;\n return this.__iterate(function(i) {\n n ? n = !1 : r += t, r += i != null ? i.toString() : \"\";\n }), r;\n },\n keys: function() {\n return this.__iterator(ie);\n },\n map: function(t, r) {\n return T(this, Xn(this, t, r));\n },\n reduce: function(t, r, n) {\n return bn(\n this,\n t,\n r,\n n,\n arguments.length < 2,\n !1\n );\n },\n reduceRight: function(t, r, n) {\n return bn(\n this,\n t,\n r,\n n,\n arguments.length < 2,\n !0\n );\n },\n reverse: function() {\n return T(this, $r(this, !0));\n },\n slice: function(t, r) {\n return T(this, zr(this, t, r, !0));\n },\n some: function(t, r) {\n it(this.size);\n var n = !1;\n return this.__iterate(function(i, o, s) {\n if (t.call(r, i, o, s))\n return n = !0, !1;\n }), n;\n },\n sort: function(t) {\n return T(this, Gt(this, t));\n },\n values: function() {\n return this.__iterator(ut);\n },\n // ### More sequential methods\n butLast: function() {\n return this.slice(0, -1);\n },\n isEmpty: function() {\n return this.size !== void 0 ? this.size === 0 : !this.some(function() {\n return !0;\n });\n },\n count: function(t, r) {\n return Yt(\n t ? this.toSeq().filter(t, r) : this\n );\n },\n countBy: function(t, r) {\n return So(this, t, r);\n },\n equals: function(t) {\n return Si(this, t);\n },\n entrySeq: function() {\n var t = this;\n if (t._cache)\n return new Jt(t._cache);\n var r = t.toSeq().map(Yo).toIndexedSeq();\n return r.fromEntrySeq = function() {\n return t.toSeq();\n }, r;\n },\n filterNot: function(t, r) {\n return this.filter(fr(t), r);\n },\n findEntry: function(t, r, n) {\n var i = n;\n return this.__iterate(function(o, s, a) {\n if (t.call(r, o, s, a))\n return i = [s, o], !1;\n }), i;\n },\n findKey: function(t, r) {\n var n = this.findEntry(t, r);\n return n && n[0];\n },\n findLast: function(t, r, n) {\n return this.toKeyedSeq().reverse().find(t, r, n);\n },\n findLastEntry: function(t, r, n) {\n return this.toKeyedSeq().reverse().findEntry(t, r, n);\n },\n findLastKey: function(t, r) {\n return this.toKeyedSeq().reverse().findKey(t, r);\n },\n first: function(t) {\n return this.find(jn, null, t);\n },\n flatMap: function(t, r) {\n return T(this, Io(this, t, r));\n },\n flatten: function(t) {\n return T(this, ei(this, t, !0));\n },\n fromEntrySeq: function() {\n return new Gn(this);\n },\n get: function(t, r) {\n return this.find(function(n, i) {\n return st(i, t);\n }, void 0, r);\n },\n getIn: Ei,\n groupBy: function(t, r) {\n return wo(this, t, r);\n },\n has: function(t) {\n return this.get(t, k) !== k;\n },\n hasIn: Zo,\n isSubset: function(t) {\n return t = typeof t.includes == \"function\" ? t : G(t), this.every(function(r) {\n return t.includes(r);\n });\n },\n isSuperset: function(t) {\n return t = typeof t.isSubset == \"function\" ? t : G(t), t.isSubset(this);\n },\n keyOf: function(t) {\n return this.findKey(function(r) {\n return st(r, t);\n });\n },\n keySeq: function() {\n return this.toSeq().map(Vo).toIndexedSeq();\n },\n last: function(t) {\n return this.toSeq().reverse().first(t);\n },\n lastKeyOf: function(t) {\n return this.toKeyedSeq().reverse().keyOf(t);\n },\n max: function(t) {\n return Ne(this, t);\n },\n maxBy: function(t, r) {\n return Ne(this, r, t);\n },\n min: function(t) {\n return Ne(\n this,\n t ? On(t) : En\n );\n },\n minBy: function(t, r) {\n return Ne(\n this,\n r ? On(r) : En,\n t\n );\n },\n rest: function() {\n return this.slice(1);\n },\n skip: function(t) {\n return t === 0 ? this : this.slice(Math.max(0, t));\n },\n skipLast: function(t) {\n return t === 0 ? this : this.slice(0, -Math.max(0, t));\n },\n skipWhile: function(t, r) {\n return T(this, ti(this, t, r, !0));\n },\n skipUntil: function(t, r) {\n return this.skipWhile(fr(t), r);\n },\n sortBy: function(t, r) {\n return T(this, Gt(this, r, t));\n },\n take: function(t) {\n return this.slice(0, Math.max(0, t));\n },\n takeLast: function(t) {\n return this.slice(-Math.max(0, t));\n },\n takeWhile: function(t, r) {\n return T(this, Oo(this, t, r));\n },\n takeUntil: function(t, r) {\n return this.takeWhile(fr(t), r);\n },\n update: function(t) {\n return t(this);\n },\n valueSeq: function() {\n return this.toIndexedSeq();\n },\n // ### Hashable Object\n hashCode: function() {\n return this.__hash || (this.__hash = Xo(this));\n }\n // ### Internal\n // abstract __iterate(fn, reverse)\n // abstract __iterator(type, reverse)\n});\nvar Z = G.prototype;\nZ[Nn] = !0;\nZ[Ye] = Z.values;\nZ.toJSON = Z.toArray;\nZ.__toStringMapper = be;\nZ.inspect = Z.toSource = function() {\n return this.toString();\n};\nZ.chain = Z.flatMap;\nZ.contains = Z.includes;\nxt(pt, {\n // ### More sequential methods\n flip: function() {\n return T(this, Zn(this));\n },\n mapEntries: function(t, r) {\n var n = this, i = 0;\n return T(\n this,\n this.toSeq().map(function(o, s) {\n return t.call(r, [s, o], i++, n);\n }).fromEntrySeq()\n );\n },\n mapKeys: function(t, r) {\n var n = this;\n return T(\n this,\n this.toSeq().flip().map(function(i, o) {\n return t.call(r, i, o, n);\n }).flip()\n );\n }\n});\nvar Te = pt.prototype;\nTe[Ke] = !0;\nTe[Ye] = Z.entries;\nTe.toJSON = Ri;\nTe.__toStringMapper = function(e, t) {\n return be(t) + \": \" + be(e);\n};\nxt(jt, {\n // ### Conversion to other types\n toKeyedSeq: function() {\n return new Qe(this, !1);\n },\n // ### ES6 Collection methods (ES6 Array and Map)\n filter: function(t, r) {\n return T(this, Qn(this, t, r, !1));\n },\n findIndex: function(t, r) {\n var n = this.findEntry(t, r);\n return n ? n[0] : -1;\n },\n indexOf: function(t) {\n var r = this.keyOf(t);\n return r === void 0 ? -1 : r;\n },\n lastIndexOf: function(t) {\n var r = this.lastKeyOf(t);\n return r === void 0 ? -1 : r;\n },\n reverse: function() {\n return T(this, $r(this, !1));\n },\n slice: function(t, r) {\n return T(this, zr(this, t, r, !1));\n },\n splice: function(t, r) {\n var n = arguments.length;\n if (r = Math.max(r || 0, 0), n === 0 || n === 2 && !r)\n return this;\n t = Ae(t, t < 0 ? this.count() : this.size);\n var i = this.slice(0, t);\n return T(\n this,\n n === 1 ? i : i.concat(vt(arguments, 2), this.slice(t + r))\n );\n },\n // ### More collection methods\n findLastIndex: function(t, r) {\n var n = this.findLastEntry(t, r);\n return n ? n[0] : -1;\n },\n first: function(t) {\n return this.get(0, t);\n },\n flatten: function(t) {\n return T(this, ei(this, t, !1));\n },\n get: function(t, r) {\n return t = Tt(this, t), t < 0 || this.size === 1 / 0 || this.size !== void 0 && t > this.size ? r : this.find(function(n, i) {\n return i === t;\n }, void 0, r);\n },\n has: function(t) {\n return t = Tt(this, t), t >= 0 && (this.size !== void 0 ? this.size === 1 / 0 || t < this.size : this.indexOf(t) !== -1);\n },\n interpose: function(t) {\n return T(this, ko(this, t));\n },\n interleave: function() {\n var t = [this].concat(vt(arguments)), r = Pe(this.toSeq(), dt.of, t), n = r.flatten(!0);\n return r.size && (n.size = r.size * t.length), T(this, n);\n },\n keySeq: function() {\n return Jo(0, this.size);\n },\n last: function(t) {\n return this.get(-1, t);\n },\n skipWhile: function(t, r) {\n return T(this, ti(this, t, r, !1));\n },\n zip: function() {\n var t = [this].concat(vt(arguments));\n return T(this, Pe(this, kn, t));\n },\n zipAll: function() {\n var t = [this].concat(vt(arguments));\n return T(this, Pe(this, kn, t, !0));\n },\n zipWith: function(t) {\n var r = vt(arguments);\n return r[0] = this, T(this, Pe(this, t, r));\n }\n});\nvar ue = jt.prototype;\nue[We] = !0;\nue[Lt] = !0;\nxt(ne, {\n // ### ES6 Collection methods (ES6 Array and Map)\n get: function(t, r) {\n return this.has(t) ? t : r;\n },\n includes: function(t) {\n return this.has(t);\n },\n // ### More sequential methods\n keySeq: function() {\n return this.valueSeq();\n }\n});\nvar ee = ne.prototype;\nee.has = Z.includes;\nee.contains = ee.includes;\nee.keys = ee.values;\nxt(qt, Te);\nxt(dt, ue);\nxt(se, ee);\nfunction kn() {\n return vt(arguments);\n}\nfunction Ii(e) {\n return Jr(e) && mt(e);\n}\nvar Re = /* @__PURE__ */ (function(e) {\n function t(r) {\n return r == null ? wr() : Ii(r) ? r : wr().withMutations(function(n) {\n var i = ne(r);\n it(i.size), i.forEach(function(o) {\n return n.add(o);\n });\n });\n }\n return e && (t.__proto__ = e), t.prototype = Object.create(e && e.prototype), t.prototype.constructor = t, t.of = function() {\n return this(arguments);\n }, t.fromKeys = function(n) {\n return this(pt(n).keySeq());\n }, t.prototype.toString = function() {\n return this.__toString(\"OrderedSet {\", \"}\");\n }, t;\n})(tr);\nRe.isOrderedSet = Ii;\nvar Ut = Re.prototype;\nUt[Lt] = !0;\nUt.zip = ue.zip;\nUt.zipWith = ue.zipWith;\nUt.zipAll = ue.zipAll;\nUt.__empty = wr;\nUt.__make = ki;\nfunction ki(e, t) {\n var r = Object.create(Ut);\n return r.size = e ? e.size : 0, r._map = e, r.__ownerID = t, r;\n}\nvar An;\nfunction wr() {\n return An || (An = ki(pe()));\n}\nfunction ts(e) {\n if (Bt(e))\n throw new Error(\n \"Can not call `Record` with an immutable Record as default values. Use a plain javascript object instead.\"\n );\n if (St(e))\n throw new Error(\n \"Can not call `Record` with an immutable Collection as default values. Use a plain javascript object instead.\"\n );\n if (e === null || typeof e != \"object\")\n throw new Error(\n \"Can not call `Record` with a non-object as default values. Use a plain javascript object instead.\"\n );\n}\nvar H = function(t, r) {\n var n;\n ts(t);\n var i = function(a) {\n var u = this;\n if (a instanceof i)\n return a;\n if (!(this instanceof i))\n return new i(a);\n if (!n) {\n n = !0;\n var c = Object.keys(t), f = o._indices = {};\n o._name = r, o._keys = c, o._defaultValues = t;\n for (var h = 0; h < c.length; h++) {\n var l = c[h];\n f[l] = h, o[l] ? typeof console == \"object\" && console.warn && console.warn(\n \"Cannot define \" + Zr(this) + ' with property \"' + l + '\" since that property name is part of the Record API.'\n ) : es(o, l);\n }\n }\n return this.__ownerID = void 0, this._values = Qt().withMutations(function(d) {\n d.setSize(u._keys.length), pt(a).forEach(function(p, _) {\n d.set(u._indices[_], p === u._defaultValues[_] ? void 0 : p);\n });\n }), this;\n }, o = i.prototype = Object.create(q);\n return o.constructor = i, r && (i.displayName = r), i;\n};\nH.prototype.toString = function() {\n for (var t = Zr(this) + \" { \", r = this._keys, n, i = 0, o = r.length; i !== o; i++)\n n = r[i], t += (i ? \", \" : \"\") + n + \": \" + be(this.get(n));\n return t + \" }\";\n};\nH.prototype.equals = function(t) {\n return this === t || Bt(t) && re(this).equals(re(t));\n};\nH.prototype.hashCode = function() {\n return re(this).hashCode();\n};\nH.prototype.has = function(t) {\n return this._indices.hasOwnProperty(t);\n};\nH.prototype.get = function(t, r) {\n if (!this.has(t))\n return r;\n var n = this._indices[t], i = this._values.get(n);\n return i === void 0 ? this._defaultValues[t] : i;\n};\nH.prototype.set = function(t, r) {\n if (this.has(t)) {\n var n = this._values.set(\n this._indices[t],\n r === this._defaultValues[t] ? void 0 : r\n );\n if (n !== this._values && !this.__ownerID)\n return Gr(this, n);\n }\n return this;\n};\nH.prototype.remove = function(t) {\n return this.set(t);\n};\nH.prototype.clear = function() {\n var t = this._values.clear().setSize(this._keys.length);\n return this.__ownerID ? this : Gr(this, t);\n};\nH.prototype.wasAltered = function() {\n return this._values.wasAltered();\n};\nH.prototype.toSeq = function() {\n return re(this);\n};\nH.prototype.toJS = function() {\n return Ve(this);\n};\nH.prototype.entries = function() {\n return this.__iterator(ct);\n};\nH.prototype.__iterator = function(t, r) {\n return re(this).__iterator(t, r);\n};\nH.prototype.__iterate = function(t, r) {\n return re(this).__iterate(t, r);\n};\nH.prototype.__ensureOwner = function(t) {\n if (t === this.__ownerID)\n return this;\n var r = this._values.__ensureOwner(t);\n return t ? Gr(this, r, t) : (this.__ownerID = t, this._values = r, this);\n};\nH.isRecord = Bt;\nH.getDescriptiveName = Zr;\nvar q = H.prototype;\nq[Un] = !0;\nq[ke] = q.remove;\nq.deleteIn = q.removeIn = Hr;\nq.getIn = Ei;\nq.hasIn = Z.hasIn;\nq.merge = ii;\nq.mergeWith = oi;\nq.mergeIn = Nr;\nq.mergeDeep = ai;\nq.mergeDeepWith = ui;\nq.mergeDeepIn = qr;\nq.setIn = Pr;\nq.update = Fr;\nq.updateIn = jr;\nq.withMutations = ze;\nq.asMutable = $e;\nq.asImmutable = Me;\nq[Ye] = q.entries;\nq.toJSON = q.toObject = Z.toObject;\nq.inspect = q.toSource = function() {\n return this.toString();\n};\nfunction Gr(e, t, r) {\n var n = Object.create(Object.getPrototypeOf(e));\n return n._values = t, n.__ownerID = r, n;\n}\nfunction Zr(e) {\n return e.constructor.displayName || e.constructor.name || \"Record\";\n}\nfunction re(e) {\n return Ar(e._keys.map(function(t) {\n return [t, e.get(t)];\n }));\n}\nfunction es(e, t) {\n try {\n Object.defineProperty(e, t, {\n get: function() {\n return this.get(t);\n },\n set: function(r) {\n ve(this.__ownerID, \"Cannot set on an immutable record.\"), this.set(t, r);\n }\n });\n } catch {\n }\n}\nclass Ai {\n /**\n * The doctype name\n * @public\n * @readonly\n */\n doctype;\n /**\n * Alias for doctype (for DoctypeLike interface compatibility)\n * @public\n * @readonly\n */\n get name() {\n return this.doctype;\n }\n /**\n * The doctype schema\n * @public\n * @readonly\n */\n schema;\n /**\n * The doctype workflow\n * @public\n * @readonly\n */\n workflow;\n /**\n * The doctype actions and field triggers\n * @public\n * @readonly\n */\n actions;\n /**\n * The doctype component\n * @public\n * @readonly\n */\n component;\n /**\n * Relationship links to other doctypes\n * @public\n * @readonly\n */\n links;\n /**\n * Creates a new Doctype instance\n * @param doctype - The doctype name\n * @param schema - The doctype schema definition\n * @param workflow - The doctype workflow configuration (XState machine)\n * @param actions - The doctype actions and field triggers\n * @param component - Optional Vue component for rendering the doctype\n * @param links - Optional relationship links to other doctypes\n */\n constructor(t, r, n, i, o, s) {\n this.doctype = t, this.schema = r, this.workflow = n, this.actions = i, this.component = o, this.links = s;\n }\n /**\n * Creates a Doctype instance from a plain configuration object.\n * Handles conversion of arrays to Immutable.js collections internally.\n *\n * This is the recommended way to create a Doctype from API responses\n * or configuration files, as it encapsulates the Immutable.js construction\n * that the framework uses internally.\n *\n * @param config - Plain object with doctype configuration (typically from API response)\n * @returns A new Doctype instance with Immutable.js collections\n *\n * @example\n * ```ts\n * // From an API response\n * const response = await client.getMeta({ doctype: 'plan' })\n * const doctype = Doctype.fromObject(response)\n * registry.addDoctype(doctype)\n * ```\n *\n * @example\n * ```ts\n * // From a configuration object\n * const planDoctype = Doctype.fromObject({\n * name: 'Plan',\n * fields: [\n * { fieldname: 'title', label: 'Title', fieldtype: 'Data' },\n * { fieldname: 'status', label: 'Status', fieldtype: 'Data' },\n * ],\n * workflow: {\n * id: 'plan',\n * initial: 'draft',\n * states: { draft: {}, submitted: {} }\n * }\n * })\n * ```\n *\n * @public\n */\n static fromObject(t) {\n const r = t.fields ? Qt(t.fields) : Qt(), n = t.actions ? Ct(t.actions) : Ct();\n return new Ai(t.name, r, t.workflow, n, void 0, t.links);\n }\n /**\n * Returns the raw authoring schema as a plain array.\n * For the resolved schema suitable for AForm, use `registry.resolveSchema(doctype)`.\n *\n * @returns Array of raw DoctypeField authoring definitions\n *\n * @example\n * ```ts\n * const fields = doctype.getSchemaArray()\n * // Pass to resolveSchema for AForm-ready output:\n * const resolved = registry.resolveSchema(doctype)\n * ```\n *\n * @public\n */\n getSchemaArray() {\n return this.schema ? this.schema.toArray() : [];\n }\n /**\n * Returns the actions as a plain object for use with components that expect\n * plain JavaScript objects.\n *\n * @returns Object mapping action names to field trigger arrays\n *\n * @public\n */\n getActionsObject() {\n return this.actions ? this.actions.toObject() : {};\n }\n /**\n * Returns the transitions available from a given workflow state, derived from the\n * doctype's workflow configuration. Supports both XState format and WorkflowMeta format.\n *\n * @param currentState - The state name to read transitions from\n * @returns Array of transition descriptors with `name` and `targetState`\n *\n * @example\n * ```ts\n * const transitions = doctype.getAvailableTransitions('draft')\n * // [{ name: 'SUBMIT', targetState: 'submitted' }]\n * ```\n *\n * @public\n */\n getAvailableTransitions(t) {\n const r = this.workflow;\n if (!r) return [];\n if (Array.isArray(r.states)) {\n if (!r.states.includes(t)) return [];\n const s = r.actions;\n return s ? Object.entries(s).filter(([, a]) => {\n const u = a.allowedStates;\n return !u || u.length === 0 ? !0 : u.includes(t);\n }).map(([a]) => ({\n name: a,\n // WorkflowMeta doesn't define target states - transitions are handled server-side\n targetState: t\n })) : [];\n }\n const n = r.states;\n if (!n) return [];\n const i = n[t];\n return i?.on ? Object.entries(i.on).map(([o, s]) => ({\n name: o,\n targetState: typeof s == \"string\" ? s : \"unknown\"\n })) : [];\n }\n /**\n * Returns metadata for a specific action, if available.\n * Only works with WorkflowMeta format; returns undefined for XState format.\n *\n * @param actionName - The action name to get metadata for\n * @returns Action metadata or undefined\n *\n * @example\n * ```ts\n * const actionMeta = doctype.getActionMeta('submit')\n * // { label: 'Submit', handler: 'plan:submit', allowedStates: ['draft'] }\n * ```\n *\n * @public\n */\n getActionMeta(t) {\n const r = this.workflow;\n return !r || !Array.isArray(r.states) ? void 0 : r.actions?.[t];\n }\n /**\n * Converts the registered doctype string to a slug (kebab-case). The following conversions are made:\n * - It replaces camelCase and PascalCase with kebab-case strings\n * - It replaces spaces and underscores with hyphens\n * - It converts the string to lowercase\n *\n * @returns The slugified doctype string\n *\n * @example\n * ```ts\n * const doctype = new Doctype('TaskItem', schema, workflow, actions)\n * console.log(doctype.slug) // 'task-item'\n * ```\n *\n * @public\n */\n get slug() {\n return this.doctype.replace(/([a-z])([A-Z])/g, \"$1-$2\").replace(/[\\s_]+/g, \"-\").toLowerCase();\n }\n}\nclass me {\n /**\n * The root Registry instance\n */\n static _root;\n /**\n * The name of the Registry instance\n *\n * @defaultValue 'Registry'\n */\n name = \"Registry\";\n /**\n * The registry property contains a collection of doctypes\n *\n * @defaultValue `{}`\n * @see {@link Doctype}\n */\n registry = {};\n /**\n * Reverse index: backlink fieldname → list of \\{ doctype slug, link fieldname \\}.\n * Multiple doctypes can declare a link with the same backlink name, so each key\n * maps to an array. Built at schema load time for O(1) ancestor lookups.\n *\n * @defaultValue `new Map()`\n * @internal\n */\n _ancestorIndex = /* @__PURE__ */ new Map();\n /**\n * Whether the ancestor index needs rebuilding\n *\n * @defaultValue `true`\n * @internal\n */\n _ancestorIndexDirty = !0;\n /**\n * The Vue router instance\n * @see {@link https://router.vuejs.org/}\n */\n router;\n /**\n * Creates a new Registry instance (singleton pattern)\n * @param router - Optional Vue router instance for route management\n * @param getMeta - Optional function to fetch doctype metadata from an API\n */\n constructor(t, r) {\n return me._root ? me._root : (me._root = this, this.router = t, this.getMeta = r, this);\n }\n /**\n * The getMeta function fetches doctype metadata from an API based on route context\n * @see {@link Doctype}\n */\n getMeta;\n /**\n * Get doctype metadata\n * @param doctype - The doctype to fetch metadata for\n * @returns The doctype metadata\n * @see {@link Doctype}\n */\n addDoctype(t) {\n t.slug in this.registry || (this.registry[t.slug] = t, this._ancestorIndexDirty = !0);\n const r = Et();\n r.registerDoctypeActions(t.doctype, t.actions), t.slug !== t.doctype && r.registerDoctypeActions(t.slug, t.actions), t.component && this.router && !this.router.hasRoute(t.doctype) && this.router.addRoute({\n path: `/${t.slug}`,\n name: t.slug,\n component: t.component\n });\n }\n /**\n * Resolve a Doctype's authoring schema into a rendered schema array suitable for AForm.\n *\n * Transforms `DoctypeField[]` (authoring space) → `ResolvedField[]` (rendering space):\n * - `kind: 'field'` (not Link) → `ResolvedScalar`\n * - `kind: 'field'` (Link, no declaration) → `ResolvedScalar` with `component: 'AFormLink'`\n * - `kind: 'field'` (Link, `noneOrMany`/`atLeastOne`) → `ResolvedTable`\n * - `kind: 'field'` (Link, `one`/`atMostOne`) → `ResolvedLink`\n * - `kind: 'fieldset'` → `ResolvedFieldset` (children resolved recursively)\n * - `kind: 'table'` → `ResolvedTable` (columns as `ColumnSchema[]`)\n *\n * Circular references are protected against via the `visited` set.\n *\n * @param doctype - The doctype to resolve\n * @param visited - Internal — set of already-visited doctype slugs for cycle detection\n * @returns A resolved schema array ready for AForm\n *\n * @public\n */\n resolveSchema(t, r) {\n const n = r ?? /* @__PURE__ */ new Set(), i = t.slug;\n if (n.has(i))\n return (t.schema ? t.schema.toArray() : []).filter((c) => c.kind === \"field\").map(({ cardinality: c, ...f }) => f);\n n.add(i);\n const o = t.schema ? t.schema.toArray() : [], s = /* @__PURE__ */ new Map();\n if (t.links)\n for (const [u, c] of Object.entries(t.links))\n s.set(c.fieldname ?? u, c);\n const a = this.resolveFields(o, s, n);\n return n.delete(i), a;\n }\n /**\n * Recursively resolve a `DoctypeField[]` using the provided link context.\n * Called by `resolveSchema` and recursively for fieldset children.\n * @internal\n */\n resolveFields(t, r, n) {\n const i = [];\n for (const o of t)\n if (o.kind === \"field\" && o.fieldtype === \"Link\") {\n const s = r.get(o.fieldname);\n if (!s) {\n const p = typeof o.options == \"string\" ? o.options : void 0;\n p === void 0 && console.warn(\n `[Stonecrop] Link field \"${o.fieldname}\" has no \\`options\\` or corresponding \\`links\\` declaration. AFormLink will be created without a \\`doctype\\` prop, so navigation will not work. Add \\`\"options\": \"<doctype-slug>\"\\` to the field definition.`\n );\n const { cardinality: _, ...m } = o;\n i.push({\n ...m,\n component: m.component || \"AFormLink\",\n ...p !== void 0 ? { doctype: p } : {}\n });\n continue;\n }\n const a = this.registry[s.target];\n if (!a) {\n const { cardinality: p, ..._ } = o;\n i.push({ ..._ });\n continue;\n }\n const u = this.resolveSchema(a, new Set(n)), { fieldtype: c, options: f, cardinality: h, kind: l, ...d } = o;\n if (s.cardinality === \"noneOrMany\" || s.cardinality === \"atLeastOne\")\n i.push(this.buildTableConfig(o, u, s.component));\n else {\n const p = {\n ...d,\n kind: \"link\",\n label: d.label || o.fieldname,\n component: s.component || d.component || \"AForm\",\n schema: u\n };\n i.push(p);\n }\n } else if (o.kind === \"fieldset\") {\n const s = this.resolveFields(o.schema, r, n), { schema: a, ...u } = o, c = {\n ...u,\n schema: s\n };\n i.push(c);\n } else if (o.kind === \"table\") {\n const { columns: s, config: a, ...u } = o, c = {\n ...u,\n kind: \"table\",\n component: u.component || \"ATable\",\n schema: s,\n config: a ?? { view: \"list\" }\n };\n i.push(c);\n } else {\n const { cardinality: s, ...a } = o;\n i.push({ ...a });\n }\n return i;\n }\n /**\n * Build a `ResolvedTable` from a resolved Link field with many cardinality.\n * Extracts scalar column definitions from the child schema.\n * @internal\n */\n buildTableConfig(t, r, n) {\n const i = r.filter((f) => f.kind === \"field\").map(({ kind: f, ...h }) => h), o = t.config ?? { view: \"list\" }, { fieldtype: s, options: a, cardinality: u, ...c } = t;\n return {\n ...c,\n kind: \"table\",\n label: c.label || t.fieldname,\n component: n || c.component || \"ATable\",\n schema: i,\n config: o\n };\n }\n /**\n * Initialize a new record with default values based on a resolved schema.\n * Narrows by `kind` discriminator for precise branch selection.\n *\n * - `kind: 'table'` or `kind: 'link'` → `[]` or `{}`\n * - `kind: 'fieldset'` → recursively initializes children as `{}`\n * - `kind: 'field'` → derives default from `fieldtype`; falls back to `null`\n *\n * @param schema - The resolved schema array to derive defaults from\n * @returns A plain object with default values for each field\n * @public\n */\n initializeRecord(t) {\n const r = {};\n for (const n of t)\n if (n.kind === \"table\")\n r[n.fieldname] = [];\n else if (n.kind === \"link\")\n r[n.fieldname] = this.initializeRecord(n.schema);\n else if (n.kind === \"fieldset\")\n r[n.fieldname] = this.initializeRecord(n.schema);\n else {\n const i = n.default;\n if (i !== void 0)\n r[n.fieldname] = i;\n else\n switch (n.fieldtype) {\n case \"Data\":\n case \"Text\":\n case \"Code\":\n r[n.fieldname] = \"\";\n break;\n case \"Check\":\n r[n.fieldname] = !1;\n break;\n case \"Int\":\n case \"Float\":\n case \"Decimal\":\n case \"Currency\":\n case \"Quantity\":\n r[n.fieldname] = 0;\n break;\n case \"JSON\":\n r[n.fieldname] = {};\n break;\n default:\n r[n.fieldname] = null;\n }\n }\n return r;\n }\n /**\n * Get a registered doctype by slug\n * @param slug - The doctype slug to look up\n * @returns The Doctype instance if found, or undefined\n * @public\n */\n getDoctype(t) {\n return this.registry[t];\n }\n /**\n * Get all links declared on a doctype.\n *\n * @param doctypeSlug - The doctype slug to get links for\n * @returns Array of link declarations with fieldname, or empty array if none\n *\n * @example\n * ```ts\n * const links = registry.getDescendantLinks('recipe')\n * // [{ fieldname: 'tasks', target: 'recipe-task', cardinality: 'noneOrMany', backlink: 'recipe' }]\n * ```\n *\n * @public\n */\n getDescendantLinks(t) {\n const r = this.registry[t];\n return r?.links ? Object.entries(r.links).map(\n ([n, i]) => Object.assign({}, i, {\n fieldname: n\n })\n ) : [];\n }\n /**\n * Get links on other doctypes that target the given doctype.\n *\n * @param doctypeSlug - The doctype slug to find ancestor links for\n * @returns Array of link declarations with fieldname and declaring doctype slug, or empty array\n *\n * @example\n * ```ts\n * const ancestors = registry.getAncestorLinks('recipe-task')\n * // [{ fieldname: 'tasks', target: 'recipe-task', cardinality: 'noneOrMany', backlink: 'recipe', doctype: 'recipe' }]\n * ```\n *\n * @public\n */\n getAncestorLinks(t) {\n this._ensureAncestorIndex();\n const r = [];\n for (const [n, i] of this._ancestorIndex)\n for (const { slug: o, fieldname: s } of i) {\n const a = this.registry[o];\n if (!a?.links) continue;\n const u = a.links[s];\n u?.target === t && r.push({\n ...u,\n fieldname: s,\n doctype: o\n });\n }\n return r;\n }\n /**\n * Ensure the ancestor index is up to date\n * @internal\n */\n _ensureAncestorIndex() {\n if (this._ancestorIndexDirty) {\n this._ancestorIndexDirty = !1, this._ancestorIndex.clear();\n for (const [t, r] of Object.entries(this.registry))\n if (r.links) {\n for (const [n, i] of Object.entries(r.links))\n if (i.backlink) {\n const o = this._ancestorIndex.get(i.backlink);\n o ? o.push({ slug: t, fieldname: n }) : this._ancestorIndex.set(i.backlink, [{ slug: t, fieldname: n }]);\n }\n }\n }\n }\n // TODO: should we allow clearing the registry at all?\n // clear() {\n // \tthis.registry = {}\n // \tif (this.router) {\n // \t\tconst routes = this.router.getRoutes()\n // \t\tfor (const route of routes) {\n // \t\t\tif (route.name) {\n // \t\t\t\tthis.router.removeRoute(route.name)\n // \t\t\t}\n // \t\t}\n // \t}\n // }\n}\nasync function rs(e, t, r) {\n await br();\n try {\n await r(e, t);\n } catch {\n }\n}\nconst vs = {\n install: (e, t) => {\n const r = e.config.globalProperties.$router, n = t?.router, i = r || n;\n !r && n && e.use(n);\n const o = new me(i, t?.getMeta);\n e.provide(\"$registry\", o), e.config.globalProperties.$registry = o;\n const s = new Mt(o);\n t?.client && s.setClient(t.client), e.provide(\"$stonecrop\", s), e.config.globalProperties.$stonecrop = s;\n try {\n const a = e.config.globalProperties.$pinia;\n if (a) {\n const u = Ie(a);\n e.provide(\"$operationLogStore\", u), e.config.globalProperties.$operationLogStore = u;\n }\n } catch (a) {\n console.warn(\"Pinia not available - operation log features will be disabled:\", a);\n }\n if (t?.components)\n for (const [a, u] of Object.entries(t.components))\n e.component(a, u);\n t?.autoInitializeRouter && t.onRouterInitialized && rs(o, s, t.onRouterInitialized);\n }\n};\nvar x = /* @__PURE__ */ ((e) => (e.ERROR = \"error\", e.WARNING = \"warning\", e.INFO = \"info\", e))(x || {});\nclass ns {\n options;\n /**\n * Creates a new SchemaValidator instance\n * @param options - Validator configuration options\n */\n constructor(t = {}) {\n this.options = {\n registry: t.registry || null,\n validateLinkTargets: t.validateLinkTargets ?? !0,\n validateLinks: t.validateLinks ?? !0,\n validateActions: t.validateActions ?? !0,\n validateWorkflows: t.validateWorkflows ?? !0,\n validateRequiredProperties: t.validateRequiredProperties ?? !0\n };\n }\n /**\n * Validates a complete doctype schema\n * @param doctype - Doctype name\n * @param schema - Schema fields (List or Array)\n * @param workflow - Optional workflow configuration\n * @param actions - Optional actions map\n * @param links - Optional links object\n * @returns Validation result\n */\n validate(t, r, n, i, o) {\n const s = [], a = r ? Array.isArray(r) ? r : r.toArray() : [];\n if (this.options.validateRequiredProperties && s.push(...this.validateRequiredProperties(t, a)), this.options.validateLinkTargets && this.options.registry && s.push(...this.validateLinkFields(t, a, this.options.registry)), this.options.validateLinks && this.options.registry && o && s.push(...this.validateLinkDeclarations(t, o, a, this.options.registry)), this.options.validateWorkflows && n && s.push(...this.validateWorkflow(t, n)), this.options.validateActions && i) {\n const h = i instanceof Map ? i : i.toObject();\n s.push(...this.validateActionRegistration(t, h));\n }\n const u = s.filter((h) => h.severity === x.ERROR).length, c = s.filter((h) => h.severity === x.WARNING).length, f = s.filter((h) => h.severity === x.INFO).length;\n return {\n valid: u === 0,\n issues: s,\n errorCount: u,\n warningCount: c,\n infoCount: f\n };\n }\n /**\n * Validates that required schema properties are present\n * @internal\n */\n validateRequiredProperties(t, r) {\n const n = [];\n for (const i of r) {\n if (!i.fieldname) {\n n.push({\n severity: x.ERROR,\n rule: \"required-fieldname\",\n message: \"Field is missing required property: fieldname\",\n doctype: t,\n context: { field: i }\n });\n continue;\n }\n i.kind === \"field\" && !i.component && !i.fieldtype && n.push({\n severity: x.ERROR,\n rule: \"required-component-or-fieldtype\",\n message: `Field \"${i.fieldname}\" must have either component or fieldtype property`,\n doctype: t,\n fieldname: i.fieldname\n }), i.kind === \"fieldset\" && n.push(...this.validateRequiredProperties(t, i.schema));\n }\n return n;\n }\n /**\n * Validates Link field targets exist in registry\n * @internal\n */\n validateLinkFields(t, r, n) {\n const i = [];\n for (const o of r) {\n if (o.kind === \"field\" && o.fieldtype === \"Link\") {\n const s = o.options;\n if (!s) {\n i.push({\n severity: x.ERROR,\n rule: \"link-missing-options\",\n message: `Link field \"${o.fieldname}\" is missing options property (target doctype)`,\n doctype: t,\n fieldname: o.fieldname\n });\n continue;\n }\n const a = typeof s == \"string\" ? s : \"\";\n if (!a) {\n i.push({\n severity: x.ERROR,\n rule: \"link-invalid-options\",\n message: `Link field \"${o.fieldname}\" has invalid options format (expected string doctype name)`,\n doctype: t,\n fieldname: o.fieldname\n });\n continue;\n }\n n.registry[a] || n.registry[a.toLowerCase()] || i.push({\n severity: x.ERROR,\n rule: \"link-invalid-target\",\n message: `Link field \"${o.fieldname}\" references non-existent doctype: \"${a}\"`,\n doctype: t,\n fieldname: o.fieldname,\n context: { targetDoctype: a }\n });\n }\n o.kind === \"fieldset\" && i.push(...this.validateLinkFields(t, o.schema, n));\n }\n return i;\n }\n /**\n * Validates link declarations: target resolution, backlink consistency, Link field correspondence\n * @internal\n */\n validateLinkDeclarations(t, r, n, i) {\n const o = [], s = /* @__PURE__ */ new Map();\n for (const a of n)\n a.kind === \"field\" && a.fieldtype === \"Link\" && s.set(a.fieldname, a);\n for (const [a, u] of Object.entries(r)) {\n const c = i.registry[u.target];\n if (!c) {\n o.push({\n severity: x.ERROR,\n rule: \"link-invalid-target\",\n message: `Link \"${a}\" references non-existent doctype: \"${u.target}\"`,\n doctype: t,\n fieldname: a,\n context: { target: u.target }\n });\n continue;\n }\n if (u.target === t && o.push({\n severity: x.WARNING,\n rule: \"link-self-referential\",\n message: `Link \"${a}\" is self-referential (target: \"${u.target}\")`,\n doctype: t,\n fieldname: a,\n context: { target: u.target }\n }), u.backlink && c.links) {\n const f = c.links[u.backlink];\n f ? f.target !== t && o.push({\n severity: x.WARNING,\n rule: \"link-backlink-mismatch\",\n message: `Backlink \"${u.backlink}\" on \"${u.target}\" points to \"${f.target}\" instead of \"${t}\"`,\n doctype: t,\n fieldname: a,\n context: { backlink: u.backlink, target: u.target, actualTarget: f.target }\n }) : o.push({\n severity: x.ERROR,\n rule: \"link-backlink-missing\",\n message: `Backlink \"${u.backlink}\" not found on target doctype \"${u.target}\"`,\n doctype: t,\n fieldname: a,\n context: { backlink: u.backlink, target: u.target }\n });\n }\n if (u.fieldname) {\n const f = s.get(u.fieldname);\n if (f && f.kind === \"field\") {\n const h = typeof f.options == \"string\" ? f.options : void 0;\n h && h !== u.target && o.push({\n severity: x.ERROR,\n rule: \"link-field-target-mismatch\",\n message: `Link field \"${u.fieldname}\" targets \"${h}\" but link declaration targets \"${u.target}\"`,\n doctype: t,\n fieldname: u.fieldname,\n context: { linkFieldTarget: h, linkTarget: u.target }\n });\n }\n }\n }\n for (const [a, u] of s)\n Object.values(r).some((f) => f.fieldname === a) || o.push({\n severity: x.ERROR,\n rule: \"link-field-without-declaration\",\n message: `Link field \"${a}\" has no corresponding link declaration`,\n doctype: t,\n fieldname: a\n });\n return o;\n }\n /**\n * Validates workflow state machine configuration\n * @internal\n */\n validateWorkflow(t, r) {\n const n = [];\n if (!r.initial && !r.type && n.push({\n severity: x.WARNING,\n rule: \"workflow-missing-initial\",\n message: \"Workflow is missing initial state property\",\n doctype: t\n }), !r.states || Object.keys(r.states).length === 0)\n return n.push({\n severity: x.WARNING,\n rule: \"workflow-no-states\",\n message: \"Workflow has no states defined\",\n doctype: t\n }), n;\n r.initial && typeof r.initial == \"string\" && !r.states[r.initial] && n.push({\n severity: x.ERROR,\n rule: \"workflow-invalid-initial\",\n message: `Workflow initial state \"${r.initial}\" does not exist in states`,\n doctype: t,\n context: { initialState: r.initial }\n });\n const i = Object.keys(r.states), o = /* @__PURE__ */ new Set();\n r.initial && typeof r.initial == \"string\" && o.add(r.initial);\n for (const [s, a] of Object.entries(r.states)) {\n const u = a;\n if (u.on) {\n for (const [c, f] of Object.entries(u.on))\n if (typeof f == \"string\")\n o.add(f);\n else if (f && typeof f == \"object\") {\n const h = \"target\" in f ? f.target : void 0;\n typeof h == \"string\" ? o.add(h) : Array.isArray(h) && h.forEach((l) => {\n typeof l == \"string\" && o.add(l);\n });\n }\n }\n }\n for (const s of i)\n o.has(s) || n.push({\n severity: x.WARNING,\n rule: \"workflow-unreachable-state\",\n message: `Workflow state \"${s}\" may not be reachable`,\n doctype: t,\n context: { stateName: s }\n });\n return n;\n }\n /**\n * Validates that actions are registered in the FieldTriggerEngine\n * @internal\n */\n validateActionRegistration(t, r) {\n const n = [], i = Et();\n for (const [o, s] of Object.entries(r)) {\n if (!Array.isArray(s)) {\n n.push({\n severity: x.ERROR,\n rule: \"action-invalid-format\",\n message: `Action configuration for \"${o}\" must be an array`,\n doctype: t,\n context: { triggerName: o, actionNames: s }\n });\n continue;\n }\n for (const a of s) {\n const u = i;\n u.globalActions?.has(a) || u.globalTransitionActions?.has(a) || n.push({\n severity: x.WARNING,\n rule: \"action-not-registered\",\n message: `Action \"${a}\" referenced in \"${o}\" is not registered in FieldTriggerEngine`,\n doctype: t,\n context: { triggerName: o, actionName: a }\n });\n }\n }\n return n;\n }\n}\nfunction is(e, t) {\n return new ns({\n registry: e,\n ...t\n });\n}\nfunction ys(e, t, r, n, i) {\n return is(r).validate(e, t, n, i);\n}\nexport {\n Ai as Doctype,\n ge as FieldTriggerEngine,\n Vt as HST,\n me as Registry,\n ns as SchemaValidator,\n Mt as Stonecrop,\n x as ValidationSeverity,\n io as createHST,\n is as createValidator,\n vs as default,\n Et as getGlobalTriggerEngine,\n ls as getStonecrop,\n hs as markOperationIrreversible,\n as as registerGlobalAction,\n us as registerTransitionAction,\n cs as setFieldRollback,\n fs as triggerTransition,\n ps as useLazyLink,\n qn as useOperationLog,\n Ie as useOperationLogStore,\n ds as useStonecrop,\n _s as useUndoRedoShortcuts,\n ys as validateSchema,\n gs as withBatch\n};\n//# sourceMappingURL=stonecrop.js.map\n","import { defineComponent as te, useTemplateRef as pe, ref as C, computed as R, onMounted as Re, openBlock as g, createElementBlock as x, unref as B, normalizeClass as de, normalizeStyle as Se, createBlock as fe, resolveDynamicComponent as Ge, mergeProps as ot, toDisplayString as F, createElementVNode as b, withModifiers as ae, withDirectives as j, Fragment as X, renderList as ge, vShow as Ce, createCommentVNode as N, renderSlot as Me, createTextVNode as Mt, watch as le, onBeforeUnmount as dn, nextTick as at, toValue as A, shallowRef as he, getCurrentScope as It, onScopeDispose as Tt, reactive as Dt, vModelText as we, vModelCheckbox as _t, vModelSelect as Yt, getCurrentInstance as $t, watchEffect as St, useCssVars as vn, onUnmounted as fn, useModel as Te, inject as yt, createVNode as _e, withCtx as wt, mergeModels as xe, isRef as mn, toRefs as pn, customRef as Ct, toRef as Xt, readonly as Et, resolveComponent as hn, withKeys as ce, provide as gn } from \"vue\";\nimport { defineStore as yn } from \"pinia\";\nimport './assets/index.css';function bt(e) {\n return Function(`\"use strict\"; return (${e})`)();\n}\nfunction Kt(e, t) {\n return It() ? (Tt(e, t), !0) : !1;\n}\nconst wn = typeof window < \"u\" && typeof document < \"u\";\ntypeof WorkerGlobalScope < \"u\" && globalThis instanceof WorkerGlobalScope;\nconst bn = (e) => e != null, xn = Object.prototype.toString, kn = (e) => xn.call(e) === \"[object Object]\", Mn = () => {\n};\nfunction Qe(e) {\n return Array.isArray(e) ? e : [e];\n}\nfunction In(e, t, l) {\n return le(e, t, {\n ...l,\n immediate: !0\n });\n}\nconst qe = wn ? window : void 0;\nfunction We(e) {\n var t;\n const l = A(e);\n return (t = l?.$el) !== null && t !== void 0 ? t : l;\n}\nfunction Ye(...e) {\n const t = (n, a, o, s) => (n.addEventListener(a, o, s), () => n.removeEventListener(a, o, s)), l = R(() => {\n const n = Qe(A(e[0])).filter((a) => a != null);\n return n.every((a) => typeof a != \"string\") ? n : void 0;\n });\n return In(() => {\n var n, a;\n return [\n (n = (a = l.value) === null || a === void 0 ? void 0 : a.map((o) => We(o))) !== null && n !== void 0 ? n : [qe].filter((o) => o != null),\n Qe(A(l.value ? e[1] : e[0])),\n Qe(B(l.value ? e[2] : e[1])),\n A(l.value ? e[3] : e[2])\n ];\n }, ([n, a, o, s], u, r) => {\n if (!n?.length || !a?.length || !o?.length) return;\n const i = kn(s) ? { ...s } : s, d = n.flatMap((m) => a.flatMap((I) => o.map((w) => t(m, I, w, i))));\n r(() => {\n d.forEach((m) => m());\n });\n }, { flush: \"post\" });\n}\n// @__NO_SIDE_EFFECTS__\nfunction Tn() {\n const e = he(!1), t = $t();\n return t && Re(() => {\n e.value = !0;\n }, t), e;\n}\n// @__NO_SIDE_EFFECTS__\nfunction Dn(e) {\n const t = /* @__PURE__ */ Tn();\n return R(() => (t.value, !!e()));\n}\nfunction $n(e, t, l = {}) {\n const { window: n = qe, ...a } = l;\n let o;\n const s = /* @__PURE__ */ Dn(() => n && \"MutationObserver\" in n), u = () => {\n o && (o.disconnect(), o = void 0);\n }, r = le(R(() => {\n const m = Qe(A(e)).map(We).filter(bn);\n return new Set(m);\n }), (m) => {\n u(), s.value && m.size && (o = new MutationObserver(t), m.forEach((I) => o.observe(I, a)));\n }, {\n immediate: !0,\n flush: \"post\"\n }), i = () => o?.takeRecords(), d = () => {\n r(), u();\n };\n return Kt(d), {\n isSupported: s,\n stop: d,\n takeRecords: i\n };\n}\nfunction Sn(e, t, l = {}) {\n const { window: n = qe, document: a = n?.document, flush: o = \"sync\" } = l;\n if (!n || !a) return Mn;\n let s;\n const u = (d) => {\n s?.(), s = d;\n }, r = St(() => {\n const d = We(e);\n if (d) {\n const { stop: m } = $n(a, (I) => {\n I.map((w) => [...w.removedNodes]).flat().some((w) => w === d || w.contains(d)) && t(I);\n }, {\n window: n,\n childList: !0,\n subtree: !0\n });\n u(m);\n }\n }, { flush: o }), i = () => {\n r(), u();\n };\n return Kt(i), i;\n}\n// @__NO_SIDE_EFFECTS__\nfunction Cn(e = {}) {\n var t;\n const { window: l = qe, deep: n = !0, triggerOnRemoval: a = !1 } = e, o = (t = e.document) !== null && t !== void 0 ? t : l?.document, s = () => {\n let i = o?.activeElement;\n if (n)\n for (var d; i?.shadowRoot; ) i = i == null || (d = i.shadowRoot) === null || d === void 0 ? void 0 : d.activeElement;\n return i;\n }, u = he(), r = () => {\n u.value = s();\n };\n if (l) {\n const i = {\n capture: !0,\n passive: !0\n };\n Ye(l, \"blur\", (d) => {\n d.relatedTarget === null && r();\n }, i), Ye(l, \"focus\", r, i);\n }\n return a && Sn(u, r, { document: o }), r(), u;\n}\nconst En = \"focusin\", Rn = \"focusout\", An = \":focus-within\";\nfunction Ln(e, t = {}) {\n const { window: l = qe } = t, n = R(() => We(e)), a = he(!1), o = R(() => a.value);\n if (!l || !(/* @__PURE__ */ Cn(t)).value) return { focused: o };\n const s = { passive: !0 };\n return Ye(n, En, () => a.value = !0, s), Ye(n, Rn, () => {\n var u, r, i;\n return a.value = (u = (r = n.value) === null || r === void 0 || (i = r.matches) === null || i === void 0 ? void 0 : i.call(r, An)) !== null && u !== void 0 ? u : !1;\n }, s), { focused: o };\n}\nfunction Hn(e, { window: t = qe, scrollTarget: l } = {}) {\n const n = C(!1), a = () => {\n if (!t) return;\n const o = t.document, s = We(e);\n if (!s)\n n.value = !1;\n else {\n const u = s.getBoundingClientRect();\n n.value = u.top <= (t.innerHeight || o.documentElement.clientHeight) && u.left <= (t.innerWidth || o.documentElement.clientWidth) && u.bottom >= 0 && u.right >= 0;\n }\n };\n return le(\n () => We(e),\n () => a(),\n { immediate: !0, flush: \"post\" }\n ), t && Ye(l || t, \"scroll\", a, {\n capture: !1,\n passive: !0\n }), n;\n}\nconst Ae = (e) => {\n let t = Hn(e).value;\n return t = t && e.offsetHeight > 0, t;\n}, Le = (e) => e.tabIndex >= 0, Nt = (e) => {\n if (e.target instanceof HTMLElement)\n return Rt(e.target);\n}, Rt = (e) => {\n let t;\n if (e instanceof HTMLTableCellElement) {\n const l = e.parentElement?.previousElementSibling;\n if (l instanceof HTMLTableRowElement) {\n const n = Array.from(l.children)[e.cellIndex];\n n instanceof HTMLElement && (t = n);\n }\n } else if (e instanceof HTMLTableRowElement) {\n const l = e.previousElementSibling;\n l instanceof HTMLTableRowElement && (t = l);\n }\n return t && (!Le(t) || !Ae(t)) ? Rt(t) : t;\n}, Vn = (e) => {\n if (!(e.target instanceof HTMLElement)) return;\n const t = e.target;\n let l;\n if (t instanceof HTMLTableCellElement) {\n const n = t.parentElement?.parentElement;\n if (n) {\n const a = n.firstElementChild?.children[t.cellIndex];\n a instanceof HTMLElement && (l = a);\n }\n } else if (t instanceof HTMLTableRowElement) {\n const n = t.parentElement;\n if (n) {\n const a = n.firstElementChild;\n a instanceof HTMLTableRowElement && (l = a);\n }\n }\n return l && (!Le(l) || !Ae(l)) ? At(l) : l;\n}, Zt = (e) => {\n if (e.target instanceof HTMLElement)\n return At(e.target);\n}, At = (e) => {\n let t;\n if (e instanceof HTMLTableCellElement) {\n const l = e.parentElement?.nextElementSibling;\n if (l) {\n const n = Array.from(l.children)[e.cellIndex];\n n instanceof HTMLElement && (t = n);\n }\n } else if (e instanceof HTMLTableRowElement) {\n const l = e.nextElementSibling;\n l instanceof HTMLTableRowElement && (t = l);\n }\n return t && (!Le(t) || !Ae(t)) ? At(t) : t;\n}, Bn = (e) => {\n if (!(e.target instanceof HTMLElement)) return;\n const t = e.target;\n let l;\n if (t instanceof HTMLTableCellElement) {\n const n = t.parentElement?.parentElement;\n if (n) {\n const a = n.lastElementChild?.children[t.cellIndex];\n a instanceof HTMLElement && (l = a);\n }\n } else if (t instanceof HTMLTableRowElement) {\n const n = t.parentElement;\n if (n) {\n const a = n.lastElementChild;\n a instanceof HTMLTableRowElement && (l = a);\n }\n }\n return l && (!Le(l) || !Ae(l)) ? Rt(l) : l;\n}, Ot = (e) => {\n if (e.target instanceof HTMLElement)\n return Lt(e.target);\n}, Lt = (e) => {\n let t;\n const l = e.previousElementSibling;\n if (l instanceof HTMLElement)\n t = l;\n else {\n const n = e.parentElement?.previousElementSibling?.lastElementChild;\n n instanceof HTMLElement && (t = n);\n }\n return t && (!Le(t) || !Ae(t)) ? Lt(t) : t;\n}, Gt = (e) => {\n if (e.target instanceof HTMLElement)\n return Ht(e.target);\n}, Ht = (e) => {\n let t;\n const l = e.nextElementSibling;\n if (l instanceof HTMLElement)\n t = l;\n else {\n const n = e.parentElement?.nextElementSibling?.firstElementChild;\n n instanceof HTMLElement && (t = n);\n }\n return t && (!Le(t) || !Ae(t)) ? Ht(t) : t;\n}, Ut = (e) => {\n if (!(e.target instanceof HTMLElement)) return;\n const t = e.target.parentElement?.firstElementChild, l = t instanceof HTMLElement ? t : null;\n return l && (!Le(l) || !Ae(l)) ? Ht(l) : l;\n}, Wt = (e) => {\n if (!(e.target instanceof HTMLElement)) return;\n const t = e.target.parentElement?.lastElementChild, l = t instanceof HTMLElement ? t : null;\n return l && (!Le(l) || !Ae(l)) ? Lt(l) : l;\n}, Ke = [\"alt\", \"control\", \"shift\", \"meta\"], Fn = {\n ArrowUp: \"up\",\n ArrowDown: \"down\",\n ArrowLeft: \"left\",\n ArrowRight: \"right\"\n}, st = {\n \"keydown.up\": (e) => {\n const t = Nt(e);\n t && (e.preventDefault(), e.stopPropagation(), t.focus());\n },\n \"keydown.down\": (e) => {\n const t = Zt(e);\n t && (e.preventDefault(), e.stopPropagation(), t.focus());\n },\n \"keydown.left\": (e) => {\n const t = Ot(e);\n e.preventDefault(), e.stopPropagation(), t && t.focus();\n },\n \"keydown.right\": (e) => {\n const t = Gt(e);\n e.preventDefault(), e.stopPropagation(), t && t.focus();\n },\n \"keydown.control.up\": (e) => {\n const t = Vn(e);\n t && (e.preventDefault(), e.stopPropagation(), t.focus());\n },\n \"keydown.control.down\": (e) => {\n const t = Bn(e);\n t && (e.preventDefault(), e.stopPropagation(), t.focus());\n },\n \"keydown.control.left\": (e) => {\n const t = Ut(e);\n t && (e.preventDefault(), e.stopPropagation(), t.focus());\n },\n \"keydown.control.right\": (e) => {\n const t = Wt(e);\n t && (e.preventDefault(), e.stopPropagation(), t.focus());\n },\n \"keydown.end\": (e) => {\n const t = Wt(e);\n t && (e.preventDefault(), e.stopPropagation(), t.focus());\n },\n \"keydown.enter\": (e) => {\n if (e.target instanceof HTMLElement && e.target instanceof HTMLTableCellElement) {\n e.preventDefault(), e.stopPropagation();\n const t = Zt(e);\n t && t.focus();\n }\n },\n \"keydown.shift.enter\": (e) => {\n if (e.target instanceof HTMLElement && e.target instanceof HTMLTableCellElement) {\n e.preventDefault(), e.stopPropagation();\n const t = Nt(e);\n t && t.focus();\n }\n },\n \"keydown.home\": (e) => {\n const t = Ut(e);\n t && (e.preventDefault(), e.stopPropagation(), t.focus());\n },\n \"keydown.tab\": (e) => {\n const t = Gt(e);\n t && (e.preventDefault(), e.stopPropagation(), t.focus());\n },\n \"keydown.shift.tab\": (e) => {\n const t = Ot(e);\n t && (e.preventDefault(), e.stopPropagation(), t.focus());\n }\n};\nfunction it(e) {\n let t = null;\n return e.parent && (typeof e.parent == \"string\" ? t = document.querySelector(e.parent) : e.parent instanceof HTMLElement ? t = e.parent : t = e.parent.value), t;\n}\nfunction Vt(e) {\n const t = (o) => {\n const s = it(o);\n let u = [];\n if (typeof o.selectors == \"string\")\n u = Array.from(s ? s.querySelectorAll(o.selectors) : document.querySelectorAll(o.selectors));\n else if (Array.isArray(o.selectors))\n for (const r of o.selectors)\n r instanceof HTMLElement ? u.push(r) : u.push(r.$el);\n else if (o.selectors instanceof HTMLElement)\n u.push(o.selectors);\n else if (o.selectors?.value)\n if (Array.isArray(o.selectors.value))\n for (const r of o.selectors.value)\n r instanceof HTMLElement ? u.push(r) : u.push(r.$el);\n else\n u.push(o.selectors.value);\n return u;\n }, l = (o) => {\n const s = it(o);\n let u = [];\n return o.selectors ? u = t(o) : s && (u = Array.from(s.children).filter((r) => r instanceof HTMLElement).filter((r) => Le(r) && Ae(r))), u;\n }, n = (o) => (s) => {\n const u = Fn[s.key] || s.key.toLowerCase();\n if (Ke.includes(u)) return;\n const r = o.handlers || st;\n for (const i of Object.keys(r)) {\n const [d, ...m] = i.split(\".\");\n if (d === \"keydown\" && m.includes(u)) {\n const I = r[i], w = m.filter((v) => Ke.includes(v)), p = Ke.some((v) => {\n const c = v.charAt(0).toUpperCase() + v.slice(1);\n return s.getModifierState(c);\n });\n if (w.length > 0) {\n if (p) {\n for (const v of Ke)\n if (m.includes(v)) {\n const c = v.charAt(0).toUpperCase() + v.slice(1);\n s.getModifierState(c) && I(s);\n }\n }\n } else\n p || I(s);\n }\n }\n }, a = [];\n Re(() => {\n for (const o of e) {\n const s = it(o), u = l(o), r = n(o), i = s ? [s] : u;\n for (const d of i) {\n const { focused: m } = Ln(C(d)), I = le(m, (w) => {\n w ? d.addEventListener(\"keydown\", r) : d.removeEventListener(\"keydown\", r);\n });\n a.push(I);\n }\n }\n }), dn(() => {\n for (const o of a)\n o();\n });\n}\nfunction Bt(e, t) {\n return It() ? (Tt(e, t), !0) : !1;\n}\nconst jt = typeof window < \"u\" && typeof document < \"u\";\ntypeof WorkerGlobalScope < \"u\" && globalThis instanceof WorkerGlobalScope;\nconst Pn = (e) => e != null, Nn = Object.prototype.toString, Zn = (e) => Nn.call(e) === \"[object Object]\", Oe = () => {\n};\nfunction On(...e) {\n if (e.length !== 1) return Xt(...e);\n const t = e[0];\n return typeof t == \"function\" ? Et(Ct(() => ({\n get: t,\n set: Oe\n }))) : C(t);\n}\nfunction Gn(e, t) {\n function l(...n) {\n return new Promise((a, o) => {\n Promise.resolve(e(() => t.apply(this, n), {\n fn: t,\n thisArg: this,\n args: n\n })).then(a).catch(o);\n });\n }\n return l;\n}\nfunction Un(e, t = {}) {\n let l, n, a = Oe;\n const o = (u) => {\n clearTimeout(u), a(), a = Oe;\n };\n let s;\n return (u) => {\n const r = A(e), i = A(t.maxWait);\n return l && o(l), r <= 0 || i !== void 0 && i <= 0 ? (n && (o(n), n = void 0), Promise.resolve(u())) : new Promise((d, m) => {\n a = t.rejectOnCancel ? m : d, s = u, i && !n && (n = setTimeout(() => {\n l && o(l), n = void 0, d(s());\n }, i)), l = setTimeout(() => {\n n && o(n), n = void 0, d(u());\n }, r);\n });\n };\n}\nfunction et(e) {\n return Array.isArray(e) ? e : [e];\n}\nfunction Wn(e) {\n return $t();\n}\n// @__NO_SIDE_EFFECTS__\nfunction qn(e, t = 200, l = {}) {\n return Gn(Un(t, l), e);\n}\nfunction zn(e, t = {}) {\n if (!mn(e)) return pn(e);\n const l = Array.isArray(e.value) ? Array.from({ length: e.value.length }) : {};\n for (const n in e.value) l[n] = Ct(() => ({\n get() {\n return e.value[n];\n },\n set(a) {\n var o;\n if (!((o = A(t.replaceRef)) !== null && o !== void 0) || o) if (Array.isArray(e.value)) {\n const s = [...e.value];\n s[n] = a, e.value = s;\n } else {\n const s = {\n ...e.value,\n [n]: a\n };\n Object.setPrototypeOf(s, Object.getPrototypeOf(e.value)), e.value = s;\n }\n else e.value[n] = a;\n }\n }));\n return l;\n}\nfunction _n(e, t = !0, l) {\n Wn() ? Re(e, l) : t ? e() : at(e);\n}\nfunction Yn(e, t, l) {\n return le(e, t, {\n ...l,\n immediate: !0\n });\n}\nconst Xe = jt ? window : void 0;\nfunction $e(e) {\n var t;\n const l = A(e);\n return (t = l?.$el) !== null && t !== void 0 ? t : l;\n}\nfunction Fe(...e) {\n const t = (n, a, o, s) => (n.addEventListener(a, o, s), () => n.removeEventListener(a, o, s)), l = R(() => {\n const n = et(A(e[0])).filter((a) => a != null);\n return n.every((a) => typeof a != \"string\") ? n : void 0;\n });\n return Yn(() => {\n var n, a;\n return [\n (n = (a = l.value) === null || a === void 0 ? void 0 : a.map((o) => $e(o))) !== null && n !== void 0 ? n : [Xe].filter((o) => o != null),\n et(A(l.value ? e[1] : e[0])),\n et(B(l.value ? e[2] : e[1])),\n A(l.value ? e[3] : e[2])\n ];\n }, ([n, a, o, s], u, r) => {\n if (!n?.length || !a?.length || !o?.length) return;\n const i = Zn(s) ? { ...s } : s, d = n.flatMap((m) => a.flatMap((I) => o.map((w) => t(m, I, w, i))));\n r(() => {\n d.forEach((m) => m());\n });\n }, { flush: \"post\" });\n}\nfunction xt(e, t, l = {}) {\n const { window: n = Xe, ignore: a = [], capture: o = !0, detectIframe: s = !1, controls: u = !1 } = l;\n if (!n) return u ? {\n stop: Oe,\n cancel: Oe,\n trigger: Oe\n } : Oe;\n let r = !0;\n const i = (c) => A(a).some((h) => {\n if (typeof h == \"string\") return Array.from(n.document.querySelectorAll(h)).some((k) => k === c.target || c.composedPath().includes(k));\n {\n const k = $e(h);\n return k && (c.target === k || c.composedPath().includes(k));\n }\n });\n function d(c) {\n const h = A(c);\n return h && h.$.subTree.shapeFlag === 16;\n }\n function m(c, h) {\n const k = A(c), E = k.$.subTree && k.$.subTree.children;\n return E == null || !Array.isArray(E) ? !1 : E.some((S) => S.el === h.target || h.composedPath().includes(S.el));\n }\n const I = (c) => {\n const h = $e(e);\n if (c.target != null && !(!(h instanceof Element) && d(e) && m(e, c)) && !(!h || h === c.target || c.composedPath().includes(h))) {\n if (\"detail\" in c && c.detail === 0 && (r = !i(c)), !r) {\n r = !0;\n return;\n }\n t(c);\n }\n };\n let w = !1;\n const p = [\n Fe(n, \"click\", (c) => {\n w || (w = !0, setTimeout(() => {\n w = !1;\n }, 0), I(c));\n }, {\n passive: !0,\n capture: o\n }),\n Fe(n, \"pointerdown\", (c) => {\n const h = $e(e);\n r = !i(c) && !!(h && !c.composedPath().includes(h));\n }, { passive: !0 }),\n s && Fe(n, \"blur\", (c) => {\n setTimeout(() => {\n var h;\n const k = $e(e);\n ((h = n.document.activeElement) === null || h === void 0 ? void 0 : h.tagName) === \"IFRAME\" && !k?.contains(n.document.activeElement) && t(c);\n }, 0);\n }, { passive: !0 })\n ].filter(Boolean), v = () => p.forEach((c) => c());\n return u ? {\n stop: v,\n cancel: () => {\n r = !1;\n },\n trigger: (c) => {\n r = !0, I(c), r = !1;\n }\n } : v;\n}\n// @__NO_SIDE_EFFECTS__\nfunction Xn() {\n const e = he(!1), t = $t();\n return t && Re(() => {\n e.value = !0;\n }, t), e;\n}\n// @__NO_SIDE_EFFECTS__\nfunction Jt(e) {\n const t = /* @__PURE__ */ Xn();\n return R(() => (t.value, !!e()));\n}\nfunction Qt(e, t, l = {}) {\n const { window: n = Xe, ...a } = l;\n let o;\n const s = /* @__PURE__ */ Jt(() => n && \"MutationObserver\" in n), u = () => {\n o && (o.disconnect(), o = void 0);\n }, r = le(R(() => {\n const m = et(A(e)).map($e).filter(Pn);\n return new Set(m);\n }), (m) => {\n u(), s.value && m.size && (o = new MutationObserver(t), m.forEach((I) => o.observe(I, a)));\n }, {\n immediate: !0,\n flush: \"post\"\n }), i = () => o?.takeRecords(), d = () => {\n r(), u();\n };\n return Bt(d), {\n isSupported: s,\n stop: d,\n takeRecords: i\n };\n}\nconst je = {\n speed: 2,\n margin: 30,\n direction: \"both\"\n};\nfunction Kn(e) {\n e.scrollLeft > e.scrollWidth - e.clientWidth && (e.scrollLeft = Math.max(0, e.scrollWidth - e.clientWidth)), e.scrollTop > e.scrollHeight - e.clientHeight && (e.scrollTop = Math.max(0, e.scrollHeight - e.clientHeight));\n}\nfunction ut(e, t = {}) {\n var l, n, a, o;\n const { pointerTypes: s, preventDefault: u, stopPropagation: r, exact: i, onMove: d, onEnd: m, onStart: I, initialValue: w, axis: p = \"both\", draggingElement: v = Xe, containerElement: c, handle: h = e, buttons: k = [0], restrictInView: E, autoScroll: S = !1 } = t, D = C((l = A(w)) !== null && l !== void 0 ? l : {\n x: 0,\n y: 0\n }), L = C(), z = (M) => s ? s.includes(M.pointerType) : !0, H = (M) => {\n A(u) && M.preventDefault(), A(r) && M.stopPropagation();\n }, Z = A(S), _ = typeof Z == \"object\" ? {\n speed: (n = A(Z.speed)) !== null && n !== void 0 ? n : je.speed,\n margin: (a = A(Z.margin)) !== null && a !== void 0 ? a : je.margin,\n direction: (o = Z.direction) !== null && o !== void 0 ? o : je.direction\n } : je, J = (M) => typeof M == \"number\" ? [M, M] : [M.x, M.y], ne = (M, T, V) => {\n const { clientWidth: U, clientHeight: Y, scrollLeft: ve, scrollTop: Ee, scrollWidth: Be, scrollHeight: P } = M, [O, K] = J(_.margin), [oe, ie] = J(_.speed);\n let re = 0, ue = 0;\n (_.direction === \"x\" || _.direction === \"both\") && (V.x < O && ve > 0 ? re = -oe : V.x + T.width > U - O && ve < Be - U && (re = oe)), (_.direction === \"y\" || _.direction === \"both\") && (V.y < K && Ee > 0 ? ue = -ie : V.y + T.height > Y - K && Ee < P - Y && (ue = ie)), (re || ue) && M.scrollBy({\n left: re,\n top: ue,\n behavior: \"auto\"\n });\n };\n let se = null;\n const Ie = () => {\n const M = A(c);\n M && !se && (se = setInterval(() => {\n const T = A(e).getBoundingClientRect(), { x: V, y: U } = D.value, Y = {\n x: V - M.scrollLeft,\n y: U - M.scrollTop\n };\n Y.x >= 0 && Y.y >= 0 && (ne(M, T, Y), Y.x += M.scrollLeft, Y.y += M.scrollTop, D.value = Y);\n }, 1e3 / 60));\n }, be = () => {\n se && (clearInterval(se), se = null);\n }, He = (M, T, V, U) => {\n const [Y, ve] = typeof V == \"number\" ? [V, V] : [V.x, V.y], { clientWidth: Ee, clientHeight: Be } = T;\n return M.x < Y || M.x + U.width > Ee - Y || M.y < ve || M.y + U.height > Be - ve;\n }, Ne = () => {\n if (A(t.disabled) || !L.value) return;\n const M = A(c);\n if (!M) return;\n const T = A(e).getBoundingClientRect(), { x: V, y: U } = D.value;\n He({\n x: V - M.scrollLeft,\n y: U - M.scrollTop\n }, M, _.margin, T) ? Ie() : be();\n };\n A(S) && le(D, Ne);\n const me = (M) => {\n var T;\n if (!A(k).includes(M.button) || A(t.disabled) || !z(M) || A(i) && M.target !== A(e)) return;\n const V = A(c), U = V == null || (T = V.getBoundingClientRect) === null || T === void 0 ? void 0 : T.call(V), Y = A(e).getBoundingClientRect(), ve = {\n x: M.clientX - (V ? Y.left - U.left + (S ? 0 : V.scrollLeft) : Y.left),\n y: M.clientY - (V ? Y.top - U.top + (S ? 0 : V.scrollTop) : Y.top)\n };\n I?.(ve, M) !== !1 && (L.value = ve, H(M));\n }, De = (M) => {\n if (A(t.disabled) || !z(M) || !L.value) return;\n const T = A(c);\n T instanceof HTMLElement && Kn(T);\n const V = A(e).getBoundingClientRect();\n let { x: U, y: Y } = D.value;\n if ((p === \"x\" || p === \"both\") && (U = M.clientX - L.value.x, T && (U = Math.min(Math.max(0, U), T.scrollWidth - V.width))), (p === \"y\" || p === \"both\") && (Y = M.clientY - L.value.y, T && (Y = Math.min(Math.max(0, Y), T.scrollHeight - V.height))), A(S) && T && (se === null && ne(T, V, {\n x: U,\n y: Y\n }), U += T.scrollLeft, Y += T.scrollTop), T && (E || S)) {\n if (p !== \"y\") {\n const ve = U - T.scrollLeft;\n ve < 0 ? U = T.scrollLeft : ve > T.clientWidth - V.width && (U = T.clientWidth - V.width + T.scrollLeft);\n }\n if (p !== \"x\") {\n const ve = Y - T.scrollTop;\n ve < 0 ? Y = T.scrollTop : ve > T.clientHeight - V.height && (Y = T.clientHeight - V.height + T.scrollTop);\n }\n }\n D.value = {\n x: U,\n y: Y\n }, d?.(D.value, M), H(M);\n }, Ve = (M) => {\n A(t.disabled) || !z(M) || L.value && (L.value = void 0, S && be(), m?.(D.value, M), H(M));\n };\n if (jt) {\n const M = () => {\n var T;\n return {\n capture: (T = t.capture) !== null && T !== void 0 ? T : !0,\n passive: !A(u)\n };\n };\n Fe(h, \"pointerdown\", me, M), Fe(v, \"pointermove\", De, M), Fe(v, \"pointerup\", Ve, M);\n }\n return {\n ...zn(D),\n position: D,\n isDragging: R(() => !!L.value),\n style: R(() => `\n left: ${D.value.x}px;\n top: ${D.value.y}px;\n ${S ? \"text-wrap: nowrap;\" : \"\"}\n `)\n };\n}\nfunction nt(e, t, l = {}) {\n const { window: n = Xe, ...a } = l;\n let o;\n const s = /* @__PURE__ */ Jt(() => n && \"ResizeObserver\" in n), u = () => {\n o && (o.disconnect(), o = void 0);\n }, r = le(R(() => {\n const d = A(e);\n return Array.isArray(d) ? d.map((m) => $e(m)) : [$e(d)];\n }), (d) => {\n if (u(), s.value && n) {\n o = new ResizeObserver(t);\n for (const m of d) m && o.observe(m, a);\n }\n }, {\n immediate: !0,\n flush: \"post\"\n }), i = () => {\n u(), r();\n };\n return Bt(i), {\n isSupported: s,\n stop: i\n };\n}\nfunction Ze(e, t = {}) {\n const { reset: l = !0, windowResize: n = !0, windowScroll: a = !0, immediate: o = !0, updateTiming: s = \"sync\" } = t, u = he(0), r = he(0), i = he(0), d = he(0), m = he(0), I = he(0), w = he(0), p = he(0);\n function v() {\n const h = $e(e);\n if (!h) {\n l && (u.value = 0, r.value = 0, i.value = 0, d.value = 0, m.value = 0, I.value = 0, w.value = 0, p.value = 0);\n return;\n }\n const k = h.getBoundingClientRect();\n u.value = k.height, r.value = k.bottom, i.value = k.left, d.value = k.right, m.value = k.top, I.value = k.width, w.value = k.x, p.value = k.y;\n }\n function c() {\n s === \"sync\" ? v() : s === \"next-frame\" && requestAnimationFrame(() => v());\n }\n return nt(e, c), le(() => $e(e), (h) => !h && c()), Qt(e, c, { attributeFilter: [\"style\", \"class\"] }), a && Fe(\"scroll\", c, {\n capture: !0,\n passive: !0\n }), n && Fe(\"resize\", c, { passive: !0 }), _n(() => {\n o && c();\n }), {\n height: u,\n bottom: r,\n left: i,\n right: d,\n top: m,\n width: I,\n x: w,\n y: p,\n update: c\n };\n}\nfunction ct(e) {\n return typeof Window < \"u\" && e instanceof Window ? e.document.documentElement : typeof Document < \"u\" && e instanceof Document ? e.documentElement : e;\n}\nconst dt = /* @__PURE__ */ new WeakMap();\nfunction jn(e, t = !1) {\n const l = he(t);\n let n = \"\";\n le(On(e), (s) => {\n const u = ct(A(s));\n if (u) {\n const r = u;\n if (dt.get(r) || dt.set(r, r.style.overflow), r.style.overflow !== \"hidden\" && (n = r.style.overflow), r.style.overflow === \"hidden\") return l.value = !0;\n if (l.value) return r.style.overflow = \"hidden\";\n }\n }, { immediate: !0 });\n const a = () => {\n const s = ct(A(e));\n !s || l.value || (s.style.overflow = \"hidden\", l.value = !0);\n }, o = () => {\n const s = ct(A(e));\n !s || !l.value || (s.style.overflow = n, dt.delete(s), l.value = !1);\n };\n return Bt(o), R({\n get() {\n return l.value;\n },\n set(s) {\n s ? a() : o();\n }\n });\n}\nconst Jn = (e) => {\n const t = new DOMParser().parseFromString(e, \"text/html\");\n return Array.from(t.body.childNodes).some((l) => l.nodeType === 1);\n}, Qn = (e = 8) => Array.from({ length: e }, () => Math.floor(Math.random() * 16).toString(16)).join(\"\"), el = [\"data-colindex\", \"data-rowindex\", \"data-editable\", \"contenteditable\", \"tabindex\"], tl = [\"innerHTML\"], nl = { key: 2 }, ll = /* @__PURE__ */ te({\n __name: \"ACell\",\n props: {\n colIndex: {},\n rowIndex: {},\n store: {},\n addNavigation: { type: [Boolean, Object], default: !0 },\n tabIndex: { default: 0 },\n pinned: { type: Boolean, default: !1 },\n debounce: { default: 300 }\n },\n setup(e, { expose: t }) {\n const l = pe(\"cell\"), n = e.store.getCellData(e.colIndex, e.rowIndex), a = C(\"\"), o = C(!1), s = e.store.columns[e.colIndex], u = e.store.rows[e.rowIndex], r = s.align || \"center\", i = s.width || \"40ch\", d = R(() => e.store.getCellDisplayValue(e.colIndex, e.rowIndex)), m = C(null);\n Re(() => {\n if (!s.linkDoctype) return;\n const H = e.store.getCellData(e.colIndex, e.rowIndex);\n if (H != null && typeof H == \"object\") {\n const _ = H, J = _.displayText ?? _.id;\n (typeof J == \"string\" || typeof J == \"number\") && (m.value = String(J));\n return;\n }\n const Z = e.store.linkResolver;\n !Z || typeof H != \"string\" || H === \"\" || Z(s.linkDoctype, H).then((_) => (_ != null && (m.value = _), _));\n });\n const I = R(() => m.value ?? d.value), w = R(() => typeof I.value == \"string\" ? Jn(I.value) : !1), p = R(() => ({\n textAlign: r,\n width: i,\n fontWeight: o.value ? \"bold\" : \"inherit\",\n paddingLeft: e.store.getIndent(e.colIndex, e.store.display[e.rowIndex]?.indent)\n })), v = R(() => ({\n \"sticky-column\": e.pinned,\n \"cell-modified\": o.value\n })), c = () => {\n k(), h();\n }, h = () => {\n const { left: H, bottom: Z, width: _, height: J } = Ze(l);\n s.mask, s.modalComponent && e.store.$patch((ne) => {\n ne.modal.visible = !0, ne.modal.colIndex = e.colIndex, ne.modal.rowIndex = e.rowIndex, ne.modal.left = H, ne.modal.bottom = Z, ne.modal.width = _, ne.modal.height = J, ne.modal.cell = l.value, typeof s.modalComponent == \"function\" ? ne.modal.component = s.modalComponent({ table: ne.table, row: u, column: s }) : ne.modal.component = s.modalComponent, ne.modal.componentProps = s.modalComponentExtraProps;\n });\n };\n if (e.addNavigation) {\n let H = {\n ...st,\n \"keydown.f2\": h,\n \"keydown.alt.up\": h,\n \"keydown.alt.down\": h,\n \"keydown.alt.left\": h,\n \"keydown.alt.right\": h\n };\n typeof e.addNavigation == \"object\" && (H = {\n ...H,\n ...e.addNavigation\n }), Vt([\n {\n selectors: l,\n handlers: H\n }\n ]);\n }\n const k = () => {\n if (l.value && s.edit) {\n const H = window.getSelection();\n if (H)\n try {\n const Z = document.createRange();\n Z.selectNodeContents && (Z.selectNodeContents(l.value), H.removeAllRanges(), H.addRange(Z));\n } catch {\n }\n }\n }, E = () => {\n l.value && (a.value = l.value.textContent, k());\n }, S = () => {\n try {\n const H = window.getSelection();\n if (H && H.rangeCount > 0 && l.value) {\n const Z = H.getRangeAt(0), _ = Z.cloneRange();\n if (_.selectNodeContents && _.setEnd)\n return _.selectNodeContents(l.value), _.setEnd(Z.endContainer, Z.endOffset), _.toString().length;\n }\n } catch {\n }\n return 0;\n }, D = (H) => {\n if (l.value)\n try {\n const Z = window.getSelection();\n if (!Z) return;\n let _ = 0;\n const J = document.createTreeWalker ? document.createTreeWalker(l.value, NodeFilter.SHOW_TEXT, null) : null;\n if (!J) return;\n let ne, se = null;\n for (; ne = J.nextNode(); ) {\n const Ie = ne, be = _ + Ie.textContent.length;\n if (H <= be && (se = document.createRange(), se.setStart && se.setEnd)) {\n se.setStart(Ie, H - _), se.setEnd(Ie, H - _);\n break;\n }\n _ = be;\n }\n se && Z.removeAllRanges && Z.addRange && (Z.removeAllRanges(), Z.addRange(se));\n } catch {\n }\n }, L = (H) => {\n if (!s.edit) return;\n const Z = H.target;\n if (Z.textContent === a.value)\n return;\n const _ = S();\n a.value = Z.textContent, s.format ? (o.value = Z.textContent !== e.store.getFormattedValue(e.colIndex, e.rowIndex, n), e.store.setCellText(e.colIndex, e.rowIndex, Z.textContent)) : (o.value = Z.textContent !== n, e.store.setCellData(e.colIndex, e.rowIndex, Z.textContent)), at().then(() => D(_));\n }, z = /* @__PURE__ */ qn(L, e.debounce);\n return t({\n currentData: a\n }), (H, Z) => (g(), x(\"td\", {\n ref: \"cell\",\n \"data-colindex\": e.colIndex,\n \"data-rowindex\": e.rowIndex,\n \"data-editable\": B(s).edit,\n contenteditable: B(s).edit,\n tabindex: e.tabIndex,\n spellcheck: !1,\n style: Se(p.value),\n class: de([\"atable-cell\", v.value]),\n onFocus: E,\n onPaste: L,\n onInput: Z[0] || (Z[0] = //@ts-ignore\n (..._) => B(z) && B(z)(..._)),\n onClick: c\n }, [\n B(s).cellComponent ? (g(), fe(Ge(B(s).cellComponent), ot({\n key: 0,\n value: I.value\n }, B(s).cellComponentProps), null, 16, [\"value\"])) : w.value ? (g(), x(\"span\", {\n key: 1,\n innerHTML: I.value\n }, null, 8, tl)) : (g(), x(\"span\", nl, F(I.value), 1))\n ], 46, el));\n }\n}), ol = [\"tabindex\"], al = [\"tabindex\"], sl = [\"colspan\"], rl = /* @__PURE__ */ te({\n __name: \"AExpansionRow\",\n props: {\n rowIndex: {},\n store: {},\n tabIndex: { default: () => -1 },\n addNavigation: { type: [Boolean, Object], default: () => st }\n },\n setup(e) {\n const t = pe(\"rowEl\"), l = R(() => e.store.display[e.rowIndex].expanded ? \"▼\" : \"►\");\n if (e.addNavigation) {\n const n = {\n \"keydown.control.g\": (a) => {\n a.stopPropagation(), a.preventDefault(), e.store.toggleRowExpand(e.rowIndex);\n }\n };\n typeof e.addNavigation == \"object\" && Object.assign(n, e.addNavigation), Vt([\n {\n selectors: t,\n handlers: n\n }\n ]);\n }\n return (n, a) => (g(), x(X, null, [\n b(\"tr\", ot(n.$attrs, {\n ref: \"rowEl\",\n tabindex: e.tabIndex,\n class: \"expandable-row\"\n }), [\n b(\"td\", {\n tabIndex: -1,\n class: \"row-index\",\n onClick: a[0] || (a[0] = (o) => e.store.toggleRowExpand(e.rowIndex))\n }, F(l.value), 1),\n Me(n.$slots, \"row\", {}, void 0, !0)\n ], 16, ol),\n e.store.display[e.rowIndex].expanded ? (g(), x(\"tr\", {\n key: 0,\n ref: \"rowExpanded\",\n tabindex: e.tabIndex,\n class: \"expanded-row\"\n }, [\n b(\"td\", {\n tabIndex: -1,\n colspan: e.store.columns.length + 1,\n class: \"expanded-row-content\"\n }, [\n Me(n.$slots, \"content\", {}, void 0, !0)\n ], 8, sl)\n ], 8, al)) : N(\"\", !0)\n ], 64));\n }\n}), Pe = (e, t) => {\n const l = e.__vccOpts || e;\n for (const [n, a] of t)\n l[n] = a;\n return l;\n}, il = /* @__PURE__ */ Pe(rl, [[\"__scopeId\", \"data-v-a42297c7\"]]), ul = [\"colspan\"], cl = {\n ref: \"container\",\n class: \"gantt-container\"\n}, dl = [\"data-rowindex\", \"data-colindex\"], vl = {\n key: 2,\n class: \"gantt-label\"\n}, fl = [\"x1\", \"y1\", \"x2\", \"y2\"], ml = /* @__PURE__ */ te({\n __name: \"AGanttCell\",\n props: {\n store: {},\n columnsCount: {},\n rowIndex: {},\n colIndex: {},\n start: { default: 0 },\n end: { default: 0 },\n colspan: { default: 1 },\n label: { default: \"\" },\n color: { default: \"#cccccc\" }\n },\n emits: [\"connection:create\"],\n setup(e, { expose: t, emit: l }) {\n vn((P) => ({\n v1b78cb3b: a.value,\n v0a4cd982: P.colspan\n }));\n const n = l, a = C(e.color.length >= 6 ? e.color : \"#cccccc\"), o = `gantt-bar-row-${e.rowIndex}-col-${e.colIndex}`, s = pe(\"container\"), u = pe(\"bar\"), r = pe(\"leftResizeHandle\"), i = pe(\"rightResizeHandle\"), d = pe(\"leftConnectionHandle\"), m = pe(\"rightConnectionHandle\"), { width: I } = Ze(s), { left: w, right: p } = Ze(u), v = C(e.start), c = C(e.end || v.value + e.colspan), h = C(!1), k = C(!1), E = C(!1), S = C(!1), D = C(!1), L = C({ startX: 0, startY: 0, endX: 0, endY: 0 }), z = R(() => Ie.value || ne.value || se.value), H = R(() => e.colspan > 0 ? I.value / e.colspan : 0), Z = R(() => {\n const P = v.value / e.colspan * 100, O = c.value / e.colspan * 100;\n return {\n left: `${P}%`,\n width: `${O - P}%`,\n backgroundColor: a.value\n };\n }), _ = R(\n () => ({\n position: \"fixed\",\n top: 0,\n left: 0,\n width: \"100vw\",\n height: \"100vh\",\n pointerEvents: \"none\",\n zIndex: 1e3\n })\n ), J = C({ startX: 0, startPos: 0 }), { isDragging: ne } = ut(r, {\n axis: \"x\",\n onStart: () => be(w.value, v.value),\n onMove: ({ x: P }) => He(P),\n onEnd: ({ x: P }) => Ne(P)\n }), { isDragging: se } = ut(i, {\n axis: \"x\",\n onStart: () => be(p.value, c.value),\n onMove: ({ x: P }) => me(P),\n onEnd: ({ x: P }) => De(P)\n }), { isDragging: Ie } = ut(u, {\n exact: !0,\n axis: \"x\",\n onStart: () => be(w.value, v.value),\n onMove: ({ x: P }) => Ve(P),\n onEnd: ({ x: P }) => M(P)\n });\n Re(() => {\n T();\n }), fn(() => {\n V();\n });\n function be(P, O) {\n u.value && (u.value.style.transition = \"none\"), J.value = { startX: P, startPos: O };\n }\n function He(P) {\n if (!ne.value || !u.value) return;\n const O = (P - J.value.startX) / H.value, K = Math.max(0, Math.min(c.value - 1, J.value.startPos + O));\n u.value.style.left = `${K / e.colspan * 100}%`, u.value.style.width = `${(c.value - K) / e.colspan * 100}%`;\n }\n function Ne(P) {\n if (!u.value) return;\n const O = P - J.value.startX, K = Math.round(O / H.value), oe = v.value, ie = Math.max(0, Math.min(c.value - 1, J.value.startPos + K));\n v.value = ie, e.store.updateGanttBar({\n rowIndex: e.rowIndex,\n colIndex: e.colIndex,\n type: \"resize\",\n edge: \"start\",\n oldStart: oe,\n newStart: ie,\n end: c.value,\n delta: K,\n oldColspan: c.value - oe,\n newColspan: c.value - ie\n });\n }\n function me(P) {\n if (!se.value || !u.value) return;\n const O = (P - J.value.startX) / H.value, K = Math.max(v.value + 1, Math.min(e.columnsCount, J.value.startPos + O));\n u.value.style.width = `${(K - v.value) / e.colspan * 100}%`;\n }\n function De(P) {\n if (!u.value) return;\n const O = P - J.value.startX, K = Math.round(O / H.value), oe = c.value, ie = Math.max(v.value + 1, Math.min(e.columnsCount, J.value.startPos + K));\n c.value = ie, e.store.updateGanttBar({\n rowIndex: e.rowIndex,\n colIndex: e.colIndex,\n type: \"resize\",\n edge: \"end\",\n oldEnd: oe,\n newEnd: ie,\n start: v.value,\n delta: K,\n oldColspan: oe - v.value,\n newColspan: ie - v.value\n });\n }\n function Ve(P) {\n if (!Ie.value || !u.value) return;\n const O = (P - J.value.startX) / H.value, K = c.value - v.value, oe = Math.max(0, Math.min(J.value.startPos + O, e.columnsCount - K));\n u.value.style.left = `${oe / e.colspan * 100}%`;\n }\n function M(P) {\n if (!u.value) return;\n const O = P - J.value.startX, K = Math.round(O / H.value), oe = c.value - v.value, ie = v.value, re = c.value;\n let ue = J.value.startPos + K, f = ue + oe;\n ue < 0 ? (ue = 0, f = oe) : f > e.columnsCount && (f = e.columnsCount, ue = f - oe), v.value = ue, c.value = f, e.store.updateGanttBar({\n rowIndex: e.rowIndex,\n colIndex: e.colIndex,\n type: \"bar\",\n oldStart: ie,\n oldEnd: re,\n newStart: ue,\n newEnd: f,\n delta: K,\n colspan: f - ue\n });\n }\n function T() {\n const { x: P, y: O } = Ze(u), { x: K, y: oe } = Ze(d), { x: ie, y: re } = Ze(m);\n e.store.registerGanttBar({\n id: o,\n rowIndex: e.rowIndex,\n colIndex: e.colIndex,\n startIndex: v,\n endIndex: c,\n color: a,\n label: e.label,\n position: { x: P, y: O }\n }), e.store.isDependencyGraphEnabled && (e.store.registerConnectionHandle({\n id: `${o}-connection-left`,\n rowIndex: e.rowIndex,\n colIndex: e.colIndex,\n side: \"left\",\n position: { x: K, y: oe },\n visible: h,\n barId: o\n }), e.store.registerConnectionHandle({\n id: `${o}-connection-right`,\n rowIndex: e.rowIndex,\n colIndex: e.colIndex,\n side: \"right\",\n position: { x: ie, y: re },\n visible: k,\n barId: o\n }));\n }\n function V() {\n e.store.unregisterGanttBar(o), e.store.isDependencyGraphEnabled && (e.store.unregisterConnectionHandle(`${o}-connection-left`), e.store.unregisterConnectionHandle(`${o}-connection-right`));\n }\n function U() {\n e.store.isDependencyGraphEnabled && (h.value = !0, k.value = !0);\n }\n function Y() {\n !E.value && !S.value && (h.value = !1, k.value = !1);\n }\n function ve(P, O) {\n O.preventDefault(), O.stopPropagation(), D.value = !0, P === \"left\" ? E.value = !0 : S.value = !0;\n const K = P === \"left\" ? d.value : m.value;\n if (K) {\n const re = K.getBoundingClientRect(), ue = re.left + re.width / 2, f = re.top + re.height / 2;\n L.value = { startX: ue, startY: f, endX: ue, endY: f };\n }\n const oe = (re) => {\n L.value.endX = re.clientX, L.value.endY = re.clientY;\n }, ie = (re) => {\n Ee(re, P), Be(oe, ie);\n };\n document.addEventListener(\"mousemove\", oe), document.addEventListener(\"mouseup\", ie);\n }\n function Ee(P, O) {\n const K = document.elementFromPoint(P.clientX, P.clientY)?.closest(\".connection-handle\");\n if (K && K !== (O === \"left\" ? d.value : m.value)) {\n const oe = K.closest(\".gantt-bar\");\n if (oe) {\n const ie = parseInt(oe.getAttribute(\"data-rowindex\") || \"0\"), re = parseInt(oe.getAttribute(\"data-colindex\") || \"0\"), ue = K.classList.contains(\"left-connection-handle\") ? \"left\" : \"right\", f = `gantt-bar-row-${ie}-col-${re}`, y = e.store.createConnection(\n `${o}-connection-${O}`,\n `${f}-connection-${ue}`\n );\n y && n(\"connection:create\", y);\n }\n }\n }\n function Be(P, O) {\n D.value = !1, E.value = !1, S.value = !1, document.removeEventListener(\"mousemove\", P), document.removeEventListener(\"mouseup\", O), u.value?.matches(\":hover\") || Y();\n }\n return t({\n barStyle: Z,\n cleanupConnectionDrag: Be,\n currentEnd: c,\n handleConnectionDrop: Ee,\n isLeftConnectionDragging: E,\n isLeftConnectionVisible: h,\n isRightConnectionDragging: S,\n isRightConnectionVisible: k,\n showDragPreview: D\n }), (P, O) => (g(), x(\"td\", {\n class: \"aganttcell\",\n colspan: e.colspan\n }, [\n b(\"div\", cl, [\n b(\"div\", {\n ref: \"bar\",\n \"data-rowindex\": e.rowIndex,\n \"data-colindex\": e.colIndex,\n class: de([\"gantt-bar\", { \"is-dragging\": z.value }]),\n style: Se(Z.value),\n onMouseenter: U,\n onMouseleave: Y\n }, [\n e.store.isDependencyGraphEnabled ? (g(), x(\"div\", {\n key: 0,\n ref: \"leftConnectionHandle\",\n class: de([\"connection-handle left-connection-handle\", { visible: h.value, \"is-dragging\": E.value }]),\n onMousedown: O[0] || (O[0] = ae((K) => ve(\"left\", K), [\"stop\"]))\n }, [...O[2] || (O[2] = [\n b(\"div\", { class: \"connection-dot\" }, null, -1)\n ])], 34)) : N(\"\", !0),\n e.store.isDependencyGraphEnabled ? (g(), x(\"div\", {\n key: 1,\n ref: \"rightConnectionHandle\",\n class: de([\"connection-handle right-connection-handle\", { visible: k.value, \"is-dragging\": S.value }]),\n onMousedown: O[1] || (O[1] = ae((K) => ve(\"right\", K), [\"stop\"]))\n }, [...O[3] || (O[3] = [\n b(\"div\", { class: \"connection-dot\" }, null, -1)\n ])], 34)) : N(\"\", !0),\n b(\"div\", {\n ref: \"leftResizeHandle\",\n class: de([\"resize-handle left-resize-handle\", { \"is-dragging\": B(ne) }])\n }, [...O[4] || (O[4] = [\n b(\"div\", { class: \"handle-grip\" }, null, -1),\n b(\"div\", { class: \"vertical-indicator left-indicator\" }, null, -1)\n ])], 2),\n e.label ? (g(), x(\"label\", vl, F(e.label), 1)) : N(\"\", !0),\n b(\"div\", {\n ref: \"rightResizeHandle\",\n class: de([\"resize-handle right-resize-handle\", { \"is-dragging\": B(se) }])\n }, [...O[5] || (O[5] = [\n b(\"div\", { class: \"handle-grip\" }, null, -1),\n b(\"div\", { class: \"vertical-indicator right-indicator\" }, null, -1)\n ])], 2)\n ], 46, dl)\n ], 512),\n e.store.isDependencyGraphEnabled && D.value ? (g(), x(\"svg\", {\n key: 0,\n style: Se(_.value)\n }, [\n b(\"line\", {\n x1: L.value.startX,\n y1: L.value.startY,\n x2: L.value.endX,\n y2: L.value.endY,\n stroke: \"#2196f3\",\n \"stroke-width\": \"2\",\n \"stroke-dasharray\": \"5,5\"\n }, null, 8, fl)\n ], 4)) : N(\"\", !0)\n ], 8, ul));\n }\n}), pl = /* @__PURE__ */ Pe(ml, [[\"__scopeId\", \"data-v-c3173189\"]]), hl = `<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<svg id=\"Layer_1\" data-name=\"Layer 1\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 64 64\">\n <path d=\"M32,64C14.35,64,0,49.65,0,32S14.35,0,32,0s32,14.35,32,32-14.35,32-32,32ZM32,4c-15.44,0-28,12.56-28,28s12.56,28,28,28,28-12.56,28-28S47.44,4,32,4Z\" style=\"fill: #000; stroke-width: 0px;\"/>\n <polygon points=\"34 18 30 18 30 30 18 30 18 34 30 34 30 46 34 46 34 34 46 34 46 30 34 30 34 18\" style=\"fill: #000; stroke-width: 0px;\"/>\n</svg>\n`, gl = `<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<svg id=\"Layer_1\" data-name=\"Layer 1\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 64 64\">\n <path d=\"M32,64C14.35,64,0,49.65,0,32S14.35,0,32,0s32,14.35,32,32-14.35,32-32,32ZM32,4c-15.44,0-28,12.56-28,28s12.56,28,28,28,28-12.56,28-28S47.44,4,32,4Z\" style=\"fill: #000; stroke-width: 0px;\"/>\n <polygon points=\"46.84 19.99 44.01 17.16 32 29.17 19.99 17.16 17.16 19.99 29.17 32 17.16 44.01 19.99 46.84 32 34.83 44.01 46.84 46.84 44.01 34.83 32 46.84 19.99\" style=\"fill: #000; stroke-width: 0px;\"/>\n</svg>`, yl = `<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<svg id=\"Layer_1\" data-name=\"Layer 1\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 70.67 70.67\">\n <path d=\"M68.67,16.67h-14.67V2c0-1.1-.9-2-2-2H2C.9,0,0,.9,0,2v50c0,1.1.9,2,2,2h14.67v14.67c0,1.1.9,2,2,2h50c1.1,0,2-.9,2-2V18.67c0-1.1-.9-2-2-2ZM4,4h46v46H4V4ZM66.67,66.67H20.67v-12.67h31.33c1.1,0,2-.9,2-2v-31.33h12.67v46Z\" style=\"fill: #000; stroke-width: 0px;\"/>\n <polygon points=\"41 25 29 25 29 13 25 13 25 25 13 25 13 29 25 29 25 41 29 41 29 29 41 29 41 25\" style=\"fill: #000; stroke-width: 0px;\"/>\n</svg>`, wl = `<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<svg id=\"Layer_1\" xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\" viewBox=\"0 0 70.6 61.5\">\n <path d=\"M68.6,45.8v13.7H2v-13.7h66.6M70.6,43.8H0v17.7h70.6v-17.7h0Z\"/>\n <path d=\"M68.6,24.2v13.7H2v-13.7h66.6M70.6,22.2H0v17.7h70.6v-17.7h0Z\"/>\n <g>\n <polygon points=\"70.6 2.5 68.6 2.5 68.6 2 68.1 2 68.1 0 70.6 0 70.6 2.5\"/>\n <path d=\"M65.3,2h-2.9V0h2.9v2ZM59.6,2h-2.9V0h2.9v2ZM53.9,2h-2.9V0h2.9v2ZM48.2,2h-2.9V0h2.9v2ZM42.4,2h-2.9V0h2.9v2ZM36.7,2h-2.9V0h2.9v2ZM31,2h-2.9V0h2.9v2ZM25.3,2h-2.9V0h2.9v2ZM19.6,2h-2.9V0h2.9v2ZM13.9,2h-2.9V0h2.9v2ZM8.2,2h-2.9V0h2.9v2Z\"/>\n <polygon points=\"2 2.5 0 2.5 0 0 2.5 0 2.5 2 2 2 2 2.5\"/>\n <path d=\"M2,13.4H0v-2.7h2v2.7ZM2,8H0v-2.7h2v2.7Z\"/>\n <polygon points=\"2.5 18.7 0 18.7 0 16.2 2 16.2 2 16.7 2.5 16.7 2.5 18.7\"/>\n <path d=\"M65.3,18.7h-2.9v-2h2.9v2ZM59.6,18.7h-2.9v-2h2.9v2ZM53.9,18.7h-2.9v-2h2.9v2ZM48.2,18.7h-2.9v-2h2.9v2ZM42.4,18.7h-2.9v-2h2.9v2ZM36.7,18.7h-2.9v-2h2.9v2ZM31,18.7h-2.9v-2h2.9v2ZM25.3,18.7h-2.9v-2h2.9v2ZM19.6,18.7h-2.9v-2h2.9v2ZM13.9,18.7h-2.9v-2h2.9v2ZM8.2,18.7h-2.9v-2h2.9v2Z\"/>\n <polygon points=\"70.6 18.7 68.1 18.7 68.1 16.7 68.6 16.7 68.6 16.2 70.6 16.2 70.6 18.7\"/>\n <path d=\"M70.6,13.4h-2v-2.7h2v2.7ZM70.6,8h-2v-2.7h2v2.7Z\"/>\n </g>\n</svg>`, bl = `<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<svg id=\"Layer_1\" xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\" viewBox=\"0 0 70.6 61.5\">\n <g>\n <polygon points=\"70.6 45.3 68.6 45.3 68.6 44.8 68.1 44.8 68.1 42.8 70.6 42.8 70.6 45.3\"/>\n <path d=\"M65.3,44.8h-2.9v-2h2.9v2ZM59.6,44.8h-2.9v-2h2.9v2ZM53.9,44.8h-2.9v-2h2.9v2ZM48.2,44.8h-2.9v-2h2.9v2ZM42.4,44.8h-2.9v-2h2.9v2ZM36.7,44.8h-2.9v-2h2.9v2ZM31,44.8h-2.9v-2h2.9v2ZM25.3,44.8h-2.9v-2h2.9v2ZM19.6,44.8h-2.9v-2h2.9v2ZM13.9,44.8h-2.9v-2h2.9v2ZM8.2,44.8h-2.9v-2h2.9v2Z\"/>\n <polygon points=\"2 45.3 0 45.3 0 42.8 2.5 42.8 2.5 44.8 2 44.8 2 45.3\"/>\n <path d=\"M2,56.3H0v-2.7h2v2.7ZM2,50.8H0v-2.7h2v2.7Z\"/>\n <polygon points=\"2.5 61.5 0 61.5 0 59 2 59 2 59.5 2.5 59.5 2.5 61.5\"/>\n <path d=\"M65.3,61.5h-2.9v-2h2.9v2ZM59.6,61.5h-2.9v-2h2.9v2ZM53.9,61.5h-2.9v-2h2.9v2ZM48.2,61.5h-2.9v-2h2.9v2ZM42.4,61.5h-2.9v-2h2.9v2ZM36.7,61.5h-2.9v-2h2.9v2ZM31,61.5h-2.9v-2h2.9v2ZM25.3,61.5h-2.9v-2h2.9v2ZM19.6,61.5h-2.9v-2h2.9v2ZM13.9,61.5h-2.9v-2h2.9v2ZM8.2,61.5h-2.9v-2h2.9v2Z\"/>\n <polygon points=\"70.6 61.5 68.1 61.5 68.1 59.5 68.6 59.5 68.6 59 70.6 59 70.6 61.5\"/>\n <path d=\"M70.6,56.3h-2v-2.7h2v2.7ZM70.6,50.8h-2v-2.7h2v2.7Z\"/>\n </g>\n <path d=\"M68.6,23.7v13.7H2v-13.7h66.6M70.6,21.7H0v17.7h70.6v-17.7h0Z\"/>\n <path d=\"M68.6,2v13.7H2V2h66.6M70.6,0H0v17.7h70.6V0h0Z\"/>\n</svg>`, xl = `<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<svg id=\"Layer_1\" data-name=\"Layer 1\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 70.67 70.64\">\n <path d=\"M70.08,33.9l-9.75-9.75-2.83,2.83,6.33,6.33h-26.51V6.81l6.33,6.33,2.83-2.83L36.75.56c-.75-.75-2.08-.75-2.83,0l-9.75,9.75,2.83,2.83,6.33-6.33v26.5H6.83l6.33-6.33-2.83-2.83L.59,33.9c-.38.38-.59.88-.59,1.41s.21,1.04.59,1.41l9.75,9.75,2.83-2.83-6.33-6.33h26.5v26.51l-6.33-6.33-2.83,2.83,9.75,9.75c.38.38.88.59,1.41.59s1.04-.21,1.41-.59l9.75-9.75-2.83-2.83-6.33,6.33v-26.51h26.51l-6.33,6.33,2.83,2.83,9.75-9.75c.38-.38.59-.88.59-1.41s-.21-1.04-.59-1.41Z\" style=\"fill: #000; stroke-width: 0px;\"/>\n</svg>`, kl = {\n add: hl,\n delete: gl,\n duplicate: yl,\n insertAbove: wl,\n insertBelow: bl,\n move: xl\n}, Ml = {\n key: 0,\n class: \"row-actions-dropdown\"\n}, Il = [\"aria-expanded\"], Tl = [\"onClick\"], Dl = [\"innerHTML\"], $l = { class: \"action-label\" }, Sl = {\n key: 1,\n class: \"row-actions-icons\"\n}, Cl = [\"title\", \"aria-label\", \"onClick\"], El = [\"innerHTML\"], tt = /* @__PURE__ */ te({\n __name: \"ARowActions\",\n props: {\n rowIndex: {},\n store: {},\n config: {},\n position: {}\n },\n emits: [\"action\"],\n setup(e, { emit: t }) {\n const l = e, n = t, a = pe(\"actionsCell\"), o = pe(\"toggleButton\"), s = C(0), u = C(!1), r = C(!1), i = C({ top: 0, left: 0 }), d = {\n add: \"Add Row\",\n delete: \"Delete Row\",\n duplicate: \"Duplicate Row\",\n insertAbove: \"Insert Above\",\n insertBelow: \"Insert Below\",\n move: \"Move Row\"\n }, m = R(() => {\n const h = [], k = l.config.actions || {}, E = [\"add\", \"delete\", \"duplicate\", \"insertAbove\", \"insertBelow\", \"move\"];\n for (const S of E) {\n const D = k[S];\n if (D === !1 || D === void 0) continue;\n let L = !0, z = d[S], H = kl[S];\n typeof D == \"object\" && (L = D.enabled !== !1, z = D.label || z, H = D.icon || H), L && h.push({ type: S, label: z, icon: H });\n }\n return h;\n }), I = R(() => {\n if (l.config.forceDropdown) return !0;\n const h = l.config.dropdownThreshold ?? 150;\n return h === 0 ? !1 : s.value > 0 && s.value < h;\n }), w = R(() => u.value ? r.value ? {\n position: \"fixed\",\n bottom: `${window.innerHeight - i.value.top}px`,\n left: `${i.value.left}px`,\n top: \"auto\"\n } : {\n position: \"fixed\",\n top: `${i.value.top}px`,\n left: `${i.value.left}px`\n } : {});\n nt(a, (h) => {\n const k = h[0];\n k && (s.value = k.contentRect.width);\n });\n const p = () => {\n u.value || v(), u.value = !u.value;\n }, v = () => {\n if (!o.value) return;\n const h = o.value.getBoundingClientRect(), k = window.innerHeight, E = m.value.length * 40 + 16, S = k - h.bottom, D = h.top;\n r.value = S < E && D > E, r.value ? i.value = {\n top: h.top,\n left: h.left\n } : i.value = {\n top: h.bottom,\n left: h.left\n };\n };\n xt(a, () => {\n u.value = !1;\n });\n const c = (h) => {\n u.value = !1;\n const k = l.config.actions?.[h];\n typeof k == \"object\" && k.handler && k.handler(l.rowIndex, l.store) === !1 || n(\"action\", h, l.rowIndex);\n };\n return (h, k) => (g(), x(\"td\", {\n ref: \"actionsCell\",\n class: de([\"atable-row-actions\", { \"sticky-column\": e.position === \"before-index\", \"dropdown-active\": u.value }])\n }, [\n I.value ? (g(), x(\"div\", Ml, [\n b(\"button\", {\n ref: \"toggleButton\",\n type: \"button\",\n class: \"row-actions-toggle\",\n \"aria-expanded\": u.value,\n \"aria-haspopup\": \"true\",\n onClick: ae(p, [\"stop\"])\n }, [...k[0] || (k[0] = [\n b(\"span\", { class: \"dropdown-icon\" }, \"⋮\", -1)\n ])], 8, Il),\n j(b(\"div\", {\n class: de([\"row-actions-menu\", { \"menu-flipped\": r.value }]),\n style: Se(w.value),\n role: \"menu\"\n }, [\n (g(!0), x(X, null, ge(m.value, (E) => (g(), x(\"button\", {\n key: E.type,\n type: \"button\",\n class: \"row-action-menu-item\",\n role: \"menuitem\",\n onClick: ae((S) => c(E.type), [\"stop\"])\n }, [\n b(\"span\", {\n class: \"action-icon\",\n innerHTML: E.icon\n }, null, 8, Dl),\n b(\"span\", $l, F(E.label), 1)\n ], 8, Tl))), 128))\n ], 6), [\n [Ce, u.value]\n ])\n ])) : (g(), x(\"div\", Sl, [\n (g(!0), x(X, null, ge(m.value, (E) => (g(), x(\"button\", {\n key: E.type,\n type: \"button\",\n class: \"row-action-btn\",\n title: E.label,\n \"aria-label\": E.label,\n onClick: ae((S) => c(E.type), [\"stop\"])\n }, [\n b(\"span\", {\n class: \"action-icon\",\n innerHTML: E.icon\n }, null, 8, El)\n ], 8, Cl))), 128))\n ]))\n ], 2));\n }\n}), Rl = [\"tabindex\"], Al = /* @__PURE__ */ te({\n __name: \"ARow\",\n props: {\n rowIndex: {},\n store: {},\n tabIndex: { default: () => -1 },\n addNavigation: { type: [Boolean, Object], default: !1 }\n },\n emits: [\"row:action\"],\n setup(e, { emit: t }) {\n const l = t, n = pe(\"rowEl\"), a = R(() => e.store.isRowVisible(e.rowIndex)), o = R(() => e.store.getRowExpandSymbol(e.rowIndex)), s = R(() => e.store.config.rowActions || { enabled: !1 }), u = R(() => s.value.enabled), r = R(() => s.value.position || \"before-index\"), i = (d, m) => {\n l(\"row:action\", d, m);\n };\n if (e.addNavigation) {\n let d = st;\n typeof e.addNavigation == \"object\" && (d = {\n ...d,\n ...e.addNavigation\n }), Vt([\n {\n selectors: n,\n handlers: d\n }\n ]);\n }\n return (d, m) => j((g(), x(\"tr\", {\n ref: \"rowEl\",\n tabindex: e.tabIndex,\n class: \"atable-row\"\n }, [\n u.value && r.value === \"before-index\" ? (g(), fe(tt, {\n key: 0,\n \"row-index\": e.rowIndex,\n store: e.store,\n config: s.value,\n position: r.value,\n onAction: i\n }, null, 8, [\"row-index\", \"store\", \"config\", \"position\"])) : N(\"\", !0),\n e.store.config.view !== \"uncounted\" ? Me(d.$slots, \"index\", { key: 1 }, () => [\n e.store.config.view === \"list\" ? (g(), x(\"td\", {\n key: 0,\n tabIndex: -1,\n class: de([\"list-index\", e.store.hasPinnedColumns ? \"sticky-index\" : \"\"])\n }, F(e.rowIndex + 1), 3)) : e.store.isTreeView ? (g(), x(\"td\", {\n key: 1,\n tabIndex: -1,\n class: de([\"tree-index\", e.store.hasPinnedColumns ? \"sticky-index\" : \"\"]),\n onClick: m[0] || (m[0] = (I) => e.store.toggleRowExpand(e.rowIndex))\n }, F(o.value), 3)) : N(\"\", !0)\n ], !0) : N(\"\", !0),\n u.value && r.value === \"after-index\" ? (g(), fe(tt, {\n key: 2,\n \"row-index\": e.rowIndex,\n store: e.store,\n config: s.value,\n position: r.value,\n onAction: i\n }, null, 8, [\"row-index\", \"store\", \"config\", \"position\"])) : N(\"\", !0),\n Me(d.$slots, \"default\", {}, void 0, !0),\n u.value && r.value === \"end\" ? (g(), fe(tt, {\n key: 3,\n \"row-index\": e.rowIndex,\n store: e.store,\n config: s.value,\n position: r.value,\n onAction: i\n }, null, 8, [\"row-index\", \"store\", \"config\", \"position\"])) : N(\"\", !0)\n ], 8, Rl)), [\n [Ce, a.value]\n ]);\n }\n}), en = /* @__PURE__ */ Pe(Al, [[\"__scopeId\", \"data-v-e7ca13d1\"]]), vt = /* @__PURE__ */ new WeakMap(), Ll = {\n mounted(e, t) {\n const l = !t.modifiers.bubble;\n let n;\n if (typeof t.value == \"function\") n = xt(e, t.value, { capture: l });\n else {\n const [a, o] = t.value;\n n = xt(e, a, Object.assign({ capture: l }, o));\n }\n vt.set(e, n);\n },\n unmounted(e) {\n const t = vt.get(e);\n t && typeof t == \"function\" ? t() : t?.stop(), vt.delete(e);\n }\n}, Hl = { mounted(e, t) {\n typeof t.value == \"function\" ? nt(e, t.value) : nt(e, ...t.value);\n} };\nfunction Vl() {\n let e = !1;\n const t = he(!1);\n return (l, n) => {\n if (t.value = n.value, e) return;\n e = !0;\n const a = jn(l, n.value);\n le(t, (o) => a.value = o);\n };\n}\nVl();\nconst Bl = { class: \"gantt-connection-overlay\" }, Fl = {\n class: \"connection-svg\",\n style: {\n position: \"absolute\",\n top: 0,\n left: 0,\n width: \"100%\",\n height: \"100%\",\n pointerEvents: \"none\",\n zIndex: 1\n }\n}, Pl = [\"d\", \"stroke-width\", \"onDblclick\"], Nl = [\"id\", \"d\", \"stroke\", \"stroke-width\", \"onDblclick\"], Zl = 0.25, Je = 16, Ol = /* @__PURE__ */ te({\n __name: \"AGanttConnection\",\n props: {\n store: {}\n },\n emits: [\"connection:delete\"],\n setup(e, { emit: t }) {\n const l = t, n = R(() => e.store.connectionPaths.filter((s) => {\n const u = e.store.ganttBars.find((i) => i.id === s.from.barId), r = e.store.ganttBars.find((i) => i.id === s.to.barId);\n return u && r;\n })), a = (s) => {\n const u = e.store.connectionHandles.find(\n (z) => z.barId === s.from.barId && z.side === s.from.side\n ), r = e.store.connectionHandles.find(\n (z) => z.barId === s.to.barId && z.side === s.to.side\n );\n if (!u || !r) return \"\";\n const i = u.position.x + Je / 2, d = u.position.y + Je / 2, m = r.position.x + Je / 2, I = r.position.y + Je / 2, w = Math.abs(m - i), p = Math.max(w * Zl, 50), v = i + (s.from.side === \"left\" ? -p : p), c = m + (s.to.side === \"left\" ? -p : p), h = { x: 0.5 * i + 0.5 * v, y: 0.5 * d + 0.5 * d }, k = { x: 0.5 * v + 0.5 * c, y: 0.5 * d + 0.5 * I }, E = { x: 0.5 * c + 0.5 * m, y: 0.5 * I + 0.5 * I }, S = { x: 0.5 * h.x + 0.5 * k.x, y: 0.5 * h.y + 0.5 * k.y }, D = { x: 0.5 * k.x + 0.5 * E.x, y: 0.5 * k.y + 0.5 * E.y }, L = { x: 0.5 * S.x + 0.5 * D.x, y: 0.5 * S.y + 0.5 * D.y };\n return `M ${i} ${d} Q ${v} ${d}, ${L.x} ${L.y} Q ${c} ${I}, ${m} ${I}`;\n }, o = (s) => {\n e.store.deleteConnection(s.id) && l(\"connection:delete\", s);\n };\n return (s, u) => (g(), x(\"div\", Bl, [\n (g(), x(\"svg\", Fl, [\n u[0] || (u[0] = b(\"defs\", null, [\n b(\"path\", {\n id: \"arrowhead\",\n d: \"M 0 -7 L 20 0 L 0 7Z\",\n stroke: \"black\",\n \"stroke-width\": \"1\",\n fill: \"currentColor\"\n }),\n b(\"marker\", {\n id: \"arrowhead-marker\",\n markerWidth: \"10\",\n markerHeight: \"7\",\n refX: \"5\",\n refY: \"3.5\",\n orient: \"auto\",\n markerUnits: \"strokeWidth\"\n }, [\n b(\"polygon\", {\n points: \"0 0, 10 3.5, 0 7\",\n fill: \"currentColor\"\n })\n ])\n ], -1)),\n (g(!0), x(X, null, ge(n.value, (r) => (g(), x(\"path\", {\n key: `${r.id}-hitbox`,\n d: a(r),\n stroke: \"transparent\",\n \"stroke-width\": (r.style?.width || 2) + 10,\n fill: \"none\",\n class: \"connection-hitbox\",\n onDblclick: (i) => o(r)\n }, null, 40, Pl))), 128)),\n (g(!0), x(X, null, ge(n.value, (r) => (g(), x(\"path\", {\n id: r.id,\n key: r.id,\n d: a(r),\n stroke: r.style?.color || \"#666\",\n \"stroke-width\": r.style?.width || 2,\n fill: \"none\",\n \"marker-mid\": \"url(#arrowhead-marker)\",\n class: \"connection-path animated-path\",\n onDblclick: (i) => o(r)\n }, null, 40, Nl))), 128))\n ]))\n ]));\n }\n}), Gl = /* @__PURE__ */ Pe(Ol, [[\"__scopeId\", \"data-v-d5929c98\"]]), Ul = { class: \"column-filter\" }, Wl = {\n key: 2,\n class: \"checkbox-filter\"\n}, ql = [\"value\"], zl = {\n key: 5,\n class: \"date-range-filter\"\n}, _l = /* @__PURE__ */ te({\n __name: \"ATableColumnFilter\",\n props: {\n column: {},\n colIndex: {},\n store: {}\n },\n setup(e) {\n const t = C(\"\"), l = Dt({\n startValue: \"\",\n endValue: \"\"\n }), n = R(() => {\n if (e.column.filterType) return e.column.filterType;\n switch (e.column.fieldtype) {\n case \"Check\":\n return \"checkbox\";\n case \"Date\":\n return \"date\";\n case \"Datetime\":\n return \"dateRange\";\n case \"Select\":\n return \"select\";\n case \"Int\":\n case \"Float\":\n case \"Currency\":\n case \"Decimal\":\n case \"Quantity\":\n return \"number\";\n default:\n return \"text\";\n }\n }), a = (i) => {\n if (i.filterOptions) return i.filterOptions;\n const d = /* @__PURE__ */ new Set();\n return e.store.rows.forEach((m) => {\n const I = m[i.name];\n I != null && I !== \"\" && d.add(I);\n }), Array.from(d).map((m) => ({\n value: m,\n label: String(m)\n }));\n }, o = R(() => !!(t.value || l.startValue || l.endValue)), s = (i) => {\n !i && n.value !== \"checkbox\" ? (e.store.clearFilter(e.colIndex), t.value = \"\") : (t.value = i, e.store.setFilter(e.colIndex, { value: i }));\n }, u = (i, d) => {\n i === \"start\" ? l.startValue = d : l.endValue = d, !l.startValue && !l.endValue ? e.store.clearFilter(e.colIndex) : e.store.setFilter(e.colIndex, {\n value: null,\n startValue: l.startValue,\n endValue: l.endValue\n });\n }, r = () => {\n t.value = \"\", l.startValue = \"\", l.endValue = \"\", e.store.clearFilter(e.colIndex);\n };\n return (i, d) => (g(), x(\"div\", Ul, [\n n.value === \"text\" ? j((g(), x(\"input\", {\n key: 0,\n \"onUpdate:modelValue\": d[0] || (d[0] = (m) => t.value = m),\n type: \"text\",\n class: \"filter-input\",\n onInput: d[1] || (d[1] = (m) => s(t.value))\n }, null, 544)), [\n [we, t.value]\n ]) : n.value === \"number\" ? j((g(), x(\"input\", {\n key: 1,\n \"onUpdate:modelValue\": d[2] || (d[2] = (m) => t.value = m),\n type: \"number\",\n class: \"filter-input\",\n onInput: d[3] || (d[3] = (m) => s(t.value))\n }, null, 544)), [\n [we, t.value]\n ]) : n.value === \"checkbox\" ? (g(), x(\"label\", Wl, [\n j(b(\"input\", {\n \"onUpdate:modelValue\": d[4] || (d[4] = (m) => t.value = m),\n type: \"checkbox\",\n class: \"filter-checkbox\",\n onChange: d[5] || (d[5] = (m) => s(t.value))\n }, null, 544), [\n [_t, t.value]\n ]),\n b(\"span\", null, F(e.column.label), 1)\n ])) : n.value === \"select\" ? j((g(), x(\"select\", {\n key: 3,\n \"onUpdate:modelValue\": d[6] || (d[6] = (m) => t.value = m),\n class: \"filter-select\",\n onChange: d[7] || (d[7] = (m) => s(t.value))\n }, [\n d[15] || (d[15] = b(\"option\", { value: \"\" }, \"All\", -1)),\n (g(!0), x(X, null, ge(a(e.column), (m) => (g(), x(\"option\", {\n key: m.value || m,\n value: m.value || m\n }, F(m.label || m), 9, ql))), 128))\n ], 544)), [\n [Yt, t.value]\n ]) : n.value === \"date\" ? j((g(), x(\"input\", {\n key: 4,\n \"onUpdate:modelValue\": d[8] || (d[8] = (m) => t.value = m),\n type: \"date\",\n class: \"filter-input\",\n onChange: d[9] || (d[9] = (m) => s(t.value))\n }, null, 544)), [\n [we, t.value]\n ]) : n.value === \"dateRange\" ? (g(), x(\"div\", zl, [\n j(b(\"input\", {\n \"onUpdate:modelValue\": d[10] || (d[10] = (m) => l.startValue = m),\n type: \"date\",\n class: \"filter-input\",\n onChange: d[11] || (d[11] = (m) => u(\"start\", l.startValue))\n }, null, 544), [\n [we, l.startValue]\n ]),\n d[16] || (d[16] = b(\"span\", { class: \"date-separator\" }, \"-\", -1)),\n j(b(\"input\", {\n \"onUpdate:modelValue\": d[12] || (d[12] = (m) => l.endValue = m),\n type: \"date\",\n class: \"filter-input\",\n onChange: d[13] || (d[13] = (m) => u(\"end\", l.endValue))\n }, null, 544), [\n [we, l.endValue]\n ])\n ])) : n.value === \"component\" && e.column.filterComponent ? (g(), fe(Ge(e.column.filterComponent), {\n key: 6,\n value: t.value,\n column: e.column,\n \"col-index\": e.colIndex,\n store: e.store,\n \"onUpdate:value\": d[14] || (d[14] = (m) => s(m))\n }, null, 40, [\"value\", \"column\", \"col-index\", \"store\"])) : N(\"\", !0),\n o.value ? (g(), x(\"button\", {\n key: 7,\n class: \"clear-btn\",\n title: \"Clear\",\n onClick: r\n }, \"×\")) : N(\"\", !0)\n ]));\n }\n}), Yl = /* @__PURE__ */ Pe(_l, [[\"__scopeId\", \"data-v-e0efa4a9\"]]), Xl = { key: 0 }, Kl = {\n class: \"atable-header-row\",\n tabindex: \"-1\"\n}, jl = {\n key: 2,\n class: \"row-actions-header\"\n}, Jl = [\"data-colindex\", \"onClick\"], Ql = {\n key: 3,\n class: \"row-actions-header\"\n}, eo = {\n key: 0,\n class: \"atable-filters-row\"\n}, to = {\n key: 2,\n class: \"row-actions-header\"\n}, no = {\n key: 3,\n class: \"row-actions-header\"\n}, tn = /* @__PURE__ */ te({\n __name: \"ATableHeader\",\n props: {\n columns: {},\n store: {}\n },\n setup(e) {\n const t = R(() => e.columns.filter((s) => s.filterable)), l = R(() => e.store.config.rowActions?.enabled ?? !1), n = R(() => e.store.config.rowActions?.position ?? \"before-index\"), a = (s) => e.store.sortByColumn(s), o = (s) => {\n for (const u of s) {\n if (u.borderBoxSize.length === 0) continue;\n const r = u.borderBoxSize[0].inlineSize, i = Number(u.target.dataset.colindex), d = e.store.columns[i]?.width;\n typeof d == \"number\" && d !== r && e.store.resizeColumn(i, r);\n }\n };\n return (s, u) => e.columns.length ? (g(), x(\"thead\", Xl, [\n b(\"tr\", Kl, [\n l.value && n.value === \"before-index\" ? (g(), x(\"th\", {\n key: 0,\n class: de([\"row-actions-header\", { \"sticky-column\": n.value === \"before-index\" }])\n }, null, 2)) : N(\"\", !0),\n e.store.zeroColumn ? (g(), x(\"th\", {\n key: 1,\n id: \"header-index\",\n class: de([[\n e.store.hasPinnedColumns ? \"sticky-index\" : \"\",\n e.store.isTreeView ? \"tree-index\" : \"\",\n e.store.config.view === \"list-expansion\" ? \"list-expansion-index\" : \"\"\n ], \"list-index\"])\n }, null, 2)) : N(\"\", !0),\n l.value && n.value === \"after-index\" ? (g(), x(\"th\", jl)) : N(\"\", !0),\n (g(!0), x(X, null, ge(e.columns, (r, i) => j((g(), x(\"th\", {\n key: r.name,\n \"data-colindex\": i,\n tabindex: \"-1\",\n style: Se(e.store.getHeaderCellStyle(r)),\n class: de(`${r.pinned ? \"sticky-column\" : \"\"} ${r.sortable === !1 ? \"\" : \"cursor-pointer\"}`),\n onClick: (d) => r.sortable !== !1 ? a(i) : void 0\n }, [\n Me(s.$slots, \"default\", {}, () => [\n Mt(F(r.label || String.fromCharCode(i + 97).toUpperCase()), 1)\n ])\n ], 14, Jl)), [\n [B(Hl), o]\n ])), 128)),\n l.value && n.value === \"end\" ? (g(), x(\"th\", Ql)) : N(\"\", !0)\n ]),\n t.value.length > 0 ? (g(), x(\"tr\", eo, [\n l.value && n.value === \"before-index\" ? (g(), x(\"th\", {\n key: 0,\n class: de([\"row-actions-header\", { \"sticky-column\": n.value === \"before-index\" }])\n }, null, 2)) : N(\"\", !0),\n e.store.zeroColumn ? (g(), x(\"th\", {\n key: 1,\n class: de([[\n e.store.hasPinnedColumns ? \"sticky-index\" : \"\",\n e.store.isTreeView ? \"tree-index\" : \"\",\n e.store.config.view === \"list-expansion\" ? \"list-expansion-index\" : \"\"\n ], \"list-index\"])\n }, null, 2)) : N(\"\", !0),\n l.value && n.value === \"after-index\" ? (g(), x(\"th\", to)) : N(\"\", !0),\n (g(!0), x(X, null, ge(e.columns, (r, i) => (g(), x(\"th\", {\n key: `filter-${r.name}`,\n class: de(`${r.pinned ? \"sticky-column\" : \"\"}`),\n style: Se(e.store.getHeaderCellStyle(r))\n }, [\n r.filterable ? (g(), fe(Yl, {\n key: 0,\n column: r,\n \"col-index\": i,\n store: e.store\n }, null, 8, [\"column\", \"col-index\", \"store\"])) : N(\"\", !0)\n ], 6))), 128)),\n l.value && n.value === \"end\" ? (g(), x(\"th\", no)) : N(\"\", !0)\n ])) : N(\"\", !0)\n ])) : N(\"\", !0);\n }\n}), nn = /* @__PURE__ */ te({\n __name: \"ATableModal\",\n props: {\n store: {}\n },\n setup(e) {\n const t = pe(\"amodal\"), { width: l, height: n } = Ze(t), a = R(() => {\n if (!(e.store.modal.height && e.store.modal.width && e.store.modal.left && e.store.modal.bottom)) return {};\n const o = e.store.modal.cell?.closest(\"table\");\n if (!o) return {};\n const s = o.offsetHeight || 0, u = o.offsetWidth || 0;\n let r = e.store.modal.cell?.offsetTop || 0;\n const i = o.querySelector(\"thead\")?.offsetHeight || 0;\n r += i, r = r + n.value < s ? r : r - (n.value + e.store.modal.height);\n let d = e.store.modal.cell?.offsetLeft || 0;\n return d = d + l.value <= u ? d : d - (l.value - e.store.modal.width), {\n left: `${d}px`,\n top: `${r}px`\n };\n });\n return (o, s) => (g(), x(\"div\", {\n ref: \"amodal\",\n class: \"amodal\",\n tabindex: \"-1\",\n style: Se(a.value),\n onClick: s[0] || (s[0] = ae(() => {\n }, [\"stop\"])),\n onInput: s[1] || (s[1] = ae(() => {\n }, [\"stop\"]))\n }, [\n Me(o.$slots, \"default\")\n ], 36));\n }\n});\nfunction ln(e, t) {\n const l = t[e];\n if (l.isRoot || l.parent === null || l.parent === void 0)\n return !0;\n const n = l.parent;\n return n < 0 || n >= t.length ? !1 : (t[n].childrenOpen || !1) && ln(n, t);\n}\nfunction lo(e, t, l) {\n const n = l.filterType || \"text\", a = t.value;\n if (!a && n !== \"dateRange\" && n !== \"checkbox\") return !0;\n switch (n) {\n case \"text\":\n return (typeof e == \"object\" && e !== null ? Object.values(e).join(\" \") : String(e || \"\")).toLowerCase().includes(String(a).toLowerCase());\n case \"number\": {\n const o = Number(e), s = Number(a);\n return !isNaN(o) && !isNaN(s) && o === s;\n }\n case \"select\":\n return e === a;\n case \"checkbox\":\n return a === !0 ? !!e : !0;\n case \"date\": {\n let o;\n if (typeof e == \"number\") {\n const u = new Date(e), r = (/* @__PURE__ */ new Date()).getFullYear();\n o = new Date(r, u.getMonth(), u.getDate());\n } else\n o = new Date(String(e));\n const s = new Date(String(a));\n return o.toDateString() === s.toDateString();\n }\n case \"dateRange\": {\n const o = t.startValue, s = t.endValue;\n if (!o && !s) return !0;\n let u;\n if (typeof e == \"number\") {\n const r = new Date(e), i = (/* @__PURE__ */ new Date()).getFullYear();\n u = new Date(i, r.getMonth(), r.getDate());\n } else\n u = new Date(String(e));\n return !(o && u < new Date(String(o)) || s && u > new Date(String(s)));\n }\n default:\n return !0;\n }\n}\nfunction oo(e, t) {\n return t && e === 0 && t > 0 ? `${t}ch` : \"inherit\";\n}\nconst ao = (e) => {\n const t = e.id || Qn(), l = e.linkResolver ?? null;\n return yn(`table-${t}`, () => {\n const n = () => {\n const f = [Object.assign({}, { rowModified: !1 })], y = /* @__PURE__ */ new Set();\n for (let G = 0; G < o.value.length; G++) {\n const W = o.value[G];\n W.parent !== null && W.parent !== void 0 && y.add(W.parent);\n }\n const $ = (G) => o.value[G]?.gantt !== void 0, q = (G) => {\n for (let W = 0; W < o.value.length; W++)\n if (o.value[W].parent === G && ($(W) || q(W)))\n return !0;\n return !1;\n }, Q = (G) => {\n const W = s.value, ee = W.view === \"tree\" || W.view === \"tree-gantt\" ? W.defaultTreeExpansion : void 0;\n if (!ee) return !0;\n switch (ee) {\n case \"root\":\n return !1;\n // Only root nodes are visible, all children start collapsed\n case \"branch\":\n return q(G);\n case \"leaf\":\n return !0;\n // All nodes should be expanded\n default:\n return !0;\n }\n };\n for (let G = 0; G < o.value.length; G++) {\n const W = o.value[G], ee = W.parent === null || W.parent === void 0, ye = y.has(G);\n f[G] = {\n childrenOpen: Q(G),\n expanded: !1,\n indent: W.indent || 0,\n isParent: ye,\n isRoot: ee,\n rowModified: !1,\n open: ee,\n // This will be recalculated later for non-root nodes\n parent: W.parent\n };\n }\n return f;\n }, a = C(e.columns), o = C(e.rows), s = C(e.config || {}), u = C({}), r = C({}), i = R(() => {\n const f = {};\n for (const [y, $] of a.value.entries())\n for (const [q, Q] of o.value.entries())\n f[`${y}:${q}`] = Q[$.name];\n return f;\n }), d = R({\n get: () => {\n const f = n();\n for (let y = 0; y < f.length; y++)\n u.value[y] && (f[y].rowModified = u.value[y]), r.value[y] && (r.value[y].childrenOpen !== void 0 && (f[y].childrenOpen = r.value[y].childrenOpen), r.value[y].expanded !== void 0 && (f[y].expanded = r.value[y].expanded));\n if (S.value)\n for (let y = 0; y < f.length; y++)\n f[y].isRoot || (f[y].open = ln(y, f));\n return f;\n },\n set: (f) => {\n JSON.stringify(f) !== JSON.stringify(d.value) && (d.value = f);\n }\n }), m = C(e.modal || { visible: !1 }), I = C({}), w = C([]), p = C([]), v = C([]), c = C({\n column: null,\n direction: null\n }), h = C({}), k = R(() => a.value.some((f) => f.pinned)), E = R(() => s.value.view === \"gantt\" || s.value.view === \"tree-gantt\"), S = R(() => s.value.view === \"tree\" || s.value.view === \"tree-gantt\"), D = R(() => {\n const f = s.value;\n return f.view === \"gantt\" || f.view === \"tree-gantt\" ? f.dependencyGraph !== !1 : !0;\n }), L = R(() => `${Math.ceil(o.value.length / 100 + 1)}ch`), z = R(\n () => s.value.view ? [\"list\", \"tree\", \"tree-gantt\", \"list-expansion\"].includes(s.value.view) : !1\n ), H = R(() => {\n let f = o.value.map((y, $) => ({\n ...y,\n originalIndex: $\n }));\n if (Object.entries(h.value).forEach(([y, $]) => {\n const q = parseInt(y), Q = a.value[q];\n !Q || !($.value || $.startValue || $.endValue || Q.filterType === \"checkbox\" && $.value !== void 0) || (f = f.filter((G) => {\n const W = G[Q.name];\n return lo(W, $, Q);\n }));\n }), c.value.column !== null && c.value.direction) {\n const y = a.value[c.value.column], $ = c.value.direction;\n f.sort((q, Q) => {\n let G = q[y.name], W = Q[y.name];\n G == null && (G = \"\"), W == null && (W = \"\");\n const ee = Number(G), ye = Number(W);\n if (!isNaN(ee) && !isNaN(ye) && G !== \"\" && W !== \"\")\n return $ === \"asc\" ? ee - ye : ye - ee;\n {\n const Ft = String(G).toLowerCase(), Pt = String(W).toLowerCase();\n return $ === \"asc\" ? Ft.localeCompare(Pt) : Pt.localeCompare(Ft);\n }\n });\n }\n return f;\n }), Z = (f, y) => i.value[`${f}:${y}`], _ = (f, y, $) => {\n const q = `${f}:${y}`, Q = a.value[f];\n i.value[q] !== $ && (u.value[y] = !0), i.value[q] = $, o.value[y] = {\n ...o.value[y],\n [Q.name]: $\n };\n }, J = (f) => {\n o.value = f;\n }, ne = (f, y, $) => {\n const q = `${f}:${y}`;\n i.value[q] !== $ && (u.value[y] = !0, I.value[q] = $);\n }, se = (f) => {\n const y = a.value.indexOf(f) === a.value.length - 1, $ = s.value.fullWidth ? f.resizable && !y : f.resizable;\n return {\n width: f.width || \"40ch\",\n textAlign: f.align || \"center\",\n ...$ && {\n resize: \"horizontal\",\n overflow: \"hidden\",\n whiteSpace: \"nowrap\"\n }\n };\n }, Ie = (f, y) => {\n if (f < 0 || f >= a.value.length) return;\n const $ = Math.max(y, 40);\n a.value[f] = {\n ...a.value[f],\n width: `${$}px`\n };\n }, be = (f) => {\n const y = o.value[f];\n return E.value && y.gantt !== void 0;\n }, He = (f) => !S.value || d.value[f].isRoot || d.value[f].open, Ne = (f) => !S.value && s.value.view !== \"list-expansion\" ? \"\" : S.value && (d.value[f].isRoot || d.value[f].isParent) ? d.value[f].childrenOpen ? \"▼\" : \"►\" : s.value.view === \"list-expansion\" ? d.value[f].expanded ? \"▼\" : \"►\" : \"\", me = (f) => {\n if (S.value) {\n const y = r.value[f] || {}, $ = !(y.childrenOpen ?? d.value[f].childrenOpen);\n r.value[f] = {\n ...y,\n childrenOpen: $\n }, $ || De(f);\n } else if (s.value.view === \"list-expansion\") {\n const y = r.value[f] || {}, $ = y.expanded ?? d.value[f].expanded;\n r.value[f] = {\n ...y,\n expanded: !$\n };\n }\n }, De = (f) => {\n for (let y = 0; y < o.value.length; y++)\n if (d.value[y].parent === f) {\n const $ = r.value[y] || {};\n r.value[y] = {\n ...$,\n childrenOpen: !1\n }, De(y);\n }\n }, Ve = (f, y) => {\n const $ = Z(f, y);\n return M(f, y, $);\n }, M = (f, y, $) => {\n const q = a.value[f], Q = o.value[y], G = q.format;\n if (!G)\n switch (q.fieldtype) {\n case \"Check\":\n return $ ? \"✓\" : \"✗\";\n case \"Date\":\n return $ != null ? new Date(String($)).toLocaleDateString() : $;\n case \"Datetime\":\n return $ != null ? new Date(String($)).toLocaleString() : $;\n default:\n return $;\n }\n return typeof G == \"function\" ? G($, { table: i.value, row: Q, column: q }) : typeof G == \"string\" ? Function(`\"use strict\";return (${G})`)()($, { table: i.value, row: Q, column: q }) : $;\n }, T = (f) => {\n f.target instanceof Node && m.value.parent?.contains(f.target) || m.value.visible && (m.value.visible = !1);\n }, V = (f) => {\n const y = o.value[f.rowIndex]?.gantt;\n y && (f.type === \"resize\" ? f.edge === \"start\" ? (y.startIndex = f.newStart, y.endIndex = f.end, y.colspan = y.endIndex - y.startIndex) : f.edge === \"end\" && (y.startIndex = f.start, y.endIndex = f.newEnd, y.colspan = y.endIndex - y.startIndex) : f.type === \"bar\" && (y.startIndex = f.newStart, y.endIndex = f.newEnd, y.colspan = y.endIndex - y.startIndex));\n }, U = (f) => {\n const y = w.value.findIndex(($) => $.id === f.id);\n y >= 0 ? w.value[y] = f : w.value.push(f);\n }, Y = (f) => {\n const y = w.value.findIndex(($) => $.id === f);\n y >= 0 && w.value.splice(y, 1);\n }, ve = (f) => {\n const y = p.value.findIndex(($) => $.id === f.id);\n y >= 0 ? p.value[y] = f : p.value.push(f);\n }, Ee = (f) => {\n const y = p.value.findIndex(($) => $.id === f);\n y >= 0 && p.value.splice(y, 1);\n }, Be = (f, y, $) => {\n const q = p.value.find((W) => W.id === f), Q = p.value.find((W) => W.id === y);\n if (!q || !Q)\n return console.warn(\"Cannot create connection: handle not found\"), null;\n const G = {\n id: `connection-${f}-${y}`,\n from: {\n barId: q.barId,\n side: q.side\n },\n to: {\n barId: Q.barId,\n side: Q.side\n },\n style: $?.style,\n label: $?.label\n };\n return v.value.push(G), G;\n }, P = (f) => {\n const y = v.value.findIndex(($) => $.id === f);\n return y >= 0 ? (v.value.splice(y, 1), !0) : !1;\n }, O = (f) => v.value.filter((y) => y.from.barId === f || y.to.barId === f), K = (f) => p.value.filter((y) => y.barId === f), oe = (f) => {\n if (a.value[f].sortable === !1) return;\n let y;\n c.value.column === f && c.value.direction === \"asc\" ? y = \"desc\" : y = \"asc\", c.value.column = f, c.value.direction = y;\n }, ie = (f, y) => {\n !y.value && !y.startValue && !y.endValue ? delete h.value[f] : h.value[f] = y;\n }, re = (f) => {\n delete h.value[f];\n }, ue = (f, y = \"end\") => {\n const $ = {};\n for (const Q of a.value)\n $[Q.name] = \"\";\n f && Object.assign($, f);\n let q;\n return y === \"start\" ? (q = 0, o.value.unshift($)) : y === \"end\" ? (q = o.value.length, o.value.push($)) : (q = Math.max(0, Math.min(y, o.value.length)), o.value.splice(q, 0, $)), q;\n };\n return {\n // state\n columns: a,\n config: s,\n connectionHandles: p,\n connectionPaths: v,\n display: d,\n filterState: h,\n ganttBars: w,\n modal: m,\n rows: o,\n sortState: c,\n table: i,\n updates: I,\n // getters\n filteredRows: H,\n hasPinnedColumns: k,\n isGanttView: E,\n isTreeView: S,\n isDependencyGraphEnabled: D,\n numberedRowWidth: L,\n zeroColumn: z,\n // resolver\n linkResolver: l,\n // actions\n addRow: ue,\n clearFilter: re,\n closeModal: T,\n createConnection: Be,\n deleteConnection: P,\n deleteRow: (f) => {\n if (f < 0 || f >= o.value.length)\n return null;\n const [y] = o.value.splice(f, 1);\n delete u.value[f], delete r.value[f];\n const $ = {}, q = {};\n for (const [Q, G] of Object.entries(u.value)) {\n const W = parseInt(Q);\n W > f ? $[W - 1] = G : $[W] = G;\n }\n for (const [Q, G] of Object.entries(r.value)) {\n const W = parseInt(Q);\n W > f ? q[W - 1] = G : q[W] = G;\n }\n return u.value = $, r.value = q, y;\n },\n duplicateRow: (f) => {\n if (f < 0 || f >= o.value.length)\n return -1;\n const y = o.value[f], $ = JSON.parse(JSON.stringify(y)), q = f + 1;\n return o.value.splice(q, 0, $), q;\n },\n getCellData: Z,\n getCellDisplayValue: Ve,\n getConnectionsForBar: O,\n getFormattedValue: M,\n getHandlesForBar: K,\n getHeaderCellStyle: se,\n getIndent: oo,\n getRowExpandSymbol: Ne,\n insertRowAbove: (f, y) => {\n const $ = Math.max(0, f);\n return ue(y, $);\n },\n insertRowBelow: (f, y) => {\n const $ = Math.min(f + 1, o.value.length);\n return ue(y, $);\n },\n isRowGantt: be,\n isRowVisible: He,\n moveRow: (f, y) => {\n if (f < 0 || f >= o.value.length || y < 0 || y >= o.value.length || f === y)\n return !1;\n const [$] = o.value.splice(f, 1);\n o.value.splice(y, 0, $);\n const q = {}, Q = {};\n for (const [G, W] of Object.entries(u.value)) {\n const ee = parseInt(G);\n let ye = ee;\n ee === f ? ye = y : f < y ? ee > f && ee <= y && (ye = ee - 1) : ee >= y && ee < f && (ye = ee + 1), q[ye] = W;\n }\n for (const [G, W] of Object.entries(r.value)) {\n const ee = parseInt(G);\n let ye = ee;\n ee === f ? ye = y : f < y ? ee > f && ee <= y && (ye = ee - 1) : ee >= y && ee < f && (ye = ee + 1), Q[ye] = W;\n }\n return u.value = q, r.value = Q, !0;\n },\n registerConnectionHandle: ve,\n registerGanttBar: U,\n resizeColumn: Ie,\n setCellData: _,\n setCellText: ne,\n setFilter: ie,\n sortByColumn: oe,\n toggleRowExpand: me,\n unregisterConnectionHandle: Ee,\n unregisterGanttBar: Y,\n updateGanttBar: V,\n updateRows: J\n };\n })();\n};\nfunction so(e) {\n return e.filter((t) => !t.hidden && t.fieldtype).map(({ fieldname: t, hidden: l, ...n }) => {\n const a = Object.assign({ name: t }, n);\n if (n.fieldtype === \"Link\" && !n.cellComponent) {\n const o = n, s = typeof o.doctype == \"string\" ? o.doctype : void 0;\n s && (a.linkDoctype = s), n.format || (a.format = (u) => {\n if (u == null) return \"\";\n if (typeof u == \"object\") {\n const r = u.displayText ?? u.id ?? \"\";\n return typeof r == \"string\" || typeof r == \"number\" ? String(r) : \"\";\n }\n return String(u);\n });\n }\n return a;\n });\n}\nconst ro = {\n class: \"atable-container\",\n style: { position: \"relative\" }\n}, io = /* @__PURE__ */ te({\n __name: \"ATable\",\n props: /* @__PURE__ */ xe({\n id: { default: \"\" },\n config: { default: () => new Object() },\n schema: { default: () => [] },\n linkResolver: { type: Function, default: void 0 }\n }, {\n rows: { required: !0 },\n rowsModifiers: {},\n columns: {},\n columnsModifiers: {}\n }),\n emits: /* @__PURE__ */ xe([\"cellUpdate\", \"gantt:drag\", \"connection:event\", \"columns:update\", \"row:add\", \"row:delete\", \"row:duplicate\", \"row:insert-above\", \"row:insert-below\", \"row:move\"], [\"update:rows\", \"update:columns\"]),\n setup(e, { expose: t, emit: l }) {\n const n = Te(e, \"rows\"), a = Te(e, \"columns\"), o = l, s = pe(\"table\"), u = a.value?.length ? a.value : so(e.schema ?? []), r = yt(\"aformLinkResolver\", null), i = ao({\n columns: u,\n rows: n.value,\n id: e.id,\n config: e.config,\n linkResolver: e.linkResolver ?? r\n });\n i.$onAction(({ name: c, store: h, args: k, after: E }) => {\n if (c === \"setCellData\" || c === \"setCellText\") {\n const [S, D, L] = k, z = h.getCellData(S, D);\n E(() => {\n n.value = [...i.rows], o(\"cellUpdate\", { colIndex: S, rowIndex: D, newValue: L, oldValue: z });\n });\n } else if (c === \"updateGanttBar\") {\n const [S] = k;\n let D = !1;\n S.type === \"resize\" ? D = S.oldColspan !== S.newColspan : S.type === \"bar\" && (D = S.oldStart !== S.newStart || S.oldEnd !== S.newEnd), D && E(() => {\n o(\"gantt:drag\", S);\n });\n } else c === \"resizeColumn\" && E(() => {\n a.value = [...i.columns], o(\"columns:update\", [...i.columns]);\n });\n }), le(\n () => n.value,\n (c) => {\n JSON.stringify(c) !== JSON.stringify(i.rows) && (i.rows = [...c]);\n },\n { deep: !0 }\n ), le(\n a,\n (c) => {\n JSON.stringify(c) !== JSON.stringify(i.columns) && (i.columns = [...c], o(\"columns:update\", [...c]));\n },\n { deep: !0 }\n ), Re(() => {\n a.value?.some((c) => c.pinned) && (m(), i.isTreeView && Qt(s, m, { childList: !0, subtree: !0 }));\n });\n const d = R(() => i.columns.filter((c) => c.pinned).length), m = () => {\n const c = s.value, h = c?.rows[0], k = c?.rows[1], E = h ? Array.from(h.cells) : [];\n for (const [S, D] of E.entries()) {\n const L = k?.cells[S];\n L && (D.style.width = `${L.offsetWidth}px`);\n }\n for (const S of c?.rows || []) {\n let D = 0;\n const L = [];\n for (const z of S.cells)\n (z.classList.contains(\"sticky-column\") || z.classList.contains(\"sticky-index\")) && (z.style.left = `${D}px`, D += z.offsetWidth, L.push(z));\n L.length > 0 && L[L.length - 1].classList.add(\"sticky-column-edge\");\n }\n };\n window.addEventListener(\"keydown\", (c) => {\n if (c.key === \"Escape\" && i.modal.visible) {\n i.modal.visible = !1;\n const h = i.modal.parent;\n h && at().then(() => h.focus());\n }\n });\n const I = (c) => {\n if (!c.gantt || d.value === 0)\n return i.columns;\n const h = [];\n for (let k = 0; k < d.value; k++) {\n const E = { ...i.columns[k] };\n E.originalIndex = k, h.push(E);\n }\n return h.push({\n ...i.columns[d.value],\n isGantt: !0,\n colspan: c.gantt?.colspan || i.columns.length - d.value,\n originalIndex: d.value,\n width: \"auto\"\n // TODO: refactor to API that can detect when data exists in a cell. Might have be custom and not generalizable\n }), h;\n }, w = (c) => {\n o(\"connection:event\", { type: \"create\", connection: c });\n }, p = (c) => {\n o(\"connection:event\", { type: \"delete\", connection: c });\n }, v = (c, h) => {\n switch (c) {\n case \"add\": {\n const k = i.addRow({}, h + 1), E = i.rows[k];\n n.value = [...i.rows], o(\"row:add\", { rowIndex: k, row: E });\n break;\n }\n case \"delete\": {\n const k = i.deleteRow(h);\n k && (n.value = [...i.rows], o(\"row:delete\", { rowIndex: h, row: k }));\n break;\n }\n case \"duplicate\": {\n const k = i.duplicateRow(h);\n if (k >= 0) {\n const E = i.rows[k];\n n.value = [...i.rows], o(\"row:duplicate\", { sourceIndex: h, newIndex: k, row: E });\n }\n break;\n }\n case \"insertAbove\": {\n const k = i.insertRowAbove(h), E = i.rows[k];\n n.value = [...i.rows], o(\"row:insert-above\", { targetIndex: h, newIndex: k, row: E });\n break;\n }\n case \"insertBelow\": {\n const k = i.insertRowBelow(h), E = i.rows[k];\n n.value = [...i.rows], o(\"row:insert-below\", { targetIndex: h, newIndex: k, row: E });\n break;\n }\n case \"move\": {\n o(\"row:move\", { fromIndex: h, toIndex: -1 });\n break;\n }\n }\n };\n return t({\n store: i,\n createConnection: i.createConnection,\n deleteConnection: i.deleteConnection,\n getConnectionsForBar: i.getConnectionsForBar,\n getHandlesForBar: i.getHandlesForBar,\n // Row action methods\n addRow: i.addRow,\n deleteRow: i.deleteRow,\n duplicateRow: i.duplicateRow,\n insertRowAbove: i.insertRowAbove,\n insertRowBelow: i.insertRowBelow,\n moveRow: i.moveRow\n }), (c, h) => (g(), x(\"div\", ro, [\n j((g(), x(\"table\", {\n ref: \"table\",\n class: \"atable\",\n style: Se({\n width: B(i).config.fullWidth ? \"100%\" : \"auto\"\n })\n }, [\n Me(c.$slots, \"header\", { data: B(i) }, () => [\n _e(tn, {\n columns: B(i).columns,\n store: B(i)\n }, null, 8, [\"columns\", \"store\"])\n ], !0),\n b(\"tbody\", null, [\n Me(c.$slots, \"body\", { data: B(i) }, () => [\n (g(!0), x(X, null, ge(B(i).filteredRows, (k, E) => (g(), fe(en, {\n key: `${k.originalIndex}-${E}`,\n row: k,\n \"row-index\": k.originalIndex,\n store: B(i),\n \"onRow:action\": v\n }, {\n default: wt(() => [\n (g(!0), x(X, null, ge(I(k), (S, D) => (g(), x(X, {\n key: S.name\n }, [\n S.isGantt ? (g(), fe(Ge(S.ganttComponent || \"AGanttCell\"), {\n key: 0,\n store: B(i),\n \"columns-count\": B(i).columns.length - d.value,\n color: k.gantt?.color,\n start: k.gantt?.startIndex,\n end: k.gantt?.endIndex,\n colspan: S.colspan,\n pinned: S.pinned,\n \"row-index\": k.originalIndex,\n \"col-index\": S.originalIndex ?? D,\n style: Se({\n textAlign: S?.align || \"center\",\n minWidth: S?.width || \"40ch\",\n width: B(i).config.fullWidth ? \"auto\" : null\n }),\n \"onConnection:create\": w\n }, null, 40, [\"store\", \"columns-count\", \"color\", \"start\", \"end\", \"colspan\", \"pinned\", \"row-index\", \"col-index\", \"style\"])) : (g(), fe(Ge(S.cellComponent || \"ACell\"), {\n key: 1,\n store: B(i),\n pinned: S.pinned,\n \"row-index\": k.originalIndex,\n \"col-index\": D,\n style: Se({\n textAlign: S?.align || \"center\",\n width: B(i).config.fullWidth ? \"auto\" : null\n }),\n spellcheck: \"false\"\n }, null, 8, [\"store\", \"pinned\", \"row-index\", \"col-index\", \"style\"]))\n ], 64))), 128))\n ]),\n _: 2\n }, 1032, [\"row\", \"row-index\", \"store\"]))), 128))\n ], !0)\n ]),\n Me(c.$slots, \"footer\", { data: B(i) }, void 0, !0),\n Me(c.$slots, \"modal\", { data: B(i) }, () => [\n j(_e(nn, { store: B(i) }, {\n default: wt(() => [\n (g(), fe(Ge(B(i).modal.component), ot({\n key: `${B(i).modal.rowIndex}:${B(i).modal.colIndex}`,\n \"col-index\": B(i).modal.colIndex,\n \"row-index\": B(i).modal.rowIndex,\n store: B(i)\n }, B(i).modal.componentProps), null, 16, [\"col-index\", \"row-index\", \"store\"]))\n ]),\n _: 1\n }, 8, [\"store\"]), [\n [Ce, B(i).modal.visible]\n ])\n ], !0)\n ], 4)), [\n [B(Ll), B(i).closeModal]\n ]),\n B(i).isGanttView && B(i).isDependencyGraphEnabled ? (g(), fe(Gl, {\n key: 0,\n store: B(i),\n \"onConnection:delete\": p\n }, null, 8, [\"store\"])) : N(\"\", !0)\n ]));\n }\n}), uo = /* @__PURE__ */ Pe(io, [[\"__scopeId\", \"data-v-402a86ad\"]]), co = {}, vo = { class: \"aloading\" }, fo = { class: \"aloading-header\" };\nfunction mo(e, t) {\n return g(), x(\"div\", vo, [\n b(\"h2\", fo, [\n Me(e.$slots, \"default\", {}, void 0, !0)\n ]),\n t[0] || (t[0] = b(\"div\", { class: \"aloading-bar\" }, null, -1))\n ]);\n}\nconst po = /* @__PURE__ */ Pe(co, [[\"render\", mo], [\"__scopeId\", \"data-v-a930a25b\"]]), ho = {}, go = { class: \"aloading\" }, yo = { class: \"aloading-header\" };\nfunction wo(e, t) {\n return g(), x(\"div\", go, [\n b(\"h2\", yo, [\n Me(e.$slots, \"default\", {}, void 0, !0)\n ]),\n t[0] || (t[0] = b(\"div\", { class: \"aloading-bar\" }, null, -1))\n ]);\n}\nconst bo = /* @__PURE__ */ Pe(ho, [[\"render\", wo], [\"__scopeId\", \"data-v-e1165876\"]]);\nfunction xo(e) {\n e.component(\"ACell\", ll), e.component(\"AExpansionRow\", il), e.component(\"AGanttCell\", pl), e.component(\"ARow\", en), e.component(\"ARowActions\", tt), e.component(\"ATable\", uo), e.component(\"ATableHeader\", tn), e.component(\"ATableLoading\", po), e.component(\"ATableLoadingBar\", bo), e.component(\"ATableModal\", nn);\n}\nconst ko = { class: \"aform_form-element\" }, Mo = { class: \"aform_field-label\" }, Io = { class: \"aform_display-value\" }, To = [\"for\"], Do = { class: \"aform_checkbox-container aform_input-field\" }, $o = [\"id\", \"disabled\", \"required\"], So = [\"innerHTML\"], Co = /* @__PURE__ */ te({\n __name: \"ACheckbox\",\n props: /* @__PURE__ */ xe({\n schema: {},\n label: {},\n selectRange: { type: Boolean },\n mask: {},\n required: { type: Boolean },\n mode: {},\n uuid: {},\n validation: { default: () => ({ errorMessage: \"&nbsp;\" }) }\n }, {\n modelValue: { type: [Boolean, String, Array, Set] },\n modelModifiers: {}\n }),\n emits: [\"update:modelValue\"],\n setup(e) {\n const t = Te(e, \"modelValue\");\n return (l, n) => (g(), x(\"div\", ko, [\n e.mode === \"display\" ? (g(), x(X, { key: 0 }, [\n b(\"label\", Mo, F(e.label), 1),\n b(\"span\", Io, F(t.value ? \"✓\" : \"✗\"), 1)\n ], 64)) : (g(), x(X, { key: 1 }, [\n b(\"label\", {\n class: \"aform_field-label\",\n for: e.uuid\n }, F(e.label), 9, To),\n b(\"span\", Do, [\n j(b(\"input\", {\n id: e.uuid,\n \"onUpdate:modelValue\": n[0] || (n[0] = (a) => t.value = a),\n type: \"checkbox\",\n class: \"aform_checkbox\",\n disabled: e.mode === \"read\",\n required: e.required\n }, null, 8, $o), [\n [_t, t.value]\n ])\n ]),\n j(b(\"p\", {\n class: \"aform_error\",\n innerHTML: e.validation.errorMessage\n }, null, 8, So), [\n [Ce, e.validation.errorMessage]\n ])\n ], 64))\n ]));\n }\n}), ke = (e, t) => {\n const l = e.__vccOpts || e;\n for (const [n, a] of t)\n l[n] = a;\n return l;\n}, Eo = /* @__PURE__ */ ke(Co, [[\"__scopeId\", \"data-v-cc185b72\"]]), Ro = /* @__PURE__ */ te({\n __name: \"AComboBox\",\n props: {\n schema: {},\n label: {},\n selectRange: { type: Boolean },\n mask: {},\n required: { type: Boolean },\n mode: {},\n uuid: {},\n validation: {},\n event: {},\n cellData: {},\n tableID: {}\n },\n setup(e) {\n return (t, l) => {\n const n = hn(\"ATableModal\");\n return g(), fe(n, {\n event: e.event,\n \"cell-data\": e.cellData,\n class: \"amodal\"\n }, {\n default: wt(() => [...l[0] || (l[0] = [\n b(\"div\", null, [\n b(\"input\", { type: \"text\" }),\n b(\"input\", { type: \"text\" }),\n b(\"input\", { type: \"text\" })\n ], -1)\n ])]),\n _: 1\n }, 8, [\"event\", \"cell-data\"]);\n };\n }\n});\nfunction on(e, t) {\n return It() ? (Tt(e, t), !0) : !1;\n}\n// @__NO_SIDE_EFFECTS__\nfunction qt() {\n const e = /* @__PURE__ */ new Set(), t = (o) => {\n e.delete(o);\n };\n return {\n on: (o) => {\n e.add(o);\n const s = () => t(o);\n return on(s), { off: s };\n },\n off: t,\n trigger: (...o) => Promise.all(Array.from(e).map((s) => s(...o))),\n clear: () => {\n e.clear();\n }\n };\n}\nconst an = typeof window < \"u\" && typeof document < \"u\";\ntypeof WorkerGlobalScope < \"u\" && globalThis instanceof WorkerGlobalScope;\nconst Ao = Object.prototype.toString, Lo = (e) => Ao.call(e) === \"[object Object]\", ze = () => {\n}, Ho = (e, t) => Object.prototype.hasOwnProperty.call(e, t);\nfunction Vo(...e) {\n if (e.length !== 1) return Xt(...e);\n const t = e[0];\n return typeof t == \"function\" ? Et(Ct(() => ({\n get: t,\n set: ze\n }))) : C(t);\n}\nfunction ft(e) {\n return Array.isArray(e) ? e : [e];\n}\nfunction Bo(e, t, l) {\n return le(e, t, {\n ...l,\n immediate: !0\n });\n}\nconst sn = an ? window : void 0, Fo = an ? window.document : void 0;\nfunction Ue(e) {\n var t;\n const l = A(e);\n return (t = l?.$el) !== null && t !== void 0 ? t : l;\n}\nfunction mt(...e) {\n const t = (n, a, o, s) => (n.addEventListener(a, o, s), () => n.removeEventListener(a, o, s)), l = R(() => {\n const n = ft(A(e[0])).filter((a) => a != null);\n return n.every((a) => typeof a != \"string\") ? n : void 0;\n });\n return Bo(() => {\n var n, a;\n return [\n (n = (a = l.value) === null || a === void 0 ? void 0 : a.map((o) => Ue(o))) !== null && n !== void 0 ? n : [sn].filter((o) => o != null),\n ft(A(l.value ? e[1] : e[0])),\n ft(B(l.value ? e[2] : e[1])),\n A(l.value ? e[3] : e[2])\n ];\n }, ([n, a, o, s], u, r) => {\n if (!n?.length || !a?.length || !o?.length) return;\n const i = Lo(s) ? { ...s } : s, d = n.flatMap((m) => a.flatMap((I) => o.map((w) => t(m, I, w, i))));\n r(() => {\n d.forEach((m) => m());\n });\n }, { flush: \"post\" });\n}\nfunction lt(e, t, l = {}) {\n const { window: n = sn, ignore: a = [], capture: o = !0, detectIframe: s = !1, controls: u = !1 } = l;\n if (!n) return u ? {\n stop: ze,\n cancel: ze,\n trigger: ze\n } : ze;\n let r = !0;\n const i = (c) => A(a).some((h) => {\n if (typeof h == \"string\") return Array.from(n.document.querySelectorAll(h)).some((k) => k === c.target || c.composedPath().includes(k));\n {\n const k = Ue(h);\n return k && (c.target === k || c.composedPath().includes(k));\n }\n });\n function d(c) {\n const h = A(c);\n return h && h.$.subTree.shapeFlag === 16;\n }\n function m(c, h) {\n const k = A(c), E = k.$.subTree && k.$.subTree.children;\n return E == null || !Array.isArray(E) ? !1 : E.some((S) => S.el === h.target || h.composedPath().includes(S.el));\n }\n const I = (c) => {\n const h = Ue(e);\n if (c.target != null && !(!(h instanceof Element) && d(e) && m(e, c)) && !(!h || h === c.target || c.composedPath().includes(h))) {\n if (\"detail\" in c && c.detail === 0 && (r = !i(c)), !r) {\n r = !0;\n return;\n }\n t(c);\n }\n };\n let w = !1;\n const p = [\n mt(n, \"click\", (c) => {\n w || (w = !0, setTimeout(() => {\n w = !1;\n }, 0), I(c));\n }, {\n passive: !0,\n capture: o\n }),\n mt(n, \"pointerdown\", (c) => {\n const h = Ue(e);\n r = !i(c) && !!(h && !c.composedPath().includes(h));\n }, { passive: !0 }),\n s && mt(n, \"blur\", (c) => {\n setTimeout(() => {\n var h;\n const k = Ue(e);\n ((h = n.document.activeElement) === null || h === void 0 ? void 0 : h.tagName) === \"IFRAME\" && !k?.contains(n.document.activeElement) && t(c);\n }, 0);\n }, { passive: !0 })\n ].filter(Boolean), v = () => p.forEach((c) => c());\n return u ? {\n stop: v,\n cancel: () => {\n r = !1;\n },\n trigger: (c) => {\n r = !0, I(c), r = !1;\n }\n } : v;\n}\nconst Po = {\n multiple: !0,\n accept: \"*\",\n reset: !1,\n directory: !1\n};\nfunction No(e) {\n if (!e) return null;\n if (e instanceof FileList) return e;\n const t = new DataTransfer();\n for (const l of e) t.items.add(l);\n return t.files;\n}\nfunction Zo(e = {}) {\n const { document: t = Fo } = e, l = C(No(e.initialFiles)), { on: n, trigger: a } = /* @__PURE__ */ qt(), { on: o, trigger: s } = /* @__PURE__ */ qt(), u = R(() => {\n var m;\n const I = (m = Ue(e.input)) !== null && m !== void 0 ? m : t ? t.createElement(\"input\") : void 0;\n return I && (I.type = \"file\", I.onchange = (w) => {\n l.value = w.target.files, a(l.value);\n }, I.oncancel = () => {\n s();\n }), I;\n }), r = () => {\n l.value = null, u.value && u.value.value && (u.value.value = \"\", a(null));\n }, i = (m) => {\n const I = u.value;\n I && (I.multiple = A(m.multiple), I.accept = A(m.accept), I.webkitdirectory = A(m.directory), Ho(m, \"capture\") && (I.capture = A(m.capture)));\n }, d = (m) => {\n const I = u.value;\n if (!I) return;\n const w = {\n ...Po,\n ...e,\n ...m\n };\n i(w), A(w.reset) && r(), I.click();\n };\n return St(() => {\n i(e);\n }), {\n files: Et(l),\n open: d,\n reset: r,\n onCancel: o,\n onChange: n\n };\n}\nfunction pt(e) {\n return typeof Window < \"u\" && e instanceof Window ? e.document.documentElement : typeof Document < \"u\" && e instanceof Document ? e.documentElement : e;\n}\nconst ht = /* @__PURE__ */ new WeakMap();\nfunction Oo(e, t = !1) {\n const l = he(t);\n let n = \"\";\n le(Vo(e), (s) => {\n const u = pt(A(s));\n if (u) {\n const r = u;\n if (ht.get(r) || ht.set(r, r.style.overflow), r.style.overflow !== \"hidden\" && (n = r.style.overflow), r.style.overflow === \"hidden\") return l.value = !0;\n if (l.value) return r.style.overflow = \"hidden\";\n }\n }, { immediate: !0 });\n const a = () => {\n const s = pt(A(e));\n !s || l.value || (s.style.overflow = \"hidden\", l.value = !0);\n }, o = () => {\n const s = pt(A(e));\n !s || !l.value || (s.style.overflow = n, ht.delete(s), l.value = !1);\n };\n return on(o), R({\n get() {\n return l.value;\n },\n set(s) {\n s ? a() : o();\n }\n });\n}\nconst Go = { class: \"aform_display-value\" }, Uo = { key: 0 }, Wo = {\n key: 1,\n ref: \"datepicker\",\n class: \"adatepicker\",\n tabindex: \"0\"\n}, qo = {\n colspan: \"5\",\n tabindex: -1\n}, zo = { key: 0 }, _o = { colspan: \"7\" }, Yo = { class: \"date-input\" }, Xo = [\"value\"], Ko = [\"value\"], jo = [\"onClick\", \"onKeydown\", \"onMouseover\"], Jo = 6, zt = 7, Qo = /* @__PURE__ */ te({\n __name: \"ADatePicker\",\n props: /* @__PURE__ */ xe({\n schema: {},\n label: {},\n selectRange: { type: Boolean, default: !1 },\n mask: {},\n required: { type: Boolean },\n mode: {},\n uuid: {},\n validation: {}\n }, {\n modelValue: { default: /* @__PURE__ */ new Date() },\n modelModifiers: {}\n }),\n emits: /* @__PURE__ */ xe([\"get-date\"], [\"update:modelValue\"]),\n setup(e, { expose: t, emit: l }) {\n const n = Te(e, \"modelValue\"), a = C(new Date(n.value)), o = C(a.value.getMonth()), s = C(a.value.getFullYear()), u = C([]), r = C(new Date(n.value)), i = C(null), d = C(null), m = pe(\"start-date-input\"), I = pe(\"end-date-input\"), w = l, p = R(() => new Date(s.value, o.value, 1).toLocaleDateString(void 0, {\n year: \"numeric\",\n month: \"long\"\n })), v = R(() => i.value != null ? h(i.value) : \"\"), c = R(() => d.value != null ? h(d.value) : \"\"), h = (M) => me(M) ? M.getMonth() + 1 + \"/\" + M.getDate() + \"/\" + M.getFullYear() : \"\", k = (M) => {\n const T = /* @__PURE__ */ new Date();\n return o.value !== T.getMonth() ? !1 : T.toDateString() === new Date(M).toDateString();\n }, E = (M) => new Date(M).toDateString() === new Date(a.value).toDateString(), S = (M) => {\n const T = i.value;\n return me(T) ? new Date(M).toDateString() === T.toDateString() : !1;\n }, D = (M) => {\n const T = d.value;\n return me(T) ? new Date(M).toDateString() === T.toDateString() : !1;\n }, L = (M, T) => (M - 1) * zt + T, z = (M) => {\n const T = i.value;\n if (!me(T)) return !1;\n const V = new Date(M), U = d.value, Y = me(U) ? U : new Date(r.value);\n return V.getTime() > T.getTime() && V.getTime() < Y.getTime();\n }, H = (M, T) => u.value[L(M, T)], Z = (M) => {\n r.value = new Date(u.value[M]);\n }, _ = () => {\n u.value = [];\n const M = new Date(s.value, o.value, 1), T = M.getDay(), V = M.setDate(M.getDate() - T);\n for (const U of Array(43).keys())\n u.value.push(V + U * 864e5);\n }, J = () => s.value -= 1, ne = () => s.value += 1, se = () => {\n o.value == 0 ? (o.value = 11, J()) : o.value -= 1;\n }, Ie = () => {\n o.value == 11 ? (o.value = 0, ne()) : o.value += 1;\n }, be = (M) => {\n M.key === \"Enter\" && De();\n }, He = (M) => {\n if (n.value = a.value = new Date(u.value[M]), e.selectRange) {\n const T = i.value;\n T == null || d.value != null ? (i.value = n.value, d.value = null) : me(T) && a.value.getTime() < T.getTime() ? (d.value = null, i.value = n.value) : d.value = n.value, m.value && (m.value.value = h(i.value) ?? \"\"), I.value && (I.value.value = h(d.value) ?? \"\");\n }\n Ve();\n }, Ne = () => {\n const M = i.value, T = d.value;\n me(T) && me(M) && T.getTime() < M.getTime() && ([i.value, d.value] = [T, M]);\n }, me = (M) => M instanceof Date && !isNaN(M.getTime()), De = () => {\n if (m.value?.value == \"\")\n i.value = null;\n else if (m.value) {\n const M = new Date(m.value.value);\n i.value = me(M) ? M : null;\n }\n if (I.value?.value == \"\")\n d.value = null;\n else if (I.value) {\n const M = new Date(I.value.value);\n d.value = me(M) ? M : null;\n }\n me(i.value) && (me(d.value) && Ne(), a.value = i.value), Ve();\n }, Ve = () => {\n w(\"get-date\", {\n start: e.selectRange ? i.value : null,\n end: e.selectRange ? d.value : null,\n selected: a.value\n });\n };\n return Re(async () => {\n _(), await at();\n const M = document.getElementsByClassName(\"selectedDate\");\n if (M.length > 0)\n M[0].focus();\n else {\n const T = document.getElementsByClassName(\"todaysDate\");\n T.length > 0 && T[0].focus();\n }\n }), le([o, s], _), t({ currentMonth: o, currentYear: s, selectedDate: a }), (M, T) => e.mode === \"display\" || e.mode === \"read\" ? (g(), x(X, { key: 0 }, [\n b(\"span\", Go, F(n.value ? new Date(n.value).toLocaleDateString() : \"\"), 1),\n e.label ? (g(), x(\"label\", Uo, F(e.label), 1)) : N(\"\", !0)\n ], 64)) : (g(), x(\"div\", Wo, [\n b(\"table\", null, [\n b(\"tbody\", null, [\n b(\"tr\", null, [\n b(\"td\", {\n id: \"previous-month-btn\",\n tabindex: -1,\n onClick: se\n }, \"<\"),\n b(\"th\", qo, F(p.value), 1),\n b(\"td\", {\n id: \"next-month-btn\",\n tabindex: -1,\n onClick: Ie\n }, \">\")\n ]),\n e.selectRange ? (g(), x(\"tr\", zo, [\n b(\"td\", _o, [\n b(\"div\", Yo, [\n b(\"input\", {\n ref: \"start-date-input\",\n value: v.value,\n class: \"date-input-start aform_input-field\",\n type: \"text\",\n placeholder: \"start date\",\n onBlur: T[0] || (T[0] = (V) => De()),\n onKeydown: be\n }, null, 40, Xo),\n T[2] || (T[2] = b(\"div\", null, \"-\", -1)),\n b(\"input\", {\n ref: \"end-date-input\",\n value: c.value,\n class: \"date-input-end aform_input-field\",\n type: \"text\",\n placeholder: \"end date\",\n onBlur: T[1] || (T[1] = (V) => De()),\n onKeydown: be\n }, null, 40, Ko)\n ])\n ])\n ])) : N(\"\", !0),\n T[3] || (T[3] = b(\"tr\", { class: \"days-header\" }, [\n b(\"td\", null, \"M\"),\n b(\"td\", null, \"T\"),\n b(\"td\", null, \"W\"),\n b(\"td\", null, \"T\"),\n b(\"td\", null, \"F\"),\n b(\"td\", null, \"S\"),\n b(\"td\", null, \"S\")\n ], -1)),\n (g(), x(X, null, ge(Jo, (V) => b(\"tr\", { key: V }, [\n (g(), x(X, null, ge(zt, (U) => b(\"td\", {\n ref_for: !0,\n ref: \"celldate\",\n key: L(V, U),\n class: de([\"date-cell\", {\n todaysDate: k(H(V, U)),\n selectedDate: E(H(V, U)),\n withinRange: e.selectRange ? z(H(V, U)) : !1,\n startDate: e.selectRange ? S(H(V, U)) : !1,\n endDate: e.selectRange ? D(H(V, U)) : !1\n }]),\n contenteditable: !1,\n spellcheck: !1,\n tabindex: 0,\n onClick: ae((Y) => He(L(V, U)), [\"prevent\", \"stop\"]),\n onKeydown: ce((Y) => He(L(V, U)), [\"enter\"]),\n onMouseover: (Y) => Z(L(V, U))\n }, F(new Date(H(V, U)).getDate()), 43, jo)), 64))\n ])), 64))\n ])\n ])\n ], 512));\n }\n}), rn = /* @__PURE__ */ ke(Qo, [[\"__scopeId\", \"data-v-4b066fd6\"]]), ea = { class: \"adate_time\" }, ta = { class: \"adate_time_fields\" }, na = [\"onKeydown\"], la = [\"onKeydown\"], oa = {\n key: 0,\n class: \"colon\"\n}, aa = [\"onKeydown\"], sa = /* @__PURE__ */ te({\n __name: \"ADateTime\",\n props: {\n allowMilitaryTime: { type: Boolean, default: !1 },\n defaultHours: { default: 12 },\n defaultMinutes: { default: 0 },\n defaultSeconds: { default: 0 },\n defaultMeridiem: { default: \"AM\" },\n useSeconds: { type: Boolean, default: !0 }\n },\n emits: [\"get-time\"],\n setup(e, { emit: t }) {\n const l = t, n = pe(\"meridiem-selector\"), a = Dt({\n hours: String(e.defaultHours).padStart(2, \"0\"),\n minutes: String(e.defaultMinutes).padStart(2, \"0\"),\n seconds: String(e.defaultSeconds).padStart(2, \"0\")\n }), o = C(e.defaultMeridiem == \"AM\" ? \"AM\" : \"PM\");\n Re(() => {\n u();\n });\n const s = () => {\n const w = e.allowMilitaryTime ? 23 : 12, p = e.allowMilitaryTime ? 0 : 1;\n let v = Number(a.hours), c = Number(a.minutes), h = Number(a.seconds);\n (isNaN(v) || a.hours === \"\" || v > w) && (v = w), !e.allowMilitaryTime && v < p && (v = p), (isNaN(c) || a.minutes === \"\" || c > 59) && (c = 59), (isNaN(h) || a.seconds === \"\" || h > 59) && (h = 59), a.hours = String(v).padStart(2, \"0\"), a.minutes = String(c).padStart(2, \"0\"), a.seconds = String(h).padStart(2, \"0\"), u();\n }, u = () => {\n const w = Number(a.hours), p = Number(a.minutes), v = Number(a.seconds);\n l(\"get-time\", {\n hours: w,\n minutes: p,\n seconds: v,\n meridiem: o.value,\n militaryTime: e.allowMilitaryTime ? w : o.value === \"PM\" ? w === 12 ? 12 : w + 12 : w % 12\n });\n }, r = (w) => {\n const p = w.target;\n p instanceof HTMLInputElement && p.select();\n }, i = (w, p = 1) => {\n const v = e.allowMilitaryTime ? 23 : 12, c = e.allowMilitaryTime ? 0 : 1;\n if (w == \"hours\") {\n const E = Number(a.hours);\n a.hours = String(E + p), (E == 11 && Number(a.hours) == 12 || E == 12 && Number(a.hours) == 11) && m();\n } else w == \"minutes\" ? a.minutes = String(Number(a.minutes) + p) : w == \"seconds\" && (a.seconds = String(Number(a.seconds) + p));\n const h = Number(a.hours);\n Number(a.seconds) < 0 ? a.minutes = String(Number(a.minutes) - 1) : Number(a.seconds) > 59 && (a.minutes = String(Number(a.minutes) + 1)), Number(a.minutes) < 0 ? a.hours = String(h - 1) : Number(a.minutes) > 59 && (a.hours = String(h + 1));\n const k = Number(a.hours);\n !e.allowMilitaryTime && k !== h && (h === 11 && k === 12 || h === 12 && k === 11) && m(), a.hours = String(d(Number(a.hours), c, v)).padStart(2, \"0\"), a.minutes = String(d(Number(a.minutes), 0, 59)).padStart(2, \"0\"), a.seconds = String(d(Number(a.seconds), 0, 59)).padStart(2, \"0\");\n };\n le(\n () => a.hours,\n (w, p) => {\n a.hours = Number(w) > 99 ? p : w;\n }\n ), le(\n () => a.minutes,\n (w, p) => {\n a.minutes = Number(w) > 99 ? p : w;\n }\n ), le(\n () => a.seconds,\n (w, p) => {\n a.seconds = Number(w) > 99 ? p : w;\n }\n );\n const d = (w, p, v) => w > v ? p : w < p ? v : w, m = () => {\n o.value = o.value == \"PM\" ? \"AM\" : \"PM\", u();\n }, I = (w, p = !1) => {\n w.stopPropagation(), w.preventDefault();\n const v = w.clipboardData;\n if (!v) return;\n let c = v.getData(\"Text\");\n if (c = c.replace(/[^0-9]/g, \"\"), p) {\n c.length % 2 != 0 && (c = \"0\" + c), c.length < 3 && (c += \"00\"), c.length < 5 && (c += \"00\");\n const h = c.match(/(..?)/g);\n if (!h || h.length < 3) return;\n a.seconds = h[2], a.minutes = h[1], a.hours = h[0], s(), e.allowMilitaryTime || n.value?.focus();\n } else {\n c.length > 2 && (c = c.slice(0, 2));\n const h = w.target;\n h instanceof HTMLInputElement && (h.value = c, h.dispatchEvent(new Event(\"input\")));\n }\n };\n return (w, p) => (g(), x(\"div\", ea, [\n b(\"div\", ta, [\n j(b(\"input\", {\n \"onUpdate:modelValue\": p[0] || (p[0] = (v) => a.hours = v),\n type: \"text\",\n inputmode: \"numeric\",\n onPaste: p[1] || (p[1] = (v) => I(v, !0)),\n onFocus: r,\n onBlur: s,\n onKeydown: [\n ce(ae(s, [\"prevent\"]), [\"enter\"]),\n p[2] || (p[2] = ce(ae((v) => i(\"hours\"), [\"prevent\"]), [\"up\"])),\n p[3] || (p[3] = ce(ae((v) => i(\"hours\", -1), [\"prevent\"]), [\"down\"]))\n ]\n }, null, 40, na), [\n [we, a.hours]\n ]),\n p[12] || (p[12] = b(\"span\", { class: \"colon\" }, \":\", -1)),\n j(b(\"input\", {\n \"onUpdate:modelValue\": p[4] || (p[4] = (v) => a.minutes = v),\n type: \"text\",\n inputmode: \"numeric\",\n onPaste: I,\n onFocus: r,\n onBlur: s,\n onKeydown: [\n ce(ae(s, [\"prevent\"]), [\"enter\"]),\n p[5] || (p[5] = ce(ae((v) => i(\"minutes\"), [\"prevent\"]), [\"up\"])),\n p[6] || (p[6] = ce(ae((v) => i(\"minutes\", -1), [\"prevent\"]), [\"down\"]))\n ]\n }, null, 40, la), [\n [we, a.minutes]\n ]),\n e.useSeconds ? (g(), x(\"span\", oa, \":\")) : N(\"\", !0),\n e.useSeconds ? j((g(), x(\"input\", {\n key: 1,\n \"onUpdate:modelValue\": p[7] || (p[7] = (v) => a.seconds = v),\n type: \"text\",\n inputmode: \"numeric\",\n onPaste: I,\n onFocus: r,\n onBlur: s,\n onKeydown: [\n ce(ae(s, [\"prevent\"]), [\"enter\"]),\n p[8] || (p[8] = ce(ae((v) => i(\"seconds\"), [\"prevent\"]), [\"up\"])),\n p[9] || (p[9] = ce(ae((v) => i(\"seconds\", -1), [\"prevent\"]), [\"down\"]))\n ]\n }, null, 40, aa)), [\n [we, a.seconds]\n ]) : N(\"\", !0),\n e.allowMilitaryTime ? N(\"\", !0) : j((g(), x(\"select\", {\n key: 2,\n ref: \"meridiem-selector\",\n \"onUpdate:modelValue\": p[10] || (p[10] = (v) => o.value = v),\n class: \"aform-select meridiem-selector\",\n onChange: s\n }, [...p[11] || (p[11] = [\n b(\"option\", { value: \"AM\" }, \"AM\", -1),\n b(\"option\", { value: \"PM\" }, \"PM\", -1)\n ])], 544)), [\n [Yt, o.value]\n ])\n ])\n ]));\n }\n}), kt = /* @__PURE__ */ ke(sa, [[\"__scopeId\", \"data-v-959a3e41\"]]), ra = { class: \"adate-selection\" }, ia = {\n key: 3,\n class: \"empty\"\n}, ua = /* @__PURE__ */ te({\n __name: \"ADateSelection\",\n props: {\n showDate: { type: Boolean, default: !0 },\n showTime: { type: Boolean, default: !0 },\n selectRange: { type: Boolean, default: !0 },\n showEndTime: { type: Boolean, default: !1 },\n allowMilitaryTime: { type: Boolean, default: !1 },\n defaultHours: { default: 12 },\n defaultMinutes: { default: 0 },\n defaultSeconds: { default: 0 },\n defaultMeridiem: { default: \"AM\" },\n useSeconds: { type: Boolean, default: !0 }\n },\n emits: [\"get-date\", \"get-time\", \"get-range\"],\n setup(e, { emit: t }) {\n const l = t;\n gn(\"select-range\", e.selectRange);\n const n = /* @__PURE__ */ new Date(), a = C(n), o = C(n), s = C(0), u = C(0), r = (p, v) => {\n const c = new Date(p);\n return c.setHours(0, 0, 0, 0), new Date(c.getTime() + v);\n }, i = (p) => {\n let v;\n if (p.militaryTime !== void 0)\n v = p.militaryTime;\n else {\n const c = p.hours % 12;\n v = p.meridiem === \"PM\" ? c + 12 : c;\n }\n return (v * 3600 + p.minutes * 60 + (p.seconds ?? 0)) * 1e3;\n }, d = () => {\n !e.selectRange || !e.showTime || !e.showEndTime || l(\"get-range\", {\n start: r(a.value, s.value),\n end: r(o.value, u.value)\n });\n }, m = (p) => {\n l(\"get-date\", p), e.selectRange && (a.value = p.start ?? p.selected, o.value = p.end ?? p.selected, d());\n }, I = (p) => {\n s.value = i(p), e.showEndTime ? d() : l(\"get-time\", p);\n }, w = (p) => {\n u.value = i(p), d();\n };\n return (p, v) => (g(), x(\"div\", ra, [\n e.showDate ? (g(), fe(rn, {\n key: 0,\n \"select-range\": e.selectRange,\n onGetDate: m\n }, null, 8, [\"select-range\"])) : N(\"\", !0),\n e.showTime ? (g(), fe(kt, {\n key: 1,\n \"allow-military-time\": e.allowMilitaryTime,\n \"default-hours\": e.defaultHours,\n \"default-minutes\": e.defaultMinutes,\n \"default-seconds\": e.defaultSeconds,\n \"default-meridiem\": e.defaultMeridiem,\n \"use-seconds\": e.useSeconds,\n onGetTime: I\n }, null, 8, [\"allow-military-time\", \"default-hours\", \"default-minutes\", \"default-seconds\", \"default-meridiem\", \"use-seconds\"])) : N(\"\", !0),\n e.selectRange && e.showTime && e.showEndTime ? (g(), x(X, { key: 2 }, [\n v[0] || (v[0] = b(\"div\", { class: \"adate-selection__end-label\" }, \"End time\", -1)),\n _e(kt, {\n \"allow-military-time\": e.allowMilitaryTime,\n \"default-hours\": e.defaultHours,\n \"default-minutes\": e.defaultMinutes,\n \"default-seconds\": e.defaultSeconds,\n \"default-meridiem\": e.defaultMeridiem,\n \"use-seconds\": e.useSeconds,\n onGetTime: w\n }, null, 8, [\"allow-military-time\", \"default-hours\", \"default-minutes\", \"default-seconds\", \"default-meridiem\", \"use-seconds\"])\n ], 64)) : N(\"\", !0),\n !e.showTime && !e.showDate ? (g(), x(\"p\", ia, \"empty\")) : N(\"\", !0)\n ]));\n }\n}), rt = /* @__PURE__ */ ke(ua, [[\"__scopeId\", \"data-v-eeadb3e2\"]]), ca = { class: \"aform_display-value\" }, da = [\"id\", \"value\", \"disabled\", \"required\"], va = [\"for\"], fa = [\"innerHTML\"], ma = /* @__PURE__ */ te({\n __name: \"ADate\",\n props: /* @__PURE__ */ xe({\n schema: {},\n label: { default: \"Date\" },\n selectRange: { type: Boolean },\n mask: {},\n required: { type: Boolean },\n mode: {},\n uuid: {},\n validation: { default: () => ({ errorMessage: \"&nbsp;\" }) }\n }, {\n modelValue: {},\n modelModifiers: {}\n }),\n emits: [\"update:modelValue\"],\n setup(e) {\n const t = Te(e, \"modelValue\"), l = C(t.value ? new Date(t.value) : /* @__PURE__ */ new Date()), n = R({\n get: () => l.value.toISOString().split(\"T\")[0],\n set: (u) => {\n l.value = new Date(u), t.value = u;\n }\n }), a = pe(\"picker\"), o = C(!1);\n lt(a, () => o.value = !1), le(\n () => t.value,\n (u) => {\n u && (l.value = new Date(u));\n }\n );\n const s = (u) => {\n l.value = u.selected, t.value = n.value;\n };\n return (u, r) => (g(), x(\"div\", null, [\n e.mode === \"display\" ? (g(), x(X, { key: 0 }, [\n b(\"span\", ca, F(t.value ? new Date(n.value).toLocaleDateString() : \"\"), 1),\n b(\"label\", null, F(e.label), 1)\n ], 64)) : (g(), x(X, { key: 1 }, [\n j(b(\"input\", {\n id: e.uuid,\n ref: \"date\",\n \"onUpdate:modelValue\": r[0] || (r[0] = (i) => n.value = i),\n class: \"adate-input\",\n value: n.value,\n type: \"date\",\n disabled: e.mode === \"read\",\n required: e.required,\n onClick: r[1] || (r[1] = ae(\n () => {\n o.value = !o.value;\n },\n [\"prevent\"]\n ))\n }, null, 8, da), [\n [we, n.value]\n ]),\n b(\"label\", { for: e.uuid }, F(e.label), 9, va),\n j(b(\"p\", {\n innerHTML: e.validation.errorMessage\n }, null, 8, fa), [\n [Ce, e.validation.errorMessage]\n ]),\n o.value ? (g(), fe(rt, {\n key: 0,\n ref: \"picker\",\n class: \"picker\",\n \"select-range\": !1,\n \"show-time\": !1,\n onGetDate: s\n }, null, 512)) : N(\"\", !0)\n ], 64))\n ]));\n }\n}), pa = /* @__PURE__ */ ke(ma, [[\"__scopeId\", \"data-v-aca398d0\"]]), gt = /* @__PURE__ */ new WeakMap(), un = {\n mounted(e, t) {\n const l = !t.modifiers.bubble;\n let n;\n if (typeof t.value == \"function\") n = lt(e, t.value, { capture: l });\n else {\n const [a, o] = t.value;\n n = lt(e, a, Object.assign({ capture: l }, o));\n }\n gt.set(e, n);\n },\n unmounted(e) {\n const t = gt.get(e);\n t && typeof t == \"function\" ? t() : t?.stop(), gt.delete(e);\n }\n};\nfunction ha() {\n let e = !1;\n const t = he(!1);\n return (l, n) => {\n if (t.value = n.value, e) return;\n e = !0;\n const a = Oo(l, n.value);\n le(t, (o) => a.value = o);\n };\n}\nha();\nconst ga = {\n key: 0,\n class: \"input-wrapper\"\n}, ya = { class: \"aform_display-value\" }, wa = { class: \"input-wrapper\" }, ba = [\"disabled\"], xa = {\n id: \"autocomplete-results\",\n class: \"autocomplete-results\"\n}, ka = {\n key: 0,\n class: \"loading autocomplete-result\"\n}, Ma = [\"onClick\"], Ia = /* @__PURE__ */ te({\n __name: \"ADropdown\",\n props: /* @__PURE__ */ xe({\n schema: {},\n label: {},\n selectRange: { type: Boolean },\n mask: {},\n required: { type: Boolean },\n mode: {},\n uuid: {},\n validation: {},\n options: { default: () => [] },\n isAsync: { type: Boolean, default: !1 },\n filterFunction: { type: Function, default: void 0 }\n }, {\n modelValue: {},\n modelModifiers: {}\n }),\n emits: [\"update:modelValue\"],\n setup(e) {\n const t = Te(e, \"modelValue\"), l = C(t.value ?? \"\"), n = Dt({\n activeItemIndex: null,\n open: !1,\n loading: !1,\n results: e.options\n }), a = () => r(), o = async () => {\n if (n.open = !0, n.activeItemIndex = null, e.filterFunction) {\n e.isAsync && (n.loading = !0);\n try {\n const w = await e.filterFunction(t.value || \"\");\n n.results = w || [];\n } catch {\n n.results = [];\n } finally {\n e.isAsync && (n.loading = !1);\n }\n } else\n i();\n }, s = (w) => {\n t.value = w, l.value = w, r(w);\n }, u = () => {\n const w = e.options?.indexOf(t.value ?? \"\") ?? -1;\n n.activeItemIndex = e.isAsync ? null : w >= 0 ? w : null, n.open = !0, n.results = e.isAsync ? [] : e.options;\n }, r = (w) => {\n n.activeItemIndex = null, n.open = !1, e.options?.includes(w || t.value || \"\") || (t.value = l.value);\n }, i = () => {\n t.value ? n.results = e.options?.filter((w) => w.toLowerCase().includes((t.value ?? \"\").toLowerCase())) : n.results = e.options;\n }, d = () => {\n const w = n.results?.length || 0;\n if (n.activeItemIndex != null) {\n const p = isNaN(n.activeItemIndex) ? 0 : n.activeItemIndex;\n n.activeItemIndex = (p + 1) % w;\n } else\n n.activeItemIndex = 0;\n }, m = () => {\n const w = n.results?.length || 0;\n if (n.activeItemIndex != null) {\n const p = isNaN(n.activeItemIndex) ? 0 : n.activeItemIndex;\n p === 0 ? n.activeItemIndex = null : n.activeItemIndex = p - 1;\n } else\n n.activeItemIndex = w - 1;\n }, I = () => {\n if (n.results) {\n const w = n.activeItemIndex || 0, p = n.results[w];\n s(p);\n }\n n.activeItemIndex = 0;\n };\n return (w, p) => e.mode === \"display\" ? (g(), x(\"div\", ga, [\n b(\"span\", ya, F(t.value ?? \"\"), 1),\n b(\"label\", null, F(e.label), 1)\n ])) : j((g(), x(\"div\", {\n key: 1,\n class: de([\"autocomplete\", { isOpen: n.open }])\n }, [\n b(\"div\", wa, [\n j(b(\"input\", {\n \"onUpdate:modelValue\": p[0] || (p[0] = (v) => t.value = v),\n type: \"text\",\n disabled: e.mode === \"read\",\n onInput: o,\n onFocus: u,\n onKeydown: [\n ce(d, [\"down\"]),\n ce(m, [\"up\"]),\n ce(I, [\"enter\"]),\n ce(a, [\"esc\"]),\n ce(a, [\"tab\"])\n ]\n }, null, 40, ba), [\n [we, t.value]\n ]),\n j(b(\"ul\", xa, [\n n.loading ? (g(), x(\"li\", ka, \"Loading results...\")) : (g(!0), x(X, { key: 1 }, ge(n.results, (v, c) => (g(), x(\"li\", {\n key: v,\n class: de([\"autocomplete-result\", { \"is-active\": c === n.activeItemIndex }]),\n onClick: ae((h) => s(v), [\"stop\"])\n }, F(v), 11, Ma))), 128))\n ], 512), [\n [Ce, n.open]\n ]),\n b(\"label\", null, F(e.label), 1)\n ])\n ], 2)), [\n [B(un), a]\n ]);\n }\n}), Ta = /* @__PURE__ */ ke(Ia, [[\"__scopeId\", \"data-v-c823d475\"]]), Da = { class: \"aduration\" }, $a = { class: \"aform_display-value\" }, Sa = { class: \"aduration__footer\" }, Ca = {\n key: 0,\n class: \"aduration__summary\"\n}, Ea = { class: \"aduration__value\" }, Ra = { class: \"aduration__ms\" }, Aa = /* @__PURE__ */ te({\n __name: \"ADuration\",\n props: /* @__PURE__ */ xe({\n label: { default: \"Duration\" },\n mode: { default: \"edit\" },\n allowMilitaryTime: { type: Boolean, default: !1 },\n useSeconds: { type: Boolean, default: !1 }\n }, {\n modelValue: {},\n modelModifiers: {}\n }),\n emits: [\"update:modelValue\"],\n setup(e) {\n const t = Te(e, \"modelValue\"), l = C(null), n = C(null), a = R(() => {\n if (!l.value || !n.value) return 0;\n const r = n.value.getTime() - l.value.getTime();\n return r > 0 ? r : 0;\n });\n le(a, (r) => {\n t.value = r;\n });\n const o = (r) => {\n l.value = r.start, n.value = r.end, t.value = a.value;\n }, s = R(() => {\n const r = a.value;\n if (r === 0) return \"0s\";\n const i = Math.floor(r / 1e3) % 60, d = Math.floor(r / 6e4) % 60, m = Math.floor(r / 36e5) % 24, I = Math.floor(r / 864e5);\n return [I && `${I}d`, m && `${m}h`, d && `${d}m`, i && `${i}s`].filter(Boolean).join(\" \") || \"0s\";\n }), u = R(() => {\n const r = t.value;\n if (!r) return \"—\";\n const i = Math.floor(r / 1e3) % 60, d = Math.floor(r / 6e4) % 60, m = Math.floor(r / 36e5) % 24, I = Math.floor(r / 864e5);\n return [I && `${I}d`, m && `${m}h`, d && `${d}m`, i && `${i}s`].filter(Boolean).join(\" \") || \"0s\";\n });\n return (r, i) => (g(), x(\"div\", Da, [\n e.mode === \"display\" || e.mode === \"read\" ? (g(), x(X, { key: 0 }, [\n b(\"span\", $a, F(u.value), 1),\n b(\"label\", null, F(e.label), 1)\n ], 64)) : (g(), x(X, { key: 1 }, [\n _e(rt, {\n ref: \"selectionRef\",\n \"select-range\": !0,\n \"show-time\": !0,\n \"show-end-time\": !0,\n \"allow-military-time\": e.allowMilitaryTime,\n \"use-seconds\": e.useSeconds,\n onGetRange: o\n }, null, 8, [\"allow-military-time\", \"use-seconds\"]),\n b(\"div\", Sa, [\n b(\"label\", null, F(e.label), 1),\n l.value && n.value ? (g(), x(\"div\", Ca, [\n i[0] || (i[0] = b(\"span\", { class: \"aduration__label\" }, \"Duration:\", -1)),\n b(\"span\", Ea, F(s.value), 1),\n b(\"span\", Ra, \"(\" + F(t.value ?? 0) + \" ms)\", 1)\n ])) : N(\"\", !0)\n ])\n ], 64))\n ]));\n }\n}), La = /* @__PURE__ */ ke(Aa, [[\"__scopeId\", \"data-v-22611dd6\"]]), Ha = { class: \"adaterange\" }, Va = { class: \"aform_display-value\" }, Ba = [\"id\", \"value\", \"disabled\"], Fa = [\"for\"], Pa = [\"innerHTML\"], Na = /* @__PURE__ */ te({\n __name: \"ADateRange\",\n props: /* @__PURE__ */ xe({\n schema: {},\n label: { default: \"Date Range\" },\n selectRange: { type: Boolean },\n mask: {},\n required: { type: Boolean },\n mode: {},\n uuid: {},\n validation: { default: () => ({ errorMessage: \"&nbsp;\" }) }\n }, {\n modelValue: {\n default: () => ({ start_date: null, end_date: null })\n },\n modelModifiers: {}\n }),\n emits: [\"update:modelValue\"],\n setup(e) {\n const t = (v) => new Date(v).toLocaleDateString(), l = Te(e, \"modelValue\"), n = C(l.value.start_date ? new Date(l.value.start_date) : null), a = C(l.value.end_date ? new Date(l.value.end_date) : null), o = C(!1), s = C(null);\n lt(s, () => o.value = !1);\n const u = () => {\n e.mode !== \"read\" && (o.value = !0);\n }, r = (v) => v ? `${v.getMonth() + 1}/${v.getDate()}/${v.getFullYear()}` : \"\", i = R(() => {\n const v = r(n.value), c = r(a.value);\n return v && c ? `${v} — ${c}` : v ? `${v} — ...` : \"\";\n }), d = R(() => {\n const v = l.value.start_date, c = l.value.end_date;\n return !v && !c ? \"\" : v && c ? `${t(v)} — ${t(c)}` : v ? `From ${t(v)}` : `Until ${t(c)}`;\n }), m = () => {\n const v = n.value, c = a.value;\n v && c && c.getTime() < v.getTime() && ([n.value, a.value] = [c, v]);\n }, I = (v) => v ? v.toISOString().split(\"T\")[0] : null, w = () => {\n l.value = {\n start_date: I(n.value),\n end_date: I(a.value)\n };\n }, p = (v) => {\n v.start && (n.value = v.start), v.end && (a.value = v.end, m(), o.value = !1), w();\n };\n return le(\n () => l.value,\n (v) => {\n n.value = v.start_date ? new Date(v.start_date) : null, a.value = v.end_date ? new Date(v.end_date) : null;\n },\n { deep: !0 }\n ), (v, c) => (g(), x(\"div\", Ha, [\n e.mode === \"display\" ? (g(), x(X, { key: 0 }, [\n b(\"span\", Va, F(d.value), 1),\n b(\"label\", null, F(e.label), 1)\n ], 64)) : (g(), x(X, { key: 1 }, [\n b(\"input\", {\n id: e.uuid,\n class: \"adate-input aform_input-field\",\n type: \"text\",\n value: i.value,\n placeholder: \"Select date range\",\n disabled: e.mode === \"read\",\n readonly: \"\",\n onClick: u\n }, null, 8, Ba),\n b(\"label\", { for: e.uuid }, F(e.label), 9, Fa),\n j(b(\"p\", {\n innerHTML: e.validation.errorMessage\n }, null, 8, Pa), [\n [Ce, e.validation.errorMessage]\n ]),\n o.value ? (g(), fe(rt, {\n key: 0,\n ref_key: \"pickerRef\",\n ref: s,\n class: \"picker\",\n \"select-range\": !0,\n \"show-time\": !1,\n onGetDate: p\n }, null, 512)) : N(\"\", !0)\n ], 64))\n ]));\n }\n}), Za = /* @__PURE__ */ ke(Na, [[\"__scopeId\", \"data-v-810e8eb5\"]]), Oa = { class: \"aform\" }, Ga = {\n key: 0,\n class: \"aform-nested-section\"\n}, Ua = {\n key: 0,\n class: \"aform-nested-label\"\n}, Wa = /* @__PURE__ */ te({\n __name: \"AForm\",\n props: /* @__PURE__ */ xe({\n schema: {},\n mode: { default: \"edit\" }\n }, {\n data: { required: !0 },\n dataModifiers: {}\n }),\n emits: /* @__PURE__ */ xe([\"update:schema\", \"update:data\"], [\"update:data\"]),\n setup(e, { emit: t }) {\n const l = t, n = Te(e, \"data\"), a = (w) => (w.kind === \"link\" || w.kind === \"fieldset\") && \"schema\" in w && Array.isArray(w.schema) && w.schema.length > 0, o = C({});\n le(\n () => n.value,\n (w) => {\n !e.schema || !w || e.schema.forEach((p) => {\n a(p) && (o.value[p.fieldname] = w[p.fieldname] ?? {});\n });\n },\n { immediate: !0 }\n );\n const s = (w, p) => {\n o.value[w] = p, n.value && (n.value[w] = p, l(\"update:data\", { ...n.value }));\n }, u = (w) => {\n const p = {};\n for (const [v, c] of Object.entries(w))\n [\"component\", \"fieldtype\", \"hidden\", \"mode\", \"width\"].includes(v) || (p[v] = c);\n return (w.kind === \"table\" || \"columns\" in w) && (p.rows = n.value[w.fieldname] || []), p;\n }, r = (w) => {\n if (w.kind !== \"field\") return {};\n const p = w.width;\n return p ? { flexBasis: p, width: p } : {};\n }, i = R(() => e.mode ?? \"edit\");\n function d(w) {\n const p = w.mode;\n return p || i.value;\n }\n const m = C([]);\n St(() => {\n e.schema && m.value.length !== e.schema.length && (m.value = e.schema.map((w, p) => R({\n get() {\n return n.value?.[e.schema[p].fieldname];\n },\n set: (v) => {\n const c = e.schema[p].fieldname;\n c && n.value && (n.value[c] = v, l(\"update:data\", { ...n.value })), l(\"update:schema\", e.schema);\n }\n })));\n });\n const I = R(() => m.value);\n return (w, p) => (g(), x(\"form\", Oa, [\n (g(!0), x(X, null, ge(e.schema, (v, c) => (g(), x(X, { key: c }, [\n a(v) ? (g(), x(\"div\", Ga, [\n v.label && v.kind !== \"fieldset\" ? (g(), x(\"h4\", Ua, F(v.label), 1)) : N(\"\", !0),\n (g(), fe(Ge(v.component ?? \"AForm\"), {\n data: o.value[v.fieldname],\n mode: d(v),\n schema: v.schema,\n label: v.label,\n collapsible: v.kind === \"fieldset\" ? v.collapsible : void 0,\n \"onUpdate:data\": (h) => s(v.fieldname, h)\n }, null, 40, [\"data\", \"mode\", \"schema\", \"label\", \"collapsible\", \"onUpdate:data\"]))\n ])) : v.hidden ? N(\"\", !0) : (g(), fe(Ge(v.component), ot({\n key: 1,\n modelValue: I.value[c].value,\n \"onUpdate:modelValue\": (h) => I.value[c].value = h,\n style: r(v),\n schema: v,\n data: n.value[v.fieldname],\n mode: d(v)\n }, { ref_for: !0 }, u(v)), null, 16, [\"modelValue\", \"onUpdate:modelValue\", \"style\", \"schema\", \"data\", \"mode\"]))\n ], 64))), 128))\n ]));\n }\n}), cn = /* @__PURE__ */ ke(Wa, [[\"__scopeId\", \"data-v-5396e11b\"]]), qa = /* @__PURE__ */ te({\n __name: \"CollapseButton\",\n props: {\n collapsed: { type: Boolean }\n },\n setup(e) {\n return (t, l) => (g(), x(\"button\", {\n class: de([\"collapse-button\", e.collapsed ? \"rotated\" : \"unrotated\"])\n }, \"×\", 2));\n }\n}), za = /* @__PURE__ */ ke(qa, [[\"__scopeId\", \"data-v-6f1c1b45\"]]), _a = /* @__PURE__ */ te({\n __name: \"AFieldset\",\n props: {\n schema: {},\n label: { default: () => {\n } },\n collapsible: { type: Boolean },\n data: { default: () => ({}) },\n mode: { default: \"edit\" }\n },\n setup(e, { expose: t }) {\n const l = C(!1), n = C(e.data || []), a = C(e.schema), o = (s) => {\n s.preventDefault(), e.collapsible && (l.value = !l.value);\n };\n return t({ collapsed: l }), (s, u) => (g(), x(\"fieldset\", null, [\n e.label || e.collapsible ? (g(), x(\"legend\", {\n key: 0,\n onClick: o,\n onSubmit: o\n }, [\n Mt(F(e.label) + \" \", 1),\n e.collapsible ? (g(), fe(za, {\n key: 0,\n collapsed: l.value\n }, null, 8, [\"collapsed\"])) : N(\"\", !0)\n ], 32)) : N(\"\", !0),\n Me(s.$slots, \"default\", { collapsed: l.value }, () => [\n j(_e(cn, {\n data: n.value,\n \"onUpdate:data\": u[0] || (u[0] = (r) => n.value = r),\n schema: a.value,\n mode: e.mode\n }, null, 8, [\"data\", \"schema\", \"mode\"]), [\n [Ce, !l.value]\n ])\n ], !0)\n ]));\n }\n}), Ya = /* @__PURE__ */ ke(_a, [[\"__scopeId\", \"data-v-162e7317\"]]), Xa = { class: \"aform_form-element aform_file-attach aform__grid--full\" }, Ka = {\n key: 0,\n class: \"aform_file-attach-feedback\"\n}, ja = {\n key: 1,\n class: \"aform_display-value\"\n}, Ja = {\n key: 0,\n class: \"aform_file-attach-feedback\"\n}, Qa = [\"disabled\"], es = [\"disabled\"], ts = /* @__PURE__ */ te({\n __name: \"AFileAttach\",\n props: {\n schema: {},\n label: {},\n selectRange: { type: Boolean },\n mask: {},\n required: { type: Boolean },\n mode: {},\n uuid: {},\n validation: {}\n },\n setup(e) {\n const { files: t, open: l, reset: n, onChange: a } = Zo(), o = R(() => {\n const s = t.value?.length ?? 0;\n return `${s} ${s === 1 ? \"file\" : \"files\"}`;\n });\n return a((s) => s), (s, u) => (g(), x(\"div\", Xa, [\n e.mode === \"display\" ? (g(), x(X, { key: 0 }, [\n B(t) ? (g(), x(\"div\", Ka, [\n b(\"p\", null, [\n b(\"b\", null, F(o.value), 1)\n ]),\n (g(!0), x(X, null, ge(B(t), (r) => (g(), x(\"li\", {\n key: r.name\n }, F(r.name), 1))), 128))\n ])) : (g(), x(\"span\", ja, \"No file selected\"))\n ], 64)) : (g(), x(X, { key: 1 }, [\n B(t) ? (g(), x(\"div\", Ja, [\n b(\"p\", null, [\n u[2] || (u[2] = Mt(\" You have selected: \", -1)),\n b(\"b\", null, F(o.value), 1)\n ]),\n (g(!0), x(X, null, ge(B(t), (r) => (g(), x(\"li\", {\n key: r.name\n }, F(r.name), 1))), 128))\n ])) : N(\"\", !0),\n b(\"button\", {\n type: \"button\",\n class: \"aform_form-btn\",\n disabled: e.mode === \"read\",\n onClick: u[0] || (u[0] = (r) => B(l)())\n }, F(e.label), 9, Qa),\n b(\"button\", {\n type: \"button\",\n disabled: !B(t) || e.mode === \"read\",\n class: \"aform_form-btn\",\n onClick: u[1] || (u[1] = (r) => B(n)())\n }, \"Reset\", 8, es)\n ], 64))\n ]));\n }\n}), ns = /* @__PURE__ */ ke(ts, [[\"__scopeId\", \"data-v-8eefd179\"]]), ls = { class: \"aform_form-element\" }, os = {\n key: 0,\n class: \"aform_display-value\"\n}, as = { class: \"aform_form-link-wrapper\" }, ss = { class: \"input-group\" }, rs = [\"disabled\", \"onKeydown\"], is = [\"onKeydown\"], us = {\n key: 0,\n class: \"autocomplete-results\"\n}, cs = {\n key: 0,\n class: \"autocomplete-result loading\"\n}, ds = [\"onMousedown\"], vs = {\n key: 0,\n class: \"aform_field-label\"\n}, fs = /* @__PURE__ */ te({\n __name: \"AFormLink\",\n props: /* @__PURE__ */ xe({\n schema: {},\n label: {},\n selectRange: { type: Boolean },\n mask: {},\n required: { type: Boolean },\n mode: {},\n uuid: {},\n validation: {},\n doctype: { default: () => {\n } },\n formatter: { type: Function, default: void 0 },\n icon: { default: \"arrow-right\" },\n disabled: { type: Boolean, default: !1 },\n filterFunction: { type: [String, Function], default: void 0 },\n isAsync: { type: Boolean, default: !1 }\n }, {\n modelValue: { default: { id: \"\", displayText: \"\" } },\n modelModifiers: {}\n }),\n emits: [\"update:modelValue\"],\n setup(e) {\n const t = Te(e, \"modelValue\"), l = R(() => {\n const D = t.value?.id;\n return D != null && D !== \"\";\n }), n = R(() => l.value ? e.formatter ? e.formatter(t.value) : t.value.displayText ?? String(t.value.id) : \"—\"), a = C(l.value ? n.value : \"\"), o = C(!1), s = C(!1), u = C([]), r = C(null), i = yt(\"aformLinkNavigator\", null), d = yt(\"aformLinkResolver\", null);\n le(\n () => t.value,\n (D) => {\n D != null && (typeof D == \"string\" || typeof D == \"number\") && (t.value = { id: D });\n },\n { immediate: !0 }\n ), le(\n () => t.value?.id,\n async (D) => {\n if (!(!D || t.value.displayText))\n try {\n let L;\n e.filterFunction ? (L = (await (typeof e.filterFunction == \"string\" ? bt(e.filterFunction) : e.filterFunction)(String(D))).find((Z) => String(Z.id) === String(D))?.displayText, L === void 0 && console.warn(\n `[AFormLink] filterFunction returned no matching result for id \"${D}\". The function must return an item whose \\`id\\` exactly matches the search string.`\n )) : d && e.doctype && (L = await d(e.doctype, D.toString()) ?? void 0), L && (a.value = L, t.value = { ...t.value, displayText: L });\n } catch {\n }\n },\n { immediate: !0 }\n );\n const m = () => {\n i && e.doctype ? i.navigate(e.doctype, t.value.id) : i && !e.doctype && console.warn(\n \"[AFormLink] Navigation requested but `doctype` prop is missing. Add `options` (or `doctype`) to the Link field definition to enable navigation.\"\n );\n }, I = async (D) => {\n if (!(!e.filterFunction || e.mode === \"read\")) {\n r.value = null, o.value = !0, e.isAsync && (s.value = !0);\n try {\n const L = typeof e.filterFunction == \"string\" ? bt(e.filterFunction) : e.filterFunction;\n u.value = await L(D) ?? [];\n } catch {\n u.value = [];\n } finally {\n s.value = !1;\n }\n }\n }, w = () => {\n o.value = !1, r.value = null, a.value = l.value ? n.value : \"\";\n }, p = () => {\n o.value && w();\n }, v = () => I(a.value), c = () => I(a.value), h = (D) => {\n t.value = D, a.value = D.displayText ?? String(D.id), o.value = !1, r.value = null;\n }, k = () => {\n const D = u.value.length;\n D && (r.value = r.value === null ? 0 : (r.value + 1) % D);\n }, E = () => {\n u.value.length && (r.value === null || r.value === 0 ? r.value = null : r.value -= 1);\n }, S = () => {\n r.value !== null && u.value[r.value] && h(u.value[r.value]);\n };\n return (D, L) => (g(), x(\"div\", ls, [\n e.mode === \"display\" ? (g(), x(\"span\", os, F(n.value), 1)) : (g(), x(X, { key: 1 }, [\n j((g(), x(\"div\", as, [\n b(\"div\", ss, [\n j(b(\"input\", {\n \"onUpdate:modelValue\": L[0] || (L[0] = (z) => a.value = z),\n type: \"text\",\n class: \"aform_input-field\",\n disabled: e.disabled || e.mode === \"read\",\n onInput: c,\n onFocus: v,\n onKeydown: [\n ce(ae(k, [\"prevent\"]), [\"down\"]),\n ce(ae(E, [\"prevent\"]), [\"up\"]),\n ce(ae(S, [\"prevent\"]), [\"enter\"]),\n ce(w, [\"esc\"]),\n ce(w, [\"tab\"])\n ]\n }, null, 40, rs), [\n [we, a.value]\n ]),\n l.value && !e.disabled ? (g(), x(\"button\", {\n key: 0,\n type: \"button\",\n class: \"aform_form-btn\",\n onClick: m,\n onKeydown: ce(ae(m, [\"prevent\"]), [\"enter\"])\n }, [\n b(\"span\", null, F(e.icon === \"chevron-right\" ? \"›\" : \"→\"), 1)\n ], 40, is)) : N(\"\", !0)\n ]),\n o.value ? (g(), x(\"ul\", us, [\n s.value ? (g(), x(\"li\", cs, \"Loading…\")) : (g(!0), x(X, { key: 1 }, ge(u.value, (z, H) => (g(), x(\"li\", {\n key: String(z.id),\n class: de([\"autocomplete-result\", { \"is-active\": H === r.value }]),\n onMousedown: ae((Z) => h(z), [\"prevent\"])\n }, F(z.displayText ?? String(z.id)), 43, ds))), 128))\n ])) : N(\"\", !0)\n ])), [\n [B(un), p]\n ]),\n e.label ? (g(), x(\"label\", vs, F(e.label), 1)) : N(\"\", !0)\n ], 64))\n ]));\n }\n}), ms = /* @__PURE__ */ ke(fs, [[\"__scopeId\", \"data-v-4b68886b\"]]), ps = { class: \"aform_form-element\" }, hs = { class: \"aform_display-value\" }, gs = { class: \"aform_field-label\" }, ys = [\"id\", \"disabled\", \"required\"], ws = [\"for\"], bs = [\"innerHTML\"], xs = /* @__PURE__ */ te({\n __name: \"ANumericInput\",\n props: /* @__PURE__ */ xe({\n schema: {},\n label: {},\n selectRange: { type: Boolean },\n mask: {},\n required: { type: Boolean },\n mode: {},\n uuid: {},\n validation: { default: () => ({ errorMessage: \"&nbsp;\" }) }\n }, {\n modelValue: {},\n modelModifiers: {}\n }),\n emits: [\"update:modelValue\"],\n setup(e) {\n const t = Te(e, \"modelValue\");\n return (l, n) => (g(), x(\"div\", ps, [\n e.mode === \"display\" ? (g(), x(X, { key: 0 }, [\n b(\"span\", hs, F(t.value ?? \"\"), 1),\n b(\"label\", gs, F(e.label), 1)\n ], 64)) : (g(), x(X, { key: 1 }, [\n j(b(\"input\", {\n id: e.uuid,\n \"onUpdate:modelValue\": n[0] || (n[0] = (a) => t.value = a),\n class: \"aform_input-field\",\n type: \"number\",\n disabled: e.mode === \"read\",\n required: e.required\n }, null, 8, ys), [\n [we, t.value]\n ]),\n b(\"label\", {\n class: \"aform_field-label\",\n for: e.uuid\n }, F(e.label), 9, ws),\n j(b(\"p\", {\n class: \"aform_error\",\n innerHTML: e.validation.errorMessage\n }, null, 8, bs), [\n [Ce, e.validation.errorMessage]\n ])\n ], 64))\n ]));\n }\n});\nfunction ks(e) {\n try {\n return bt(e);\n } catch {\n return;\n }\n}\nfunction Ms(e) {\n const t = e.value;\n if (!t) return;\n const l = ks(t);\n if (l) {\n const a = e.instance?.locale;\n return l(a);\n }\n return t;\n}\nfunction Is(e, t) {\n let l = e;\n const n = [t, \"/\", \"-\", \"(\", \")\", \" \"];\n for (const a of n)\n l = l.replaceAll(a, \"\");\n return l;\n}\nfunction Ts(e, t, l) {\n let n = t;\n for (const a of e) {\n const o = n.indexOf(l);\n if (o !== -1) {\n const s = n.substring(0, o), u = n.substring(o + 1);\n n = s + a + u;\n }\n }\n return n.slice(0, t.length);\n}\nfunction Ds(e, t) {\n const l = Ms(t);\n if (!l) return;\n const n = \"#\", a = e.value, o = Is(a, n);\n if (o) {\n const s = Ts(o, l, n), u = t.instance;\n u?.maskFilled && (u.maskFilled = !s.includes(n)), e.value = s;\n } else\n e.value = l;\n}\nconst $s = { class: \"aform_form-element\" }, Ss = { class: \"aform_display-value\" }, Cs = { class: \"aform_field-label\" }, Es = [\"id\", \"disabled\", \"maxlength\", \"required\"], Rs = [\"for\"], As = [\"innerHTML\"], Ls = /* @__PURE__ */ te({\n __name: \"ATextInput\",\n props: /* @__PURE__ */ xe({\n schema: {},\n label: {},\n selectRange: { type: Boolean },\n mask: {},\n required: { type: Boolean },\n mode: {},\n uuid: {},\n validation: { default: () => ({ errorMessage: \"&nbsp;\" }) }\n }, {\n modelValue: {},\n modelModifiers: {}\n }),\n emits: [\"update:modelValue\"],\n setup(e) {\n const t = C(!0), l = Te(e, \"modelValue\");\n return (n, a) => (g(), x(\"div\", $s, [\n e.mode === \"display\" ? (g(), x(X, { key: 0 }, [\n b(\"span\", Ss, F(l.value ?? \"\"), 1),\n b(\"label\", Cs, F(e.label), 1)\n ], 64)) : (g(), x(X, { key: 1 }, [\n j(b(\"input\", {\n id: e.uuid,\n \"onUpdate:modelValue\": a[0] || (a[0] = (o) => l.value = o),\n class: \"aform_input-field\",\n disabled: e.mode === \"read\",\n maxlength: e.mask && t.value ? e.mask.length : void 0,\n required: e.required\n }, null, 8, Es), [\n [we, l.value],\n [B(Ds), e.mask]\n ]),\n b(\"label\", {\n class: \"aform_field-label\",\n for: e.uuid\n }, F(e.label), 9, Rs),\n j(b(\"p\", {\n class: \"aform_error\",\n innerHTML: e.validation.errorMessage\n }, null, 8, As), [\n [Ce, e.validation.errorMessage]\n ])\n ], 64))\n ]));\n }\n}), Hs = { class: \"login-container\" }, Vs = { class: \"account-container\" }, Bs = { class: \"account-header\" }, Fs = { id: \"account-title\" }, Ps = { id: \"account-subtitle\" }, Ns = { class: \"login-form-container\" }, Zs = { class: \"login-form-email aform_form-element\" }, Os = [\"disabled\"], Gs = { class: \"login-form-password aform_form-element\" }, Us = [\"disabled\"], Ws = [\"disabled\"], qs = {\n key: 0,\n class: \"material-symbols-outlined loading-icon\"\n}, zs = /* @__PURE__ */ te({\n __name: \"Login\",\n props: {\n headerTitle: { default: \"Login\" },\n headerSubtitle: { default: \"Enter your email and password to login\" }\n },\n emits: [\"loginFailed\", \"loginSuccess\"],\n setup(e, { emit: t }) {\n const l = t, n = C(\"\"), a = C(\"\"), o = C(!1), s = C(!1);\n function u(r) {\n if (r.preventDefault(), o.value = !0, s.value) {\n o.value = !1, l(\"loginFailed\");\n return;\n }\n o.value = !1, l(\"loginSuccess\");\n }\n return (r, i) => (g(), x(\"div\", Hs, [\n b(\"div\", null, [\n b(\"div\", Vs, [\n b(\"div\", Bs, [\n b(\"h1\", Fs, F(e.headerTitle), 1),\n b(\"p\", Ps, F(e.headerSubtitle), 1)\n ]),\n b(\"form\", { onSubmit: u }, [\n b(\"div\", Ns, [\n b(\"div\", Zs, [\n i[2] || (i[2] = b(\"label\", {\n id: \"login-email\",\n for: \"email\",\n class: \"aform_field-label\"\n }, \"Email\", -1)),\n j(b(\"input\", {\n id: \"email\",\n \"onUpdate:modelValue\": i[0] || (i[0] = (d) => n.value = d),\n class: \"aform_input-field\",\n name: \"email\",\n placeholder: \"name@example.com\",\n type: \"email\",\n \"auto-capitalize\": \"none\",\n \"auto-complete\": \"email\",\n \"auto-correct\": \"off\",\n disabled: o.value\n }, null, 8, Os), [\n [we, n.value]\n ])\n ]),\n b(\"div\", Gs, [\n i[3] || (i[3] = b(\"label\", {\n id: \"login-password\",\n for: \"password\",\n class: \"aform_field-label\"\n }, \"Password\", -1)),\n j(b(\"input\", {\n id: \"password\",\n \"onUpdate:modelValue\": i[1] || (i[1] = (d) => a.value = d),\n class: \"aform_input-field\",\n name: \"password\",\n type: \"password\",\n disabled: o.value\n }, null, 8, Us), [\n [we, a.value]\n ])\n ]),\n b(\"button\", {\n class: \"btn\",\n disabled: o.value || !n.value || !a.value,\n onClick: u\n }, [\n o.value ? (g(), x(\"span\", qs, \"progress_activity\")) : N(\"\", !0),\n i[4] || (i[4] = b(\"span\", { id: \"login-form-button\" }, \"Login\", -1))\n ], 8, Ws)\n ])\n ], 32),\n i[5] || (i[5] = b(\"button\", { class: \"btn\" }, [\n b(\"span\", { id: \"forgot-password-button\" }, \"Forgot password?\")\n ], -1))\n ])\n ])\n ]));\n }\n}), Xs = /* @__PURE__ */ ke(zs, [[\"__scopeId\", \"data-v-d9ffd0a7\"]]);\nfunction Ks(e) {\n e.use(xo), e.component(\"ACheckbox\", Eo), e.component(\"AComboBox\", Ro), e.component(\"ADate\", pa), e.component(\"ADropdown\", Ta), e.component(\"ADatePicker\", rn), e.component(\"ADateTime\", kt), e.component(\"ADateRange\", Za), e.component(\"ADateSelection\", rt), e.component(\"AFieldset\", Ya), e.component(\"AFileAttach\", ns), e.component(\"AForm\", cn), e.component(\"AFormLink\", ms), e.component(\"ANumericInput\", xs), e.component(\"ATextInput\", Ls), e.component(\"ADuration\", La);\n}\nexport {\n Eo as ACheckbox,\n Ro as AComboBox,\n pa as ADate,\n rn as ADatePicker,\n Za as ADateRange,\n rt as ADateSelection,\n kt as ADateTime,\n Ta as ADropdown,\n La as ADuration,\n Ya as AFieldset,\n ns as AFileAttach,\n cn as AForm,\n ms as AFormLink,\n xs as ANumericInput,\n Ls as ATextInput,\n Xs as Login,\n bt as deserializeFunction,\n Ks as install\n};\n//# sourceMappingURL=aform.js.map\n","<template>\n\t<footer>\n\t\t<ul class=\"tabs\">\n\t\t\t<li class=\"hidebreadcrumbs\" @click=\"toggleBreadcrumbs\" @keydown.enter=\"toggleBreadcrumbs\">\n\t\t\t\t<a tabindex=\"0\"><div :class=\"rotateHideTabIcon\">×</div></a>\n\t\t\t</li>\n\t\t\t<li\n\t\t\t\tclass=\"hometab\"\n\t\t\t\t:style=\"{ display: breadcrumbsVisibile ? 'block' : 'none' }\"\n\t\t\t\t@click=\"navigateHome\"\n\t\t\t\t@keydown.enter=\"navigateHome\">\n\t\t\t\t<router-link to=\"/\" tabindex=\"0\">\n\t\t\t\t\t<svg class=\"icon\" aria-label=\"Home\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n\t\t\t\t\t\t<path d=\"M3 12l9-9 9 9\" />\n\t\t\t\t\t\t<path d=\"M9 21V12h6v9\" />\n\t\t\t\t\t</svg>\n\t\t\t\t</router-link>\n\t\t\t</li>\n\t\t\t<li\n\t\t\t\t:class=\"['searchtab', { 'search-active': searchVisible }]\"\n\t\t\t\t:style=\"{ display: breadcrumbsVisibile ? 'block' : 'none' }\">\n\t\t\t\t<a tabindex=\"0\">\n\t\t\t\t\t<svg\n\t\t\t\t\t\tv-show=\"!searchVisible\"\n\t\t\t\t\t\tclass=\"icon search-icon\"\n\t\t\t\t\t\trole=\"button\"\n\t\t\t\t\t\taria-label=\"Search\"\n\t\t\t\t\t\tviewBox=\"0 0 24 24\"\n\t\t\t\t\t\tfill=\"none\"\n\t\t\t\t\t\tstroke=\"currentColor\"\n\t\t\t\t\t\tstroke-width=\"2\"\n\t\t\t\t\t\t@click=\"toggleSearch\"\n\t\t\t\t\t\t@keydown.enter=\"toggleSearch\">\n\t\t\t\t\t\t<circle cx=\"11\" cy=\"11\" r=\"7\" />\n\t\t\t\t\t\t<path d=\"M21 21l-4.35-4.35\" />\n\t\t\t\t\t</svg>\n\t\t\t\t\t<input\n\t\t\t\t\t\tv-show=\"searchVisible\"\n\t\t\t\t\t\tref=\"searchinput\"\n\t\t\t\t\t\tv-model=\"searchText\"\n\t\t\t\t\t\ttype=\"text\"\n\t\t\t\t\t\tplaceholder=\"Search...\"\n\t\t\t\t\t\t@click.stop\n\t\t\t\t\t\t@input=\"handleSearchInput($event)\"\n\t\t\t\t\t\t@blur=\"handleSearch($event)\"\n\t\t\t\t\t\t@keydown.enter=\"handleSearch($event)\"\n\t\t\t\t\t\t@keydown.escape=\"toggleSearch\" />\n\t\t\t\t</a>\n\t\t\t</li>\n\t\t\t<li\n\t\t\t\tv-for=\"breadcrumb in breadcrumbs\"\n\t\t\t\t:key=\"breadcrumb.title\"\n\t\t\t\t:style=\"{ display: breadcrumbsVisibile ? 'block' : 'none' }\">\n\t\t\t\t<router-link tabindex=\"0\" :to=\"breadcrumb.to\"> {{ breadcrumb.title }} </router-link>\n\t\t\t</li>\n\t\t</ul>\n\t</footer>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed, nextTick, ref, useTemplateRef } from 'vue'\n\nconst { breadcrumbs = [] } = defineProps<{ breadcrumbs?: { title: string; to: string }[] }>()\n\nconst breadcrumbsVisibile = ref(true)\nconst searchVisible = ref(false)\nconst searchText = ref('')\nconst inputRef = useTemplateRef<HTMLInputElement>('searchinput')\n\nconst rotateHideTabIcon = computed(() => {\n\treturn breadcrumbsVisibile.value ? 'unrotated' : 'rotated'\n})\n\nconst toggleBreadcrumbs = () => {\n\tbreadcrumbsVisibile.value = !breadcrumbsVisibile.value\n}\n\nconst toggleSearch = async () => {\n\tsearchVisible.value = !searchVisible.value\n\tawait nextTick(() => {\n\t\tinputRef.value?.focus()\n\t})\n}\n\nconst handleSearchInput = (event: Event | MouseEvent) => {\n\tevent.preventDefault()\n\tevent.stopPropagation()\n}\n\nconst handleSearch = async (event: FocusEvent | KeyboardEvent) => {\n\tevent.preventDefault()\n\tevent.stopPropagation()\n\tawait toggleSearch()\n}\n\nconst navigateHome = (/* event: MouseEvent | KeyboardEvent */) => {\n\t// navigate home\n}\n</script>\n\n<style scoped>\nfooter {\n\tposition: fixed;\n\tbottom: 0px;\n\twidth: 100%;\n\tbackground-color: transparent;\n\theight: auto;\n\tmin-height: 2.4rem;\n\tz-index: 100;\n\ttext-align: left;\n\tfont-size: 100%;\n\tdisplay: flex;\n\tjustify-content: right;\n\tpadding: 0 0.75rem 0 0;\n\tbox-sizing: border-box;\n}\nul {\n\tdisplay: flex;\n\tflex-direction: row-reverse;\n\tmargin: 0;\n\tpadding: 0;\n\tlist-style: none;\n}\n\n.tabs li {\n\tfloat: left;\n\tlist-style-type: none;\n\tposition: relative;\n\tmargin-left: -1px;\n}\n\n/* Base tab styling */\n.tabs a {\n\tfloat: left;\n\tpadding: 0.5rem 1rem;\n\theight: 2.4rem;\n\tbox-sizing: border-box;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\ttext-decoration: none;\n\tcolor: var(--sc-gray-60, #666);\n\tbackground: var(--sc-btn-color, #ffffff);\n\tborder: 1px solid var(--sc-btn-border, #ccc);\n\tfont-size: 0.85rem;\n\tfont-family: var(--sc-font-family, system-ui, sans-serif);\n\ttransition: all 0.15s ease;\n\n\t/* Minimal ornamentation - subtle top radius only */\n\tborder-top-left-radius: 2px;\n\tborder-top-right-radius: 2px;\n}\n\n.tabs a:hover {\n\tbackground: var(--sc-btn-hover, #f2f2f2);\n}\n\n.tabs .router-link-active {\n\tz-index: 3;\n\tbackground: var(--sc-primary-color, #827553) !important;\n\tborder-color: var(--sc-primary-color, #827553) !important;\n\tcolor: var(--sc-primary-text-color, #fff) !important;\n}\n\n/* Pseudo-elements removed - minimal ornamentation style */\n\n/* Hide breadcrumbs tab */\n.hidebreadcrumbs a {\n\tmin-width: 2.4rem;\n\twidth: 2.4rem;\n\theight: 2.4rem;\n\tpadding: 0.5rem;\n\tbackground: var(--sc-btn-color, #ffffff);\n\tborder: 1px solid var(--sc-btn-border, #ccc);\n\tcolor: var(--sc-gray-60, #666);\n}\n\n.hidebreadcrumbs a div {\n\tfont-size: 1.2rem;\n}\n\n.rotated {\n\ttransform: rotate(45deg);\n\t-webkit-transform: rotate(45deg);\n\t-moz-transform: rotate(45deg);\n\t-ms-transform: rotate(45deg);\n\t-o-transform: rotate(45deg);\n\ttransition: transform 250ms ease;\n}\n.unrotated {\n\ttransform: rotate(0deg);\n\t-webkit-transform: rotate(0deg);\n\t-moz-transform: rotate(0deg);\n\t-ms-transform: rotate(0deg);\n\t-o-transform: rotate(0deg);\n\ttransition: transform 250ms ease;\n}\n\nli:active,\nli:hover,\nli:focus,\nli > a:active,\nli > a:hover,\nli > a:focus {\n\tz-index: 3;\n}\n\na:active,\na:hover,\na:focus {\n\toutline: 2px solid var(--sc-input-active-border-color, black);\n\tz-index: 3;\n}\n\n/* Home tab */\n.hometab a {\n\tmin-width: 2.4rem;\n\twidth: 2.4rem;\n\theight: 2.4rem;\n\tpadding: 0.5rem;\n\tbackground: var(--sc-btn-color, #ffffff);\n\tborder: 1px solid var(--sc-btn-border, #ccc);\n\tcolor: var(--sc-gray-60, #666);\n}\n\n/* SVG icon styling */\n.icon {\n\twidth: 1rem;\n\theight: 1rem;\n\tstroke: currentColor;\n\tflex-shrink: 0;\n}\n\n/* Search tab with animation */\n.searchtab {\n\toverflow: hidden;\n}\n\n.searchtab a {\n\tmin-width: 2.4rem;\n\theight: 2.4rem;\n\tpadding: 0.5rem;\n\tbackground: var(--sc-btn-color, #ffffff);\n\tborder: 1px solid var(--sc-btn-border, #ccc);\n\tcolor: var(--sc-gray-60, #666);\n\toverflow: hidden;\n\t/* Animation for smooth expand/collapse */\n\tmax-width: 2.4rem;\n\ttransition:\n\t\tmax-width 0.35s ease-in-out,\n\t\tpadding 0.35s ease-in-out,\n\t\tbackground 0.2s ease;\n}\n\n.searchtab .search-icon {\n\tcursor: pointer;\n}\n\n.searchtab input {\n\toutline: none;\n\tborder: 1px solid var(--sc-input-border-color, #ccc);\n\tborder-radius: 0.25rem;\n\tbackground-color: var(--sc-form-background, #ffffff);\n\tcolor: var(--sc-gray-80, #333);\n\ttext-align: left;\n\tfont-size: 0.875rem;\n\tpadding: 0.25rem 0.5rem;\n\twidth: 180px;\n\theight: 1.5rem;\n\tflex-shrink: 0;\n\topacity: 0;\n\ttransition: opacity 0.2s ease-in-out;\n\ttransition-delay: 0s;\n}\n\n.searchtab input:focus {\n\tborder-color: var(--sc-input-active-border-color, #4f46e5);\n\toutline: none;\n}\n\n.searchtab input::placeholder {\n\tcolor: var(--sc-input-label-color, #999);\n}\n\n/* Search active state - expanded with animation */\n.searchtab.search-active a {\n\tmax-width: 200px;\n\tmin-width: auto;\n\twidth: auto;\n\tpadding: 0.5rem 0.75rem;\n}\n\n.searchtab.search-active input {\n\topacity: 1;\n\ttransition-delay: 0.15s;\n}\n</style>\n","<template>\n\t<div class=\"desktop\" @click=\"handleClick\">\n\t\t<!-- Action Set -->\n\t\t<ActionSet :elements=\"actionElements\" @action-click=\"handleActionClick\" />\n\n\t\t<!-- Main content using AForm -->\n\t\t<AForm v-if=\"currentViewSchema.length > 0\" v-model:data=\"currentViewData\" :schema=\"currentViewSchema\" />\n\t\t<div v-else-if=\"!stonecrop\" class=\"loading\"><p>Initializing Stonecrop...</p></div>\n\t\t<div v-else class=\"loading\">\n\t\t\t<p>Loading {{ currentView }} data...</p>\n\t\t</div>\n\n\t\t<!-- Sheet Navigation -->\n\t\t<SheetNav :breadcrumbs=\"navigationBreadcrumbs\" />\n\n\t\t<!-- Command Palette -->\n\t\t<CommandPalette\n\t\t\t:is-open=\"commandPaletteOpen\"\n\t\t\t:search=\"searchCommands\"\n\t\t\tplaceholder=\"Type a command or search...\"\n\t\t\t@select=\"executeCommand\"\n\t\t\t@close=\"commandPaletteOpen = false\">\n\t\t\t<template #title=\"{ result }\">\n\t\t\t\t{{ result.title }}\n\t\t\t</template>\n\t\t\t<template #content=\"{ result }\">\n\t\t\t\t{{ result.description }}\n\t\t\t</template>\n\t\t</CommandPalette>\n\t</div>\n</template>\n\n<script setup lang=\"ts\">\nimport { useStonecrop } from '@stonecrop/stonecrop'\nimport { AForm, type AFormLinkNavigator, type ResolvedField, type ResolvedTable } from '@stonecrop/aform'\nimport type { ColumnSchema } from '@stonecrop/schema'\nimport { computed, onMounted, onUnmounted, provide, ref, unref, watch } from 'vue'\n\nimport ActionSet from './ActionSet.vue'\nimport SheetNav from './SheetNav.vue'\nimport CommandPalette from './CommandPalette.vue'\nimport type {\n\tActionElements,\n\tRouteAdapter,\n\tNavigationTarget,\n\tActionEventPayload,\n\tRecordOpenEventPayload,\n\tLoadRecordsEventPayload,\n\tLoadRecordEventPayload,\n} from '../types'\n\nconst {\n\tavailableDoctypes = [],\n\trouteAdapter,\n\tconfirmFn,\n\trecordIdField,\n} = defineProps<{\n\tavailableDoctypes?: string[]\n\t/**\n\t * Pluggable router adapter. When provided, Desktop uses these functions for all\n\t * routing instead of reaching into the registry's internal Vue Router instance.\n\t * Nuxt hosts (or any host with custom route conventions) should supply this.\n\t */\n\trouteAdapter?: RouteAdapter\n\t/**\n\t * Replacement for the native `confirm()` dialog. Desktop calls this before\n\t * performing a destructive action. Return `true` to proceed.\n\t * Defaults to the native `window.confirm` if omitted.\n\t */\n\tconfirmFn?: (message: string) => boolean | Promise<boolean>\n\t/**\n\t * The field name that holds the canonical record ID (e.g., 'rowId' for UUID).\n\t * Used for navigation and table row identification.\n\t * Defaults to 'id' if not specified.\n\t */\n\trecordIdField?: string\n}>()\n\nconst emit = defineEmits<{\n\t/**\n\t * Fired when the user triggers an FSM transition (action button click).\n\t * The host app is responsible for calling the server, persisting state, etc.\n\t */\n\taction: [payload: ActionEventPayload]\n\t/**\n\t * Fired when Desktop wants to navigate to a different view.\n\t * Also calls routeAdapter.navigate() if an adapter is provided.\n\t */\n\tnavigate: [target: NavigationTarget]\n\t/**\n\t * Fired when the user opens a specific record.\n\t */\n\t'record:open': [payload: RecordOpenEventPayload]\n\t/**\n\t * Fired when Desktop needs records for a list view.\n\t * The host app should fetch and populate HST.\n\t */\n\t'load-records': [payload: LoadRecordsEventPayload]\n\t/**\n\t * Fired when Desktop needs a single record for a form view.\n\t * The host app should fetch and populate HST.\n\t */\n\t'load-record': [payload: LoadRecordEventPayload]\n}>()\n\nconst { stonecrop } = useStonecrop()\n\n// State\nconst loading = ref(false)\nconst commandPaletteOpen = ref(false)\n\n// Form/list data management — each view produces a different data shape.\n// List views (doctypes, records) return table row data keyed by fieldname.\n// Record view returns HST record fields for two-way binding.\nconst currentViewData = computed<Record<string, any>>({\n\tget() {\n\t\t// Doctypes list — rows come from availableDoctypes prop (reactive via availableDoctypes)\n\t\tif (currentView.value === 'doctypes') {\n\t\t\treturn {\n\t\t\t\tdoctypes_table:\n\t\t\t\t\tavailableDoctypes?.map(doctype => ({\n\t\t\t\t\t\tid: doctype,\n\t\t\t\t\t\tdoctype,\n\t\t\t\t\t\tdisplay_name: formatDoctypeName(doctype),\n\t\t\t\t\t\trecord_count: getRecordCount(doctype),\n\t\t\t\t\t\tactions: 'View Records',\n\t\t\t\t\t})) ?? [],\n\t\t\t}\n\t\t}\n\n\t\t// Records list — rows come from HST store (reactive because HST is Vue reactive())\n\t\tif (currentView.value === 'records') {\n\t\t\tconst idField = recordIdField || 'id'\n\t\t\treturn {\n\t\t\t\trecords_table: getRecords().map(record =>\n\t\t\t\t\tObject.assign({}, record, {\n\t\t\t\t\t\tid: record[idField] || record.id || '',\n\t\t\t\t\t\tactions: 'Edit | Delete',\n\t\t\t\t\t})\n\t\t\t\t),\n\t\t\t}\n\t\t}\n\n\t\t// Record form — read single record from HST\n\t\tif (!stonecrop.value || !currentDoctype.value || !currentRecordId.value) {\n\t\t\treturn {}\n\t\t}\n\n\t\ttry {\n\t\t\tconst record = stonecrop.value.getRecordById(currentDoctype.value, currentRecordId.value)\n\t\t\t// Return a plain shallow copy so AForm mutations don't propagate directly into\n\t\t\t// the HST reactive object, which would bypass field-trigger diffing and cause\n\t\t\t// setupDeepReactivity to fire triggers for all fields on every keystroke.\n\t\t\tconst flat: Record<string, any> = { ...record?.get('') }\n\n\t\t\t// AFieldset receives data[fieldsetFieldname] as its data prop, so the fieldset's\n\t\t\t// children must be grouped under the fieldset key. The server returns flat SQL rows,\n\t\t\t// so we nest fieldset children here before AForm renders them.\n\t\t\tconst doctype = stonecrop.value.registry.registry[currentDoctype.value]\n\t\t\tif (doctype) {\n\t\t\t\tfor (const field of doctype.getSchemaArray()) {\n\t\t\t\t\tif (field.kind === 'fieldset') {\n\t\t\t\t\t\tconst nested: Record<string, any> = {}\n\t\t\t\t\t\tfor (const child of field.schema) {\n\t\t\t\t\t\t\tif (child.fieldname) nested[child.fieldname] = flat[child.fieldname]\n\t\t\t\t\t\t}\n\t\t\t\t\t\tflat[field.fieldname] = nested\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn flat\n\t\t} catch {\n\t\t\treturn {}\n\t\t}\n\t},\n\tset(newData: Record<string, any>) {\n\t\t// List views are read-only from AForm's perspective — HST writes only apply to record form\n\t\tif (currentView.value !== 'record') return\n\t\tif (!stonecrop.value || !currentDoctype.value || !currentRecordId.value) {\n\t\t\treturn\n\t\t}\n\n\t\ttry {\n\t\t\t// AForm emits nested data for fieldsets: { fieldsetKey: { childA: val } }.\n\t\t\t// HST and the server both expect flat rows, so flatten fieldset values back before writing.\n\t\t\tconst doctype = stonecrop.value.registry.registry[currentDoctype.value]\n\t\t\tconst fieldsetNames = new Set<string>()\n\t\t\tif (doctype) {\n\t\t\t\tfor (const field of doctype.getSchemaArray()) {\n\t\t\t\t\tif (field.kind === 'fieldset') {\n\t\t\t\t\t\tfieldsetNames.add(field.fieldname)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Two-pass flatten: non-fieldset keys first, then fieldset children.\n\t\t\t// Fieldset children must be applied last — AForm may emit stale flat copies\n\t\t\t// of fieldset children alongside the updated nested value, and the nested\n\t\t\t// value must win regardless of key insertion order.\n\t\t\tconst flatData: Record<string, any> = {}\n\t\t\tconst fieldsetValues: Record<string, any>[] = []\n\t\t\tfor (const [key, value] of Object.entries(newData)) {\n\t\t\t\tif (fieldsetNames.has(key) && value && typeof value === 'object' && !Array.isArray(value)) {\n\t\t\t\t\tfieldsetValues.push(value)\n\t\t\t\t} else {\n\t\t\t\t\tflatData[key] = value\n\t\t\t\t}\n\t\t\t}\n\t\t\tfor (const nestedValue of fieldsetValues) {\n\t\t\t\tObject.assign(flatData, nestedValue)\n\t\t\t}\n\n\t\t\t// Only update fields that actually changed. Never write undefined — AForm may emit\n\t\t\t// schema fields absent from the record as undefined; writing them would silently\n\t\t\t// clear values that exist in HST. Explicit null is allowed (intentional clear).\n\t\t\tconst hstStore = stonecrop.value.getStore()\n\t\t\tfor (const [fieldname, value] of Object.entries(flatData)) {\n\t\t\t\tif (value === undefined) continue\n\t\t\t\tconst fieldPath = `${currentDoctype.value}.${currentRecordId.value}.${fieldname}`\n\t\t\t\tconst currentValue = hstStore.has(fieldPath) ? hstStore.get(fieldPath) : undefined\n\t\t\t\tif (currentValue !== value) {\n\t\t\t\t\thstStore.set(fieldPath, value)\n\t\t\t\t}\n\t\t\t}\n\t\t} catch (error) {\n\t\t\tconsole.warn('HST update failed:', error)\n\t\t}\n\t},\n})\n\n// Computed properties for current route context.\n// When a routeAdapter is provided it takes full precedence over the registry's internal router.\nconst route = computed(() => (routeAdapter ? null : unref(stonecrop.value?.registry.router?.currentRoute)))\nconst router = computed(() => (routeAdapter ? null : stonecrop.value?.registry.router))\nconst currentDoctype = computed(() => {\n\tif (routeAdapter) return routeAdapter.getCurrentDoctype()\n\tif (!route.value) return ''\n\n\t// First check if we have actualDoctype in meta (from registered routes)\n\tif (route.value.meta?.actualDoctype) {\n\t\treturn route.value.meta.actualDoctype as string\n\t}\n\n\t// For named routes, use params.doctype\n\tif (route.value.params.doctype) {\n\t\treturn route.value.params.doctype.toString()\n\t}\n\n\t// For catch-all routes that haven't been registered yet, extract from path\n\tconst pathMatch = route.value.params.pathMatch as string[] | undefined\n\tif (pathMatch && pathMatch.length > 0) {\n\t\treturn pathMatch[0]\n\t}\n\n\treturn ''\n})\n\n// The route doctype for display and navigation (e.g., 'todo')\nconst routeDoctype = computed(() => {\n\tif (routeAdapter) return routeAdapter.getCurrentDoctype()\n\tif (!route.value) return ''\n\n\t// Check route meta first\n\tif (route.value.meta?.doctype) {\n\t\treturn route.value.meta.doctype as string\n\t}\n\n\t// For named routes, use params.doctype\n\tif (route.value.params.doctype) {\n\t\treturn route.value.params.doctype.toString()\n\t}\n\n\t// For catch-all routes, extract from path\n\tconst pathMatch = route.value.params.pathMatch as string[] | undefined\n\tif (pathMatch && pathMatch.length > 0) {\n\t\treturn pathMatch[0]\n\t}\n\n\treturn ''\n})\n\nconst currentRecordId = computed(() => {\n\tif (routeAdapter) return routeAdapter.getCurrentRecordId()\n\tif (!route.value) return ''\n\n\t// For named routes, use params.recordId\n\tif (route.value.params.recordId) {\n\t\treturn route.value.params.recordId.toString()\n\t}\n\n\t// For catch-all routes that haven't been registered yet, extract from path\n\tconst pathMatch = route.value.params.pathMatch as string[] | undefined\n\tif (pathMatch && pathMatch.length > 1) {\n\t\treturn pathMatch[1]\n\t}\n\n\treturn ''\n})\nconst isNewRecord = computed(() => currentRecordId.value?.startsWith('new-'))\n\n// Determine current view based on route\nconst currentView = computed(() => {\n\tif (routeAdapter) return routeAdapter.getCurrentView()\n\tif (!route.value) {\n\t\treturn 'doctypes'\n\t}\n\n\t// Home route\n\tif (route.value.name === 'home' || route.value.path === '/') {\n\t\treturn 'doctypes'\n\t}\n\n\t// Named routes from registered doctypes\n\tif (route.value.name && route.value.name !== 'catch-all') {\n\t\tconst routeName = route.value.name as string\n\t\tif (routeName.includes('form') || route.value.params.recordId) {\n\t\t\treturn 'record'\n\t\t} else if (routeName.includes('list') || route.value.params.doctype) {\n\t\t\treturn 'records'\n\t\t}\n\t}\n\n\t// Catch-all route - determine from path structure\n\tconst pathMatch = route.value.params.pathMatch as string[] | undefined\n\tif (pathMatch && pathMatch.length > 0) {\n\t\tconst view = pathMatch.length === 1 ? 'records' : 'record'\n\t\treturn view\n\t}\n\n\treturn 'doctypes'\n})\n\n// Computed properties (now that all helper functions are defined)\n// Helper function to get available transitions for current record.\n// Reads the actual FSM state from the record's `status` field (or falls back to the\n// workflow initial state) so the available action buttons always reflect reality.\nconst getAvailableTransitions = () => {\n\tif (!stonecrop.value || !currentDoctype.value || !currentRecordId.value) {\n\t\treturn []\n\t}\n\n\ttry {\n\t\tconst doctype = stonecrop.value.registry.getDoctype(currentDoctype.value)\n\t\tif (!doctype?.workflow) return []\n\n\t\t// Delegate state resolution to Stonecrop — reads record 'status', falls back to workflow.initial\n\t\tconst currentState = stonecrop.value.getRecordState(currentDoctype.value, currentRecordId.value)\n\n\t\t// Delegate transition lookup to Doctype — no more manual workflow introspection\n\t\tconst transitions = doctype.getAvailableTransitions(currentState)\n\n\t\tconst recordData = currentViewData.value || {}\n\n\t\t// Each transition emits an 'action' event. The host app decides what to do\n\t\t// (call the server, trigger an FSM actor, update HST, etc.).\n\t\treturn transitions.map(({ name, targetState }) => ({\n\t\t\tlabel: `${name} (→ ${targetState})`,\n\t\t\taction: () => {\n\t\t\t\temit('action', {\n\t\t\t\t\tname,\n\t\t\t\t\tdoctype: currentDoctype.value,\n\t\t\t\t\trecordId: currentRecordId.value,\n\t\t\t\t\tdata: recordData,\n\t\t\t\t})\n\t\t\t},\n\t\t}))\n\t} catch (error) {\n\t\tconsole.warn('Error getting available transitions:', error)\n\t\treturn []\n\t}\n}\n\nconst actionElements = computed(() => {\n\tconst elements: ActionElements[] = []\n\n\tswitch (currentView.value) {\n\t\tcase 'records':\n\t\t\telements.push({\n\t\t\t\ttype: 'button',\n\t\t\t\tlabel: 'New Record',\n\t\t\t\taction: () => void createNewRecord(),\n\t\t\t})\n\t\t\tbreak\n\t\tcase 'record': {\n\t\t\t// Populate the Actions dropdown with every FSM transition available in the\n\t\t\t// record's current state. Clicking a transition emits 'action'.\n\t\t\tconst transitionActions = getAvailableTransitions()\n\t\t\tif (transitionActions.length > 0) {\n\t\t\t\telements.push({\n\t\t\t\t\ttype: 'dropdown',\n\t\t\t\t\tlabel: 'Actions',\n\t\t\t\t\tactions: transitionActions,\n\t\t\t\t})\n\t\t\t}\n\t\t\tbreak\n\t\t}\n\t}\n\n\treturn elements\n})\n\nconst navigationBreadcrumbs = computed(() => {\n\tconst breadcrumbs: { title: string; to: string }[] = []\n\n\tif (currentView.value === 'records' && routeDoctype.value) {\n\t\tbreadcrumbs.push(\n\t\t\t{ title: 'Home', to: '/' },\n\t\t\t{ title: formatDoctypeName(routeDoctype.value), to: `/${routeDoctype.value}` }\n\t\t)\n\t} else if (currentView.value === 'record' && routeDoctype.value) {\n\t\tconst recordPath = currentRecordId.value\n\t\t\t? `/${routeDoctype.value}/${currentRecordId.value}`\n\t\t\t: (route.value?.fullPath ?? '')\n\t\tbreadcrumbs.push(\n\t\t\t{ title: 'Home', to: '/' },\n\t\t\t{ title: formatDoctypeName(routeDoctype.value), to: `/${routeDoctype.value}` },\n\t\t\t{ title: isNewRecord.value ? 'New Record' : 'Edit Record', to: recordPath }\n\t\t)\n\t}\n\n\treturn breadcrumbs\n})\n\n// Command palette functionality\ntype Command = {\n\ttitle: string\n\tdescription: string\n\taction: () => void\n}\n\nconst searchCommands = (query: string): Command[] => {\n\tconst commands: Command[] = [\n\t\t{\n\t\t\ttitle: 'Go Home',\n\t\t\tdescription: 'Navigate to the home page',\n\t\t\taction: () => void doNavigate({ view: 'doctypes' }),\n\t\t},\n\t\t{\n\t\t\ttitle: 'Toggle Command Palette',\n\t\t\tdescription: 'Open/close the command palette',\n\t\t\taction: () => (commandPaletteOpen.value = !commandPaletteOpen.value),\n\t\t},\n\t]\n\n\t// Add doctype-specific commands\n\tif (routeDoctype.value) {\n\t\tcommands.push({\n\t\t\ttitle: `View ${formatDoctypeName(routeDoctype.value)} Records`,\n\t\t\tdescription: `Navigate to ${routeDoctype.value} list`,\n\t\t\taction: () => void doNavigate({ view: 'records', doctype: routeDoctype.value }),\n\t\t})\n\n\t\tcommands.push({\n\t\t\ttitle: `Create New ${formatDoctypeName(routeDoctype.value)}`,\n\t\t\tdescription: `Create a new ${routeDoctype.value} record`,\n\t\t\taction: () => void createNewRecord(),\n\t\t})\n\t}\n\n\t// Add available doctypes as commands\n\tavailableDoctypes.forEach(doctype => {\n\t\tcommands.push({\n\t\t\ttitle: `View ${formatDoctypeName(doctype)}`,\n\t\t\tdescription: `Navigate to ${doctype} list`,\n\t\t\taction: () => void doNavigate({ view: 'records', doctype }),\n\t\t})\n\t})\n\n\t// Filter commands based on query\n\tif (!query) return commands\n\n\treturn commands.filter(\n\t\tcmd =>\n\t\t\tcmd.title.toLowerCase().includes(query.toLowerCase()) ||\n\t\t\tcmd.description.toLowerCase().includes(query.toLowerCase())\n\t)\n}\n\nconst executeCommand = (command: Command) => {\n\tcommand.action()\n\tcommandPaletteOpen.value = false\n}\n\n// Helper functions - moved here to avoid \"before initialization\" errors\nconst formatDoctypeName = (doctype: string): string => {\n\treturn doctype\n\t\t.split('-')\n\t\t.map(word => word.charAt(0).toUpperCase() + word.slice(1))\n\t\t.join(' ')\n}\n\nconst getRecordCount = (doctype: string): number => {\n\tif (!stonecrop.value) return 0\n\tconst recordIds = stonecrop.value.getRecordIds(doctype)\n\treturn recordIds.length\n}\n\n// Internal navigation helper: emits 'navigate', then calls the adapter (if any)\n// or falls back to the registry's Vue Router instance.\nconst doNavigate = async (target: NavigationTarget) => {\n\temit('navigate', target)\n\tif (routeAdapter) {\n\t\tawait routeAdapter.navigate(target)\n\t} else {\n\t\tif (target.view === 'doctypes') {\n\t\t\tawait router.value?.push('/')\n\t\t} else if (target.view === 'records' && target.doctype) {\n\t\t\tawait router.value?.push(`/${target.doctype}`)\n\t\t} else if (target.view === 'record' && target.doctype && target.recordId) {\n\t\t\tawait router.value?.push(`/${target.doctype}/${target.recordId}`)\n\t\t}\n\t}\n}\n\nconst navigateToDoctype = async (doctype: string) => {\n\tawait doNavigate({ view: 'records', doctype })\n}\n\nconst openRecord = async (recordId: string) => {\n\tconst doctype = routeDoctype.value\n\temit('record:open', { doctype, recordId })\n\tawait doNavigate({ view: 'record', doctype, recordId })\n}\n\nconst createNewRecord = async () => {\n\tconst newId = `new-${Date.now()}`\n\tawait doNavigate({ view: 'record', doctype: routeDoctype.value, recordId: newId })\n}\n\n// Flatten Fieldset containers into individual columns for list/table views.\n// A Fieldset groups form fields visually but has no DB column; its children are the\n// actual data fields and should appear as flat columns in a list view.\nconst flattenFieldsets = (fields: ResolvedField[]): ResolvedField[] => {\n\tconst result: ResolvedField[] = []\n\tfor (const field of fields) {\n\t\tif (field.kind === 'fieldset') {\n\t\t\tresult.push(...flattenFieldsets(field.schema))\n\t\t} else {\n\t\t\tresult.push(field)\n\t\t}\n\t}\n\treturn result\n}\n\n// Schema generator functions - moved here to be available to computed properties\nconst getDoctypesSchema = (): ResolvedField[] => {\n\tif (!availableDoctypes?.length) return []\n\n\treturn [\n\t\t{\n\t\t\tkind: 'table' as const,\n\t\t\tfieldname: 'doctypes_table',\n\t\t\tcomponent: 'ATable',\n\t\t\tlabel: 'Doctypes',\n\t\t\tschema: [\n\t\t\t\t{\n\t\t\t\t\tfieldname: 'doctype',\n\t\t\t\t\tlabel: 'Doctype',\n\t\t\t\t\tfieldtype: 'Data',\n\t\t\t\t\talign: 'left' as const,\n\t\t\t\t\tedit: false,\n\t\t\t\t\twidth: '20ch',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tfieldname: 'display_name',\n\t\t\t\t\tlabel: 'Name',\n\t\t\t\t\tfieldtype: 'Data',\n\t\t\t\t\talign: 'left' as const,\n\t\t\t\t\tedit: false,\n\t\t\t\t\twidth: '30ch',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tfieldname: 'record_count',\n\t\t\t\t\tlabel: 'Records',\n\t\t\t\t\tfieldtype: 'Int',\n\t\t\t\t\talign: 'center' as const,\n\t\t\t\t\tedit: false,\n\t\t\t\t\twidth: '15ch',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tfieldname: 'actions',\n\t\t\t\t\tlabel: 'Actions',\n\t\t\t\t\tfieldtype: 'Data',\n\t\t\t\t\talign: 'center' as const,\n\t\t\t\t\tedit: false,\n\t\t\t\t\twidth: '20ch',\n\t\t\t\t},\n\t\t\t],\n\t\t\tconfig: { view: 'list' as const, fullWidth: true },\n\t\t} satisfies ResolvedTable,\n\t]\n}\n\nconst getRecordsSchema = (): ResolvedField[] => {\n\tif (!currentDoctype.value) return []\n\tif (!stonecrop.value) return []\n\n\tconst registry = stonecrop.value.registry\n\tconst doctype = registry.registry[currentDoctype.value]\n\n\tif (!doctype) return []\n\n\tconst schema = registry.resolveSchema(doctype)\n\n\t// If no schema is available, let the template fallback handle the loading state\n\tif (schema.length === 0) return []\n\n\treturn [\n\t\t{\n\t\t\tkind: 'table' as const,\n\t\t\tfieldname: 'records_table',\n\t\t\tcomponent: 'ATable',\n\t\t\tschema: [\n\t\t\t\t...(flattenFieldsets(schema) as ColumnSchema[]),\n\t\t\t\t{ fieldname: 'actions', label: 'Actions', fieldtype: 'Data' },\n\t\t\t],\n\t\t\tconfig: { view: 'list' as const, fullWidth: true },\n\t\t} satisfies ResolvedTable,\n\t]\n}\n\nconst getRecordFormSchema = (): ResolvedField[] => {\n\tif (!currentDoctype.value) return []\n\tif (!stonecrop.value) return []\n\n\ttry {\n\t\tconst registry = stonecrop.value?.registry\n\t\tconst doctype = registry?.registry[currentDoctype.value]\n\n\t\tif (!doctype?.schema) {\n\t\t\t// Let the template fallback handle the loading state\n\t\t\treturn []\n\t\t}\n\n\t\treturn registry.resolveSchema(doctype)\n\t} catch {\n\t\treturn []\n\t}\n}\n\n// Additional data helper functions\nconst getRecords = () => {\n\tif (!stonecrop.value || !currentDoctype.value) {\n\t\treturn []\n\t}\n\n\tconst recordsNode = stonecrop.value.records(currentDoctype.value)\n\tconst recordsData = recordsNode?.get('')\n\n\tif (recordsData && typeof recordsData === 'object' && !Array.isArray(recordsData)) {\n\t\treturn Object.values(recordsData as Record<string, any>)\n\t}\n\n\treturn []\n}\n\n// Schema for different views - defined here after all helper functions are available\nconst currentViewSchema = computed(() => {\n\tswitch (currentView.value) {\n\t\tcase 'doctypes':\n\t\t\treturn getDoctypesSchema()\n\t\tcase 'records':\n\t\t\treturn getRecordsSchema()\n\t\tcase 'record':\n\t\t\treturn getRecordFormSchema()\n\t\tdefault:\n\t\t\treturn []\n\t}\n})\n\nconst handleActionClick = (_label: string, action: (() => void | Promise<void>) | undefined) => {\n\tif (action) {\n\t\tvoid action()\n\t}\n}\n\n// Desktop does NOT own the delete lifecycle — it asks for confirmation, then emits\n// an 'action' event. The host app is responsible for removing the record from HST\n// and calling the server.\nconst handleDelete = async (recordId?: string) => {\n\tconst targetRecordId = recordId || currentRecordId.value\n\tif (!targetRecordId) return\n\n\tconst confirmed = confirmFn\n\t\t? await confirmFn('Are you sure you want to delete this record?')\n\t\t: confirm('Are you sure you want to delete this record?')\n\n\tif (confirmed) {\n\t\temit('action', {\n\t\t\tname: 'DELETE',\n\t\t\tdoctype: currentDoctype.value,\n\t\t\trecordId: targetRecordId,\n\t\t\tdata: currentViewData.value || {},\n\t\t})\n\t}\n}\n\n// Event handlers\nconst getRecordIdFromRow = (rowElement: HTMLTableRowElement): string | null => {\n\tconst cell = rowElement.querySelector('td[data-rowindex]')\n\tif (!cell) return null\n\n\tconst rowIndexAttr = cell.getAttribute('data-rowindex')\n\tif (rowIndexAttr === null) return null\n\n\tconst rowIndex = parseInt(rowIndexAttr, 10)\n\tif (isNaN(rowIndex)) return null\n\n\tconst records = getRecords()\n\tconst record = records[rowIndex]\n\tif (!record) return null\n\n\tconst idField = recordIdField || 'id'\n\treturn record[idField] || record.id || null\n}\n\nconst handleClick = async (event: Event) => {\n\tconst target = event.target as HTMLElement\n\tconst action = target.getAttribute('data-action')\n\n\tif (action === 'create') {\n\t\tawait createNewRecord()\n\t}\n\n\tconst cell = target.closest('td, th')\n\tif (cell) {\n\t\tconst cellText = cell.textContent?.trim()\n\t\tconst row = cell.closest('tr')\n\n\t\tif (cellText === 'View Records' && row) {\n\t\t\t// Get the doctype from the row data\n\t\t\tconst cells = row.querySelectorAll('td')\n\t\t\tif (cells.length > 0) {\n\t\t\t\tconst doctypeCell = cells[1] // Assuming doctype is in second column (first column is index)\n\t\t\t\tconst doctype = doctypeCell.textContent?.trim()\n\t\t\t\tif (doctype) {\n\t\t\t\t\tawait navigateToDoctype(doctype)\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (cellText?.includes('Edit') && row) {\n\t\t\tconst recordId = getRecordIdFromRow(row)\n\t\t\tif (recordId) {\n\t\t\t\tawait openRecord(recordId)\n\t\t\t}\n\t\t} else if (cellText?.includes('Delete') && row) {\n\t\t\tconst recordId = getRecordIdFromRow(row)\n\t\t\tif (recordId) {\n\t\t\t\tawait handleDelete(recordId)\n\t\t\t}\n\t\t}\n\t}\n}\n\nconst loadRecordData = async () => {\n\tif (!stonecrop.value || !currentDoctype.value || isNewRecord.value) return\n\n\t// Record already in HST — nothing to fetch.\n\tif (stonecrop.value.getRecordById(currentDoctype.value, currentRecordId.value)) return\n\n\t// Record absent and a client is configured — fetch directly so the form\n\t// populates even when the list view was never visited (direct URL navigation).\n\tif (stonecrop.value.getClient()) {\n\t\tloading.value = true\n\t\ttry {\n\t\t\tawait stonecrop.value.getRecord(currentDoctype.value, currentRecordId.value)\n\t\t} catch (error) {\n\t\t\tconsole.warn('Error fetching record:', error)\n\t\t} finally {\n\t\t\tloading.value = false\n\t\t}\n\t}\n}\n\n// Watch for route changes to load appropriate data\nwatch(\n\t[currentView, currentDoctype, currentRecordId],\n\t() => {\n\t\tif (currentView.value === 'records' && currentDoctype.value) {\n\t\t\t// Emit load-records event so host app can populate HST\n\t\t\temit('load-records', { doctype: currentDoctype.value })\n\t\t} else if (currentView.value === 'record' && currentDoctype.value && currentRecordId.value) {\n\t\t\t// Emit load-record event so host app can fetch and populate HST\n\t\t\temit('load-record', { doctype: currentDoctype.value, recordId: currentRecordId.value })\n\t\t\tvoid loadRecordData()\n\t\t}\n\t},\n\t{ immediate: true }\n)\n\n// Stonecrop reactive computed properties update automatically when the instance\n// becomes available — no manual watcher needed.\n\n// Provide navigation helpers and an emitAction convenience function to child components.\nconst desktopMethods = {\n\tnavigateToDoctype,\n\topenRecord,\n\tcreateNewRecord,\n\thandleDelete,\n\t/**\n\t * Convenience wrapper so child components (e.g. slot content) can emit\n\t * an action event without needing a direct reference to the emit function.\n\t */\n\temitAction: (name: string, data?: Record<string, any>) => {\n\t\temit('action', {\n\t\t\tname,\n\t\t\tdoctype: currentDoctype.value,\n\t\t\trecordId: currentRecordId.value,\n\t\t\tdata: data ?? currentViewData.value ?? {},\n\t\t})\n\t},\n}\n\nprovide('desktopMethods', desktopMethods)\n\n// Provide a navigator for AFormLink so the arrow button navigates to the linked record.\nprovide('aformLinkNavigator', {\n\tnavigate: (doctype: string, id: string | number) => {\n\t\tvoid doNavigate({ view: 'record', doctype, recordId: String(id) })\n\t},\n} satisfies AFormLinkNavigator)\n\nfunction toDisplayString(rec: Record<string, unknown> | undefined): string | undefined {\n\tif (!rec) return undefined\n\tconst val = rec.name ?? rec.title ?? rec.displayText\n\treturn typeof val === 'string' || typeof val === 'number' ? String(val) : undefined\n}\n\n// Provide a resolver for AFormLink to look up display text by doctype + id.\n// Checks HST first (sync); falls back to an async client fetch if not cached.\nprovide('aformLinkResolver', async (doctypeSlug: string, id: string): Promise<string | undefined> => {\n\tif (!stonecrop.value) return undefined\n\ttry {\n\t\tconst cached = stonecrop.value.getRecordById(doctypeSlug, id)?.get('') as Record<string, unknown> | undefined\n\t\tconst cachedDisplay = toDisplayString(cached)\n\t\tif (cachedDisplay != null) return cachedDisplay\n\t\tawait stonecrop.value.getRecord(doctypeSlug, id)\n\t\tconst fetched = stonecrop.value.getRecordById(doctypeSlug, id)?.get('') as Record<string, unknown> | undefined\n\t\treturn toDisplayString(fetched)\n\t} catch {\n\t\treturn undefined\n\t}\n})\n\nconst handleKeydown = (event: KeyboardEvent) => {\n\tif ((event.ctrlKey || event.metaKey) && event.key === 'k') {\n\t\tevent.preventDefault()\n\t\tcommandPaletteOpen.value = true\n\t}\n\tif (event.key === 'Escape' && commandPaletteOpen.value) {\n\t\tcommandPaletteOpen.value = false\n\t}\n}\n\nonMounted(() => {\n\tdocument.addEventListener('keydown', handleKeydown)\n})\n\nonUnmounted(() => {\n\tdocument.removeEventListener('keydown', handleKeydown)\n})\n</script>\n","import { App, type Plugin } from 'vue'\n\nimport ActionSet from '../components/ActionSet.vue'\nimport CommandPalette from '../components/CommandPalette.vue'\nimport Desktop from '../components/Desktop.vue'\nimport SheetNav from '../components/SheetNav.vue'\n\n/**\n * This is the main plugin that will be used to register all the desktop components.\n * @public\n */\nconst plugin: Plugin = {\n\tinstall: (app: App) => {\n\t\tapp.component('ActionSet', ActionSet)\n\t\tapp.component('CommandPalette', CommandPalette)\n\t\tapp.component('Desktop', Desktop)\n\t\tapp.component('SheetNav', SheetNav)\n\t},\n}\n\nexport default plugin\n"],"names":["emit","__emit","dropdownStates","ref","isOpen","dropdownOpen","onMounted","closeDropdowns","onClick","toggleDropdown","index","showDropdown","handleClick","action","label","_createElementBlock","_normalizeClass","_createElementVNode","_hoisted_1","_openBlock","_Fragment","_renderList","__props","el","_hoisted_2","$event","_toDisplayString","_hoisted_3","_hoisted_4","_hoisted_5","_hoisted_6","_hoisted_7","_withDirectives","_hoisted_8","_hoisted_9","item","_hoisted_10","_hoisted_12","_vShow","query","selectedIndex","inputRef","useTemplateRef","results","computed","watch","open","nextTick","closeModal","handleKeydown","e","selectResult","result","_createBlock","_Teleport","_createVNode","_Transition","_renderSlot","_ctx","IS_CLIENT","activePinia","setActivePinia","pinia","piniaSymbol","isPlainObject","o","MutationType","patchObject","newState","oldState","key","subPatch","targetValue","isRef","isReactive","noop","addSubscription","subscriptions","callback","detached","onCleanup","removeSubscription","getCurrentScope","onScopeDispose","triggerSubscriptions","args","fallbackRunWithContext","fn","ACTION_MARKER","ACTION_NAME","mergeReactiveObjects","target","patchToApply","value","skipHydrateSymbol","shouldHydrate","obj","assign","isComputed","createOptionsStore","id","options","hot","state","actions","getters","initialState","store","setup","localState","toRefs","computedGetters","name","markRaw","createSetupStore","$id","isOptionsStore","scope","optionsForPlugin","$subscribeOptions","event","isListening","debuggerEvents","isSyncListening","actionSubscriptions","hotState","activeListener","$patch","partialStateOrMutator","subscriptionMutation","myListenerId","$reset","$state","$dispose","wrappedAction","afterCallbackSet","onErrorCallbackSet","after","onError","ret","error","_hmrPayload","partialStore","stopWatcher","reactive","setupStore","effectScope","prop","toRef","actionValue","toRaw","newStore","stateKey","newStateTarget","oldStateSource","actionName","actionFn","getterName","getter","getterValue","nonEnumerable","p","extender","extensions","defineStore","setupOptions","isSetupStore","useStore","hasContext","hasInjectionContext","inject","hotId","currentInstance","getCurrentInstance","vm","cache","storeToRefs","rawStore","refs","qi","Ni","Pi","Dn","Fi","Ti","t","$n","Li","j","ji","i","Cn","Bi","nr","xi","zn","Ui","zt","Wi","Ki","Mn","br","Hi","Ft","Vi","At","Ht","J","Di","f","h","l","De","Ce","Yi","Ji","Gi","Zi","Xi","Qr","Qi","E","Tn","m","R","O","w","K","A","ce","bt","$","z","Y","Wt","_t","B","X","fe","to","ir","qe","no","tn","en","Ie","Ci","v","y","U","ft","Ot","gt","ge","u","Et","rn","Vt","Ue","r","n","io","Mt","lr","s","a","c","d","_","nn","ds","xe","S","I","b","D","C","Ln","or","Nt","Kt","Mi","er","rr","Le","$i","zi","oo","Xr","We","lt","Ke","P","Or","Nn","at","G","rt","pt","qt","jt","dt","ne","se","ie","ut","ct","pr","Pn","Ye","M","F","tt","Fn","Je","on","dr","so","ao","ke","L","ot","Q","k","_r","ht","Er","Yt","jn","Tt","Ge","xn","Ae","Bn","Ze","Un","Bt","St","mt","Wn","Rr","oe","Kn","kr","co","Ar","Hn","Jt","Ir","uo","sn","Mr","Me","$e","le","Xe","fo","nt","an","vo","ho","yo","lo","gr","_o","po","ur","ar","mo","Vn","vr","yr","Pt","cn","go","un","sr","Qe","$r","Xn","Yn","Jn","Gn","ln","Lr","Zn","wt","Qn","So","Ct","wo","It","Tr","T","bo","zr","Oo","Eo","Ro","Io","ko","Gt","Ne","hn","Pe","pn","st","ae","ii","oi","Ao","Mo","Dt","vt","He","Dr","Cr","$o","zo","qr","yt","Nr","To","Pr","Fr","jr","Br","ze","xr","ve","it","gn","Lo","Ur","N","Hr","Se","Fo","Do","Zt","fi","Wr","jo","qo","vn","hi","Po","No","we","Bo","Co","Xt","Kr","Rt","dn","cr","_n","li","be","xo","Uo","Wo","Ko","_i","gi","Qt","Be","Oe","$t","vi","Ho","kt","yn","ye","W","te","Ee","mr","yi","pe","Sn","Vr","mn","Sr","Yr","Fe","de","et","wn","bn","Vo","Yo","fr","On","En","Si","Jo","hr","wi","Jr","tr","_e","V","je","Re","bi","Rn","Oi","Go","Zo","Ri","Ve","Xo","In","Qo","xt","Z","Te","kn","ue","ee","Ii","wr","Ut","ki","An","ts","H","Zr","es","q","re","Gr","he","Vl","ha","Oa","Ga","Wa","g","x","breadcrumbsVisibile","searchVisible","searchText","rotateHideTabIcon","toggleBreadcrumbs","toggleSearch","handleSearchInput","handleSearch","navigateHome","_component_router_link","_cache","_withKeys","breadcrumb","_createTextVNode","stonecrop","useStonecrop","loading","commandPaletteOpen","currentViewData","currentView","doctype","formatDoctypeName","getRecordCount","idField","getRecords","record","currentDoctype","currentRecordId","flat","field","nested","child","newData","fieldsetNames","flatData","fieldsetValues","nestedValue","hstStore","fieldname","fieldPath","route","unref","router","pathMatch","routeDoctype","isNewRecord","routeName","getAvailableTransitions","currentState","transitions","recordData","targetState","actionElements","elements","createNewRecord","transitionActions","navigationBreadcrumbs","breadcrumbs","recordPath","searchCommands","commands","doNavigate","cmd","executeCommand","command","word","navigateToDoctype","openRecord","recordId","newId","flattenFieldsets","fields","getDoctypesSchema","getRecordsSchema","registry","schema","getRecordFormSchema","recordsData","currentViewSchema","handleActionClick","_label","handleDelete","targetRecordId","getRecordIdFromRow","rowElement","cell","rowIndexAttr","rowIndex","cellText","row","cells","loadRecordData","provide","data","toDisplayString","rec","val","doctypeSlug","cached","cachedDisplay","fetched","onUnmounted","ActionSet","_unref","AForm","SheetNav","CommandPalette","_withCtx","plugin","app","Desktop"],"mappings":"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","x_google_ignoreList":[2]}
1
+ {"version":3,"file":"desktop.js","sources":["../src/components/ActionSet.vue","../src/components/CommandPalette.vue","../../common/temp/node_modules/.pnpm/pinia@3.0.4_typescript@6.0.3_vue@3.5.33_typescript@6.0.3_/node_modules/pinia/dist/pinia.mjs","../../stonecrop/dist/stonecrop.js","../../aform/dist/aform.js","../src/components/SheetNav.vue","../src/components/Desktop.vue","../src/plugins/index.ts"],"sourcesContent":["<template>\n\t<div :class=\"{ collapsed: !isOpen }\" class=\"action-set\">\n\t\t<div class=\"action-menu-icon\">\n\t\t\t<div id=\"cross\" :class=\"{ rotated: isOpen }\" @click=\"onClick\">×</div>\n\t\t</div>\n\t\t<div style=\"margin-right: 30px\"></div>\n\t\t<div v-for=\"(el, index) in elements\" :key=\"el.label\" class=\"action-element\">\n\t\t\t<div class=\"action-element-header\">\n\t\t\t\t<button\n\t\t\t\t\tv-if=\"el.type == 'button'\"\n\t\t\t\t\t:disabled=\"el.disabled\"\n\t\t\t\t\tclass=\"button-default\"\n\t\t\t\t\t@click=\"handleClick(el.action, el.label)\">\n\t\t\t\t\t{{ el.label }}\n\t\t\t\t</button>\n\t\t\t</div>\n\t\t\t<div v-if=\"el.type == 'dropdown'\">\n\t\t\t\t<div class=\"dropdown-header\">\n\t\t\t\t\t<div class=\"cross\" :class=\"{ rotated: dropdownOpen[index] }\" @click=\"toggleDropdown(index)\">×</div>\n\t\t\t\t\t<button class=\"button-default dropdown-title\" @click=\"toggleDropdown(index)\">\n\t\t\t\t\t\t{{ el.label }}\n\t\t\t\t\t</button>\n\t\t\t\t</div>\n\t\t\t\t<div v-show=\"dropdownStates[index]\" class=\"dropdown-container\">\n\t\t\t\t\t<div class=\"dropdown\">\n\t\t\t\t\t\t<div v-for=\"item in el.actions\" :key=\"item.label\">\n\t\t\t\t\t\t\t<button v-if=\"item.action != null\" class=\"dropdown-item\" @click=\"handleClick(item.action, item.label)\">\n\t\t\t\t\t\t\t\t{{ item.label }}\n\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t<a v-else-if=\"item.link != null\" :href=\"item.link\"\n\t\t\t\t\t\t\t\t><button class=\"dropdown-item\">{{ item.label }}</button></a\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t</div>\n</template>\n\n<script setup lang=\"ts\">\nimport { onMounted, ref } from 'vue'\n\nimport type { ActionElements } from '../types'\n\nconst { elements = [] } = defineProps<{ elements?: ActionElements[] }>()\nconst emit = defineEmits<{\n\tactionClick: [label: string, action: (() => void | Promise<void>) | undefined]\n}>()\n\n// Track dropdown open state separately (index -> boolean)\nconst dropdownStates = ref<Record<number, boolean>>({})\n\nconst isOpen = ref(true)\nconst dropdownOpen = ref([])\n\nonMounted(() => {\n\tcloseDropdowns()\n})\n\nconst closeDropdowns = () => {\n\tdropdownStates.value = {}\n\tdropdownOpen.value = []\n}\n\nconst onClick = () => {\n\tisOpen.value = !isOpen.value\n}\n\nconst toggleDropdown = (index: number) => {\n\tconst showDropdown = !dropdownStates.value[index]\n\tcloseDropdowns()\n\tif (showDropdown) {\n\t\tdropdownStates.value[index] = true\n\t\tdropdownOpen.value[index] = true\n\t}\n}\n\nconst handleClick = (action: (() => void | Promise<void>) | undefined, label: string) => {\n\t// Emit event to parent - parent will handle execution\n\temit('actionClick', label, action)\n}\n</script>\n\n<style scoped>\n#cross {\n\tposition: relative;\n\ttransform: rotate(45deg);\n\tcursor: pointer;\n\ttransition: all 0.2s ease-in-out;\n\tuser-select: none;\n\tline-height: 1rem;\n}\n#cross.rotated,\n.cross.rotated {\n\ttransform: rotate(0deg);\n}\n#cross svg {\n\twidth: 1.5em;\n\theight: 1.5em;\n}\n\n.action-set {\n\tposition: fixed;\n\ttop: 300px;\n\tright: 10px;\n\tpadding: 10px;\n\tdisplay: flex;\n\tflex-direction: column;\n\talign-items: flex-end;\n\tbackground: var(--sc-form-background);\n\tborder: 1px solid var(--sc-gray-20);\n\tborder-left: 4px solid var(--sc-gray-20);\n\tborder-radius: 0;\n\toverflow: hidden;\n\tz-index: 1001; /* Above SheetNav (100) and operation log button (999) */\n\t-webkit-transition: all 0.5s ease-in-out;\n\t-moz-transition: all 0.5s ease-in-out;\n\t-o-transition: all 0.5s ease-in-out;\n\ttransition: all 0.5s ease-in-out;\n}\n.action-menu-icon {\n\tposition: relative;\n\tfont-size: 2rem;\n\tdisplay: inline-block;\n\tcolor: var(--sc-gray-60, #666);\n\ttransition: all 0.2s ease-in-out;\n}\n.action-set.collapsed {\n\tmax-width: 46px;\n\tmax-height: 40px;\n\toverflow: hidden;\n}\n.action-set.collapsed .action-element {\n\topacity: 0;\n\t-webkit-transition: opacity 0.25s ease-in-out;\n\t-moz-transition: opacity 0.25s ease-in-out;\n\t-o-transition: opacity 0.25s ease-in-out;\n\ttransition: opacity 0.25s ease-in-out;\n}\n\n.action-element {\n\twidth: 100%;\n\ttext-align: right;\n\tborder: 1px solid var(--sc-gray-20);\n\tbackground: none;\n\tfont-size: 1.5rem;\n\tfont-family: var(--sc-font-family);\n\tfont-weight: 600;\n\tmargin-top: 10px;\n\tposition: relative; /* Make this the positioning context for absolute children */\n}\n.action-element-header {\n\tdisplay: flex;\n\tjustify-content: end;\n}\nbutton.button-default {\n\tbackground-color: transparent;\n\tpadding: 5px 12px;\n\tborder-radius: 0px;\n\tbox-shadow: none;\n\tborder: none;\n\tcursor: pointer;\n\twhite-space: nowrap;\n\tfont-weight: bold;\n\tfont-size: 1rem;\n\ttext-align: right;\n\tcolor: var(--sc-gray-80);\n\tpadding-left: 50px;\n\tfont-family: var(--sc-font-family);\n}\n.dropdown-header:hover button.button-default,\n.dropdown-header:hover,\n.action-element-header:hover {\n\tbackground-color: #f2f2f2;\n}\n\n.dropdown-title {\n\tposition: relative;\n}\n.dropdown-header {\n\tdisplay: flex;\n\talign-items: center;\n}\n.cross {\n\tpointer-events: all;\n\tmargin-left: 5px;\n\tfont-family: var(--sc-font-family);\n\tcolor: var(--sc-gray-60, #666);\n\tcursor: pointer;\n\ttransform: rotate(45deg);\n\tuser-select: none;\n\ttransition: all 0.2s ease-in-out;\n\tline-height: 1rem;\n}\n\nbutton.dropdown-item {\n\twidth: 100%;\n\tpadding: 5px 12px;\n\ttext-align: right;\n\tborder: none;\n\tbackground-color: #ffffff;\n\tcursor: pointer;\n\tborder-radius: 5px;\n\tfont-size: 1rem;\n}\n\nbutton.dropdown-item:hover {\n\tbackground-color: #f2f2f2;\n}\n</style>\n","<template>\n\t<Teleport to=\"body\">\n\t\t<Transition name=\"fade\">\n\t\t\t<div v-if=\"isOpen\" class=\"command-palette-overlay\" @click=\"closeModal\">\n\t\t\t\t<div class=\"command-palette\" @click.stop>\n\t\t\t\t\t<div class=\"command-palette-header\">\n\t\t\t\t\t\t<input\n\t\t\t\t\t\t\tref=\"input\"\n\t\t\t\t\t\t\tv-model=\"query\"\n\t\t\t\t\t\t\ttype=\"text\"\n\t\t\t\t\t\t\tclass=\"command-palette-input\"\n\t\t\t\t\t\t\t:placeholder=\"placeholder\"\n\t\t\t\t\t\t\tautofocus\n\t\t\t\t\t\t\t@keydown=\"handleKeydown\" />\n\t\t\t\t\t</div>\n\n\t\t\t\t\t<div v-if=\"results.length\" class=\"command-palette-results\">\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tv-for=\"(result, index) in results\"\n\t\t\t\t\t\t\t:key=\"index\"\n\t\t\t\t\t\t\tclass=\"command-palette-result\"\n\t\t\t\t\t\t\t:class=\"{ selected: index === selectedIndex }\"\n\t\t\t\t\t\t\t@click=\"selectResult(result)\"\n\t\t\t\t\t\t\t@mouseover=\"selectedIndex = index\">\n\t\t\t\t\t\t\t<div class=\"result-title\">\n\t\t\t\t\t\t\t\t<slot name=\"title\" :result=\"result\" />\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div class=\"result-content\">\n\t\t\t\t\t\t\t\t<slot name=\"content\" :result=\"result\" />\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div v-else-if=\"query && !results.length\" class=\"command-palette-no-results\">\n\t\t\t\t\t\t<slot name=\"empty\"> No results found for \"{{ query }}\" </slot>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</Transition>\n\t</Teleport>\n</template>\n\n<script setup lang=\"ts\" generic=\"T\">\nimport { ref, computed, watch, nextTick, useTemplateRef } from 'vue'\n\ndefineSlots<{\n\ttitle?: { result: T }\n\tcontent?: { result: T }\n\tempty?: null\n}>()\n\nconst {\n\tsearch,\n\tisOpen = false,\n\tplaceholder = 'Type a command or search...',\n\tmaxResults = 10,\n} = defineProps<{\n\tsearch: (query: string) => T[]\n\tisOpen?: boolean\n\tplaceholder?: string\n\tmaxResults?: number\n}>()\n\nconst emit = defineEmits<{\n\tselect: [T]\n\tclose: []\n}>()\n\nconst query = ref('')\nconst selectedIndex = ref(0)\nconst inputRef = useTemplateRef('input')\n\nconst results = computed(() => {\n\tif (!query.value) return []\n\tconst searchResults = search(query.value)\n\treturn searchResults.slice(0, maxResults)\n})\n\n// reset search query when modal opens\nwatch(\n\t() => isOpen,\n\tasync open => {\n\t\tif (open) {\n\t\t\tquery.value = ''\n\t\t\tselectedIndex.value = 0\n\t\t\tawait nextTick()\n\t\t\t;(inputRef.value as HTMLInputElement)?.focus()\n\t\t}\n\t}\n)\n\n// reset selected index when results change\nwatch(results, () => {\n\tselectedIndex.value = 0\n})\n\nconst closeModal = () => {\n\temit('close')\n}\n\nconst handleKeydown = (e: KeyboardEvent) => {\n\tswitch (e.key) {\n\t\tcase 'Escape':\n\t\t\tcloseModal()\n\t\t\tbreak\n\t\tcase 'ArrowDown':\n\t\t\te.preventDefault()\n\t\t\tif (results.value.length) {\n\t\t\t\tselectedIndex.value = (selectedIndex.value + 1) % results.value.length\n\t\t\t}\n\t\t\tbreak\n\t\tcase 'ArrowUp':\n\t\t\te.preventDefault()\n\t\t\tif (results.value.length) {\n\t\t\t\tselectedIndex.value = (selectedIndex.value - 1 + results.value.length) % results.value.length\n\t\t\t}\n\t\t\tbreak\n\t\tcase 'Enter':\n\t\t\tif (results.value.length && selectedIndex.value >= 0) {\n\t\t\t\tselectResult(results.value[selectedIndex.value])\n\t\t\t}\n\t\t\tbreak\n\t}\n}\n\nconst selectResult = (result: T) => {\n\temit('select', result)\n\tcloseModal()\n}\n</script>\n\n<style>\n.fade-enter-active,\n.fade-leave-active {\n\ttransition: opacity 0.2s ease;\n}\n\n.fade-enter-from,\n.fade-leave-to {\n\topacity: 0;\n}\n\n.command-palette-overlay {\n\tposition: fixed;\n\ttop: 0;\n\tleft: 0;\n\twidth: 100%;\n\theight: 100%;\n\tbackground-color: rgba(0, 0, 0, 0.5);\n\tdisplay: flex;\n\talign-items: flex-start;\n\tjustify-content: center;\n\tz-index: 300;\n\tpadding-top: 100px;\n}\n\n.command-palette {\n\twidth: 600px;\n\tmax-width: 90%;\n\tbackground-color: white;\n\tborder-radius: 8px;\n\tbox-shadow: 0 4px 20px rgba(0, 0, 0, 0.15);\n\toverflow: hidden;\n\tmax-height: 80vh;\n\tdisplay: flex;\n\tflex-direction: column;\n}\n\n.command-palette-header {\n\tdisplay: flex;\n\tborder-bottom: 1px solid #eaeaea;\n\tpadding: 12px;\n}\n\n.command-palette-input {\n\tflex: 1;\n\tborder: none;\n\toutline: none;\n\tfont-size: 16px;\n\tpadding: 8px 12px;\n\tbackground-color: transparent;\n}\n\n.command-palette-close {\n\tbackground: transparent;\n\tborder: none;\n\tfont-size: 24px;\n\tcursor: pointer;\n\tcolor: #666;\n\tpadding: 0 8px;\n}\n\n.command-palette-close:hover {\n\tcolor: #333;\n}\n\n.command-palette-results {\n\toverflow-y: auto;\n\tmax-height: 60vh;\n}\n\n.command-palette-result {\n\tpadding: 12px 16px;\n\tcursor: pointer;\n\tborder-bottom: 1px solid #f0f0f0;\n}\n\n.command-palette-result:hover,\n.command-palette-result.selected {\n\tbackground-color: #f5f5f5;\n}\n\n.command-palette-result.selected {\n\tbackground-color: rgba(132, 60, 3, 0.1);\n}\n\n.result-title {\n\tfont-weight: 500;\n\tmargin-bottom: 4px;\n\tcolor: #333;\n}\n\n.result-content {\n\tfont-size: 14px;\n\tcolor: #666;\n\twhite-space: nowrap;\n\toverflow: hidden;\n\ttext-overflow: ellipsis;\n}\n\n.command-palette-no-results {\n\tpadding: 20px 16px;\n\ttext-align: center;\n\tcolor: #666;\n}\n</style>\n","/*!\n * pinia v3.0.4\n * (c) 2025 Eduardo San Martin Morote\n * @license MIT\n */\nimport { hasInjectionContext, inject, toRaw, watch, unref, markRaw, effectScope, ref, isRef, isReactive, getCurrentScope, onScopeDispose, getCurrentInstance, reactive, toRef, nextTick, computed, toRefs } from 'vue';\nimport { setupDevtoolsPlugin } from '@vue/devtools-api';\n\nconst IS_CLIENT = typeof window !== 'undefined';\n\n/**\n * setActivePinia must be called to handle SSR at the top of functions like\n * `fetch`, `setup`, `serverPrefetch` and others\n */\nlet activePinia;\n/**\n * Sets or unsets the active pinia. Used in SSR and internally when calling\n * actions and getters\n *\n * @param pinia - Pinia instance\n */\n// @ts-expect-error: cannot constrain the type of the return\nconst setActivePinia = (pinia) => (activePinia = pinia);\n/**\n * Get the currently active pinia if there is any.\n */\nconst getActivePinia = (process.env.NODE_ENV !== 'production')\n ? () => {\n const pinia = hasInjectionContext() && inject(piniaSymbol);\n if (!pinia && !IS_CLIENT) {\n console.error(`[🍍]: Pinia instance not found in context. This falls back to the global activePinia which exposes you to cross-request pollution on the server. Most of the time, it means you are calling \"useStore()\" in the wrong place.\\n` +\n `Read https://vuejs.org/guide/reusability/composables.html to learn more`);\n }\n return pinia || activePinia;\n }\n : () => (hasInjectionContext() && inject(piniaSymbol)) || activePinia;\nconst piniaSymbol = ((process.env.NODE_ENV !== 'production') ? Symbol('pinia') : /* istanbul ignore next */ Symbol());\n\nfunction isPlainObject(\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\no) {\n return (o &&\n typeof o === 'object' &&\n Object.prototype.toString.call(o) === '[object Object]' &&\n typeof o.toJSON !== 'function');\n}\n// type DeepReadonly<T> = { readonly [P in keyof T]: DeepReadonly<T[P]> }\n// TODO: can we change these to numbers?\n/**\n * Possible types for SubscriptionCallback\n */\nvar MutationType;\n(function (MutationType) {\n /**\n * Direct mutation of the state:\n *\n * - `store.name = 'new name'`\n * - `store.$state.name = 'new name'`\n * - `store.list.push('new item')`\n */\n MutationType[\"direct\"] = \"direct\";\n /**\n * Mutated the state with `$patch` and an object\n *\n * - `store.$patch({ name: 'newName' })`\n */\n MutationType[\"patchObject\"] = \"patch object\";\n /**\n * Mutated the state with `$patch` and a function\n *\n * - `store.$patch(state => state.name = 'newName')`\n */\n MutationType[\"patchFunction\"] = \"patch function\";\n // maybe reset? for $state = {} and $reset\n})(MutationType || (MutationType = {}));\n\n/*\n * FileSaver.js A saveAs() FileSaver implementation.\n *\n * Originally by Eli Grey, adapted as an ESM module by Eduardo San Martin\n * Morote.\n *\n * License : MIT\n */\n// The one and only way of getting global scope in all environments\n// https://stackoverflow.com/q/3277182/1008999\nconst _global = /*#__PURE__*/ (() => typeof window === 'object' && window.window === window\n ? window\n : typeof self === 'object' && self.self === self\n ? self\n : typeof global === 'object' && global.global === global\n ? global\n : typeof globalThis === 'object'\n ? globalThis\n : { HTMLElement: null })();\nfunction bom(blob, { autoBom = false } = {}) {\n // prepend BOM for UTF-8 XML and text/* types (including HTML)\n // note: your browser will automatically convert UTF-16 U+FEFF to EF BB BF\n if (autoBom &&\n /^\\s*(?:text\\/\\S*|application\\/xml|\\S*\\/\\S*\\+xml)\\s*;.*charset\\s*=\\s*utf-8/i.test(blob.type)) {\n return new Blob([String.fromCharCode(0xfeff), 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 // use sync to avoid popup blocker\n xhr.open('HEAD', url, false);\n try {\n xhr.send();\n }\n catch (e) { }\n return xhr.status >= 200 && xhr.status <= 299;\n}\n// `a.click()` doesn't work for all browsers (#465)\nfunction click(node) {\n try {\n node.dispatchEvent(new MouseEvent('click'));\n }\n catch (e) {\n const evt = new MouseEvent('click', {\n bubbles: true,\n cancelable: true,\n view: window,\n detail: 0,\n screenX: 80,\n screenY: 20,\n clientX: 80,\n clientY: 20,\n ctrlKey: false,\n altKey: false,\n shiftKey: false,\n metaKey: false,\n button: 0,\n relatedTarget: null,\n });\n node.dispatchEvent(evt);\n }\n}\nconst _navigator = typeof navigator === 'object' ? navigator : { userAgent: '' };\n// Detect WebView inside a native macOS app by ruling out all browsers\n// We just need to check for 'Safari' because all other browsers (besides Firefox) include that too\n// https://www.whatismybrowser.com/guides/the-latest-user-agent/macos\nconst isMacOSWebView = /*#__PURE__*/ (() => /Macintosh/.test(_navigator.userAgent) &&\n /AppleWebKit/.test(_navigator.userAgent) &&\n !/Safari/.test(_navigator.userAgent))();\nconst saveAs = !IS_CLIENT\n ? () => { } // noop\n : // Use download attribute first if possible (#193 Lumia mobile) unless this is a macOS WebView or mini program\n typeof HTMLAnchorElement !== 'undefined' &&\n 'download' in HTMLAnchorElement.prototype &&\n !isMacOSWebView\n ? downloadSaveAs\n : // Use msSaveOrOpenBlob as a second approach\n 'msSaveOrOpenBlob' in _navigator\n ? msSaveAs\n : // Fallback to using FileReader and a popup\n fileSaverSaveAs;\nfunction downloadSaveAs(blob, name = 'download', opts) {\n const a = document.createElement('a');\n a.download = name;\n a.rel = 'noopener'; // tabnabbing\n // TODO: detect chrome extensions & packaged apps\n // a.target = '_blank'\n if (typeof blob === 'string') {\n // Support regular links\n a.href = blob;\n if (a.origin !== location.origin) {\n if (corsEnabled(a.href)) {\n download(blob, name, opts);\n }\n else {\n a.target = '_blank';\n click(a);\n }\n }\n else {\n click(a);\n }\n }\n else {\n // Support blobs\n a.href = URL.createObjectURL(blob);\n setTimeout(function () {\n URL.revokeObjectURL(a.href);\n }, 4e4); // 40s\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 }\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 }\n else {\n // @ts-ignore: works on windows\n navigator.msSaveOrOpenBlob(bom(blob, opts), name);\n }\n}\nfunction fileSaverSaveAs(blob, name, opts, popup) {\n // Open a popup immediately do go around popup blocker\n // Mostly only available on user interaction and the fileReader is async so...\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) &&\n typeof FileReader !== 'undefined') {\n // Safari doesn't allow downloading of blob URLs\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\n ? url\n : url.replace(/^data:[^;]*;/, 'data:attachment/file;');\n if (popup) {\n popup.location.href = url;\n }\n else {\n location.assign(url);\n }\n popup = null; // reverse-tabnabbing #460\n };\n reader.readAsDataURL(blob);\n }\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; // reverse-tabnabbing #460\n setTimeout(function () {\n URL.revokeObjectURL(url);\n }, 4e4); // 40s\n }\n}\n\n/**\n * Shows a toast or console.log\n *\n * @param message - message to log\n * @param type - different color of the tooltip\n */\nfunction toastMessage(message, type) {\n const piniaMessage = '🍍 ' + message;\n if (typeof __VUE_DEVTOOLS_TOAST__ === 'function') {\n // No longer available :(\n __VUE_DEVTOOLS_TOAST__(piniaMessage, type);\n }\n else if (type === 'error') {\n console.error(piniaMessage);\n }\n else if (type === 'warn') {\n console.warn(piniaMessage);\n }\n else {\n console.log(piniaMessage);\n }\n}\nfunction isPinia(o) {\n return '_a' in o && 'install' in o;\n}\n\n/**\n * This file contain devtools actions, they are not Pinia actions.\n */\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 &&\n 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(pinia) {\n if (checkClipboardAccess())\n return;\n try {\n await navigator.clipboard.writeText(JSON.stringify(pinia.state.value));\n toastMessage('Global state copied to clipboard.');\n }\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(pinia) {\n if (checkClipboardAccess())\n return;\n try {\n loadStoresState(pinia, JSON.parse(await navigator.clipboard.readText()));\n toastMessage('Global state pasted from clipboard.');\n }\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(pinia) {\n try {\n saveAs(new Blob([JSON.stringify(pinia.state.value)], {\n type: 'text/plain;charset=utf-8',\n }), 'pinia-state.json');\n }\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 // @ts-ignore: TODO: changed from 4.3 to 4.4\n fileInput.oncancel = () => resolve(null);\n fileInput.onerror = reject;\n fileInput.click();\n });\n }\n return openFile;\n}\nasync function actionGlobalOpenStateFile(pinia) {\n try {\n const open = getFileOpener();\n const result = await open();\n if (!result)\n return;\n const { text, file } = result;\n loadStoresState(pinia, JSON.parse(text));\n toastMessage(`Global state imported from \"${file.name}\".`);\n }\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(pinia, state) {\n for (const key in state) {\n const storeState = pinia.state.value[key];\n // store is already instantiated, patch it\n if (storeState) {\n Object.assign(storeState, state[key]);\n }\n else {\n // store is not instantiated, set the initial state\n pinia.state.value[key] = state[key];\n }\n }\n}\n\nfunction formatDisplay(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 ? {\n id: PINIA_ROOT_ID,\n label: PINIA_ROOT_LABEL,\n }\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 state = {\n state: storeNames.map((storeId) => ({\n editable: true,\n key: storeId,\n value: store.state.value[storeId],\n })),\n getters: storeNames\n .filter((id) => storeMap.get(id)._getters)\n .map((id) => {\n const store = storeMap.get(id);\n return {\n editable: false,\n key: id,\n value: store._getters.reduce((getters, key) => {\n getters[key] = store[key];\n return getters;\n }, {}),\n };\n }),\n };\n return state;\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 // avoid adding empty getters\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 // TODO: handle add and delete for arrays and objects\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 }\n else {\n return {\n operation: formatDisplay(events.type),\n key: formatDisplay(events.key),\n oldValue: events.oldValue,\n newValue: events.newValue,\n };\n }\n}\nfunction formatMutationType(type) {\n switch (type) {\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}\n\n// timeline can be paused when directly changing the state\nlet isTimelineActive = true;\nconst componentStateTypes = [];\nconst MUTATIONS_LAYER_ID = 'pinia:mutations';\nconst INSPECTOR_ID = 'pinia';\nconst { assign: assign$1 } = Object;\n/**\n * Gets the displayed name of a store in devtools\n *\n * @param id - id of the store\n * @returns a formatted string\n */\nconst getStoreType = (id) => '🍍 ' + id;\n/**\n * Add the pinia plugin without any store. Allows displaying a Pinia plugin tab\n * as soon as it is added to the application.\n *\n * @param app - Vue application\n * @param pinia - pinia instance\n */\nfunction registerPiniaDevtools(app, pinia) {\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: 0xe5df88,\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(pinia);\n },\n tooltip: 'Serialize and copy the state',\n },\n {\n icon: 'content_paste',\n action: async () => {\n await actionGlobalPasteState(pinia);\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(pinia);\n },\n tooltip: 'Save the state as a JSON file',\n },\n {\n icon: 'folder_open',\n action: async () => {\n await actionGlobalOpenStateFile(pinia);\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 = pinia._s.get(nodeId);\n if (!store) {\n toastMessage(`Cannot reset \"${nodeId}\" store because it wasn't found.`, 'warn');\n }\n else if (typeof store.$reset !== 'function') {\n toastMessage(`Cannot reset \"${nodeId}\" store because it doesn't have a \"$reset\" method implemented.`, 'warn');\n }\n else {\n store.$reset();\n toastMessage(`Store \"${nodeId}\" reset.`);\n }\n },\n },\n ],\n });\n api.on.inspectComponent((payload) => {\n const proxy = (payload.componentInstance &&\n 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 ? {\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 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 }\n catch (error) {\n // @ts-expect-error: we just want to show it in devtools\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 = [pinia];\n stores = stores.concat(Array.from(pinia._s.values()));\n payload.rootNodes = (payload.filter\n ? stores.filter((store) => '$id' in store\n ? store.$id\n .toLowerCase()\n .includes(payload.filter.toLowerCase())\n : PINIA_ROOT_LABEL.toLowerCase().includes(payload.filter.toLowerCase()))\n : stores).map(formatStoreForInspectorTree);\n }\n });\n // Expose pinia instance as $pinia to window\n globalThis.$pinia = pinia;\n api.on.getInspectorState((payload) => {\n if (payload.app === app && payload.inspectorId === INSPECTOR_ID) {\n const inspectedStore = payload.nodeId === PINIA_ROOT_ID\n ? pinia\n : pinia._s.get(payload.nodeId);\n if (!inspectedStore) {\n // this could be the selected store restored for a different project\n // so it's better not to say anything here\n return;\n }\n if (inspectedStore) {\n // Expose selected store as $store to window\n if (payload.nodeId !== PINIA_ROOT_ID)\n globalThis.$store = toRaw(inspectedStore);\n payload.state = formatStoreForInspectorState(inspectedStore);\n }\n }\n });\n api.on.editInspectorState((payload) => {\n if (payload.app === app && payload.inspectorId === INSPECTOR_ID) {\n const inspectedStore = payload.nodeId === PINIA_ROOT_ID\n ? pinia\n : pinia._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 // access only the state\n if (path.length !== 1 ||\n !inspectedStore._customProperties.has(path[0]) ||\n path[0] in inspectedStore.$state) {\n path.unshift('$state');\n }\n }\n else {\n // Root access, we can omit the `.value` because the devtools API does it for us\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 = pinia._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 // rewrite the first entry to be able to directly set the state as\n // well as any other path\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 // gracefully handle errors\n const now = 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: now(),\n title: '🛫 ' + name,\n subtitle: 'start',\n data: {\n store: formatDisplay(store.$id),\n action: formatDisplay(name),\n args,\n },\n groupId,\n },\n });\n after((result) => {\n activeAction = undefined;\n api.addTimelineEvent({\n layerId: MUTATIONS_LAYER_ID,\n event: {\n time: now(),\n title: '🛬 ' + name,\n subtitle: 'end',\n data: {\n store: formatDisplay(store.$id),\n action: formatDisplay(name),\n args,\n result,\n },\n groupId,\n },\n });\n });\n onError((error) => {\n activeAction = undefined;\n api.addTimelineEvent({\n layerId: MUTATIONS_LAYER_ID,\n event: {\n time: now(),\n logType: 'error',\n title: '💥 ' + name,\n subtitle: 'end',\n data: {\n store: formatDisplay(store.$id),\n action: formatDisplay(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: now(),\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 }, state) => {\n api.notifyComponentUpdate();\n api.sendInspectorState(INSPECTOR_ID);\n if (!isTimelineActive)\n return;\n // rootStore.state[store.id] = state\n const eventData = {\n time: now(),\n title: formatMutationType(type),\n data: assign$1({ store: formatDisplay(store.$id) }, formatEventData(events)),\n groupId: activeAction,\n };\n if (type === MutationType.patchFunction) {\n eventData.subtitle = '⤵️';\n }\n else if (type === MutationType.patchObject) {\n eventData.subtitle = '🧩';\n }\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: now(),\n title: '🔥 ' + store.$id,\n subtitle: 'HMR update',\n data: {\n store: formatDisplay(store.$id),\n info: formatDisplay(`HMR update`),\n },\n },\n });\n // update the devtools too\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 &&\n toastMessage(`Disposed \"${store.$id}\" store 🗑`);\n };\n // trigger an update so it can display new registered stores\n api.notifyComponentUpdate();\n api.sendInspectorTree(INSPECTOR_ID);\n api.sendInspectorState(INSPECTOR_ID);\n api.getSettings().logStoreChanges &&\n toastMessage(`\"${store.$id}\" store installed 🆕`);\n });\n}\nlet runningActionId = 0;\nlet activeAction;\n/**\n * Patches a store to enable action grouping in devtools by wrapping the store with a Proxy that is passed as the\n * context of all actions, allowing us to set `runningAction` on each access and effectively associating any state\n * mutation to the action.\n *\n * @param store - store to patch\n * @param actionNames - list of actionst to patch\n */\nfunction patchActionForGrouping(store, actionNames, wrapWithProxy) {\n // original actions of the store as they are given by pinia. We are going to override them\n const actions = actionNames.reduce((storeActions, actionName) => {\n // use toRaw to avoid tracking #541\n storeActions[actionName] = toRaw(store)[actionName];\n return storeActions;\n }, {});\n for (const actionName in actions) {\n store[actionName] = function () {\n // the running action id is incremented in a before action hook\n const _actionId = runningActionId;\n const trackedStore = wrapWithProxy\n ? 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 })\n : store;\n // For Setup Stores we need https://github.com/tc39/proposal-async-context\n activeAction = _actionId;\n const retValue = actions[actionName].apply(trackedStore, arguments);\n // this is safer as async actions in Setup Stores would associate mutations done outside of the action\n activeAction = undefined;\n return retValue;\n };\n }\n}\n/**\n * pinia.use(devtoolsPlugin)\n */\nfunction devtoolsPlugin({ app, store, options }) {\n // HMR module\n if (store.$id.startsWith('__hot:')) {\n return;\n }\n // detect option api vs setup api\n store._isOptionsAPI = !!options.state;\n // Do not overwrite actions mocked by @pinia/testing (#2298)\n if (!store._p._testing) {\n patchActionForGrouping(store, Object.keys(options.actions), store._isOptionsAPI);\n // Upgrade the HMR to also update the new actions\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 }\n addStoreToDevtools(app, \n // FIXME: is there a way to allow the assignment from Store<Id, S, G, A> to StoreGeneric?\n store);\n}\n\n/**\n * Creates a Pinia instance to be used by the application\n */\nfunction createPinia() {\n const scope = effectScope(true);\n // NOTE: here we could check the window object for a state and directly set it\n // if there is anything like it with Vue 3 SSR\n const state = scope.run(() => ref({}));\n let _p = [];\n // plugins added before calling app.use(pinia)\n let toBeInstalled = [];\n const pinia = markRaw({\n install(app) {\n // this allows calling useStore() outside of a component setup after\n // installing pinia's plugin\n setActivePinia(pinia);\n pinia._a = app;\n app.provide(piniaSymbol, pinia);\n app.config.globalProperties.$pinia = pinia;\n /* istanbul ignore else */\n if ((((process.env.NODE_ENV !== 'production') || (typeof __VUE_PROD_DEVTOOLS__ !== 'undefined' && __VUE_PROD_DEVTOOLS__)) && !(process.env.NODE_ENV === 'test')) && IS_CLIENT) {\n registerPiniaDevtools(app, pinia);\n }\n toBeInstalled.forEach((plugin) => _p.push(plugin));\n toBeInstalled = [];\n },\n use(plugin) {\n if (!this._a) {\n toBeInstalled.push(plugin);\n }\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: new Map(),\n state,\n });\n // pinia devtools rely on dev only features so they cannot be forced unless\n // the dev build of Vue is used. Avoid old browsers like IE11.\n if ((((process.env.NODE_ENV !== 'production') || (typeof __VUE_PROD_DEVTOOLS__ !== 'undefined' && __VUE_PROD_DEVTOOLS__)) && !(process.env.NODE_ENV === 'test')) && IS_CLIENT && typeof Proxy !== 'undefined') {\n pinia.use(devtoolsPlugin);\n }\n return pinia;\n}\n/**\n * Dispose a Pinia instance by stopping its effectScope and removing the state, plugins and stores. This is mostly\n * useful in tests, with both a testing pinia or a regular pinia and in applications that use multiple pinia instances.\n * Once disposed, the pinia instance cannot be used anymore.\n *\n * @param pinia - pinia instance\n */\nfunction disposePinia(pinia) {\n pinia._e.stop();\n pinia._s.clear();\n pinia._p.splice(0);\n pinia.state.value = {};\n // @ts-expect-error: non valid\n pinia._a = null;\n}\n\n/**\n * Checks if a function is a `StoreDefinition`.\n *\n * @param fn - object to test\n * @returns true if `fn` is a StoreDefinition\n */\nconst isUseStore = (fn) => {\n return typeof fn === 'function' && typeof fn.$id === 'string';\n};\n/**\n * Mutates in place `newState` with `oldState` to _hot update_ it. It will\n * remove any key not existing in `newState` and recursively merge plain\n * objects.\n *\n * @param newState - new state object to be patched\n * @param oldState - old state that should be used to patch newState\n * @returns - newState\n */\nfunction patchObject(newState, oldState) {\n // no need to go through symbols because they cannot be serialized anyway\n for (const key in oldState) {\n const subPatch = oldState[key];\n // skip the whole sub tree\n if (!(key in newState)) {\n continue;\n }\n const targetValue = newState[key];\n if (isPlainObject(targetValue) &&\n isPlainObject(subPatch) &&\n !isRef(subPatch) &&\n !isReactive(subPatch)) {\n newState[key] = patchObject(targetValue, subPatch);\n }\n else {\n // objects are either a bit more complex (e.g. refs) or primitives, so we\n // just set the whole thing\n newState[key] = subPatch;\n }\n }\n return newState;\n}\n/**\n * Creates an _accept_ function to pass to `import.meta.hot` in Vite applications.\n *\n * @example\n * ```js\n * const useUser = defineStore(...)\n * if (import.meta.hot) {\n * import.meta.hot.accept(acceptHMRUpdate(useUser, import.meta.hot))\n * }\n * ```\n *\n * @param initialUseStore - return of the defineStore to hot update\n * @param hot - `import.meta.hot`\n */\nfunction acceptHMRUpdate(initialUseStore, hot) {\n // strip as much as possible from iife.prod\n if (!(process.env.NODE_ENV !== 'production')) {\n return () => { };\n }\n return (newModule) => {\n const pinia = hot.data.pinia || initialUseStore._pinia;\n if (!pinia) {\n // this store is still not used\n return;\n }\n // preserve the pinia instance across loads\n hot.data.pinia = pinia;\n // console.log('got data', newStore)\n for (const exportName in newModule) {\n const useStore = newModule[exportName];\n // console.log('checking for', exportName)\n if (isUseStore(useStore) && pinia._s.has(useStore.$id)) {\n // console.log('Accepting update for', useStore.$id)\n const id = useStore.$id;\n if (id !== initialUseStore.$id) {\n console.warn(`The id of the store changed from \"${initialUseStore.$id}\" to \"${id}\". Reloading.`);\n // return import.meta.hot.invalidate()\n return hot.invalidate();\n }\n const existingStore = pinia._s.get(id);\n if (!existingStore) {\n console.log(`[Pinia]: skipping hmr because store doesn't exist yet`);\n return;\n }\n useStore(pinia, existingStore);\n }\n }\n };\n}\n\nconst noop = () => { };\nfunction addSubscription(subscriptions, callback, detached, onCleanup = noop) {\n subscriptions.add(callback);\n const removeSubscription = () => {\n const isDel = subscriptions.delete(callback);\n isDel && onCleanup();\n };\n if (!detached && getCurrentScope()) {\n onScopeDispose(removeSubscription);\n }\n return removeSubscription;\n}\nfunction triggerSubscriptions(subscriptions, ...args) {\n subscriptions.forEach((callback) => {\n callback(...args);\n });\n}\n\nconst fallbackRunWithContext = (fn) => fn();\n/**\n * Marks a function as an action for `$onAction`\n * @internal\n */\nconst ACTION_MARKER = Symbol();\n/**\n * Action name symbol. Allows to add a name to an action after defining it\n * @internal\n */\nconst ACTION_NAME = Symbol();\nfunction mergeReactiveObjects(target, patchToApply) {\n // Handle Map instances\n if (target instanceof Map && patchToApply instanceof Map) {\n patchToApply.forEach((value, key) => target.set(key, value));\n }\n else if (target instanceof Set && patchToApply instanceof Set) {\n // Handle Set instances\n patchToApply.forEach(target.add, target);\n }\n // no need to go through symbols because they cannot be serialized anyway\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) &&\n isPlainObject(subPatch) &&\n target.hasOwnProperty(key) &&\n !isRef(subPatch) &&\n !isReactive(subPatch)) {\n // NOTE: here I wanted to warn about inconsistent types but it's not possible because in setup stores one might\n // start the value of a property as a certain type e.g. a Map, and then for some reason, during SSR, change that\n // to `undefined`. When trying to hydrate, we want to override the Map with `undefined`.\n target[key] = mergeReactiveObjects(targetValue, subPatch);\n }\n else {\n // @ts-expect-error: subPatch is a valid value\n target[key] = subPatch;\n }\n }\n return target;\n}\nconst skipHydrateSymbol = (process.env.NODE_ENV !== 'production')\n ? Symbol('pinia:skipHydration')\n : /* istanbul ignore next */ Symbol();\n/**\n * Tells Pinia to skip the hydration process of a given object. This is useful in setup stores (only) when you return a\n * stateful object in the store but it isn't really state. e.g. returning a router instance in a setup store.\n *\n * @param obj - target object\n * @returns obj\n */\nfunction skipHydrate(obj) {\n return Object.defineProperty(obj, skipHydrateSymbol, {});\n}\n/**\n * Returns whether a value should be hydrated\n *\n * @param obj - target variable\n * @returns true if `obj` should be hydrated\n */\nfunction shouldHydrate(obj) {\n return (!isPlainObject(obj) ||\n !Object.prototype.hasOwnProperty.call(obj, skipHydrateSymbol));\n}\nconst { assign } = Object;\nfunction isComputed(o) {\n return !!(isRef(o) && o.effect);\n}\nfunction createOptionsStore(id, options, pinia, hot) {\n const { state, actions, getters } = options;\n const initialState = pinia.state.value[id];\n let store;\n function setup() {\n if (!initialState && (!(process.env.NODE_ENV !== 'production') || !hot)) {\n /* istanbul ignore if */\n pinia.state.value[id] = state ? state() : {};\n }\n // avoid creating a state in pinia.state.value\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(pinia.state.value[id]);\n return assign(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(pinia);\n // it was created just before\n const store = pinia._s.get(id);\n // allow cross using stores\n // @ts-expect-error\n // return getters![name].call(context, context)\n // TODO: avoid reading the getter while assigning with a global variable\n return getters[name].call(store, store);\n }));\n return computedGetters;\n }, {}));\n }\n store = createSetupStore(id, setup, options, pinia, hot, true);\n return store;\n}\nfunction createSetupStore($id, setup, options = {}, pinia, hot, isOptionsStore) {\n let scope;\n const optionsForPlugin = assign({ actions: {} }, options);\n /* istanbul ignore if */\n if ((process.env.NODE_ENV !== 'production') && !pinia._e.active) {\n throw new Error('Pinia destroyed');\n }\n // watcher options for $subscribe\n const $subscribeOptions = { deep: true };\n /* istanbul ignore else */\n if ((process.env.NODE_ENV !== 'production')) {\n $subscribeOptions.onTrigger = (event) => {\n /* istanbul ignore else */\n if (isListening) {\n debuggerEvents = event;\n // avoid triggering this while the store is being built and the state is being set in pinia\n }\n else if (isListening == false && !store._hotUpdating) {\n // let patch send all the events together later\n /* istanbul ignore else */\n if (Array.isArray(debuggerEvents)) {\n debuggerEvents.push(event);\n }\n else {\n console.error('🍍 debuggerEvents should be an array. This is most likely an internal Pinia bug.');\n }\n }\n };\n }\n // internal state\n let isListening; // set to true at the end\n let isSyncListening; // set to true at the end\n let subscriptions = new Set();\n let actionSubscriptions = new Set();\n let debuggerEvents;\n const initialState = pinia.state.value[$id];\n // avoid setting the state for option stores if it is set\n // by the setup\n if (!isOptionsStore && !initialState && (!(process.env.NODE_ENV !== 'production') || !hot)) {\n /* istanbul ignore if */\n pinia.state.value[$id] = {};\n }\n const hotState = ref({});\n // avoid triggering too many listeners\n // https://github.com/vuejs/pinia/issues/1129\n let activeListener;\n function $patch(partialStateOrMutator) {\n let subscriptionMutation;\n isListening = isSyncListening = false;\n // reset the debugger events since patches are sync\n /* istanbul ignore else */\n if ((process.env.NODE_ENV !== 'production')) {\n debuggerEvents = [];\n }\n if (typeof partialStateOrMutator === 'function') {\n partialStateOrMutator(pinia.state.value[$id]);\n subscriptionMutation = {\n type: MutationType.patchFunction,\n storeId: $id,\n events: debuggerEvents,\n };\n }\n else {\n mergeReactiveObjects(pinia.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 // because we paused the watcher, we need to manually call the subscriptions\n triggerSubscriptions(subscriptions, subscriptionMutation, pinia.state.value[$id]);\n }\n const $reset = isOptionsStore\n ? function $reset() {\n const { state } = options;\n const newState = state ? state() : {};\n // we use a patch to group all changes into one single subscription\n this.$patch(($state) => {\n // @ts-expect-error: FIXME: shouldn't error?\n assign($state, newState);\n });\n }\n : /* istanbul ignore next */\n (process.env.NODE_ENV !== 'production')\n ? () => {\n throw new Error(`🍍: Store \"${$id}\" is built using the setup syntax and does not implement $reset().`);\n }\n : noop;\n function $dispose() {\n scope.stop();\n subscriptions.clear();\n actionSubscriptions.clear();\n pinia._s.delete($id);\n }\n /**\n * Helper that wraps function so it can be tracked with $onAction\n * @param fn - action to wrap\n * @param name - name of the action\n */\n const action = (fn, name = '') => {\n if (ACTION_MARKER in fn) {\n fn[ACTION_NAME] = name;\n return fn;\n }\n const wrappedAction = function () {\n setActivePinia(pinia);\n const args = Array.from(arguments);\n const afterCallbackSet = new Set();\n const onErrorCallbackSet = new Set();\n function after(callback) {\n afterCallbackSet.add(callback);\n }\n function onError(callback) {\n onErrorCallbackSet.add(callback);\n }\n // @ts-expect-error\n triggerSubscriptions(actionSubscriptions, {\n args,\n name: wrappedAction[ACTION_NAME],\n store,\n after,\n onError,\n });\n let ret;\n try {\n ret = fn.apply(this && this.$id === $id ? this : store, args);\n // handle sync errors\n }\n catch (error) {\n triggerSubscriptions(onErrorCallbackSet, error);\n throw error;\n }\n if (ret instanceof Promise) {\n return ret\n .then((value) => {\n triggerSubscriptions(afterCallbackSet, value);\n return value;\n })\n .catch((error) => {\n triggerSubscriptions(onErrorCallbackSet, error);\n return Promise.reject(error);\n });\n }\n // trigger after callbacks\n triggerSubscriptions(afterCallbackSet, ret);\n return ret;\n };\n wrappedAction[ACTION_MARKER] = true;\n wrappedAction[ACTION_NAME] = name; // will be set later\n // @ts-expect-error: we are intentionally limiting the returned type to just Fn\n // because all the added properties are internals that are exposed through `$onAction()` only\n return wrappedAction;\n };\n const _hmrPayload = /*#__PURE__*/ markRaw({\n actions: {},\n getters: {},\n state: [],\n hotState,\n });\n const partialStore = {\n _p: pinia,\n // _s: scope,\n $id,\n $onAction: addSubscription.bind(null, actionSubscriptions),\n $patch,\n $reset,\n $subscribe(callback, options = {}) {\n const removeSubscription = addSubscription(subscriptions, callback, options.detached, () => stopWatcher());\n const stopWatcher = scope.run(() => watch(() => pinia.state.value[$id], (state) => {\n if (options.flush === 'sync' ? isSyncListening : isListening) {\n callback({\n storeId: $id,\n type: MutationType.direct,\n events: debuggerEvents,\n }, state);\n }\n }, assign({}, $subscribeOptions, options)));\n return removeSubscription;\n },\n $dispose,\n };\n const store = reactive((process.env.NODE_ENV !== 'production') || ((((process.env.NODE_ENV !== 'production') || (typeof __VUE_PROD_DEVTOOLS__ !== 'undefined' && __VUE_PROD_DEVTOOLS__)) && !(process.env.NODE_ENV === 'test')) && IS_CLIENT)\n ? assign({\n _hmrPayload,\n _customProperties: markRaw(new Set()), // devtools custom properties\n }, partialStore\n // must be added later\n // setupStore\n )\n : partialStore);\n // store the partial store now so the setup of stores can instantiate each other before they are finished without\n // creating infinite loops.\n pinia._s.set($id, store);\n const runWithContext = (pinia._a && pinia._a.runWithContext) || fallbackRunWithContext;\n // TODO: idea create skipSerialize that marks properties as non serializable and they are skipped\n const setupStore = runWithContext(() => pinia._e.run(() => (scope = effectScope()).run(() => setup({ action }))));\n // overwrite existing actions to support $onAction\n for (const key in setupStore) {\n const prop = setupStore[key];\n if ((isRef(prop) && !isComputed(prop)) || isReactive(prop)) {\n // mark it as a piece of state to be serialized\n if ((process.env.NODE_ENV !== 'production') && hot) {\n hotState.value[key] = toRef(setupStore, key);\n // createOptionStore directly sets the state in pinia.state.value so we\n // can just skip that\n }\n else if (!isOptionsStore) {\n // in setup stores we must hydrate the state and sync pinia state tree with the refs the user just created\n if (initialState && shouldHydrate(prop)) {\n if (isRef(prop)) {\n prop.value = initialState[key];\n }\n else {\n // probably a reactive object, lets recursively assign\n // @ts-expect-error: prop is unknown\n mergeReactiveObjects(prop, initialState[key]);\n }\n }\n // transfer the ref to the pinia state to keep everything in sync\n pinia.state.value[$id][key] = prop;\n }\n /* istanbul ignore else */\n if ((process.env.NODE_ENV !== 'production')) {\n _hmrPayload.state.push(key);\n }\n // action\n }\n else if (typeof prop === 'function') {\n const actionValue = (process.env.NODE_ENV !== 'production') && hot ? prop : action(prop, key);\n // this a hot module replacement store because the hotUpdate method needs\n // to do it with the right context\n // @ts-expect-error\n setupStore[key] = actionValue;\n /* istanbul ignore else */\n if ((process.env.NODE_ENV !== 'production')) {\n _hmrPayload.actions[key] = prop;\n }\n // list actions so they can be used in plugins\n // @ts-expect-error\n optionsForPlugin.actions[key] = prop;\n }\n else if ((process.env.NODE_ENV !== 'production')) {\n // add getters for devtools\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 ||\n // @ts-expect-error: same\n (setupStore._getters = markRaw([]));\n getters.push(key);\n }\n }\n }\n }\n // add the state, getters, and action properties\n /* istanbul ignore if */\n assign(store, setupStore);\n // allows retrieving reactive objects with `storeToRefs()`. Must be called after assigning to the reactive object.\n // Make `storeToRefs()` work with `reactive()` #799\n assign(toRaw(store), setupStore);\n // use this instead of a computed with setter to be able to create it anywhere\n // without linking the computed lifespan to wherever the store is first\n // created.\n Object.defineProperty(store, '$state', {\n get: () => ((process.env.NODE_ENV !== 'production') && hot ? hotState.value : pinia.state.value[$id]),\n set: (state) => {\n /* istanbul ignore if */\n if ((process.env.NODE_ENV !== 'production') && hot) {\n throw new Error('cannot set hotState');\n }\n $patch(($state) => {\n // @ts-expect-error: FIXME: shouldn't error?\n assign($state, state);\n });\n },\n });\n // add the hotUpdate before plugins to allow them to override it\n /* istanbul ignore else */\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' &&\n isPlainObject(newStateTarget) &&\n isPlainObject(oldStateSource)) {\n patchObject(newStateTarget, oldStateSource);\n }\n else {\n // transfer the ref\n newStore.$state[stateKey] = oldStateSource;\n }\n }\n // patch direct access properties to allow store.stateProperty to work as\n // store.$state.stateProperty\n // @ts-expect-error: any type\n store[stateKey] = toRef(newStore.$state, stateKey);\n });\n // remove deleted state properties\n Object.keys(store.$state).forEach((stateKey) => {\n if (!(stateKey in newStore.$state)) {\n // @ts-expect-error: noop if doesn't exist\n delete store[stateKey];\n }\n });\n // avoid devtools logging this as a mutation\n isListening = false;\n isSyncListening = false;\n pinia.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 actionFn = newStore[actionName];\n // @ts-expect-error: actionName is a string\n store[actionName] =\n //\n action(actionFn, actionName);\n }\n // TODO: does this work in both setup and option store?\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(pinia);\n return getter.call(store, store);\n })\n : getter;\n // @ts-expect-error: getterName is a string\n store[getterName] =\n //\n getterValue;\n }\n // remove deleted getters\n Object.keys(store._hmrPayload.getters).forEach((key) => {\n if (!(key in newStore._hmrPayload.getters)) {\n // @ts-expect-error: noop if doesn't exist\n delete store[key];\n }\n });\n // remove old actions\n Object.keys(store._hmrPayload.actions).forEach((key) => {\n if (!(key in newStore._hmrPayload.actions)) {\n // @ts-expect-error: noop if doesn't exist\n delete store[key];\n }\n });\n // update the values used in devtools and to allow deleting new properties later on\n store._hmrPayload = newStore._hmrPayload;\n store._getters = newStore._getters;\n store._hotUpdating = false;\n });\n }\n if ((((process.env.NODE_ENV !== 'production') || (typeof __VUE_PROD_DEVTOOLS__ !== 'undefined' && __VUE_PROD_DEVTOOLS__)) && !(process.env.NODE_ENV === 'test')) && IS_CLIENT) {\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({ value: store[p] }, nonEnumerable));\n });\n }\n // apply all plugins\n pinia._p.forEach((extender) => {\n /* istanbul ignore else */\n if ((((process.env.NODE_ENV !== 'production') || (typeof __VUE_PROD_DEVTOOLS__ !== 'undefined' && __VUE_PROD_DEVTOOLS__)) && !(process.env.NODE_ENV === 'test')) && IS_CLIENT) {\n const extensions = scope.run(() => extender({\n store: store,\n app: pinia._a,\n pinia,\n options: optionsForPlugin,\n }));\n Object.keys(extensions || {}).forEach((key) => store._customProperties.add(key));\n assign(store, extensions);\n }\n else {\n assign(store, scope.run(() => extender({\n store: store,\n app: pinia._a,\n pinia,\n options: optionsForPlugin,\n })));\n }\n });\n if ((process.env.NODE_ENV !== 'production') &&\n store.$state &&\n typeof store.$state === 'object' &&\n typeof store.$state.constructor === 'function' &&\n !store.$state.constructor.toString().includes('[native code]')) {\n console.warn(`[🍍]: The \"state\" must be a plain object. It cannot be\\n` +\n `\\tstate: () => new MyClass()\\n` +\n `Found in store \"${store.$id}\".`);\n }\n // only apply hydrate to option stores with an initial state in pinia\n if (initialState &&\n isOptionsStore &&\n options.hydrate) {\n options.hydrate(store.$state, initialState);\n }\n isListening = true;\n isSyncListening = true;\n return store;\n}\n// allows unused stores to be tree shaken\n/*! #__NO_SIDE_EFFECTS__ */\nfunction defineStore(\n// TODO: add proper types from above\nid, setup, setupOptions) {\n let options;\n const isSetupStore = typeof setup === 'function';\n // the option store setup will contain the actual options in this case\n options = isSetupStore ? setupOptions : setup;\n function useStore(pinia, hot) {\n const hasContext = hasInjectionContext();\n pinia =\n // 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 : pinia) ||\n (hasContext ? inject(piniaSymbol, null) : null);\n if (pinia)\n setActivePinia(pinia);\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)\"?\\n` +\n `See https://pinia.vuejs.org/core-concepts/outside-component-usage.html for help.\\n` +\n `This will fail in production.`);\n }\n pinia = activePinia;\n if (!pinia._s.has(id)) {\n // creating the store registers it in `pinia._s`\n if (isSetupStore) {\n createSetupStore(id, setup, options, pinia);\n }\n else {\n createOptionsStore(id, options, pinia);\n }\n /* istanbul ignore else */\n if ((process.env.NODE_ENV !== 'production')) {\n // @ts-expect-error: not the right inferred type\n useStore._pinia = pinia;\n }\n }\n const store = pinia._s.get(id);\n if ((process.env.NODE_ENV !== 'production') && hot) {\n const hotId = '__hot:' + id;\n const newStore = isSetupStore\n ? createSetupStore(hotId, setup, options, pinia, true)\n : createOptionsStore(hotId, assign({}, options), pinia, true);\n hot._hotUpdate(newStore);\n // cleanup the state properties and the store from the cache\n delete pinia.state.value[hotId];\n pinia._s.delete(hotId);\n }\n if ((process.env.NODE_ENV !== 'production') && IS_CLIENT) {\n const currentInstance = getCurrentInstance();\n // save stores in instances to access them devtools\n if (currentInstance &&\n currentInstance.proxy &&\n // 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 // StoreGeneric cannot be casted towards Store\n return store;\n }\n useStore.$id = id;\n return useStore;\n}\n\nlet mapStoreSuffix = 'Store';\n/**\n * Changes the suffix added by `mapStores()`. Can be set to an empty string.\n * Defaults to `\"Store\"`. Make sure to extend the MapStoresCustomization\n * interface if you are using TypeScript.\n *\n * @param suffix - new suffix\n */\nfunction setMapStoreSuffix(suffix // could be 'Store' but that would be annoying for JS\n) {\n mapStoreSuffix = suffix;\n}\n/**\n * Allows using stores without the composition API (`setup()`) by generating an\n * object to be spread in the `computed` field of a component. It accepts a list\n * of store definitions.\n *\n * @example\n * ```js\n * export default {\n * computed: {\n * // other computed properties\n * ...mapStores(useUserStore, useCartStore)\n * },\n *\n * created() {\n * this.userStore // store with id \"user\"\n * this.cartStore // store with id \"cart\"\n * }\n * }\n * ```\n *\n * @param stores - list of stores to map to an object\n */\nfunction mapStores(...stores) {\n if ((process.env.NODE_ENV !== 'production') && Array.isArray(stores[0])) {\n console.warn(`[🍍]: Directly pass all stores to \"mapStores()\" without putting them in an array:\\n` +\n `Replace\\n` +\n `\\tmapStores([useAuthStore, useCartStore])\\n` +\n `with\\n` +\n `\\tmapStores(useAuthStore, useCartStore)\\n` +\n `This will fail in production if not fixed.`);\n stores = stores[0];\n }\n return stores.reduce((reduced, useStore) => {\n // @ts-expect-error: $id is added by defineStore\n reduced[useStore.$id + mapStoreSuffix] = function () {\n return useStore(this.$pinia);\n };\n return reduced;\n }, {});\n}\n/**\n * Allows using state and getters from one store without using the composition\n * API (`setup()`) by generating an object to be spread in the `computed` field\n * of a component.\n *\n * @param useStore - store to map from\n * @param keysOrMapper - array or object\n */\nfunction mapState(useStore, keysOrMapper) {\n return Array.isArray(keysOrMapper)\n ? keysOrMapper.reduce((reduced, key) => {\n reduced[key] = function () {\n // @ts-expect-error: FIXME: should work?\n return useStore(this.$pinia)[key];\n };\n return reduced;\n }, {})\n : Object.keys(keysOrMapper).reduce((reduced, key) => {\n // @ts-expect-error\n reduced[key] = function () {\n const store = useStore(this.$pinia);\n const storeKey = keysOrMapper[key];\n // for some reason TS is unable to infer the type of storeKey to be a\n // function\n return typeof storeKey === 'function'\n ? storeKey.call(this, store)\n : // @ts-expect-error: FIXME: should work?\n store[storeKey];\n };\n return reduced;\n }, {});\n}\n/**\n * Alias for `mapState()`. You should use `mapState()` instead.\n * @deprecated use `mapState()` instead.\n */\nconst mapGetters = mapState;\n/**\n * Allows directly using actions from your store without using the composition\n * API (`setup()`) by generating an object to be spread in the `methods` field\n * of a component.\n *\n * @param useStore - store to map from\n * @param keysOrMapper - array or object\n */\nfunction mapActions(useStore, keysOrMapper) {\n return Array.isArray(keysOrMapper)\n ? keysOrMapper.reduce((reduced, key) => {\n // @ts-expect-error\n reduced[key] = function (...args) {\n // @ts-expect-error: FIXME: should work?\n return useStore(this.$pinia)[key](...args);\n };\n return reduced;\n }, {})\n : Object.keys(keysOrMapper).reduce((reduced, key) => {\n // @ts-expect-error\n reduced[key] = function (...args) {\n // @ts-expect-error: FIXME: should work?\n return useStore(this.$pinia)[keysOrMapper[key]](...args);\n };\n return reduced;\n }, {});\n}\n/**\n * Allows using state and getters from one store without using the composition\n * API (`setup()`) by generating an object to be spread in the `computed` field\n * of a component.\n *\n * @param useStore - store to map from\n * @param keysOrMapper - array or object\n */\nfunction mapWritableState(useStore, keysOrMapper) {\n return Array.isArray(keysOrMapper)\n ? keysOrMapper.reduce((reduced, key) => {\n reduced[key] = {\n get() {\n return useStore(this.$pinia)[key];\n },\n set(value) {\n return (useStore(this.$pinia)[key] = value);\n },\n };\n return reduced;\n }, {})\n : Object.keys(keysOrMapper).reduce((reduced, key) => {\n reduced[key] = {\n get() {\n return useStore(this.$pinia)[keysOrMapper[key]];\n },\n set(value) {\n return (useStore(this.$pinia)[keysOrMapper[key]] = value);\n },\n };\n return reduced;\n }, {});\n}\n\n/**\n * Creates an object of references with all the state, getters, and plugin-added\n * state properties of the store. Similar to `toRefs()` but specifically\n * designed for Pinia stores so methods and non reactive properties are\n * completely ignored.\n *\n * @param store - store to extract the refs from\n */\nfunction storeToRefs(store) {\n const rawStore = toRaw(store);\n const refs = {};\n for (const key in rawStore) {\n const value = rawStore[key];\n // There is no native method to check for a computed\n // https://github.com/vuejs/core/pull/4165\n if (value.effect) {\n // @ts-expect-error: too hard to type correctly\n refs[key] =\n // ...\n computed({\n get: () => store[key],\n set(value) {\n store[key] = value;\n },\n });\n }\n else if (isRef(value) || isReactive(value)) {\n // @ts-expect-error: the key is state or getter\n refs[key] =\n // ---\n toRef(store, key);\n }\n }\n return refs;\n}\n\nexport { MutationType, acceptHMRUpdate, createPinia, defineStore, disposePinia, getActivePinia, mapActions, mapGetters, mapState, mapStores, mapWritableState, setActivePinia, setMapStoreSuffix, shouldHydrate, skipHydrate, storeToRefs };\n","import { watch as zt, onMounted as Mn, nextTick as br, readonly as $n, getCurrentInstance as zn, toRef as Ti, customRef as Li, ref as j, reactive as lr, computed as J, toValue as At, shallowRef as Tn, unref as Di, inject as xe, provide as Xr } from \"vue\";\nimport { defineStore as Ci, storeToRefs as Ln } from \"pinia\";\nconst qi = typeof window < \"u\" && typeof document < \"u\";\ntypeof WorkerGlobalScope < \"u\" && globalThis instanceof WorkerGlobalScope;\nconst Ni = Object.prototype.toString, Pi = (e) => Ni.call(e) === \"[object Object]\", Dn = () => {\n};\nfunction Fi(...e) {\n if (e.length !== 1) return Ti(...e);\n const t = e[0];\n return typeof t == \"function\" ? $n(Li(() => ({\n get: t,\n set: Dn\n }))) : j(t);\n}\nfunction ji(e, t) {\n function r(...n) {\n return new Promise((i, o) => {\n Promise.resolve(e(() => t.apply(this, n), {\n fn: t,\n thisArg: this,\n args: n\n })).then(i).catch(o);\n });\n }\n return r;\n}\nconst Cn = (e) => e();\nfunction Bi(e = Cn, t = {}) {\n const { initialState: r = \"active\" } = t, n = Fi(r === \"active\");\n function i() {\n n.value = !1;\n }\n function o() {\n n.value = !0;\n }\n const s = (...a) => {\n n.value && e(...a);\n };\n return {\n isActive: $n(n),\n pause: i,\n resume: o,\n eventFilter: s\n };\n}\nfunction nr(e) {\n return Array.isArray(e) ? e : [e];\n}\nfunction xi(e) {\n return zn();\n}\nfunction Ui(e, t, r = {}) {\n const { eventFilter: n = Cn, ...i } = r;\n return zt(e, ji(n, t), i);\n}\nfunction Wi(e, t, r = {}) {\n const { eventFilter: n, initialState: i = \"active\", ...o } = r, { eventFilter: s, pause: a, resume: u, isActive: c } = Bi(n, { initialState: i });\n return {\n stop: Ui(e, t, {\n ...o,\n eventFilter: s\n }),\n pause: a,\n resume: u,\n isActive: c\n };\n}\nfunction Ki(e, t = !0, r) {\n xi() ? Mn(e, r) : t ? e() : br(e);\n}\nfunction Hi(e, t, r) {\n return zt(e, t, {\n ...r,\n immediate: !0\n });\n}\nfunction he(e, t, r) {\n return zt(e, (i, o, s) => {\n i && t(i, o, s);\n }, {\n ...r,\n once: !1\n });\n}\nconst Ft = qi ? window : void 0;\nfunction Vi(e) {\n var t;\n const r = At(e);\n return (t = r?.$el) !== null && t !== void 0 ? t : r;\n}\nfunction Ht(...e) {\n const t = (n, i, o, s) => (n.addEventListener(i, o, s), () => n.removeEventListener(i, o, s)), r = J(() => {\n const n = nr(At(e[0])).filter((i) => i != null);\n return n.every((i) => typeof i != \"string\") ? n : void 0;\n });\n return Hi(() => {\n var n, i;\n return [\n (n = (i = r.value) === null || i === void 0 ? void 0 : i.map((o) => Vi(o))) !== null && n !== void 0 ? n : [Ft].filter((o) => o != null),\n nr(At(r.value ? e[1] : e[0])),\n nr(Di(r.value ? e[2] : e[1])),\n At(r.value ? e[3] : e[2])\n ];\n }, ([n, i, o, s], a, u) => {\n if (!n?.length || !i?.length || !o?.length) return;\n const c = Pi(s) ? { ...s } : s, f = n.flatMap((h) => i.flatMap((l) => o.map((d) => t(h, l, d, c))));\n u(() => {\n f.forEach((h) => h());\n });\n }, { flush: \"post\" });\n}\nconst De = typeof globalThis < \"u\" ? globalThis : typeof window < \"u\" ? window : typeof global < \"u\" ? global : typeof self < \"u\" ? self : {}, Ce = \"__vueuse_ssr_handlers__\", Yi = /* @__PURE__ */ Ji();\nfunction Ji() {\n return Ce in De || (De[Ce] = De[Ce] || {}), De[Ce];\n}\nfunction Gi(e, t) {\n return Yi[e] || t;\n}\nfunction Zi(e) {\n return e == null ? \"any\" : e instanceof Set ? \"set\" : e instanceof Map ? \"map\" : e instanceof Date ? \"date\" : typeof e == \"boolean\" ? \"boolean\" : typeof e == \"string\" ? \"string\" : typeof e == \"object\" ? \"object\" : Number.isNaN(e) ? \"any\" : \"number\";\n}\nconst Xi = {\n boolean: {\n read: (e) => e === \"true\",\n write: (e) => String(e)\n },\n object: {\n read: (e) => JSON.parse(e),\n write: (e) => JSON.stringify(e)\n },\n number: {\n read: (e) => Number.parseFloat(e),\n write: (e) => String(e)\n },\n any: {\n read: (e) => e,\n write: (e) => String(e)\n },\n string: {\n read: (e) => e,\n write: (e) => String(e)\n },\n map: {\n read: (e) => new Map(JSON.parse(e)),\n write: (e) => JSON.stringify(Array.from(e.entries()))\n },\n set: {\n read: (e) => new Set(JSON.parse(e)),\n write: (e) => JSON.stringify(Array.from(e))\n },\n date: {\n read: (e) => new Date(e),\n write: (e) => e.toISOString()\n }\n}, Qr = \"vueuse-storage\";\nfunction Qi(e, t, r, n = {}) {\n var i;\n const { flush: o = \"pre\", deep: s = !0, listenToStorageChanges: a = !0, writeDefaults: u = !0, mergeDefaults: c = !1, shallow: f, window: h = Ft, eventFilter: l, onError: d = (E) => {\n console.error(E);\n }, initOnMounted: p } = n, _ = (f ? Tn : j)(t), m = J(() => At(e));\n if (!r) try {\n r = Gi(\"getDefaultStorage\", () => Ft?.localStorage)();\n } catch (E) {\n d(E);\n }\n if (!r) return _;\n const R = At(t), O = Zi(R), w = (i = n.serializer) !== null && i !== void 0 ? i : Xi[O], { pause: K, resume: A } = Wi(_, (E) => ce(E), {\n flush: o,\n deep: s,\n eventFilter: l\n });\n zt(m, () => bt(), { flush: o });\n let $ = !1;\n const z = (E) => {\n p && !$ || bt(E);\n }, Y = (E) => {\n p && !$ || Wt(E);\n };\n h && a && (r instanceof Storage ? Ht(h, \"storage\", z, { passive: !0 }) : Ht(h, Qr, Y)), p ? Ki(() => {\n $ = !0, bt();\n }) : bt();\n function _t(E, B) {\n if (h) {\n const X = {\n key: m.value,\n oldValue: E,\n newValue: B,\n storageArea: r\n };\n h.dispatchEvent(r instanceof Storage ? new StorageEvent(\"storage\", X) : new CustomEvent(Qr, { detail: X }));\n }\n }\n function ce(E) {\n try {\n const B = r.getItem(m.value);\n if (E == null)\n _t(B, null), r.removeItem(m.value);\n else {\n const X = w.write(E);\n B !== X && (r.setItem(m.value, X), _t(B, X));\n }\n } catch (B) {\n d(B);\n }\n }\n function fe(E) {\n const B = E ? E.newValue : r.getItem(m.value);\n if (B == null)\n return u && R != null && r.setItem(m.value, w.write(R)), R;\n if (!E && c) {\n const X = w.read(B);\n return typeof c == \"function\" ? c(X, R) : O === \"object\" && !Array.isArray(X) ? {\n ...R,\n ...X\n } : X;\n } else return typeof B != \"string\" ? B : w.read(B);\n }\n function bt(E) {\n if (!(E && E.storageArea !== r)) {\n if (E && E.key == null) {\n _.value = R;\n return;\n }\n if (!(E && E.key !== m.value)) {\n K();\n try {\n const B = w.write(_.value);\n (E === void 0 || E?.newValue !== B) && (_.value = fe(E));\n } catch (B) {\n d(B);\n } finally {\n E ? br(A) : A();\n }\n }\n }\n }\n function Wt(E) {\n bt(E.detail);\n }\n return _;\n}\nfunction to(e, t, r = {}) {\n const { window: n = Ft } = r;\n return Qi(e, t, n?.localStorage, r);\n}\nconst eo = {\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};\nfunction ro(e = {}) {\n const { reactive: t = !1, target: r = Ft, aliasMap: n = eo, passive: i = !0, onEventFired: o = Dn } = e, s = lr(/* @__PURE__ */ new Set()), a = {\n toJSON() {\n return {};\n },\n current: s\n }, u = t ? lr(a) : a, c = /* @__PURE__ */ new Set(), f = /* @__PURE__ */ new Map([\n [\"Meta\", c],\n [\"Shift\", /* @__PURE__ */ new Set()],\n [\"Alt\", /* @__PURE__ */ new Set()]\n ]), h = /* @__PURE__ */ new Set();\n function l(O, w) {\n O in u && (t ? u[O] = w : u[O].value = w);\n }\n function d() {\n s.clear();\n for (const O of h) l(O, !1);\n }\n function p(O, w, K) {\n if (!(!O || typeof w.getModifierState != \"function\")) {\n for (const [A, $] of f) if (w.getModifierState(A)) {\n K.forEach((z) => $.add(z));\n break;\n }\n }\n }\n function _(O, w) {\n if (O) return;\n const K = `${w[0].toUpperCase()}${w.slice(1)}`, A = f.get(K);\n if (![\"shift\", \"alt\"].includes(w) || !A) return;\n const $ = Array.from(A), z = $.indexOf(w);\n $.forEach((Y, _t) => {\n _t >= z && (s.delete(Y), l(Y, !1));\n }), A.clear();\n }\n function m(O, w) {\n var K, A;\n const $ = (K = O.key) === null || K === void 0 ? void 0 : K.toLowerCase(), z = [(A = O.code) === null || A === void 0 ? void 0 : A.toLowerCase(), $].filter(Boolean);\n if ($) {\n $ && (w ? s.add($) : s.delete($));\n for (const Y of z)\n h.add(Y), l(Y, w);\n p(w, O, [...s, ...z]), _(w, $), $ === \"meta\" && !w && (c.forEach((Y) => {\n s.delete(Y), l(Y, !1);\n }), c.clear());\n }\n }\n Ht(r, \"keydown\", (O) => (m(O, !0), o(O)), { passive: i }), Ht(r, \"keyup\", (O) => (m(O, !1), o(O)), { passive: i }), Ht(\"blur\", d, { passive: i }), Ht(\"focus\", d, { passive: i });\n const R = new Proxy(u, { get(O, w, K) {\n if (typeof w != \"string\") return Reflect.get(O, w, K);\n if (w = w.toLowerCase(), w in n && (w = n[w]), !(w in u)) if (/[+_-]/.test(w)) {\n const $ = w.split(/[+_-]/g).map((z) => z.trim());\n u[w] = J(() => $.map((z) => At(R[z])).every(Boolean));\n } else u[w] = Tn(!1);\n const A = Reflect.get(O, w, K);\n return t ? At(A) : A;\n } });\n return R;\n}\nfunction ir() {\n return typeof crypto < \"u\" && crypto.randomUUID ? crypto.randomUUID() : `${Date.now()}-${Math.random().toString(36).substring(2, 9)}`;\n}\nfunction qe(e) {\n const t = {\n type: e.type,\n clientId: e.clientId,\n timestamp: e.timestamp.toISOString()\n };\n return e.operation && (t.operation = {\n ...e.operation,\n timestamp: e.operation.timestamp.toISOString()\n }), e.operations && (t.operations = e.operations.map((r) => ({\n ...r,\n timestamp: r.timestamp.toISOString()\n }))), t;\n}\nfunction no(e) {\n const t = {\n type: e.type,\n clientId: e.clientId,\n timestamp: new Date(e.timestamp)\n };\n return e.operation && (t.operation = {\n ...e.operation,\n timestamp: new Date(e.operation.timestamp)\n }), e.operations && (t.operations = e.operations.map((r) => ({\n ...r,\n timestamp: new Date(r.timestamp)\n }))), t;\n}\nfunction tn(e, t) {\n (e.type === \"set\" || e.type === \"delete\") && t && typeof t.set == \"function\" && t.set(e.path, e.beforeValue, \"undo\");\n}\nfunction en(e, t) {\n (e.type === \"set\" || e.type === \"delete\") && t && typeof t.set == \"function\" && t.set(e.path, e.afterValue, \"redo\");\n}\nconst Ie = Ci(\"hst-operation-log\", () => {\n const e = j({\n maxOperations: 100,\n enableCrossTabSync: !0,\n autoSyncInterval: 3e4,\n enablePersistence: !1,\n persistenceKeyPrefix: \"stonecrop-ops\"\n }), t = j([]), r = j(-1), n = j(ir()), i = j(!1), o = j([]), s = J(() => r.value < 0 ? !1 : t.value[r.value]?.reversible ?? !1), a = J(() => r.value < t.value.length - 1), u = J(() => {\n let v = 0;\n for (let y = r.value; y >= 0 && t.value[y]?.reversible; y--)\n v++;\n return v;\n }), c = J(() => t.value.length - 1 - r.value), f = J(() => ({\n canUndo: s.value,\n canRedo: a.value,\n undoCount: u.value,\n redoCount: c.value,\n currentIndex: r.value\n }));\n function h(v) {\n e.value = { ...e.value, ...v }, e.value.enablePersistence && (E(), X()), e.value.enableCrossTabSync && Y();\n }\n function l(v, y = \"user\") {\n const g = {\n ...v,\n id: ir(),\n timestamp: /* @__PURE__ */ new Date(),\n source: y,\n userId: e.value.userId\n };\n if (e.value.operationFilter && !e.value.operationFilter(g))\n return g.id;\n if (i.value && o.value.length > 0)\n return o.value[o.value.length - 1].operations.push(g), g.id;\n if (r.value < t.value.length - 1 && (t.value = t.value.slice(0, r.value + 1)), t.value.push(g), r.value++, e.value.maxOperations && t.value.length > e.value.maxOperations) {\n const U = t.value.length - e.value.maxOperations;\n t.value = t.value.slice(U), r.value -= U;\n }\n return e.value.enableCrossTabSync && _t(g), g.id;\n }\n function d() {\n i.value = !0, o.value.push({\n id: ir(),\n operations: []\n });\n }\n function p(v) {\n if (!i.value || o.value.length === 0)\n return null;\n const y = o.value.pop(), g = y.operations;\n if (g.length === 0)\n return o.value.length === 0 && (i.value = !1), null;\n const U = y.id, ft = g.every((Ot) => Ot.reversible), gt = {\n id: U,\n type: \"batch\",\n path: \"\",\n // Batch doesn't have a single path\n fieldname: \"\",\n beforeValue: null,\n afterValue: null,\n doctype: g[0]?.doctype || \"\",\n timestamp: /* @__PURE__ */ new Date(),\n source: \"user\",\n reversible: ft,\n irreversibleReason: ft ? void 0 : \"Contains irreversible operations\",\n descendantOperationIds: g.map((Ot) => Ot.id),\n metadata: { description: v }\n };\n return g.forEach((Ot) => {\n Ot.ancestorOperationId = U;\n }), o.value.length > 0 ? o.value[o.value.length - 1].operations.push(gt) : (t.value.push(...g, gt), r.value = t.value.length - 1), e.value.enableCrossTabSync && ce(g, gt), o.value.length === 0 && (i.value = !1), U;\n }\n function _() {\n o.value = [], i.value = !1;\n }\n function m(v) {\n if (!s.value) return !1;\n const y = t.value[r.value];\n if (!y.reversible)\n return typeof console < \"u\" && y.irreversibleReason && console.warn(\"Cannot undo irreversible operation:\", y.irreversibleReason), !1;\n try {\n if (y.type === \"batch\" && y.descendantOperationIds)\n for (let g = y.descendantOperationIds.length - 1; g >= 0; g--) {\n const U = y.descendantOperationIds[g], ft = t.value.find((gt) => gt.id === U);\n ft && tn(ft, v);\n }\n else\n tn(y, v);\n return r.value--, e.value.enableCrossTabSync && fe(y), !0;\n } catch (g) {\n return typeof console < \"u\" && console.error(\"Undo failed:\", g), !1;\n }\n }\n function R(v) {\n if (!a.value) return !1;\n const y = t.value[r.value + 1];\n try {\n if (y.type === \"batch\" && y.descendantOperationIds)\n for (const g of y.descendantOperationIds) {\n const U = t.value.find((ft) => ft.id === g);\n U && en(U, v);\n }\n else\n en(y, v);\n return r.value++, e.value.enableCrossTabSync && bt(y), !0;\n } catch (g) {\n return typeof console < \"u\" && console.error(\"Redo failed:\", g), !1;\n }\n }\n function O() {\n const v = t.value.filter((g) => g.reversible).length, y = t.value.map((g) => g.timestamp);\n return {\n operations: [...t.value],\n currentIndex: r.value,\n totalOperations: t.value.length,\n reversibleOperations: v,\n irreversibleOperations: t.value.length - v,\n oldestOperation: y.length > 0 ? new Date(Math.min(...y.map((g) => g.getTime()))) : void 0,\n newestOperation: y.length > 0 ? new Date(Math.max(...y.map((g) => g.getTime()))) : void 0\n };\n }\n function w() {\n t.value = [], r.value = -1;\n }\n function K(v, y) {\n return t.value.filter((g) => g.doctype === v && (y === void 0 || g.recordId === y));\n }\n function A(v, y) {\n const g = t.value.find((U) => U.id === v);\n g && (g.reversible = !1, g.irreversibleReason = y);\n }\n function $(v, y, g, U = \"success\", ft) {\n const gt = {\n type: \"action\",\n path: g && g.length > 0 ? `${v}.${g[0]}` : v,\n fieldname: \"\",\n beforeValue: null,\n afterValue: null,\n doctype: v,\n recordId: g && g.length > 0 ? g[0] : void 0,\n reversible: !1,\n // Actions are typically not reversible\n actionName: y,\n actionRecordIds: g,\n actionResult: U,\n actionError: ft\n };\n return l(gt);\n }\n let z = null;\n function Y() {\n typeof window > \"u\" || !window.BroadcastChannel || (z = new BroadcastChannel(\"stonecrop-operation-log\"), z.addEventListener(\"message\", (v) => {\n const y = v.data;\n if (!y || typeof y != \"object\") return;\n const g = no(y);\n g.clientId !== n.value && (g.type === \"operation\" && g.operation ? (t.value.push({ ...g.operation, source: \"sync\" }), r.value = t.value.length - 1) : g.type === \"operation\" && g.operations && (t.value.push(\n ...g.operations.map((U) => Object.assign({}, U, { source: \"sync\" }))\n ), r.value = t.value.length - 1));\n }));\n }\n function _t(v) {\n if (!z) return;\n const y = {\n type: \"operation\",\n operation: v,\n clientId: n.value,\n timestamp: /* @__PURE__ */ new Date()\n };\n z.postMessage(qe(y));\n }\n function ce(v, y) {\n if (!z) return;\n const g = {\n type: \"operation\",\n operations: [...v, y],\n clientId: n.value,\n timestamp: /* @__PURE__ */ new Date()\n };\n z.postMessage(qe(g));\n }\n function fe(v) {\n if (!z) return;\n const y = {\n type: \"undo\",\n operation: v,\n clientId: n.value,\n timestamp: /* @__PURE__ */ new Date()\n };\n z.postMessage(qe(y));\n }\n function bt(v) {\n if (!z) return;\n const y = {\n type: \"redo\",\n operation: v,\n clientId: n.value,\n timestamp: /* @__PURE__ */ new Date()\n };\n z.postMessage(qe(y));\n }\n const Wt = to(\"stonecrop-operations\", null, {\n serializer: {\n read: (v) => {\n try {\n return JSON.parse(v);\n } catch {\n return null;\n }\n },\n write: (v) => v ? JSON.stringify(v) : \"\"\n }\n });\n function E() {\n if (!(typeof window > \"u\"))\n try {\n const v = Wt.value;\n v && Array.isArray(v.operations) && (t.value = v.operations.map((y) => ({\n ...y,\n timestamp: new Date(y.timestamp)\n })), r.value = v.currentIndex ?? -1);\n } catch (v) {\n typeof console < \"u\" && console.error(\"Failed to load operations from persistence:\", v);\n }\n }\n function B() {\n if (!(typeof window > \"u\"))\n try {\n Wt.value = {\n operations: t.value.map((v) => ({\n ...v,\n timestamp: v.timestamp.toISOString()\n })),\n currentIndex: r.value\n };\n } catch (v) {\n typeof console < \"u\" && console.error(\"Failed to save operations to persistence:\", v);\n }\n }\n function X() {\n zt(\n [t, r],\n () => {\n e.value.enablePersistence && B();\n },\n { deep: !0 }\n );\n }\n return {\n // State\n operations: t,\n currentIndex: r,\n config: e,\n clientId: n,\n undoRedoState: f,\n // Computed\n canUndo: s,\n canRedo: a,\n undoCount: u,\n redoCount: c,\n // Methods\n configure: h,\n addOperation: l,\n startBatch: d,\n commitBatch: p,\n cancelBatch: _,\n undo: m,\n redo: R,\n clear: w,\n getOperationsFor: K,\n getSnapshot: O,\n markIrreversible: A,\n logAction: $\n };\n});\nclass ge {\n /**\n * The root FieldTriggerEngine instance\n */\n static _root;\n options;\n doctypeActions = /* @__PURE__ */ new Map();\n // doctype -> action/field -> functions\n doctypeTransitions = /* @__PURE__ */ new Map();\n // doctype -> transition -> functions\n fieldRollbackConfig = /* @__PURE__ */ new Map();\n // doctype -> field -> rollback enabled\n globalActions = /* @__PURE__ */ new Map();\n // action name -> function\n globalTransitionActions = /* @__PURE__ */ new Map();\n // transition action name -> function\n /**\n * Creates a new FieldTriggerEngine instance (singleton pattern)\n * @param options - Configuration options for the field trigger engine\n */\n constructor(t = {}) {\n return ge._root ? ge._root : (ge._root = this, this.options = {\n defaultTimeout: t.defaultTimeout ?? 5e3,\n debug: t.debug ?? !1,\n enableRollback: t.enableRollback ?? !0,\n errorHandler: t.errorHandler\n }, this);\n }\n /**\n * Register a global action function\n * @param name - The name of the action\n * @param fn - The action function\n */\n registerAction(t, r) {\n this.globalActions.set(t, r);\n }\n /**\n * Look up a registered action function by name.\n * Returns `undefined` if the action has not been registered.\n * @param name - The action name\n */\n getAction(t) {\n return this.globalActions.get(t);\n }\n /**\n * Register a global XState transition action function\n * @param name - The name of the transition action\n * @param fn - The transition action function\n */\n registerTransitionAction(t, r) {\n this.globalTransitionActions.set(t, r);\n }\n /**\n * Configure rollback behavior for a specific field trigger\n * @param doctype - The doctype name\n * @param fieldname - The field name\n * @param enableRollback - Whether to enable rollback\n */\n setFieldRollback(t, r, n) {\n this.fieldRollbackConfig.has(t) || this.fieldRollbackConfig.set(t, /* @__PURE__ */ new Map()), this.fieldRollbackConfig.get(t).set(r, n);\n }\n /**\n * Get rollback configuration for a specific field trigger\n */\n getFieldRollback(t, r) {\n return this.fieldRollbackConfig.get(t)?.get(r);\n }\n /**\n * Register actions from a doctype - both regular actions and field triggers\n * Separates XState transitions (uppercase) from field triggers (lowercase)\n * @param doctype - The doctype name\n * @param actions - The actions to register (supports Immutable Map, Map, or plain object)\n */\n registerDoctypeActions(t, r) {\n if (!r) return;\n const n = /* @__PURE__ */ new Map(), i = /* @__PURE__ */ new Map(), o = r;\n if (typeof o.entrySeq == \"function\")\n o.entrySeq().forEach(([s, a]) => {\n this.categorizeAction(s, a, n, i);\n });\n else if (r instanceof Map)\n for (const [s, a] of r)\n this.categorizeAction(s, a, n, i);\n else r && typeof r == \"object\" && Object.entries(r).forEach(([s, a]) => {\n this.categorizeAction(s, a, n, i);\n });\n this.doctypeActions.set(t, n), this.doctypeTransitions.set(t, i);\n }\n /**\n * Categorize an action as either a field trigger or XState transition\n * Uses uppercase convention: UPPERCASE = transition, lowercase/mixed = field trigger\n */\n categorizeAction(t, r, n, i) {\n this.isTransitionKey(t) ? i.set(t, r) : n.set(t, r);\n }\n /**\n * Determine if a key represents an XState transition\n * Transitions are identified by being all uppercase\n */\n isTransitionKey(t) {\n return /^[A-Z0-9_]+$/.test(t) && t.length > 0;\n }\n /**\n * Execute field triggers for a changed field\n * @param context - The field change context\n * @param options - Execution options (timeout and enableRollback)\n */\n async executeFieldTriggers(t, r = {}) {\n const { doctype: n, fieldname: i } = t, o = this.findFieldTriggers(n, i);\n if (o.length === 0)\n return {\n path: t.path,\n actionResults: [],\n totalExecutionTime: 0,\n allSucceeded: !0,\n stoppedOnError: !1,\n rolledBack: !1\n };\n const s = performance.now(), a = [];\n let u = !1, c = !1, f;\n const h = this.getFieldRollback(n, i), l = r.enableRollback ?? h ?? this.options.enableRollback;\n l && t.store && (f = this.captureSnapshot(t));\n for (const m of o)\n try {\n const R = await this.executeAction(m, t, r.timeout);\n if (a.push(R), !R.success) {\n u = !0;\n break;\n }\n } catch (R) {\n const w = {\n success: !1,\n error: R instanceof Error ? R : new Error(String(R)),\n executionTime: 0,\n action: m\n };\n a.push(w), u = !0;\n break;\n }\n if (l && u && f && t.store)\n try {\n this.restoreSnapshot(t, f), c = !0;\n } catch (m) {\n console.error(\"[FieldTriggers] Rollback failed:\", m);\n }\n const d = performance.now() - s, p = a.filter((m) => !m.success && m.error != null);\n if (p.length > 0 && this.options.errorHandler)\n for (const m of p)\n try {\n m.error && this.options.errorHandler(m.error, t, m.action);\n } catch (R) {\n console.error(\"[FieldTriggers] Error in global error handler:\", R);\n }\n return {\n path: t.path,\n actionResults: a,\n totalExecutionTime: d,\n allSucceeded: a.every((m) => m.success),\n stoppedOnError: u,\n rolledBack: c,\n snapshot: this.options.debug && l ? f : void 0\n // Only include snapshot in debug mode if rollback is enabled\n };\n }\n /**\n * Execute XState transition actions\n * Similar to field triggers but specifically for FSM state transitions\n * @param context - The transition change context\n * @param options - Execution options (timeout)\n */\n async executeTransitionActions(t, r = {}) {\n const { doctype: n, transition: i } = t, o = this.findTransitionActions(n, i);\n if (o.length === 0)\n return [];\n const s = [];\n for (const u of o)\n try {\n const c = await this.executeTransitionAction(u, t, r.timeout);\n if (s.push(c), !c.success)\n break;\n } catch (c) {\n const h = {\n success: !1,\n error: c instanceof Error ? c : new Error(String(c)),\n executionTime: 0,\n action: u,\n transition: i\n };\n s.push(h);\n break;\n }\n const a = s.filter((u) => !u.success);\n if (a.length > 0 && this.options.errorHandler)\n for (const u of a)\n try {\n u.error && this.options.errorHandler(u.error, t, u.action);\n } catch (c) {\n console.error(\"[FieldTriggers] Error in global error handler:\", c);\n }\n return s;\n }\n /**\n * Find transition actions for a specific doctype and transition\n */\n findTransitionActions(t, r) {\n const n = this.doctypeTransitions.get(t);\n return n ? n.get(r) || [] : [];\n }\n /**\n * Execute a single transition action by name\n */\n async executeTransitionAction(t, r, n) {\n const i = performance.now(), o = n ?? this.options.defaultTimeout;\n try {\n let s = this.globalTransitionActions.get(t);\n if (!s) {\n const u = this.globalActions.get(t);\n u && (s = u);\n }\n if (!s)\n throw new Error(`Transition action \"${t}\" not found in registry`);\n return await this.executeWithTimeout(s, r, o), {\n success: !0,\n executionTime: performance.now() - i,\n action: t,\n transition: r.transition\n };\n } catch (s) {\n const a = performance.now() - i;\n return {\n success: !1,\n error: s instanceof Error ? s : new Error(String(s)),\n executionTime: a,\n action: t,\n transition: r.transition\n };\n }\n }\n /**\n * Find field triggers for a specific doctype and field\n * Field triggers are identified by keys that look like field paths (contain dots or match field names)\n */\n findFieldTriggers(t, r) {\n const n = this.doctypeActions.get(t);\n if (!n) return [];\n const i = [];\n for (const [o, s] of n)\n this.isFieldTriggerKey(o, r) && i.push(...s);\n return i;\n }\n /**\n * Determine if an action key represents a field trigger\n * Field triggers can be:\n * - Exact field name match: \"emailAddress\"\n * - Wildcard patterns: \"emailAddress.*\", \"*.is_primary\"\n * - Nested field paths: \"address.street\", \"contact.email\"\n */\n isFieldTriggerKey(t, r) {\n return t === r ? !0 : t.includes(\".\") ? this.matchFieldPattern(t, r) : t.includes(\"*\") ? this.matchFieldPattern(t, r) : !1;\n }\n /**\n * Match a field pattern against a field name\n * Supports wildcards (*) for dynamic segments\n */\n matchFieldPattern(t, r) {\n const n = t.split(\".\"), i = r.split(\".\");\n if (n.length !== i.length)\n return !1;\n for (let o = 0; o < n.length; o++) {\n const s = n[o], a = i[o];\n if (s !== \"*\" && s !== a)\n return !1;\n }\n return !0;\n }\n /**\n * Execute a single action by name\n */\n async executeAction(t, r, n) {\n const i = performance.now(), o = n ?? this.options.defaultTimeout;\n try {\n const s = this.globalActions.get(t);\n if (!s)\n throw new Error(`Action \"${t}\" not found in registry`);\n return await this.executeWithTimeout(s, r, o), {\n success: !0,\n executionTime: performance.now() - i,\n action: t\n };\n } catch (s) {\n const a = performance.now() - i;\n return {\n success: !1,\n error: s instanceof Error ? s : new Error(String(s)),\n executionTime: a,\n action: t\n };\n }\n }\n /**\n * Execute a function with timeout\n */\n async executeWithTimeout(t, r, n) {\n return new Promise((i, o) => {\n const s = setTimeout(() => {\n o(new Error(`Action timeout after ${n}ms`));\n }, n);\n Promise.resolve(t(r)).then((a) => (clearTimeout(s), i(a))).catch((a) => {\n clearTimeout(s), o(a instanceof Error ? a : new Error(String(a)));\n });\n });\n }\n /**\n * Capture a snapshot of the record state before executing actions\n * This creates a deep copy of the record data for potential rollback\n */\n captureSnapshot(t) {\n if (!(!t.store || !t.doctype || !t.recordId))\n try {\n const r = `${t.doctype}.${t.recordId}`, n = t.store.get(r);\n return !n || typeof n != \"object\" ? void 0 : JSON.parse(JSON.stringify(n));\n } catch (r) {\n this.options.debug && console.warn(\"[FieldTriggers] Failed to capture snapshot:\", r);\n return;\n }\n }\n /**\n * Restore a previously captured snapshot\n * This reverts the record to its state before actions were executed\n */\n restoreSnapshot(t, r) {\n if (!(!t.store || !t.doctype || !t.recordId || !r))\n try {\n const n = `${t.doctype}.${t.recordId}`;\n t.store.set(n, r), this.options.debug && console.log(`[FieldTriggers] Rolled back ${n} to previous state`);\n } catch (n) {\n throw console.error(\"[FieldTriggers] Failed to restore snapshot:\", n), n;\n }\n }\n}\nfunction Et(e) {\n return new ge(e);\n}\nfunction as(e, t) {\n Et().registerAction(e, t);\n}\nfunction us(e, t) {\n Et().registerTransitionAction(e, t);\n}\nfunction cs(e, t, r) {\n Et().setFieldRollback(e, t, r);\n}\nasync function fs(e, t, r) {\n const n = Et(), i = {\n path: r?.path || (r?.recordId ? `${e}.${r.recordId}` : e),\n fieldname: \"\",\n beforeValue: void 0,\n afterValue: void 0,\n operation: \"set\",\n doctype: e,\n recordId: r?.recordId,\n timestamp: /* @__PURE__ */ new Date(),\n transition: t,\n currentState: r?.currentState,\n targetState: r?.targetState,\n fsmContext: r?.fsmContext\n };\n return await n.executeTransitionActions(i);\n}\nfunction hs(e, t) {\n if (e)\n try {\n Ie().markIrreversible(e, t);\n } catch {\n }\n}\nfunction rn() {\n try {\n return Ie();\n } catch {\n return null;\n }\n}\nclass Vt {\n static instance;\n /**\n * Gets the singleton instance of HST\n * @returns The HST singleton instance\n */\n static getInstance() {\n return Vt.instance || (Vt.instance = new Vt()), Vt.instance;\n }\n /**\n * Gets the global registry instance\n * @returns The global registry object or undefined if not found\n */\n getRegistry() {\n if (typeof globalThis < \"u\") {\n const t = globalThis.Registry?._root;\n if (t)\n return t;\n }\n if (typeof window < \"u\") {\n const t = window.Registry?._root;\n if (t)\n return t;\n }\n if (typeof global < \"u\" && global) {\n const t = global.Registry?._root;\n if (t)\n return t;\n }\n }\n /**\n * Helper method to get doctype metadata from the registry\n * @param doctype - The name of the doctype to retrieve metadata for\n * @returns The doctype metadata object or undefined if not found\n */\n getDoctypeMeta(t) {\n const r = this.getRegistry();\n if (r && typeof r == \"object\" && \"registry\" in r)\n return r.registry[t];\n }\n}\nclass Ue {\n target;\n ancestorPath;\n rootNode;\n doctype;\n hst;\n constructor(t, r, n = \"\", i = null) {\n return this.target = t, this.ancestorPath = n, this.rootNode = i || this, this.doctype = r, this.hst = Vt.getInstance(), new Proxy(this, {\n get(o, s) {\n if (s in o) return Reflect.get(o, s);\n const a = String(s);\n return o.getNode(a);\n },\n set(o, s, a) {\n const u = String(s);\n return o.set(u, a), !0;\n }\n });\n }\n get(t) {\n return this.resolveValue(t);\n }\n // Method to get a tree-wrapped node for navigation\n getNode(t) {\n const r = this.resolvePath(t), n = this.resolveValue(t), i = r.split(\".\");\n let o = this.doctype;\n return this.doctype === \"StonecropStore\" && i.length >= 1 && (o = i[0]), typeof n == \"object\" && n !== null && !this.isPrimitive(n) ? new Ue(n, o, r, this.rootNode) : new Ue(n, o, r, this.rootNode);\n }\n set(t, r, n = \"user\") {\n const i = this.resolvePath(t);\n if (i === void 0) {\n console.warn(\"HST.set: resolved path is undefined, skipping operation\");\n return;\n }\n const o = this.has(t) ? this.get(t) : void 0;\n if (n !== \"undo\" && n !== \"redo\") {\n const s = rn();\n if (s && typeof s.addOperation == \"function\") {\n const a = i.split(\".\"), u = this.doctype === \"StonecropStore\" && a.length >= 1 ? a[0] : this.doctype, c = a.length >= 2 ? a[1] : void 0, f = a.slice(2).join(\".\") || a[a.length - 1], l = r === void 0 && o !== void 0 ? \"delete\" : \"set\";\n s.addOperation(\n {\n type: l,\n path: i,\n fieldname: f,\n beforeValue: o,\n afterValue: r,\n doctype: u,\n recordId: c,\n reversible: !0\n // Default to reversible, can be changed by field triggers\n },\n n\n );\n }\n }\n this.updateValue(t, r), this.triggerFieldActions(i, o, r);\n }\n has(t) {\n try {\n if (t === \"\")\n return !0;\n const r = this.parsePath(t);\n let n = this.target;\n for (let i = 0; i < r.length; i++) {\n const o = r[i];\n if (n == null)\n return !1;\n if (i === r.length - 1)\n return this.isImmutable(n) ? n.has(o) : this.isPiniaStore(n) && n.$state && o in n.$state || o in n;\n n = this.getProperty(n, o);\n }\n return !1;\n } catch {\n return !1;\n }\n }\n // Tree navigation methods\n getAncestor() {\n if (!this.ancestorPath) return null;\n const r = this.ancestorPath.split(\".\").slice(0, -1).join(\".\");\n return r === \"\" ? this.rootNode : this.rootNode.getNode(r);\n }\n getRoot() {\n return this.rootNode;\n }\n getPath() {\n return this.ancestorPath;\n }\n getDepth() {\n return this.ancestorPath ? this.ancestorPath.split(\".\").length : 0;\n }\n getBreadcrumbs() {\n return this.ancestorPath ? this.ancestorPath.split(\".\") : [];\n }\n /**\n * Trigger an XState transition with optional context data\n */\n async triggerTransition(t, r) {\n const n = Et(), i = this.ancestorPath.split(\".\");\n let o = this.doctype, s;\n this.doctype === \"StonecropStore\" && i.length >= 1 && (o = i[0]), i.length >= 2 && (s = i[1]);\n const a = {\n path: this.ancestorPath,\n fieldname: \"\",\n // No specific field for transitions\n beforeValue: void 0,\n afterValue: void 0,\n operation: \"set\",\n doctype: o,\n recordId: s,\n timestamp: /* @__PURE__ */ new Date(),\n store: this.rootNode || void 0,\n transition: t,\n currentState: r?.currentState,\n targetState: r?.targetState,\n fsmContext: r?.fsmContext\n }, u = rn();\n return u && typeof u.addOperation == \"function\" && u.addOperation(\n {\n type: \"transition\",\n path: this.ancestorPath,\n fieldname: t,\n beforeValue: r?.currentState,\n afterValue: r?.targetState,\n doctype: o,\n recordId: s,\n reversible: !1,\n // FSM transitions are generally not reversible\n metadata: {\n transition: t,\n currentState: r?.currentState,\n targetState: r?.targetState,\n fsmContext: r?.fsmContext\n }\n },\n \"user\"\n ), await n.executeTransitionActions(a);\n }\n // Private helper methods\n resolvePath(t) {\n return t === \"\" ? this.ancestorPath ?? \"\" : this.ancestorPath ? `${this.ancestorPath}.${t}` : t;\n }\n resolveValue(t) {\n if (t === \"\")\n return this.target;\n const r = this.parsePath(t);\n let n = this.target;\n for (const i of r) {\n if (n == null)\n return;\n n = this.getProperty(n, i);\n }\n return n;\n }\n updateValue(t, r) {\n if (t === \"\")\n throw new Error(\"Cannot set value on empty path\");\n const n = this.parsePath(t), i = n.pop();\n let o = this.target;\n for (const s of n)\n if (o = this.getProperty(o, s), o == null)\n throw new Error(`Cannot set property on null/undefined path: ${t}`);\n this.setProperty(o, i, r);\n }\n getProperty(t, r) {\n return this.isImmutable(t) ? t.get(r) : this.isVueReactive(t) ? t[r] : this.isPiniaStore(t) ? t.$state?.[r] ?? t[r] : t[r];\n }\n setProperty(t, r, n) {\n if (this.isImmutable(t))\n throw new Error(\"Cannot directly mutate immutable objects. Use immutable update methods instead.\");\n if (this.isPiniaStore(t)) {\n t.$patch ? t.$patch({ [r]: n }) : t[r] = n;\n return;\n }\n t[r] = n;\n }\n async triggerFieldActions(t, r, n) {\n try {\n if (!t || typeof t != \"string\" || Object.is(r, n))\n return;\n const i = t.split(\".\");\n if (i.length < 3)\n return;\n const o = Et(), s = i.slice(2).join(\".\") || i[i.length - 1];\n let a = this.doctype;\n this.doctype === \"StonecropStore\" && i.length >= 1 && (a = i[0]);\n let u;\n i.length >= 2 && (u = i[1]);\n const c = {\n path: t,\n fieldname: s,\n beforeValue: r,\n afterValue: n,\n operation: \"set\",\n doctype: a,\n recordId: u,\n timestamp: /* @__PURE__ */ new Date(),\n store: this.rootNode || void 0\n // Pass the root store for snapshot/rollback capabilities\n };\n await o.executeFieldTriggers(c);\n } catch (i) {\n i instanceof Error && console.warn(\"Field trigger error:\", i.message);\n }\n }\n isVueReactive(t) {\n return t && typeof t == \"object\" && \"__v_isReactive\" in t && t.__v_isReactive === !0;\n }\n isPiniaStore(t) {\n return t && typeof t == \"object\" && (\"$state\" in t || \"$patch\" in t || \"$id\" in t);\n }\n isImmutable(t) {\n if (!t || typeof t != \"object\")\n return !1;\n const r = \"get\" in t && typeof t.get == \"function\", n = \"set\" in t && typeof t.set == \"function\", i = \"has\" in t && typeof t.has == \"function\", o = \"__ownerID\" in t || \"_map\" in t || \"_list\" in t || \"_origin\" in t || \"_capacity\" in t || \"_defaultValues\" in t || \"_tail\" in t || \"_root\" in t || \"size\" in t && r && n;\n let s;\n try {\n if (\"constructor\" in t && t.constructor && typeof t.constructor == \"object\" && \"name\" in t.constructor) {\n const u = t.constructor.name;\n s = typeof u == \"string\" ? u : void 0;\n }\n } catch {\n s = void 0;\n }\n const a = s && (s.includes(\"Map\") || s.includes(\"List\") || s.includes(\"Set\") || s.includes(\"Stack\") || s.includes(\"Seq\")) && (r || n);\n return !!(r && n && i && o || r && n && a);\n }\n isPrimitive(t) {\n return t == null || typeof t == \"string\" || typeof t == \"number\" || typeof t == \"boolean\" || typeof t == \"function\" || typeof t == \"symbol\" || typeof t == \"bigint\";\n }\n /**\n * Parse a path string into segments, handling both dot notation and array bracket notation\n * @param path - The path string to parse (e.g., \"order.456.line_items[0].product\")\n * @returns Array of path segments (e.g., ['order', '456', 'line_items', '0', 'product'])\n */\n parsePath(t) {\n return t ? t.replace(/\\[(\\d+)\\]/g, \".$1\").split(\".\").filter((n) => n.length > 0) : [];\n }\n}\nfunction io(e, t) {\n return new Ue(e, t, \"\", null);\n}\nclass Mt {\n /**\n * Singleton instance of Stonecrop. Only one Stonecrop instance can exist\n * per application, ensuring consistent HST state and registry access.\n * Subsequent constructor calls return this instance instead of creating new ones.\n * @internal\n */\n static _root;\n /** The HST store instance for reactive state management */\n hstStore;\n _operationLogStore;\n _operationLogConfig;\n _client;\n /** The registry instance containing all doctype definitions */\n registry;\n /**\n * Creates a new Stonecrop instance with HST integration (singleton pattern)\n * @param registry - The Registry instance containing doctype definitions\n * @param operationLogConfig - Optional configuration for the operation log\n * @param options - Options including the data client (can be set later via setClient)\n */\n constructor(t, r, n) {\n return Mt._root ? Mt._root : (Mt._root = this, this.registry = t, this._operationLogConfig = r, this._client = n?.client, this.initializeHSTStore(), this.setupRegistrySync(), this);\n }\n /**\n * Set the data client for fetching doctype metadata and records.\n * Use this for deferred configuration in Nuxt/Vue plugin setups.\n *\n * @param client - DataClient implementation (e.g., StonecropClient from \\@stonecrop/graphql-client)\n *\n * @example\n * ```ts\n * const { setClient } = useStonecropRegistry()\n * const client = new StonecropClient({ endpoint: '/graphql' })\n * setClient(client)\n * ```\n */\n setClient(t) {\n this._client = t;\n }\n /**\n * Get the current data client\n * @returns The DataClient instance or undefined if not set\n */\n getClient() {\n return this._client;\n }\n /**\n * Get the operation log store (lazy initialization)\n * @internal\n */\n getOperationLogStore() {\n return this._operationLogStore || (this._operationLogStore = Ie(), this._operationLogConfig && this._operationLogStore.configure(this._operationLogConfig)), this._operationLogStore;\n }\n /**\n * Initialize the HST store structure\n */\n initializeHSTStore() {\n const t = {};\n Object.keys(this.registry.registry).forEach((r) => {\n t[r] = {};\n }), this.hstStore = io(lr(t), \"StonecropStore\");\n }\n /**\n * Setup automatic sync with Registry when doctypes are added\n */\n setupRegistrySync() {\n const t = this.registry.addDoctype.bind(this.registry);\n this.registry.addDoctype = (r) => {\n t(r), this.hstStore.has(r.slug) || this.hstStore.set(r.slug, {});\n };\n }\n /**\n * Get records hash for a doctype\n * @param doctype - The doctype to get records for\n * @returns HST node containing records hash\n */\n records(t) {\n const r = typeof t == \"string\" ? t : t.slug;\n return this.ensureDoctypeExists(r), this.hstStore.getNode(r);\n }\n /**\n * Add a record to the store\n * @param doctype - The doctype\n * @param recordId - The record ID\n * @param recordData - The record data\n */\n addRecord(t, r, n) {\n const i = typeof t == \"string\" ? t : t.slug;\n this.ensureDoctypeExists(i), this.hstStore.set(`${i}.${r}`, n);\n }\n /**\n * Get a specific record\n * @param doctype - The doctype\n * @param recordId - The record ID\n * @returns HST node for the record or undefined\n */\n getRecordById(t, r) {\n const n = typeof t == \"string\" ? t : t.slug;\n if (this.ensureDoctypeExists(n), !(!this.hstStore.has(`${n}.${r}`) || this.hstStore.get(`${n}.${r}`) === void 0))\n return this.hstStore.getNode(`${n}.${r}`);\n }\n /**\n * Remove a record from the store\n * @param doctype - The doctype\n * @param recordId - The record ID\n */\n removeRecord(t, r) {\n const n = typeof t == \"string\" ? t : t.slug;\n this.ensureDoctypeExists(n), this.hstStore.has(`${n}.${r}`) && this.hstStore.set(`${n}.${r}`, void 0);\n }\n /**\n * Get all record IDs for a doctype\n * @param doctype - The doctype\n * @returns Array of record IDs\n */\n getRecordIds(t) {\n const r = typeof t == \"string\" ? t : t.slug;\n this.ensureDoctypeExists(r);\n const n = this.hstStore.get(r);\n return !n || typeof n != \"object\" ? [] : Object.keys(n).filter((i) => n[i] !== void 0);\n }\n /**\n * Clear all records for a doctype\n * @param doctype - The doctype\n */\n clearRecords(t) {\n const r = typeof t == \"string\" ? t : t.slug;\n this.ensureDoctypeExists(r), this.getRecordIds(r).forEach((i) => {\n this.hstStore.set(`${r}.${i}`, void 0);\n });\n }\n /**\n * Setup method for doctype initialization\n * @param doctype - The doctype to setup\n */\n setup(t) {\n this.ensureDoctypeExists(t.slug);\n }\n /**\n * Run action on doctype\n * Executes the action and logs it to the operation log for audit tracking\n * @param doctype - The doctype\n * @param action - The action to run\n * @param args - Action arguments (typically record IDs)\n */\n runAction(t, r, n) {\n const o = this.registry.registry[t.slug]?.actions?.get(r), s = Array.isArray(n) ? n.filter((l) => typeof l == \"string\") : void 0, a = s?.[0], u = a ? this.isWorkflowReady(t, a) : { ready: !0 };\n if (!u.ready)\n throw this.getOperationLogStore().logAction(\n t.doctype,\n r,\n s,\n \"failure\",\n `BLOCKED: missing data for links: ${u.blockedLinks?.join(\", \")}`\n ), new Error(`Workflow blocked: missing data for links: ${u.blockedLinks?.join(\", \")}`);\n const c = this.getOperationLogStore();\n let f = \"success\", h;\n try {\n if (o && o.length > 0) {\n const l = Et();\n o.forEach((d) => {\n try {\n const p = l.getAction(d);\n if (!p) throw new Error(`Action \"${d}\" is not registered in FieldTriggerEngine`);\n const _ = {\n path: `${t.slug}.${s?.[0] ?? \"\"}`,\n fieldname: r,\n beforeValue: void 0,\n afterValue: n,\n operation: \"set\",\n doctype: t.doctype,\n recordId: a,\n timestamp: /* @__PURE__ */ new Date()\n };\n p(_);\n } catch (p) {\n throw f = \"failure\", h = p instanceof Error ? p.message : \"Unknown error\", p;\n }\n });\n }\n } catch {\n } finally {\n c.logAction(t.doctype, r, s, f, h);\n }\n }\n /**\n * Get the effective blockWorkflows value for a link.\n * Returns true if blockWorkflows is explicitly true, or if it's absent and fetch method is 'sync'.\n * @param link - The link declaration\n * @returns Whether workflows should be blocked until this link is loaded\n */\n getEffectiveBlockWorkflows(t) {\n return t.blockWorkflows !== void 0 ? t.blockWorkflows : t.fetch?.method === \"sync\";\n }\n /**\n * Check if workflow actions are ready to run (all required link data is loaded).\n * A link's data is considered loaded if it exists in HST at `slug.recordId.linkname`.\n * @param doctype - The doctype to check\n * @param recordId - The record ID\n * @returns Object with `ready: true` if all blocked links are loaded, or `ready: false` with `blockedLinks` array\n */\n isWorkflowReady(t, r) {\n if (r === \"new\")\n return { ready: !0 };\n const n = this.registry.getDescendantLinks(t.slug), i = [];\n for (const o of n)\n if (this.getEffectiveBlockWorkflows(o)) {\n const s = `${t.slug}.${r}.${o.fieldname}`;\n this.hstStore.has(s) || i.push(o.fieldname);\n }\n return i.length > 0 ? { ready: !1, blockedLinks: i } : { ready: !0 };\n }\n /**\n * Get records from server using the configured data client.\n * @param doctype - The doctype\n * @throws Error if no data client has been configured\n */\n async getRecords(t) {\n if (!this._client)\n throw new Error(\n \"No data client configured. Call setClient() with a DataClient implementation (e.g., StonecropClient from @stonecrop/graphql-client) before fetching records.\"\n );\n (await this._client.getRecords(t)).forEach((n) => {\n typeof n.id == \"string\" && n.id ? this.addRecord(t, n.id, n) : typeof n.id == \"number\" && this.addRecord(t, String(n.id), n);\n });\n }\n /**\n * Get single record from server using the configured data client.\n * @param doctype - The doctype slug string or Doctype object\n * @param recordId - The record ID\n * @throws Error if no data client has been configured\n * @throws Error if a slug string is given and no matching doctype is found in the registry\n */\n async getRecord(t, r) {\n if (!this._client)\n throw new Error(\n \"No data client configured. Call setClient() with a DataClient implementation (e.g., StonecropClient from @stonecrop/graphql-client) before fetching records.\"\n );\n const n = typeof t == \"string\" ? this.registry.getDoctype(t) : t;\n if (!n)\n throw new Error(`Doctype not found: ${typeof t == \"string\" ? t : t.slug}`);\n const i = await this._client.getRecord(n, r);\n i?.record && this.addRecord(n, r, i.record);\n }\n /**\n * Dispatch an action to the server via the configured data client.\n * All state changes flow through this single mutation endpoint.\n *\n * @param doctype - The doctype\n * @param action - Action name to execute (e.g., 'SUBMIT', 'APPROVE', 'save')\n * @param args - Action arguments (typically record ID and/or form data)\n * @returns Action result with success status, response data, and any error\n * @throws Error if no data client has been configured\n */\n async dispatchAction(t, r, n) {\n if (!this._client)\n throw new Error(\n \"No data client configured. Call setClient() with a DataClient implementation (e.g., StonecropClient from @stonecrop/graphql-client) before dispatching actions.\"\n );\n return this._client.runAction(t, r, n);\n }\n /**\n * Ensure doctype section exists in HST store\n * @param slug - The doctype slug\n */\n ensureDoctypeExists(t) {\n this.hstStore.has(t) || this.hstStore.set(t, {});\n }\n /**\n * Get doctype metadata from the registry\n * @param context - The route context\n * @returns The doctype metadata\n */\n async getMeta(t) {\n if (!this.registry.getMeta)\n throw new Error(\"No getMeta function provided to Registry\");\n return await this.registry.getMeta(t);\n }\n /**\n * Get the root HST store node for advanced usage\n * @returns Root HST node\n */\n getStore() {\n return this.hstStore;\n }\n /**\n * Determine the current workflow state for a record.\n *\n * Reads the record's `status` field from the HST store. If the field is absent or\n * empty the doctype's declared `workflow.initial` state is used as the fallback,\n * giving callers a reliable state name without having to duplicate that logic.\n *\n * @param doctype - The doctype slug or Doctype instance\n * @param recordId - The record identifier\n * @returns The current state name, or an empty string if the doctype has no workflow\n *\n * @public\n */\n getRecordState(t, r) {\n const n = typeof t == \"string\" ? t : t.slug, i = this.registry.getDoctype(n);\n if (!i?.workflow) return \"\";\n const s = this.getRecordById(n, r)?.get(\"status\"), a = i.workflow;\n let u;\n return Array.isArray(a.states) ? u = a.states[0] ?? \"\" : u = typeof a.initial == \"string\" ? a.initial : Object.keys(a.states ?? {})[0] ?? \"\", s || u;\n }\n /**\n * Collect a record payload with all nested doctype fields from HST\n * @param doctype - The doctype metadata\n * @param recordId - The record ID to collect\n * @returns The complete record payload ready for API submission\n * @public\n */\n collectRecordPayload(t, r) {\n const n = `${t.slug}.${r}`, o = { ...this.hstStore.get(n) || {} };\n if (t.links)\n for (const [s, a] of Object.entries(t.links)) {\n const u = `${n}.${s}`;\n if (a.cardinality === \"noneOrMany\" || a.cardinality === \"atLeastOne\") {\n const f = this.hstStore.get(u);\n Array.isArray(f) && (o[s] = f);\n } else {\n const f = this.registry.getDoctype(a.target);\n f?.links ? o[s] = this.collectNestedData(u, f) : o[s] = this.hstStore.get(u) || {};\n }\n }\n return o;\n }\n /**\n * Scaffold empty descendant records from defaults for all descendant links.\n *\n * Initializes all scalar and link fields at their HST paths with default values.\n * For new records, call this after setting up the doctype to ensure all paths exist.\n *\n * @param path - HST path (e.g., \"customer.new\")\n * @param doctype - The doctype to initialize\n * @public\n */\n initializeNestedData(t, r) {\n const n = r.slug;\n this.ensureDoctypeExists(n);\n const i = this.registry.resolveSchema(r), o = this.registry.initializeRecord(i);\n this.hstStore.get(t) || this.hstStore.set(t, {}, \"system\");\n for (const [a, u] of Object.entries(o))\n this.hstStore.set(`${t}.${a}`, u, \"system\");\n }\n /**\n * Fetch a record and its nested data from the server.\n *\n * Calls `_client.getRecord()` with nested sub-selections and stores each scalar field at its own HST path\n * (`slug.recordId.fieldname`), descendants at the link-level path (`slug.recordId.linkname`).\n *\n * @param path - HST path (e.g., \"recipe.r1\")\n * @param doctype - The doctype to fetch\n * @param recordId - Record ID to fetch\n * @param options - Query options (includeNested to control which links are fetched)\n * @throws Error with code `\"CLIENT_REQUIRED\"` if no data client is configured\n * @throws Error with code `\"RECORD_NOT_FOUND\"` if the server returns null\n * @public\n */\n async fetchNestedData(t, r, n, i) {\n if (!this._client)\n throw nn(\n \"No data client configured. Call setClient() with a DataClient implementation (e.g., StonecropClient from @stonecrop/graphql-client) before fetching records.\",\n \"CLIENT_REQUIRED\"\n );\n const o = await this._client.getRecord({ name: r.doctype }, n, {\n includeNested: i?.includeNested ?? !0\n });\n if (!o?.record)\n throw nn(`Record not found: ${r.doctype} ${n}`, \"RECORD_NOT_FOUND\");\n const s = r.slug;\n this.ensureDoctypeExists(s), this.hstStore.get(`${s}.${n}`) || this.hstStore.set(`${s}.${n}`, {}, \"system\");\n for (const [u, c] of Object.entries(o.record))\n this.hstStore.set(`${s}.${n}.${u}`, c, \"system\");\n }\n /**\n * Recursively collect nested data from HST\n * @param basePath - The base path in HST (e.g., \"customer.123.address\")\n * @param doctype - The doctype whose links drive the recursive traversal\n * @returns The collected data object\n */\n collectNestedData(t, r) {\n const i = { ...this.hstStore.get(t) || {} };\n if (!r.links) return i;\n for (const [o, s] of Object.entries(r.links)) {\n const a = `${t}.${o}`;\n if (s.cardinality === \"noneOrMany\" || s.cardinality === \"atLeastOne\") {\n const c = this.hstStore.get(a);\n Array.isArray(c) && (i[o] = c);\n } else {\n const c = this.registry.getDoctype(s.target);\n c?.links ? i[o] = this.collectNestedData(a, c) : i[o] = this.hstStore.get(a) || {};\n }\n }\n return i;\n }\n}\nfunction ls() {\n return Mt._root;\n}\nfunction nn(e, t) {\n const r = new Error(e);\n return r.code = t, r;\n}\nfunction ps(e, t, r) {\n const n = xe(\"$stonecrop\") || Mt._root;\n if (!n)\n throw new Error(\"Stonecrop instance not available. Ensure useStonecrop() has been called first.\");\n const i = j(!1), o = j(!1), s = j(null), a = n.getStore(), u = () => `${e.slug || e.doctype}.${t}.${r}`, c = () => e.links?.[r]?.fetch, f = async (p) => {\n try {\n return await new Function(\n \"stonecrop\",\n \"path\",\n \"hst\",\n `\n\t\t\t\treturn (${p})(stonecrop, path, hst)\n\t\t\t`\n )(n, u(), a);\n } catch (_) {\n throw new Error(`Custom handler failed: ${_ instanceof Error ? _.message : String(_)}`, { cause: _ });\n }\n }, h = async () => {\n const p = c(), _ = `${e.slug || e.doctype}.${t}`;\n if (p?.method === \"custom\") {\n a.has(_) || a.set(_, {}, \"system\");\n const m = await f(p.handler);\n a.set(u(), m, \"system\");\n } else\n await n.fetchNestedData(_, e, t, { includeNested: [r] });\n }, l = async () => {\n if (!i.value) {\n i.value = !0, s.value = null;\n try {\n await h(), o.value = !0;\n } catch (p) {\n throw s.value = p instanceof Error ? p : new Error(String(p)), p;\n } finally {\n i.value = !1;\n }\n }\n }, d = J(() => {\n if (o.value)\n return a.get(u());\n });\n return {\n // State\n loading: i,\n loaded: o,\n error: s,\n // Computed\n data: d,\n // Actions\n reload: l\n };\n}\nfunction ds(e) {\n e || (e = {});\n const t = e.registry || xe(\"$registry\"), r = xe(\"$stonecrop\"), n = j(), i = j(), o = j({}), s = j(), a = j(), u = j([]), c = j(!1), f = j(null), h = j(), l = J(() => !n.value || !h.value || !e.recordId || e.recordId === \"new\" ? !0 : n.value.isWorkflowReady(h.value, e.recordId).ready), d = J(() => !n.value || !h.value || !e.recordId || e.recordId === \"new\" ? [] : n.value.isWorkflowReady(h.value, e.recordId).blockedLinks ?? []), p = r || Mt._root;\n p && (n.value = p), e?.doctype && typeof e.doctype != \"string\" && (h.value = e.doctype);\n const _ = j([]), m = j(-1), R = J(() => n.value?.getOperationLogStore().canUndo ?? !1), O = J(() => n.value?.getOperationLogStore().canRedo ?? !1), w = J(() => n.value?.getOperationLogStore().undoCount ?? 0), K = J(() => n.value?.getOperationLogStore().redoCount ?? 0), A = J(\n () => n.value?.getOperationLogStore().undoRedoState ?? {\n canUndo: !1,\n canRedo: !1,\n undoCount: 0,\n redoCount: 0,\n currentIndex: -1\n }\n ), $ = (S) => n.value?.getOperationLogStore().undo(S) ?? !1, z = (S) => n.value?.getOperationLogStore().redo(S) ?? !1, Y = () => {\n n.value?.getOperationLogStore().startBatch();\n }, _t = (S) => n.value?.getOperationLogStore().commitBatch(S) ?? null, ce = () => {\n n.value?.getOperationLogStore().cancelBatch();\n }, fe = () => {\n n.value?.getOperationLogStore().clear();\n }, bt = (S, I) => n.value?.getOperationLogStore().getOperationsFor(S, I) ?? [], Wt = () => n.value?.getOperationLogStore().getSnapshot() ?? {\n operations: [],\n currentIndex: -1,\n totalOperations: 0,\n reversibleOperations: 0,\n irreversibleOperations: 0\n }, E = (S, I) => {\n n.value?.getOperationLogStore().markIrreversible(S, I);\n }, B = (S, I, b, D = \"success\", C) => n.value?.getOperationLogStore().logAction(S, I, b, D, C) ?? \"\", X = (S) => {\n n.value?.getOperationLogStore().configure(S);\n };\n if (t && n.value)\n try {\n const S = n.value.getOperationLogStore(), I = Ln(S);\n _.value = I.operations.value, m.value = I.currentIndex.value, zt(\n () => I.operations.value,\n (b) => {\n _.value = b;\n }\n ), zt(\n () => I.currentIndex.value,\n (b) => {\n m.value = b;\n }\n );\n } catch {\n }\n e.doctype && typeof e.doctype != \"string\" && t && n.value && (i.value = n.value.getStore(), u.value = t.resolveSchema(e.doctype), (!e.recordId || e.recordId === \"new\") && (o.value = t.initializeRecord(u.value)), i.value && or(e.doctype, e.recordId || \"new\", o, i.value)), Mn(async () => {\n if (!(!t || !n.value)) {\n if (!e.doctype && t.router) {\n const S = t.router.currentRoute.value;\n if (!S.path) return;\n const I = S.path.split(\"/\").filter((D) => D.length > 0), b = I[1]?.toLowerCase();\n if (I.length > 0) {\n const D = {\n path: S.path,\n segments: I\n }, C = await t.getMeta?.(D);\n if (C) {\n if (t.addDoctype(C), n.value.setup(C), s.value = C, a.value = b, i.value = n.value.getStore(), t && (u.value = t.resolveSchema(C)), b && b !== \"new\") {\n const Nt = n.value.getRecordById(C, b);\n if (Nt)\n o.value = Nt.get(\"\") || {};\n else\n try {\n await n.value.getRecord(C, b);\n const Kt = n.value.getRecordById(C, b);\n Kt && (o.value = Kt.get(\"\") || {});\n } catch {\n o.value = t.initializeRecord(u.value);\n }\n } else\n o.value = t.initializeRecord(u.value);\n i.value && or(C, b || \"new\", o, i.value), n.value.runAction(C, \"load\", b ? [b] : void 0);\n }\n }\n }\n if (e.doctype) {\n const S = e.recordId;\n if (typeof e.doctype == \"string\") {\n const I = e.doctype;\n i.value = n.value.getStore(), c.value = !0, f.value = null;\n let b;\n try {\n if (b = t.getDoctype(I), !b && t.getMeta) {\n const D = {\n path: `/${I}`,\n segments: [I]\n };\n b = await t.getMeta(D), b && t.addDoctype(b);\n }\n b || (f.value = new Error(`Doctype '${I}' not found in registry and getMeta returned no result`));\n } catch (D) {\n f.value = D instanceof Error ? D : new Error(String(D));\n } finally {\n c.value = !1;\n }\n if (h.value = b, !b) return;\n if (u.value = t.resolveSchema(b), S && S !== \"new\") {\n const D = n.value.getRecordById(b, S);\n if (D)\n o.value = D.get(\"\") || {};\n else\n try {\n await n.value.getRecord(b, S);\n const C = n.value.getRecordById(b, S);\n C && (o.value = C.get(\"\") || {});\n } catch {\n o.value = t.initializeRecord(u.value);\n }\n } else\n o.value = t.initializeRecord(u.value);\n i.value && or(b, S || \"new\", o, i.value);\n } else if (S && S !== \"new\") {\n const I = e.doctype, b = n.value.getRecordById(I, S);\n if (b)\n o.value = b.get(\"\") || {};\n else\n try {\n await n.value.getRecord(I, S);\n const D = n.value.getRecordById(I, S);\n D && (o.value = D.get(\"\") || {});\n } catch {\n o.value = t.initializeRecord(u.value);\n }\n }\n }\n }\n });\n const v = (S, I) => {\n const b = h.value || s.value;\n if (!b) return \"\";\n const D = I || e.recordId || a.value || \"new\";\n return `${b.slug}.${D}.${S}`;\n }, y = (S) => {\n const I = h.value || s.value;\n if (!(!i.value || !n.value || !I))\n try {\n const b = S.path.split(\".\");\n if (b.length >= 2) {\n const Nt = b[0], Kt = b[1];\n if (i.value.has(`${Nt}.${Kt}`) || n.value.addRecord(I, Kt, { ...o.value }), b.length > 3) {\n const Mi = `${Nt}.${Kt}`, er = b.slice(2);\n let rr = Mi;\n for (let Le = 0; Le < er.length - 1; Le++)\n if (rr += `.${er[Le]}`, !i.value.has(rr)) {\n const $i = er[Le + 1], zi = !isNaN(Number($i));\n i.value.set(rr, zi ? [] : {});\n }\n }\n }\n i.value.set(S.path, S.value);\n const D = S.fieldname.split(\".\"), C = { ...o.value };\n D.length === 1 ? C[D[0]] = S.value : oo(C, D, S.value), o.value = C;\n } catch {\n }\n };\n (e.doctype || t?.router) && (Xr(\"hstPathProvider\", v), Xr(\"hstChangeHandler\", y));\n const g = (S, I) => {\n if (!n.value)\n throw new Error(\"Stonecrop instance not available\");\n return n.value.initializeNestedData(S, I);\n }, U = async (S, I, b, D) => {\n if (!n.value)\n throw new Error(\"Stonecrop instance not available\");\n return n.value.fetchNestedData(S, I, b, D);\n }, ft = (S, I) => {\n if (!n.value)\n throw new Error(\"Stonecrop instance not available\");\n return n.value.collectRecordPayload(S, I);\n }, gt = (S, I) => ({\n provideHSTPath: (C) => `${S}.${C}`,\n handleHSTChange: (C) => {\n const Nt = C.path.startsWith(S) ? C.path : `${S}.${C.fieldname}`;\n y({\n ...C,\n path: Nt\n });\n }\n }), Ot = {\n operations: _,\n currentIndex: m,\n undoRedoState: A,\n canUndo: R,\n canRedo: O,\n undoCount: w,\n redoCount: K,\n undo: $,\n redo: z,\n startBatch: Y,\n commitBatch: _t,\n cancelBatch: ce,\n clear: fe,\n getOperationsFor: bt,\n getSnapshot: Wt,\n markIrreversible: E,\n logAction: B,\n configure: X\n };\n return e.doctype ? {\n stonecrop: n,\n operationLog: Ot,\n provideHSTPath: v,\n handleHSTChange: y,\n hstStore: i,\n formData: o,\n resolvedSchema: u,\n initializeNestedData: g,\n fetchNestedData: U,\n collectRecordPayload: ft,\n createNestedContext: gt,\n isLoading: c,\n error: f,\n resolvedDoctype: h,\n isWorkflowReady: l,\n blockedLinks: d\n } : !e.doctype && t?.router ? {\n stonecrop: n,\n operationLog: Ot,\n provideHSTPath: v,\n handleHSTChange: y,\n hstStore: i,\n formData: o,\n resolvedSchema: u,\n initializeNestedData: g,\n fetchNestedData: U,\n collectRecordPayload: ft,\n createNestedContext: gt,\n isLoading: c,\n error: f,\n resolvedDoctype: h,\n isWorkflowReady: l,\n blockedLinks: d\n } : {\n stonecrop: n,\n operationLog: Ot\n };\n}\nfunction or(e, t, r, n) {\n zt(\n r,\n (i) => {\n const o = `${e.slug}.${t}`;\n Object.keys(i).forEach((s) => {\n const a = `${o}.${s}`;\n try {\n n.set(a, i[s]);\n } catch {\n }\n });\n },\n { deep: !0 }\n );\n}\nfunction oo(e, t, r) {\n let n = e;\n for (let o = 0; o < t.length - 1; o++) {\n const s = t[o];\n (!(s in n) || typeof n[s] != \"object\") && (n[s] = isNaN(Number(t[o + 1])) ? {} : []), n = n[s];\n }\n const i = t[t.length - 1];\n n[i] = r;\n}\nfunction qn(e) {\n const r = (zn() ? xe(\"$operationLogStore\", void 0) : void 0) || Ie();\n e && r.configure(e);\n const { operations: n, currentIndex: i, undoRedoState: o, canUndo: s, canRedo: a, undoCount: u, redoCount: c } = Ln(r);\n function f(A) {\n return r.undo(A);\n }\n function h(A) {\n return r.redo(A);\n }\n function l() {\n r.startBatch();\n }\n function d(A) {\n return r.commitBatch(A);\n }\n function p() {\n r.cancelBatch();\n }\n function _() {\n r.clear();\n }\n function m(A, $) {\n return r.getOperationsFor(A, $);\n }\n function R() {\n return r.getSnapshot();\n }\n function O(A, $) {\n r.markIrreversible(A, $);\n }\n function w(A, $, z, Y = \"success\", _t) {\n return r.logAction(A, $, z, Y, _t);\n }\n function K(A) {\n r.configure(A);\n }\n return {\n // State\n operations: n,\n currentIndex: i,\n undoRedoState: o,\n canUndo: s,\n canRedo: a,\n undoCount: u,\n redoCount: c,\n // Methods\n undo: f,\n redo: h,\n startBatch: l,\n commitBatch: d,\n cancelBatch: p,\n clear: _,\n getOperationsFor: m,\n getSnapshot: R,\n markIrreversible: O,\n logAction: w,\n configure: K\n };\n}\nfunction _s(e, t = !0) {\n if (!t) return;\n const { undo: r, redo: n, canUndo: i, canRedo: o } = qn(), s = ro();\n he(s[\"Ctrl+Z\"], () => {\n i.value && r(e);\n }), he(s[\"Meta+Z\"], () => {\n i.value && r(e);\n }), he(s[\"Ctrl+Shift+Z\"], () => {\n o.value && n(e);\n }), he(s[\"Meta+Shift+Z\"], () => {\n o.value && n(e);\n }), he(s[\"Ctrl+Y\"], () => {\n o.value && n(e);\n });\n}\nasync function gs(e, t) {\n const { startBatch: r, commitBatch: n, cancelBatch: i } = qn();\n r();\n try {\n return await e(), n(t);\n } catch (o) {\n throw i(), o;\n }\n}\nvar We = \"@@__IMMUTABLE_INDEXED__@@\";\nfunction lt(e) {\n return !!(e && // @ts-expect-error: maybeIndexed is typed as `{}`, need to change in 6.0 to `maybeIndexed && typeof maybeIndexed === 'object' && IS_INDEXED_SYMBOL in maybeIndexed`\n e[We]);\n}\nvar Ke = \"@@__IMMUTABLE_KEYED__@@\";\nfunction P(e) {\n return !!(e && // @ts-expect-error: maybeKeyed is typed as `{}`, need to change in 6.0 to `maybeKeyed && typeof maybeKeyed === 'object' && IS_KEYED_SYMBOL in maybeKeyed`\n e[Ke]);\n}\nfunction Or(e) {\n return P(e) || lt(e);\n}\nvar Nn = \"@@__IMMUTABLE_ITERABLE__@@\";\nfunction at(e) {\n return !!(e && // @ts-expect-error: maybeCollection is typed as `{}`, need to change in 6.0 to `maybeCollection && typeof maybeCollection === 'object' && IS_COLLECTION_SYMBOL in maybeCollection`\n e[Nn]);\n}\nvar G = function(t) {\n return at(t) ? t : rt(t);\n}, pt = /* @__PURE__ */ (function(e) {\n function t(r) {\n return P(r) ? r : qt(r);\n }\n return e && (t.__proto__ = e), t.prototype = Object.create(e && e.prototype), t.prototype.constructor = t, t;\n})(G), jt = /* @__PURE__ */ (function(e) {\n function t(r) {\n return lt(r) ? r : dt(r);\n }\n return e && (t.__proto__ = e), t.prototype = Object.create(e && e.prototype), t.prototype.constructor = t, t;\n})(G), ne = /* @__PURE__ */ (function(e) {\n function t(r) {\n return at(r) && !Or(r) ? r : se(r);\n }\n return e && (t.__proto__ = e), t.prototype = Object.create(e && e.prototype), t.prototype.constructor = t, t;\n})(G);\nG.Keyed = pt;\nG.Indexed = jt;\nG.Set = ne;\nvar ie = 0, ut = 1, ct = 2, pr = typeof Symbol == \"function\" && Symbol.iterator, Pn = \"@@iterator\", Ye = pr || Pn, M = function(t) {\n this.next = t;\n};\nM.prototype.toString = function() {\n return \"[Iterator]\";\n};\nM.KEYS = ie;\nM.VALUES = ut;\nM.ENTRIES = ct;\nM.prototype.inspect = M.prototype.toSource = function() {\n return this.toString();\n};\nM.prototype[Ye] = function() {\n return this;\n};\nfunction F(e, t, r, n) {\n var i = e === ie ? t : e === ut ? r : [t, r];\n return n ? n.value = i : n = {\n // @ts-expect-error ensure value is not undefined\n value: i,\n done: !1\n }, n;\n}\nfunction tt() {\n return { value: void 0, done: !0 };\n}\nfunction Fn(e) {\n return Array.isArray(e) ? !0 : !!Je(e);\n}\nfunction on(e) {\n return !!(e && // @ts-expect-error: maybeIterator is typed as `{}`\n typeof e.next == \"function\");\n}\nfunction dr(e) {\n var t = Je(e);\n return t && t.call(e);\n}\nfunction Je(e) {\n var t = e && // @ts-expect-error: maybeIterator is typed as `{}`\n (pr && e[pr] || // @ts-expect-error: maybeIterator is typed as `{}`\n e[Pn]);\n if (typeof t == \"function\")\n return t;\n}\nfunction so(e) {\n var t = Je(e);\n return t && t === e.entries;\n}\nfunction ao(e) {\n var t = Je(e);\n return t && t === e.keys;\n}\nvar ke = \"delete\", L = 5, ot = 1 << L, Q = ot - 1, k = {};\nfunction _r() {\n return { value: !1 };\n}\nfunction ht(e) {\n e && (e.value = !0);\n}\nfunction Er() {\n}\nfunction Yt(e) {\n return e.size === void 0 && (e.size = e.__iterate(jn)), e.size;\n}\nfunction Tt(e, t) {\n if (typeof t != \"number\") {\n var r = t >>> 0;\n if (\"\" + r !== t || r === 4294967295)\n return NaN;\n t = r;\n }\n return t < 0 ? Yt(e) + t : t;\n}\nfunction jn() {\n return !0;\n}\nfunction Ge(e, t, r) {\n return (e === 0 && !xn(e) || r !== void 0 && e <= -r) && (t === void 0 || r !== void 0 && t >= r);\n}\nfunction Ae(e, t) {\n return Bn(e, t, 0);\n}\nfunction Ze(e, t) {\n return Bn(e, t, t);\n}\nfunction Bn(e, t, r) {\n return e === void 0 ? r : xn(e) ? t === 1 / 0 ? t : Math.max(0, t + e) | 0 : t === void 0 || t === e ? e : Math.min(t, e) | 0;\n}\nfunction xn(e) {\n return e < 0 || e === 0 && 1 / e === -1 / 0;\n}\nvar Un = \"@@__IMMUTABLE_RECORD__@@\";\nfunction Bt(e) {\n return !!(e && // @ts-expect-error: maybeRecord is typed as `{}`, need to change in 6.0 to `maybeRecord && typeof maybeRecord === 'object' && IS_RECORD_SYMBOL in maybeRecord`\n e[Un]);\n}\nfunction St(e) {\n return at(e) || Bt(e);\n}\nvar Lt = \"@@__IMMUTABLE_ORDERED__@@\";\nfunction mt(e) {\n return !!(e && // @ts-expect-error: maybeOrdered is typed as `{}`, need to change in 6.0 to `maybeOrdered && typeof maybeOrdered === 'object' && IS_ORDERED_SYMBOL in maybeOrdered`\n e[Lt]);\n}\nvar Wn = \"@@__IMMUTABLE_SEQ__@@\";\nfunction Rr(e) {\n return !!(e && // @ts-expect-error: maybeSeq is typed as `{}`, need to change in 6.0 to `maybeSeq && typeof maybeSeq === 'object' && MAYBE_SEQ_SYMBOL in maybeSeq`\n e[Wn]);\n}\nvar oe = Object.prototype.hasOwnProperty;\nfunction Kn(e) {\n return Array.isArray(e) || typeof e == \"string\" ? !0 : e && typeof e == \"object\" && // @ts-expect-error check that `'length' in value &&`\n Number.isInteger(e.length) && // @ts-expect-error check that `'length' in value &&`\n e.length >= 0 && // @ts-expect-error check that `'length' in value &&`\n (e.length === 0 ? (\n // Only {length: 0} is considered Array-like.\n Object.keys(e).length === 1\n ) : (\n // An object is only Array-like if it has a property where the last value\n // in the array-like may be found (which could be undefined).\n // @ts-expect-error check that `'length' in value &&`\n e.hasOwnProperty(e.length - 1)\n ));\n}\nvar rt = /* @__PURE__ */ (function(e) {\n function t(r) {\n return r == null ? kr() : St(r) ? r.toSeq() : co(r);\n }\n return e && (t.__proto__ = e), t.prototype = Object.create(e && e.prototype), t.prototype.constructor = t, t.prototype.toSeq = function() {\n return this;\n }, t.prototype.toString = function() {\n return this.__toString(\"Seq {\", \"}\");\n }, t.prototype.cacheResult = function() {\n return !this._cache && this.__iterateUncached && (this._cache = this.entrySeq().toArray(), this.size = this._cache.length), this;\n }, t.prototype.__iterate = function(n, i) {\n var o = this._cache;\n if (o) {\n for (var s = o.length, a = 0; a !== s; ) {\n var u = o[i ? s - ++a : a++];\n if (n(u[1], u[0], this) === !1)\n break;\n }\n return a;\n }\n return this.__iterateUncached(n, i);\n }, t.prototype.__iterator = function(n, i) {\n var o = this._cache;\n if (o) {\n var s = o.length, a = 0;\n return new M(function() {\n if (a === s)\n return tt();\n var u = o[i ? s - ++a : a++];\n return F(n, u[0], u[1]);\n });\n }\n return this.__iteratorUncached(n, i);\n }, t;\n})(G), qt = /* @__PURE__ */ (function(e) {\n function t(r) {\n return r == null ? kr().toKeyedSeq() : at(r) ? P(r) ? r.toSeq() : r.fromEntrySeq() : Bt(r) ? r.toSeq() : Ar(r);\n }\n return e && (t.__proto__ = e), t.prototype = Object.create(e && e.prototype), t.prototype.constructor = t, t.prototype.toKeyedSeq = function() {\n return this;\n }, t;\n})(rt), dt = /* @__PURE__ */ (function(e) {\n function t(r) {\n return r == null ? kr() : at(r) ? P(r) ? r.entrySeq() : r.toIndexedSeq() : Bt(r) ? r.toSeq().entrySeq() : Hn(r);\n }\n return e && (t.__proto__ = e), t.prototype = Object.create(e && e.prototype), t.prototype.constructor = t, t.of = function() {\n return t(arguments);\n }, t.prototype.toIndexedSeq = function() {\n return this;\n }, t.prototype.toString = function() {\n return this.__toString(\"Seq [\", \"]\");\n }, t;\n})(rt), se = /* @__PURE__ */ (function(e) {\n function t(r) {\n return (at(r) && !Or(r) ? r : dt(r)).toSetSeq();\n }\n return e && (t.__proto__ = e), t.prototype = Object.create(e && e.prototype), t.prototype.constructor = t, t.of = function() {\n return t(arguments);\n }, t.prototype.toSetSeq = function() {\n return this;\n }, t;\n})(rt);\nrt.isSeq = Rr;\nrt.Keyed = qt;\nrt.Set = se;\nrt.Indexed = dt;\nrt.prototype[Wn] = !0;\nvar Jt = /* @__PURE__ */ (function(e) {\n function t(r) {\n this._array = r, this.size = r.length;\n }\n return e && (t.__proto__ = e), t.prototype = Object.create(e && e.prototype), t.prototype.constructor = t, t.prototype.get = function(n, i) {\n return this.has(n) ? this._array[Tt(this, n)] : i;\n }, t.prototype.__iterate = function(n, i) {\n for (var o = this._array, s = o.length, a = 0; a !== s; ) {\n var u = i ? s - ++a : a++;\n if (n(o[u], u, this) === !1)\n break;\n }\n return a;\n }, t.prototype.__iterator = function(n, i) {\n var o = this._array, s = o.length, a = 0;\n return new M(function() {\n if (a === s)\n return tt();\n var u = i ? s - ++a : a++;\n return F(n, u, o[u]);\n });\n }, t;\n})(dt), Ir = /* @__PURE__ */ (function(e) {\n function t(r) {\n var n = Object.keys(r).concat(\n Object.getOwnPropertySymbols ? Object.getOwnPropertySymbols(r) : []\n );\n this._object = r, this._keys = n, this.size = n.length;\n }\n return e && (t.__proto__ = e), t.prototype = Object.create(e && e.prototype), t.prototype.constructor = t, t.prototype.get = function(n, i) {\n return i !== void 0 && !this.has(n) ? i : this._object[n];\n }, t.prototype.has = function(n) {\n return oe.call(this._object, n);\n }, t.prototype.__iterate = function(n, i) {\n for (var o = this._object, s = this._keys, a = s.length, u = 0; u !== a; ) {\n var c = s[i ? a - ++u : u++];\n if (n(o[c], c, this) === !1)\n break;\n }\n return u;\n }, t.prototype.__iterator = function(n, i) {\n var o = this._object, s = this._keys, a = s.length, u = 0;\n return new M(function() {\n if (u === a)\n return tt();\n var c = s[i ? a - ++u : u++];\n return F(n, c, o[c]);\n });\n }, t;\n})(qt);\nIr.prototype[Lt] = !0;\nvar uo = /* @__PURE__ */ (function(e) {\n function t(r) {\n this._collection = r, this.size = r.length || r.size;\n }\n return e && (t.__proto__ = e), t.prototype = Object.create(e && e.prototype), t.prototype.constructor = t, t.prototype.__iterateUncached = function(n, i) {\n if (i)\n return this.cacheResult().__iterate(n, i);\n var o = this._collection, s = dr(o), a = 0;\n if (on(s))\n for (var u; !(u = s.next()).done && n(u.value, a++, this) !== !1; )\n ;\n return a;\n }, t.prototype.__iteratorUncached = function(n, i) {\n if (i)\n return this.cacheResult().__iterator(n, i);\n var o = this._collection, s = dr(o);\n if (!on(s))\n return new M(tt);\n var a = 0;\n return new M(function() {\n var u = s.next();\n return u.done ? u : F(n, a++, u.value);\n });\n }, t;\n})(dt), sn;\nfunction kr() {\n return sn || (sn = new Jt([]));\n}\nfunction Ar(e) {\n var t = Mr(e);\n if (t)\n return t.fromEntrySeq();\n if (typeof e == \"object\")\n return new Ir(e);\n throw new TypeError(\n \"Expected Array or collection object of [k, v] entries, or keyed object: \" + e\n );\n}\nfunction Hn(e) {\n var t = Mr(e);\n if (t)\n return t;\n throw new TypeError(\n \"Expected Array or collection object of values: \" + e\n );\n}\nfunction co(e) {\n var t = Mr(e);\n if (t)\n return so(e) ? t.fromEntrySeq() : ao(e) ? t.toSetSeq() : t;\n if (typeof e == \"object\")\n return new Ir(e);\n throw new TypeError(\n \"Expected Array or collection object of values, or keyed object: \" + e\n );\n}\nfunction Mr(e) {\n return Kn(e) ? new Jt(e) : Fn(e) ? new uo(e) : void 0;\n}\nfunction Me() {\n return this.__ensureOwner();\n}\nfunction $e() {\n return this.__ownerID ? this : this.__ensureOwner(new Er());\n}\nvar le = typeof Math.imul == \"function\" && Math.imul(4294967295, 2) === -2 ? Math.imul : function(t, r) {\n t |= 0, r |= 0;\n var n = t & 65535, i = r & 65535;\n return n * i + ((t >>> 16) * i + n * (r >>> 16) << 16 >>> 0) | 0;\n};\nfunction Xe(e) {\n return e >>> 1 & 1073741824 | e & 3221225471;\n}\nvar fo = Object.prototype.valueOf;\nfunction nt(e) {\n if (e == null)\n return an(e);\n if (typeof e.hashCode == \"function\")\n return Xe(e.hashCode(e));\n var t = vo(e);\n if (t == null)\n return an(t);\n switch (typeof t) {\n case \"boolean\":\n return t ? 1108378657 : 1108378656;\n case \"number\":\n return ho(t);\n case \"string\":\n return t.length > yo ? lo(t) : gr(t);\n case \"object\":\n case \"function\":\n return _o(t);\n case \"symbol\":\n return po(t);\n default:\n if (typeof t.toString == \"function\")\n return gr(t.toString());\n throw new Error(\"Value type \" + typeof t + \" cannot be hashed.\");\n }\n}\nfunction an(e) {\n return e === null ? 1108378658 : (\n /* undefined */\n 1108378659\n );\n}\nfunction ho(e) {\n if (e !== e || e === 1 / 0)\n return 0;\n var t = e | 0;\n for (t !== e && (t ^= e * 4294967295); e > 4294967295; )\n e /= 4294967295, t ^= e;\n return Xe(t);\n}\nfunction lo(e) {\n var t = ur[e];\n return t === void 0 && (t = gr(e), ar === mo && (ar = 0, ur = {}), ar++, ur[e] = t), t;\n}\nfunction gr(e) {\n for (var t = 0, r = 0; r < e.length; r++)\n t = 31 * t + e.charCodeAt(r) | 0;\n return Xe(t);\n}\nfunction po(e) {\n var t = fn[e];\n return t !== void 0 || (t = Vn(), fn[e] = t), t;\n}\nfunction _o(e) {\n var t;\n if (vr && (t = yr.get(e), t !== void 0) || (t = e[Pt], t !== void 0) || !cn && (t = e.propertyIsEnumerable && e.propertyIsEnumerable[Pt], t !== void 0 || (t = go(e), t !== void 0)))\n return t;\n if (t = Vn(), vr)\n yr.set(e, t);\n else {\n if (un !== void 0 && un(e) === !1)\n throw new Error(\"Non-extensible objects are not allowed as keys.\");\n if (cn)\n Object.defineProperty(e, Pt, {\n enumerable: !1,\n configurable: !1,\n writable: !1,\n value: t\n });\n else if (e.propertyIsEnumerable !== void 0 && e.propertyIsEnumerable === e.constructor.prototype.propertyIsEnumerable)\n e.propertyIsEnumerable = function() {\n return this.constructor.prototype.propertyIsEnumerable.apply(\n this,\n // eslint-disable-next-line prefer-rest-params\n arguments\n );\n }, e.propertyIsEnumerable[Pt] = t;\n else if (e.nodeType !== void 0)\n e[Pt] = t;\n else\n throw new Error(\"Unable to set a non-enumerable property on object.\");\n }\n return t;\n}\nvar un = Object.isExtensible, cn = (function() {\n try {\n return Object.defineProperty({}, \"@\", {}), !0;\n } catch {\n return !1;\n }\n})();\nfunction go(e) {\n if (e && e.nodeType > 0)\n switch (e.nodeType) {\n case 1:\n return e.uniqueID;\n case 9:\n return e.documentElement && e.documentElement.uniqueID;\n }\n}\nfunction vo(e) {\n return e.valueOf !== fo && typeof e.valueOf == \"function\" ? (\n // @ts-expect-error weird the \"obj\" parameter as `valueOf` should not have a parameter\n e.valueOf(e)\n ) : e;\n}\nfunction Vn() {\n var e = ++sr;\n return sr & 1073741824 && (sr = 0), e;\n}\nvar vr = typeof WeakMap == \"function\", yr;\nvr && (yr = /* @__PURE__ */ new WeakMap());\nvar fn = /* @__PURE__ */ Object.create(null), sr = 0, Pt = \"__immutablehash__\";\ntypeof Symbol == \"function\" && (Pt = Symbol(Pt));\nvar yo = 16, mo = 255, ar = 0, ur = {}, Qe = /* @__PURE__ */ (function(e) {\n function t(r, n) {\n this._iter = r, this._useKeys = n, this.size = r.size;\n }\n return e && (t.__proto__ = e), t.prototype = Object.create(e && e.prototype), t.prototype.constructor = t, t.prototype.get = function(n, i) {\n return this._iter.get(n, i);\n }, t.prototype.has = function(n) {\n return this._iter.has(n);\n }, t.prototype.valueSeq = function() {\n return this._iter.valueSeq();\n }, t.prototype.reverse = function() {\n var n = this, i = $r(this, !0);\n return this._useKeys || (i.valueSeq = function() {\n return n._iter.toSeq().reverse();\n }), i;\n }, t.prototype.map = function(n, i) {\n var o = this, s = Xn(this, n, i);\n return this._useKeys || (s.valueSeq = function() {\n return o._iter.toSeq().map(n, i);\n }), s;\n }, t.prototype.__iterate = function(n, i) {\n var o = this;\n return this._iter.__iterate(function(s, a) {\n return n(s, a, o);\n }, i);\n }, t.prototype.__iterator = function(n, i) {\n return this._iter.__iterator(n, i);\n }, t;\n})(qt);\nQe.prototype[Lt] = !0;\nvar Yn = /* @__PURE__ */ (function(e) {\n function t(r) {\n this._iter = r, this.size = r.size;\n }\n return e && (t.__proto__ = e), t.prototype = Object.create(e && e.prototype), t.prototype.constructor = t, t.prototype.includes = function(n) {\n return this._iter.includes(n);\n }, t.prototype.__iterate = function(n, i) {\n var o = this, s = 0;\n return i && Yt(this), this._iter.__iterate(\n function(a) {\n return n(a, i ? o.size - ++s : s++, o);\n },\n i\n );\n }, t.prototype.__iterator = function(n, i) {\n var o = this, s = this._iter.__iterator(ut, i), a = 0;\n return i && Yt(this), new M(function() {\n var u = s.next();\n return u.done ? u : F(\n n,\n i ? o.size - ++a : a++,\n u.value,\n u\n );\n });\n }, t;\n})(dt), Jn = /* @__PURE__ */ (function(e) {\n function t(r) {\n this._iter = r, this.size = r.size;\n }\n return e && (t.__proto__ = e), t.prototype = Object.create(e && e.prototype), t.prototype.constructor = t, t.prototype.has = function(n) {\n return this._iter.includes(n);\n }, t.prototype.__iterate = function(n, i) {\n var o = this;\n return this._iter.__iterate(function(s) {\n return n(s, s, o);\n }, i);\n }, t.prototype.__iterator = function(n, i) {\n var o = this._iter.__iterator(ut, i);\n return new M(function() {\n var s = o.next();\n return s.done ? s : F(n, s.value, s.value, s);\n });\n }, t;\n})(se), Gn = /* @__PURE__ */ (function(e) {\n function t(r) {\n this._iter = r, this.size = r.size;\n }\n return e && (t.__proto__ = e), t.prototype = Object.create(e && e.prototype), t.prototype.constructor = t, t.prototype.entrySeq = function() {\n return this._iter.toSeq();\n }, t.prototype.__iterate = function(n, i) {\n var o = this;\n return this._iter.__iterate(function(s) {\n if (s) {\n ln(s);\n var a = at(s);\n return n(\n a ? s.get(1) : s[1],\n a ? s.get(0) : s[0],\n o\n );\n }\n }, i);\n }, t.prototype.__iterator = function(n, i) {\n var o = this._iter.__iterator(ut, i);\n return new M(function() {\n for (; ; ) {\n var s = o.next();\n if (s.done)\n return s;\n var a = s.value;\n if (a) {\n ln(a);\n var u = at(a);\n return F(\n n,\n u ? a.get(0) : a[0],\n u ? a.get(1) : a[1],\n s\n );\n }\n }\n });\n }, t;\n})(qt);\nYn.prototype.cacheResult = Qe.prototype.cacheResult = Jn.prototype.cacheResult = Gn.prototype.cacheResult = Lr;\nfunction Zn(e) {\n var t = wt(e);\n return t._iter = e, t.size = e.size, t.flip = function() {\n return e;\n }, t.reverse = function() {\n var r = e.reverse.apply(this);\n return r.flip = function() {\n return e.reverse();\n }, r;\n }, t.has = function(r) {\n return e.includes(r);\n }, t.includes = function(r) {\n return e.has(r);\n }, t.cacheResult = Lr, t.__iterateUncached = function(r, n) {\n var i = this;\n return e.__iterate(function(o, s) {\n return r(s, o, i) !== !1;\n }, n);\n }, t.__iteratorUncached = function(r, n) {\n if (r === ct) {\n var i = e.__iterator(r, n);\n return new M(function() {\n var o = i.next();\n if (!o.done) {\n var s = o.value[0];\n o.value[0] = o.value[1], o.value[1] = s;\n }\n return o;\n });\n }\n return e.__iterator(\n r === ut ? ie : ut,\n n\n );\n }, t;\n}\nfunction Xn(e, t, r) {\n var n = wt(e);\n return n.size = e.size, n.has = function(i) {\n return e.has(i);\n }, n.get = function(i, o) {\n var s = e.get(i, k);\n return s === k ? o : t.call(r, s, i, e);\n }, n.__iterateUncached = function(i, o) {\n var s = this;\n return e.__iterate(\n function(a, u, c) {\n return i(t.call(r, a, u, c), u, s) !== !1;\n },\n o\n );\n }, n.__iteratorUncached = function(i, o) {\n var s = e.__iterator(ct, o);\n return new M(function() {\n var a = s.next();\n if (a.done)\n return a;\n var u = a.value, c = u[0];\n return F(\n i,\n c,\n t.call(r, u[1], c, e),\n a\n );\n });\n }, n;\n}\nfunction $r(e, t) {\n var r = this, n = wt(e);\n return n._iter = e, n.size = e.size, n.reverse = function() {\n return e;\n }, e.flip && (n.flip = function() {\n var i = Zn(e);\n return i.reverse = function() {\n return e.flip();\n }, i;\n }), n.get = function(i, o) {\n return e.get(t ? i : -1 - i, o);\n }, n.has = function(i) {\n return e.has(t ? i : -1 - i);\n }, n.includes = function(i) {\n return e.includes(i);\n }, n.cacheResult = Lr, n.__iterate = function(i, o) {\n var s = this, a = 0;\n return o && Yt(e), e.__iterate(\n function(u, c) {\n return i(u, t ? c : o ? s.size - ++a : a++, s);\n },\n !o\n );\n }, n.__iterator = function(i, o) {\n var s = 0;\n o && Yt(e);\n var a = e.__iterator(ct, !o);\n return new M(function() {\n var u = a.next();\n if (u.done)\n return u;\n var c = u.value;\n return F(\n i,\n t ? c[0] : o ? r.size - ++s : s++,\n c[1],\n u\n );\n });\n }, n;\n}\nfunction Qn(e, t, r, n) {\n var i = wt(e);\n return n && (i.has = function(o) {\n var s = e.get(o, k);\n return s !== k && !!t.call(r, s, o, e);\n }, i.get = function(o, s) {\n var a = e.get(o, k);\n return a !== k && t.call(r, a, o, e) ? a : s;\n }), i.__iterateUncached = function(o, s) {\n var a = this, u = 0;\n return e.__iterate(function(c, f, h) {\n if (t.call(r, c, f, h))\n return u++, o(c, n ? f : u - 1, a);\n }, s), u;\n }, i.__iteratorUncached = function(o, s) {\n var a = e.__iterator(ct, s), u = 0;\n return new M(function() {\n for (; ; ) {\n var c = a.next();\n if (c.done)\n return c;\n var f = c.value, h = f[0], l = f[1];\n if (t.call(r, l, h, e))\n return F(o, n ? h : u++, l, c);\n }\n });\n }, i;\n}\nfunction So(e, t, r) {\n var n = Ct().asMutable();\n return e.__iterate(function(i, o) {\n n.update(t.call(r, i, o, e), 0, function(s) {\n return s + 1;\n });\n }), n.asImmutable();\n}\nfunction wo(e, t, r) {\n var n = P(e), i = (mt(e) ? It() : Ct()).asMutable();\n e.__iterate(function(s, a) {\n i.update(\n t.call(r, s, a, e),\n function(u) {\n return u = u || [], u.push(n ? [a, s] : s), u;\n }\n );\n });\n var o = Tr(e);\n return i.map(function(s) {\n return T(e, o(s));\n }).asImmutable();\n}\nfunction bo(e, t, r) {\n var n = P(e), i = [[], []];\n e.__iterate(function(s, a) {\n i[t.call(r, s, a, e) ? 1 : 0].push(\n n ? [a, s] : s\n );\n });\n var o = Tr(e);\n return i.map(function(s) {\n return T(e, o(s));\n });\n}\nfunction zr(e, t, r, n) {\n var i = e.size;\n if (Ge(t, r, i))\n return e;\n if (typeof i > \"u\" && (t < 0 || r < 0))\n return zr(e.toSeq().cacheResult(), t, r, n);\n var o = Ae(t, i), s = Ze(r, i), a = s - o, u;\n a === a && (u = a < 0 ? 0 : a);\n var c = wt(e);\n return c.size = u === 0 ? u : e.size && u || void 0, !n && Rr(e) && u >= 0 && (c.get = function(f, h) {\n return f = Tt(this, f), f >= 0 && f < u ? e.get(f + o, h) : h;\n }), c.__iterateUncached = function(f, h) {\n var l = this;\n if (u === 0)\n return 0;\n if (h)\n return this.cacheResult().__iterate(f, h);\n var d = 0, p = !0, _ = 0;\n return e.__iterate(function(m, R) {\n if (!(p && (p = d++ < o)))\n return _++, f(m, n ? R : _ - 1, l) !== !1 && _ !== u;\n }), _;\n }, c.__iteratorUncached = function(f, h) {\n if (u !== 0 && h)\n return this.cacheResult().__iterator(f, h);\n if (u === 0)\n return new M(tt);\n var l = e.__iterator(f, h), d = 0, p = 0;\n return new M(function() {\n for (; d++ < o; )\n l.next();\n if (++p > u)\n return tt();\n var _ = l.next();\n return n || f === ut || _.done ? _ : f === ie ? F(f, p - 1, void 0, _) : F(f, p - 1, _.value[1], _);\n });\n }, c;\n}\nfunction Oo(e, t, r) {\n var n = wt(e);\n return n.__iterateUncached = function(i, o) {\n var s = this;\n if (o)\n return this.cacheResult().__iterate(i, o);\n var a = 0;\n return e.__iterate(\n function(u, c, f) {\n return t.call(r, u, c, f) && ++a && i(u, c, s);\n }\n ), a;\n }, n.__iteratorUncached = function(i, o) {\n var s = this;\n if (o)\n return this.cacheResult().__iterator(i, o);\n var a = e.__iterator(ct, o), u = !0;\n return new M(function() {\n if (!u)\n return tt();\n var c = a.next();\n if (c.done)\n return c;\n var f = c.value, h = f[0], l = f[1];\n return t.call(r, l, h, s) ? i === ct ? c : F(i, h, l, c) : (u = !1, tt());\n });\n }, n;\n}\nfunction ti(e, t, r, n) {\n var i = wt(e);\n return i.__iterateUncached = function(o, s) {\n var a = this;\n if (s)\n return this.cacheResult().__iterate(o, s);\n var u = !0, c = 0;\n return e.__iterate(function(f, h, l) {\n if (!(u && (u = t.call(r, f, h, l))))\n return c++, o(f, n ? h : c - 1, a);\n }), c;\n }, i.__iteratorUncached = function(o, s) {\n var a = this;\n if (s)\n return this.cacheResult().__iterator(o, s);\n var u = e.__iterator(ct, s), c = !0, f = 0;\n return new M(function() {\n var h, l, d;\n do {\n if (h = u.next(), h.done)\n return n || o === ut ? h : o === ie ? F(o, f++, void 0, h) : F(o, f++, h.value[1], h);\n var p = h.value;\n l = p[0], d = p[1], c && (c = t.call(r, d, l, a));\n } while (c);\n return o === ct ? h : F(o, l, d, h);\n });\n }, i;\n}\nvar Eo = /* @__PURE__ */ (function(e) {\n function t(r) {\n this._wrappedIterables = r.flatMap(function(n) {\n return n._wrappedIterables ? n._wrappedIterables : [n];\n }), this.size = this._wrappedIterables.reduce(function(n, i) {\n if (n !== void 0) {\n var o = i.size;\n if (o !== void 0)\n return n + o;\n }\n }, 0), this[Ke] = this._wrappedIterables[0][Ke], this[We] = this._wrappedIterables[0][We], this[Lt] = this._wrappedIterables[0][Lt];\n }\n return e && (t.__proto__ = e), t.prototype = Object.create(e && e.prototype), t.prototype.constructor = t, t.prototype.__iterateUncached = function(n, i) {\n if (this._wrappedIterables.length !== 0) {\n if (i)\n return this.cacheResult().__iterate(n, i);\n for (var o = 0, s = P(this), a = s ? ct : ut, u = this._wrappedIterables[o].__iterator(\n a,\n i\n ), c = !0, f = 0; c; ) {\n for (var h = u.next(); h.done; ) {\n if (o++, o === this._wrappedIterables.length)\n return f;\n u = this._wrappedIterables[o].__iterator(\n a,\n i\n ), h = u.next();\n }\n var l = s ? n(h.value[1], h.value[0], this) : n(h.value, f, this);\n c = l !== !1, f++;\n }\n return f;\n }\n }, t.prototype.__iteratorUncached = function(n, i) {\n var o = this;\n if (this._wrappedIterables.length === 0)\n return new M(tt);\n if (i)\n return this.cacheResult().__iterator(n, i);\n var s = 0, a = this._wrappedIterables[s].__iterator(\n n,\n i\n );\n return new M(function() {\n for (var u = a.next(); u.done; ) {\n if (s++, s === o._wrappedIterables.length)\n return u;\n a = o._wrappedIterables[s].__iterator(\n n,\n i\n ), u = a.next();\n }\n return u;\n });\n }, t;\n})(rt);\nfunction Ro(e, t) {\n var r = P(e), n = [e].concat(t).map(function(o) {\n return at(o) ? r && (o = pt(o)) : o = r ? Ar(o) : Hn(Array.isArray(o) ? o : [o]), o;\n }).filter(function(o) {\n return o.size !== 0;\n });\n if (n.length === 0)\n return e;\n if (n.length === 1) {\n var i = n[0];\n if (i === e || r && P(i) || lt(e) && lt(i))\n return i;\n }\n return new Eo(n);\n}\nfunction ei(e, t, r) {\n var n = wt(e);\n return n.__iterateUncached = function(i, o) {\n if (o)\n return this.cacheResult().__iterate(i, o);\n var s = 0, a = !1;\n function u(c, f) {\n c.__iterate(function(h, l) {\n return (!t || f < t) && at(h) ? u(h, f + 1) : (s++, i(h, r ? l : s - 1, n) === !1 && (a = !0)), !a;\n }, o);\n }\n return u(e, 0), s;\n }, n.__iteratorUncached = function(i, o) {\n if (o)\n return this.cacheResult().__iterator(i, o);\n var s = e.__iterator(i, o), a = [], u = 0;\n return new M(function() {\n for (; s; ) {\n var c = s.next();\n if (c.done !== !1) {\n s = a.pop();\n continue;\n }\n var f = c.value;\n if (i === ct && (f = f[1]), (!t || a.length < t) && at(f))\n a.push(s), s = f.__iterator(i, o);\n else\n return r ? c : F(i, u++, f, c);\n }\n return tt();\n });\n }, n;\n}\nfunction Io(e, t, r) {\n var n = Tr(e);\n return e.toSeq().map(function(i, o) {\n return n(t.call(r, i, o, e));\n }).flatten(!0);\n}\nfunction ko(e, t) {\n var r = wt(e);\n return r.size = e.size && e.size * 2 - 1, r.__iterateUncached = function(n, i) {\n var o = this, s = 0;\n return e.__iterate(\n function(a) {\n return (!s || n(t, s++, o) !== !1) && n(a, s++, o) !== !1;\n },\n i\n ), s;\n }, r.__iteratorUncached = function(n, i) {\n var o = e.__iterator(ut, i), s = 0, a;\n return new M(function() {\n return (!a || s % 2) && (a = o.next(), a.done) ? a : s % 2 ? F(n, s++, t) : F(n, s++, a.value, a);\n });\n }, r;\n}\nfunction Gt(e, t, r) {\n t || (t = ri);\n var n = P(e), i = 0, o = e.toSeq().map(function(s, a) {\n return [a, s, i++, r ? r(s, a, e) : s];\n }).valueSeq().toArray();\n return o.sort(function(s, a) {\n return t(s[3], a[3]) || s[2] - a[2];\n }).forEach(\n n ? function(s, a) {\n o[a].length = 2;\n } : function(s, a) {\n o[a] = s[1];\n }\n ), n ? qt(o) : lt(e) ? dt(o) : se(o);\n}\nfunction Ne(e, t, r) {\n if (t || (t = ri), r) {\n var n = e.toSeq().map(function(i, o) {\n return [i, r(i, o, e)];\n }).reduce(function(i, o) {\n return hn(t, i[1], o[1]) ? o : i;\n });\n return n && n[0];\n }\n return e.reduce(function(i, o) {\n return hn(t, i, o) ? o : i;\n });\n}\nfunction hn(e, t, r) {\n var n = e(r, t);\n return n === 0 && r !== t && (r == null || r !== r) || n > 0;\n}\nfunction Pe(e, t, r, n) {\n var i = wt(e), o = new Jt(r).map(function(s) {\n return s.size;\n });\n return i.size = n ? o.max() : o.min(), i.__iterate = function(s, a) {\n for (var u = this.__iterator(ut, a), c, f = 0; !(c = u.next()).done && s(c.value, f++, this) !== !1; )\n ;\n return f;\n }, i.__iteratorUncached = function(s, a) {\n var u = r.map(\n function(h) {\n return h = G(h), dr(a ? h.reverse() : h);\n }\n ), c = 0, f = !1;\n return new M(function() {\n var h;\n return f || (h = u.map(function(l) {\n return l.next();\n }), f = n ? h.every(function(l) {\n return l.done;\n }) : h.some(function(l) {\n return l.done;\n })), f ? tt() : F(\n s,\n c++,\n t.apply(\n null,\n h.map(function(l) {\n return l.value;\n })\n )\n );\n });\n }, i;\n}\nfunction T(e, t) {\n return e === t ? e : Rr(e) ? t : e.constructor(t);\n}\nfunction ln(e) {\n if (e !== Object(e))\n throw new TypeError(\"Expected [K, V] tuple: \" + e);\n}\nfunction Tr(e) {\n return P(e) ? pt : lt(e) ? jt : ne;\n}\nfunction wt(e) {\n return Object.create(\n (P(e) ? qt : lt(e) ? dt : se).prototype\n );\n}\nfunction Lr() {\n return this._iter.cacheResult ? (this._iter.cacheResult(), this.size = this._iter.size, this) : rt.prototype.cacheResult.call(this);\n}\nfunction ri(e, t) {\n return e === void 0 && t === void 0 ? 0 : e === void 0 ? 1 : t === void 0 ? -1 : e > t ? 1 : e < t ? -1 : 0;\n}\nfunction pn(e) {\n return !!(e && // @ts-expect-error: maybeValue is typed as `{}`\n typeof e.equals == \"function\" && // @ts-expect-error: maybeValue is typed as `{}`\n typeof e.hashCode == \"function\");\n}\nfunction st(e, t) {\n if (e === t || e !== e && t !== t)\n return !0;\n if (!e || !t)\n return !1;\n if (typeof e.valueOf == \"function\" && typeof t.valueOf == \"function\") {\n if (e = e.valueOf(), t = t.valueOf(), e === t || e !== e && t !== t)\n return !0;\n if (!e || !t)\n return !1;\n }\n return !!(pn(e) && pn(t) && e.equals(t));\n}\nfunction ni(e, t, r, n) {\n return ae(\n // @ts-expect-error Index signature for type string is missing in type V[]\n e,\n [t],\n r,\n n\n );\n}\nfunction ii() {\n for (var e = [], t = arguments.length; t--; ) e[t] = arguments[t];\n return si(this, e);\n}\nfunction oi(e) {\n for (var t = [], r = arguments.length - 1; r-- > 0; ) t[r] = arguments[r + 1];\n if (typeof e != \"function\")\n throw new TypeError(\"Invalid merger function: \" + e);\n return si(this, t, e);\n}\nfunction si(e, t, r) {\n for (var n = [], i = 0; i < t.length; i++) {\n var o = pt(t[i]);\n o.size !== 0 && n.push(o);\n }\n return n.length === 0 ? e : e.toSeq().size === 0 && !e.__ownerID && n.length === 1 ? Bt(e) ? e : e.constructor(n[0]) : e.withMutations(function(s) {\n for (var a = r ? function(c, f) {\n ni(\n s,\n f,\n k,\n function(h) {\n return h === k ? c : r(h, c, f);\n }\n );\n } : function(c, f) {\n s.set(f, c);\n }, u = 0; u < n.length; u++)\n n[u].forEach(a);\n });\n}\nvar Ao = Object.prototype.toString;\nfunction Mo(e) {\n if (!e || typeof e != \"object\" || Ao.call(e) !== \"[object Object]\")\n return !1;\n var t = Object.getPrototypeOf(e);\n if (t === null)\n return !0;\n for (var r = t, n = Object.getPrototypeOf(t); n !== null; )\n r = n, n = Object.getPrototypeOf(r);\n return r === t;\n}\nfunction Dt(e) {\n return typeof e == \"object\" && (St(e) || Array.isArray(e) || Mo(e));\n}\nfunction vt(e, t) {\n t = t || 0;\n for (var r = Math.max(0, e.length - t), n = new Array(r), i = 0; i < r; i++)\n n[i] = e[i + t];\n return n;\n}\nfunction He(e) {\n if (Array.isArray(e))\n return vt(e);\n var t = {};\n for (var r in e)\n oe.call(e, r) && (t[r] = e[r]);\n return t;\n}\nfunction Dr(e, t, r) {\n return Cr(e, t, $o(r));\n}\nfunction Cr(e, t, r) {\n if (!Dt(e))\n throw new TypeError(\n \"Cannot merge into non-data-structure value: \" + e\n );\n if (St(e))\n return typeof r == \"function\" && e.mergeWith ? e.mergeWith.apply(e, [r].concat(t)) : e.merge ? e.merge.apply(e, t) : e.concat.apply(e, t);\n for (var n = Array.isArray(e), i = e, o = n ? jt : pt, s = n ? function(u) {\n i === e && (i = He(i)), i.push(u);\n } : function(u, c) {\n var f = oe.call(i, c), h = f && r ? r(i[c], u, c) : u;\n (!f || h !== i[c]) && (i === e && (i = He(i)), i[c] = h);\n }, a = 0; a < t.length; a++)\n o(t[a]).forEach(s);\n return i;\n}\nfunction $o(e) {\n function t(r, n, i) {\n return Dt(r) && Dt(n) && zo(r, n) ? Cr(r, [n], t) : e ? e(r, n, i) : n;\n }\n return t;\n}\nfunction zo(e, t) {\n var r = rt(e), n = rt(t);\n return lt(r) === lt(n) && P(r) === P(n);\n}\nfunction ai() {\n for (var e = [], t = arguments.length; t--; ) e[t] = arguments[t];\n return Dr(this, e);\n}\nfunction ui(e) {\n for (var t = [], r = arguments.length - 1; r-- > 0; ) t[r] = arguments[r + 1];\n return Dr(this, t, e);\n}\nfunction qr(e) {\n for (var t = [], r = arguments.length - 1; r-- > 0; ) t[r] = arguments[r + 1];\n return ae(\n this,\n e,\n yt(),\n function(n) {\n return Dr(n, t);\n }\n );\n}\nfunction Nr(e) {\n for (var t = [], r = arguments.length - 1; r-- > 0; ) t[r] = arguments[r + 1];\n return ae(this, e, yt(), function(n) {\n return Cr(n, t);\n });\n}\nfunction To(e, t, r) {\n return ae(e, t, k, function() {\n return r;\n });\n}\nfunction Pr(e, t) {\n return To(this, e, t);\n}\nfunction Fr(e, t, r) {\n return arguments.length === 1 ? e(this) : ni(this, e, t, r);\n}\nfunction jr(e, t, r) {\n return ae(this, e, t, r);\n}\nfunction Br() {\n return this.__altered;\n}\nfunction ze(e) {\n var t = this.asMutable();\n return e(t), t.wasAltered() ? t.__ensureOwner(this.__ownerID) : this;\n}\nvar ci = \"@@__IMMUTABLE_MAP__@@\";\nfunction xr(e) {\n return !!(e && // @ts-expect-error: maybeMap is typed as `{}`, need to change in 6.0 to `maybeMap && typeof maybeMap === 'object' && IS_MAP_SYMBOL in maybeMap`\n e[ci]);\n}\nfunction ve(e, t) {\n if (!e)\n throw new Error(t);\n}\nfunction it(e) {\n ve(e !== 1 / 0, \"Cannot perform this action with an infinite size.\");\n}\nvar Ct = /* @__PURE__ */ (function(e) {\n function t(r) {\n return r == null ? yt() : xr(r) && !mt(r) ? r : yt().withMutations(function(n) {\n var i = e(r);\n it(i.size), i.forEach(function(o, s) {\n return n.set(s, o);\n });\n });\n }\n return e && (t.__proto__ = e), t.prototype = Object.create(e && e.prototype), t.prototype.constructor = t, t.prototype.toString = function() {\n return this.__toString(\"Map {\", \"}\");\n }, t.prototype.get = function(n, i) {\n return this._root ? this._root.get(0, void 0, n, i) : i;\n }, t.prototype.set = function(n, i) {\n return gn(this, n, i);\n }, t.prototype.remove = function(n) {\n return gn(this, n, k);\n }, t.prototype.deleteAll = function(n) {\n var i = G(n);\n return i.size === 0 ? this : this.withMutations(function(o) {\n i.forEach(function(s) {\n return o.remove(s);\n });\n });\n }, t.prototype.clear = function() {\n return this.size === 0 ? this : this.__ownerID ? (this.size = 0, this._root = null, this.__hash = void 0, this.__altered = !0, this) : yt();\n }, t.prototype.sort = function(n) {\n return It(Gt(this, n));\n }, t.prototype.sortBy = function(n, i) {\n return It(Gt(this, i, n));\n }, t.prototype.map = function(n, i) {\n var o = this;\n return this.withMutations(function(s) {\n s.forEach(function(a, u) {\n s.set(u, n.call(i, a, u, o));\n });\n });\n }, t.prototype.__iterator = function(n, i) {\n return new Lo(this, n, i);\n }, t.prototype.__iterate = function(n, i) {\n var o = this, s = 0;\n return this._root && this._root.iterate(function(a) {\n return s++, n(a[1], a[0], o);\n }, i), s;\n }, t.prototype.__ensureOwner = function(n) {\n return n === this.__ownerID ? this : n ? Ur(this.size, this._root, n, this.__hash) : this.size === 0 ? yt() : (this.__ownerID = n, this.__altered = !1, this);\n }, t;\n})(pt);\nCt.isMap = xr;\nvar N = Ct.prototype;\nN[ci] = !0;\nN[ke] = N.remove;\nN.removeAll = N.deleteAll;\nN.setIn = Pr;\nN.removeIn = N.deleteIn = Hr;\nN.update = Fr;\nN.updateIn = jr;\nN.merge = N.concat = ii;\nN.mergeWith = oi;\nN.mergeDeep = ai;\nN.mergeDeepWith = ui;\nN.mergeIn = Nr;\nN.mergeDeepIn = qr;\nN.withMutations = ze;\nN.wasAltered = Br;\nN.asImmutable = Me;\nN[\"@@transducer/init\"] = N.asMutable = $e;\nN[\"@@transducer/step\"] = function(e, t) {\n return e.set(t[0], t[1]);\n};\nN[\"@@transducer/result\"] = function(e) {\n return e.asImmutable();\n};\nvar Se = function(t, r) {\n this.ownerID = t, this.entries = r;\n};\nSe.prototype.get = function(t, r, n, i) {\n for (var o = this.entries, s = 0, a = o.length; s < a; s++)\n if (st(n, o[s][0]))\n return o[s][1];\n return i;\n};\nSe.prototype.update = function(t, r, n, i, o, s, a) {\n for (var u = o === k, c = this.entries, f = 0, h = c.length; f < h && !st(i, c[f][0]); f++)\n ;\n var l = f < h;\n if (l ? c[f][1] === o : u)\n return this;\n if (ht(a), (u || !l) && ht(s), !(u && c.length === 1)) {\n if (!l && !u && c.length >= Fo)\n return Do(t, c, i, o);\n var d = t && t === this.ownerID, p = d ? c : vt(c);\n return l ? u ? f === h - 1 ? p.pop() : p[f] = p.pop() : p[f] = [i, o] : p.push([i, o]), d ? (this.entries = p, this) : new Se(t, p);\n }\n};\nvar Zt = function(t, r, n) {\n this.ownerID = t, this.bitmap = r, this.nodes = n;\n};\nZt.prototype.get = function(t, r, n, i) {\n r === void 0 && (r = nt(n));\n var o = 1 << ((t === 0 ? r : r >>> t) & Q), s = this.bitmap;\n return (s & o) === 0 ? i : this.nodes[fi(s & o - 1)].get(\n t + L,\n r,\n n,\n i\n );\n};\nZt.prototype.update = function(t, r, n, i, o, s, a) {\n n === void 0 && (n = nt(i));\n var u = (r === 0 ? n : n >>> r) & Q, c = 1 << u, f = this.bitmap, h = (f & c) !== 0;\n if (!h && o === k)\n return this;\n var l = fi(f & c - 1), d = this.nodes, p = h ? d[l] : void 0, _ = Wr(\n p,\n t,\n r + L,\n n,\n i,\n o,\n s,\n a\n );\n if (_ === p)\n return this;\n if (!h && _ && d.length >= jo)\n return qo(t, d, f, u, _);\n if (h && !_ && d.length === 2 && vn(d[l ^ 1]))\n return d[l ^ 1];\n if (h && _ && d.length === 1 && vn(_))\n return _;\n var m = t && t === this.ownerID, R = h ? _ ? f : f ^ c : f | c, O = h ? _ ? hi(d, l, _, m) : Po(d, l, m) : No(d, l, _, m);\n return m ? (this.bitmap = R, this.nodes = O, this) : new Zt(t, R, O);\n};\nvar we = function(t, r, n) {\n this.ownerID = t, this.count = r, this.nodes = n;\n};\nwe.prototype.get = function(t, r, n, i) {\n r === void 0 && (r = nt(n));\n var o = (t === 0 ? r : r >>> t) & Q, s = this.nodes[o];\n return s ? s.get(t + L, r, n, i) : i;\n};\nwe.prototype.update = function(t, r, n, i, o, s, a) {\n n === void 0 && (n = nt(i));\n var u = (r === 0 ? n : n >>> r) & Q, c = o === k, f = this.nodes, h = f[u];\n if (c && !h)\n return this;\n var l = Wr(\n h,\n t,\n r + L,\n n,\n i,\n o,\n s,\n a\n );\n if (l === h)\n return this;\n var d = this.count;\n if (!h)\n d++;\n else if (!l && (d--, d < Bo))\n return Co(t, f, d, u);\n var p = t && t === this.ownerID, _ = hi(f, u, l, p);\n return p ? (this.count = d, this.nodes = _, this) : new we(t, d, _);\n};\nvar Xt = function(t, r, n) {\n this.ownerID = t, this.keyHash = r, this.entries = n;\n};\nXt.prototype.get = function(t, r, n, i) {\n for (var o = this.entries, s = 0, a = o.length; s < a; s++)\n if (st(n, o[s][0]))\n return o[s][1];\n return i;\n};\nXt.prototype.update = function(t, r, n, i, o, s, a) {\n n === void 0 && (n = nt(i));\n var u = o === k;\n if (n !== this.keyHash)\n return u ? this : (ht(a), ht(s), Kr(this, t, r, n, [i, o]));\n for (var c = this.entries, f = 0, h = c.length; f < h && !st(i, c[f][0]); f++)\n ;\n var l = f < h;\n if (l ? c[f][1] === o : u)\n return this;\n if (ht(a), (u || !l) && ht(s), u && h === 2)\n return new Rt(t, this.keyHash, c[f ^ 1]);\n var d = t && t === this.ownerID, p = d ? c : vt(c);\n return l ? u ? f === h - 1 ? p.pop() : p[f] = p.pop() : p[f] = [i, o] : p.push([i, o]), d ? (this.entries = p, this) : new Xt(t, this.keyHash, p);\n};\nvar Rt = function(t, r, n) {\n this.ownerID = t, this.keyHash = r, this.entry = n;\n};\nRt.prototype.get = function(t, r, n, i) {\n return st(n, this.entry[0]) ? this.entry[1] : i;\n};\nRt.prototype.update = function(t, r, n, i, o, s, a) {\n var u = o === k, c = st(i, this.entry[0]);\n if (c ? o === this.entry[1] : u)\n return this;\n if (ht(a), u) {\n ht(s);\n return;\n }\n return c ? t && t === this.ownerID ? (this.entry[1] = o, this) : new Rt(t, this.keyHash, [i, o]) : (ht(s), Kr(this, t, r, nt(i), [i, o]));\n};\nSe.prototype.iterate = Xt.prototype.iterate = function(e, t) {\n for (var r = this.entries, n = 0, i = r.length - 1; n <= i; n++)\n if (e(r[t ? i - n : n]) === !1)\n return !1;\n};\nZt.prototype.iterate = we.prototype.iterate = function(e, t) {\n for (var r = this.nodes, n = 0, i = r.length - 1; n <= i; n++) {\n var o = r[t ? i - n : n];\n if (o && o.iterate(e, t) === !1)\n return !1;\n }\n};\nRt.prototype.iterate = function(e, t) {\n return e(this.entry);\n};\nvar Lo = /* @__PURE__ */ (function(e) {\n function t(r, n, i) {\n this._type = n, this._reverse = i, this._stack = r._root && dn(r._root);\n }\n return e && (t.__proto__ = e), t.prototype = Object.create(e && e.prototype), t.prototype.constructor = t, t.prototype.next = function() {\n for (var n = this._type, i = this._stack; i; ) {\n var o = i.node, s = i.index++, a = void 0;\n if (o.entry) {\n if (s === 0)\n return cr(n, o.entry);\n } else if (o.entries) {\n if (a = o.entries.length - 1, s <= a)\n return cr(\n n,\n o.entries[this._reverse ? a - s : s]\n );\n } else if (a = o.nodes.length - 1, s <= a) {\n var u = o.nodes[this._reverse ? a - s : s];\n if (u) {\n if (u.entry)\n return cr(n, u.entry);\n i = this._stack = dn(u, i);\n }\n continue;\n }\n i = this._stack = this._stack.__prev;\n }\n return tt();\n }, t;\n})(M);\nfunction cr(e, t) {\n return F(e, t[0], t[1]);\n}\nfunction dn(e, t) {\n return {\n node: e,\n index: 0,\n __prev: t\n };\n}\nfunction Ur(e, t, r, n) {\n var i = Object.create(N);\n return i.size = e, i._root = t, i.__ownerID = r, i.__hash = n, i.__altered = !1, i;\n}\nvar _n;\nfunction yt() {\n return _n || (_n = Ur(0));\n}\nfunction gn(e, t, r) {\n var n, i;\n if (e._root) {\n var o = _r(), s = _r();\n if (n = Wr(\n e._root,\n e.__ownerID,\n 0,\n void 0,\n t,\n r,\n o,\n s\n ), !s.value)\n return e;\n i = e.size + (o.value ? r === k ? -1 : 1 : 0);\n } else {\n if (r === k)\n return e;\n i = 1, n = new Se(e.__ownerID, [[t, r]]);\n }\n return e.__ownerID ? (e.size = i, e._root = n, e.__hash = void 0, e.__altered = !0, e) : n ? Ur(i, n) : yt();\n}\nfunction Wr(e, t, r, n, i, o, s, a) {\n return e ? e.update(\n t,\n r,\n n,\n i,\n o,\n s,\n a\n ) : o === k ? e : (ht(a), ht(s), new Rt(t, n, [i, o]));\n}\nfunction vn(e) {\n return e.constructor === Rt || e.constructor === Xt;\n}\nfunction Kr(e, t, r, n, i) {\n if (e.keyHash === n)\n return new Xt(t, n, [e.entry, i]);\n var o = (r === 0 ? e.keyHash : e.keyHash >>> r) & Q, s = (r === 0 ? n : n >>> r) & Q, a, u = o === s ? [Kr(e, t, r + L, n, i)] : (a = new Rt(t, n, i), o < s ? [e, a] : [a, e]);\n return new Zt(t, 1 << o | 1 << s, u);\n}\nfunction Do(e, t, r, n) {\n e || (e = new Er());\n for (var i = new Rt(e, nt(r), [r, n]), o = 0; o < t.length; o++) {\n var s = t[o];\n i = i.update(e, 0, void 0, s[0], s[1]);\n }\n return i;\n}\nfunction Co(e, t, r, n) {\n for (var i = 0, o = 0, s = new Array(r), a = 0, u = 1, c = t.length; a < c; a++, u <<= 1) {\n var f = t[a];\n f !== void 0 && a !== n && (i |= u, s[o++] = f);\n }\n return new Zt(e, i, s);\n}\nfunction qo(e, t, r, n, i) {\n for (var o = 0, s = new Array(ot), a = 0; r !== 0; a++, r >>>= 1)\n s[a] = r & 1 ? t[o++] : void 0;\n return s[n] = i, new we(e, o + 1, s);\n}\nfunction fi(e) {\n return e -= e >> 1 & 1431655765, e = (e & 858993459) + (e >> 2 & 858993459), e = e + (e >> 4) & 252645135, e += e >> 8, e += e >> 16, e & 127;\n}\nfunction hi(e, t, r, n) {\n var i = n ? e : vt(e);\n return i[t] = r, i;\n}\nfunction No(e, t, r, n) {\n var i = e.length + 1;\n if (n && t + 1 === i)\n return e[t] = r, e;\n for (var o = new Array(i), s = 0, a = 0; a < i; a++)\n a === t ? (o[a] = r, s = -1) : o[a] = e[a + s];\n return o;\n}\nfunction Po(e, t, r) {\n var n = e.length - 1;\n if (r && t === n)\n return e.pop(), e;\n for (var i = new Array(n), o = 0, s = 0; s < n; s++)\n s === t && (o = 1), i[s] = e[s + o];\n return i;\n}\nvar Fo = ot / 4, jo = ot / 2, Bo = ot / 4;\nfunction li(e) {\n if (Kn(e) && typeof e != \"string\")\n return e;\n if (mt(e))\n return e.toArray();\n throw new TypeError(\"Invalid keyPath: expected Ordered Collection or Array: \" + e);\n}\nfunction be(e) {\n try {\n return typeof e == \"string\" ? JSON.stringify(e) : String(e);\n } catch {\n return JSON.stringify(e);\n }\n}\nfunction xo(e, t) {\n return St(e) ? (\n // @ts-expect-error key might be a number or symbol, which is not handled be Record key type\n e.has(t)\n ) : (\n // @ts-expect-error key might be anything else than PropertyKey, and will return false in that case but runtime is OK\n Dt(e) && oe.call(e, t)\n );\n}\nfunction pi(e, t, r) {\n return St(e) ? e.get(t, r) : xo(e, t) ? (\n // @ts-expect-error weird \"get\" here,\n typeof e.get == \"function\" ? (\n // @ts-expect-error weird \"get\" here,\n e.get(t)\n ) : (\n // @ts-expect-error key is unknown here,\n e[t]\n )\n ) : r;\n}\nfunction Uo(e, t) {\n if (!Dt(e))\n throw new TypeError(\"Cannot update non-data-structure value: \" + e);\n if (St(e)) {\n if (!e.remove)\n throw new TypeError(\"Cannot update immutable value without .remove() method: \" + e);\n return e.remove(t);\n }\n if (!oe.call(e, t))\n return e;\n var r = He(e);\n return Array.isArray(r) ? r.splice(t, 1) : delete r[t], r;\n}\nfunction Wo(e, t, r) {\n if (!Dt(e))\n throw new TypeError(\"Cannot update non-data-structure value: \" + e);\n if (St(e)) {\n if (!e.set)\n throw new TypeError(\"Cannot update immutable value without .set() method: \" + e);\n return e.set(t, r);\n }\n if (oe.call(e, t) && r === e[t])\n return e;\n var n = He(e);\n return n[t] = r, n;\n}\nfunction ae(e, t, r, n) {\n n || (n = r, r = void 0);\n var i = di(\n St(e),\n // @ts-expect-error type issues with Record and mixed types\n e,\n li(t),\n 0,\n r,\n n\n );\n return i === k ? r : i;\n}\nfunction di(e, t, r, n, i, o) {\n var s = t === k;\n if (n === r.length) {\n var a = s ? i : t, u = o(a);\n return u === a ? t : u;\n }\n if (!s && !Dt(t))\n throw new TypeError(\"Cannot update within non-data-structure value in path [\" + Array.from(r).slice(0, n).map(be) + \"]: \" + t);\n var c = r[n], f = s ? k : pi(t, c, k), h = di(\n f === k ? e : St(f),\n // @ts-expect-error mixed type\n f,\n r,\n n + 1,\n i,\n o\n );\n return h === f ? t : h === k ? Uo(t, c) : Wo(s ? e ? yt() : {} : t, c, h);\n}\nfunction Ko(e, t) {\n return ae(e, t, function() {\n return k;\n });\n}\nfunction Hr(e) {\n return Ko(this, e);\n}\nvar _i = \"@@__IMMUTABLE_LIST__@@\";\nfunction gi(e) {\n return !!(e && // @ts-expect-error: maybeList is typed as `{}`, need to change in 6.0 to `maybeList && typeof maybeList === 'object' && IS_LIST_SYMBOL in maybeList`\n e[_i]);\n}\nvar Qt = /* @__PURE__ */ (function(e) {\n function t(r) {\n var n = Be();\n if (r == null)\n return n;\n if (gi(r))\n return r;\n var i = e(r), o = i.size;\n return o === 0 ? n : (it(o), o > 0 && o < ot ? Oe(0, o, L, null, new $t(i.toArray())) : n.withMutations(function(s) {\n s.setSize(o), i.forEach(function(a, u) {\n return s.set(u, a);\n });\n }));\n }\n return e && (t.__proto__ = e), t.prototype = Object.create(e && e.prototype), t.prototype.constructor = t, t.of = function() {\n return this(arguments);\n }, t.prototype.toString = function() {\n return this.__toString(\"List [\", \"]\");\n }, t.prototype.get = function(n, i) {\n if (n = Tt(this, n), n >= 0 && n < this.size) {\n n += this._origin;\n var o = vi(this, n);\n return o && o.array[n & Q];\n }\n return i;\n }, t.prototype.set = function(n, i) {\n return Ho(this, n, i);\n }, t.prototype.remove = function(n) {\n return this.has(n) ? n === 0 ? this.shift() : n === this.size - 1 ? this.pop() : this.splice(n, 1) : this;\n }, t.prototype.insert = function(n, i) {\n return this.splice(n, 0, i);\n }, t.prototype.clear = function() {\n return this.size === 0 ? this : this.__ownerID ? (this.size = this._origin = this._capacity = 0, this._level = L, this._root = this._tail = this.__hash = void 0, this.__altered = !0, this) : Be();\n }, t.prototype.push = function() {\n var n = arguments, i = this.size;\n return this.withMutations(function(o) {\n kt(o, 0, i + n.length);\n for (var s = 0; s < n.length; s++)\n o.set(i + s, n[s]);\n });\n }, t.prototype.pop = function() {\n return kt(this, 0, -1);\n }, t.prototype.unshift = function() {\n var n = arguments;\n return this.withMutations(function(i) {\n kt(i, -n.length);\n for (var o = 0; o < n.length; o++)\n i.set(o, n[o]);\n });\n }, t.prototype.shift = function() {\n return kt(this, 1);\n }, t.prototype.shuffle = function(n) {\n return n === void 0 && (n = Math.random), this.withMutations(function(i) {\n for (var o = i.size, s, a; o; )\n s = Math.floor(n() * o--), a = i.get(s), i.set(s, i.get(o)), i.set(o, a);\n });\n }, t.prototype.concat = function() {\n for (var n = arguments, i = [], o = 0; o < arguments.length; o++) {\n var s = n[o], a = e(\n typeof s != \"string\" && Fn(s) ? s : [s]\n );\n a.size !== 0 && i.push(a);\n }\n return i.length === 0 ? this : this.size === 0 && !this.__ownerID && i.length === 1 ? this.constructor(i[0]) : this.withMutations(function(u) {\n i.forEach(function(c) {\n return c.forEach(function(f) {\n return u.push(f);\n });\n });\n });\n }, t.prototype.setSize = function(n) {\n return kt(this, 0, n);\n }, t.prototype.map = function(n, i) {\n var o = this;\n return this.withMutations(function(s) {\n for (var a = 0; a < o.size; a++)\n s.set(a, n.call(i, s.get(a), a, o));\n });\n }, t.prototype.slice = function(n, i) {\n var o = this.size;\n return Ge(n, i, o) ? this : kt(\n this,\n Ae(n, o),\n Ze(i, o)\n );\n }, t.prototype.__iterator = function(n, i) {\n var o = i ? this.size : 0, s = yn(this, i);\n return new M(function() {\n var a = s();\n return a === ye ? tt() : F(n, i ? --o : o++, a);\n });\n }, t.prototype.__iterate = function(n, i) {\n for (var o = i ? this.size : 0, s = yn(this, i), a; (a = s()) !== ye && n(a, i ? --o : o++, this) !== !1; )\n ;\n return o;\n }, t.prototype.__ensureOwner = function(n) {\n return n === this.__ownerID ? this : n ? Oe(\n this._origin,\n this._capacity,\n this._level,\n this._root,\n this._tail,\n n,\n this.__hash\n ) : this.size === 0 ? Be() : (this.__ownerID = n, this.__altered = !1, this);\n }, t;\n})(jt);\nQt.isList = gi;\nvar W = Qt.prototype;\nW[_i] = !0;\nW[ke] = W.remove;\nW.merge = W.concat;\nW.setIn = Pr;\nW.deleteIn = W.removeIn = Hr;\nW.update = Fr;\nW.updateIn = jr;\nW.mergeIn = Nr;\nW.mergeDeepIn = qr;\nW.withMutations = ze;\nW.wasAltered = Br;\nW.asImmutable = Me;\nW[\"@@transducer/init\"] = W.asMutable = $e;\nW[\"@@transducer/step\"] = function(e, t) {\n return e.push(t);\n};\nW[\"@@transducer/result\"] = function(e) {\n return e.asImmutable();\n};\nvar $t = function(t, r) {\n this.array = t, this.ownerID = r;\n};\n$t.prototype.removeBefore = function(t, r, n) {\n if ((n & (1 << r + L) - 1) === 0 || this.array.length === 0)\n return this;\n var i = n >>> r & Q;\n if (i >= this.array.length)\n return new $t([], t);\n var o = i === 0, s;\n if (r > 0) {\n var a = this.array[i];\n if (s = a && a.removeBefore(t, r - L, n), s === a && o)\n return this;\n }\n if (o && !s)\n return this;\n var u = te(this, t);\n if (!o)\n for (var c = 0; c < i; c++)\n u.array[c] = void 0;\n return s && (u.array[i] = s), u;\n};\n$t.prototype.removeAfter = function(t, r, n) {\n if (n === (r ? 1 << r + L : ot) || this.array.length === 0)\n return this;\n var i = n - 1 >>> r & Q;\n if (i >= this.array.length)\n return this;\n var o;\n if (r > 0) {\n var s = this.array[i];\n if (o = s && s.removeAfter(t, r - L, n), o === s && i === this.array.length - 1)\n return this;\n }\n var a = te(this, t);\n return a.array.splice(i + 1), o && (a.array[i] = o), a;\n};\nvar ye = {};\nfunction yn(e, t) {\n var r = e._origin, n = e._capacity, i = Ee(n), o = e._tail;\n return s(e._root, e._level, 0);\n function s(c, f, h) {\n return f === 0 ? a(c, h) : u(c, f, h);\n }\n function a(c, f) {\n var h = f === i ? o && o.array : c && c.array, l = f > r ? 0 : r - f, d = n - f;\n return d > ot && (d = ot), function() {\n if (l === d)\n return ye;\n var p = t ? --d : l++;\n return h && h[p];\n };\n }\n function u(c, f, h) {\n var l, d = c && c.array, p = h > r ? 0 : r - h >> f, _ = (n - h >> f) + 1;\n return _ > ot && (_ = ot), function() {\n for (; ; ) {\n if (l) {\n var m = l();\n if (m !== ye)\n return m;\n l = null;\n }\n if (p === _)\n return ye;\n var R = t ? --_ : p++;\n l = s(\n d && d[R],\n f - L,\n h + (R << f)\n );\n }\n };\n }\n}\nfunction Oe(e, t, r, n, i, o, s) {\n var a = Object.create(W);\n return a.size = t - e, a._origin = e, a._capacity = t, a._level = r, a._root = n, a._tail = i, a.__ownerID = o, a.__hash = s, a.__altered = !1, a;\n}\nfunction Be() {\n return Oe(0, 0, L);\n}\nfunction Ho(e, t, r) {\n if (t = Tt(e, t), t !== t)\n return e;\n if (t >= e.size || t < 0)\n return e.withMutations(function(s) {\n t < 0 ? kt(s, t).set(0, r) : kt(s, 0, t + 1).set(t, r);\n });\n t += e._origin;\n var n = e._tail, i = e._root, o = _r();\n return t >= Ee(e._capacity) ? n = mr(n, e.__ownerID, 0, t, r, o) : i = mr(\n i,\n e.__ownerID,\n e._level,\n t,\n r,\n o\n ), o.value ? e.__ownerID ? (e._root = i, e._tail = n, e.__hash = void 0, e.__altered = !0, e) : Oe(e._origin, e._capacity, e._level, i, n) : e;\n}\nfunction mr(e, t, r, n, i, o) {\n var s = n >>> r & Q, a = e && s < e.array.length;\n if (!a && i === void 0)\n return e;\n var u;\n if (r > 0) {\n var c = e && e.array[s], f = mr(\n c,\n t,\n r - L,\n n,\n i,\n o\n );\n return f === c ? e : (u = te(e, t), u.array[s] = f, u);\n }\n return a && e.array[s] === i ? e : (o && ht(o), u = te(e, t), i === void 0 && s === u.array.length - 1 ? u.array.pop() : u.array[s] = i, u);\n}\nfunction te(e, t) {\n return t && e && t === e.ownerID ? e : new $t(e ? e.array.slice() : [], t);\n}\nfunction vi(e, t) {\n if (t >= Ee(e._capacity))\n return e._tail;\n if (t < 1 << e._level + L) {\n for (var r = e._root, n = e._level; r && n > 0; )\n r = r.array[t >>> n & Q], n -= L;\n return r;\n }\n}\nfunction kt(e, t, r) {\n t !== void 0 && (t |= 0), r !== void 0 && (r |= 0);\n var n = e.__ownerID || new Er(), i = e._origin, o = e._capacity, s = i + t, a = r === void 0 ? o : r < 0 ? o + r : i + r;\n if (s === i && a === o)\n return e;\n if (s >= a)\n return e.clear();\n for (var u = e._level, c = e._root, f = 0; s + f < 0; )\n c = new $t(\n c && c.array.length ? [void 0, c] : [],\n n\n ), u += L, f += 1 << u;\n f && (s += f, i += f, a += f, o += f);\n for (var h = Ee(o), l = Ee(a); l >= 1 << u + L; )\n c = new $t(\n c && c.array.length ? [c] : [],\n n\n ), u += L;\n var d = e._tail, p = l < h ? vi(e, a - 1) : l > h ? new $t([], n) : d;\n if (d && l > h && s < o && d.array.length) {\n c = te(c, n);\n for (var _ = c, m = u; m > L; m -= L) {\n var R = h >>> m & Q;\n _ = _.array[R] = te(_.array[R], n);\n }\n _.array[h >>> L & Q] = d;\n }\n if (a < o && (p = p && p.removeAfter(n, 0, a)), s >= l)\n s -= l, a -= l, u = L, c = null, p = p && p.removeBefore(n, 0, s);\n else if (s > i || l < h) {\n for (f = 0; c; ) {\n var O = s >>> u & Q;\n if (O !== l >>> u & Q)\n break;\n O && (f += (1 << u) * O), u -= L, c = c.array[O];\n }\n c && s > i && (c = c.removeBefore(n, u, s - f)), c && l < h && (c = c.removeAfter(\n n,\n u,\n l - f\n )), f && (s -= f, a -= f);\n }\n return e.__ownerID ? (e.size = a - s, e._origin = s, e._capacity = a, e._level = u, e._root = c, e._tail = p, e.__hash = void 0, e.__altered = !0, e) : Oe(s, a, u, c, p);\n}\nfunction Ee(e) {\n return e < ot ? 0 : e - 1 >>> L << L;\n}\nfunction yi(e) {\n return xr(e) && mt(e);\n}\nvar It = /* @__PURE__ */ (function(e) {\n function t(r) {\n return r == null ? pe() : yi(r) ? r : pe().withMutations(function(n) {\n var i = pt(r);\n it(i.size), i.forEach(function(o, s) {\n return n.set(s, o);\n });\n });\n }\n return e && (t.__proto__ = e), t.prototype = Object.create(e && e.prototype), t.prototype.constructor = t, t.of = function() {\n return this(arguments);\n }, t.prototype.toString = function() {\n return this.__toString(\"OrderedMap {\", \"}\");\n }, t.prototype.get = function(n, i) {\n var o = this._map.get(n);\n return o !== void 0 ? this._list.get(o)[1] : i;\n }, t.prototype.clear = function() {\n return this.size === 0 ? this : this.__ownerID ? (this.size = 0, this._map.clear(), this._list.clear(), this.__altered = !0, this) : pe();\n }, t.prototype.set = function(n, i) {\n return Sn(this, n, i);\n }, t.prototype.remove = function(n) {\n return Sn(this, n, k);\n }, t.prototype.__iterate = function(n, i) {\n var o = this;\n return this._list.__iterate(\n function(s) {\n return s && n(s[1], s[0], o);\n },\n i\n );\n }, t.prototype.__iterator = function(n, i) {\n return this._list.fromEntrySeq().__iterator(n, i);\n }, t.prototype.__ensureOwner = function(n) {\n if (n === this.__ownerID)\n return this;\n var i = this._map.__ensureOwner(n), o = this._list.__ensureOwner(n);\n return n ? Vr(i, o, n, this.__hash) : this.size === 0 ? pe() : (this.__ownerID = n, this.__altered = !1, this._map = i, this._list = o, this);\n }, t;\n})(Ct);\nIt.isOrderedMap = yi;\nIt.prototype[Lt] = !0;\nIt.prototype[ke] = It.prototype.remove;\nfunction Vr(e, t, r, n) {\n var i = Object.create(It.prototype);\n return i.size = e ? e.size : 0, i._map = e, i._list = t, i.__ownerID = r, i.__hash = n, i.__altered = !1, i;\n}\nvar mn;\nfunction pe() {\n return mn || (mn = Vr(yt(), Be()));\n}\nfunction Sn(e, t, r) {\n var n = e._map, i = e._list, o = n.get(t), s = o !== void 0, a, u;\n if (r === k) {\n if (!s)\n return e;\n i.size >= ot && i.size >= n.size * 2 ? (u = i.filter(function(c, f) {\n return c !== void 0 && o !== f;\n }), a = u.toKeyedSeq().map(function(c) {\n return c[0];\n }).flip().toMap(), e.__ownerID && (a.__ownerID = u.__ownerID = e.__ownerID)) : (a = n.remove(t), u = o === i.size - 1 ? i.pop() : i.set(o, void 0));\n } else if (s) {\n if (r === i.get(o)[1])\n return e;\n a = n, u = i.set(o, [t, r]);\n } else\n a = n.set(t, i.size), u = i.set(i.size, [t, r]);\n return e.__ownerID ? (e.size = a.size, e._map = a, e._list = u, e.__hash = void 0, e.__altered = !0, e) : Vr(a, u);\n}\nvar mi = \"@@__IMMUTABLE_STACK__@@\";\nfunction Sr(e) {\n return !!(e && // @ts-expect-error: maybeStack is typed as `{}`, need to change in 6.0 to `maybeStack && typeof maybeStack === 'object' && MAYBE_STACK_SYMBOL in maybeStack`\n e[mi]);\n}\nvar Yr = /* @__PURE__ */ (function(e) {\n function t(r) {\n return r == null ? Fe() : Sr(r) ? r : Fe().pushAll(r);\n }\n return e && (t.__proto__ = e), t.prototype = Object.create(e && e.prototype), t.prototype.constructor = t, t.of = function() {\n return this(arguments);\n }, t.prototype.toString = function() {\n return this.__toString(\"Stack [\", \"]\");\n }, t.prototype.get = function(n, i) {\n var o = this._head;\n for (n = Tt(this, n); o && n--; )\n o = o.next;\n return o ? o.value : i;\n }, t.prototype.peek = function() {\n return this._head && this._head.value;\n }, t.prototype.push = function() {\n var n = arguments;\n if (arguments.length === 0)\n return this;\n for (var i = this.size + arguments.length, o = this._head, s = arguments.length - 1; s >= 0; s--)\n o = {\n value: n[s],\n next: o\n };\n return this.__ownerID ? (this.size = i, this._head = o, this.__hash = void 0, this.__altered = !0, this) : de(i, o);\n }, t.prototype.pushAll = function(n) {\n if (n = e(n), n.size === 0)\n return this;\n if (this.size === 0 && Sr(n))\n return n;\n it(n.size);\n var i = this.size, o = this._head;\n return n.__iterate(\n function(s) {\n i++, o = {\n value: s,\n next: o\n };\n },\n /* reverse */\n !0\n ), this.__ownerID ? (this.size = i, this._head = o, this.__hash = void 0, this.__altered = !0, this) : de(i, o);\n }, t.prototype.pop = function() {\n return this.slice(1);\n }, t.prototype.clear = function() {\n return this.size === 0 ? this : this.__ownerID ? (this.size = 0, this._head = void 0, this.__hash = void 0, this.__altered = !0, this) : Fe();\n }, t.prototype.slice = function(n, i) {\n if (Ge(n, i, this.size))\n return this;\n var o = Ae(n, this.size), s = Ze(i, this.size);\n if (s !== this.size)\n return e.prototype.slice.call(this, n, i);\n for (var a = this.size - o, u = this._head; o--; )\n u = u.next;\n return this.__ownerID ? (this.size = a, this._head = u, this.__hash = void 0, this.__altered = !0, this) : de(a, u);\n }, t.prototype.__ensureOwner = function(n) {\n return n === this.__ownerID ? this : n ? de(this.size, this._head, n, this.__hash) : this.size === 0 ? Fe() : (this.__ownerID = n, this.__altered = !1, this);\n }, t.prototype.__iterate = function(n, i) {\n var o = this;\n if (i)\n return new Jt(this.toArray()).__iterate(\n function(u, c) {\n return n(u, c, o);\n },\n i\n );\n for (var s = 0, a = this._head; a && n(a.value, s++, this) !== !1; )\n a = a.next;\n return s;\n }, t.prototype.__iterator = function(n, i) {\n if (i)\n return new Jt(this.toArray()).__iterator(n, i);\n var o = 0, s = this._head;\n return new M(function() {\n if (s) {\n var a = s.value;\n return s = s.next, F(n, o++, a);\n }\n return tt();\n });\n }, t;\n})(jt);\nYr.isStack = Sr;\nvar et = Yr.prototype;\net[mi] = !0;\net.shift = et.pop;\net.unshift = et.push;\net.unshiftAll = et.pushAll;\net.withMutations = ze;\net.wasAltered = Br;\net.asImmutable = Me;\net[\"@@transducer/init\"] = et.asMutable = $e;\net[\"@@transducer/step\"] = function(e, t) {\n return e.unshift(t);\n};\net[\"@@transducer/result\"] = function(e) {\n return e.asImmutable();\n};\nfunction de(e, t, r, n) {\n var i = Object.create(et);\n return i.size = e, i._head = t, i.__ownerID = r, i.__hash = n, i.__altered = !1, i;\n}\nvar wn;\nfunction Fe() {\n return wn || (wn = de(0));\n}\nfunction bn(e, t, r, n, i, o) {\n return it(e.size), e.__iterate(function(s, a, u) {\n i ? (i = !1, r = s) : r = t.call(n, r, s, a, u);\n }, o), r;\n}\nfunction Vo(e, t) {\n return t;\n}\nfunction Yo(e, t) {\n return [t, e];\n}\nfunction fr(e) {\n return function() {\n for (var t = [], r = arguments.length; r--; ) t[r] = arguments[r];\n return !e.apply(this, t);\n };\n}\nfunction On(e) {\n return function() {\n for (var t = [], r = arguments.length; r--; ) t[r] = arguments[r];\n return -e.apply(this, t);\n };\n}\nfunction En(e, t) {\n return e < t ? 1 : e > t ? -1 : 0;\n}\nfunction Si(e, t) {\n if (e === t)\n return !0;\n if (!at(t) || // @ts-expect-error size should exists on Collection\n e.size !== void 0 && t.size !== void 0 && e.size !== t.size || // @ts-expect-error __hash exists on Collection\n e.__hash !== void 0 && // @ts-expect-error __hash exists on Collection\n t.__hash !== void 0 && // @ts-expect-error __hash exists on Collection\n e.__hash !== t.__hash || P(e) !== P(t) || lt(e) !== lt(t) || // @ts-expect-error Range extends Collection, which implements [Symbol.iterator], so it is valid\n mt(e) !== mt(t))\n return !1;\n if (e.size === 0 && t.size === 0)\n return !0;\n var r = !Or(e);\n if (mt(e)) {\n var n = e.entries();\n return t.every(function(u, c) {\n var f = n.next().value;\n return f && st(f[1], u) && (r || st(f[0], c));\n }) && n.next().done;\n }\n var i = !1;\n if (e.size === void 0)\n if (t.size === void 0)\n typeof e.cacheResult == \"function\" && e.cacheResult();\n else {\n i = !0;\n var o = e;\n e = t, t = o;\n }\n var s = !0, a = (\n // @ts-expect-error b is Range | Repeat | Collection<unknown, unknown> as it may have been flipped, and __iterate is valid\n t.__iterate(function(u, c) {\n if (r ? (\n // @ts-expect-error has exists on Collection\n !e.has(u)\n ) : i ? (\n // @ts-expect-error type of `get` does not \"catch\" the version with `notSetValue`\n !st(u, e.get(c, k))\n ) : (\n // @ts-expect-error type of `get` does not \"catch\" the version with `notSetValue`\n !st(e.get(c, k), u)\n ))\n return s = !1, !1;\n })\n );\n return s && // @ts-expect-error size should exists on Collection\n e.size === a;\n}\nvar Jo = /* @__PURE__ */ (function(e) {\n function t(r, n, i) {\n if (i === void 0 && (i = 1), !(this instanceof t))\n return new t(r, n, i);\n if (ve(i !== 0, \"Cannot step a Range by 0\"), ve(\n r !== void 0,\n \"You must define a start value when using Range\"\n ), ve(\n n !== void 0,\n \"You must define an end value when using Range\"\n ), i = Math.abs(i), n < r && (i = -i), this._start = r, this._end = n, this._step = i, this.size = Math.max(0, Math.ceil((n - r) / i - 1) + 1), this.size === 0) {\n if (hr)\n return hr;\n hr = this;\n }\n }\n return e && (t.__proto__ = e), t.prototype = Object.create(e && e.prototype), t.prototype.constructor = t, t.prototype.toString = function() {\n return this.size === 0 ? \"Range []\" : \"Range [ \" + this._start + \"...\" + this._end + (this._step !== 1 ? \" by \" + this._step : \"\") + \" ]\";\n }, t.prototype.get = function(n, i) {\n return this.has(n) ? this._start + Tt(this, n) * this._step : i;\n }, t.prototype.includes = function(n) {\n var i = (n - this._start) / this._step;\n return i >= 0 && i < this.size && i === Math.floor(i);\n }, t.prototype.slice = function(n, i) {\n return Ge(n, i, this.size) ? this : (n = Ae(n, this.size), i = Ze(i, this.size), i <= n ? new t(0, 0) : new t(\n this.get(n, this._end),\n this.get(i, this._end),\n this._step\n ));\n }, t.prototype.indexOf = function(n) {\n var i = n - this._start;\n if (i % this._step === 0) {\n var o = i / this._step;\n if (o >= 0 && o < this.size)\n return o;\n }\n return -1;\n }, t.prototype.lastIndexOf = function(n) {\n return this.indexOf(n);\n }, t.prototype.__iterate = function(n, i) {\n for (var o = this.size, s = this._step, a = i ? this._start + (o - 1) * s : this._start, u = 0; u !== o && n(a, i ? o - ++u : u++, this) !== !1; )\n a += i ? -s : s;\n return u;\n }, t.prototype.__iterator = function(n, i) {\n var o = this.size, s = this._step, a = i ? this._start + (o - 1) * s : this._start, u = 0;\n return new M(function() {\n if (u === o)\n return tt();\n var c = a;\n return a += i ? -s : s, F(n, i ? o - ++u : u++, c);\n });\n }, t.prototype.equals = function(n) {\n return n instanceof t ? this._start === n._start && this._end === n._end && this._step === n._step : Si(this, n);\n }, t;\n})(dt), hr, wi = \"@@__IMMUTABLE_SET__@@\";\nfunction Jr(e) {\n return !!(e && // @ts-expect-error: maybeSet is typed as `{}`, need to change in 6.0 to `maybeSeq && typeof maybeSet === 'object' && MAYBE_SET_SYMBOL in maybeSet`\n e[wi]);\n}\nvar tr = /* @__PURE__ */ (function(e) {\n function t(r) {\n return r == null ? _e() : Jr(r) && !mt(r) ? r : _e().withMutations(function(n) {\n var i = e(r);\n it(i.size), i.forEach(function(o) {\n return n.add(o);\n });\n });\n }\n return e && (t.__proto__ = e), t.prototype = Object.create(e && e.prototype), t.prototype.constructor = t, t.of = function() {\n return this(arguments);\n }, t.fromKeys = function(n) {\n return this(pt(n).keySeq());\n }, t.intersect = function(n) {\n return n = G(n).toArray(), n.length ? V.intersect.apply(t(n.pop()), n) : _e();\n }, t.union = function(n) {\n return n = G(n).toArray(), n.length ? V.union.apply(t(n.pop()), n) : _e();\n }, t.prototype.toString = function() {\n return this.__toString(\"Set {\", \"}\");\n }, t.prototype.has = function(n) {\n return this._map.has(n);\n }, t.prototype.add = function(n) {\n return je(this, this._map.set(n, n));\n }, t.prototype.remove = function(n) {\n return je(this, this._map.remove(n));\n }, t.prototype.clear = function() {\n return je(this, this._map.clear());\n }, t.prototype.map = function(n, i) {\n var o = this, s = !1, a = je(\n this,\n this._map.mapEntries(function(u) {\n var c = u[1], f = n.call(i, c, c, o);\n return f !== c && (s = !0), [f, f];\n }, i)\n );\n return s ? a : this;\n }, t.prototype.union = function() {\n for (var n = [], i = arguments.length; i--; ) n[i] = arguments[i];\n return n = n.filter(function(o) {\n return o.size !== 0;\n }), n.length === 0 ? this : this.size === 0 && !this.__ownerID && n.length === 1 ? this.constructor(n[0]) : this.withMutations(function(o) {\n for (var s = 0; s < n.length; s++)\n typeof n[s] == \"string\" ? o.add(n[s]) : e(n[s]).forEach(function(a) {\n return o.add(a);\n });\n });\n }, t.prototype.intersect = function() {\n for (var n = [], i = arguments.length; i--; ) n[i] = arguments[i];\n if (n.length === 0)\n return this;\n n = n.map(function(s) {\n return e(s);\n });\n var o = [];\n return this.forEach(function(s) {\n n.every(function(a) {\n return a.includes(s);\n }) || o.push(s);\n }), this.withMutations(function(s) {\n o.forEach(function(a) {\n s.remove(a);\n });\n });\n }, t.prototype.subtract = function() {\n for (var n = [], i = arguments.length; i--; ) n[i] = arguments[i];\n if (n.length === 0)\n return this;\n n = n.map(function(s) {\n return e(s);\n });\n var o = [];\n return this.forEach(function(s) {\n n.some(function(a) {\n return a.includes(s);\n }) && o.push(s);\n }), this.withMutations(function(s) {\n o.forEach(function(a) {\n s.remove(a);\n });\n });\n }, t.prototype.sort = function(n) {\n return Re(Gt(this, n));\n }, t.prototype.sortBy = function(n, i) {\n return Re(Gt(this, i, n));\n }, t.prototype.wasAltered = function() {\n return this._map.wasAltered();\n }, t.prototype.__iterate = function(n, i) {\n var o = this;\n return this._map.__iterate(function(s) {\n return n(s, s, o);\n }, i);\n }, t.prototype.__iterator = function(n, i) {\n return this._map.__iterator(n, i);\n }, t.prototype.__ensureOwner = function(n) {\n if (n === this.__ownerID)\n return this;\n var i = this._map.__ensureOwner(n);\n return n ? this.__make(i, n) : this.size === 0 ? this.__empty() : (this.__ownerID = n, this._map = i, this);\n }, t;\n})(ne);\ntr.isSet = Jr;\nvar V = tr.prototype;\nV[wi] = !0;\nV[ke] = V.remove;\nV.merge = V.concat = V.union;\nV.withMutations = ze;\nV.asImmutable = Me;\nV[\"@@transducer/init\"] = V.asMutable = $e;\nV[\"@@transducer/step\"] = function(e, t) {\n return e.add(t);\n};\nV[\"@@transducer/result\"] = function(e) {\n return e.asImmutable();\n};\nV.__empty = _e;\nV.__make = bi;\nfunction je(e, t) {\n return e.__ownerID ? (e.size = t.size, e._map = t, e) : t === e._map ? e : t.size === 0 ? e.__empty() : e.__make(t);\n}\nfunction bi(e, t) {\n var r = Object.create(V);\n return r.size = e ? e.size : 0, r._map = e, r.__ownerID = t, r;\n}\nvar Rn;\nfunction _e() {\n return Rn || (Rn = bi(yt()));\n}\nfunction Oi(e, t, r) {\n for (var n = li(t), i = 0; i !== n.length; )\n if (e = pi(e, n[i++], k), e === k)\n return r;\n return e;\n}\nfunction Ei(e, t) {\n return Oi(this, e, t);\n}\nfunction Go(e, t) {\n return Oi(e, t, k) !== k;\n}\nfunction Zo(e) {\n return Go(this, e);\n}\nfunction Ri() {\n it(this.size);\n var e = {};\n return this.__iterate(function(t, r) {\n e[r] = t;\n }), e;\n}\nfunction Ve(e) {\n if (!e || typeof e != \"object\")\n return e;\n if (!at(e)) {\n if (!Dt(e))\n return e;\n e = rt(e);\n }\n if (P(e)) {\n var t = {};\n return e.__iterate(function(n, i) {\n t[i] = Ve(n);\n }), t;\n }\n var r = [];\n return e.__iterate(function(n) {\n r.push(Ve(n));\n }), r;\n}\nfunction Xo(e) {\n if (e.size === 1 / 0)\n return 0;\n var t = mt(e), r = P(e), n = t ? 1 : 0;\n return e.__iterate(r ? t ? function(i, o) {\n n = 31 * n + In(nt(i), nt(o)) | 0;\n } : function(i, o) {\n n = n + In(nt(i), nt(o)) | 0;\n } : t ? function(i) {\n n = 31 * n + nt(i) | 0;\n } : function(i) {\n n = n + nt(i) | 0;\n }), Qo(e.size, n);\n}\nfunction Qo(e, t) {\n return t = le(t, 3432918353), t = le(t << 15 | t >>> -15, 461845907), t = le(t << 13 | t >>> -13, 5), t = (t + 3864292196 | 0) ^ e, t = le(t ^ t >>> 16, 2246822507), t = le(t ^ t >>> 13, 3266489909), t = Xe(t ^ t >>> 16), t;\n}\nfunction In(e, t) {\n return e ^ t + 2654435769 + (e << 6) + (e >> 2) | 0;\n}\nfunction xt(e, t) {\n var r = function(n) {\n e.prototype[n] = t[n];\n };\n return Object.keys(t).forEach(r), Object.getOwnPropertySymbols && Object.getOwnPropertySymbols(t).forEach(r), e;\n}\nG.Iterator = M;\nxt(G, {\n // ### Conversion to other types\n toArray: function() {\n it(this.size);\n var t = new Array(this.size || 0), r = P(this), n = 0;\n return this.__iterate(function(i, o) {\n t[n++] = r ? [o, i] : i;\n }), t;\n },\n toIndexedSeq: function() {\n return new Yn(this);\n },\n toJS: function() {\n return Ve(this);\n },\n toKeyedSeq: function() {\n return new Qe(this, !0);\n },\n toMap: function() {\n return Ct(this.toKeyedSeq());\n },\n toObject: Ri,\n toOrderedMap: function() {\n return It(this.toKeyedSeq());\n },\n toOrderedSet: function() {\n return Re(P(this) ? this.valueSeq() : this);\n },\n toSet: function() {\n return tr(P(this) ? this.valueSeq() : this);\n },\n toSetSeq: function() {\n return new Jn(this);\n },\n toSeq: function() {\n return lt(this) ? this.toIndexedSeq() : P(this) ? this.toKeyedSeq() : this.toSetSeq();\n },\n toStack: function() {\n return Yr(P(this) ? this.valueSeq() : this);\n },\n toList: function() {\n return Qt(P(this) ? this.valueSeq() : this);\n },\n // ### Common JavaScript methods and properties\n toString: function() {\n return \"[Collection]\";\n },\n __toString: function(t, r) {\n return this.size === 0 ? t + r : t + \" \" + this.toSeq().map(this.__toStringMapper).join(\", \") + \" \" + r;\n },\n // ### ES6 Collection methods (ES6 Array and Map)\n concat: function() {\n for (var t = [], r = arguments.length; r--; ) t[r] = arguments[r];\n return T(this, Ro(this, t));\n },\n includes: function(t) {\n return this.some(function(r) {\n return st(r, t);\n });\n },\n entries: function() {\n return this.__iterator(ct);\n },\n every: function(t, r) {\n it(this.size);\n var n = !0;\n return this.__iterate(function(i, o, s) {\n if (!t.call(r, i, o, s))\n return n = !1, !1;\n }), n;\n },\n filter: function(t, r) {\n return T(this, Qn(this, t, r, !0));\n },\n partition: function(t, r) {\n return bo(this, t, r);\n },\n find: function(t, r, n) {\n var i = this.findEntry(t, r);\n return i ? i[1] : n;\n },\n forEach: function(t, r) {\n return it(this.size), this.__iterate(r ? t.bind(r) : t);\n },\n join: function(t) {\n it(this.size), t = t !== void 0 ? \"\" + t : \",\";\n var r = \"\", n = !0;\n return this.__iterate(function(i) {\n n ? n = !1 : r += t, r += i != null ? i.toString() : \"\";\n }), r;\n },\n keys: function() {\n return this.__iterator(ie);\n },\n map: function(t, r) {\n return T(this, Xn(this, t, r));\n },\n reduce: function(t, r, n) {\n return bn(\n this,\n t,\n r,\n n,\n arguments.length < 2,\n !1\n );\n },\n reduceRight: function(t, r, n) {\n return bn(\n this,\n t,\n r,\n n,\n arguments.length < 2,\n !0\n );\n },\n reverse: function() {\n return T(this, $r(this, !0));\n },\n slice: function(t, r) {\n return T(this, zr(this, t, r, !0));\n },\n some: function(t, r) {\n it(this.size);\n var n = !1;\n return this.__iterate(function(i, o, s) {\n if (t.call(r, i, o, s))\n return n = !0, !1;\n }), n;\n },\n sort: function(t) {\n return T(this, Gt(this, t));\n },\n values: function() {\n return this.__iterator(ut);\n },\n // ### More sequential methods\n butLast: function() {\n return this.slice(0, -1);\n },\n isEmpty: function() {\n return this.size !== void 0 ? this.size === 0 : !this.some(function() {\n return !0;\n });\n },\n count: function(t, r) {\n return Yt(\n t ? this.toSeq().filter(t, r) : this\n );\n },\n countBy: function(t, r) {\n return So(this, t, r);\n },\n equals: function(t) {\n return Si(this, t);\n },\n entrySeq: function() {\n var t = this;\n if (t._cache)\n return new Jt(t._cache);\n var r = t.toSeq().map(Yo).toIndexedSeq();\n return r.fromEntrySeq = function() {\n return t.toSeq();\n }, r;\n },\n filterNot: function(t, r) {\n return this.filter(fr(t), r);\n },\n findEntry: function(t, r, n) {\n var i = n;\n return this.__iterate(function(o, s, a) {\n if (t.call(r, o, s, a))\n return i = [s, o], !1;\n }), i;\n },\n findKey: function(t, r) {\n var n = this.findEntry(t, r);\n return n && n[0];\n },\n findLast: function(t, r, n) {\n return this.toKeyedSeq().reverse().find(t, r, n);\n },\n findLastEntry: function(t, r, n) {\n return this.toKeyedSeq().reverse().findEntry(t, r, n);\n },\n findLastKey: function(t, r) {\n return this.toKeyedSeq().reverse().findKey(t, r);\n },\n first: function(t) {\n return this.find(jn, null, t);\n },\n flatMap: function(t, r) {\n return T(this, Io(this, t, r));\n },\n flatten: function(t) {\n return T(this, ei(this, t, !0));\n },\n fromEntrySeq: function() {\n return new Gn(this);\n },\n get: function(t, r) {\n return this.find(function(n, i) {\n return st(i, t);\n }, void 0, r);\n },\n getIn: Ei,\n groupBy: function(t, r) {\n return wo(this, t, r);\n },\n has: function(t) {\n return this.get(t, k) !== k;\n },\n hasIn: Zo,\n isSubset: function(t) {\n return t = typeof t.includes == \"function\" ? t : G(t), this.every(function(r) {\n return t.includes(r);\n });\n },\n isSuperset: function(t) {\n return t = typeof t.isSubset == \"function\" ? t : G(t), t.isSubset(this);\n },\n keyOf: function(t) {\n return this.findKey(function(r) {\n return st(r, t);\n });\n },\n keySeq: function() {\n return this.toSeq().map(Vo).toIndexedSeq();\n },\n last: function(t) {\n return this.toSeq().reverse().first(t);\n },\n lastKeyOf: function(t) {\n return this.toKeyedSeq().reverse().keyOf(t);\n },\n max: function(t) {\n return Ne(this, t);\n },\n maxBy: function(t, r) {\n return Ne(this, r, t);\n },\n min: function(t) {\n return Ne(\n this,\n t ? On(t) : En\n );\n },\n minBy: function(t, r) {\n return Ne(\n this,\n r ? On(r) : En,\n t\n );\n },\n rest: function() {\n return this.slice(1);\n },\n skip: function(t) {\n return t === 0 ? this : this.slice(Math.max(0, t));\n },\n skipLast: function(t) {\n return t === 0 ? this : this.slice(0, -Math.max(0, t));\n },\n skipWhile: function(t, r) {\n return T(this, ti(this, t, r, !0));\n },\n skipUntil: function(t, r) {\n return this.skipWhile(fr(t), r);\n },\n sortBy: function(t, r) {\n return T(this, Gt(this, r, t));\n },\n take: function(t) {\n return this.slice(0, Math.max(0, t));\n },\n takeLast: function(t) {\n return this.slice(-Math.max(0, t));\n },\n takeWhile: function(t, r) {\n return T(this, Oo(this, t, r));\n },\n takeUntil: function(t, r) {\n return this.takeWhile(fr(t), r);\n },\n update: function(t) {\n return t(this);\n },\n valueSeq: function() {\n return this.toIndexedSeq();\n },\n // ### Hashable Object\n hashCode: function() {\n return this.__hash || (this.__hash = Xo(this));\n }\n // ### Internal\n // abstract __iterate(fn, reverse)\n // abstract __iterator(type, reverse)\n});\nvar Z = G.prototype;\nZ[Nn] = !0;\nZ[Ye] = Z.values;\nZ.toJSON = Z.toArray;\nZ.__toStringMapper = be;\nZ.inspect = Z.toSource = function() {\n return this.toString();\n};\nZ.chain = Z.flatMap;\nZ.contains = Z.includes;\nxt(pt, {\n // ### More sequential methods\n flip: function() {\n return T(this, Zn(this));\n },\n mapEntries: function(t, r) {\n var n = this, i = 0;\n return T(\n this,\n this.toSeq().map(function(o, s) {\n return t.call(r, [s, o], i++, n);\n }).fromEntrySeq()\n );\n },\n mapKeys: function(t, r) {\n var n = this;\n return T(\n this,\n this.toSeq().flip().map(function(i, o) {\n return t.call(r, i, o, n);\n }).flip()\n );\n }\n});\nvar Te = pt.prototype;\nTe[Ke] = !0;\nTe[Ye] = Z.entries;\nTe.toJSON = Ri;\nTe.__toStringMapper = function(e, t) {\n return be(t) + \": \" + be(e);\n};\nxt(jt, {\n // ### Conversion to other types\n toKeyedSeq: function() {\n return new Qe(this, !1);\n },\n // ### ES6 Collection methods (ES6 Array and Map)\n filter: function(t, r) {\n return T(this, Qn(this, t, r, !1));\n },\n findIndex: function(t, r) {\n var n = this.findEntry(t, r);\n return n ? n[0] : -1;\n },\n indexOf: function(t) {\n var r = this.keyOf(t);\n return r === void 0 ? -1 : r;\n },\n lastIndexOf: function(t) {\n var r = this.lastKeyOf(t);\n return r === void 0 ? -1 : r;\n },\n reverse: function() {\n return T(this, $r(this, !1));\n },\n slice: function(t, r) {\n return T(this, zr(this, t, r, !1));\n },\n splice: function(t, r) {\n var n = arguments.length;\n if (r = Math.max(r || 0, 0), n === 0 || n === 2 && !r)\n return this;\n t = Ae(t, t < 0 ? this.count() : this.size);\n var i = this.slice(0, t);\n return T(\n this,\n n === 1 ? i : i.concat(vt(arguments, 2), this.slice(t + r))\n );\n },\n // ### More collection methods\n findLastIndex: function(t, r) {\n var n = this.findLastEntry(t, r);\n return n ? n[0] : -1;\n },\n first: function(t) {\n return this.get(0, t);\n },\n flatten: function(t) {\n return T(this, ei(this, t, !1));\n },\n get: function(t, r) {\n return t = Tt(this, t), t < 0 || this.size === 1 / 0 || this.size !== void 0 && t > this.size ? r : this.find(function(n, i) {\n return i === t;\n }, void 0, r);\n },\n has: function(t) {\n return t = Tt(this, t), t >= 0 && (this.size !== void 0 ? this.size === 1 / 0 || t < this.size : this.indexOf(t) !== -1);\n },\n interpose: function(t) {\n return T(this, ko(this, t));\n },\n interleave: function() {\n var t = [this].concat(vt(arguments)), r = Pe(this.toSeq(), dt.of, t), n = r.flatten(!0);\n return r.size && (n.size = r.size * t.length), T(this, n);\n },\n keySeq: function() {\n return Jo(0, this.size);\n },\n last: function(t) {\n return this.get(-1, t);\n },\n skipWhile: function(t, r) {\n return T(this, ti(this, t, r, !1));\n },\n zip: function() {\n var t = [this].concat(vt(arguments));\n return T(this, Pe(this, kn, t));\n },\n zipAll: function() {\n var t = [this].concat(vt(arguments));\n return T(this, Pe(this, kn, t, !0));\n },\n zipWith: function(t) {\n var r = vt(arguments);\n return r[0] = this, T(this, Pe(this, t, r));\n }\n});\nvar ue = jt.prototype;\nue[We] = !0;\nue[Lt] = !0;\nxt(ne, {\n // ### ES6 Collection methods (ES6 Array and Map)\n get: function(t, r) {\n return this.has(t) ? t : r;\n },\n includes: function(t) {\n return this.has(t);\n },\n // ### More sequential methods\n keySeq: function() {\n return this.valueSeq();\n }\n});\nvar ee = ne.prototype;\nee.has = Z.includes;\nee.contains = ee.includes;\nee.keys = ee.values;\nxt(qt, Te);\nxt(dt, ue);\nxt(se, ee);\nfunction kn() {\n return vt(arguments);\n}\nfunction Ii(e) {\n return Jr(e) && mt(e);\n}\nvar Re = /* @__PURE__ */ (function(e) {\n function t(r) {\n return r == null ? wr() : Ii(r) ? r : wr().withMutations(function(n) {\n var i = ne(r);\n it(i.size), i.forEach(function(o) {\n return n.add(o);\n });\n });\n }\n return e && (t.__proto__ = e), t.prototype = Object.create(e && e.prototype), t.prototype.constructor = t, t.of = function() {\n return this(arguments);\n }, t.fromKeys = function(n) {\n return this(pt(n).keySeq());\n }, t.prototype.toString = function() {\n return this.__toString(\"OrderedSet {\", \"}\");\n }, t;\n})(tr);\nRe.isOrderedSet = Ii;\nvar Ut = Re.prototype;\nUt[Lt] = !0;\nUt.zip = ue.zip;\nUt.zipWith = ue.zipWith;\nUt.zipAll = ue.zipAll;\nUt.__empty = wr;\nUt.__make = ki;\nfunction ki(e, t) {\n var r = Object.create(Ut);\n return r.size = e ? e.size : 0, r._map = e, r.__ownerID = t, r;\n}\nvar An;\nfunction wr() {\n return An || (An = ki(pe()));\n}\nfunction ts(e) {\n if (Bt(e))\n throw new Error(\n \"Can not call `Record` with an immutable Record as default values. Use a plain javascript object instead.\"\n );\n if (St(e))\n throw new Error(\n \"Can not call `Record` with an immutable Collection as default values. Use a plain javascript object instead.\"\n );\n if (e === null || typeof e != \"object\")\n throw new Error(\n \"Can not call `Record` with a non-object as default values. Use a plain javascript object instead.\"\n );\n}\nvar H = function(t, r) {\n var n;\n ts(t);\n var i = function(a) {\n var u = this;\n if (a instanceof i)\n return a;\n if (!(this instanceof i))\n return new i(a);\n if (!n) {\n n = !0;\n var c = Object.keys(t), f = o._indices = {};\n o._name = r, o._keys = c, o._defaultValues = t;\n for (var h = 0; h < c.length; h++) {\n var l = c[h];\n f[l] = h, o[l] ? typeof console == \"object\" && console.warn && console.warn(\n \"Cannot define \" + Zr(this) + ' with property \"' + l + '\" since that property name is part of the Record API.'\n ) : es(o, l);\n }\n }\n return this.__ownerID = void 0, this._values = Qt().withMutations(function(d) {\n d.setSize(u._keys.length), pt(a).forEach(function(p, _) {\n d.set(u._indices[_], p === u._defaultValues[_] ? void 0 : p);\n });\n }), this;\n }, o = i.prototype = Object.create(q);\n return o.constructor = i, r && (i.displayName = r), i;\n};\nH.prototype.toString = function() {\n for (var t = Zr(this) + \" { \", r = this._keys, n, i = 0, o = r.length; i !== o; i++)\n n = r[i], t += (i ? \", \" : \"\") + n + \": \" + be(this.get(n));\n return t + \" }\";\n};\nH.prototype.equals = function(t) {\n return this === t || Bt(t) && re(this).equals(re(t));\n};\nH.prototype.hashCode = function() {\n return re(this).hashCode();\n};\nH.prototype.has = function(t) {\n return this._indices.hasOwnProperty(t);\n};\nH.prototype.get = function(t, r) {\n if (!this.has(t))\n return r;\n var n = this._indices[t], i = this._values.get(n);\n return i === void 0 ? this._defaultValues[t] : i;\n};\nH.prototype.set = function(t, r) {\n if (this.has(t)) {\n var n = this._values.set(\n this._indices[t],\n r === this._defaultValues[t] ? void 0 : r\n );\n if (n !== this._values && !this.__ownerID)\n return Gr(this, n);\n }\n return this;\n};\nH.prototype.remove = function(t) {\n return this.set(t);\n};\nH.prototype.clear = function() {\n var t = this._values.clear().setSize(this._keys.length);\n return this.__ownerID ? this : Gr(this, t);\n};\nH.prototype.wasAltered = function() {\n return this._values.wasAltered();\n};\nH.prototype.toSeq = function() {\n return re(this);\n};\nH.prototype.toJS = function() {\n return Ve(this);\n};\nH.prototype.entries = function() {\n return this.__iterator(ct);\n};\nH.prototype.__iterator = function(t, r) {\n return re(this).__iterator(t, r);\n};\nH.prototype.__iterate = function(t, r) {\n return re(this).__iterate(t, r);\n};\nH.prototype.__ensureOwner = function(t) {\n if (t === this.__ownerID)\n return this;\n var r = this._values.__ensureOwner(t);\n return t ? Gr(this, r, t) : (this.__ownerID = t, this._values = r, this);\n};\nH.isRecord = Bt;\nH.getDescriptiveName = Zr;\nvar q = H.prototype;\nq[Un] = !0;\nq[ke] = q.remove;\nq.deleteIn = q.removeIn = Hr;\nq.getIn = Ei;\nq.hasIn = Z.hasIn;\nq.merge = ii;\nq.mergeWith = oi;\nq.mergeIn = Nr;\nq.mergeDeep = ai;\nq.mergeDeepWith = ui;\nq.mergeDeepIn = qr;\nq.setIn = Pr;\nq.update = Fr;\nq.updateIn = jr;\nq.withMutations = ze;\nq.asMutable = $e;\nq.asImmutable = Me;\nq[Ye] = q.entries;\nq.toJSON = q.toObject = Z.toObject;\nq.inspect = q.toSource = function() {\n return this.toString();\n};\nfunction Gr(e, t, r) {\n var n = Object.create(Object.getPrototypeOf(e));\n return n._values = t, n.__ownerID = r, n;\n}\nfunction Zr(e) {\n return e.constructor.displayName || e.constructor.name || \"Record\";\n}\nfunction re(e) {\n return Ar(e._keys.map(function(t) {\n return [t, e.get(t)];\n }));\n}\nfunction es(e, t) {\n try {\n Object.defineProperty(e, t, {\n get: function() {\n return this.get(t);\n },\n set: function(r) {\n ve(this.__ownerID, \"Cannot set on an immutable record.\"), this.set(t, r);\n }\n });\n } catch {\n }\n}\nclass Ai {\n /**\n * The doctype name\n * @public\n * @readonly\n */\n doctype;\n /**\n * Alias for doctype (for DoctypeLike interface compatibility)\n * @public\n * @readonly\n */\n get name() {\n return this.doctype;\n }\n /**\n * The doctype schema\n * @public\n * @readonly\n */\n schema;\n /**\n * The doctype workflow\n * @public\n * @readonly\n */\n workflow;\n /**\n * The doctype actions and field triggers\n * @public\n * @readonly\n */\n actions;\n /**\n * The doctype component\n * @public\n * @readonly\n */\n component;\n /**\n * Relationship links to other doctypes\n * @public\n * @readonly\n */\n links;\n /**\n * Creates a new Doctype instance\n * @param doctype - The doctype name\n * @param schema - The doctype schema definition\n * @param workflow - The doctype workflow configuration (XState machine)\n * @param actions - The doctype actions and field triggers\n * @param component - Optional Vue component for rendering the doctype\n * @param links - Optional relationship links to other doctypes\n */\n constructor(t, r, n, i, o, s) {\n this.doctype = t, this.schema = r, this.workflow = n, this.actions = i, this.component = o, this.links = s;\n }\n /**\n * Creates a Doctype instance from a plain configuration object.\n * Handles conversion of arrays to Immutable.js collections internally.\n *\n * This is the recommended way to create a Doctype from API responses\n * or configuration files, as it encapsulates the Immutable.js construction\n * that the framework uses internally.\n *\n * @param config - Plain object with doctype configuration (typically from API response)\n * @returns A new Doctype instance with Immutable.js collections\n *\n * @example\n * ```ts\n * // From an API response\n * const response = await client.getMeta({ doctype: 'plan' })\n * const doctype = Doctype.fromObject(response)\n * registry.addDoctype(doctype)\n * ```\n *\n * @example\n * ```ts\n * // From a configuration object\n * const planDoctype = Doctype.fromObject({\n * name: 'Plan',\n * fields: [\n * { fieldname: 'title', label: 'Title', fieldtype: 'Data' },\n * { fieldname: 'status', label: 'Status', fieldtype: 'Data' },\n * ],\n * workflow: {\n * id: 'plan',\n * initial: 'draft',\n * states: { draft: {}, submitted: {} }\n * }\n * })\n * ```\n *\n * @public\n */\n static fromObject(t) {\n const r = t.fields ? Qt(t.fields) : Qt(), n = t.actions ? Ct(t.actions) : Ct();\n return new Ai(t.name, r, t.workflow, n, void 0, t.links);\n }\n /**\n * Returns the raw authoring schema as a plain array.\n * For the resolved schema suitable for AForm, use `registry.resolveSchema(doctype)`.\n *\n * @returns Array of raw DoctypeField authoring definitions\n *\n * @example\n * ```ts\n * const fields = doctype.getSchemaArray()\n * // Pass to resolveSchema for AForm-ready output:\n * const resolved = registry.resolveSchema(doctype)\n * ```\n *\n * @public\n */\n getSchemaArray() {\n return this.schema ? this.schema.toArray() : [];\n }\n /**\n * Returns the actions as a plain object for use with components that expect\n * plain JavaScript objects.\n *\n * @returns Object mapping action names to field trigger arrays\n *\n * @public\n */\n getActionsObject() {\n return this.actions ? this.actions.toObject() : {};\n }\n /**\n * Returns the transitions available from a given workflow state, derived from the\n * doctype's workflow configuration. Supports both XState format and WorkflowMeta format.\n *\n * @param currentState - The state name to read transitions from\n * @returns Array of transition descriptors with `name` and `targetState`\n *\n * @example\n * ```ts\n * const transitions = doctype.getAvailableTransitions('draft')\n * // [{ name: 'SUBMIT', targetState: 'submitted' }]\n * ```\n *\n * @public\n */\n getAvailableTransitions(t) {\n const r = this.workflow;\n if (!r) return [];\n if (Array.isArray(r.states)) {\n if (!r.states.includes(t)) return [];\n const s = r.actions;\n return s ? Object.entries(s).filter(([, a]) => {\n const u = a.allowedStates;\n return !u || u.length === 0 ? !0 : u.includes(t);\n }).map(([a]) => ({\n name: a,\n // WorkflowMeta doesn't define target states - transitions are handled server-side\n targetState: t\n })) : [];\n }\n const n = r.states;\n if (!n) return [];\n const i = n[t];\n return i?.on ? Object.entries(i.on).map(([o, s]) => ({\n name: o,\n targetState: typeof s == \"string\" ? s : \"unknown\"\n })) : [];\n }\n /**\n * Returns metadata for a specific action, if available.\n * Only works with WorkflowMeta format; returns undefined for XState format.\n *\n * @param actionName - The action name to get metadata for\n * @returns Action metadata or undefined\n *\n * @example\n * ```ts\n * const actionMeta = doctype.getActionMeta('submit')\n * // { label: 'Submit', handler: 'plan:submit', allowedStates: ['draft'] }\n * ```\n *\n * @public\n */\n getActionMeta(t) {\n const r = this.workflow;\n return !r || !Array.isArray(r.states) ? void 0 : r.actions?.[t];\n }\n /**\n * Converts the registered doctype string to a slug (kebab-case). The following conversions are made:\n * - It replaces camelCase and PascalCase with kebab-case strings\n * - It replaces spaces and underscores with hyphens\n * - It converts the string to lowercase\n *\n * @returns The slugified doctype string\n *\n * @example\n * ```ts\n * const doctype = new Doctype('TaskItem', schema, workflow, actions)\n * console.log(doctype.slug) // 'task-item'\n * ```\n *\n * @public\n */\n get slug() {\n return this.doctype.replace(/([a-z])([A-Z])/g, \"$1-$2\").replace(/[\\s_]+/g, \"-\").toLowerCase();\n }\n}\nclass me {\n /**\n * The root Registry instance\n */\n static _root;\n /**\n * The name of the Registry instance\n *\n * @defaultValue 'Registry'\n */\n name = \"Registry\";\n /**\n * The registry property contains a collection of doctypes\n *\n * @defaultValue `{}`\n * @see {@link Doctype}\n */\n registry = {};\n /**\n * Reverse index: backlink fieldname → list of \\{ doctype slug, link fieldname \\}.\n * Multiple doctypes can declare a link with the same backlink name, so each key\n * maps to an array. Built at schema load time for O(1) ancestor lookups.\n *\n * @defaultValue `new Map()`\n * @internal\n */\n _ancestorIndex = /* @__PURE__ */ new Map();\n /**\n * Whether the ancestor index needs rebuilding\n *\n * @defaultValue `true`\n * @internal\n */\n _ancestorIndexDirty = !0;\n /**\n * The Vue router instance\n * @see {@link https://router.vuejs.org/}\n */\n router;\n /**\n * Creates a new Registry instance (singleton pattern)\n * @param router - Optional Vue router instance for route management\n * @param getMeta - Optional function to fetch doctype metadata from an API\n */\n constructor(t, r) {\n return me._root ? me._root : (me._root = this, this.router = t, this.getMeta = r, this);\n }\n /**\n * The getMeta function fetches doctype metadata from an API based on route context\n * @see {@link Doctype}\n */\n getMeta;\n /**\n * Get doctype metadata\n * @param doctype - The doctype to fetch metadata for\n * @returns The doctype metadata\n * @see {@link Doctype}\n */\n addDoctype(t) {\n t.slug in this.registry || (this.registry[t.slug] = t, this._ancestorIndexDirty = !0);\n const r = Et();\n r.registerDoctypeActions(t.doctype, t.actions), t.slug !== t.doctype && r.registerDoctypeActions(t.slug, t.actions), t.component && this.router && !this.router.hasRoute(t.doctype) && this.router.addRoute({\n path: `/${t.slug}`,\n name: t.slug,\n component: t.component\n });\n }\n /**\n * Resolve a Doctype's authoring schema into a rendered schema array suitable for AForm.\n *\n * Transforms `DoctypeField[]` (authoring space) → `ResolvedField[]` (rendering space):\n * - `kind: 'field'` (not Link) → `ResolvedScalar`\n * - `kind: 'field'` (Link, no declaration) → `ResolvedScalar` with `component: 'AFormLink'`\n * - `kind: 'field'` (Link, `noneOrMany`/`atLeastOne`) → `ResolvedTable`\n * - `kind: 'field'` (Link, `one`/`atMostOne`) → `ResolvedLink`\n * - `kind: 'fieldset'` → `ResolvedFieldset` (children resolved recursively)\n * - `kind: 'table'` → `ResolvedTable` (columns as `ColumnSchema[]`)\n *\n * Circular references are protected against via the `visited` set.\n *\n * @param doctype - The doctype to resolve\n * @param visited - Internal — set of already-visited doctype slugs for cycle detection\n * @returns A resolved schema array ready for AForm\n *\n * @public\n */\n resolveSchema(t, r) {\n const n = r ?? /* @__PURE__ */ new Set(), i = t.slug;\n if (n.has(i))\n return (t.schema ? t.schema.toArray() : []).filter((c) => c.kind === \"field\").map(({ cardinality: c, ...f }) => f);\n n.add(i);\n const o = t.schema ? t.schema.toArray() : [], s = /* @__PURE__ */ new Map();\n if (t.links)\n for (const [u, c] of Object.entries(t.links))\n s.set(c.fieldname ?? u, c);\n const a = this.resolveFields(o, s, n);\n return n.delete(i), a;\n }\n /**\n * Recursively resolve a `DoctypeField[]` using the provided link context.\n * Called by `resolveSchema` and recursively for fieldset children.\n * @internal\n */\n resolveFields(t, r, n) {\n const i = [];\n for (const o of t)\n if (o.kind === \"field\" && o.fieldtype === \"Link\") {\n const s = r.get(o.fieldname);\n if (!s) {\n const p = typeof o.options == \"string\" ? o.options : void 0;\n p === void 0 && console.warn(\n `[Stonecrop] Link field \"${o.fieldname}\" has no \\`options\\` or corresponding \\`links\\` declaration. AFormLink will be created without a \\`doctype\\` prop, so navigation will not work. Add \\`\"options\": \"<doctype-slug>\"\\` to the field definition.`\n );\n const { cardinality: _, ...m } = o;\n i.push({\n ...m,\n component: m.component || \"AFormLink\",\n ...p !== void 0 ? { doctype: p } : {}\n });\n continue;\n }\n const a = this.registry[s.target];\n if (!a) {\n const { cardinality: p, ..._ } = o;\n i.push({ ..._ });\n continue;\n }\n const u = this.resolveSchema(a, new Set(n)), { fieldtype: c, options: f, cardinality: h, kind: l, ...d } = o;\n if (s.cardinality === \"noneOrMany\" || s.cardinality === \"atLeastOne\")\n i.push(this.buildTableConfig(o, u, s.component));\n else {\n const p = {\n ...d,\n kind: \"link\",\n label: d.label || o.fieldname,\n component: s.component || d.component || \"AForm\",\n schema: u\n };\n i.push(p);\n }\n } else if (o.kind === \"fieldset\") {\n const s = this.resolveFields(o.schema, r, n), { schema: a, ...u } = o, c = {\n ...u,\n schema: s\n };\n i.push(c);\n } else if (o.kind === \"table\") {\n const { columns: s, config: a, ...u } = o, c = {\n ...u,\n kind: \"table\",\n component: u.component || \"ATable\",\n schema: s,\n config: a ?? { view: \"list\" }\n };\n i.push(c);\n } else {\n const { cardinality: s, ...a } = o;\n i.push({ ...a });\n }\n return i;\n }\n /**\n * Build a `ResolvedTable` from a resolved Link field with many cardinality.\n * Extracts scalar column definitions from the child schema.\n * @internal\n */\n buildTableConfig(t, r, n) {\n const i = r.filter((f) => f.kind === \"field\").map(({ kind: f, ...h }) => h), o = t.config ?? { view: \"list\" }, { fieldtype: s, options: a, cardinality: u, ...c } = t;\n return {\n ...c,\n kind: \"table\",\n label: c.label || t.fieldname,\n component: n || c.component || \"ATable\",\n schema: i,\n config: o\n };\n }\n /**\n * Initialize a new record with default values based on a resolved schema.\n * Narrows by `kind` discriminator for precise branch selection.\n *\n * - `kind: 'table'` or `kind: 'link'` → `[]` or `{}`\n * - `kind: 'fieldset'` → recursively initializes children as `{}`\n * - `kind: 'field'` → derives default from `fieldtype`; falls back to `null`\n *\n * @param schema - The resolved schema array to derive defaults from\n * @returns A plain object with default values for each field\n * @public\n */\n initializeRecord(t) {\n const r = {};\n for (const n of t)\n if (n.kind === \"table\")\n r[n.fieldname] = [];\n else if (n.kind === \"link\")\n r[n.fieldname] = this.initializeRecord(n.schema);\n else if (n.kind === \"fieldset\")\n r[n.fieldname] = this.initializeRecord(n.schema);\n else {\n const i = n.default;\n if (i !== void 0)\n r[n.fieldname] = i;\n else\n switch (n.fieldtype) {\n case \"Data\":\n case \"Text\":\n case \"Code\":\n r[n.fieldname] = \"\";\n break;\n case \"Check\":\n r[n.fieldname] = !1;\n break;\n case \"Int\":\n case \"Float\":\n case \"Decimal\":\n case \"Currency\":\n case \"Quantity\":\n r[n.fieldname] = 0;\n break;\n case \"JSON\":\n r[n.fieldname] = {};\n break;\n default:\n r[n.fieldname] = null;\n }\n }\n return r;\n }\n /**\n * Get a registered doctype by slug\n * @param slug - The doctype slug to look up\n * @returns The Doctype instance if found, or undefined\n * @public\n */\n getDoctype(t) {\n return this.registry[t];\n }\n /**\n * Get all links declared on a doctype.\n *\n * @param doctypeSlug - The doctype slug to get links for\n * @returns Array of link declarations with fieldname, or empty array if none\n *\n * @example\n * ```ts\n * const links = registry.getDescendantLinks('recipe')\n * // [{ fieldname: 'tasks', target: 'recipe-task', cardinality: 'noneOrMany', backlink: 'recipe' }]\n * ```\n *\n * @public\n */\n getDescendantLinks(t) {\n const r = this.registry[t];\n return r?.links ? Object.entries(r.links).map(\n ([n, i]) => Object.assign({}, i, {\n fieldname: n\n })\n ) : [];\n }\n /**\n * Get links on other doctypes that target the given doctype.\n *\n * @param doctypeSlug - The doctype slug to find ancestor links for\n * @returns Array of link declarations with fieldname and declaring doctype slug, or empty array\n *\n * @example\n * ```ts\n * const ancestors = registry.getAncestorLinks('recipe-task')\n * // [{ fieldname: 'tasks', target: 'recipe-task', cardinality: 'noneOrMany', backlink: 'recipe', doctype: 'recipe' }]\n * ```\n *\n * @public\n */\n getAncestorLinks(t) {\n this._ensureAncestorIndex();\n const r = [];\n for (const [n, i] of this._ancestorIndex)\n for (const { slug: o, fieldname: s } of i) {\n const a = this.registry[o];\n if (!a?.links) continue;\n const u = a.links[s];\n u?.target === t && r.push({\n ...u,\n fieldname: s,\n doctype: o\n });\n }\n return r;\n }\n /**\n * Ensure the ancestor index is up to date\n * @internal\n */\n _ensureAncestorIndex() {\n if (this._ancestorIndexDirty) {\n this._ancestorIndexDirty = !1, this._ancestorIndex.clear();\n for (const [t, r] of Object.entries(this.registry))\n if (r.links) {\n for (const [n, i] of Object.entries(r.links))\n if (i.backlink) {\n const o = this._ancestorIndex.get(i.backlink);\n o ? o.push({ slug: t, fieldname: n }) : this._ancestorIndex.set(i.backlink, [{ slug: t, fieldname: n }]);\n }\n }\n }\n }\n // TODO: should we allow clearing the registry at all?\n // clear() {\n // \tthis.registry = {}\n // \tif (this.router) {\n // \t\tconst routes = this.router.getRoutes()\n // \t\tfor (const route of routes) {\n // \t\t\tif (route.name) {\n // \t\t\t\tthis.router.removeRoute(route.name)\n // \t\t\t}\n // \t\t}\n // \t}\n // }\n}\nasync function rs(e, t, r) {\n await br();\n try {\n await r(e, t);\n } catch {\n }\n}\nconst vs = {\n install: (e, t) => {\n const r = e.config.globalProperties.$router, n = t?.router, i = r || n;\n !r && n && e.use(n);\n const o = new me(i, t?.getMeta);\n e.provide(\"$registry\", o), e.config.globalProperties.$registry = o;\n const s = new Mt(o);\n t?.client && s.setClient(t.client), e.provide(\"$stonecrop\", s), e.config.globalProperties.$stonecrop = s;\n try {\n const a = e.config.globalProperties.$pinia;\n if (a) {\n const u = Ie(a);\n e.provide(\"$operationLogStore\", u), e.config.globalProperties.$operationLogStore = u;\n }\n } catch (a) {\n console.warn(\"Pinia not available - operation log features will be disabled:\", a);\n }\n if (t?.components)\n for (const [a, u] of Object.entries(t.components))\n e.component(a, u);\n t?.autoInitializeRouter && t.onRouterInitialized && rs(o, s, t.onRouterInitialized);\n }\n};\nvar x = /* @__PURE__ */ ((e) => (e.ERROR = \"error\", e.WARNING = \"warning\", e.INFO = \"info\", e))(x || {});\nclass ns {\n options;\n /**\n * Creates a new SchemaValidator instance\n * @param options - Validator configuration options\n */\n constructor(t = {}) {\n this.options = {\n registry: t.registry || null,\n validateLinkTargets: t.validateLinkTargets ?? !0,\n validateLinks: t.validateLinks ?? !0,\n validateActions: t.validateActions ?? !0,\n validateWorkflows: t.validateWorkflows ?? !0,\n validateRequiredProperties: t.validateRequiredProperties ?? !0\n };\n }\n /**\n * Validates a complete doctype schema\n * @param doctype - Doctype name\n * @param schema - Schema fields (List or Array)\n * @param workflow - Optional workflow configuration\n * @param actions - Optional actions map\n * @param links - Optional links object\n * @returns Validation result\n */\n validate(t, r, n, i, o) {\n const s = [], a = r ? Array.isArray(r) ? r : r.toArray() : [];\n if (this.options.validateRequiredProperties && s.push(...this.validateRequiredProperties(t, a)), this.options.validateLinkTargets && this.options.registry && s.push(...this.validateLinkFields(t, a, this.options.registry)), this.options.validateLinks && this.options.registry && o && s.push(...this.validateLinkDeclarations(t, o, a, this.options.registry)), this.options.validateWorkflows && n && s.push(...this.validateWorkflow(t, n)), this.options.validateActions && i) {\n const h = i instanceof Map ? i : i.toObject();\n s.push(...this.validateActionRegistration(t, h));\n }\n const u = s.filter((h) => h.severity === x.ERROR).length, c = s.filter((h) => h.severity === x.WARNING).length, f = s.filter((h) => h.severity === x.INFO).length;\n return {\n valid: u === 0,\n issues: s,\n errorCount: u,\n warningCount: c,\n infoCount: f\n };\n }\n /**\n * Validates that required schema properties are present\n * @internal\n */\n validateRequiredProperties(t, r) {\n const n = [];\n for (const i of r) {\n if (!i.fieldname) {\n n.push({\n severity: x.ERROR,\n rule: \"required-fieldname\",\n message: \"Field is missing required property: fieldname\",\n doctype: t,\n context: { field: i }\n });\n continue;\n }\n i.kind === \"field\" && !i.component && !i.fieldtype && n.push({\n severity: x.ERROR,\n rule: \"required-component-or-fieldtype\",\n message: `Field \"${i.fieldname}\" must have either component or fieldtype property`,\n doctype: t,\n fieldname: i.fieldname\n }), i.kind === \"fieldset\" && n.push(...this.validateRequiredProperties(t, i.schema));\n }\n return n;\n }\n /**\n * Validates Link field targets exist in registry\n * @internal\n */\n validateLinkFields(t, r, n) {\n const i = [];\n for (const o of r) {\n if (o.kind === \"field\" && o.fieldtype === \"Link\") {\n const s = o.options;\n if (!s) {\n i.push({\n severity: x.ERROR,\n rule: \"link-missing-options\",\n message: `Link field \"${o.fieldname}\" is missing options property (target doctype)`,\n doctype: t,\n fieldname: o.fieldname\n });\n continue;\n }\n const a = typeof s == \"string\" ? s : \"\";\n if (!a) {\n i.push({\n severity: x.ERROR,\n rule: \"link-invalid-options\",\n message: `Link field \"${o.fieldname}\" has invalid options format (expected string doctype name)`,\n doctype: t,\n fieldname: o.fieldname\n });\n continue;\n }\n n.registry[a] || n.registry[a.toLowerCase()] || i.push({\n severity: x.ERROR,\n rule: \"link-invalid-target\",\n message: `Link field \"${o.fieldname}\" references non-existent doctype: \"${a}\"`,\n doctype: t,\n fieldname: o.fieldname,\n context: { targetDoctype: a }\n });\n }\n o.kind === \"fieldset\" && i.push(...this.validateLinkFields(t, o.schema, n));\n }\n return i;\n }\n /**\n * Validates link declarations: target resolution, backlink consistency, Link field correspondence\n * @internal\n */\n validateLinkDeclarations(t, r, n, i) {\n const o = [], s = /* @__PURE__ */ new Map();\n for (const a of n)\n a.kind === \"field\" && a.fieldtype === \"Link\" && s.set(a.fieldname, a);\n for (const [a, u] of Object.entries(r)) {\n const c = i.registry[u.target];\n if (!c) {\n o.push({\n severity: x.ERROR,\n rule: \"link-invalid-target\",\n message: `Link \"${a}\" references non-existent doctype: \"${u.target}\"`,\n doctype: t,\n fieldname: a,\n context: { target: u.target }\n });\n continue;\n }\n if (u.target === t && o.push({\n severity: x.WARNING,\n rule: \"link-self-referential\",\n message: `Link \"${a}\" is self-referential (target: \"${u.target}\")`,\n doctype: t,\n fieldname: a,\n context: { target: u.target }\n }), u.backlink && c.links) {\n const f = c.links[u.backlink];\n f ? f.target !== t && o.push({\n severity: x.WARNING,\n rule: \"link-backlink-mismatch\",\n message: `Backlink \"${u.backlink}\" on \"${u.target}\" points to \"${f.target}\" instead of \"${t}\"`,\n doctype: t,\n fieldname: a,\n context: { backlink: u.backlink, target: u.target, actualTarget: f.target }\n }) : o.push({\n severity: x.ERROR,\n rule: \"link-backlink-missing\",\n message: `Backlink \"${u.backlink}\" not found on target doctype \"${u.target}\"`,\n doctype: t,\n fieldname: a,\n context: { backlink: u.backlink, target: u.target }\n });\n }\n if (u.fieldname) {\n const f = s.get(u.fieldname);\n if (f && f.kind === \"field\") {\n const h = typeof f.options == \"string\" ? f.options : void 0;\n h && h !== u.target && o.push({\n severity: x.ERROR,\n rule: \"link-field-target-mismatch\",\n message: `Link field \"${u.fieldname}\" targets \"${h}\" but link declaration targets \"${u.target}\"`,\n doctype: t,\n fieldname: u.fieldname,\n context: { linkFieldTarget: h, linkTarget: u.target }\n });\n }\n }\n }\n for (const [a, u] of s)\n Object.values(r).some((f) => f.fieldname === a) || o.push({\n severity: x.ERROR,\n rule: \"link-field-without-declaration\",\n message: `Link field \"${a}\" has no corresponding link declaration`,\n doctype: t,\n fieldname: a\n });\n return o;\n }\n /**\n * Validates workflow state machine configuration\n * @internal\n */\n validateWorkflow(t, r) {\n const n = [];\n if (!r.initial && !r.type && n.push({\n severity: x.WARNING,\n rule: \"workflow-missing-initial\",\n message: \"Workflow is missing initial state property\",\n doctype: t\n }), !r.states || Object.keys(r.states).length === 0)\n return n.push({\n severity: x.WARNING,\n rule: \"workflow-no-states\",\n message: \"Workflow has no states defined\",\n doctype: t\n }), n;\n r.initial && typeof r.initial == \"string\" && !r.states[r.initial] && n.push({\n severity: x.ERROR,\n rule: \"workflow-invalid-initial\",\n message: `Workflow initial state \"${r.initial}\" does not exist in states`,\n doctype: t,\n context: { initialState: r.initial }\n });\n const i = Object.keys(r.states), o = /* @__PURE__ */ new Set();\n r.initial && typeof r.initial == \"string\" && o.add(r.initial);\n for (const [s, a] of Object.entries(r.states)) {\n const u = a;\n if (u.on) {\n for (const [c, f] of Object.entries(u.on))\n if (typeof f == \"string\")\n o.add(f);\n else if (f && typeof f == \"object\") {\n const h = \"target\" in f ? f.target : void 0;\n typeof h == \"string\" ? o.add(h) : Array.isArray(h) && h.forEach((l) => {\n typeof l == \"string\" && o.add(l);\n });\n }\n }\n }\n for (const s of i)\n o.has(s) || n.push({\n severity: x.WARNING,\n rule: \"workflow-unreachable-state\",\n message: `Workflow state \"${s}\" may not be reachable`,\n doctype: t,\n context: { stateName: s }\n });\n return n;\n }\n /**\n * Validates that actions are registered in the FieldTriggerEngine\n * @internal\n */\n validateActionRegistration(t, r) {\n const n = [], i = Et();\n for (const [o, s] of Object.entries(r)) {\n if (!Array.isArray(s)) {\n n.push({\n severity: x.ERROR,\n rule: \"action-invalid-format\",\n message: `Action configuration for \"${o}\" must be an array`,\n doctype: t,\n context: { triggerName: o, actionNames: s }\n });\n continue;\n }\n for (const a of s) {\n const u = i;\n u.globalActions?.has(a) || u.globalTransitionActions?.has(a) || n.push({\n severity: x.WARNING,\n rule: \"action-not-registered\",\n message: `Action \"${a}\" referenced in \"${o}\" is not registered in FieldTriggerEngine`,\n doctype: t,\n context: { triggerName: o, actionName: a }\n });\n }\n }\n return n;\n }\n}\nfunction is(e, t) {\n return new ns({\n registry: e,\n ...t\n });\n}\nfunction ys(e, t, r, n, i) {\n return is(r).validate(e, t, n, i);\n}\nexport {\n Ai as Doctype,\n ge as FieldTriggerEngine,\n Vt as HST,\n me as Registry,\n ns as SchemaValidator,\n Mt as Stonecrop,\n x as ValidationSeverity,\n io as createHST,\n is as createValidator,\n vs as default,\n Et as getGlobalTriggerEngine,\n ls as getStonecrop,\n hs as markOperationIrreversible,\n as as registerGlobalAction,\n us as registerTransitionAction,\n cs as setFieldRollback,\n fs as triggerTransition,\n ps as useLazyLink,\n qn as useOperationLog,\n Ie as useOperationLogStore,\n ds as useStonecrop,\n _s as useUndoRedoShortcuts,\n ys as validateSchema,\n gs as withBatch\n};\n//# sourceMappingURL=stonecrop.js.map\n","import { defineComponent as te, useTemplateRef as pe, ref as E, computed as R, onMounted as Re, openBlock as y, createElementBlock as x, unref as V, normalizeClass as ie, normalizeStyle as $e, createBlock as fe, resolveDynamicComponent as Ge, mergeProps as ot, toDisplayString as P, createElementVNode as b, withModifiers as ae, withDirectives as K, Fragment as X, renderList as ge, vShow as Se, createCommentVNode as N, renderSlot as Me, createTextVNode as Mt, watch as le, onBeforeUnmount as cn, nextTick as at, toValue as H, shallowRef as he, getCurrentScope as It, onScopeDispose as Dt, reactive as Tt, vModelText as we, vModelCheckbox as _t, vModelSelect as Yt, getCurrentInstance as Ct, watchEffect as $t, useCssVars as vn, onUnmounted as fn, useModel as De, inject as yt, createVNode as _e, withCtx as wt, mergeModels as xe, isRef as mn, toRefs as pn, customRef as St, toRef as Xt, readonly as Et, resolveComponent as hn, withKeys as ce, provide as gn } from \"vue\";\nimport { defineStore as yn } from \"pinia\";\nimport './assets/index.css';function bt(e) {\n return Function(`\"use strict\"; return (${e})`)();\n}\nfunction jt(e, t) {\n return It() ? (Dt(e, t), !0) : !1;\n}\nconst wn = typeof window < \"u\" && typeof document < \"u\";\ntypeof WorkerGlobalScope < \"u\" && globalThis instanceof WorkerGlobalScope;\nconst bn = (e) => e != null, xn = Object.prototype.toString, kn = (e) => xn.call(e) === \"[object Object]\", Mn = () => {\n};\nfunction Qe(e) {\n return Array.isArray(e) ? e : [e];\n}\nfunction In(e, t, l) {\n return le(e, t, {\n ...l,\n immediate: !0\n });\n}\nconst qe = wn ? window : void 0;\nfunction We(e) {\n var t;\n const l = H(e);\n return (t = l?.$el) !== null && t !== void 0 ? t : l;\n}\nfunction Ye(...e) {\n const t = (n, a, o, s) => (n.addEventListener(a, o, s), () => n.removeEventListener(a, o, s)), l = R(() => {\n const n = Qe(H(e[0])).filter((a) => a != null);\n return n.every((a) => typeof a != \"string\") ? n : void 0;\n });\n return In(() => {\n var n, a;\n return [\n (n = (a = l.value) === null || a === void 0 ? void 0 : a.map((o) => We(o))) !== null && n !== void 0 ? n : [qe].filter((o) => o != null),\n Qe(H(l.value ? e[1] : e[0])),\n Qe(V(l.value ? e[2] : e[1])),\n H(l.value ? e[3] : e[2])\n ];\n }, ([n, a, o, s], u, i) => {\n if (!n?.length || !a?.length || !o?.length) return;\n const r = kn(s) ? { ...s } : s, d = n.flatMap((h) => a.flatMap((k) => o.map((g) => t(h, k, g, r))));\n i(() => {\n d.forEach((h) => h());\n });\n }, { flush: \"post\" });\n}\n// @__NO_SIDE_EFFECTS__\nfunction Dn() {\n const e = he(!1), t = Ct();\n return t && Re(() => {\n e.value = !0;\n }, t), e;\n}\n// @__NO_SIDE_EFFECTS__\nfunction Tn(e) {\n const t = /* @__PURE__ */ Dn();\n return R(() => (t.value, !!e()));\n}\nfunction Cn(e, t, l = {}) {\n const { window: n = qe, ...a } = l;\n let o;\n const s = /* @__PURE__ */ Tn(() => n && \"MutationObserver\" in n), u = () => {\n o && (o.disconnect(), o = void 0);\n }, i = le(R(() => {\n const h = Qe(H(e)).map(We).filter(bn);\n return new Set(h);\n }), (h) => {\n u(), s.value && h.size && (o = new MutationObserver(t), h.forEach((k) => o.observe(k, a)));\n }, {\n immediate: !0,\n flush: \"post\"\n }), r = () => o?.takeRecords(), d = () => {\n i(), u();\n };\n return jt(d), {\n isSupported: s,\n stop: d,\n takeRecords: r\n };\n}\nfunction $n(e, t, l = {}) {\n const { window: n = qe, document: a = n?.document, flush: o = \"sync\" } = l;\n if (!n || !a) return Mn;\n let s;\n const u = (d) => {\n s?.(), s = d;\n }, i = $t(() => {\n const d = We(e);\n if (d) {\n const { stop: h } = Cn(a, (k) => {\n k.map((g) => [...g.removedNodes]).flat().some((g) => g === d || g.contains(d)) && t(k);\n }, {\n window: n,\n childList: !0,\n subtree: !0\n });\n u(h);\n }\n }, { flush: o }), r = () => {\n i(), u();\n };\n return jt(r), r;\n}\n// @__NO_SIDE_EFFECTS__\nfunction Sn(e = {}) {\n var t;\n const { window: l = qe, deep: n = !0, triggerOnRemoval: a = !1 } = e, o = (t = e.document) !== null && t !== void 0 ? t : l?.document, s = () => {\n let r = o?.activeElement;\n if (n)\n for (var d; r?.shadowRoot; ) r = r == null || (d = r.shadowRoot) === null || d === void 0 ? void 0 : d.activeElement;\n return r;\n }, u = he(), i = () => {\n u.value = s();\n };\n if (l) {\n const r = {\n capture: !0,\n passive: !0\n };\n Ye(l, \"blur\", (d) => {\n d.relatedTarget === null && i();\n }, r), Ye(l, \"focus\", i, r);\n }\n return a && $n(u, i, { document: o }), i(), u;\n}\nconst En = \"focusin\", Rn = \"focusout\", An = \":focus-within\";\nfunction Ln(e, t = {}) {\n const { window: l = qe } = t, n = R(() => We(e)), a = he(!1), o = R(() => a.value);\n if (!l || !(/* @__PURE__ */ Sn(t)).value) return { focused: o };\n const s = { passive: !0 };\n return Ye(n, En, () => a.value = !0, s), Ye(n, Rn, () => {\n var u, i, r;\n return a.value = (u = (i = n.value) === null || i === void 0 || (r = i.matches) === null || r === void 0 ? void 0 : r.call(i, An)) !== null && u !== void 0 ? u : !1;\n }, s), { focused: o };\n}\nfunction Hn(e, { window: t = qe, scrollTarget: l } = {}) {\n const n = E(!1), a = () => {\n if (!t) return;\n const o = t.document, s = We(e);\n if (!s)\n n.value = !1;\n else {\n const u = s.getBoundingClientRect();\n n.value = u.top <= (t.innerHeight || o.documentElement.clientHeight) && u.left <= (t.innerWidth || o.documentElement.clientWidth) && u.bottom >= 0 && u.right >= 0;\n }\n };\n return le(\n () => We(e),\n () => a(),\n { immediate: !0, flush: \"post\" }\n ), t && Ye(l || t, \"scroll\", a, {\n capture: !1,\n passive: !0\n }), n;\n}\nconst Ae = (e) => {\n let t = Hn(e).value;\n return t = t && e.offsetHeight > 0, t;\n}, Le = (e) => e.tabIndex >= 0, Nt = (e) => {\n if (e.target instanceof HTMLElement)\n return Rt(e.target);\n}, Rt = (e) => {\n let t;\n if (e instanceof HTMLTableCellElement) {\n const l = e.parentElement?.previousElementSibling;\n if (l instanceof HTMLTableRowElement) {\n const n = Array.from(l.children)[e.cellIndex];\n n instanceof HTMLElement && (t = n);\n }\n } else if (e instanceof HTMLTableRowElement) {\n const l = e.previousElementSibling;\n l instanceof HTMLTableRowElement && (t = l);\n }\n return t && (!Le(t) || !Ae(t)) ? Rt(t) : t;\n}, Bn = (e) => {\n if (!(e.target instanceof HTMLElement)) return;\n const t = e.target;\n let l;\n if (t instanceof HTMLTableCellElement) {\n const n = t.parentElement?.parentElement;\n if (n) {\n const a = n.firstElementChild?.children[t.cellIndex];\n a instanceof HTMLElement && (l = a);\n }\n } else if (t instanceof HTMLTableRowElement) {\n const n = t.parentElement;\n if (n) {\n const a = n.firstElementChild;\n a instanceof HTMLTableRowElement && (l = a);\n }\n }\n return l && (!Le(l) || !Ae(l)) ? At(l) : l;\n}, Ot = (e) => {\n if (e.target instanceof HTMLElement)\n return At(e.target);\n}, At = (e) => {\n let t;\n if (e instanceof HTMLTableCellElement) {\n const l = e.parentElement?.nextElementSibling;\n if (l) {\n const n = Array.from(l.children)[e.cellIndex];\n n instanceof HTMLElement && (t = n);\n }\n } else if (e instanceof HTMLTableRowElement) {\n const l = e.nextElementSibling;\n l instanceof HTMLTableRowElement && (t = l);\n }\n return t && (!Le(t) || !Ae(t)) ? At(t) : t;\n}, Vn = (e) => {\n if (!(e.target instanceof HTMLElement)) return;\n const t = e.target;\n let l;\n if (t instanceof HTMLTableCellElement) {\n const n = t.parentElement?.parentElement;\n if (n) {\n const a = n.lastElementChild?.children[t.cellIndex];\n a instanceof HTMLElement && (l = a);\n }\n } else if (t instanceof HTMLTableRowElement) {\n const n = t.parentElement;\n if (n) {\n const a = n.lastElementChild;\n a instanceof HTMLTableRowElement && (l = a);\n }\n }\n return l && (!Le(l) || !Ae(l)) ? Rt(l) : l;\n}, Zt = (e) => {\n if (e.target instanceof HTMLElement)\n return Lt(e.target);\n}, Lt = (e) => {\n let t;\n const l = e.previousElementSibling;\n if (l instanceof HTMLElement)\n t = l;\n else {\n const n = e.parentElement?.previousElementSibling?.lastElementChild;\n n instanceof HTMLElement && (t = n);\n }\n return t && (!Le(t) || !Ae(t)) ? Lt(t) : t;\n}, Gt = (e) => {\n if (e.target instanceof HTMLElement)\n return Ht(e.target);\n}, Ht = (e) => {\n let t;\n const l = e.nextElementSibling;\n if (l instanceof HTMLElement)\n t = l;\n else {\n const n = e.parentElement?.nextElementSibling?.firstElementChild;\n n instanceof HTMLElement && (t = n);\n }\n return t && (!Le(t) || !Ae(t)) ? Ht(t) : t;\n}, Ut = (e) => {\n if (!(e.target instanceof HTMLElement)) return;\n const t = e.target.parentElement?.firstElementChild, l = t instanceof HTMLElement ? t : null;\n return l && (!Le(l) || !Ae(l)) ? Ht(l) : l;\n}, Wt = (e) => {\n if (!(e.target instanceof HTMLElement)) return;\n const t = e.target.parentElement?.lastElementChild, l = t instanceof HTMLElement ? t : null;\n return l && (!Le(l) || !Ae(l)) ? Lt(l) : l;\n}, je = [\"alt\", \"control\", \"shift\", \"meta\"], Pn = {\n ArrowUp: \"up\",\n ArrowDown: \"down\",\n ArrowLeft: \"left\",\n ArrowRight: \"right\"\n}, st = {\n \"keydown.up\": (e) => {\n const t = Nt(e);\n t && (e.preventDefault(), e.stopPropagation(), t.focus());\n },\n \"keydown.down\": (e) => {\n const t = Ot(e);\n t && (e.preventDefault(), e.stopPropagation(), t.focus());\n },\n \"keydown.left\": (e) => {\n const t = Zt(e);\n e.preventDefault(), e.stopPropagation(), t && t.focus();\n },\n \"keydown.right\": (e) => {\n const t = Gt(e);\n e.preventDefault(), e.stopPropagation(), t && t.focus();\n },\n \"keydown.control.up\": (e) => {\n const t = Bn(e);\n t && (e.preventDefault(), e.stopPropagation(), t.focus());\n },\n \"keydown.control.down\": (e) => {\n const t = Vn(e);\n t && (e.preventDefault(), e.stopPropagation(), t.focus());\n },\n \"keydown.control.left\": (e) => {\n const t = Ut(e);\n t && (e.preventDefault(), e.stopPropagation(), t.focus());\n },\n \"keydown.control.right\": (e) => {\n const t = Wt(e);\n t && (e.preventDefault(), e.stopPropagation(), t.focus());\n },\n \"keydown.end\": (e) => {\n const t = Wt(e);\n t && (e.preventDefault(), e.stopPropagation(), t.focus());\n },\n \"keydown.enter\": (e) => {\n if (e.target instanceof HTMLElement && e.target instanceof HTMLTableCellElement) {\n e.preventDefault(), e.stopPropagation();\n const t = Ot(e);\n t && t.focus();\n }\n },\n \"keydown.shift.enter\": (e) => {\n if (e.target instanceof HTMLElement && e.target instanceof HTMLTableCellElement) {\n e.preventDefault(), e.stopPropagation();\n const t = Nt(e);\n t && t.focus();\n }\n },\n \"keydown.home\": (e) => {\n const t = Ut(e);\n t && (e.preventDefault(), e.stopPropagation(), t.focus());\n },\n \"keydown.tab\": (e) => {\n const t = Gt(e);\n t && (e.preventDefault(), e.stopPropagation(), t.focus());\n },\n \"keydown.shift.tab\": (e) => {\n const t = Zt(e);\n t && (e.preventDefault(), e.stopPropagation(), t.focus());\n }\n};\nfunction it(e) {\n let t = null;\n return e.parent && (typeof e.parent == \"string\" ? t = document.querySelector(e.parent) : e.parent instanceof HTMLElement ? t = e.parent : t = e.parent.value), t;\n}\nfunction Bt(e) {\n const t = (o) => {\n const s = it(o);\n let u = [];\n if (typeof o.selectors == \"string\")\n u = Array.from(s ? s.querySelectorAll(o.selectors) : document.querySelectorAll(o.selectors));\n else if (Array.isArray(o.selectors))\n for (const i of o.selectors)\n i instanceof HTMLElement ? u.push(i) : u.push(i.$el);\n else if (o.selectors instanceof HTMLElement)\n u.push(o.selectors);\n else if (o.selectors?.value)\n if (Array.isArray(o.selectors.value))\n for (const i of o.selectors.value)\n i instanceof HTMLElement ? u.push(i) : u.push(i.$el);\n else\n u.push(o.selectors.value);\n return u;\n }, l = (o) => {\n const s = it(o);\n let u = [];\n return o.selectors ? u = t(o) : s && (u = Array.from(s.children).filter((i) => i instanceof HTMLElement).filter((i) => Le(i) && Ae(i))), u;\n }, n = (o) => (s) => {\n const u = Pn[s.key] || s.key.toLowerCase();\n if (je.includes(u)) return;\n const i = o.handlers || st;\n for (const r of Object.keys(i)) {\n const [d, ...h] = r.split(\".\");\n if (d === \"keydown\" && h.includes(u)) {\n const k = i[r], g = h.filter((v) => je.includes(v)), p = je.some((v) => {\n const c = v.charAt(0).toUpperCase() + v.slice(1);\n return s.getModifierState(c);\n });\n if (g.length > 0) {\n if (p) {\n for (const v of je)\n if (h.includes(v)) {\n const c = v.charAt(0).toUpperCase() + v.slice(1);\n s.getModifierState(c) && k(s);\n }\n }\n } else\n p || k(s);\n }\n }\n }, a = [];\n Re(() => {\n for (const o of e) {\n const s = it(o), u = l(o), i = n(o), r = s ? [s] : u;\n for (const d of r) {\n const { focused: h } = Ln(E(d)), k = le(h, (g) => {\n g ? d.addEventListener(\"keydown\", i) : d.removeEventListener(\"keydown\", i);\n });\n a.push(k);\n }\n }\n }), cn(() => {\n for (const o of a)\n o();\n });\n}\nfunction Vt(e, t) {\n return It() ? (Dt(e, t), !0) : !1;\n}\nconst Kt = typeof window < \"u\" && typeof document < \"u\";\ntypeof WorkerGlobalScope < \"u\" && globalThis instanceof WorkerGlobalScope;\nconst Fn = (e) => e != null, Nn = Object.prototype.toString, On = (e) => Nn.call(e) === \"[object Object]\", Ze = () => {\n};\nfunction Zn(...e) {\n if (e.length !== 1) return Xt(...e);\n const t = e[0];\n return typeof t == \"function\" ? Et(St(() => ({\n get: t,\n set: Ze\n }))) : E(t);\n}\nfunction Gn(e, t) {\n function l(...n) {\n return new Promise((a, o) => {\n Promise.resolve(e(() => t.apply(this, n), {\n fn: t,\n thisArg: this,\n args: n\n })).then(a).catch(o);\n });\n }\n return l;\n}\nfunction Un(e, t = {}) {\n let l, n, a = Ze;\n const o = (u) => {\n clearTimeout(u), a(), a = Ze;\n };\n let s;\n return (u) => {\n const i = H(e), r = H(t.maxWait);\n return l && o(l), i <= 0 || r !== void 0 && r <= 0 ? (n && (o(n), n = void 0), Promise.resolve(u())) : new Promise((d, h) => {\n a = t.rejectOnCancel ? h : d, s = u, r && !n && (n = setTimeout(() => {\n l && o(l), n = void 0, d(s());\n }, r)), l = setTimeout(() => {\n n && o(n), n = void 0, d(u());\n }, i);\n });\n };\n}\nfunction et(e) {\n return Array.isArray(e) ? e : [e];\n}\nfunction Wn(e) {\n return Ct();\n}\n// @__NO_SIDE_EFFECTS__\nfunction qn(e, t = 200, l = {}) {\n return Gn(Un(t, l), e);\n}\nfunction zn(e, t = {}) {\n if (!mn(e)) return pn(e);\n const l = Array.isArray(e.value) ? Array.from({ length: e.value.length }) : {};\n for (const n in e.value) l[n] = St(() => ({\n get() {\n return e.value[n];\n },\n set(a) {\n var o;\n if (!((o = H(t.replaceRef)) !== null && o !== void 0) || o) if (Array.isArray(e.value)) {\n const s = [...e.value];\n s[n] = a, e.value = s;\n } else {\n const s = {\n ...e.value,\n [n]: a\n };\n Object.setPrototypeOf(s, Object.getPrototypeOf(e.value)), e.value = s;\n }\n else e.value[n] = a;\n }\n }));\n return l;\n}\nfunction _n(e, t = !0, l) {\n Wn() ? Re(e, l) : t ? e() : at(e);\n}\nfunction Yn(e, t, l) {\n return le(e, t, {\n ...l,\n immediate: !0\n });\n}\nconst Xe = Kt ? window : void 0;\nfunction Ce(e) {\n var t;\n const l = H(e);\n return (t = l?.$el) !== null && t !== void 0 ? t : l;\n}\nfunction Pe(...e) {\n const t = (n, a, o, s) => (n.addEventListener(a, o, s), () => n.removeEventListener(a, o, s)), l = R(() => {\n const n = et(H(e[0])).filter((a) => a != null);\n return n.every((a) => typeof a != \"string\") ? n : void 0;\n });\n return Yn(() => {\n var n, a;\n return [\n (n = (a = l.value) === null || a === void 0 ? void 0 : a.map((o) => Ce(o))) !== null && n !== void 0 ? n : [Xe].filter((o) => o != null),\n et(H(l.value ? e[1] : e[0])),\n et(V(l.value ? e[2] : e[1])),\n H(l.value ? e[3] : e[2])\n ];\n }, ([n, a, o, s], u, i) => {\n if (!n?.length || !a?.length || !o?.length) return;\n const r = On(s) ? { ...s } : s, d = n.flatMap((h) => a.flatMap((k) => o.map((g) => t(h, k, g, r))));\n i(() => {\n d.forEach((h) => h());\n });\n }, { flush: \"post\" });\n}\nfunction xt(e, t, l = {}) {\n const { window: n = Xe, ignore: a = [], capture: o = !0, detectIframe: s = !1, controls: u = !1 } = l;\n if (!n) return u ? {\n stop: Ze,\n cancel: Ze,\n trigger: Ze\n } : Ze;\n let i = !0;\n const r = (c) => H(a).some((m) => {\n if (typeof m == \"string\") return Array.from(n.document.querySelectorAll(m)).some((I) => I === c.target || c.composedPath().includes(I));\n {\n const I = Ce(m);\n return I && (c.target === I || c.composedPath().includes(I));\n }\n });\n function d(c) {\n const m = H(c);\n return m && m.$.subTree.shapeFlag === 16;\n }\n function h(c, m) {\n const I = H(c), S = I.$.subTree && I.$.subTree.children;\n return S == null || !Array.isArray(S) ? !1 : S.some(($) => $.el === m.target || m.composedPath().includes($.el));\n }\n const k = (c) => {\n const m = Ce(e);\n if (c.target != null && !(!(m instanceof Element) && d(e) && h(e, c)) && !(!m || m === c.target || c.composedPath().includes(m))) {\n if (\"detail\" in c && c.detail === 0 && (i = !r(c)), !i) {\n i = !0;\n return;\n }\n t(c);\n }\n };\n let g = !1;\n const p = [\n Pe(n, \"click\", (c) => {\n g || (g = !0, setTimeout(() => {\n g = !1;\n }, 0), k(c));\n }, {\n passive: !0,\n capture: o\n }),\n Pe(n, \"pointerdown\", (c) => {\n const m = Ce(e);\n i = !r(c) && !!(m && !c.composedPath().includes(m));\n }, { passive: !0 }),\n s && Pe(n, \"blur\", (c) => {\n setTimeout(() => {\n var m;\n const I = Ce(e);\n ((m = n.document.activeElement) === null || m === void 0 ? void 0 : m.tagName) === \"IFRAME\" && !I?.contains(n.document.activeElement) && t(c);\n }, 0);\n }, { passive: !0 })\n ].filter(Boolean), v = () => p.forEach((c) => c());\n return u ? {\n stop: v,\n cancel: () => {\n i = !1;\n },\n trigger: (c) => {\n i = !0, k(c), i = !1;\n }\n } : v;\n}\n// @__NO_SIDE_EFFECTS__\nfunction Xn() {\n const e = he(!1), t = Ct();\n return t && Re(() => {\n e.value = !0;\n }, t), e;\n}\n// @__NO_SIDE_EFFECTS__\nfunction Jt(e) {\n const t = /* @__PURE__ */ Xn();\n return R(() => (t.value, !!e()));\n}\nfunction Qt(e, t, l = {}) {\n const { window: n = Xe, ...a } = l;\n let o;\n const s = /* @__PURE__ */ Jt(() => n && \"MutationObserver\" in n), u = () => {\n o && (o.disconnect(), o = void 0);\n }, i = le(R(() => {\n const h = et(H(e)).map(Ce).filter(Fn);\n return new Set(h);\n }), (h) => {\n u(), s.value && h.size && (o = new MutationObserver(t), h.forEach((k) => o.observe(k, a)));\n }, {\n immediate: !0,\n flush: \"post\"\n }), r = () => o?.takeRecords(), d = () => {\n i(), u();\n };\n return Vt(d), {\n isSupported: s,\n stop: d,\n takeRecords: r\n };\n}\nconst Ke = {\n speed: 2,\n margin: 30,\n direction: \"both\"\n};\nfunction jn(e) {\n e.scrollLeft > e.scrollWidth - e.clientWidth && (e.scrollLeft = Math.max(0, e.scrollWidth - e.clientWidth)), e.scrollTop > e.scrollHeight - e.clientHeight && (e.scrollTop = Math.max(0, e.scrollHeight - e.clientHeight));\n}\nfunction ut(e, t = {}) {\n var l, n, a, o;\n const { pointerTypes: s, preventDefault: u, stopPropagation: i, exact: r, onMove: d, onEnd: h, onStart: k, initialValue: g, axis: p = \"both\", draggingElement: v = Xe, containerElement: c, handle: m = e, buttons: I = [0], restrictInView: S, autoScroll: $ = !1 } = t, D = E((l = H(g)) !== null && l !== void 0 ? l : {\n x: 0,\n y: 0\n }), L = E(), q = (M) => s ? s.includes(M.pointerType) : !0, A = (M) => {\n H(u) && M.preventDefault(), H(i) && M.stopPropagation();\n }, O = H($), _ = typeof O == \"object\" ? {\n speed: (n = H(O.speed)) !== null && n !== void 0 ? n : Ke.speed,\n margin: (a = H(O.margin)) !== null && a !== void 0 ? a : Ke.margin,\n direction: (o = O.direction) !== null && o !== void 0 ? o : Ke.direction\n } : Ke, J = (M) => typeof M == \"number\" ? [M, M] : [M.x, M.y], ne = (M, T, B) => {\n const { clientWidth: U, clientHeight: Y, scrollLeft: ve, scrollTop: Ee, scrollWidth: Ve, scrollHeight: F } = M, [Z, j] = J(_.margin), [oe, ue] = J(_.speed);\n let re = 0, de = 0;\n (_.direction === \"x\" || _.direction === \"both\") && (B.x < Z && ve > 0 ? re = -oe : B.x + T.width > U - Z && ve < Ve - U && (re = oe)), (_.direction === \"y\" || _.direction === \"both\") && (B.y < j && Ee > 0 ? de = -ue : B.y + T.height > Y - j && Ee < F - Y && (de = ue)), (re || de) && M.scrollBy({\n left: re,\n top: de,\n behavior: \"auto\"\n });\n };\n let se = null;\n const Ie = () => {\n const M = H(c);\n M && !se && (se = setInterval(() => {\n const T = H(e).getBoundingClientRect(), { x: B, y: U } = D.value, Y = {\n x: B - M.scrollLeft,\n y: U - M.scrollTop\n };\n Y.x >= 0 && Y.y >= 0 && (ne(M, T, Y), Y.x += M.scrollLeft, Y.y += M.scrollTop, D.value = Y);\n }, 1e3 / 60));\n }, be = () => {\n se && (clearInterval(se), se = null);\n }, He = (M, T, B, U) => {\n const [Y, ve] = typeof B == \"number\" ? [B, B] : [B.x, B.y], { clientWidth: Ee, clientHeight: Ve } = T;\n return M.x < Y || M.x + U.width > Ee - Y || M.y < ve || M.y + U.height > Ve - ve;\n }, Ne = () => {\n if (H(t.disabled) || !L.value) return;\n const M = H(c);\n if (!M) return;\n const T = H(e).getBoundingClientRect(), { x: B, y: U } = D.value;\n He({\n x: B - M.scrollLeft,\n y: U - M.scrollTop\n }, M, _.margin, T) ? Ie() : be();\n };\n H($) && le(D, Ne);\n const me = (M) => {\n var T;\n if (!H(I).includes(M.button) || H(t.disabled) || !q(M) || H(r) && M.target !== H(e)) return;\n const B = H(c), U = B == null || (T = B.getBoundingClientRect) === null || T === void 0 ? void 0 : T.call(B), Y = H(e).getBoundingClientRect(), ve = {\n x: M.clientX - (B ? Y.left - U.left + ($ ? 0 : B.scrollLeft) : Y.left),\n y: M.clientY - (B ? Y.top - U.top + ($ ? 0 : B.scrollTop) : Y.top)\n };\n k?.(ve, M) !== !1 && (L.value = ve, A(M));\n }, Te = (M) => {\n if (H(t.disabled) || !q(M) || !L.value) return;\n const T = H(c);\n T instanceof HTMLElement && jn(T);\n const B = H(e).getBoundingClientRect();\n let { x: U, y: Y } = D.value;\n if ((p === \"x\" || p === \"both\") && (U = M.clientX - L.value.x, T && (U = Math.min(Math.max(0, U), T.scrollWidth - B.width))), (p === \"y\" || p === \"both\") && (Y = M.clientY - L.value.y, T && (Y = Math.min(Math.max(0, Y), T.scrollHeight - B.height))), H($) && T && (se === null && ne(T, B, {\n x: U,\n y: Y\n }), U += T.scrollLeft, Y += T.scrollTop), T && (S || $)) {\n if (p !== \"y\") {\n const ve = U - T.scrollLeft;\n ve < 0 ? U = T.scrollLeft : ve > T.clientWidth - B.width && (U = T.clientWidth - B.width + T.scrollLeft);\n }\n if (p !== \"x\") {\n const ve = Y - T.scrollTop;\n ve < 0 ? Y = T.scrollTop : ve > T.clientHeight - B.height && (Y = T.clientHeight - B.height + T.scrollTop);\n }\n }\n D.value = {\n x: U,\n y: Y\n }, d?.(D.value, M), A(M);\n }, Be = (M) => {\n H(t.disabled) || !q(M) || L.value && (L.value = void 0, $ && be(), h?.(D.value, M), A(M));\n };\n if (Kt) {\n const M = () => {\n var T;\n return {\n capture: (T = t.capture) !== null && T !== void 0 ? T : !0,\n passive: !H(u)\n };\n };\n Pe(m, \"pointerdown\", me, M), Pe(v, \"pointermove\", Te, M), Pe(v, \"pointerup\", Be, M);\n }\n return {\n ...zn(D),\n position: D,\n isDragging: R(() => !!L.value),\n style: R(() => `\n left: ${D.value.x}px;\n top: ${D.value.y}px;\n ${$ ? \"text-wrap: nowrap;\" : \"\"}\n `)\n };\n}\nfunction nt(e, t, l = {}) {\n const { window: n = Xe, ...a } = l;\n let o;\n const s = /* @__PURE__ */ Jt(() => n && \"ResizeObserver\" in n), u = () => {\n o && (o.disconnect(), o = void 0);\n }, i = le(R(() => {\n const d = H(e);\n return Array.isArray(d) ? d.map((h) => Ce(h)) : [Ce(d)];\n }), (d) => {\n if (u(), s.value && n) {\n o = new ResizeObserver(t);\n for (const h of d) h && o.observe(h, a);\n }\n }, {\n immediate: !0,\n flush: \"post\"\n }), r = () => {\n u(), i();\n };\n return Vt(r), {\n isSupported: s,\n stop: r\n };\n}\nfunction Oe(e, t = {}) {\n const { reset: l = !0, windowResize: n = !0, windowScroll: a = !0, immediate: o = !0, updateTiming: s = \"sync\" } = t, u = he(0), i = he(0), r = he(0), d = he(0), h = he(0), k = he(0), g = he(0), p = he(0);\n function v() {\n const m = Ce(e);\n if (!m) {\n l && (u.value = 0, i.value = 0, r.value = 0, d.value = 0, h.value = 0, k.value = 0, g.value = 0, p.value = 0);\n return;\n }\n const I = m.getBoundingClientRect();\n u.value = I.height, i.value = I.bottom, r.value = I.left, d.value = I.right, h.value = I.top, k.value = I.width, g.value = I.x, p.value = I.y;\n }\n function c() {\n s === \"sync\" ? v() : s === \"next-frame\" && requestAnimationFrame(() => v());\n }\n return nt(e, c), le(() => Ce(e), (m) => !m && c()), Qt(e, c, { attributeFilter: [\"style\", \"class\"] }), a && Pe(\"scroll\", c, {\n capture: !0,\n passive: !0\n }), n && Pe(\"resize\", c, { passive: !0 }), _n(() => {\n o && c();\n }), {\n height: u,\n bottom: i,\n left: r,\n right: d,\n top: h,\n width: k,\n x: g,\n y: p,\n update: c\n };\n}\nfunction dt(e) {\n return typeof Window < \"u\" && e instanceof Window ? e.document.documentElement : typeof Document < \"u\" && e instanceof Document ? e.documentElement : e;\n}\nconst ct = /* @__PURE__ */ new WeakMap();\nfunction Kn(e, t = !1) {\n const l = he(t);\n let n = \"\";\n le(Zn(e), (s) => {\n const u = dt(H(s));\n if (u) {\n const i = u;\n if (ct.get(i) || ct.set(i, i.style.overflow), i.style.overflow !== \"hidden\" && (n = i.style.overflow), i.style.overflow === \"hidden\") return l.value = !0;\n if (l.value) return i.style.overflow = \"hidden\";\n }\n }, { immediate: !0 });\n const a = () => {\n const s = dt(H(e));\n !s || l.value || (s.style.overflow = \"hidden\", l.value = !0);\n }, o = () => {\n const s = dt(H(e));\n !s || !l.value || (s.style.overflow = n, ct.delete(s), l.value = !1);\n };\n return Vt(o), R({\n get() {\n return l.value;\n },\n set(s) {\n s ? a() : o();\n }\n });\n}\nconst Jn = (e) => {\n const t = new DOMParser().parseFromString(e, \"text/html\");\n return Array.from(t.body.childNodes).some((l) => l.nodeType === 1);\n}, Qn = (e = 8) => Array.from({ length: e }, () => Math.floor(Math.random() * 16).toString(16)).join(\"\"), el = [\"data-colindex\", \"data-rowindex\", \"data-editable\", \"contenteditable\", \"tabindex\"], tl = [\"innerHTML\"], nl = { key: 2 }, ll = /* @__PURE__ */ te({\n __name: \"ACell\",\n props: {\n colIndex: {},\n rowIndex: {},\n store: {},\n addNavigation: { type: [Boolean, Object], default: !0 },\n tabIndex: { default: 0 },\n pinned: { type: Boolean, default: !1 },\n debounce: { default: 300 }\n },\n setup(e, { expose: t }) {\n const l = pe(\"cell\"), n = e.store.getCellData(e.colIndex, e.rowIndex), a = E(\"\"), o = E(!1), s = e.store.columns[e.colIndex], u = e.store.rows[e.rowIndex], i = s.align || \"center\", r = s.width || \"40ch\", d = R(() => e.store.getCellDisplayValue(e.colIndex, e.rowIndex)), h = E(null);\n Re(() => {\n if (!s.linkDoctype) return;\n const A = e.store.getCellData(e.colIndex, e.rowIndex);\n if (A != null && typeof A == \"object\") {\n const _ = A, J = _.displayText ?? _.id;\n (typeof J == \"string\" || typeof J == \"number\") && (h.value = String(J));\n return;\n }\n const O = e.store.linkResolver;\n !O || typeof A != \"string\" || A === \"\" || O(s.linkDoctype, A).then((_) => (_ != null && (h.value = _), _));\n });\n const k = R(() => h.value ?? d.value), g = R(() => typeof k.value == \"string\" ? Jn(k.value) : !1), p = R(() => ({\n textAlign: i,\n width: r,\n fontWeight: o.value ? \"bold\" : \"inherit\",\n paddingLeft: e.store.getIndent(e.colIndex, e.store.display[e.rowIndex]?.indent)\n })), v = R(() => ({\n \"sticky-column\": e.pinned,\n \"cell-modified\": o.value\n })), c = () => {\n I(), m();\n }, m = () => {\n const { left: A, bottom: O, width: _, height: J } = Oe(l);\n s.mask, s.modalComponent && e.store.$patch((ne) => {\n ne.modal.visible = !0, ne.modal.colIndex = e.colIndex, ne.modal.rowIndex = e.rowIndex, ne.modal.left = A, ne.modal.bottom = O, ne.modal.width = _, ne.modal.height = J, ne.modal.cell = l.value, typeof s.modalComponent == \"function\" ? ne.modal.component = s.modalComponent({ table: ne.table, row: u, column: s }) : ne.modal.component = s.modalComponent, ne.modal.componentProps = s.modalComponentExtraProps;\n });\n };\n if (e.addNavigation) {\n let A = {\n ...st,\n \"keydown.f2\": m,\n \"keydown.alt.up\": m,\n \"keydown.alt.down\": m,\n \"keydown.alt.left\": m,\n \"keydown.alt.right\": m\n };\n typeof e.addNavigation == \"object\" && (A = {\n ...A,\n ...e.addNavigation\n }), Bt([\n {\n selectors: l,\n handlers: A\n }\n ]);\n }\n const I = () => {\n if (l.value && s.edit) {\n const A = window.getSelection();\n if (A)\n try {\n const O = document.createRange();\n O.selectNodeContents && (O.selectNodeContents(l.value), A.removeAllRanges(), A.addRange(O));\n } catch {\n }\n }\n }, S = () => {\n l.value && (a.value = l.value.textContent, I());\n }, $ = () => {\n try {\n const A = window.getSelection();\n if (A && A.rangeCount > 0 && l.value) {\n const O = A.getRangeAt(0), _ = O.cloneRange();\n if (_.selectNodeContents && _.setEnd)\n return _.selectNodeContents(l.value), _.setEnd(O.endContainer, O.endOffset), _.toString().length;\n }\n } catch {\n }\n return 0;\n }, D = (A) => {\n if (l.value)\n try {\n const O = window.getSelection();\n if (!O) return;\n let _ = 0;\n const J = document.createTreeWalker ? document.createTreeWalker(l.value, NodeFilter.SHOW_TEXT, null) : null;\n if (!J) return;\n let ne, se = null;\n for (; ne = J.nextNode(); ) {\n const Ie = ne, be = _ + Ie.textContent.length;\n if (A <= be && (se = document.createRange(), se.setStart && se.setEnd)) {\n se.setStart(Ie, A - _), se.setEnd(Ie, A - _);\n break;\n }\n _ = be;\n }\n se && O.removeAllRanges && O.addRange && (O.removeAllRanges(), O.addRange(se));\n } catch {\n }\n }, L = (A) => {\n if (!s.edit) return;\n const O = A.target;\n if (O.textContent === a.value)\n return;\n const _ = $();\n a.value = O.textContent, s.format ? (o.value = O.textContent !== e.store.getFormattedValue(e.colIndex, e.rowIndex, n), e.store.setCellText(e.colIndex, e.rowIndex, O.textContent)) : (o.value = O.textContent !== n, e.store.setCellData(e.colIndex, e.rowIndex, O.textContent)), at().then(() => D(_));\n }, q = /* @__PURE__ */ qn(L, e.debounce);\n return t({\n currentData: a\n }), (A, O) => (y(), x(\"td\", {\n ref: \"cell\",\n \"data-colindex\": e.colIndex,\n \"data-rowindex\": e.rowIndex,\n \"data-editable\": V(s).edit,\n contenteditable: V(s).edit,\n tabindex: e.tabIndex,\n spellcheck: !1,\n style: $e(p.value),\n class: ie([\"atable-cell\", v.value]),\n onFocus: S,\n onPaste: L,\n onInput: O[0] || (O[0] = //@ts-ignore\n (..._) => V(q) && V(q)(..._)),\n onClick: c\n }, [\n V(s).cellComponent ? (y(), fe(Ge(V(s).cellComponent), ot({\n key: 0,\n value: k.value\n }, V(s).cellComponentProps), null, 16, [\"value\"])) : g.value ? (y(), x(\"span\", {\n key: 1,\n innerHTML: k.value\n }, null, 8, tl)) : (y(), x(\"span\", nl, P(k.value), 1))\n ], 46, el));\n }\n}), ol = [\"tabindex\"], al = [\"tabindex\"], sl = [\"colspan\"], rl = /* @__PURE__ */ te({\n __name: \"AExpansionRow\",\n props: {\n rowIndex: {},\n store: {},\n tabIndex: { default: () => -1 },\n addNavigation: { type: [Boolean, Object], default: () => st }\n },\n setup(e) {\n const t = pe(\"rowEl\"), l = R(() => e.store.display[e.rowIndex].expanded ? \"▼\" : \"►\");\n if (e.addNavigation) {\n const n = {\n \"keydown.control.g\": (a) => {\n a.stopPropagation(), a.preventDefault(), e.store.toggleRowExpand(e.rowIndex);\n }\n };\n typeof e.addNavigation == \"object\" && Object.assign(n, e.addNavigation), Bt([\n {\n selectors: t,\n handlers: n\n }\n ]);\n }\n return (n, a) => (y(), x(X, null, [\n b(\"tr\", ot(n.$attrs, {\n ref: \"rowEl\",\n tabindex: e.tabIndex,\n class: \"expandable-row\"\n }), [\n b(\"td\", {\n tabIndex: -1,\n class: \"row-index\",\n onClick: a[0] || (a[0] = (o) => e.store.toggleRowExpand(e.rowIndex))\n }, P(l.value), 1),\n Me(n.$slots, \"row\", {}, void 0, !0)\n ], 16, ol),\n e.store.display[e.rowIndex].expanded ? (y(), x(\"tr\", {\n key: 0,\n ref: \"rowExpanded\",\n tabindex: e.tabIndex,\n class: \"expanded-row\"\n }, [\n b(\"td\", {\n tabIndex: -1,\n colspan: e.store.columns.length + 1,\n class: \"expanded-row-content\"\n }, [\n Me(n.$slots, \"content\", {}, void 0, !0)\n ], 8, sl)\n ], 8, al)) : N(\"\", !0)\n ], 64));\n }\n}), Fe = (e, t) => {\n const l = e.__vccOpts || e;\n for (const [n, a] of t)\n l[n] = a;\n return l;\n}, il = /* @__PURE__ */ Fe(rl, [[\"__scopeId\", \"data-v-a42297c7\"]]), ul = [\"colspan\"], dl = {\n ref: \"container\",\n class: \"gantt-container\"\n}, cl = [\"data-rowindex\", \"data-colindex\"], vl = {\n key: 2,\n class: \"gantt-label\"\n}, fl = [\"x1\", \"y1\", \"x2\", \"y2\"], ml = /* @__PURE__ */ te({\n __name: \"AGanttCell\",\n props: {\n store: {},\n columnsCount: {},\n rowIndex: {},\n colIndex: {},\n start: { default: 0 },\n end: { default: 0 },\n colspan: { default: 1 },\n label: { default: \"\" },\n color: { default: \"#cccccc\" }\n },\n emits: [\"connection:create\"],\n setup(e, { expose: t, emit: l }) {\n vn((F) => ({\n v564d6da1: a.value,\n v4f540c19: F.colspan\n }));\n const n = l, a = E(e.color.length >= 6 ? e.color : \"#cccccc\"), o = `gantt-bar-row-${e.rowIndex}-col-${e.colIndex}`, s = pe(\"container\"), u = pe(\"bar\"), i = pe(\"leftResizeHandle\"), r = pe(\"rightResizeHandle\"), d = pe(\"leftConnectionHandle\"), h = pe(\"rightConnectionHandle\"), { width: k } = Oe(s), { left: g, right: p } = Oe(u), v = E(e.start), c = E(e.end || v.value + e.colspan), m = E(!1), I = E(!1), S = E(!1), $ = E(!1), D = E(!1), L = E({ startX: 0, startY: 0, endX: 0, endY: 0 }), q = R(() => Ie.value || ne.value || se.value), A = R(() => e.colspan > 0 ? k.value / e.colspan : 0), O = R(() => {\n const F = v.value / e.colspan * 100, Z = c.value / e.colspan * 100;\n return {\n left: `${F}%`,\n width: `${Z - F}%`,\n backgroundColor: a.value\n };\n }), _ = R(() => ({\n position: \"fixed\",\n top: 0,\n left: 0,\n width: \"100vw\",\n height: \"100vh\",\n pointerEvents: \"none\",\n zIndex: 1e3\n })), J = E({ startX: 0, startPos: 0 }), { isDragging: ne } = ut(i, {\n axis: \"x\",\n onStart: () => be(g.value, v.value),\n onMove: ({ x: F }) => He(F),\n onEnd: ({ x: F }) => Ne(F)\n }), { isDragging: se } = ut(r, {\n axis: \"x\",\n onStart: () => be(p.value, c.value),\n onMove: ({ x: F }) => me(F),\n onEnd: ({ x: F }) => Te(F)\n }), { isDragging: Ie } = ut(u, {\n exact: !0,\n axis: \"x\",\n onStart: () => be(g.value, v.value),\n onMove: ({ x: F }) => Be(F),\n onEnd: ({ x: F }) => M(F)\n });\n Re(() => {\n T();\n }), fn(() => {\n B();\n });\n function be(F, Z) {\n u.value && (u.value.style.transition = \"none\"), J.value = { startX: F, startPos: Z };\n }\n function He(F) {\n if (!ne.value || !u.value) return;\n const Z = (F - J.value.startX) / A.value, j = Math.max(0, Math.min(c.value - 1, J.value.startPos + Z));\n u.value.style.left = `${j / e.colspan * 100}%`, u.value.style.width = `${(c.value - j) / e.colspan * 100}%`;\n }\n function Ne(F) {\n if (!u.value) return;\n const Z = F - J.value.startX, j = Math.round(Z / A.value), oe = v.value, ue = Math.max(0, Math.min(c.value - 1, J.value.startPos + j));\n v.value = ue, e.store.updateGanttBar({\n rowIndex: e.rowIndex,\n colIndex: e.colIndex,\n type: \"resize\",\n edge: \"start\",\n oldStart: oe,\n newStart: ue,\n end: c.value,\n delta: j,\n oldColspan: c.value - oe,\n newColspan: c.value - ue\n });\n }\n function me(F) {\n if (!se.value || !u.value) return;\n const Z = (F - J.value.startX) / A.value, j = Math.max(v.value + 1, Math.min(e.columnsCount, J.value.startPos + Z));\n u.value.style.width = `${(j - v.value) / e.colspan * 100}%`;\n }\n function Te(F) {\n if (!u.value) return;\n const Z = F - J.value.startX, j = Math.round(Z / A.value), oe = c.value, ue = Math.max(v.value + 1, Math.min(e.columnsCount, J.value.startPos + j));\n c.value = ue, e.store.updateGanttBar({\n rowIndex: e.rowIndex,\n colIndex: e.colIndex,\n type: \"resize\",\n edge: \"end\",\n oldEnd: oe,\n newEnd: ue,\n start: v.value,\n delta: j,\n oldColspan: oe - v.value,\n newColspan: ue - v.value\n });\n }\n function Be(F) {\n if (!Ie.value || !u.value) return;\n const Z = (F - J.value.startX) / A.value, j = c.value - v.value, oe = Math.max(0, Math.min(J.value.startPos + Z, e.columnsCount - j));\n u.value.style.left = `${oe / e.colspan * 100}%`;\n }\n function M(F) {\n if (!u.value) return;\n const Z = F - J.value.startX, j = Math.round(Z / A.value), oe = c.value - v.value, ue = v.value, re = c.value;\n let de = J.value.startPos + j, f = de + oe;\n de < 0 ? (de = 0, f = oe) : f > e.columnsCount && (f = e.columnsCount, de = f - oe), v.value = de, c.value = f, e.store.updateGanttBar({\n rowIndex: e.rowIndex,\n colIndex: e.colIndex,\n type: \"bar\",\n oldStart: ue,\n oldEnd: re,\n newStart: de,\n newEnd: f,\n delta: j,\n colspan: f - de\n });\n }\n function T() {\n const { x: F, y: Z } = Oe(u), { x: j, y: oe } = Oe(d), { x: ue, y: re } = Oe(h);\n e.store.registerGanttBar({\n id: o,\n rowIndex: e.rowIndex,\n colIndex: e.colIndex,\n startIndex: v,\n endIndex: c,\n color: a,\n label: e.label,\n position: { x: F, y: Z }\n }), e.store.isDependencyGraphEnabled && (e.store.registerConnectionHandle({\n id: `${o}-connection-left`,\n rowIndex: e.rowIndex,\n colIndex: e.colIndex,\n side: \"left\",\n position: { x: j, y: oe },\n visible: m,\n barId: o\n }), e.store.registerConnectionHandle({\n id: `${o}-connection-right`,\n rowIndex: e.rowIndex,\n colIndex: e.colIndex,\n side: \"right\",\n position: { x: ue, y: re },\n visible: I,\n barId: o\n }));\n }\n function B() {\n e.store.unregisterGanttBar(o), e.store.isDependencyGraphEnabled && (e.store.unregisterConnectionHandle(`${o}-connection-left`), e.store.unregisterConnectionHandle(`${o}-connection-right`));\n }\n function U() {\n e.store.isDependencyGraphEnabled && (m.value = !0, I.value = !0);\n }\n function Y() {\n !S.value && !$.value && (m.value = !1, I.value = !1);\n }\n function ve(F, Z) {\n Z.preventDefault(), Z.stopPropagation(), D.value = !0, F === \"left\" ? S.value = !0 : $.value = !0;\n const j = F === \"left\" ? d.value : h.value;\n if (j) {\n const re = j.getBoundingClientRect(), de = re.left + re.width / 2, f = re.top + re.height / 2;\n L.value = { startX: de, startY: f, endX: de, endY: f };\n }\n const oe = (re) => {\n L.value.endX = re.clientX, L.value.endY = re.clientY;\n }, ue = (re) => {\n Ee(re, F), Ve(oe, ue);\n };\n document.addEventListener(\"mousemove\", oe), document.addEventListener(\"mouseup\", ue);\n }\n function Ee(F, Z) {\n const j = document.elementFromPoint(F.clientX, F.clientY)?.closest(\".connection-handle\");\n if (j && j !== (Z === \"left\" ? d.value : h.value)) {\n const oe = j.closest(\".gantt-bar\");\n if (oe) {\n const ue = parseInt(oe.getAttribute(\"data-rowindex\") || \"0\"), re = parseInt(oe.getAttribute(\"data-colindex\") || \"0\"), de = j.classList.contains(\"left-connection-handle\") ? \"left\" : \"right\", f = `gantt-bar-row-${ue}-col-${re}`, w = e.store.createConnection(\n `${o}-connection-${Z}`,\n `${f}-connection-${de}`\n );\n w && n(\"connection:create\", w);\n }\n }\n }\n function Ve(F, Z) {\n D.value = !1, S.value = !1, $.value = !1, document.removeEventListener(\"mousemove\", F), document.removeEventListener(\"mouseup\", Z), u.value?.matches(\":hover\") || Y();\n }\n return t({\n barStyle: O,\n cleanupConnectionDrag: Ve,\n currentEnd: c,\n handleConnectionDrop: Ee,\n isLeftConnectionDragging: S,\n isLeftConnectionVisible: m,\n isRightConnectionDragging: $,\n isRightConnectionVisible: I,\n showDragPreview: D\n }), (F, Z) => (y(), x(\"td\", {\n class: \"aganttcell\",\n colspan: e.colspan\n }, [\n b(\"div\", dl, [\n b(\"div\", {\n ref: \"bar\",\n \"data-rowindex\": e.rowIndex,\n \"data-colindex\": e.colIndex,\n class: ie([\"gantt-bar\", { \"is-dragging\": q.value }]),\n style: $e(O.value),\n onMouseenter: U,\n onMouseleave: Y\n }, [\n e.store.isDependencyGraphEnabled ? (y(), x(\"div\", {\n key: 0,\n ref: \"leftConnectionHandle\",\n class: ie([\"connection-handle left-connection-handle\", { visible: m.value, \"is-dragging\": S.value }]),\n onMousedown: Z[0] || (Z[0] = ae((j) => ve(\"left\", j), [\"stop\"]))\n }, [...Z[2] || (Z[2] = [\n b(\"div\", { class: \"connection-dot\" }, null, -1)\n ])], 34)) : N(\"\", !0),\n e.store.isDependencyGraphEnabled ? (y(), x(\"div\", {\n key: 1,\n ref: \"rightConnectionHandle\",\n class: ie([\"connection-handle right-connection-handle\", { visible: I.value, \"is-dragging\": $.value }]),\n onMousedown: Z[1] || (Z[1] = ae((j) => ve(\"right\", j), [\"stop\"]))\n }, [...Z[3] || (Z[3] = [\n b(\"div\", { class: \"connection-dot\" }, null, -1)\n ])], 34)) : N(\"\", !0),\n b(\"div\", {\n ref: \"leftResizeHandle\",\n class: ie([\"resize-handle left-resize-handle\", { \"is-dragging\": V(ne) }])\n }, [...Z[4] || (Z[4] = [\n b(\"div\", { class: \"handle-grip\" }, null, -1),\n b(\"div\", { class: \"vertical-indicator left-indicator\" }, null, -1)\n ])], 2),\n e.label ? (y(), x(\"label\", vl, P(e.label), 1)) : N(\"\", !0),\n b(\"div\", {\n ref: \"rightResizeHandle\",\n class: ie([\"resize-handle right-resize-handle\", { \"is-dragging\": V(se) }])\n }, [...Z[5] || (Z[5] = [\n b(\"div\", { class: \"handle-grip\" }, null, -1),\n b(\"div\", { class: \"vertical-indicator right-indicator\" }, null, -1)\n ])], 2)\n ], 46, cl)\n ], 512),\n e.store.isDependencyGraphEnabled && D.value ? (y(), x(\"svg\", {\n key: 0,\n style: $e(_.value)\n }, [\n b(\"line\", {\n x1: L.value.startX,\n y1: L.value.startY,\n x2: L.value.endX,\n y2: L.value.endY,\n stroke: \"#2196f3\",\n \"stroke-width\": \"2\",\n \"stroke-dasharray\": \"5,5\"\n }, null, 8, fl)\n ], 4)) : N(\"\", !0)\n ], 8, ul));\n }\n}), pl = /* @__PURE__ */ Fe(ml, [[\"__scopeId\", \"data-v-032ef6d9\"]]), hl = `<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<svg id=\"Layer_1\" data-name=\"Layer 1\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 64 64\">\n <path d=\"M32,64C14.35,64,0,49.65,0,32S14.35,0,32,0s32,14.35,32,32-14.35,32-32,32ZM32,4c-15.44,0-28,12.56-28,28s12.56,28,28,28,28-12.56,28-28S47.44,4,32,4Z\" style=\"fill: #000; stroke-width: 0px;\"/>\n <polygon points=\"34 18 30 18 30 30 18 30 18 34 30 34 30 46 34 46 34 34 46 34 46 30 34 30 34 18\" style=\"fill: #000; stroke-width: 0px;\"/>\n</svg>\n`, gl = `<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<svg id=\"Layer_1\" data-name=\"Layer 1\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 64 64\">\n <path d=\"M32,64C14.35,64,0,49.65,0,32S14.35,0,32,0s32,14.35,32,32-14.35,32-32,32ZM32,4c-15.44,0-28,12.56-28,28s12.56,28,28,28,28-12.56,28-28S47.44,4,32,4Z\" style=\"fill: #000; stroke-width: 0px;\"/>\n <polygon points=\"46.84 19.99 44.01 17.16 32 29.17 19.99 17.16 17.16 19.99 29.17 32 17.16 44.01 19.99 46.84 32 34.83 44.01 46.84 46.84 44.01 34.83 32 46.84 19.99\" style=\"fill: #000; stroke-width: 0px;\"/>\n</svg>`, yl = `<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<svg id=\"Layer_1\" data-name=\"Layer 1\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 70.67 70.67\">\n <path d=\"M68.67,16.67h-14.67V2c0-1.1-.9-2-2-2H2C.9,0,0,.9,0,2v50c0,1.1.9,2,2,2h14.67v14.67c0,1.1.9,2,2,2h50c1.1,0,2-.9,2-2V18.67c0-1.1-.9-2-2-2ZM4,4h46v46H4V4ZM66.67,66.67H20.67v-12.67h31.33c1.1,0,2-.9,2-2v-31.33h12.67v46Z\" style=\"fill: #000; stroke-width: 0px;\"/>\n <polygon points=\"41 25 29 25 29 13 25 13 25 25 13 25 13 29 25 29 25 41 29 41 29 29 41 29 41 25\" style=\"fill: #000; stroke-width: 0px;\"/>\n</svg>`, wl = `<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<svg id=\"Layer_1\" xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\" viewBox=\"0 0 70.6 61.5\">\n <path d=\"M68.6,45.8v13.7H2v-13.7h66.6M70.6,43.8H0v17.7h70.6v-17.7h0Z\"/>\n <path d=\"M68.6,24.2v13.7H2v-13.7h66.6M70.6,22.2H0v17.7h70.6v-17.7h0Z\"/>\n <g>\n <polygon points=\"70.6 2.5 68.6 2.5 68.6 2 68.1 2 68.1 0 70.6 0 70.6 2.5\"/>\n <path d=\"M65.3,2h-2.9V0h2.9v2ZM59.6,2h-2.9V0h2.9v2ZM53.9,2h-2.9V0h2.9v2ZM48.2,2h-2.9V0h2.9v2ZM42.4,2h-2.9V0h2.9v2ZM36.7,2h-2.9V0h2.9v2ZM31,2h-2.9V0h2.9v2ZM25.3,2h-2.9V0h2.9v2ZM19.6,2h-2.9V0h2.9v2ZM13.9,2h-2.9V0h2.9v2ZM8.2,2h-2.9V0h2.9v2Z\"/>\n <polygon points=\"2 2.5 0 2.5 0 0 2.5 0 2.5 2 2 2 2 2.5\"/>\n <path d=\"M2,13.4H0v-2.7h2v2.7ZM2,8H0v-2.7h2v2.7Z\"/>\n <polygon points=\"2.5 18.7 0 18.7 0 16.2 2 16.2 2 16.7 2.5 16.7 2.5 18.7\"/>\n <path d=\"M65.3,18.7h-2.9v-2h2.9v2ZM59.6,18.7h-2.9v-2h2.9v2ZM53.9,18.7h-2.9v-2h2.9v2ZM48.2,18.7h-2.9v-2h2.9v2ZM42.4,18.7h-2.9v-2h2.9v2ZM36.7,18.7h-2.9v-2h2.9v2ZM31,18.7h-2.9v-2h2.9v2ZM25.3,18.7h-2.9v-2h2.9v2ZM19.6,18.7h-2.9v-2h2.9v2ZM13.9,18.7h-2.9v-2h2.9v2ZM8.2,18.7h-2.9v-2h2.9v2Z\"/>\n <polygon points=\"70.6 18.7 68.1 18.7 68.1 16.7 68.6 16.7 68.6 16.2 70.6 16.2 70.6 18.7\"/>\n <path d=\"M70.6,13.4h-2v-2.7h2v2.7ZM70.6,8h-2v-2.7h2v2.7Z\"/>\n </g>\n</svg>`, bl = `<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<svg id=\"Layer_1\" xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\" viewBox=\"0 0 70.6 61.5\">\n <g>\n <polygon points=\"70.6 45.3 68.6 45.3 68.6 44.8 68.1 44.8 68.1 42.8 70.6 42.8 70.6 45.3\"/>\n <path d=\"M65.3,44.8h-2.9v-2h2.9v2ZM59.6,44.8h-2.9v-2h2.9v2ZM53.9,44.8h-2.9v-2h2.9v2ZM48.2,44.8h-2.9v-2h2.9v2ZM42.4,44.8h-2.9v-2h2.9v2ZM36.7,44.8h-2.9v-2h2.9v2ZM31,44.8h-2.9v-2h2.9v2ZM25.3,44.8h-2.9v-2h2.9v2ZM19.6,44.8h-2.9v-2h2.9v2ZM13.9,44.8h-2.9v-2h2.9v2ZM8.2,44.8h-2.9v-2h2.9v2Z\"/>\n <polygon points=\"2 45.3 0 45.3 0 42.8 2.5 42.8 2.5 44.8 2 44.8 2 45.3\"/>\n <path d=\"M2,56.3H0v-2.7h2v2.7ZM2,50.8H0v-2.7h2v2.7Z\"/>\n <polygon points=\"2.5 61.5 0 61.5 0 59 2 59 2 59.5 2.5 59.5 2.5 61.5\"/>\n <path d=\"M65.3,61.5h-2.9v-2h2.9v2ZM59.6,61.5h-2.9v-2h2.9v2ZM53.9,61.5h-2.9v-2h2.9v2ZM48.2,61.5h-2.9v-2h2.9v2ZM42.4,61.5h-2.9v-2h2.9v2ZM36.7,61.5h-2.9v-2h2.9v2ZM31,61.5h-2.9v-2h2.9v2ZM25.3,61.5h-2.9v-2h2.9v2ZM19.6,61.5h-2.9v-2h2.9v2ZM13.9,61.5h-2.9v-2h2.9v2ZM8.2,61.5h-2.9v-2h2.9v2Z\"/>\n <polygon points=\"70.6 61.5 68.1 61.5 68.1 59.5 68.6 59.5 68.6 59 70.6 59 70.6 61.5\"/>\n <path d=\"M70.6,56.3h-2v-2.7h2v2.7ZM70.6,50.8h-2v-2.7h2v2.7Z\"/>\n </g>\n <path d=\"M68.6,23.7v13.7H2v-13.7h66.6M70.6,21.7H0v17.7h70.6v-17.7h0Z\"/>\n <path d=\"M68.6,2v13.7H2V2h66.6M70.6,0H0v17.7h70.6V0h0Z\"/>\n</svg>`, xl = `<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<svg id=\"Layer_1\" data-name=\"Layer 1\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 70.67 70.64\">\n <path d=\"M70.08,33.9l-9.75-9.75-2.83,2.83,6.33,6.33h-26.51V6.81l6.33,6.33,2.83-2.83L36.75.56c-.75-.75-2.08-.75-2.83,0l-9.75,9.75,2.83,2.83,6.33-6.33v26.5H6.83l6.33-6.33-2.83-2.83L.59,33.9c-.38.38-.59.88-.59,1.41s.21,1.04.59,1.41l9.75,9.75,2.83-2.83-6.33-6.33h26.5v26.51l-6.33-6.33-2.83,2.83,9.75,9.75c.38.38.88.59,1.41.59s1.04-.21,1.41-.59l9.75-9.75-2.83-2.83-6.33,6.33v-26.51h26.51l-6.33,6.33,2.83,2.83,9.75-9.75c.38-.38.59-.88.59-1.41s-.21-1.04-.59-1.41Z\" style=\"fill: #000; stroke-width: 0px;\"/>\n</svg>`, kl = `<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<svg id=\"Layer_1\" data-name=\"Layer 1\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 64 64\">\n <path d=\"M32,64C14.35,64,0,49.65,0,32S14.35,0,32,0s32,14.35,32,32-14.35,32-32,32ZM32,4c-15.44,0-28,12.56-28,28s12.56,28,28,28,28-12.56,28-28S47.44,4,32,4Z\" style=\"fill: #000; stroke-width: 0px;\"/>\n <polygon points=\"18,20 18,44 46,32\" style=\"fill: #000; stroke-width: 0px;\"/>\n</svg>\n`, Ml = {\n add: hl,\n delete: gl,\n duplicate: yl,\n insertAbove: wl,\n insertBelow: bl,\n move: xl,\n open: kl\n}, Il = {\n key: 0,\n class: \"row-actions-dropdown\"\n}, Dl = [\"aria-expanded\"], Tl = [\"onClick\"], Cl = [\"innerHTML\"], $l = { class: \"action-label\" }, Sl = {\n key: 1,\n class: \"row-actions-icons\"\n}, El = [\"title\", \"aria-label\", \"onClick\"], Rl = [\"innerHTML\"], tt = /* @__PURE__ */ te({\n __name: \"ARowActions\",\n props: {\n rowIndex: {},\n store: {},\n config: {},\n position: {}\n },\n emits: [\"action\"],\n setup(e, { emit: t }) {\n const l = e, n = t, a = pe(\"actionsCell\"), o = pe(\"toggleButton\"), s = E(0), u = E(!1), i = E(!1), r = E({ top: 0, left: 0 }), d = {\n add: \"Add Record\",\n delete: \"Delete Record\",\n duplicate: \"Duplicate Record\",\n insertAbove: \"Insert Above\",\n insertBelow: \"Insert Below\",\n move: \"Move Record\",\n open: \"Open Record\"\n }, h = R(() => {\n const m = [], I = l.config.actions || {}, S = [\"open\", \"add\", \"delete\", \"duplicate\", \"insertAbove\", \"insertBelow\", \"move\"];\n for (const $ of S) {\n const D = I[$];\n if (D === !1 || D === void 0) continue;\n let L = !0, q = d[$], A = Ml[$];\n typeof D == \"object\" && (L = D.enabled !== !1, q = D.label || q, A = D.icon || A), L && m.push({ type: $, label: q, icon: A });\n }\n return m;\n }), k = R(() => {\n if (l.config.forceDropdown) return !0;\n const m = l.config.dropdownThreshold ?? 150;\n return m === 0 ? !1 : s.value > 0 && s.value < m;\n }), g = R(() => u.value ? i.value ? {\n position: \"fixed\",\n bottom: `${window.innerHeight - r.value.top}px`,\n left: `${r.value.left}px`,\n top: \"auto\"\n } : {\n position: \"fixed\",\n top: `${r.value.top}px`,\n left: `${r.value.left}px`\n } : {});\n nt(a, (m) => {\n const I = m[0];\n I && (s.value = I.contentRect.width);\n });\n const p = () => {\n u.value || v(), u.value = !u.value;\n }, v = () => {\n if (!o.value) return;\n const m = o.value.getBoundingClientRect(), I = window.innerHeight, S = h.value.length * 40 + 16, $ = I - m.bottom, D = m.top;\n i.value = $ < S && D > S, i.value ? r.value = {\n top: m.top,\n left: m.left\n } : r.value = {\n top: m.bottom,\n left: m.left\n };\n };\n xt(a, () => {\n u.value = !1;\n });\n const c = (m, I) => {\n u.value = !1;\n const S = l.config.actions?.[m];\n typeof S == \"object\" && S.handler && S.handler(l.rowIndex, l.store) === !1 || n(\"action\", m, l.rowIndex, I);\n };\n return (m, I) => (y(), x(\"td\", {\n ref: \"actionsCell\",\n class: ie([\"atable-row-actions\", { \"sticky-column\": e.position === \"before-index\", \"dropdown-active\": u.value }])\n }, [\n k.value ? (y(), x(\"div\", Il, [\n b(\"button\", {\n ref: \"toggleButton\",\n type: \"button\",\n class: \"row-actions-toggle\",\n \"aria-expanded\": u.value,\n \"aria-haspopup\": \"true\",\n onClick: ae(p, [\"stop\"])\n }, [...I[0] || (I[0] = [\n b(\"span\", { class: \"dropdown-icon\" }, \"⋮\", -1)\n ])], 8, Dl),\n K(b(\"div\", {\n class: ie([\"row-actions-menu\", { \"menu-flipped\": i.value }]),\n style: $e(g.value),\n role: \"menu\"\n }, [\n (y(!0), x(X, null, ge(h.value, (S) => (y(), x(\"button\", {\n key: S.type,\n type: \"button\",\n class: \"row-action-menu-item\",\n role: \"menuitem\",\n onClick: ae(($) => c(S.type, $), [\"stop\"])\n }, [\n b(\"span\", {\n class: \"action-icon\",\n innerHTML: S.icon\n }, null, 8, Cl),\n b(\"span\", $l, P(S.label), 1)\n ], 8, Tl))), 128))\n ], 6), [\n [Se, u.value]\n ])\n ])) : (y(), x(\"div\", Sl, [\n (y(!0), x(X, null, ge(h.value, (S) => (y(), x(\"button\", {\n key: S.type,\n type: \"button\",\n class: \"row-action-btn\",\n title: S.label,\n \"aria-label\": S.label,\n onClick: ae(($) => c(S.type, $), [\"stop\"])\n }, [\n b(\"span\", {\n class: \"action-icon\",\n innerHTML: S.icon\n }, null, 8, Rl)\n ], 8, El))), 128))\n ]))\n ], 2));\n }\n}), Al = [\"tabindex\"], Ll = /* @__PURE__ */ te({\n __name: \"ARow\",\n props: {\n rowIndex: {},\n store: {},\n tabIndex: { default: () => -1 },\n addNavigation: { type: [Boolean, Object], default: !1 }\n },\n emits: [\"row:action\", \"row:click\"],\n setup(e, { emit: t }) {\n const l = t, n = pe(\"rowEl\"), a = R(() => e.store.isRowVisible(e.rowIndex)), o = R(() => e.store.getRowExpandSymbol(e.rowIndex)), s = R(() => e.store.config.clickable ?? !1), u = R(() => e.store.config.rowActions || { enabled: !1 }), i = R(() => u.value.enabled), r = R(() => u.value.position || \"before-index\"), d = (k, g, p) => {\n l(\"row:action\", k, g, p);\n }, h = (k) => {\n const g = k.target;\n g.closest(\".atable-row-actions\") || g.closest(\".tree-index\") || l(\"row:click\", e.rowIndex, k);\n };\n if (e.addNavigation) {\n let k = st;\n typeof e.addNavigation == \"object\" && (k = {\n ...k,\n ...e.addNavigation\n }), Bt([\n {\n selectors: n,\n handlers: k\n }\n ]);\n }\n return (k, g) => K((y(), x(\"tr\", {\n ref: \"rowEl\",\n tabindex: e.tabIndex,\n class: ie([\"atable-row\", { \"atable-row-clickable\": s.value }]),\n onClick: h\n }, [\n i.value && r.value === \"before-index\" ? (y(), fe(tt, {\n key: 0,\n \"row-index\": e.rowIndex,\n store: e.store,\n config: u.value,\n position: r.value,\n onAction: d\n }, null, 8, [\"row-index\", \"store\", \"config\", \"position\"])) : N(\"\", !0),\n e.store.config.view !== \"uncounted\" ? Me(k.$slots, \"index\", { key: 1 }, () => [\n e.store.config.view === \"list\" ? (y(), x(\"td\", {\n key: 0,\n tabIndex: -1,\n class: ie([\"list-index\", e.store.hasPinnedColumns ? \"sticky-index\" : \"\"])\n }, P(e.rowIndex + 1), 3)) : e.store.isTreeView ? (y(), x(\"td\", {\n key: 1,\n tabIndex: -1,\n class: ie([\"tree-index\", e.store.hasPinnedColumns ? \"sticky-index\" : \"\"]),\n onClick: g[0] || (g[0] = (p) => e.store.toggleRowExpand(e.rowIndex))\n }, P(o.value), 3)) : N(\"\", !0)\n ], !0) : N(\"\", !0),\n i.value && r.value === \"after-index\" ? (y(), fe(tt, {\n key: 2,\n \"row-index\": e.rowIndex,\n store: e.store,\n config: u.value,\n position: r.value,\n onAction: d\n }, null, 8, [\"row-index\", \"store\", \"config\", \"position\"])) : N(\"\", !0),\n Me(k.$slots, \"default\", {}, void 0, !0),\n i.value && r.value === \"end\" ? (y(), fe(tt, {\n key: 3,\n \"row-index\": e.rowIndex,\n store: e.store,\n config: u.value,\n position: r.value,\n onAction: d\n }, null, 8, [\"row-index\", \"store\", \"config\", \"position\"])) : N(\"\", !0)\n ], 10, Al)), [\n [Se, a.value]\n ]);\n }\n}), en = /* @__PURE__ */ Fe(Ll, [[\"__scopeId\", \"data-v-533161af\"]]), vt = /* @__PURE__ */ new WeakMap(), Hl = {\n mounted(e, t) {\n const l = !t.modifiers.bubble;\n let n;\n if (typeof t.value == \"function\") n = xt(e, t.value, { capture: l });\n else {\n const [a, o] = t.value;\n n = xt(e, a, Object.assign({ capture: l }, o));\n }\n vt.set(e, n);\n },\n unmounted(e) {\n const t = vt.get(e);\n t && typeof t == \"function\" ? t() : t?.stop(), vt.delete(e);\n }\n}, Bl = { mounted(e, t) {\n typeof t.value == \"function\" ? nt(e, t.value) : nt(e, ...t.value);\n} };\nfunction Vl() {\n let e = !1;\n const t = he(!1);\n return (l, n) => {\n if (t.value = n.value, e) return;\n e = !0;\n const a = Kn(l, n.value);\n le(t, (o) => a.value = o);\n };\n}\nVl();\nconst Pl = { class: \"gantt-connection-overlay\" }, Fl = {\n class: \"connection-svg\",\n style: {\n position: \"absolute\",\n top: 0,\n left: 0,\n width: \"100%\",\n height: \"100%\",\n pointerEvents: \"none\",\n zIndex: 1\n }\n}, Nl = [\"d\", \"stroke-width\", \"onDblclick\"], Ol = [\"id\", \"d\", \"stroke\", \"stroke-width\", \"onDblclick\"], Zl = 0.25, Je = 16, Gl = /* @__PURE__ */ te({\n __name: \"AGanttConnection\",\n props: {\n store: {}\n },\n emits: [\"connection:delete\"],\n setup(e, { emit: t }) {\n const l = t, n = R(() => e.store.connectionPaths.filter((s) => {\n const u = e.store.ganttBars.find((r) => r.id === s.from.barId), i = e.store.ganttBars.find((r) => r.id === s.to.barId);\n return u && i;\n })), a = (s) => {\n const u = e.store.connectionHandles.find(\n (q) => q.barId === s.from.barId && q.side === s.from.side\n ), i = e.store.connectionHandles.find(\n (q) => q.barId === s.to.barId && q.side === s.to.side\n );\n if (!u || !i) return \"\";\n const r = u.position.x + Je / 2, d = u.position.y + Je / 2, h = i.position.x + Je / 2, k = i.position.y + Je / 2, g = Math.abs(h - r), p = Math.max(g * Zl, 50), v = r + (s.from.side === \"left\" ? -p : p), c = h + (s.to.side === \"left\" ? -p : p), m = { x: 0.5 * r + 0.5 * v, y: 0.5 * d + 0.5 * d }, I = { x: 0.5 * v + 0.5 * c, y: 0.5 * d + 0.5 * k }, S = { x: 0.5 * c + 0.5 * h, y: 0.5 * k + 0.5 * k }, $ = { x: 0.5 * m.x + 0.5 * I.x, y: 0.5 * m.y + 0.5 * I.y }, D = { x: 0.5 * I.x + 0.5 * S.x, y: 0.5 * I.y + 0.5 * S.y }, L = { x: 0.5 * $.x + 0.5 * D.x, y: 0.5 * $.y + 0.5 * D.y };\n return `M ${r} ${d} Q ${v} ${d}, ${L.x} ${L.y} Q ${c} ${k}, ${h} ${k}`;\n }, o = (s) => {\n e.store.deleteConnection(s.id) && l(\"connection:delete\", s);\n };\n return (s, u) => (y(), x(\"div\", Pl, [\n (y(), x(\"svg\", Fl, [\n u[0] || (u[0] = b(\"defs\", null, [\n b(\"path\", {\n id: \"arrowhead\",\n d: \"M 0 -7 L 20 0 L 0 7Z\",\n stroke: \"black\",\n \"stroke-width\": \"1\",\n fill: \"currentColor\"\n }),\n b(\"marker\", {\n id: \"arrowhead-marker\",\n markerWidth: \"10\",\n markerHeight: \"7\",\n refX: \"5\",\n refY: \"3.5\",\n orient: \"auto\",\n markerUnits: \"strokeWidth\"\n }, [\n b(\"polygon\", {\n points: \"0 0, 10 3.5, 0 7\",\n fill: \"currentColor\"\n })\n ])\n ], -1)),\n (y(!0), x(X, null, ge(n.value, (i) => (y(), x(\"path\", {\n key: `${i.id}-hitbox`,\n d: a(i),\n stroke: \"transparent\",\n \"stroke-width\": (i.style?.width || 2) + 10,\n fill: \"none\",\n class: \"connection-hitbox\",\n onDblclick: (r) => o(i)\n }, null, 40, Nl))), 128)),\n (y(!0), x(X, null, ge(n.value, (i) => (y(), x(\"path\", {\n id: i.id,\n key: i.id,\n d: a(i),\n stroke: i.style?.color || \"#666\",\n \"stroke-width\": i.style?.width || 2,\n fill: \"none\",\n \"marker-mid\": \"url(#arrowhead-marker)\",\n class: \"connection-path animated-path\",\n onDblclick: (r) => o(i)\n }, null, 40, Ol))), 128))\n ]))\n ]));\n }\n}), Ul = /* @__PURE__ */ Fe(Gl, [[\"__scopeId\", \"data-v-d5929c98\"]]), Wl = { class: \"column-filter\" }, ql = {\n key: 2,\n class: \"checkbox-filter\"\n}, zl = [\"value\"], _l = {\n key: 5,\n class: \"date-range-filter\"\n}, Yl = /* @__PURE__ */ te({\n __name: \"ATableColumnFilter\",\n props: {\n column: {},\n colIndex: {},\n store: {}\n },\n setup(e) {\n const t = E(\"\"), l = Tt({\n startValue: \"\",\n endValue: \"\"\n }), n = R(() => {\n if (e.column.filterType) return e.column.filterType;\n switch (e.column.fieldtype) {\n case \"Check\":\n return \"checkbox\";\n case \"Date\":\n return \"date\";\n case \"Datetime\":\n return \"dateRange\";\n case \"Select\":\n return \"select\";\n case \"Int\":\n case \"Float\":\n case \"Currency\":\n case \"Decimal\":\n case \"Quantity\":\n return \"number\";\n default:\n return \"text\";\n }\n }), a = (r) => {\n if (r.filterOptions) return r.filterOptions;\n const d = /* @__PURE__ */ new Set();\n return e.store.rows.forEach((h) => {\n const k = h[r.name];\n k != null && k !== \"\" && d.add(k);\n }), Array.from(d).map((h) => ({\n value: h,\n label: String(h)\n }));\n }, o = R(() => !!(t.value || l.startValue || l.endValue)), s = (r) => {\n !r && n.value !== \"checkbox\" ? (e.store.clearFilter(e.colIndex), t.value = \"\") : (t.value = r, e.store.setFilter(e.colIndex, { value: r }));\n }, u = (r, d) => {\n r === \"start\" ? l.startValue = d : l.endValue = d, !l.startValue && !l.endValue ? e.store.clearFilter(e.colIndex) : e.store.setFilter(e.colIndex, {\n value: null,\n startValue: l.startValue,\n endValue: l.endValue\n });\n }, i = () => {\n t.value = \"\", l.startValue = \"\", l.endValue = \"\", e.store.clearFilter(e.colIndex);\n };\n return (r, d) => (y(), x(\"div\", Wl, [\n n.value === \"text\" ? K((y(), x(\"input\", {\n key: 0,\n \"onUpdate:modelValue\": d[0] || (d[0] = (h) => t.value = h),\n type: \"text\",\n class: \"filter-input\",\n onInput: d[1] || (d[1] = (h) => s(t.value))\n }, null, 544)), [\n [we, t.value]\n ]) : n.value === \"number\" ? K((y(), x(\"input\", {\n key: 1,\n \"onUpdate:modelValue\": d[2] || (d[2] = (h) => t.value = h),\n type: \"number\",\n class: \"filter-input\",\n onInput: d[3] || (d[3] = (h) => s(t.value))\n }, null, 544)), [\n [we, t.value]\n ]) : n.value === \"checkbox\" ? (y(), x(\"label\", ql, [\n K(b(\"input\", {\n \"onUpdate:modelValue\": d[4] || (d[4] = (h) => t.value = h),\n type: \"checkbox\",\n class: \"filter-checkbox\",\n onChange: d[5] || (d[5] = (h) => s(t.value))\n }, null, 544), [\n [_t, t.value]\n ]),\n b(\"span\", null, P(e.column.label), 1)\n ])) : n.value === \"select\" ? K((y(), x(\"select\", {\n key: 3,\n \"onUpdate:modelValue\": d[6] || (d[6] = (h) => t.value = h),\n class: \"filter-select\",\n onChange: d[7] || (d[7] = (h) => s(t.value))\n }, [\n d[15] || (d[15] = b(\"option\", { value: \"\" }, \"All\", -1)),\n (y(!0), x(X, null, ge(a(e.column), (h) => (y(), x(\"option\", {\n key: h.value || h,\n value: h.value || h\n }, P(h.label || h), 9, zl))), 128))\n ], 544)), [\n [Yt, t.value]\n ]) : n.value === \"date\" ? K((y(), x(\"input\", {\n key: 4,\n \"onUpdate:modelValue\": d[8] || (d[8] = (h) => t.value = h),\n type: \"date\",\n class: \"filter-input\",\n onChange: d[9] || (d[9] = (h) => s(t.value))\n }, null, 544)), [\n [we, t.value]\n ]) : n.value === \"dateRange\" ? (y(), x(\"div\", _l, [\n K(b(\"input\", {\n \"onUpdate:modelValue\": d[10] || (d[10] = (h) => l.startValue = h),\n type: \"date\",\n class: \"filter-input\",\n onChange: d[11] || (d[11] = (h) => u(\"start\", l.startValue))\n }, null, 544), [\n [we, l.startValue]\n ]),\n d[16] || (d[16] = b(\"span\", { class: \"date-separator\" }, \"-\", -1)),\n K(b(\"input\", {\n \"onUpdate:modelValue\": d[12] || (d[12] = (h) => l.endValue = h),\n type: \"date\",\n class: \"filter-input\",\n onChange: d[13] || (d[13] = (h) => u(\"end\", l.endValue))\n }, null, 544), [\n [we, l.endValue]\n ])\n ])) : n.value === \"component\" && e.column.filterComponent ? (y(), fe(Ge(e.column.filterComponent), {\n key: 6,\n value: t.value,\n column: e.column,\n \"col-index\": e.colIndex,\n store: e.store,\n \"onUpdate:value\": d[14] || (d[14] = (h) => s(h))\n }, null, 40, [\"value\", \"column\", \"col-index\", \"store\"])) : N(\"\", !0),\n o.value ? (y(), x(\"button\", {\n key: 7,\n class: \"clear-btn\",\n title: \"Clear\",\n onClick: i\n }, \"×\")) : N(\"\", !0)\n ]));\n }\n}), Xl = /* @__PURE__ */ Fe(Yl, [[\"__scopeId\", \"data-v-e0efa4a9\"]]), jl = { key: 0 }, Kl = {\n class: \"atable-header-row\",\n tabindex: \"-1\"\n}, Jl = {\n key: 2,\n class: \"row-actions-header\"\n}, Ql = [\"data-colindex\", \"onClick\"], eo = {\n key: 3,\n class: \"row-actions-header\"\n}, to = {\n key: 0,\n class: \"atable-filters-row\"\n}, no = {\n key: 2,\n class: \"row-actions-header\"\n}, lo = {\n key: 3,\n class: \"row-actions-header\"\n}, tn = /* @__PURE__ */ te({\n __name: \"ATableHeader\",\n props: {\n columns: {},\n store: {}\n },\n setup(e) {\n const t = R(() => e.columns.filter((s) => s.filterable)), l = R(() => e.store.config.rowActions?.enabled ?? !1), n = R(() => e.store.config.rowActions?.position ?? \"before-index\"), a = (s) => e.store.sortByColumn(s), o = (s) => {\n for (const u of s) {\n if (u.borderBoxSize.length === 0) continue;\n const i = u.borderBoxSize[0].inlineSize, r = Number(u.target.dataset.colindex), d = e.store.columns[r]?.width;\n typeof d == \"number\" && d !== i && e.store.resizeColumn(r, i);\n }\n };\n return (s, u) => e.columns.length ? (y(), x(\"thead\", jl, [\n b(\"tr\", Kl, [\n l.value && n.value === \"before-index\" ? (y(), x(\"th\", {\n key: 0,\n class: ie([\"row-actions-header\", { \"sticky-column\": n.value === \"before-index\" }])\n }, null, 2)) : N(\"\", !0),\n e.store.zeroColumn ? (y(), x(\"th\", {\n key: 1,\n id: \"header-index\",\n class: ie([[\n e.store.hasPinnedColumns ? \"sticky-index\" : \"\",\n e.store.isTreeView ? \"tree-index\" : \"\",\n e.store.config.view === \"list-expansion\" ? \"list-expansion-index\" : \"\"\n ], \"list-index\"])\n }, null, 2)) : N(\"\", !0),\n l.value && n.value === \"after-index\" ? (y(), x(\"th\", Jl)) : N(\"\", !0),\n (y(!0), x(X, null, ge(e.columns, (i, r) => K((y(), x(\"th\", {\n key: i.name,\n \"data-colindex\": r,\n tabindex: \"-1\",\n style: $e(e.store.getHeaderCellStyle(i)),\n class: ie(`${i.pinned ? \"sticky-column\" : \"\"} ${i.sortable === !1 ? \"\" : \"cursor-pointer\"}`),\n onClick: (d) => i.sortable !== !1 ? a(r) : void 0\n }, [\n Me(s.$slots, \"default\", {}, () => [\n Mt(P(i.label || String.fromCharCode(r + 97).toUpperCase()), 1)\n ])\n ], 14, Ql)), [\n [V(Bl), o]\n ])), 128)),\n l.value && n.value === \"end\" ? (y(), x(\"th\", eo)) : N(\"\", !0)\n ]),\n t.value.length > 0 ? (y(), x(\"tr\", to, [\n l.value && n.value === \"before-index\" ? (y(), x(\"th\", {\n key: 0,\n class: ie([\"row-actions-header\", { \"sticky-column\": n.value === \"before-index\" }])\n }, null, 2)) : N(\"\", !0),\n e.store.zeroColumn ? (y(), x(\"th\", {\n key: 1,\n class: ie([[\n e.store.hasPinnedColumns ? \"sticky-index\" : \"\",\n e.store.isTreeView ? \"tree-index\" : \"\",\n e.store.config.view === \"list-expansion\" ? \"list-expansion-index\" : \"\"\n ], \"list-index\"])\n }, null, 2)) : N(\"\", !0),\n l.value && n.value === \"after-index\" ? (y(), x(\"th\", no)) : N(\"\", !0),\n (y(!0), x(X, null, ge(e.columns, (i, r) => (y(), x(\"th\", {\n key: `filter-${i.name}`,\n class: ie(`${i.pinned ? \"sticky-column\" : \"\"}`),\n style: $e(e.store.getHeaderCellStyle(i))\n }, [\n i.filterable ? (y(), fe(Xl, {\n key: 0,\n column: i,\n \"col-index\": r,\n store: e.store\n }, null, 8, [\"column\", \"col-index\", \"store\"])) : N(\"\", !0)\n ], 6))), 128)),\n l.value && n.value === \"end\" ? (y(), x(\"th\", lo)) : N(\"\", !0)\n ])) : N(\"\", !0)\n ])) : N(\"\", !0);\n }\n}), nn = /* @__PURE__ */ te({\n __name: \"ATableModal\",\n props: {\n store: {}\n },\n setup(e) {\n const t = pe(\"amodal\"), { width: l, height: n } = Oe(t), a = R(() => {\n if (!(e.store.modal.height && e.store.modal.width && e.store.modal.left && e.store.modal.bottom)) return {};\n const o = e.store.modal.cell?.closest(\"table\");\n if (!o) return {};\n const s = o.offsetHeight || 0, u = o.offsetWidth || 0;\n let i = e.store.modal.cell?.offsetTop || 0;\n const r = o.querySelector(\"thead\")?.offsetHeight || 0;\n i += r, i = i + n.value < s ? i : i - (n.value + e.store.modal.height);\n let d = e.store.modal.cell?.offsetLeft || 0;\n return d = d + l.value <= u ? d : d - (l.value - e.store.modal.width), {\n left: `${d}px`,\n top: `${i}px`\n };\n });\n return (o, s) => (y(), x(\"div\", {\n ref: \"amodal\",\n class: \"amodal\",\n tabindex: \"-1\",\n style: $e(a.value),\n onClick: s[0] || (s[0] = ae(() => {\n }, [\"stop\"])),\n onInput: s[1] || (s[1] = ae(() => {\n }, [\"stop\"]))\n }, [\n Me(o.$slots, \"default\")\n ], 36));\n }\n});\nfunction ln(e, t) {\n const l = t[e];\n if (l.isRoot || l.parent === null || l.parent === void 0)\n return !0;\n const n = l.parent;\n return n < 0 || n >= t.length ? !1 : (t[n].childrenOpen || !1) && ln(n, t);\n}\nfunction oo(e, t, l) {\n const n = l.filterType || \"text\", a = t.value;\n if (!a && n !== \"dateRange\" && n !== \"checkbox\") return !0;\n switch (n) {\n case \"text\":\n return (typeof e == \"object\" && e !== null ? Object.values(e).join(\" \") : String(e || \"\")).toLowerCase().includes(String(a).toLowerCase());\n case \"number\": {\n const o = Number(e), s = Number(a);\n return !isNaN(o) && !isNaN(s) && o === s;\n }\n case \"select\":\n return e === a;\n case \"checkbox\":\n return a === !0 ? !!e : !0;\n case \"date\": {\n let o;\n if (typeof e == \"number\") {\n const u = new Date(e), i = (/* @__PURE__ */ new Date()).getFullYear();\n o = new Date(i, u.getMonth(), u.getDate());\n } else\n o = new Date(String(e));\n const s = new Date(String(a));\n return o.toDateString() === s.toDateString();\n }\n case \"dateRange\": {\n const o = t.startValue, s = t.endValue;\n if (!o && !s) return !0;\n let u;\n if (typeof e == \"number\") {\n const i = new Date(e), r = (/* @__PURE__ */ new Date()).getFullYear();\n u = new Date(r, i.getMonth(), i.getDate());\n } else\n u = new Date(String(e));\n return !(o && u < new Date(String(o)) || s && u > new Date(String(s)));\n }\n default:\n return !0;\n }\n}\nfunction ao(e, t) {\n return t && e === 0 && t > 0 ? `${t}ch` : \"inherit\";\n}\nconst so = (e) => {\n const t = e.id || Qn(), l = e.linkResolver ?? null;\n return yn(`table-${t}`, () => {\n const n = () => {\n const f = [Object.assign({}, { rowModified: !1 })], w = /* @__PURE__ */ new Set();\n for (let G = 0; G < o.value.length; G++) {\n const W = o.value[G];\n W.parent !== null && W.parent !== void 0 && w.add(W.parent);\n }\n const C = (G) => o.value[G]?.gantt !== void 0, z = (G) => {\n for (let W = 0; W < o.value.length; W++)\n if (o.value[W].parent === G && (C(W) || z(W)))\n return !0;\n return !1;\n }, Q = (G) => {\n const W = s.value, ee = W.view === \"tree\" || W.view === \"tree-gantt\" ? W.defaultTreeExpansion : void 0;\n if (!ee) return !0;\n switch (ee) {\n case \"root\":\n return !1;\n // Only root nodes are visible, all children start collapsed\n case \"branch\":\n return z(G);\n case \"leaf\":\n return !0;\n // All nodes should be expanded\n default:\n return !0;\n }\n };\n for (let G = 0; G < o.value.length; G++) {\n const W = o.value[G], ee = W.parent === null || W.parent === void 0, ye = w.has(G);\n f[G] = {\n childrenOpen: Q(G),\n expanded: !1,\n indent: W.indent || 0,\n isParent: ye,\n isRoot: ee,\n rowModified: !1,\n open: ee,\n // This will be recalculated later for non-root nodes\n parent: W.parent\n };\n }\n return f;\n }, a = E(e.columns), o = E(e.rows), s = E(e.config || {}), u = E({}), i = E({}), r = R(() => {\n const f = {};\n for (const [w, C] of a.value.entries())\n for (const [z, Q] of o.value.entries())\n f[`${w}:${z}`] = Q[C.name];\n return f;\n }), d = R({\n get: () => {\n const f = n();\n for (let w = 0; w < f.length; w++)\n u.value[w] && (f[w].rowModified = u.value[w]), i.value[w] && (i.value[w].childrenOpen !== void 0 && (f[w].childrenOpen = i.value[w].childrenOpen), i.value[w].expanded !== void 0 && (f[w].expanded = i.value[w].expanded));\n if ($.value)\n for (let w = 0; w < f.length; w++)\n f[w].isRoot || (f[w].open = ln(w, f));\n return f;\n },\n set: (f) => {\n JSON.stringify(f) !== JSON.stringify(d.value) && (d.value = f);\n }\n }), h = E(e.modal || { visible: !1 }), k = E({}), g = E([]), p = E([]), v = E([]), c = E({\n column: null,\n direction: null\n }), m = E({}), I = R(() => a.value.some((f) => f.pinned)), S = R(() => s.value.view === \"gantt\" || s.value.view === \"tree-gantt\"), $ = R(() => s.value.view === \"tree\" || s.value.view === \"tree-gantt\"), D = R(() => {\n const f = s.value;\n return f.view === \"gantt\" || f.view === \"tree-gantt\" ? f.dependencyGraph !== !1 : !0;\n }), L = R(() => `${Math.ceil(o.value.length / 100 + 1)}ch`), q = R(\n () => s.value.view ? [\"list\", \"tree\", \"tree-gantt\", \"list-expansion\"].includes(s.value.view) : !1\n ), A = R(() => {\n let f = o.value.map((w, C) => ({\n ...w,\n originalIndex: C\n }));\n if (Object.entries(m.value).forEach(([w, C]) => {\n const z = parseInt(w), Q = a.value[z];\n !Q || !(C.value || C.startValue || C.endValue || Q.filterType === \"checkbox\" && C.value !== void 0) || (f = f.filter((G) => {\n const W = G[Q.name];\n return oo(W, C, Q);\n }));\n }), c.value.column !== null && c.value.direction) {\n const w = a.value[c.value.column], C = c.value.direction;\n f.sort((z, Q) => {\n let G = z[w.name], W = Q[w.name];\n G == null && (G = \"\"), W == null && (W = \"\");\n const ee = Number(G), ye = Number(W);\n if (!isNaN(ee) && !isNaN(ye) && G !== \"\" && W !== \"\")\n return C === \"asc\" ? ee - ye : ye - ee;\n {\n const Pt = String(G).toLowerCase(), Ft = String(W).toLowerCase();\n return C === \"asc\" ? Pt.localeCompare(Ft) : Ft.localeCompare(Pt);\n }\n });\n }\n return f;\n }), O = (f, w) => r.value[`${f}:${w}`], _ = (f, w, C) => {\n const z = `${f}:${w}`, Q = a.value[f];\n r.value[z] !== C && (u.value[w] = !0), r.value[z] = C, o.value[w] = {\n ...o.value[w],\n [Q.name]: C\n };\n }, J = (f) => {\n o.value = f;\n }, ne = (f, w, C) => {\n const z = `${f}:${w}`;\n r.value[z] !== C && (u.value[w] = !0, k.value[z] = C);\n }, se = (f) => {\n const w = a.value.indexOf(f) === a.value.length - 1, C = s.value.fullWidth ? f.resizable && !w : f.resizable;\n return {\n width: f.width || \"40ch\",\n textAlign: f.align || \"center\",\n ...C && {\n resize: \"horizontal\",\n overflow: \"hidden\",\n whiteSpace: \"nowrap\"\n }\n };\n }, Ie = (f, w) => {\n if (f < 0 || f >= a.value.length) return;\n const C = Math.max(w, 40);\n a.value[f] = {\n ...a.value[f],\n width: `${C}px`\n };\n }, be = (f) => {\n const w = o.value[f];\n return S.value && w.gantt !== void 0;\n }, He = (f) => !$.value || d.value[f].isRoot || d.value[f].open, Ne = (f) => !$.value && s.value.view !== \"list-expansion\" ? \"\" : $.value && (d.value[f].isRoot || d.value[f].isParent) ? d.value[f].childrenOpen ? \"▼\" : \"►\" : s.value.view === \"list-expansion\" ? d.value[f].expanded ? \"▼\" : \"►\" : \"\", me = (f) => {\n if ($.value) {\n const w = i.value[f] || {}, C = !(w.childrenOpen ?? d.value[f].childrenOpen);\n i.value[f] = {\n ...w,\n childrenOpen: C\n }, C || Te(f);\n } else if (s.value.view === \"list-expansion\") {\n const w = i.value[f] || {}, C = w.expanded ?? d.value[f].expanded;\n i.value[f] = {\n ...w,\n expanded: !C\n };\n }\n }, Te = (f) => {\n for (let w = 0; w < o.value.length; w++)\n if (d.value[w].parent === f) {\n const C = i.value[w] || {};\n i.value[w] = {\n ...C,\n childrenOpen: !1\n }, Te(w);\n }\n }, Be = (f, w) => {\n const C = O(f, w);\n return M(f, w, C);\n }, M = (f, w, C) => {\n const z = a.value[f], Q = o.value[w], G = z.format;\n if (!G)\n switch (z.fieldtype) {\n case \"Check\":\n return C ? \"✓\" : \"✗\";\n case \"Date\":\n return C != null ? new Date(String(C)).toLocaleDateString() : C;\n case \"Datetime\":\n return C != null ? new Date(String(C)).toLocaleString() : C;\n default:\n return C;\n }\n return typeof G == \"function\" ? G(C, { table: r.value, row: Q, column: z }) : typeof G == \"string\" ? Function(`\"use strict\";return (${G})`)()(C, { table: r.value, row: Q, column: z }) : C;\n }, T = (f) => {\n f.target instanceof Node && h.value.parent?.contains(f.target) || h.value.visible && (h.value.visible = !1);\n }, B = (f) => {\n const w = o.value[f.rowIndex]?.gantt;\n w && (f.type === \"resize\" ? f.edge === \"start\" ? (w.startIndex = f.newStart, w.endIndex = f.end, w.colspan = w.endIndex - w.startIndex) : f.edge === \"end\" && (w.startIndex = f.start, w.endIndex = f.newEnd, w.colspan = w.endIndex - w.startIndex) : f.type === \"bar\" && (w.startIndex = f.newStart, w.endIndex = f.newEnd, w.colspan = w.endIndex - w.startIndex));\n }, U = (f) => {\n const w = g.value.findIndex((C) => C.id === f.id);\n w >= 0 ? g.value[w] = f : g.value.push(f);\n }, Y = (f) => {\n const w = g.value.findIndex((C) => C.id === f);\n w >= 0 && g.value.splice(w, 1);\n }, ve = (f) => {\n const w = p.value.findIndex((C) => C.id === f.id);\n w >= 0 ? p.value[w] = f : p.value.push(f);\n }, Ee = (f) => {\n const w = p.value.findIndex((C) => C.id === f);\n w >= 0 && p.value.splice(w, 1);\n }, Ve = (f, w, C) => {\n const z = p.value.find((W) => W.id === f), Q = p.value.find((W) => W.id === w);\n if (!z || !Q)\n return console.warn(\"Cannot create connection: handle not found\"), null;\n const G = {\n id: `connection-${f}-${w}`,\n from: {\n barId: z.barId,\n side: z.side\n },\n to: {\n barId: Q.barId,\n side: Q.side\n },\n style: C?.style,\n label: C?.label\n };\n return v.value.push(G), G;\n }, F = (f) => {\n const w = v.value.findIndex((C) => C.id === f);\n return w >= 0 ? (v.value.splice(w, 1), !0) : !1;\n }, Z = (f) => v.value.filter((w) => w.from.barId === f || w.to.barId === f), j = (f) => p.value.filter((w) => w.barId === f), oe = (f) => {\n if (a.value[f].sortable === !1) return;\n let w;\n c.value.column === f && c.value.direction === \"asc\" ? w = \"desc\" : w = \"asc\", c.value.column = f, c.value.direction = w;\n }, ue = (f, w) => {\n !w.value && !w.startValue && !w.endValue ? delete m.value[f] : m.value[f] = w;\n }, re = (f) => {\n delete m.value[f];\n }, de = (f, w = \"end\") => {\n const C = {};\n for (const Q of a.value)\n C[Q.name] = \"\";\n f && Object.assign(C, f);\n let z;\n return w === \"start\" ? (z = 0, o.value.unshift(C)) : w === \"end\" ? (z = o.value.length, o.value.push(C)) : (z = Math.max(0, Math.min(w, o.value.length)), o.value.splice(z, 0, C)), z;\n };\n return {\n // state\n columns: a,\n config: s,\n connectionHandles: p,\n connectionPaths: v,\n display: d,\n filterState: m,\n ganttBars: g,\n modal: h,\n rows: o,\n sortState: c,\n table: r,\n updates: k,\n // getters\n filteredRows: A,\n hasPinnedColumns: I,\n isGanttView: S,\n isTreeView: $,\n isDependencyGraphEnabled: D,\n numberedRowWidth: L,\n zeroColumn: q,\n // resolver\n linkResolver: l,\n // actions\n addRow: de,\n clearFilter: re,\n closeModal: T,\n createConnection: Ve,\n deleteConnection: F,\n deleteRow: (f) => {\n if (f < 0 || f >= o.value.length)\n return null;\n const [w] = o.value.splice(f, 1);\n delete u.value[f], delete i.value[f];\n const C = {}, z = {};\n for (const [Q, G] of Object.entries(u.value)) {\n const W = parseInt(Q);\n W > f ? C[W - 1] = G : C[W] = G;\n }\n for (const [Q, G] of Object.entries(i.value)) {\n const W = parseInt(Q);\n W > f ? z[W - 1] = G : z[W] = G;\n }\n return u.value = C, i.value = z, w;\n },\n duplicateRow: (f) => {\n if (f < 0 || f >= o.value.length)\n return -1;\n const w = o.value[f], C = JSON.parse(JSON.stringify(w)), z = f + 1;\n return o.value.splice(z, 0, C), z;\n },\n getCellData: O,\n getCellDisplayValue: Be,\n getConnectionsForBar: Z,\n getFormattedValue: M,\n getHandlesForBar: j,\n getHeaderCellStyle: se,\n getIndent: ao,\n getRowExpandSymbol: Ne,\n insertRowAbove: (f, w) => {\n const C = Math.max(0, f);\n return de(w, C);\n },\n insertRowBelow: (f, w) => {\n const C = Math.min(f + 1, o.value.length);\n return de(w, C);\n },\n isRowGantt: be,\n isRowVisible: He,\n moveRow: (f, w) => {\n if (f < 0 || f >= o.value.length || w < 0 || w >= o.value.length || f === w)\n return !1;\n const [C] = o.value.splice(f, 1);\n o.value.splice(w, 0, C);\n const z = {}, Q = {};\n for (const [G, W] of Object.entries(u.value)) {\n const ee = parseInt(G);\n let ye = ee;\n ee === f ? ye = w : f < w ? ee > f && ee <= w && (ye = ee - 1) : ee >= w && ee < f && (ye = ee + 1), z[ye] = W;\n }\n for (const [G, W] of Object.entries(i.value)) {\n const ee = parseInt(G);\n let ye = ee;\n ee === f ? ye = w : f < w ? ee > f && ee <= w && (ye = ee - 1) : ee >= w && ee < f && (ye = ee + 1), Q[ye] = W;\n }\n return u.value = z, i.value = Q, !0;\n },\n registerConnectionHandle: ve,\n registerGanttBar: U,\n resizeColumn: Ie,\n setCellData: _,\n setCellText: ne,\n setFilter: ue,\n sortByColumn: oe,\n toggleRowExpand: me,\n unregisterConnectionHandle: Ee,\n unregisterGanttBar: Y,\n updateGanttBar: B,\n updateRows: J\n };\n })();\n};\nfunction ro(e) {\n return e.filter((t) => !t.hidden && t.fieldtype).map(({ fieldname: t, hidden: l, ...n }) => {\n const a = Object.assign({ name: t }, n);\n if (n.fieldtype === \"Link\" && !n.cellComponent) {\n const o = n, s = typeof o.doctype == \"string\" ? o.doctype : void 0;\n s && (a.linkDoctype = s), n.format || (a.format = (u) => {\n if (u == null) return \"\";\n if (typeof u == \"object\") {\n const i = u.displayText ?? u.id ?? \"\";\n return typeof i == \"string\" || typeof i == \"number\" ? String(i) : \"\";\n }\n return String(u);\n });\n }\n return a;\n });\n}\nconst io = {\n class: \"atable-container\",\n style: { position: \"relative\" }\n}, uo = /* @__PURE__ */ te({\n __name: \"ATable\",\n props: /* @__PURE__ */ xe({\n id: { default: \"\" },\n config: { default: () => new Object() },\n schema: { default: () => [] },\n linkResolver: { type: Function, default: void 0 }\n }, {\n rows: { required: !0 },\n rowsModifiers: {},\n columns: {},\n columnsModifiers: {}\n }),\n emits: /* @__PURE__ */ xe([\"cellUpdate\", \"gantt:drag\", \"connection:event\", \"columns:update\", \"row:add\", \"row:click\", \"row:delete\", \"row:duplicate\", \"row:insert-above\", \"row:insert-below\", \"row:move\", \"row:open\"], [\"update:rows\", \"update:columns\"]),\n setup(e, { expose: t, emit: l }) {\n const n = De(e, \"rows\"), a = De(e, \"columns\"), o = l, s = pe(\"table\"), u = a.value?.length ? a.value : ro(e.schema ?? []), i = yt(\"aformLinkResolver\", null), r = so({\n columns: u,\n rows: n.value,\n id: e.id,\n config: e.config,\n linkResolver: e.linkResolver ?? i\n });\n r.$onAction(({ name: m, store: I, args: S, after: $ }) => {\n if (m === \"setCellData\" || m === \"setCellText\") {\n const [D, L, q] = S, A = I.getCellData(D, L);\n $(() => {\n n.value = [...r.rows], o(\"cellUpdate\", { colIndex: D, rowIndex: L, newValue: q, oldValue: A });\n });\n } else if (m === \"updateGanttBar\") {\n const [D] = S;\n let L = !1;\n D.type === \"resize\" ? L = D.oldColspan !== D.newColspan : D.type === \"bar\" && (L = D.oldStart !== D.newStart || D.oldEnd !== D.newEnd), L && $(() => {\n o(\"gantt:drag\", D);\n });\n } else m === \"resizeColumn\" && $(() => {\n a.value = [...r.columns], o(\"columns:update\", [...r.columns]);\n });\n }), le(\n () => n.value,\n (m) => {\n JSON.stringify(m) !== JSON.stringify(r.rows) && (r.rows = [...m]);\n },\n { deep: !0 }\n ), le(\n a,\n (m) => {\n JSON.stringify(m) !== JSON.stringify(r.columns) && (r.columns = [...m], o(\"columns:update\", [...m]));\n },\n { deep: !0 }\n ), Re(() => {\n a.value?.some((m) => m.pinned) && (h(), r.isTreeView && Qt(s, h, { childList: !0, subtree: !0 }));\n });\n const d = R(() => r.columns.filter((m) => m.pinned).length), h = () => {\n const m = s.value, I = m?.rows[0], S = m?.rows[1], $ = I ? Array.from(I.cells) : [];\n for (const [D, L] of $.entries()) {\n const q = S?.cells[D];\n q && (L.style.width = `${q.offsetWidth}px`);\n }\n for (const D of m?.rows || []) {\n let L = 0;\n const q = [];\n for (const A of D.cells)\n (A.classList.contains(\"sticky-column\") || A.classList.contains(\"sticky-index\")) && (A.style.left = `${L}px`, L += A.offsetWidth, q.push(A));\n q.length > 0 && q[q.length - 1].classList.add(\"sticky-column-edge\");\n }\n };\n window.addEventListener(\"keydown\", (m) => {\n if (m.key === \"Escape\" && r.modal.visible) {\n r.modal.visible = !1;\n const I = r.modal.parent;\n I && at().then(() => I.focus());\n }\n });\n const k = (m) => {\n if (!m.gantt || d.value === 0)\n return r.columns;\n const I = [];\n for (let S = 0; S < d.value; S++) {\n const $ = { ...r.columns[S] };\n $.originalIndex = S, I.push($);\n }\n return I.push({\n ...r.columns[d.value],\n isGantt: !0,\n colspan: m.gantt?.colspan || r.columns.length - d.value,\n originalIndex: d.value,\n width: \"auto\"\n // TODO: refactor to API that can detect when data exists in a cell. Might have be custom and not generalizable\n }), I;\n }, g = (m) => {\n o(\"connection:event\", { type: \"create\", connection: m });\n }, p = (m) => {\n o(\"connection:event\", { type: \"delete\", connection: m });\n }, v = (m, I) => {\n const S = r.rows[m];\n o(\"row:click\", { row: S, rowIndex: m, event: I });\n }, c = (m, I, S) => {\n switch (m) {\n case \"add\": {\n const $ = r.addRow({}, I + 1), D = r.rows[$];\n n.value = [...r.rows], o(\"row:add\", { rowIndex: $, row: D });\n break;\n }\n case \"delete\": {\n const $ = r.deleteRow(I);\n $ && (n.value = [...r.rows], o(\"row:delete\", { rowIndex: I, row: $ }));\n break;\n }\n case \"duplicate\": {\n const $ = r.duplicateRow(I);\n if ($ >= 0) {\n const D = r.rows[$];\n n.value = [...r.rows], o(\"row:duplicate\", { sourceIndex: I, newIndex: $, row: D });\n }\n break;\n }\n case \"insertAbove\": {\n const $ = r.insertRowAbove(I), D = r.rows[$];\n n.value = [...r.rows], o(\"row:insert-above\", { targetIndex: I, newIndex: $, row: D });\n break;\n }\n case \"insertBelow\": {\n const $ = r.insertRowBelow(I), D = r.rows[$];\n n.value = [...r.rows], o(\"row:insert-below\", { targetIndex: I, newIndex: $, row: D });\n break;\n }\n case \"move\": {\n o(\"row:move\", { fromIndex: I, toIndex: -1 });\n break;\n }\n case \"open\": {\n const $ = r.rows[I];\n o(\"row:open\", { row: $, rowIndex: I, event: S });\n break;\n }\n }\n };\n return t({\n store: r,\n createConnection: r.createConnection,\n deleteConnection: r.deleteConnection,\n getConnectionsForBar: r.getConnectionsForBar,\n getHandlesForBar: r.getHandlesForBar,\n // Row action methods\n addRow: r.addRow,\n deleteRow: r.deleteRow,\n duplicateRow: r.duplicateRow,\n insertRowAbove: r.insertRowAbove,\n insertRowBelow: r.insertRowBelow,\n moveRow: r.moveRow\n }), (m, I) => (y(), x(\"div\", io, [\n K((y(), x(\"table\", {\n ref: \"table\",\n class: \"atable\",\n style: $e({\n width: V(r).config.fullWidth ? \"100%\" : \"auto\"\n })\n }, [\n Me(m.$slots, \"header\", { data: V(r) }, () => [\n _e(tn, {\n columns: V(r).columns,\n store: V(r)\n }, null, 8, [\"columns\", \"store\"])\n ], !0),\n b(\"tbody\", null, [\n Me(m.$slots, \"body\", { data: V(r) }, () => [\n (y(!0), x(X, null, ge(V(r).filteredRows, (S, $) => (y(), fe(en, {\n key: `${S.originalIndex}-${$}`,\n row: S,\n \"row-index\": S.originalIndex,\n store: V(r),\n \"onRow:action\": c,\n \"onRow:click\": v\n }, {\n default: wt(() => [\n (y(!0), x(X, null, ge(k(S), (D, L) => (y(), x(X, {\n key: D.name\n }, [\n D.isGantt ? (y(), fe(Ge(D.ganttComponent || \"AGanttCell\"), {\n key: 0,\n store: V(r),\n \"columns-count\": V(r).columns.length - d.value,\n color: S.gantt?.color,\n start: S.gantt?.startIndex,\n end: S.gantt?.endIndex,\n colspan: D.colspan,\n pinned: D.pinned,\n \"row-index\": S.originalIndex,\n \"col-index\": D.originalIndex ?? L,\n style: $e({\n textAlign: D?.align || \"center\",\n minWidth: D?.width || \"40ch\",\n width: V(r).config.fullWidth ? \"auto\" : null\n }),\n \"onConnection:create\": g\n }, null, 40, [\"store\", \"columns-count\", \"color\", \"start\", \"end\", \"colspan\", \"pinned\", \"row-index\", \"col-index\", \"style\"])) : (y(), fe(Ge(D.cellComponent || \"ACell\"), {\n key: 1,\n store: V(r),\n pinned: D.pinned,\n \"row-index\": S.originalIndex,\n \"col-index\": L,\n style: $e({\n textAlign: D?.align || \"center\",\n width: V(r).config.fullWidth ? \"auto\" : null\n }),\n spellcheck: \"false\"\n }, null, 8, [\"store\", \"pinned\", \"row-index\", \"col-index\", \"style\"]))\n ], 64))), 128))\n ]),\n _: 2\n }, 1032, [\"row\", \"row-index\", \"store\"]))), 128))\n ], !0)\n ]),\n Me(m.$slots, \"footer\", { data: V(r) }, void 0, !0),\n Me(m.$slots, \"modal\", { data: V(r) }, () => [\n K(_e(nn, { store: V(r) }, {\n default: wt(() => [\n (y(), fe(Ge(V(r).modal.component), ot({\n key: `${V(r).modal.rowIndex}:${V(r).modal.colIndex}`,\n \"col-index\": V(r).modal.colIndex,\n \"row-index\": V(r).modal.rowIndex,\n store: V(r)\n }, V(r).modal.componentProps), null, 16, [\"col-index\", \"row-index\", \"store\"]))\n ]),\n _: 1\n }, 8, [\"store\"]), [\n [Se, V(r).modal.visible]\n ])\n ], !0)\n ], 4)), [\n [V(Hl), V(r).closeModal]\n ]),\n V(r).isGanttView && V(r).isDependencyGraphEnabled ? (y(), fe(Ul, {\n key: 0,\n store: V(r),\n \"onConnection:delete\": p\n }, null, 8, [\"store\"])) : N(\"\", !0)\n ]));\n }\n}), co = /* @__PURE__ */ Fe(uo, [[\"__scopeId\", \"data-v-ffa2a0fc\"]]), vo = {}, fo = { class: \"aloading\" }, mo = { class: \"aloading-header\" };\nfunction po(e, t) {\n return y(), x(\"div\", fo, [\n b(\"h2\", mo, [\n Me(e.$slots, \"default\", {}, void 0, !0)\n ]),\n t[0] || (t[0] = b(\"div\", { class: \"aloading-bar\" }, null, -1))\n ]);\n}\nconst ho = /* @__PURE__ */ Fe(vo, [[\"render\", po], [\"__scopeId\", \"data-v-a930a25b\"]]), go = {}, yo = { class: \"aloading\" }, wo = { class: \"aloading-header\" };\nfunction bo(e, t) {\n return y(), x(\"div\", yo, [\n b(\"h2\", wo, [\n Me(e.$slots, \"default\", {}, void 0, !0)\n ]),\n t[0] || (t[0] = b(\"div\", { class: \"aloading-bar\" }, null, -1))\n ]);\n}\nconst xo = /* @__PURE__ */ Fe(go, [[\"render\", bo], [\"__scopeId\", \"data-v-e1165876\"]]);\nfunction ko(e) {\n e.component(\"ACell\", ll), e.component(\"AExpansionRow\", il), e.component(\"AGanttCell\", pl), e.component(\"ARow\", en), e.component(\"ARowActions\", tt), e.component(\"ATable\", co), e.component(\"ATableHeader\", tn), e.component(\"ATableLoading\", ho), e.component(\"ATableLoadingBar\", xo), e.component(\"ATableModal\", nn);\n}\nconst Mo = { class: \"aform_form-element\" }, Io = { class: \"aform_field-label\" }, Do = { class: \"aform_display-value\" }, To = [\"for\"], Co = { class: \"aform_checkbox-container aform_input-field\" }, $o = [\"id\", \"disabled\", \"required\"], So = [\"innerHTML\"], Eo = /* @__PURE__ */ te({\n __name: \"ACheckbox\",\n props: /* @__PURE__ */ xe({\n schema: {},\n label: {},\n selectRange: { type: Boolean },\n mask: {},\n required: { type: Boolean },\n mode: {},\n uuid: {},\n validation: { default: () => ({ errorMessage: \"&nbsp;\" }) }\n }, {\n modelValue: { type: [Boolean, String, Array, Set] },\n modelModifiers: {}\n }),\n emits: [\"update:modelValue\"],\n setup(e) {\n const t = De(e, \"modelValue\");\n return (l, n) => (y(), x(\"div\", Mo, [\n e.mode === \"display\" ? (y(), x(X, { key: 0 }, [\n b(\"label\", Io, P(e.label), 1),\n b(\"span\", Do, P(t.value ? \"✓\" : \"✗\"), 1)\n ], 64)) : (y(), x(X, { key: 1 }, [\n b(\"label\", {\n class: \"aform_field-label\",\n for: e.uuid\n }, P(e.label), 9, To),\n b(\"span\", Co, [\n K(b(\"input\", {\n id: e.uuid,\n \"onUpdate:modelValue\": n[0] || (n[0] = (a) => t.value = a),\n type: \"checkbox\",\n class: \"aform_checkbox\",\n disabled: e.mode === \"read\",\n required: e.required\n }, null, 8, $o), [\n [_t, t.value]\n ])\n ]),\n K(b(\"p\", {\n class: \"aform_error\",\n innerHTML: e.validation.errorMessage\n }, null, 8, So), [\n [Se, e.validation.errorMessage]\n ])\n ], 64))\n ]));\n }\n}), ke = (e, t) => {\n const l = e.__vccOpts || e;\n for (const [n, a] of t)\n l[n] = a;\n return l;\n}, Ro = /* @__PURE__ */ ke(Eo, [[\"__scopeId\", \"data-v-cc185b72\"]]), Ao = /* @__PURE__ */ te({\n __name: \"AComboBox\",\n props: {\n schema: {},\n label: {},\n selectRange: { type: Boolean },\n mask: {},\n required: { type: Boolean },\n mode: {},\n uuid: {},\n validation: {},\n event: {},\n cellData: {},\n tableID: {}\n },\n setup(e) {\n return (t, l) => {\n const n = hn(\"ATableModal\");\n return y(), fe(n, {\n event: e.event,\n \"cell-data\": e.cellData,\n class: \"amodal\"\n }, {\n default: wt(() => [...l[0] || (l[0] = [\n b(\"div\", null, [\n b(\"input\", { type: \"text\" }),\n b(\"input\", { type: \"text\" }),\n b(\"input\", { type: \"text\" })\n ], -1)\n ])]),\n _: 1\n }, 8, [\"event\", \"cell-data\"]);\n };\n }\n});\nfunction on(e, t) {\n return It() ? (Dt(e, t), !0) : !1;\n}\n// @__NO_SIDE_EFFECTS__\nfunction qt() {\n const e = /* @__PURE__ */ new Set(), t = (o) => {\n e.delete(o);\n };\n return {\n on: (o) => {\n e.add(o);\n const s = () => t(o);\n return on(s), { off: s };\n },\n off: t,\n trigger: (...o) => Promise.all(Array.from(e).map((s) => s(...o))),\n clear: () => {\n e.clear();\n }\n };\n}\nconst an = typeof window < \"u\" && typeof document < \"u\";\ntypeof WorkerGlobalScope < \"u\" && globalThis instanceof WorkerGlobalScope;\nconst Lo = Object.prototype.toString, Ho = (e) => Lo.call(e) === \"[object Object]\", ze = () => {\n}, Bo = (e, t) => Object.prototype.hasOwnProperty.call(e, t);\nfunction Vo(...e) {\n if (e.length !== 1) return Xt(...e);\n const t = e[0];\n return typeof t == \"function\" ? Et(St(() => ({\n get: t,\n set: ze\n }))) : E(t);\n}\nfunction ft(e) {\n return Array.isArray(e) ? e : [e];\n}\nfunction Po(e, t, l) {\n return le(e, t, {\n ...l,\n immediate: !0\n });\n}\nconst sn = an ? window : void 0, Fo = an ? window.document : void 0;\nfunction Ue(e) {\n var t;\n const l = H(e);\n return (t = l?.$el) !== null && t !== void 0 ? t : l;\n}\nfunction mt(...e) {\n const t = (n, a, o, s) => (n.addEventListener(a, o, s), () => n.removeEventListener(a, o, s)), l = R(() => {\n const n = ft(H(e[0])).filter((a) => a != null);\n return n.every((a) => typeof a != \"string\") ? n : void 0;\n });\n return Po(() => {\n var n, a;\n return [\n (n = (a = l.value) === null || a === void 0 ? void 0 : a.map((o) => Ue(o))) !== null && n !== void 0 ? n : [sn].filter((o) => o != null),\n ft(H(l.value ? e[1] : e[0])),\n ft(V(l.value ? e[2] : e[1])),\n H(l.value ? e[3] : e[2])\n ];\n }, ([n, a, o, s], u, i) => {\n if (!n?.length || !a?.length || !o?.length) return;\n const r = Ho(s) ? { ...s } : s, d = n.flatMap((h) => a.flatMap((k) => o.map((g) => t(h, k, g, r))));\n i(() => {\n d.forEach((h) => h());\n });\n }, { flush: \"post\" });\n}\nfunction lt(e, t, l = {}) {\n const { window: n = sn, ignore: a = [], capture: o = !0, detectIframe: s = !1, controls: u = !1 } = l;\n if (!n) return u ? {\n stop: ze,\n cancel: ze,\n trigger: ze\n } : ze;\n let i = !0;\n const r = (c) => H(a).some((m) => {\n if (typeof m == \"string\") return Array.from(n.document.querySelectorAll(m)).some((I) => I === c.target || c.composedPath().includes(I));\n {\n const I = Ue(m);\n return I && (c.target === I || c.composedPath().includes(I));\n }\n });\n function d(c) {\n const m = H(c);\n return m && m.$.subTree.shapeFlag === 16;\n }\n function h(c, m) {\n const I = H(c), S = I.$.subTree && I.$.subTree.children;\n return S == null || !Array.isArray(S) ? !1 : S.some(($) => $.el === m.target || m.composedPath().includes($.el));\n }\n const k = (c) => {\n const m = Ue(e);\n if (c.target != null && !(!(m instanceof Element) && d(e) && h(e, c)) && !(!m || m === c.target || c.composedPath().includes(m))) {\n if (\"detail\" in c && c.detail === 0 && (i = !r(c)), !i) {\n i = !0;\n return;\n }\n t(c);\n }\n };\n let g = !1;\n const p = [\n mt(n, \"click\", (c) => {\n g || (g = !0, setTimeout(() => {\n g = !1;\n }, 0), k(c));\n }, {\n passive: !0,\n capture: o\n }),\n mt(n, \"pointerdown\", (c) => {\n const m = Ue(e);\n i = !r(c) && !!(m && !c.composedPath().includes(m));\n }, { passive: !0 }),\n s && mt(n, \"blur\", (c) => {\n setTimeout(() => {\n var m;\n const I = Ue(e);\n ((m = n.document.activeElement) === null || m === void 0 ? void 0 : m.tagName) === \"IFRAME\" && !I?.contains(n.document.activeElement) && t(c);\n }, 0);\n }, { passive: !0 })\n ].filter(Boolean), v = () => p.forEach((c) => c());\n return u ? {\n stop: v,\n cancel: () => {\n i = !1;\n },\n trigger: (c) => {\n i = !0, k(c), i = !1;\n }\n } : v;\n}\nconst No = {\n multiple: !0,\n accept: \"*\",\n reset: !1,\n directory: !1\n};\nfunction Oo(e) {\n if (!e) return null;\n if (e instanceof FileList) return e;\n const t = new DataTransfer();\n for (const l of e) t.items.add(l);\n return t.files;\n}\nfunction Zo(e = {}) {\n const { document: t = Fo } = e, l = E(Oo(e.initialFiles)), { on: n, trigger: a } = /* @__PURE__ */ qt(), { on: o, trigger: s } = /* @__PURE__ */ qt(), u = R(() => {\n var h;\n const k = (h = Ue(e.input)) !== null && h !== void 0 ? h : t ? t.createElement(\"input\") : void 0;\n return k && (k.type = \"file\", k.onchange = (g) => {\n l.value = g.target.files, a(l.value);\n }, k.oncancel = () => {\n s();\n }), k;\n }), i = () => {\n l.value = null, u.value && u.value.value && (u.value.value = \"\", a(null));\n }, r = (h) => {\n const k = u.value;\n k && (k.multiple = H(h.multiple), k.accept = H(h.accept), k.webkitdirectory = H(h.directory), Bo(h, \"capture\") && (k.capture = H(h.capture)));\n }, d = (h) => {\n const k = u.value;\n if (!k) return;\n const g = {\n ...No,\n ...e,\n ...h\n };\n r(g), H(g.reset) && i(), k.click();\n };\n return $t(() => {\n r(e);\n }), {\n files: Et(l),\n open: d,\n reset: i,\n onCancel: o,\n onChange: n\n };\n}\nfunction pt(e) {\n return typeof Window < \"u\" && e instanceof Window ? e.document.documentElement : typeof Document < \"u\" && e instanceof Document ? e.documentElement : e;\n}\nconst ht = /* @__PURE__ */ new WeakMap();\nfunction Go(e, t = !1) {\n const l = he(t);\n let n = \"\";\n le(Vo(e), (s) => {\n const u = pt(H(s));\n if (u) {\n const i = u;\n if (ht.get(i) || ht.set(i, i.style.overflow), i.style.overflow !== \"hidden\" && (n = i.style.overflow), i.style.overflow === \"hidden\") return l.value = !0;\n if (l.value) return i.style.overflow = \"hidden\";\n }\n }, { immediate: !0 });\n const a = () => {\n const s = pt(H(e));\n !s || l.value || (s.style.overflow = \"hidden\", l.value = !0);\n }, o = () => {\n const s = pt(H(e));\n !s || !l.value || (s.style.overflow = n, ht.delete(s), l.value = !1);\n };\n return on(o), R({\n get() {\n return l.value;\n },\n set(s) {\n s ? a() : o();\n }\n });\n}\nconst Uo = { class: \"aform_display-value\" }, Wo = { key: 0 }, qo = {\n key: 1,\n ref: \"datepicker\",\n class: \"adatepicker\",\n tabindex: \"0\"\n}, zo = {\n colspan: \"5\",\n tabindex: -1\n}, _o = { key: 0 }, Yo = { colspan: \"7\" }, Xo = { class: \"date-input\" }, jo = [\"value\"], Ko = [\"value\"], Jo = [\"onClick\", \"onKeydown\", \"onMouseover\"], Qo = 6, zt = 7, ea = /* @__PURE__ */ te({\n __name: \"ADatePicker\",\n props: /* @__PURE__ */ xe({\n schema: {},\n label: {},\n selectRange: { type: Boolean, default: !1 },\n mask: {},\n required: { type: Boolean },\n mode: {},\n uuid: {},\n validation: {}\n }, {\n modelValue: { default: /* @__PURE__ */ new Date() },\n modelModifiers: {}\n }),\n emits: /* @__PURE__ */ xe([\"get-date\"], [\"update:modelValue\"]),\n setup(e, { expose: t, emit: l }) {\n const n = De(e, \"modelValue\"), a = E(new Date(n.value)), o = E(a.value.getMonth()), s = E(a.value.getFullYear()), u = E([]), i = E(new Date(n.value)), r = E(null), d = E(null), h = pe(\"start-date-input\"), k = pe(\"end-date-input\"), g = l, p = R(() => new Date(s.value, o.value, 1).toLocaleDateString(void 0, {\n year: \"numeric\",\n month: \"long\"\n })), v = R(() => r.value != null ? m(r.value) : \"\"), c = R(() => d.value != null ? m(d.value) : \"\"), m = (M) => me(M) ? M.getMonth() + 1 + \"/\" + M.getDate() + \"/\" + M.getFullYear() : \"\", I = (M) => {\n const T = /* @__PURE__ */ new Date();\n return o.value !== T.getMonth() ? !1 : T.toDateString() === new Date(M).toDateString();\n }, S = (M) => new Date(M).toDateString() === new Date(a.value).toDateString(), $ = (M) => {\n const T = r.value;\n return me(T) ? new Date(M).toDateString() === T.toDateString() : !1;\n }, D = (M) => {\n const T = d.value;\n return me(T) ? new Date(M).toDateString() === T.toDateString() : !1;\n }, L = (M, T) => (M - 1) * zt + T, q = (M) => {\n const T = r.value;\n if (!me(T)) return !1;\n const B = new Date(M), U = d.value, Y = me(U) ? U : new Date(i.value);\n return B.getTime() > T.getTime() && B.getTime() < Y.getTime();\n }, A = (M, T) => u.value[L(M, T)], O = (M) => {\n i.value = new Date(u.value[M]);\n }, _ = () => {\n u.value = [];\n const M = new Date(s.value, o.value, 1), T = M.getDay(), B = M.setDate(M.getDate() - T);\n for (const U of Array(43).keys())\n u.value.push(B + U * 864e5);\n }, J = () => s.value -= 1, ne = () => s.value += 1, se = () => {\n o.value == 0 ? (o.value = 11, J()) : o.value -= 1;\n }, Ie = () => {\n o.value == 11 ? (o.value = 0, ne()) : o.value += 1;\n }, be = (M) => {\n M.key === \"Enter\" && Te();\n }, He = (M) => {\n if (n.value = a.value = new Date(u.value[M]), e.selectRange) {\n const T = r.value;\n T == null || d.value != null ? (r.value = n.value, d.value = null) : me(T) && a.value.getTime() < T.getTime() ? (d.value = null, r.value = n.value) : d.value = n.value, h.value && (h.value.value = m(r.value) ?? \"\"), k.value && (k.value.value = m(d.value) ?? \"\");\n }\n Be();\n }, Ne = () => {\n const M = r.value, T = d.value;\n me(T) && me(M) && T.getTime() < M.getTime() && ([r.value, d.value] = [T, M]);\n }, me = (M) => M instanceof Date && !isNaN(M.getTime()), Te = () => {\n if (h.value?.value == \"\")\n r.value = null;\n else if (h.value) {\n const M = new Date(h.value.value);\n r.value = me(M) ? M : null;\n }\n if (k.value?.value == \"\")\n d.value = null;\n else if (k.value) {\n const M = new Date(k.value.value);\n d.value = me(M) ? M : null;\n }\n me(r.value) && (me(d.value) && Ne(), a.value = r.value), Be();\n }, Be = () => {\n g(\"get-date\", {\n start: e.selectRange ? r.value : null,\n end: e.selectRange ? d.value : null,\n selected: a.value\n });\n };\n return Re(async () => {\n _(), await at();\n const M = document.getElementsByClassName(\"selectedDate\");\n if (M.length > 0)\n M[0].focus();\n else {\n const T = document.getElementsByClassName(\"todaysDate\");\n T.length > 0 && T[0].focus();\n }\n }), le([o, s], _), t({ currentMonth: o, currentYear: s, selectedDate: a }), (M, T) => e.mode === \"display\" || e.mode === \"read\" ? (y(), x(X, { key: 0 }, [\n b(\"span\", Uo, P(n.value ? new Date(n.value).toLocaleDateString() : \"\"), 1),\n e.label ? (y(), x(\"label\", Wo, P(e.label), 1)) : N(\"\", !0)\n ], 64)) : (y(), x(\"div\", qo, [\n b(\"table\", null, [\n b(\"tbody\", null, [\n b(\"tr\", null, [\n b(\"td\", {\n id: \"previous-month-btn\",\n tabindex: -1,\n onClick: se\n }, \"<\"),\n b(\"th\", zo, P(p.value), 1),\n b(\"td\", {\n id: \"next-month-btn\",\n tabindex: -1,\n onClick: Ie\n }, \">\")\n ]),\n e.selectRange ? (y(), x(\"tr\", _o, [\n b(\"td\", Yo, [\n b(\"div\", Xo, [\n b(\"input\", {\n ref: \"start-date-input\",\n value: v.value,\n class: \"date-input-start aform_input-field\",\n type: \"text\",\n placeholder: \"start date\",\n onBlur: T[0] || (T[0] = (B) => Te()),\n onKeydown: be\n }, null, 40, jo),\n T[2] || (T[2] = b(\"div\", null, \"-\", -1)),\n b(\"input\", {\n ref: \"end-date-input\",\n value: c.value,\n class: \"date-input-end aform_input-field\",\n type: \"text\",\n placeholder: \"end date\",\n onBlur: T[1] || (T[1] = (B) => Te()),\n onKeydown: be\n }, null, 40, Ko)\n ])\n ])\n ])) : N(\"\", !0),\n T[3] || (T[3] = b(\"tr\", { class: \"days-header\" }, [\n b(\"td\", null, \"M\"),\n b(\"td\", null, \"T\"),\n b(\"td\", null, \"W\"),\n b(\"td\", null, \"T\"),\n b(\"td\", null, \"F\"),\n b(\"td\", null, \"S\"),\n b(\"td\", null, \"S\")\n ], -1)),\n (y(), x(X, null, ge(Qo, (B) => b(\"tr\", { key: B }, [\n (y(), x(X, null, ge(zt, (U) => b(\"td\", {\n ref_for: !0,\n ref: \"celldate\",\n key: L(B, U),\n class: ie([\"date-cell\", {\n todaysDate: I(A(B, U)),\n selectedDate: S(A(B, U)),\n withinRange: e.selectRange ? q(A(B, U)) : !1,\n startDate: e.selectRange ? $(A(B, U)) : !1,\n endDate: e.selectRange ? D(A(B, U)) : !1\n }]),\n contenteditable: !1,\n spellcheck: !1,\n tabindex: 0,\n onClick: ae((Y) => He(L(B, U)), [\"prevent\", \"stop\"]),\n onKeydown: ce((Y) => He(L(B, U)), [\"enter\"]),\n onMouseover: (Y) => O(L(B, U))\n }, P(new Date(A(B, U)).getDate()), 43, Jo)), 64))\n ])), 64))\n ])\n ])\n ], 512));\n }\n}), rn = /* @__PURE__ */ ke(ea, [[\"__scopeId\", \"data-v-4b066fd6\"]]), ta = { class: \"adate_time\" }, na = { class: \"adate_time_fields\" }, la = [\"onKeydown\"], oa = [\"onKeydown\"], aa = {\n key: 0,\n class: \"colon\"\n}, sa = [\"onKeydown\"], ra = /* @__PURE__ */ te({\n __name: \"ADateTime\",\n props: {\n allowMilitaryTime: { type: Boolean, default: !1 },\n defaultHours: { default: 12 },\n defaultMinutes: { default: 0 },\n defaultSeconds: { default: 0 },\n defaultMeridiem: { default: \"AM\" },\n useSeconds: { type: Boolean, default: !0 }\n },\n emits: [\"get-time\"],\n setup(e, { emit: t }) {\n const l = t, n = pe(\"meridiem-selector\"), a = Tt({\n hours: String(e.defaultHours).padStart(2, \"0\"),\n minutes: String(e.defaultMinutes).padStart(2, \"0\"),\n seconds: String(e.defaultSeconds).padStart(2, \"0\")\n }), o = E(e.defaultMeridiem == \"AM\" ? \"AM\" : \"PM\");\n Re(() => {\n u();\n });\n const s = () => {\n const g = e.allowMilitaryTime ? 23 : 12, p = e.allowMilitaryTime ? 0 : 1;\n let v = Number(a.hours), c = Number(a.minutes), m = Number(a.seconds);\n (isNaN(v) || a.hours === \"\" || v > g) && (v = g), !e.allowMilitaryTime && v < p && (v = p), (isNaN(c) || a.minutes === \"\" || c > 59) && (c = 59), (isNaN(m) || a.seconds === \"\" || m > 59) && (m = 59), a.hours = String(v).padStart(2, \"0\"), a.minutes = String(c).padStart(2, \"0\"), a.seconds = String(m).padStart(2, \"0\"), u();\n }, u = () => {\n const g = Number(a.hours), p = Number(a.minutes), v = Number(a.seconds);\n l(\"get-time\", {\n hours: g,\n minutes: p,\n seconds: v,\n meridiem: o.value,\n militaryTime: e.allowMilitaryTime ? g : o.value === \"PM\" ? g === 12 ? 12 : g + 12 : g % 12\n });\n }, i = (g) => {\n const p = g.target;\n p instanceof HTMLInputElement && p.select();\n }, r = (g, p = 1) => {\n const v = e.allowMilitaryTime ? 23 : 12, c = e.allowMilitaryTime ? 0 : 1;\n if (g == \"hours\") {\n const S = Number(a.hours);\n a.hours = String(S + p), (S == 11 && Number(a.hours) == 12 || S == 12 && Number(a.hours) == 11) && h();\n } else g == \"minutes\" ? a.minutes = String(Number(a.minutes) + p) : g == \"seconds\" && (a.seconds = String(Number(a.seconds) + p));\n const m = Number(a.hours);\n Number(a.seconds) < 0 ? a.minutes = String(Number(a.minutes) - 1) : Number(a.seconds) > 59 && (a.minutes = String(Number(a.minutes) + 1)), Number(a.minutes) < 0 ? a.hours = String(m - 1) : Number(a.minutes) > 59 && (a.hours = String(m + 1));\n const I = Number(a.hours);\n !e.allowMilitaryTime && I !== m && (m === 11 && I === 12 || m === 12 && I === 11) && h(), a.hours = String(d(Number(a.hours), c, v)).padStart(2, \"0\"), a.minutes = String(d(Number(a.minutes), 0, 59)).padStart(2, \"0\"), a.seconds = String(d(Number(a.seconds), 0, 59)).padStart(2, \"0\");\n };\n le(\n () => a.hours,\n (g, p) => {\n a.hours = Number(g) > 99 ? p : g;\n }\n ), le(\n () => a.minutes,\n (g, p) => {\n a.minutes = Number(g) > 99 ? p : g;\n }\n ), le(\n () => a.seconds,\n (g, p) => {\n a.seconds = Number(g) > 99 ? p : g;\n }\n );\n const d = (g, p, v) => g > v ? p : g < p ? v : g, h = () => {\n o.value = o.value == \"PM\" ? \"AM\" : \"PM\", u();\n }, k = (g, p = !1) => {\n g.stopPropagation(), g.preventDefault();\n const v = g.clipboardData;\n if (!v) return;\n let c = v.getData(\"Text\");\n if (c = c.replace(/[^0-9]/g, \"\"), p) {\n c.length % 2 != 0 && (c = \"0\" + c), c.length < 3 && (c += \"00\"), c.length < 5 && (c += \"00\");\n const m = c.match(/(..?)/g);\n if (!m || m.length < 3) return;\n a.seconds = m[2], a.minutes = m[1], a.hours = m[0], s(), e.allowMilitaryTime || n.value?.focus();\n } else {\n c.length > 2 && (c = c.slice(0, 2));\n const m = g.target;\n m instanceof HTMLInputElement && (m.value = c, m.dispatchEvent(new Event(\"input\")));\n }\n };\n return (g, p) => (y(), x(\"div\", ta, [\n b(\"div\", na, [\n K(b(\"input\", {\n \"onUpdate:modelValue\": p[0] || (p[0] = (v) => a.hours = v),\n type: \"text\",\n inputmode: \"numeric\",\n onPaste: p[1] || (p[1] = (v) => k(v, !0)),\n onFocus: i,\n onBlur: s,\n onKeydown: [\n ce(ae(s, [\"prevent\"]), [\"enter\"]),\n p[2] || (p[2] = ce(ae((v) => r(\"hours\"), [\"prevent\"]), [\"up\"])),\n p[3] || (p[3] = ce(ae((v) => r(\"hours\", -1), [\"prevent\"]), [\"down\"]))\n ]\n }, null, 40, la), [\n [we, a.hours]\n ]),\n p[12] || (p[12] = b(\"span\", { class: \"colon\" }, \":\", -1)),\n K(b(\"input\", {\n \"onUpdate:modelValue\": p[4] || (p[4] = (v) => a.minutes = v),\n type: \"text\",\n inputmode: \"numeric\",\n onPaste: k,\n onFocus: i,\n onBlur: s,\n onKeydown: [\n ce(ae(s, [\"prevent\"]), [\"enter\"]),\n p[5] || (p[5] = ce(ae((v) => r(\"minutes\"), [\"prevent\"]), [\"up\"])),\n p[6] || (p[6] = ce(ae((v) => r(\"minutes\", -1), [\"prevent\"]), [\"down\"]))\n ]\n }, null, 40, oa), [\n [we, a.minutes]\n ]),\n e.useSeconds ? (y(), x(\"span\", aa, \":\")) : N(\"\", !0),\n e.useSeconds ? K((y(), x(\"input\", {\n key: 1,\n \"onUpdate:modelValue\": p[7] || (p[7] = (v) => a.seconds = v),\n type: \"text\",\n inputmode: \"numeric\",\n onPaste: k,\n onFocus: i,\n onBlur: s,\n onKeydown: [\n ce(ae(s, [\"prevent\"]), [\"enter\"]),\n p[8] || (p[8] = ce(ae((v) => r(\"seconds\"), [\"prevent\"]), [\"up\"])),\n p[9] || (p[9] = ce(ae((v) => r(\"seconds\", -1), [\"prevent\"]), [\"down\"]))\n ]\n }, null, 40, sa)), [\n [we, a.seconds]\n ]) : N(\"\", !0),\n e.allowMilitaryTime ? N(\"\", !0) : K((y(), x(\"select\", {\n key: 2,\n ref: \"meridiem-selector\",\n \"onUpdate:modelValue\": p[10] || (p[10] = (v) => o.value = v),\n class: \"aform-select meridiem-selector\",\n onChange: s\n }, [...p[11] || (p[11] = [\n b(\"option\", { value: \"AM\" }, \"AM\", -1),\n b(\"option\", { value: \"PM\" }, \"PM\", -1)\n ])], 544)), [\n [Yt, o.value]\n ])\n ])\n ]));\n }\n}), kt = /* @__PURE__ */ ke(ra, [[\"__scopeId\", \"data-v-959a3e41\"]]), ia = { class: \"adate-selection\" }, ua = {\n key: 3,\n class: \"empty\"\n}, da = /* @__PURE__ */ te({\n __name: \"ADateSelection\",\n props: {\n showDate: { type: Boolean, default: !0 },\n showTime: { type: Boolean, default: !0 },\n selectRange: { type: Boolean, default: !0 },\n showEndTime: { type: Boolean, default: !1 },\n allowMilitaryTime: { type: Boolean, default: !1 },\n defaultHours: { default: 12 },\n defaultMinutes: { default: 0 },\n defaultSeconds: { default: 0 },\n defaultMeridiem: { default: \"AM\" },\n useSeconds: { type: Boolean, default: !0 }\n },\n emits: [\"get-date\", \"get-time\", \"get-range\"],\n setup(e, { emit: t }) {\n const l = t;\n gn(\"select-range\", e.selectRange);\n const n = /* @__PURE__ */ new Date(), a = E(n), o = E(n), s = E(0), u = E(0), i = (p, v) => {\n const c = new Date(p);\n return c.setHours(0, 0, 0, 0), new Date(c.getTime() + v);\n }, r = (p) => {\n let v;\n if (p.militaryTime !== void 0)\n v = p.militaryTime;\n else {\n const c = p.hours % 12;\n v = p.meridiem === \"PM\" ? c + 12 : c;\n }\n return (v * 3600 + p.minutes * 60 + (p.seconds ?? 0)) * 1e3;\n }, d = () => {\n !e.selectRange || !e.showTime || !e.showEndTime || l(\"get-range\", {\n start: i(a.value, s.value),\n end: i(o.value, u.value)\n });\n }, h = (p) => {\n l(\"get-date\", p), e.selectRange && (a.value = p.start ?? p.selected, o.value = p.end ?? p.selected, d());\n }, k = (p) => {\n s.value = r(p), e.showEndTime ? d() : l(\"get-time\", p);\n }, g = (p) => {\n u.value = r(p), d();\n };\n return (p, v) => (y(), x(\"div\", ia, [\n e.showDate ? (y(), fe(rn, {\n key: 0,\n \"select-range\": e.selectRange,\n onGetDate: h\n }, null, 8, [\"select-range\"])) : N(\"\", !0),\n e.showTime ? (y(), fe(kt, {\n key: 1,\n \"allow-military-time\": e.allowMilitaryTime,\n \"default-hours\": e.defaultHours,\n \"default-minutes\": e.defaultMinutes,\n \"default-seconds\": e.defaultSeconds,\n \"default-meridiem\": e.defaultMeridiem,\n \"use-seconds\": e.useSeconds,\n onGetTime: k\n }, null, 8, [\"allow-military-time\", \"default-hours\", \"default-minutes\", \"default-seconds\", \"default-meridiem\", \"use-seconds\"])) : N(\"\", !0),\n e.selectRange && e.showTime && e.showEndTime ? (y(), x(X, { key: 2 }, [\n v[0] || (v[0] = b(\"div\", { class: \"adate-selection__end-label\" }, \"End time\", -1)),\n _e(kt, {\n \"allow-military-time\": e.allowMilitaryTime,\n \"default-hours\": e.defaultHours,\n \"default-minutes\": e.defaultMinutes,\n \"default-seconds\": e.defaultSeconds,\n \"default-meridiem\": e.defaultMeridiem,\n \"use-seconds\": e.useSeconds,\n onGetTime: g\n }, null, 8, [\"allow-military-time\", \"default-hours\", \"default-minutes\", \"default-seconds\", \"default-meridiem\", \"use-seconds\"])\n ], 64)) : N(\"\", !0),\n !e.showTime && !e.showDate ? (y(), x(\"p\", ua, \"empty\")) : N(\"\", !0)\n ]));\n }\n}), rt = /* @__PURE__ */ ke(da, [[\"__scopeId\", \"data-v-eeadb3e2\"]]), ca = { class: \"aform_display-value\" }, va = [\"id\", \"value\", \"disabled\", \"required\"], fa = [\"for\"], ma = [\"innerHTML\"], pa = /* @__PURE__ */ te({\n __name: \"ADate\",\n props: /* @__PURE__ */ xe({\n schema: {},\n label: { default: \"Date\" },\n selectRange: { type: Boolean },\n mask: {},\n required: { type: Boolean },\n mode: {},\n uuid: {},\n validation: { default: () => ({ errorMessage: \"&nbsp;\" }) }\n }, {\n modelValue: {},\n modelModifiers: {}\n }),\n emits: [\"update:modelValue\"],\n setup(e) {\n const t = De(e, \"modelValue\"), l = E(t.value ? new Date(t.value) : /* @__PURE__ */ new Date()), n = R({\n get: () => l.value.toISOString().split(\"T\")[0],\n set: (u) => {\n l.value = new Date(u), t.value = u;\n }\n }), a = pe(\"picker\"), o = E(!1);\n lt(a, () => o.value = !1), le(\n () => t.value,\n (u) => {\n u && (l.value = new Date(u));\n }\n );\n const s = (u) => {\n l.value = u.selected, t.value = n.value;\n };\n return (u, i) => (y(), x(\"div\", null, [\n e.mode === \"display\" ? (y(), x(X, { key: 0 }, [\n b(\"span\", ca, P(t.value ? new Date(n.value).toLocaleDateString() : \"\"), 1),\n b(\"label\", null, P(e.label), 1)\n ], 64)) : (y(), x(X, { key: 1 }, [\n K(b(\"input\", {\n id: e.uuid,\n ref: \"date\",\n \"onUpdate:modelValue\": i[0] || (i[0] = (r) => n.value = r),\n class: \"adate-input\",\n value: n.value,\n type: \"date\",\n disabled: e.mode === \"read\",\n required: e.required,\n onClick: i[1] || (i[1] = ae(\n () => {\n o.value = !o.value;\n },\n [\"prevent\"]\n ))\n }, null, 8, va), [\n [we, n.value]\n ]),\n b(\"label\", { for: e.uuid }, P(e.label), 9, fa),\n K(b(\"p\", {\n innerHTML: e.validation.errorMessage\n }, null, 8, ma), [\n [Se, e.validation.errorMessage]\n ]),\n o.value ? (y(), fe(rt, {\n key: 0,\n ref: \"picker\",\n class: \"picker\",\n \"select-range\": !1,\n \"show-time\": !1,\n onGetDate: s\n }, null, 512)) : N(\"\", !0)\n ], 64))\n ]));\n }\n}), ha = /* @__PURE__ */ ke(pa, [[\"__scopeId\", \"data-v-aca398d0\"]]), gt = /* @__PURE__ */ new WeakMap(), un = {\n mounted(e, t) {\n const l = !t.modifiers.bubble;\n let n;\n if (typeof t.value == \"function\") n = lt(e, t.value, { capture: l });\n else {\n const [a, o] = t.value;\n n = lt(e, a, Object.assign({ capture: l }, o));\n }\n gt.set(e, n);\n },\n unmounted(e) {\n const t = gt.get(e);\n t && typeof t == \"function\" ? t() : t?.stop(), gt.delete(e);\n }\n};\nfunction ga() {\n let e = !1;\n const t = he(!1);\n return (l, n) => {\n if (t.value = n.value, e) return;\n e = !0;\n const a = Go(l, n.value);\n le(t, (o) => a.value = o);\n };\n}\nga();\nconst ya = {\n key: 0,\n class: \"input-wrapper\"\n}, wa = { class: \"aform_display-value\" }, ba = { class: \"input-wrapper\" }, xa = [\"disabled\"], ka = {\n id: \"autocomplete-results\",\n class: \"autocomplete-results\"\n}, Ma = {\n key: 0,\n class: \"loading autocomplete-result\"\n}, Ia = [\"onClick\"], Da = /* @__PURE__ */ te({\n __name: \"ADropdown\",\n props: /* @__PURE__ */ xe({\n schema: {},\n label: {},\n selectRange: { type: Boolean },\n mask: {},\n required: { type: Boolean },\n mode: {},\n uuid: {},\n validation: {},\n options: { default: () => [] },\n isAsync: { type: Boolean, default: !1 },\n filterFunction: { type: Function, default: void 0 }\n }, {\n modelValue: {},\n modelModifiers: {}\n }),\n emits: [\"update:modelValue\"],\n setup(e) {\n const t = De(e, \"modelValue\"), l = E(t.value ?? \"\"), n = Tt({\n activeItemIndex: null,\n open: !1,\n loading: !1,\n results: e.options\n }), a = () => i(), o = async () => {\n if (n.open = !0, n.activeItemIndex = null, e.filterFunction) {\n e.isAsync && (n.loading = !0);\n try {\n const g = await e.filterFunction(t.value || \"\");\n n.results = g || [];\n } catch {\n n.results = [];\n } finally {\n e.isAsync && (n.loading = !1);\n }\n } else\n r();\n }, s = (g) => {\n t.value = g, l.value = g, i(g);\n }, u = () => {\n const g = e.options?.indexOf(t.value ?? \"\") ?? -1;\n n.activeItemIndex = e.isAsync ? null : g >= 0 ? g : null, n.open = !0, n.results = e.isAsync ? [] : e.options;\n }, i = (g) => {\n n.activeItemIndex = null, n.open = !1, e.options?.includes(g || t.value || \"\") || (t.value = l.value);\n }, r = () => {\n t.value ? n.results = e.options?.filter((g) => g.toLowerCase().includes((t.value ?? \"\").toLowerCase())) : n.results = e.options;\n }, d = () => {\n const g = n.results?.length || 0;\n if (n.activeItemIndex != null) {\n const p = isNaN(n.activeItemIndex) ? 0 : n.activeItemIndex;\n n.activeItemIndex = (p + 1) % g;\n } else\n n.activeItemIndex = 0;\n }, h = () => {\n const g = n.results?.length || 0;\n if (n.activeItemIndex != null) {\n const p = isNaN(n.activeItemIndex) ? 0 : n.activeItemIndex;\n p === 0 ? n.activeItemIndex = null : n.activeItemIndex = p - 1;\n } else\n n.activeItemIndex = g - 1;\n }, k = () => {\n if (n.results) {\n const g = n.activeItemIndex || 0, p = n.results[g];\n s(p);\n }\n n.activeItemIndex = 0;\n };\n return (g, p) => e.mode === \"display\" ? (y(), x(\"div\", ya, [\n b(\"span\", wa, P(t.value ?? \"\"), 1),\n b(\"label\", null, P(e.label), 1)\n ])) : K((y(), x(\"div\", {\n key: 1,\n class: ie([\"autocomplete\", { isOpen: n.open }])\n }, [\n b(\"div\", ba, [\n K(b(\"input\", {\n \"onUpdate:modelValue\": p[0] || (p[0] = (v) => t.value = v),\n type: \"text\",\n disabled: e.mode === \"read\",\n onInput: o,\n onFocus: u,\n onKeydown: [\n ce(d, [\"down\"]),\n ce(h, [\"up\"]),\n ce(k, [\"enter\"]),\n ce(a, [\"esc\"]),\n ce(a, [\"tab\"])\n ]\n }, null, 40, xa), [\n [we, t.value]\n ]),\n K(b(\"ul\", ka, [\n n.loading ? (y(), x(\"li\", Ma, \"Loading results...\")) : (y(!0), x(X, { key: 1 }, ge(n.results, (v, c) => (y(), x(\"li\", {\n key: v,\n class: ie([\"autocomplete-result\", { \"is-active\": c === n.activeItemIndex }]),\n onClick: ae((m) => s(v), [\"stop\"])\n }, P(v), 11, Ia))), 128))\n ], 512), [\n [Se, n.open]\n ]),\n b(\"label\", null, P(e.label), 1)\n ])\n ], 2)), [\n [V(un), a]\n ]);\n }\n}), Ta = /* @__PURE__ */ ke(Da, [[\"__scopeId\", \"data-v-c823d475\"]]), Ca = { class: \"aduration\" }, $a = { class: \"aform_display-value\" }, Sa = { class: \"aduration__footer\" }, Ea = {\n key: 0,\n class: \"aduration__summary\"\n}, Ra = { class: \"aduration__value\" }, Aa = { class: \"aduration__ms\" }, La = /* @__PURE__ */ te({\n __name: \"ADuration\",\n props: /* @__PURE__ */ xe({\n label: { default: \"Duration\" },\n mode: { default: \"edit\" },\n allowMilitaryTime: { type: Boolean, default: !1 },\n useSeconds: { type: Boolean, default: !1 }\n }, {\n modelValue: {},\n modelModifiers: {}\n }),\n emits: [\"update:modelValue\"],\n setup(e) {\n const t = De(e, \"modelValue\"), l = E(null), n = E(null), a = R(() => {\n if (!l.value || !n.value) return 0;\n const i = n.value.getTime() - l.value.getTime();\n return i > 0 ? i : 0;\n });\n le(a, (i) => {\n t.value = i;\n });\n const o = (i) => {\n l.value = i.start, n.value = i.end, t.value = a.value;\n }, s = R(() => {\n const i = a.value;\n if (i === 0) return \"0s\";\n const r = Math.floor(i / 1e3) % 60, d = Math.floor(i / 6e4) % 60, h = Math.floor(i / 36e5) % 24, k = Math.floor(i / 864e5);\n return [k && `${k}d`, h && `${h}h`, d && `${d}m`, r && `${r}s`].filter(Boolean).join(\" \") || \"0s\";\n }), u = R(() => {\n const i = t.value;\n if (!i) return \"—\";\n const r = Math.floor(i / 1e3) % 60, d = Math.floor(i / 6e4) % 60, h = Math.floor(i / 36e5) % 24, k = Math.floor(i / 864e5);\n return [k && `${k}d`, h && `${h}h`, d && `${d}m`, r && `${r}s`].filter(Boolean).join(\" \") || \"0s\";\n });\n return (i, r) => (y(), x(\"div\", Ca, [\n e.mode === \"display\" || e.mode === \"read\" ? (y(), x(X, { key: 0 }, [\n b(\"span\", $a, P(u.value), 1),\n b(\"label\", null, P(e.label), 1)\n ], 64)) : (y(), x(X, { key: 1 }, [\n _e(rt, {\n ref: \"selectionRef\",\n \"select-range\": !0,\n \"show-time\": !0,\n \"show-end-time\": !0,\n \"allow-military-time\": e.allowMilitaryTime,\n \"use-seconds\": e.useSeconds,\n onGetRange: o\n }, null, 8, [\"allow-military-time\", \"use-seconds\"]),\n b(\"div\", Sa, [\n b(\"label\", null, P(e.label), 1),\n l.value && n.value ? (y(), x(\"div\", Ea, [\n r[0] || (r[0] = b(\"span\", { class: \"aduration__label\" }, \"Duration:\", -1)),\n b(\"span\", Ra, P(s.value), 1),\n b(\"span\", Aa, \"(\" + P(t.value ?? 0) + \" ms)\", 1)\n ])) : N(\"\", !0)\n ])\n ], 64))\n ]));\n }\n}), Ha = /* @__PURE__ */ ke(La, [[\"__scopeId\", \"data-v-22611dd6\"]]), Ba = { class: \"adaterange\" }, Va = { class: \"aform_display-value\" }, Pa = [\"id\", \"value\", \"disabled\"], Fa = [\"for\"], Na = [\"innerHTML\"], Oa = /* @__PURE__ */ te({\n __name: \"ADateRange\",\n props: /* @__PURE__ */ xe({\n schema: {},\n label: { default: \"Date Range\" },\n selectRange: { type: Boolean },\n mask: {},\n required: { type: Boolean },\n mode: {},\n uuid: {},\n validation: { default: () => ({ errorMessage: \"&nbsp;\" }) }\n }, {\n modelValue: {\n default: () => ({ start_date: null, end_date: null })\n },\n modelModifiers: {}\n }),\n emits: [\"update:modelValue\"],\n setup(e) {\n const t = (v) => new Date(v).toLocaleDateString(), l = De(e, \"modelValue\"), n = E(l.value.start_date ? new Date(l.value.start_date) : null), a = E(l.value.end_date ? new Date(l.value.end_date) : null), o = E(!1), s = E(null);\n lt(s, () => o.value = !1);\n const u = () => {\n e.mode !== \"read\" && (o.value = !0);\n }, i = (v) => v ? `${v.getMonth() + 1}/${v.getDate()}/${v.getFullYear()}` : \"\", r = R(() => {\n const v = i(n.value), c = i(a.value);\n return v && c ? `${v} — ${c}` : v ? `${v} — ...` : \"\";\n }), d = R(() => {\n const v = l.value.start_date, c = l.value.end_date;\n return !v && !c ? \"\" : v && c ? `${t(v)} — ${t(c)}` : v ? `From ${t(v)}` : `Until ${t(c)}`;\n }), h = () => {\n const v = n.value, c = a.value;\n v && c && c.getTime() < v.getTime() && ([n.value, a.value] = [c, v]);\n }, k = (v) => v ? v.toISOString().split(\"T\")[0] : null, g = () => {\n l.value = {\n start_date: k(n.value),\n end_date: k(a.value)\n };\n }, p = (v) => {\n v.start && (n.value = v.start), v.end && (a.value = v.end, h(), o.value = !1), g();\n };\n return le(\n () => l.value,\n (v) => {\n n.value = v.start_date ? new Date(v.start_date) : null, a.value = v.end_date ? new Date(v.end_date) : null;\n },\n { deep: !0 }\n ), (v, c) => (y(), x(\"div\", Ba, [\n e.mode === \"display\" ? (y(), x(X, { key: 0 }, [\n b(\"span\", Va, P(d.value), 1),\n b(\"label\", null, P(e.label), 1)\n ], 64)) : (y(), x(X, { key: 1 }, [\n b(\"input\", {\n id: e.uuid,\n class: \"adate-input aform_input-field\",\n type: \"text\",\n value: r.value,\n placeholder: \"Select date range\",\n disabled: e.mode === \"read\",\n readonly: \"\",\n onClick: u\n }, null, 8, Pa),\n b(\"label\", { for: e.uuid }, P(e.label), 9, Fa),\n K(b(\"p\", {\n innerHTML: e.validation.errorMessage\n }, null, 8, Na), [\n [Se, e.validation.errorMessage]\n ]),\n o.value ? (y(), fe(rt, {\n key: 0,\n ref_key: \"pickerRef\",\n ref: s,\n class: \"picker\",\n \"select-range\": !0,\n \"show-time\": !1,\n onGetDate: p\n }, null, 512)) : N(\"\", !0)\n ], 64))\n ]));\n }\n}), Za = /* @__PURE__ */ ke(Oa, [[\"__scopeId\", \"data-v-810e8eb5\"]]), Ga = { class: \"aform\" }, Ua = {\n key: 0,\n class: \"aform-nested-section\"\n}, Wa = {\n key: 0,\n class: \"aform-nested-label\"\n}, qa = /* @__PURE__ */ te({\n __name: \"AForm\",\n props: /* @__PURE__ */ xe({\n schema: {},\n mode: { default: \"edit\" }\n }, {\n data: { required: !0 },\n dataModifiers: {}\n }),\n emits: /* @__PURE__ */ xe([\"update:schema\", \"update:data\"], [\"update:data\"]),\n setup(e, { emit: t }) {\n const l = t, n = De(e, \"data\"), a = (g) => (g.kind === \"link\" || g.kind === \"fieldset\") && \"schema\" in g && Array.isArray(g.schema) && g.schema.length > 0, o = E({});\n le(\n () => n.value,\n (g) => {\n !e.schema || !g || e.schema.forEach((p) => {\n a(p) && (o.value[p.fieldname] = g[p.fieldname] ?? {});\n });\n },\n { immediate: !0 }\n );\n const s = (g, p) => {\n o.value[g] = p, n.value && (n.value[g] = p, l(\"update:data\", { ...n.value }));\n }, u = (g) => {\n const p = {};\n for (const [v, c] of Object.entries(g))\n [\"component\", \"fieldtype\", \"hidden\", \"mode\", \"width\"].includes(v) || (p[v] = c);\n return (g.kind === \"table\" || \"columns\" in g) && (p.rows = n.value[g.fieldname] || []), p;\n }, i = (g) => {\n if (g.kind !== \"field\") return {};\n const p = g.width;\n return p ? { flexBasis: p, width: p } : {};\n }, r = R(() => e.mode ?? \"edit\");\n function d(g) {\n const p = g.mode;\n return p || r.value;\n }\n const h = E([]);\n $t(() => {\n e.schema && h.value.length !== e.schema.length && (h.value = e.schema.map((g, p) => R({\n get() {\n return n.value?.[e.schema[p].fieldname];\n },\n set: (v) => {\n const c = e.schema[p].fieldname;\n c && n.value && (n.value[c] = v, l(\"update:data\", { ...n.value })), l(\"update:schema\", e.schema);\n }\n })));\n });\n const k = R(() => h.value);\n return (g, p) => (y(), x(\"form\", Ga, [\n (y(!0), x(X, null, ge(e.schema, (v, c) => (y(), x(X, { key: c }, [\n a(v) ? (y(), x(\"div\", Ua, [\n v.label && v.kind !== \"fieldset\" ? (y(), x(\"h4\", Wa, P(v.label), 1)) : N(\"\", !0),\n (y(), fe(Ge(v.component ?? \"AForm\"), {\n data: o.value[v.fieldname],\n mode: d(v),\n schema: v.schema,\n label: v.label,\n collapsible: v.kind === \"fieldset\" ? v.collapsible : void 0,\n \"onUpdate:data\": (m) => s(v.fieldname, m)\n }, null, 40, [\"data\", \"mode\", \"schema\", \"label\", \"collapsible\", \"onUpdate:data\"]))\n ])) : v.hidden ? N(\"\", !0) : (y(), fe(Ge(v.component), ot({\n key: 1,\n modelValue: k.value[c].value,\n \"onUpdate:modelValue\": (m) => k.value[c].value = m,\n style: i(v),\n schema: v,\n data: n.value[v.fieldname],\n mode: d(v)\n }, { ref_for: !0 }, u(v)), null, 16, [\"modelValue\", \"onUpdate:modelValue\", \"style\", \"schema\", \"data\", \"mode\"]))\n ], 64))), 128))\n ]));\n }\n}), dn = /* @__PURE__ */ ke(qa, [[\"__scopeId\", \"data-v-5396e11b\"]]), za = /* @__PURE__ */ te({\n __name: \"CollapseButton\",\n props: {\n collapsed: { type: Boolean }\n },\n setup(e) {\n return (t, l) => (y(), x(\"button\", {\n class: ie([\"collapse-button\", e.collapsed ? \"rotated\" : \"unrotated\"])\n }, \"×\", 2));\n }\n}), _a = /* @__PURE__ */ ke(za, [[\"__scopeId\", \"data-v-6f1c1b45\"]]), Ya = /* @__PURE__ */ te({\n __name: \"AFieldset\",\n props: {\n schema: {},\n label: { default: () => {\n } },\n collapsible: { type: Boolean },\n data: { default: () => ({}) },\n mode: { default: \"edit\" }\n },\n setup(e, { expose: t }) {\n const l = E(!1), n = E(e.data || []), a = E(e.schema), o = (s) => {\n s.preventDefault(), e.collapsible && (l.value = !l.value);\n };\n return t({ collapsed: l }), (s, u) => (y(), x(\"fieldset\", null, [\n e.label || e.collapsible ? (y(), x(\"legend\", {\n key: 0,\n onClick: o,\n onSubmit: o\n }, [\n Mt(P(e.label) + \" \", 1),\n e.collapsible ? (y(), fe(_a, {\n key: 0,\n collapsed: l.value\n }, null, 8, [\"collapsed\"])) : N(\"\", !0)\n ], 32)) : N(\"\", !0),\n Me(s.$slots, \"default\", { collapsed: l.value }, () => [\n K(_e(dn, {\n data: n.value,\n \"onUpdate:data\": u[0] || (u[0] = (i) => n.value = i),\n schema: a.value,\n mode: e.mode\n }, null, 8, [\"data\", \"schema\", \"mode\"]), [\n [Se, !l.value]\n ])\n ], !0)\n ]));\n }\n}), Xa = /* @__PURE__ */ ke(Ya, [[\"__scopeId\", \"data-v-162e7317\"]]), ja = { class: \"aform_form-element aform_file-attach aform__grid--full\" }, Ka = {\n key: 0,\n class: \"aform_file-attach-feedback\"\n}, Ja = {\n key: 1,\n class: \"aform_display-value\"\n}, Qa = {\n key: 0,\n class: \"aform_file-attach-feedback\"\n}, es = [\"disabled\"], ts = [\"disabled\"], ns = /* @__PURE__ */ te({\n __name: \"AFileAttach\",\n props: {\n schema: {},\n label: {},\n selectRange: { type: Boolean },\n mask: {},\n required: { type: Boolean },\n mode: {},\n uuid: {},\n validation: {}\n },\n setup(e) {\n const { files: t, open: l, reset: n, onChange: a } = Zo(), o = R(() => {\n const s = t.value?.length ?? 0;\n return `${s} ${s === 1 ? \"file\" : \"files\"}`;\n });\n return a((s) => s), (s, u) => (y(), x(\"div\", ja, [\n e.mode === \"display\" ? (y(), x(X, { key: 0 }, [\n V(t) ? (y(), x(\"div\", Ka, [\n b(\"p\", null, [\n b(\"b\", null, P(o.value), 1)\n ]),\n (y(!0), x(X, null, ge(V(t), (i) => (y(), x(\"li\", {\n key: i.name\n }, P(i.name), 1))), 128))\n ])) : (y(), x(\"span\", Ja, \"No file selected\"))\n ], 64)) : (y(), x(X, { key: 1 }, [\n V(t) ? (y(), x(\"div\", Qa, [\n b(\"p\", null, [\n u[2] || (u[2] = Mt(\" You have selected: \", -1)),\n b(\"b\", null, P(o.value), 1)\n ]),\n (y(!0), x(X, null, ge(V(t), (i) => (y(), x(\"li\", {\n key: i.name\n }, P(i.name), 1))), 128))\n ])) : N(\"\", !0),\n b(\"button\", {\n type: \"button\",\n class: \"aform_form-btn\",\n disabled: e.mode === \"read\",\n onClick: u[0] || (u[0] = (i) => V(l)())\n }, P(e.label), 9, es),\n b(\"button\", {\n type: \"button\",\n disabled: !V(t) || e.mode === \"read\",\n class: \"aform_form-btn\",\n onClick: u[1] || (u[1] = (i) => V(n)())\n }, \"Reset\", 8, ts)\n ], 64))\n ]));\n }\n}), ls = /* @__PURE__ */ ke(ns, [[\"__scopeId\", \"data-v-8eefd179\"]]), os = { class: \"aform_form-element\" }, as = {\n key: 0,\n class: \"aform_display-value\"\n}, ss = { class: \"aform_form-link-wrapper\" }, rs = { class: \"input-group\" }, is = [\"disabled\", \"onKeydown\"], us = [\"onKeydown\"], ds = {\n key: 0,\n class: \"autocomplete-results\"\n}, cs = {\n key: 0,\n class: \"autocomplete-result loading\"\n}, vs = [\"onMousedown\"], fs = {\n key: 0,\n class: \"aform_field-label\"\n}, ms = /* @__PURE__ */ te({\n __name: \"AFormLink\",\n props: /* @__PURE__ */ xe({\n schema: {},\n label: {},\n selectRange: { type: Boolean },\n mask: {},\n required: { type: Boolean },\n mode: {},\n uuid: {},\n validation: {},\n doctype: { default: () => {\n } },\n formatter: { type: Function, default: void 0 },\n icon: { default: \"arrow-right\" },\n disabled: { type: Boolean, default: !1 },\n filterFunction: { type: [String, Function], default: void 0 },\n isAsync: { type: Boolean, default: !1 }\n }, {\n modelValue: { default: { id: \"\", displayText: \"\" } },\n modelModifiers: {}\n }),\n emits: [\"update:modelValue\"],\n setup(e) {\n const t = De(e, \"modelValue\"), l = R(() => {\n const D = t.value?.id;\n return D != null && D !== \"\";\n }), n = R(() => l.value ? e.formatter ? e.formatter(t.value) : t.value.displayText ?? String(t.value.id) : \"—\"), a = E(l.value ? n.value : \"\"), o = E(!1), s = E(!1), u = E([]), i = E(null), r = yt(\"aformLinkNavigator\", null), d = yt(\"aformLinkResolver\", null);\n le(\n () => t.value,\n (D) => {\n D != null && (typeof D == \"string\" || typeof D == \"number\") && (t.value = { id: D });\n },\n { immediate: !0 }\n ), le(\n () => t.value?.id,\n async (D) => {\n if (!(!D || t.value.displayText))\n try {\n let L;\n e.filterFunction ? (L = (await (typeof e.filterFunction == \"string\" ? bt(e.filterFunction) : e.filterFunction)(String(D))).find((O) => String(O.id) === String(D))?.displayText, L === void 0 && console.warn(\n `[AFormLink] filterFunction returned no matching result for id \"${D}\". The function must return an item whose \\`id\\` exactly matches the search string.`\n )) : d && e.doctype && (L = await d(e.doctype, D.toString()) ?? void 0), L && (a.value = L, t.value = { ...t.value, displayText: L });\n } catch {\n }\n },\n { immediate: !0 }\n );\n const h = () => {\n r && e.doctype ? r.navigate(e.doctype, t.value.id) : r && !e.doctype && console.warn(\n \"[AFormLink] Navigation requested but `doctype` prop is missing. Add `options` (or `doctype`) to the Link field definition to enable navigation.\"\n );\n }, k = async (D) => {\n if (!(!e.filterFunction || e.mode === \"read\")) {\n i.value = null, o.value = !0, e.isAsync && (s.value = !0);\n try {\n const L = typeof e.filterFunction == \"string\" ? bt(e.filterFunction) : e.filterFunction;\n u.value = await L(D) ?? [];\n } catch {\n u.value = [];\n } finally {\n s.value = !1;\n }\n }\n }, g = () => {\n o.value = !1, i.value = null, a.value = l.value ? n.value : \"\";\n }, p = () => {\n o.value && g();\n }, v = () => k(a.value), c = () => k(a.value), m = (D) => {\n t.value = D, a.value = D.displayText ?? String(D.id), o.value = !1, i.value = null;\n }, I = () => {\n const D = u.value.length;\n D && (i.value = i.value === null ? 0 : (i.value + 1) % D);\n }, S = () => {\n u.value.length && (i.value === null || i.value === 0 ? i.value = null : i.value -= 1);\n }, $ = () => {\n i.value !== null && u.value[i.value] && m(u.value[i.value]);\n };\n return (D, L) => (y(), x(\"div\", os, [\n e.mode === \"display\" ? (y(), x(\"span\", as, P(n.value), 1)) : (y(), x(X, { key: 1 }, [\n K((y(), x(\"div\", ss, [\n b(\"div\", rs, [\n K(b(\"input\", {\n \"onUpdate:modelValue\": L[0] || (L[0] = (q) => a.value = q),\n type: \"text\",\n class: \"aform_input-field\",\n disabled: e.disabled || e.mode === \"read\",\n onInput: c,\n onFocus: v,\n onKeydown: [\n ce(ae(I, [\"prevent\"]), [\"down\"]),\n ce(ae(S, [\"prevent\"]), [\"up\"]),\n ce(ae($, [\"prevent\"]), [\"enter\"]),\n ce(g, [\"esc\"]),\n ce(g, [\"tab\"])\n ]\n }, null, 40, is), [\n [we, a.value]\n ]),\n l.value && !e.disabled ? (y(), x(\"button\", {\n key: 0,\n type: \"button\",\n class: \"aform_form-btn\",\n onClick: h,\n onKeydown: ce(ae(h, [\"prevent\"]), [\"enter\"])\n }, [\n b(\"span\", null, P(e.icon === \"chevron-right\" ? \"›\" : \"→\"), 1)\n ], 40, us)) : N(\"\", !0)\n ]),\n o.value ? (y(), x(\"ul\", ds, [\n s.value ? (y(), x(\"li\", cs, \"Loading…\")) : (y(!0), x(X, { key: 1 }, ge(u.value, (q, A) => (y(), x(\"li\", {\n key: String(q.id),\n class: ie([\"autocomplete-result\", { \"is-active\": A === i.value }]),\n onMousedown: ae((O) => m(q), [\"prevent\"])\n }, P(q.displayText ?? String(q.id)), 43, vs))), 128))\n ])) : N(\"\", !0)\n ])), [\n [V(un), p]\n ]),\n e.label ? (y(), x(\"label\", fs, P(e.label), 1)) : N(\"\", !0)\n ], 64))\n ]));\n }\n}), ps = /* @__PURE__ */ ke(ms, [[\"__scopeId\", \"data-v-4b68886b\"]]), hs = { class: \"aform_form-element\" }, gs = { class: \"aform_display-value\" }, ys = { class: \"aform_field-label\" }, ws = [\"id\", \"disabled\", \"required\"], bs = [\"for\"], xs = [\"innerHTML\"], ks = /* @__PURE__ */ te({\n __name: \"ANumericInput\",\n props: /* @__PURE__ */ xe({\n schema: {},\n label: {},\n selectRange: { type: Boolean },\n mask: {},\n required: { type: Boolean },\n mode: {},\n uuid: {},\n validation: { default: () => ({ errorMessage: \"&nbsp;\" }) }\n }, {\n modelValue: {},\n modelModifiers: {}\n }),\n emits: [\"update:modelValue\"],\n setup(e) {\n const t = De(e, \"modelValue\");\n return (l, n) => (y(), x(\"div\", hs, [\n e.mode === \"display\" ? (y(), x(X, { key: 0 }, [\n b(\"span\", gs, P(t.value ?? \"\"), 1),\n b(\"label\", ys, P(e.label), 1)\n ], 64)) : (y(), x(X, { key: 1 }, [\n K(b(\"input\", {\n id: e.uuid,\n \"onUpdate:modelValue\": n[0] || (n[0] = (a) => t.value = a),\n class: \"aform_input-field\",\n type: \"number\",\n disabled: e.mode === \"read\",\n required: e.required\n }, null, 8, ws), [\n [we, t.value]\n ]),\n b(\"label\", {\n class: \"aform_field-label\",\n for: e.uuid\n }, P(e.label), 9, bs),\n K(b(\"p\", {\n class: \"aform_error\",\n innerHTML: e.validation.errorMessage\n }, null, 8, xs), [\n [Se, e.validation.errorMessage]\n ])\n ], 64))\n ]));\n }\n});\nfunction Ms(e) {\n try {\n return bt(e);\n } catch {\n return;\n }\n}\nfunction Is(e) {\n const t = e.value;\n if (!t) return;\n const l = Ms(t);\n if (l) {\n const a = e.instance?.locale;\n return l(a);\n }\n return t;\n}\nfunction Ds(e, t) {\n let l = e;\n const n = [t, \"/\", \"-\", \"(\", \")\", \" \"];\n for (const a of n)\n l = l.replaceAll(a, \"\");\n return l;\n}\nfunction Ts(e, t, l) {\n let n = t;\n for (const a of e) {\n const o = n.indexOf(l);\n if (o !== -1) {\n const s = n.substring(0, o), u = n.substring(o + 1);\n n = s + a + u;\n }\n }\n return n.slice(0, t.length);\n}\nfunction Cs(e, t) {\n const l = Is(t);\n if (!l) return;\n const n = \"#\", a = e.value, o = Ds(a, n);\n if (o) {\n const s = Ts(o, l, n), u = t.instance;\n u?.maskFilled && (u.maskFilled = !s.includes(n)), e.value = s;\n } else\n e.value = l;\n}\nconst $s = { class: \"aform_form-element\" }, Ss = { class: \"aform_display-value\" }, Es = { class: \"aform_field-label\" }, Rs = [\"id\", \"disabled\", \"maxlength\", \"required\"], As = [\"for\"], Ls = [\"innerHTML\"], Hs = /* @__PURE__ */ te({\n __name: \"ATextInput\",\n props: /* @__PURE__ */ xe({\n schema: {},\n label: {},\n selectRange: { type: Boolean },\n mask: {},\n required: { type: Boolean },\n mode: {},\n uuid: {},\n validation: { default: () => ({ errorMessage: \"&nbsp;\" }) }\n }, {\n modelValue: {},\n modelModifiers: {}\n }),\n emits: [\"update:modelValue\"],\n setup(e) {\n const t = E(!0), l = De(e, \"modelValue\");\n return (n, a) => (y(), x(\"div\", $s, [\n e.mode === \"display\" ? (y(), x(X, { key: 0 }, [\n b(\"span\", Ss, P(l.value ?? \"\"), 1),\n b(\"label\", Es, P(e.label), 1)\n ], 64)) : (y(), x(X, { key: 1 }, [\n K(b(\"input\", {\n id: e.uuid,\n \"onUpdate:modelValue\": a[0] || (a[0] = (o) => l.value = o),\n class: \"aform_input-field\",\n disabled: e.mode === \"read\",\n maxlength: e.mask && t.value ? e.mask.length : void 0,\n required: e.required\n }, null, 8, Rs), [\n [we, l.value],\n [V(Cs), e.mask]\n ]),\n b(\"label\", {\n class: \"aform_field-label\",\n for: e.uuid\n }, P(e.label), 9, As),\n K(b(\"p\", {\n class: \"aform_error\",\n innerHTML: e.validation.errorMessage\n }, null, 8, Ls), [\n [Se, e.validation.errorMessage]\n ])\n ], 64))\n ]));\n }\n}), Bs = { class: \"login-container\" }, Vs = { class: \"account-container\" }, Ps = { class: \"account-header\" }, Fs = { id: \"account-title\" }, Ns = { id: \"account-subtitle\" }, Os = { class: \"login-form-container\" }, Zs = { class: \"login-form-email aform_form-element\" }, Gs = [\"disabled\"], Us = { class: \"login-form-password aform_form-element\" }, Ws = [\"disabled\"], qs = [\"disabled\"], zs = {\n key: 0,\n class: \"material-symbols-outlined loading-icon\"\n}, _s = /* @__PURE__ */ te({\n __name: \"Login\",\n props: {\n headerTitle: { default: \"Login\" },\n headerSubtitle: { default: \"Enter your email and password to login\" }\n },\n emits: [\"loginFailed\", \"loginSuccess\"],\n setup(e, { emit: t }) {\n const l = t, n = E(\"\"), a = E(\"\"), o = E(!1), s = E(!1);\n function u(i) {\n if (i.preventDefault(), o.value = !0, s.value) {\n o.value = !1, l(\"loginFailed\");\n return;\n }\n o.value = !1, l(\"loginSuccess\");\n }\n return (i, r) => (y(), x(\"div\", Bs, [\n b(\"div\", null, [\n b(\"div\", Vs, [\n b(\"div\", Ps, [\n b(\"h1\", Fs, P(e.headerTitle), 1),\n b(\"p\", Ns, P(e.headerSubtitle), 1)\n ]),\n b(\"form\", { onSubmit: u }, [\n b(\"div\", Os, [\n b(\"div\", Zs, [\n r[2] || (r[2] = b(\"label\", {\n id: \"login-email\",\n for: \"email\",\n class: \"aform_field-label\"\n }, \"Email\", -1)),\n K(b(\"input\", {\n id: \"email\",\n \"onUpdate:modelValue\": r[0] || (r[0] = (d) => n.value = d),\n class: \"aform_input-field\",\n name: \"email\",\n placeholder: \"name@example.com\",\n type: \"email\",\n \"auto-capitalize\": \"none\",\n \"auto-complete\": \"email\",\n \"auto-correct\": \"off\",\n disabled: o.value\n }, null, 8, Gs), [\n [we, n.value]\n ])\n ]),\n b(\"div\", Us, [\n r[3] || (r[3] = b(\"label\", {\n id: \"login-password\",\n for: \"password\",\n class: \"aform_field-label\"\n }, \"Password\", -1)),\n K(b(\"input\", {\n id: \"password\",\n \"onUpdate:modelValue\": r[1] || (r[1] = (d) => a.value = d),\n class: \"aform_input-field\",\n name: \"password\",\n type: \"password\",\n disabled: o.value\n }, null, 8, Ws), [\n [we, a.value]\n ])\n ]),\n b(\"button\", {\n class: \"btn\",\n disabled: o.value || !n.value || !a.value,\n onClick: u\n }, [\n o.value ? (y(), x(\"span\", zs, \"progress_activity\")) : N(\"\", !0),\n r[4] || (r[4] = b(\"span\", { id: \"login-form-button\" }, \"Login\", -1))\n ], 8, qs)\n ])\n ], 32),\n r[5] || (r[5] = b(\"button\", { class: \"btn\" }, [\n b(\"span\", { id: \"forgot-password-button\" }, \"Forgot password?\")\n ], -1))\n ])\n ])\n ]));\n }\n}), js = /* @__PURE__ */ ke(_s, [[\"__scopeId\", \"data-v-d9ffd0a7\"]]);\nfunction Ks(e) {\n e.use(ko), e.component(\"ACheckbox\", Ro), e.component(\"AComboBox\", Ao), e.component(\"ADate\", ha), e.component(\"ADropdown\", Ta), e.component(\"ADatePicker\", rn), e.component(\"ADateTime\", kt), e.component(\"ADateRange\", Za), e.component(\"ADateSelection\", rt), e.component(\"AFieldset\", Xa), e.component(\"AFileAttach\", ls), e.component(\"AForm\", dn), e.component(\"AFormLink\", ps), e.component(\"ANumericInput\", ks), e.component(\"ATextInput\", Hs), e.component(\"ADuration\", Ha);\n}\nexport {\n Ro as ACheckbox,\n Ao as AComboBox,\n ha as ADate,\n rn as ADatePicker,\n Za as ADateRange,\n rt as ADateSelection,\n kt as ADateTime,\n Ta as ADropdown,\n Ha as ADuration,\n Xa as AFieldset,\n ls as AFileAttach,\n dn as AForm,\n ps as AFormLink,\n ks as ANumericInput,\n Hs as ATextInput,\n js as Login,\n bt as deserializeFunction,\n Ks as install\n};\n//# sourceMappingURL=aform.js.map\n","<template>\n\t<footer>\n\t\t<ul class=\"tabs\">\n\t\t\t<li class=\"hidebreadcrumbs\" @click=\"toggleBreadcrumbs\" @keydown.enter=\"toggleBreadcrumbs\">\n\t\t\t\t<a tabindex=\"0\"><div :class=\"rotateHideTabIcon\">×</div></a>\n\t\t\t</li>\n\t\t\t<li\n\t\t\t\tclass=\"hometab\"\n\t\t\t\t:style=\"{ display: breadcrumbsVisibile ? 'block' : 'none' }\"\n\t\t\t\t@click=\"navigateHome\"\n\t\t\t\t@keydown.enter=\"navigateHome\">\n\t\t\t\t<router-link to=\"/\" tabindex=\"0\">\n\t\t\t\t\t<svg class=\"icon\" aria-label=\"Home\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n\t\t\t\t\t\t<path d=\"M3 12l9-9 9 9\" />\n\t\t\t\t\t\t<path d=\"M9 21V12h6v9\" />\n\t\t\t\t\t</svg>\n\t\t\t\t</router-link>\n\t\t\t</li>\n\t\t\t<li\n\t\t\t\t:class=\"['searchtab', { 'search-active': searchVisible }]\"\n\t\t\t\t:style=\"{ display: breadcrumbsVisibile ? 'block' : 'none' }\">\n\t\t\t\t<a tabindex=\"0\">\n\t\t\t\t\t<svg\n\t\t\t\t\t\tv-show=\"!searchVisible\"\n\t\t\t\t\t\tclass=\"icon search-icon\"\n\t\t\t\t\t\trole=\"button\"\n\t\t\t\t\t\taria-label=\"Search\"\n\t\t\t\t\t\tviewBox=\"0 0 24 24\"\n\t\t\t\t\t\tfill=\"none\"\n\t\t\t\t\t\tstroke=\"currentColor\"\n\t\t\t\t\t\tstroke-width=\"2\"\n\t\t\t\t\t\t@click=\"toggleSearch\"\n\t\t\t\t\t\t@keydown.enter=\"toggleSearch\">\n\t\t\t\t\t\t<circle cx=\"11\" cy=\"11\" r=\"7\" />\n\t\t\t\t\t\t<path d=\"M21 21l-4.35-4.35\" />\n\t\t\t\t\t</svg>\n\t\t\t\t\t<input\n\t\t\t\t\t\tv-show=\"searchVisible\"\n\t\t\t\t\t\tref=\"searchinput\"\n\t\t\t\t\t\tv-model=\"searchText\"\n\t\t\t\t\t\ttype=\"text\"\n\t\t\t\t\t\tplaceholder=\"Search...\"\n\t\t\t\t\t\t@click.stop\n\t\t\t\t\t\t@input=\"handleSearchInput($event)\"\n\t\t\t\t\t\t@blur=\"handleSearch($event)\"\n\t\t\t\t\t\t@keydown.enter=\"handleSearch($event)\"\n\t\t\t\t\t\t@keydown.escape=\"toggleSearch\" />\n\t\t\t\t</a>\n\t\t\t</li>\n\t\t\t<li\n\t\t\t\tv-for=\"breadcrumb in breadcrumbs\"\n\t\t\t\t:key=\"breadcrumb.title\"\n\t\t\t\t:style=\"{ display: breadcrumbsVisibile ? 'block' : 'none' }\">\n\t\t\t\t<router-link tabindex=\"0\" :to=\"breadcrumb.to\"> {{ breadcrumb.title }} </router-link>\n\t\t\t</li>\n\t\t</ul>\n\t</footer>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed, nextTick, ref, useTemplateRef } from 'vue'\n\nconst { breadcrumbs = [] } = defineProps<{ breadcrumbs?: { title: string; to: string }[] }>()\n\nconst breadcrumbsVisibile = ref(true)\nconst searchVisible = ref(false)\nconst searchText = ref('')\nconst inputRef = useTemplateRef<HTMLInputElement>('searchinput')\n\nconst rotateHideTabIcon = computed(() => {\n\treturn breadcrumbsVisibile.value ? 'unrotated' : 'rotated'\n})\n\nconst toggleBreadcrumbs = () => {\n\tbreadcrumbsVisibile.value = !breadcrumbsVisibile.value\n}\n\nconst toggleSearch = async () => {\n\tsearchVisible.value = !searchVisible.value\n\tawait nextTick(() => {\n\t\tinputRef.value?.focus()\n\t})\n}\n\nconst handleSearchInput = (event: Event | MouseEvent) => {\n\tevent.preventDefault()\n\tevent.stopPropagation()\n}\n\nconst handleSearch = async (event: FocusEvent | KeyboardEvent) => {\n\tevent.preventDefault()\n\tevent.stopPropagation()\n\tawait toggleSearch()\n}\n\nconst navigateHome = (/* event: MouseEvent | KeyboardEvent */) => {\n\t// navigate home\n}\n</script>\n\n<style scoped>\nfooter {\n\tposition: fixed;\n\tbottom: 0px;\n\twidth: 100%;\n\tbackground-color: transparent;\n\theight: auto;\n\tmin-height: 2.4rem;\n\tz-index: 100;\n\ttext-align: left;\n\tfont-size: 100%;\n\tdisplay: flex;\n\tjustify-content: right;\n\tpadding: 0 0.75rem 0 0;\n\tbox-sizing: border-box;\n}\nul {\n\tdisplay: flex;\n\tflex-direction: row-reverse;\n\tmargin: 0;\n\tpadding: 0;\n\tlist-style: none;\n}\n\n.tabs li {\n\tfloat: left;\n\tlist-style-type: none;\n\tposition: relative;\n\tmargin-left: -1px;\n}\n\n/* Base tab styling */\n.tabs a {\n\tfloat: left;\n\tpadding: 0.5rem 1rem;\n\theight: 2.4rem;\n\tbox-sizing: border-box;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\ttext-decoration: none;\n\tcolor: var(--sc-gray-60, #666);\n\tbackground: var(--sc-btn-color, #ffffff);\n\tborder: 1px solid var(--sc-btn-border, #ccc);\n\tfont-size: 0.85rem;\n\tfont-family: var(--sc-font-family, system-ui, sans-serif);\n\ttransition: all 0.15s ease;\n\n\t/* Minimal ornamentation - subtle top radius only */\n\tborder-top-left-radius: 2px;\n\tborder-top-right-radius: 2px;\n}\n\n.tabs a:hover {\n\tbackground: var(--sc-btn-hover, #f2f2f2);\n}\n\n.tabs .router-link-active {\n\tz-index: 3;\n\tbackground: var(--sc-primary-color, #827553) !important;\n\tborder-color: var(--sc-primary-color, #827553) !important;\n\tcolor: var(--sc-primary-text-color, #fff) !important;\n}\n\n/* Pseudo-elements removed - minimal ornamentation style */\n\n/* Hide breadcrumbs tab */\n.hidebreadcrumbs a {\n\tmin-width: 2.4rem;\n\twidth: 2.4rem;\n\theight: 2.4rem;\n\tpadding: 0.5rem;\n\tbackground: var(--sc-btn-color, #ffffff);\n\tborder: 1px solid var(--sc-btn-border, #ccc);\n\tcolor: var(--sc-gray-60, #666);\n}\n\n.hidebreadcrumbs a div {\n\tfont-size: 1.2rem;\n}\n\n.rotated {\n\ttransform: rotate(45deg);\n\t-webkit-transform: rotate(45deg);\n\t-moz-transform: rotate(45deg);\n\t-ms-transform: rotate(45deg);\n\t-o-transform: rotate(45deg);\n\ttransition: transform 250ms ease;\n}\n.unrotated {\n\ttransform: rotate(0deg);\n\t-webkit-transform: rotate(0deg);\n\t-moz-transform: rotate(0deg);\n\t-ms-transform: rotate(0deg);\n\t-o-transform: rotate(0deg);\n\ttransition: transform 250ms ease;\n}\n\nli:active,\nli:hover,\nli:focus,\nli > a:active,\nli > a:hover,\nli > a:focus {\n\tz-index: 3;\n}\n\na:active,\na:hover,\na:focus {\n\toutline: 2px solid var(--sc-input-active-border-color, black);\n\tz-index: 3;\n}\n\n/* Home tab */\n.hometab a {\n\tmin-width: 2.4rem;\n\twidth: 2.4rem;\n\theight: 2.4rem;\n\tpadding: 0.5rem;\n\tbackground: var(--sc-btn-color, #ffffff);\n\tborder: 1px solid var(--sc-btn-border, #ccc);\n\tcolor: var(--sc-gray-60, #666);\n}\n\n/* SVG icon styling */\n.icon {\n\twidth: 1rem;\n\theight: 1rem;\n\tstroke: currentColor;\n\tflex-shrink: 0;\n}\n\n/* Search tab with animation */\n.searchtab {\n\toverflow: hidden;\n}\n\n.searchtab a {\n\tmin-width: 2.4rem;\n\theight: 2.4rem;\n\tpadding: 0.5rem;\n\tbackground: var(--sc-btn-color, #ffffff);\n\tborder: 1px solid var(--sc-btn-border, #ccc);\n\tcolor: var(--sc-gray-60, #666);\n\toverflow: hidden;\n\t/* Animation for smooth expand/collapse */\n\tmax-width: 2.4rem;\n\ttransition:\n\t\tmax-width 0.35s ease-in-out,\n\t\tpadding 0.35s ease-in-out,\n\t\tbackground 0.2s ease;\n}\n\n.searchtab .search-icon {\n\tcursor: pointer;\n}\n\n.searchtab input {\n\toutline: none;\n\tborder: 1px solid var(--sc-input-border-color, #ccc);\n\tborder-radius: 0.25rem;\n\tbackground-color: var(--sc-form-background, #ffffff);\n\tcolor: var(--sc-gray-80, #333);\n\ttext-align: left;\n\tfont-size: 0.875rem;\n\tpadding: 0.25rem 0.5rem;\n\twidth: 180px;\n\theight: 1.5rem;\n\tflex-shrink: 0;\n\topacity: 0;\n\ttransition: opacity 0.2s ease-in-out;\n\ttransition-delay: 0s;\n}\n\n.searchtab input:focus {\n\tborder-color: var(--sc-input-active-border-color, #4f46e5);\n\toutline: none;\n}\n\n.searchtab input::placeholder {\n\tcolor: var(--sc-input-label-color, #999);\n}\n\n/* Search active state - expanded with animation */\n.searchtab.search-active a {\n\tmax-width: 200px;\n\tmin-width: auto;\n\twidth: auto;\n\tpadding: 0.5rem 0.75rem;\n}\n\n.searchtab.search-active input {\n\topacity: 1;\n\ttransition-delay: 0.15s;\n}\n</style>\n","<template>\n\t<div class=\"desktop\" @click=\"handleClick\">\n\t\t<!-- Action Set -->\n\t\t<ActionSet :elements=\"actionElements\" @action-click=\"handleActionClick\" />\n\n\t\t<!-- Main content using AForm -->\n\t\t<AForm v-if=\"currentViewSchema.length > 0\" v-model:data=\"currentViewData\" :schema=\"currentViewSchema\" />\n\t\t<div v-else-if=\"!stonecrop\" class=\"loading\"><p>Initializing Stonecrop...</p></div>\n\t\t<div v-else class=\"loading\">\n\t\t\t<p>Loading {{ currentView }} data...</p>\n\t\t</div>\n\n\t\t<!-- Sheet Navigation -->\n\t\t<SheetNav :breadcrumbs=\"navigationBreadcrumbs\" />\n\n\t\t<!-- Command Palette -->\n\t\t<CommandPalette\n\t\t\t:is-open=\"commandPaletteOpen\"\n\t\t\t:search=\"searchCommands\"\n\t\t\tplaceholder=\"Type a command or search...\"\n\t\t\t@select=\"executeCommand\"\n\t\t\t@close=\"commandPaletteOpen = false\">\n\t\t\t<template #title=\"{ result }\">\n\t\t\t\t{{ result.title }}\n\t\t\t</template>\n\t\t\t<template #content=\"{ result }\">\n\t\t\t\t{{ result.description }}\n\t\t\t</template>\n\t\t</CommandPalette>\n\t</div>\n</template>\n\n<script setup lang=\"ts\">\nimport { useStonecrop } from '@stonecrop/stonecrop'\nimport { AForm, type AFormLinkNavigator, type ResolvedField, type ResolvedTable } from '@stonecrop/aform'\nimport type { ColumnSchema } from '@stonecrop/schema'\nimport { computed, onMounted, onUnmounted, provide, ref, unref, watch } from 'vue'\n\nimport ActionSet from './ActionSet.vue'\nimport SheetNav from './SheetNav.vue'\nimport CommandPalette from './CommandPalette.vue'\nimport type {\n\tActionElements,\n\tRouteAdapter,\n\tNavigationTarget,\n\tActionEventPayload,\n\tRecordOpenEventPayload,\n\tLoadRecordsEventPayload,\n\tLoadRecordEventPayload,\n} from '../types'\n\nconst {\n\tavailableDoctypes = [],\n\trouteAdapter,\n\tconfirmFn,\n\trecordIdField,\n} = defineProps<{\n\tavailableDoctypes?: string[]\n\t/**\n\t * Pluggable router adapter. When provided, Desktop uses these functions for all\n\t * routing instead of reaching into the registry's internal Vue Router instance.\n\t * Nuxt hosts (or any host with custom route conventions) should supply this.\n\t */\n\trouteAdapter?: RouteAdapter\n\t/**\n\t * Replacement for the native `confirm()` dialog. Desktop calls this before\n\t * performing a destructive action. Return `true` to proceed.\n\t * Defaults to the native `window.confirm` if omitted.\n\t */\n\tconfirmFn?: (message: string) => boolean | Promise<boolean>\n\t/**\n\t * The field name that holds the canonical record ID (e.g., 'rowId' for UUID).\n\t * Used for navigation and table row identification.\n\t * Defaults to 'id' if not specified.\n\t */\n\trecordIdField?: string\n}>()\n\nconst emit = defineEmits<{\n\t/**\n\t * Fired when the user triggers an FSM transition (action button click).\n\t * The host app is responsible for calling the server, persisting state, etc.\n\t */\n\taction: [payload: ActionEventPayload]\n\t/**\n\t * Fired when Desktop wants to navigate to a different view.\n\t * Also calls routeAdapter.navigate() if an adapter is provided.\n\t */\n\tnavigate: [target: NavigationTarget]\n\t/**\n\t * Fired when the user opens a specific record.\n\t */\n\t'record:open': [payload: RecordOpenEventPayload]\n\t/**\n\t * Fired when Desktop needs records for a list view.\n\t * The host app should fetch and populate HST.\n\t */\n\t'load-records': [payload: LoadRecordsEventPayload]\n\t/**\n\t * Fired when Desktop needs a single record for a form view.\n\t * The host app should fetch and populate HST.\n\t */\n\t'load-record': [payload: LoadRecordEventPayload]\n}>()\n\nconst { stonecrop } = useStonecrop()\n\n// State\nconst loading = ref(false)\nconst commandPaletteOpen = ref(false)\n\n// Form/list data management — each view produces a different data shape.\n// List views (doctypes, records) return table row data keyed by fieldname.\n// Record view returns HST record fields for two-way binding.\nconst currentViewData = computed<Record<string, any>>({\n\tget() {\n\t\t// Doctypes list — rows come from availableDoctypes prop (reactive via availableDoctypes)\n\t\tif (currentView.value === 'doctypes') {\n\t\t\treturn {\n\t\t\t\tdoctypes_table:\n\t\t\t\t\tavailableDoctypes?.map(doctype => ({\n\t\t\t\t\t\tid: doctype,\n\t\t\t\t\t\tdoctype,\n\t\t\t\t\t\tdisplay_name: formatDoctypeName(doctype),\n\t\t\t\t\t\trecord_count: getRecordCount(doctype),\n\t\t\t\t\t\tactions: 'View Records',\n\t\t\t\t\t})) ?? [],\n\t\t\t}\n\t\t}\n\n\t\t// Records list — rows come from HST store (reactive because HST is Vue reactive())\n\t\tif (currentView.value === 'records') {\n\t\t\tconst idField = recordIdField || 'id'\n\t\t\treturn {\n\t\t\t\trecords_table: getRecords().map(record =>\n\t\t\t\t\tObject.assign({}, record, {\n\t\t\t\t\t\tid: record[idField] || record.id || '',\n\t\t\t\t\t\tactions: 'Edit | Delete',\n\t\t\t\t\t})\n\t\t\t\t),\n\t\t\t}\n\t\t}\n\n\t\t// Record form — read single record from HST\n\t\tif (!stonecrop.value || !currentDoctype.value || !currentRecordId.value) {\n\t\t\treturn {}\n\t\t}\n\n\t\ttry {\n\t\t\tconst record = stonecrop.value.getRecordById(currentDoctype.value, currentRecordId.value)\n\t\t\t// Return a plain shallow copy so AForm mutations don't propagate directly into\n\t\t\t// the HST reactive object, which would bypass field-trigger diffing and cause\n\t\t\t// setupDeepReactivity to fire triggers for all fields on every keystroke.\n\t\t\tconst flat: Record<string, any> = { ...record?.get('') }\n\n\t\t\t// AFieldset receives data[fieldsetFieldname] as its data prop, so the fieldset's\n\t\t\t// children must be grouped under the fieldset key. The server returns flat SQL rows,\n\t\t\t// so we nest fieldset children here before AForm renders them.\n\t\t\tconst doctype = stonecrop.value.registry.registry[currentDoctype.value]\n\t\t\tif (doctype) {\n\t\t\t\tfor (const field of doctype.getSchemaArray()) {\n\t\t\t\t\tif (field.kind === 'fieldset') {\n\t\t\t\t\t\tconst nested: Record<string, any> = {}\n\t\t\t\t\t\tfor (const child of field.schema) {\n\t\t\t\t\t\t\tif (child.fieldname) nested[child.fieldname] = flat[child.fieldname]\n\t\t\t\t\t\t}\n\t\t\t\t\t\tflat[field.fieldname] = nested\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn flat\n\t\t} catch {\n\t\t\treturn {}\n\t\t}\n\t},\n\tset(newData: Record<string, any>) {\n\t\t// List views are read-only from AForm's perspective — HST writes only apply to record form\n\t\tif (currentView.value !== 'record') return\n\t\tif (!stonecrop.value || !currentDoctype.value || !currentRecordId.value) {\n\t\t\treturn\n\t\t}\n\n\t\ttry {\n\t\t\t// AForm emits nested data for fieldsets: { fieldsetKey: { childA: val } }.\n\t\t\t// HST and the server both expect flat rows, so flatten fieldset values back before writing.\n\t\t\tconst doctype = stonecrop.value.registry.registry[currentDoctype.value]\n\t\t\tconst fieldsetNames = new Set<string>()\n\t\t\tif (doctype) {\n\t\t\t\tfor (const field of doctype.getSchemaArray()) {\n\t\t\t\t\tif (field.kind === 'fieldset') {\n\t\t\t\t\t\tfieldsetNames.add(field.fieldname)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Two-pass flatten: non-fieldset keys first, then fieldset children.\n\t\t\t// Fieldset children must be applied last — AForm may emit stale flat copies\n\t\t\t// of fieldset children alongside the updated nested value, and the nested\n\t\t\t// value must win regardless of key insertion order.\n\t\t\tconst flatData: Record<string, any> = {}\n\t\t\tconst fieldsetValues: Record<string, any>[] = []\n\t\t\tfor (const [key, value] of Object.entries(newData)) {\n\t\t\t\tif (fieldsetNames.has(key) && value && typeof value === 'object' && !Array.isArray(value)) {\n\t\t\t\t\tfieldsetValues.push(value)\n\t\t\t\t} else {\n\t\t\t\t\tflatData[key] = value\n\t\t\t\t}\n\t\t\t}\n\t\t\tfor (const nestedValue of fieldsetValues) {\n\t\t\t\tObject.assign(flatData, nestedValue)\n\t\t\t}\n\n\t\t\t// Only update fields that actually changed. Never write undefined — AForm may emit\n\t\t\t// schema fields absent from the record as undefined; writing them would silently\n\t\t\t// clear values that exist in HST. Explicit null is allowed (intentional clear).\n\t\t\tconst hstStore = stonecrop.value.getStore()\n\t\t\tfor (const [fieldname, value] of Object.entries(flatData)) {\n\t\t\t\tif (value === undefined) continue\n\t\t\t\tconst fieldPath = `${currentDoctype.value}.${currentRecordId.value}.${fieldname}`\n\t\t\t\tconst currentValue = hstStore.has(fieldPath) ? hstStore.get(fieldPath) : undefined\n\t\t\t\tif (currentValue !== value) {\n\t\t\t\t\thstStore.set(fieldPath, value)\n\t\t\t\t}\n\t\t\t}\n\t\t} catch (error) {\n\t\t\tconsole.warn('HST update failed:', error)\n\t\t}\n\t},\n})\n\n// Computed properties for current route context.\n// When a routeAdapter is provided it takes full precedence over the registry's internal router.\nconst route = computed(() => (routeAdapter ? null : unref(stonecrop.value?.registry.router?.currentRoute)))\nconst router = computed(() => (routeAdapter ? null : stonecrop.value?.registry.router))\nconst currentDoctype = computed(() => {\n\tif (routeAdapter) return routeAdapter.getCurrentDoctype()\n\tif (!route.value) return ''\n\n\t// First check if we have actualDoctype in meta (from registered routes)\n\tif (route.value.meta?.actualDoctype) {\n\t\treturn route.value.meta.actualDoctype as string\n\t}\n\n\t// For named routes, use params.doctype\n\tif (route.value.params.doctype) {\n\t\treturn route.value.params.doctype.toString()\n\t}\n\n\t// For catch-all routes that haven't been registered yet, extract from path\n\tconst pathMatch = route.value.params.pathMatch as string[] | undefined\n\tif (pathMatch && pathMatch.length > 0) {\n\t\treturn pathMatch[0]\n\t}\n\n\treturn ''\n})\n\n// The route doctype for display and navigation (e.g., 'todo')\nconst routeDoctype = computed(() => {\n\tif (routeAdapter) return routeAdapter.getCurrentDoctype()\n\tif (!route.value) return ''\n\n\t// Check route meta first\n\tif (route.value.meta?.doctype) {\n\t\treturn route.value.meta.doctype as string\n\t}\n\n\t// For named routes, use params.doctype\n\tif (route.value.params.doctype) {\n\t\treturn route.value.params.doctype.toString()\n\t}\n\n\t// For catch-all routes, extract from path\n\tconst pathMatch = route.value.params.pathMatch as string[] | undefined\n\tif (pathMatch && pathMatch.length > 0) {\n\t\treturn pathMatch[0]\n\t}\n\n\treturn ''\n})\n\nconst currentRecordId = computed(() => {\n\tif (routeAdapter) return routeAdapter.getCurrentRecordId()\n\tif (!route.value) return ''\n\n\t// For named routes, use params.recordId\n\tif (route.value.params.recordId) {\n\t\treturn route.value.params.recordId.toString()\n\t}\n\n\t// For catch-all routes that haven't been registered yet, extract from path\n\tconst pathMatch = route.value.params.pathMatch as string[] | undefined\n\tif (pathMatch && pathMatch.length > 1) {\n\t\treturn pathMatch[1]\n\t}\n\n\treturn ''\n})\nconst isNewRecord = computed(() => currentRecordId.value?.startsWith('new-'))\n\n// Determine current view based on route\nconst currentView = computed(() => {\n\tif (routeAdapter) return routeAdapter.getCurrentView()\n\tif (!route.value) {\n\t\treturn 'doctypes'\n\t}\n\n\t// Home route\n\tif (route.value.name === 'home' || route.value.path === '/') {\n\t\treturn 'doctypes'\n\t}\n\n\t// Named routes from registered doctypes\n\tif (route.value.name && route.value.name !== 'catch-all') {\n\t\tconst routeName = route.value.name as string\n\t\tif (routeName.includes('form') || route.value.params.recordId) {\n\t\t\treturn 'record'\n\t\t} else if (routeName.includes('list') || route.value.params.doctype) {\n\t\t\treturn 'records'\n\t\t}\n\t}\n\n\t// Catch-all route - determine from path structure\n\tconst pathMatch = route.value.params.pathMatch as string[] | undefined\n\tif (pathMatch && pathMatch.length > 0) {\n\t\tconst view = pathMatch.length === 1 ? 'records' : 'record'\n\t\treturn view\n\t}\n\n\treturn 'doctypes'\n})\n\n// Computed properties (now that all helper functions are defined)\n// Helper function to get available transitions for current record.\n// Reads the actual FSM state from the record's `status` field (or falls back to the\n// workflow initial state) so the available action buttons always reflect reality.\nconst getAvailableTransitions = () => {\n\tif (!stonecrop.value || !currentDoctype.value || !currentRecordId.value) {\n\t\treturn []\n\t}\n\n\ttry {\n\t\tconst doctype = stonecrop.value.registry.getDoctype(currentDoctype.value)\n\t\tif (!doctype?.workflow) return []\n\n\t\t// Delegate state resolution to Stonecrop — reads record 'status', falls back to workflow.initial\n\t\tconst currentState = stonecrop.value.getRecordState(currentDoctype.value, currentRecordId.value)\n\n\t\t// Delegate transition lookup to Doctype — no more manual workflow introspection\n\t\tconst transitions = doctype.getAvailableTransitions(currentState)\n\n\t\tconst recordData = currentViewData.value || {}\n\n\t\t// Each transition emits an 'action' event. The host app decides what to do\n\t\t// (call the server, trigger an FSM actor, update HST, etc.).\n\t\treturn transitions.map(({ name, targetState }) => ({\n\t\t\tlabel: `${name} (→ ${targetState})`,\n\t\t\taction: () => {\n\t\t\t\temit('action', {\n\t\t\t\t\tname,\n\t\t\t\t\tdoctype: currentDoctype.value,\n\t\t\t\t\trecordId: currentRecordId.value,\n\t\t\t\t\tdata: recordData,\n\t\t\t\t})\n\t\t\t},\n\t\t}))\n\t} catch (error) {\n\t\tconsole.warn('Error getting available transitions:', error)\n\t\treturn []\n\t}\n}\n\nconst actionElements = computed(() => {\n\tconst elements: ActionElements[] = []\n\n\tswitch (currentView.value) {\n\t\tcase 'records':\n\t\t\telements.push({\n\t\t\t\ttype: 'button',\n\t\t\t\tlabel: 'New Record',\n\t\t\t\taction: () => void createNewRecord(),\n\t\t\t})\n\t\t\tbreak\n\t\tcase 'record': {\n\t\t\t// Populate the Actions dropdown with every FSM transition available in the\n\t\t\t// record's current state. Clicking a transition emits 'action'.\n\t\t\tconst transitionActions = getAvailableTransitions()\n\t\t\tif (transitionActions.length > 0) {\n\t\t\t\telements.push({\n\t\t\t\t\ttype: 'dropdown',\n\t\t\t\t\tlabel: 'Actions',\n\t\t\t\t\tactions: transitionActions,\n\t\t\t\t})\n\t\t\t}\n\t\t\tbreak\n\t\t}\n\t}\n\n\treturn elements\n})\n\nconst navigationBreadcrumbs = computed(() => {\n\tconst breadcrumbs: { title: string; to: string }[] = []\n\n\tif (currentView.value === 'records' && routeDoctype.value) {\n\t\tbreadcrumbs.push(\n\t\t\t{ title: 'Home', to: '/' },\n\t\t\t{ title: formatDoctypeName(routeDoctype.value), to: `/${routeDoctype.value}` }\n\t\t)\n\t} else if (currentView.value === 'record' && routeDoctype.value) {\n\t\tconst recordPath = currentRecordId.value\n\t\t\t? `/${routeDoctype.value}/${currentRecordId.value}`\n\t\t\t: (route.value?.fullPath ?? '')\n\t\tbreadcrumbs.push(\n\t\t\t{ title: 'Home', to: '/' },\n\t\t\t{ title: formatDoctypeName(routeDoctype.value), to: `/${routeDoctype.value}` },\n\t\t\t{ title: isNewRecord.value ? 'New Record' : 'Edit Record', to: recordPath }\n\t\t)\n\t}\n\n\treturn breadcrumbs\n})\n\n// Command palette functionality\ntype Command = {\n\ttitle: string\n\tdescription: string\n\taction: () => void\n}\n\nconst searchCommands = (query: string): Command[] => {\n\tconst commands: Command[] = [\n\t\t{\n\t\t\ttitle: 'Go Home',\n\t\t\tdescription: 'Navigate to the home page',\n\t\t\taction: () => void doNavigate({ view: 'doctypes' }),\n\t\t},\n\t\t{\n\t\t\ttitle: 'Toggle Command Palette',\n\t\t\tdescription: 'Open/close the command palette',\n\t\t\taction: () => (commandPaletteOpen.value = !commandPaletteOpen.value),\n\t\t},\n\t]\n\n\t// Add doctype-specific commands\n\tif (routeDoctype.value) {\n\t\tcommands.push({\n\t\t\ttitle: `View ${formatDoctypeName(routeDoctype.value)} Records`,\n\t\t\tdescription: `Navigate to ${routeDoctype.value} list`,\n\t\t\taction: () => void doNavigate({ view: 'records', doctype: routeDoctype.value }),\n\t\t})\n\n\t\tcommands.push({\n\t\t\ttitle: `Create New ${formatDoctypeName(routeDoctype.value)}`,\n\t\t\tdescription: `Create a new ${routeDoctype.value} record`,\n\t\t\taction: () => void createNewRecord(),\n\t\t})\n\t}\n\n\t// Add available doctypes as commands\n\tavailableDoctypes.forEach(doctype => {\n\t\tcommands.push({\n\t\t\ttitle: `View ${formatDoctypeName(doctype)}`,\n\t\t\tdescription: `Navigate to ${doctype} list`,\n\t\t\taction: () => void doNavigate({ view: 'records', doctype }),\n\t\t})\n\t})\n\n\t// Filter commands based on query\n\tif (!query) return commands\n\n\treturn commands.filter(\n\t\tcmd =>\n\t\t\tcmd.title.toLowerCase().includes(query.toLowerCase()) ||\n\t\t\tcmd.description.toLowerCase().includes(query.toLowerCase())\n\t)\n}\n\nconst executeCommand = (command: Command) => {\n\tcommand.action()\n\tcommandPaletteOpen.value = false\n}\n\n// Helper functions - moved here to avoid \"before initialization\" errors\nconst formatDoctypeName = (doctype: string): string => {\n\treturn doctype\n\t\t.split('-')\n\t\t.map(word => word.charAt(0).toUpperCase() + word.slice(1))\n\t\t.join(' ')\n}\n\nconst getRecordCount = (doctype: string): number => {\n\tif (!stonecrop.value) return 0\n\tconst recordIds = stonecrop.value.getRecordIds(doctype)\n\treturn recordIds.length\n}\n\n// Internal navigation helper: emits 'navigate', then calls the adapter (if any)\n// or falls back to the registry's Vue Router instance.\nconst doNavigate = async (target: NavigationTarget) => {\n\temit('navigate', target)\n\tif (routeAdapter) {\n\t\tawait routeAdapter.navigate(target)\n\t} else {\n\t\tif (target.view === 'doctypes') {\n\t\t\tawait router.value?.push('/')\n\t\t} else if (target.view === 'records' && target.doctype) {\n\t\t\tawait router.value?.push(`/${target.doctype}`)\n\t\t} else if (target.view === 'record' && target.doctype && target.recordId) {\n\t\t\tawait router.value?.push(`/${target.doctype}/${target.recordId}`)\n\t\t}\n\t}\n}\n\nconst navigateToDoctype = async (doctype: string) => {\n\tawait doNavigate({ view: 'records', doctype })\n}\n\nconst openRecord = async (recordId: string) => {\n\tconst doctype = routeDoctype.value\n\temit('record:open', { doctype, recordId })\n\tawait doNavigate({ view: 'record', doctype, recordId })\n}\n\nconst createNewRecord = async () => {\n\tconst newId = `new-${Date.now()}`\n\tawait doNavigate({ view: 'record', doctype: routeDoctype.value, recordId: newId })\n}\n\n// Flatten Fieldset containers into individual columns for list/table views.\n// A Fieldset groups form fields visually but has no DB column; its children are the\n// actual data fields and should appear as flat columns in a list view.\nconst flattenFieldsets = (fields: ResolvedField[]): ResolvedField[] => {\n\tconst result: ResolvedField[] = []\n\tfor (const field of fields) {\n\t\tif (field.kind === 'fieldset') {\n\t\t\tresult.push(...flattenFieldsets(field.schema))\n\t\t} else {\n\t\t\tresult.push(field)\n\t\t}\n\t}\n\treturn result\n}\n\n// Schema generator functions - moved here to be available to computed properties\nconst getDoctypesSchema = (): ResolvedField[] => {\n\tif (!availableDoctypes?.length) return []\n\n\treturn [\n\t\t{\n\t\t\tkind: 'table' as const,\n\t\t\tfieldname: 'doctypes_table',\n\t\t\tcomponent: 'ATable',\n\t\t\tlabel: 'Doctypes',\n\t\t\tschema: [\n\t\t\t\t{\n\t\t\t\t\tfieldname: 'doctype',\n\t\t\t\t\tlabel: 'Doctype',\n\t\t\t\t\tfieldtype: 'Data',\n\t\t\t\t\talign: 'left' as const,\n\t\t\t\t\tedit: false,\n\t\t\t\t\twidth: '20ch',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tfieldname: 'display_name',\n\t\t\t\t\tlabel: 'Name',\n\t\t\t\t\tfieldtype: 'Data',\n\t\t\t\t\talign: 'left' as const,\n\t\t\t\t\tedit: false,\n\t\t\t\t\twidth: '30ch',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tfieldname: 'record_count',\n\t\t\t\t\tlabel: 'Records',\n\t\t\t\t\tfieldtype: 'Int',\n\t\t\t\t\talign: 'center' as const,\n\t\t\t\t\tedit: false,\n\t\t\t\t\twidth: '15ch',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tfieldname: 'actions',\n\t\t\t\t\tlabel: 'Actions',\n\t\t\t\t\tfieldtype: 'Data',\n\t\t\t\t\talign: 'center' as const,\n\t\t\t\t\tedit: false,\n\t\t\t\t\twidth: '20ch',\n\t\t\t\t},\n\t\t\t],\n\t\t\tconfig: { view: 'list' as const, fullWidth: true },\n\t\t} satisfies ResolvedTable,\n\t]\n}\n\nconst getRecordsSchema = (): ResolvedField[] => {\n\tif (!currentDoctype.value) return []\n\tif (!stonecrop.value) return []\n\n\tconst registry = stonecrop.value.registry\n\tconst doctype = registry.registry[currentDoctype.value]\n\n\tif (!doctype) return []\n\n\tconst schema = registry.resolveSchema(doctype)\n\n\t// If no schema is available, let the template fallback handle the loading state\n\tif (schema.length === 0) return []\n\n\treturn [\n\t\t{\n\t\t\tkind: 'table' as const,\n\t\t\tfieldname: 'records_table',\n\t\t\tcomponent: 'ATable',\n\t\t\tschema: [\n\t\t\t\t...(flattenFieldsets(schema) as ColumnSchema[]),\n\t\t\t\t{ fieldname: 'actions', label: 'Actions', fieldtype: 'Data' },\n\t\t\t],\n\t\t\tconfig: { view: 'list' as const, fullWidth: true },\n\t\t} satisfies ResolvedTable,\n\t]\n}\n\nconst getRecordFormSchema = (): ResolvedField[] => {\n\tif (!currentDoctype.value) return []\n\tif (!stonecrop.value) return []\n\n\ttry {\n\t\tconst registry = stonecrop.value?.registry\n\t\tconst doctype = registry?.registry[currentDoctype.value]\n\n\t\tif (!doctype?.schema) {\n\t\t\t// Let the template fallback handle the loading state\n\t\t\treturn []\n\t\t}\n\n\t\treturn registry.resolveSchema(doctype)\n\t} catch {\n\t\treturn []\n\t}\n}\n\n// Additional data helper functions\nconst getRecords = () => {\n\tif (!stonecrop.value || !currentDoctype.value) {\n\t\treturn []\n\t}\n\n\tconst recordsNode = stonecrop.value.records(currentDoctype.value)\n\tconst recordsData = recordsNode?.get('')\n\n\tif (recordsData && typeof recordsData === 'object' && !Array.isArray(recordsData)) {\n\t\treturn Object.values(recordsData as Record<string, any>)\n\t}\n\n\treturn []\n}\n\n// Schema for different views - defined here after all helper functions are available\nconst currentViewSchema = computed(() => {\n\tswitch (currentView.value) {\n\t\tcase 'doctypes':\n\t\t\treturn getDoctypesSchema()\n\t\tcase 'records':\n\t\t\treturn getRecordsSchema()\n\t\tcase 'record':\n\t\t\treturn getRecordFormSchema()\n\t\tdefault:\n\t\t\treturn []\n\t}\n})\n\nconst handleActionClick = (_label: string, action: (() => void | Promise<void>) | undefined) => {\n\tif (action) {\n\t\tvoid action()\n\t}\n}\n\n// Desktop does NOT own the delete lifecycle — it asks for confirmation, then emits\n// an 'action' event. The host app is responsible for removing the record from HST\n// and calling the server.\nconst handleDelete = async (recordId?: string) => {\n\tconst targetRecordId = recordId || currentRecordId.value\n\tif (!targetRecordId) return\n\n\tconst confirmed = confirmFn\n\t\t? await confirmFn('Are you sure you want to delete this record?')\n\t\t: confirm('Are you sure you want to delete this record?')\n\n\tif (confirmed) {\n\t\temit('action', {\n\t\t\tname: 'DELETE',\n\t\t\tdoctype: currentDoctype.value,\n\t\t\trecordId: targetRecordId,\n\t\t\tdata: currentViewData.value || {},\n\t\t})\n\t}\n}\n\n// Event handlers\nconst getRecordIdFromRow = (rowElement: HTMLTableRowElement): string | null => {\n\tconst cell = rowElement.querySelector('td[data-rowindex]')\n\tif (!cell) return null\n\n\tconst rowIndexAttr = cell.getAttribute('data-rowindex')\n\tif (rowIndexAttr === null) return null\n\n\tconst rowIndex = parseInt(rowIndexAttr, 10)\n\tif (isNaN(rowIndex)) return null\n\n\tconst records = getRecords()\n\tconst record = records[rowIndex]\n\tif (!record) return null\n\n\tconst idField = recordIdField || 'id'\n\treturn record[idField] || record.id || null\n}\n\nconst handleClick = async (event: Event) => {\n\tconst target = event.target as HTMLElement\n\tconst action = target.getAttribute('data-action')\n\n\tif (action === 'create') {\n\t\tawait createNewRecord()\n\t}\n\n\tconst cell = target.closest('td, th')\n\tif (cell) {\n\t\tconst cellText = cell.textContent?.trim()\n\t\tconst row = cell.closest('tr')\n\n\t\tif (cellText === 'View Records' && row) {\n\t\t\t// Get the doctype from the row data\n\t\t\tconst cells = row.querySelectorAll('td')\n\t\t\tif (cells.length > 0) {\n\t\t\t\tconst doctypeCell = cells[1] // Assuming doctype is in second column (first column is index)\n\t\t\t\tconst doctype = doctypeCell.textContent?.trim()\n\t\t\t\tif (doctype) {\n\t\t\t\t\tawait navigateToDoctype(doctype)\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (cellText?.includes('Edit') && row) {\n\t\t\tconst recordId = getRecordIdFromRow(row)\n\t\t\tif (recordId) {\n\t\t\t\tawait openRecord(recordId)\n\t\t\t}\n\t\t} else if (cellText?.includes('Delete') && row) {\n\t\t\tconst recordId = getRecordIdFromRow(row)\n\t\t\tif (recordId) {\n\t\t\t\tawait handleDelete(recordId)\n\t\t\t}\n\t\t}\n\t}\n}\n\nconst loadRecordData = async () => {\n\tif (!stonecrop.value || !currentDoctype.value || isNewRecord.value) return\n\n\t// Record already in HST — nothing to fetch.\n\tif (stonecrop.value.getRecordById(currentDoctype.value, currentRecordId.value)) return\n\n\t// Record absent and a client is configured — fetch directly so the form\n\t// populates even when the list view was never visited (direct URL navigation).\n\tif (stonecrop.value.getClient()) {\n\t\tloading.value = true\n\t\ttry {\n\t\t\tawait stonecrop.value.getRecord(currentDoctype.value, currentRecordId.value)\n\t\t} catch (error) {\n\t\t\tconsole.warn('Error fetching record:', error)\n\t\t} finally {\n\t\t\tloading.value = false\n\t\t}\n\t}\n}\n\n// Watch for route changes to load appropriate data\nwatch(\n\t[currentView, currentDoctype, currentRecordId],\n\t() => {\n\t\tif (currentView.value === 'records' && currentDoctype.value) {\n\t\t\t// Emit load-records event so host app can populate HST\n\t\t\temit('load-records', { doctype: currentDoctype.value })\n\t\t} else if (currentView.value === 'record' && currentDoctype.value && currentRecordId.value) {\n\t\t\t// Emit load-record event so host app can fetch and populate HST\n\t\t\temit('load-record', { doctype: currentDoctype.value, recordId: currentRecordId.value })\n\t\t\tvoid loadRecordData()\n\t\t}\n\t},\n\t{ immediate: true }\n)\n\n// Stonecrop reactive computed properties update automatically when the instance\n// becomes available — no manual watcher needed.\n\n// Provide navigation helpers and an emitAction convenience function to child components.\nconst desktopMethods = {\n\tnavigateToDoctype,\n\topenRecord,\n\tcreateNewRecord,\n\thandleDelete,\n\t/**\n\t * Convenience wrapper so child components (e.g. slot content) can emit\n\t * an action event without needing a direct reference to the emit function.\n\t */\n\temitAction: (name: string, data?: Record<string, any>) => {\n\t\temit('action', {\n\t\t\tname,\n\t\t\tdoctype: currentDoctype.value,\n\t\t\trecordId: currentRecordId.value,\n\t\t\tdata: data ?? currentViewData.value ?? {},\n\t\t})\n\t},\n}\n\nprovide('desktopMethods', desktopMethods)\n\n// Provide a navigator for AFormLink so the arrow button navigates to the linked record.\nprovide('aformLinkNavigator', {\n\tnavigate: (doctype: string, id: string | number) => {\n\t\tvoid doNavigate({ view: 'record', doctype, recordId: String(id) })\n\t},\n} satisfies AFormLinkNavigator)\n\nfunction toDisplayString(rec: Record<string, unknown> | undefined): string | undefined {\n\tif (!rec) return undefined\n\tconst val = rec.name ?? rec.title ?? rec.displayText\n\treturn typeof val === 'string' || typeof val === 'number' ? String(val) : undefined\n}\n\n// Provide a resolver for AFormLink to look up display text by doctype + id.\n// Checks HST first (sync); falls back to an async client fetch if not cached.\nprovide('aformLinkResolver', async (doctypeSlug: string, id: string): Promise<string | undefined> => {\n\tif (!stonecrop.value) return undefined\n\ttry {\n\t\tconst cached = stonecrop.value.getRecordById(doctypeSlug, id)?.get('') as Record<string, unknown> | undefined\n\t\tconst cachedDisplay = toDisplayString(cached)\n\t\tif (cachedDisplay != null) return cachedDisplay\n\t\tawait stonecrop.value.getRecord(doctypeSlug, id)\n\t\tconst fetched = stonecrop.value.getRecordById(doctypeSlug, id)?.get('') as Record<string, unknown> | undefined\n\t\treturn toDisplayString(fetched)\n\t} catch {\n\t\treturn undefined\n\t}\n})\n\nconst handleKeydown = (event: KeyboardEvent) => {\n\tif ((event.ctrlKey || event.metaKey) && event.key === 'k') {\n\t\tevent.preventDefault()\n\t\tcommandPaletteOpen.value = true\n\t}\n\tif (event.key === 'Escape' && commandPaletteOpen.value) {\n\t\tcommandPaletteOpen.value = false\n\t}\n}\n\nonMounted(() => {\n\tdocument.addEventListener('keydown', handleKeydown)\n})\n\nonUnmounted(() => {\n\tdocument.removeEventListener('keydown', handleKeydown)\n})\n</script>\n","import { App, type Plugin } from 'vue'\n\nimport ActionSet from '../components/ActionSet.vue'\nimport CommandPalette from '../components/CommandPalette.vue'\nimport Desktop from '../components/Desktop.vue'\nimport SheetNav from '../components/SheetNav.vue'\n\n/**\n * This is the main plugin that will be used to register all the desktop components.\n * @public\n */\nconst plugin: Plugin = {\n\tinstall: (app: App) => {\n\t\tapp.component('ActionSet', ActionSet)\n\t\tapp.component('CommandPalette', CommandPalette)\n\t\tapp.component('Desktop', Desktop)\n\t\tapp.component('SheetNav', SheetNav)\n\t},\n}\n\nexport default plugin\n"],"names":["emit","__emit","dropdownStates","ref","isOpen","dropdownOpen","onMounted","closeDropdowns","onClick","toggleDropdown","index","showDropdown","handleClick","action","label","_createElementBlock","_normalizeClass","_createElementVNode","_hoisted_1","_openBlock","_Fragment","_renderList","__props","el","_hoisted_2","$event","_toDisplayString","_hoisted_3","_hoisted_4","_hoisted_5","_hoisted_6","_hoisted_7","_withDirectives","_hoisted_8","_hoisted_9","item","_hoisted_10","_hoisted_12","_vShow","query","selectedIndex","inputRef","useTemplateRef","results","computed","watch","open","nextTick","closeModal","handleKeydown","e","selectResult","result","_createBlock","_Teleport","_createVNode","_Transition","_renderSlot","_ctx","IS_CLIENT","activePinia","setActivePinia","pinia","piniaSymbol","isPlainObject","o","MutationType","patchObject","newState","oldState","key","subPatch","targetValue","isRef","isReactive","noop","addSubscription","subscriptions","callback","detached","onCleanup","removeSubscription","getCurrentScope","onScopeDispose","triggerSubscriptions","args","fallbackRunWithContext","fn","ACTION_MARKER","ACTION_NAME","mergeReactiveObjects","target","patchToApply","value","skipHydrateSymbol","shouldHydrate","obj","assign","isComputed","createOptionsStore","id","options","hot","state","actions","getters","initialState","store","setup","localState","toRefs","computedGetters","name","markRaw","createSetupStore","$id","isOptionsStore","scope","optionsForPlugin","$subscribeOptions","event","isListening","debuggerEvents","isSyncListening","actionSubscriptions","hotState","activeListener","$patch","partialStateOrMutator","subscriptionMutation","myListenerId","$reset","$state","$dispose","wrappedAction","afterCallbackSet","onErrorCallbackSet","after","onError","ret","error","_hmrPayload","partialStore","stopWatcher","reactive","setupStore","effectScope","prop","toRef","actionValue","toRaw","newStore","stateKey","newStateTarget","oldStateSource","actionName","actionFn","getterName","getter","getterValue","nonEnumerable","p","extender","extensions","defineStore","setupOptions","isSetupStore","useStore","hasContext","hasInjectionContext","inject","hotId","currentInstance","getCurrentInstance","vm","cache","storeToRefs","rawStore","refs","qi","Ni","Pi","Dn","Fi","Ti","t","$n","Li","j","ji","i","Cn","Bi","nr","xi","zn","Ui","zt","Wi","Ki","Mn","br","Hi","Ft","Vi","At","Ht","J","Di","f","h","l","De","Ce","Yi","Ji","Gi","Zi","Xi","Qr","Qi","E","Tn","m","R","O","w","K","A","ce","bt","$","z","Y","Wt","_t","B","X","fe","to","ir","qe","no","tn","en","Ie","Ci","v","y","U","ft","Ot","gt","ge","u","Et","rn","Vt$1","Vt","Ue","r","n","io","Mt","lr","s","a","c","d","_","nn","ds","xe","S","I","b","D","C","Ln","or","Nt","Kt","Mi","er","rr","Le","$i","zi","oo","Xr","We","lt","Ke","P","Or","Nn","at","G","rt","pt","qt","jt","dt","ne","se","ie","ut","ct","pr","Pn","Ye","M","F","tt","Fn","Je","on","dr","so","ao","ke","L","ot","Q","k","_r","ht","Er","Yt","jn","Tt","Ge","xn","Ae","Bn","Ze","Un","Bt","St","mt","Wn","Rr","oe","Kn","kr","co","Ar","Hn","Jt","Ir","uo","sn","Mr","Me","$e","le","Xe","fo","nt","an","vo","ho","yo","lo","gr","_o","po","ur","ar","mo","Vn","vr","yr","Pt","cn","go","un","sr","Qe","$r","Xn","Yn","Jn","Gn","ln","Lr","Zn","wt","Qn","So","Ct","wo","It","Tr","T","bo","zr","Oo","Eo","Ro","Io","ko","Gt","Ne","hn","Pe","pn","st","ae","ii","oi","Ao","Mo","Dt","vt","He","Dr","Cr","$o","zo","qr","yt","Nr","To","Pr","Fr","jr","Br","ze","xr","ve","it","gn","Lo","Ur","N","Hr","Se","Fo","Do","Zt","fi","Wr","jo","qo","vn","hi","Po","No","we","Bo","Co","Xt","Kr","Rt","dn","cr","_n","li","be","xo","Uo","Wo","Ko","_i","gi","Qt","Be","Oe","$t","vi","Ho","kt","yn","ye","W","te","Ee","mr","yi","pe","Sn","Vr","mn","Sr","Yr","Fe","de","et","wn","bn","Vo","Yo","fr","On","En","Si","Jo","hr","wi","Jr","tr","_e","V","je","Re","bi","Rn","Oi","Go","Zo","Ri","Ve","Xo","In","Qo","xt","Z","Te","kn","ue","ee","Ii","wr","Ut","ki","An","ts","H","Zr","es","q","re","Gr","he","Vl","ga","Ga","Wa","qa","g","x","breadcrumbsVisibile","searchVisible","searchText","rotateHideTabIcon","toggleBreadcrumbs","toggleSearch","handleSearchInput","handleSearch","navigateHome","_component_router_link","_cache","_withKeys","breadcrumb","_createTextVNode","stonecrop","useStonecrop","loading","commandPaletteOpen","currentViewData","currentView","doctype","formatDoctypeName","getRecordCount","idField","getRecords","record","currentDoctype","currentRecordId","flat","field","nested","child","newData","fieldsetNames","flatData","fieldsetValues","nestedValue","hstStore","fieldname","fieldPath","route","unref","router","pathMatch","routeDoctype","isNewRecord","routeName","getAvailableTransitions","currentState","transitions","recordData","targetState","actionElements","elements","createNewRecord","transitionActions","navigationBreadcrumbs","breadcrumbs","recordPath","searchCommands","commands","doNavigate","cmd","executeCommand","command","word","navigateToDoctype","openRecord","recordId","newId","flattenFieldsets","fields","getDoctypesSchema","getRecordsSchema","registry","schema","getRecordFormSchema","recordsData","currentViewSchema","handleActionClick","_label","handleDelete","targetRecordId","getRecordIdFromRow","rowElement","cell","rowIndexAttr","rowIndex","cellText","row","cells","loadRecordData","provide","data","toDisplayString","rec","val","doctypeSlug","cached","cachedDisplay","fetched","onUnmounted","ActionSet","_unref","AForm","SheetNav","CommandPalette","_withCtx","plugin","app","Desktop"],"mappings":"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","x_google_ignoreList":[2]}