@stonecrop/desktop 0.13.14 → 0.15.0

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 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]}
1
+ {"version":3,"file":"desktop.js","sources":["../src/components/ActionSet.vue","../src/components/CommandPalette.vue","../../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<boolean[]>([])\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","import { watch as Je, onMounted as eo, nextTick as yn, readonly as to, getCurrentInstance as ro, toRef as Js, customRef as Vs, ref as K, reactive as nn, computed as te, toValue as Ue, shallowRef as no, unref as Ks, inject as kr, provide as ri } from \"vue\";\nimport { defineStore as io, storeToRefs as oo } from \"pinia\";\nconst Hs = Object.getPrototypeOf(async () => {\n}).constructor;\nasync function Ys(e, t = {}) {\n const r = Object.keys(t);\n return new Hs(...r, e)(...r.map((i) => t[i]));\n}\nconst Gs = typeof window < \"u\" && typeof document < \"u\";\ntypeof WorkerGlobalScope < \"u\" && globalThis instanceof WorkerGlobalScope;\nconst Xs = Object.prototype.toString, Qs = (e) => Xs.call(e) === \"[object Object]\", so = () => {\n};\nfunction ea(...e) {\n if (e.length !== 1) return Js(...e);\n const t = e[0];\n return typeof t == \"function\" ? to(Vs(() => ({\n get: t,\n set: so\n }))) : K(t);\n}\nfunction ta(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 ao = (e) => e();\nfunction ra(e = ao, t = {}) {\n const { initialState: r = \"active\" } = t, n = ea(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: to(n),\n pause: i,\n resume: o,\n eventFilter: s\n };\n}\nfunction Jr(e) {\n return Array.isArray(e) ? e : [e];\n}\nfunction na(e) {\n return ro();\n}\nfunction ia(e, t, r = {}) {\n const { eventFilter: n = ao, ...i } = r;\n return Je(e, ta(n, t), i);\n}\nfunction oa(e, t, r = {}) {\n const { eventFilter: n, initialState: i = \"active\", ...o } = r, { eventFilter: s, pause: a, resume: u, isActive: c } = ra(n, { initialState: i });\n return {\n stop: ia(e, t, {\n ...o,\n eventFilter: s\n }),\n pause: a,\n resume: u,\n isActive: c\n };\n}\nfunction sa(e, t = !0, r) {\n na() ? eo(e, r) : t ? e() : yn(e);\n}\nfunction aa(e, t, r) {\n return Je(e, t, {\n ...r,\n immediate: !0\n });\n}\nfunction Lt(e, t, r) {\n return Je(e, (i, o, s) => {\n i && t(i, o, s);\n }, {\n ...r,\n once: !1\n });\n}\nconst ot = Gs ? window : void 0;\nfunction ua(e) {\n var t;\n const r = Ue(e);\n return (t = r?.$el) !== null && t !== void 0 ? t : r;\n}\nfunction dt(...e) {\n const t = (n, i, o, s) => (n.addEventListener(i, o, s), () => n.removeEventListener(i, o, s)), r = te(() => {\n const n = Jr(Ue(e[0])).filter((i) => i != null);\n return n.every((i) => typeof i != \"string\") ? n : void 0;\n });\n return aa(() => {\n var n, i;\n return [\n (n = (i = r.value) === null || i === void 0 ? void 0 : i.map((o) => ua(o))) !== null && n !== void 0 ? n : [ot].filter((o) => o != null),\n Jr(Ue(r.value ? e[1] : e[0])),\n Jr(Ks(r.value ? e[2] : e[1])),\n Ue(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 = Qs(s) ? { ...s } : s, f = n.flatMap((l) => i.flatMap((h) => o.map((d) => t(l, h, d, c))));\n u(() => {\n f.forEach((l) => l());\n });\n }, { flush: \"post\" });\n}\nconst pr = typeof globalThis < \"u\" ? globalThis : typeof window < \"u\" ? window : typeof global < \"u\" ? global : typeof self < \"u\" ? self : {}, dr = \"__vueuse_ssr_handlers__\", ca = /* @__PURE__ */ fa();\nfunction fa() {\n return dr in pr || (pr[dr] = pr[dr] || {}), pr[dr];\n}\nfunction la(e, t) {\n return ca[e] || t;\n}\nfunction ha(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 pa = {\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}, ni = \"vueuse-storage\";\nfunction da(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: l = ot, eventFilter: h, onError: d = (A) => {\n console.error(A);\n }, initOnMounted: _ } = n, g = (f ? no : K)(t), m = te(() => Ue(e));\n if (!r) try {\n r = la(\"getDefaultStorage\", () => ot?.localStorage)();\n } catch (A) {\n d(A);\n }\n if (!r) return g;\n const E = Ue(t), $ = ha(E), b = (i = n.serializer) !== null && i !== void 0 ? i : pa[$], { pause: N, resume: k } = oa(g, (A) => Ct(A), {\n flush: o,\n deep: s,\n eventFilter: h\n });\n Je(m, () => Ce(), { flush: o });\n let M = !1;\n const D = (A) => {\n _ && !M || Ce(A);\n }, ie = (A) => {\n _ && !M || ht(A);\n };\n l && a && (r instanceof Storage ? dt(l, \"storage\", D, { passive: !0 }) : dt(l, ni, ie)), _ ? sa(() => {\n M = !0, Ce();\n }) : Ce();\n function Re(A, Y) {\n if (l) {\n const ae = {\n key: m.value,\n oldValue: A,\n newValue: Y,\n storageArea: r\n };\n l.dispatchEvent(r instanceof Storage ? new StorageEvent(\"storage\", ae) : new CustomEvent(ni, { detail: ae }));\n }\n }\n function Ct(A) {\n try {\n const Y = r.getItem(m.value);\n if (A == null)\n Re(Y, null), r.removeItem(m.value);\n else {\n const ae = b.write(A);\n Y !== ae && (r.setItem(m.value, ae), Re(Y, ae));\n }\n } catch (Y) {\n d(Y);\n }\n }\n function jt(A) {\n const Y = A ? A.newValue : r.getItem(m.value);\n if (Y == null)\n return u && E != null && r.setItem(m.value, b.write(E)), E;\n if (!A && c) {\n const ae = b.read(Y);\n return typeof c == \"function\" ? c(ae, E) : $ === \"object\" && !Array.isArray(ae) ? {\n ...E,\n ...ae\n } : ae;\n } else return typeof Y != \"string\" ? Y : b.read(Y);\n }\n function Ce(A) {\n if (!(A && A.storageArea !== r)) {\n if (A && A.key == null) {\n g.value = E;\n return;\n }\n if (!(A && A.key !== m.value)) {\n N();\n try {\n const Y = b.write(g.value);\n (A === void 0 || A?.newValue !== Y) && (g.value = jt(A));\n } catch (Y) {\n d(Y);\n } finally {\n A ? yn(k) : k();\n }\n }\n }\n }\n function ht(A) {\n Ce(A.detail);\n }\n return g;\n}\nfunction _a(e, t, r = {}) {\n const { window: n = ot } = r;\n return da(e, t, n?.localStorage, r);\n}\nconst ga = {\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 ma(e = {}) {\n const { reactive: t = !1, target: r = ot, aliasMap: n = ga, passive: i = !0, onEventFired: o = so } = e, s = nn(/* @__PURE__ */ new Set()), a = {\n toJSON() {\n return {};\n },\n current: s\n }, u = t ? nn(a) : a, c = /* @__PURE__ */ new Set(), f = /* @__PURE__ */ new Map([\n [\"Meta\", c],\n [\"Shift\", /* @__PURE__ */ new Set()],\n [\"Alt\", /* @__PURE__ */ new Set()]\n ]), l = /* @__PURE__ */ new Set();\n function h($, b) {\n $ in u && (t ? u[$] = b : u[$].value = b);\n }\n function d() {\n s.clear();\n for (const $ of l) h($, !1);\n }\n function _($, b, N) {\n if (!(!$ || typeof b.getModifierState != \"function\")) {\n for (const [k, M] of f) if (b.getModifierState(k)) {\n N.forEach((D) => M.add(D));\n break;\n }\n }\n }\n function g($, b) {\n if ($) return;\n const N = `${b[0].toUpperCase()}${b.slice(1)}`, k = f.get(N);\n if (![\"shift\", \"alt\"].includes(b) || !k) return;\n const M = Array.from(k), D = M.indexOf(b);\n M.forEach((ie, Re) => {\n Re >= D && (s.delete(ie), h(ie, !1));\n }), k.clear();\n }\n function m($, b) {\n var N, k;\n const M = (N = $.key) === null || N === void 0 ? void 0 : N.toLowerCase(), D = [(k = $.code) === null || k === void 0 ? void 0 : k.toLowerCase(), M].filter(Boolean);\n if (M) {\n M && (b ? s.add(M) : s.delete(M));\n for (const ie of D)\n l.add(ie), h(ie, b);\n _(b, $, [...s, ...D]), g(b, M), M === \"meta\" && !b && (c.forEach((ie) => {\n s.delete(ie), h(ie, !1);\n }), c.clear());\n }\n }\n dt(r, \"keydown\", ($) => (m($, !0), o($)), { passive: i }), dt(r, \"keyup\", ($) => (m($, !1), o($)), { passive: i }), dt(\"blur\", d, { passive: i }), dt(\"focus\", d, { passive: i });\n const E = new Proxy(u, { get($, b, N) {\n if (typeof b != \"string\") return Reflect.get($, b, N);\n if (b = b.toLowerCase(), b in n && (b = n[b]), !(b in u)) if (/[+_-]/.test(b)) {\n const M = b.split(/[+_-]/g).map((D) => D.trim());\n u[b] = te(() => M.map((D) => Ue(E[D])).every(Boolean));\n } else u[b] = no(!1);\n const k = Reflect.get($, b, N);\n return t ? Ue(k) : k;\n } });\n return E;\n}\nfunction Vr() {\n return typeof crypto < \"u\" && crypto.randomUUID ? crypto.randomUUID() : `${Date.now()}-${Math.random().toString(36).substring(2, 9)}`;\n}\nfunction _r(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 va(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 ii(e, t) {\n (e.type === \"set\" || e.type === \"delete\") && t && typeof t.set == \"function\" && t.set(e.path, e.beforeValue, \"undo\");\n}\nfunction oi(e, t) {\n (e.type === \"set\" || e.type === \"delete\") && t && typeof t.set == \"function\" && t.set(e.path, e.afterValue, \"redo\");\n}\nconst or = io(\"hst-operation-log\", () => {\n const e = K({\n maxOperations: 100,\n enableCrossTabSync: !0,\n enablePersistence: !1,\n persistenceKeyPrefix: \"stonecrop-ops\"\n }), t = K([]), r = K(-1), n = K(Vr()), i = K(!1), o = K([]), s = te(() => r.value < 0 ? !1 : t.value[r.value]?.reversible ?? !1), a = te(() => r.value < t.value.length - 1), u = te(() => {\n let w = 0;\n for (let S = r.value; S >= 0 && t.value[S]?.reversible; S--)\n w++;\n return w;\n }), c = te(() => t.value.length - 1 - r.value), f = te(() => ({\n canUndo: s.value,\n canRedo: a.value,\n undoCount: u.value,\n redoCount: c.value,\n currentIndex: r.value\n }));\n function l(w) {\n e.value = { ...e.value, ...w }, e.value.enablePersistence && (A(), ae()), e.value.enableCrossTabSync && ie();\n }\n function h(w, S = \"user\") {\n const v = {\n ...w,\n id: Vr(),\n timestamp: /* @__PURE__ */ new Date(),\n source: S,\n userId: e.value.userId\n };\n if (e.value.operationFilter && !e.value.operationFilter(v))\n return v.id;\n if (i.value && o.value.length > 0)\n return o.value[o.value.length - 1].operations.push(v), v.id;\n if (r.value < t.value.length - 1 && (t.value = t.value.slice(0, r.value + 1)), t.value.push(v), r.value++, e.value.maxOperations && t.value.length > e.value.maxOperations) {\n const X = t.value.length - e.value.maxOperations;\n t.value = t.value.slice(X), r.value -= X;\n }\n return e.value.enableCrossTabSync && Re(v), v.id;\n }\n function d() {\n i.value = !0, o.value.push({\n id: Vr(),\n operations: []\n });\n }\n function _(w) {\n if (!i.value || o.value.length === 0)\n return null;\n const S = o.value.pop(), v = S.operations;\n if (v.length === 0)\n return o.value.length === 0 && (i.value = !1), null;\n const X = S.id, be = v.every((je) => je.reversible), Te = {\n id: X,\n type: \"batch\",\n path: \"\",\n // Batch doesn't have a single path\n fieldname: \"\",\n beforeValue: null,\n afterValue: null,\n doctype: v[0]?.doctype || \"\",\n timestamp: /* @__PURE__ */ new Date(),\n source: \"user\",\n reversible: be,\n irreversibleReason: be ? void 0 : \"Contains irreversible operations\",\n descendantOperationIds: v.map((je) => je.id),\n metadata: { description: w }\n };\n return v.forEach((je) => {\n je.ancestorOperationId = X;\n }), o.value.length > 0 ? o.value[o.value.length - 1].operations.push(Te) : (t.value.push(...v, Te), r.value = t.value.length - 1), e.value.enableCrossTabSync && Ct(v, Te), o.value.length === 0 && (i.value = !1), X;\n }\n function g() {\n o.value = [], i.value = !1;\n }\n function m(w) {\n if (!s.value) return !1;\n const S = t.value[r.value];\n if (!S.reversible)\n return typeof console < \"u\" && S.irreversibleReason && console.warn(\"Cannot undo irreversible operation:\", S.irreversibleReason), !1;\n try {\n if (S.type === \"batch\" && S.descendantOperationIds)\n for (let v = S.descendantOperationIds.length - 1; v >= 0; v--) {\n const X = S.descendantOperationIds[v], be = t.value.find((Te) => Te.id === X);\n be && ii(be, w);\n }\n else\n ii(S, w);\n return r.value--, e.value.enableCrossTabSync && jt(S), !0;\n } catch (v) {\n return typeof console < \"u\" && console.error(\"Undo failed:\", v), !1;\n }\n }\n function E(w) {\n if (!a.value) return !1;\n const S = t.value[r.value + 1];\n try {\n if (S.type === \"batch\" && S.descendantOperationIds)\n for (const v of S.descendantOperationIds) {\n const X = t.value.find((be) => be.id === v);\n X && oi(X, w);\n }\n else\n oi(S, w);\n return r.value++, e.value.enableCrossTabSync && Ce(S), !0;\n } catch (v) {\n return typeof console < \"u\" && console.error(\"Redo failed:\", v), !1;\n }\n }\n function $() {\n const w = t.value.filter((v) => v.reversible).length, S = t.value.map((v) => v.timestamp);\n return {\n operations: [...t.value],\n currentIndex: r.value,\n totalOperations: t.value.length,\n reversibleOperations: w,\n irreversibleOperations: t.value.length - w,\n oldestOperation: S.length > 0 ? new Date(Math.min(...S.map((v) => v.getTime()))) : void 0,\n newestOperation: S.length > 0 ? new Date(Math.max(...S.map((v) => v.getTime()))) : void 0\n };\n }\n function b() {\n t.value = [], r.value = -1;\n }\n function N(w, S) {\n return t.value.filter((v) => v.doctype === w && (S === void 0 || v.recordId === S));\n }\n function k(w, S) {\n const v = t.value.find((X) => X.id === w);\n v && (v.reversible = !1, v.irreversibleReason = S);\n }\n function M(w, S, v, X = \"success\", be) {\n const Te = {\n type: \"action\",\n path: v && v.length > 0 ? `${w}.${v[0]}` : w,\n fieldname: \"\",\n beforeValue: null,\n afterValue: null,\n doctype: w,\n recordId: v && v.length > 0 ? v[0] : void 0,\n reversible: !1,\n // Actions are typically not reversible\n actionName: S,\n actionRecordIds: v,\n actionResult: X,\n actionError: be\n };\n return h(Te);\n }\n let D = null;\n function ie() {\n typeof window > \"u\" || !window.BroadcastChannel || (D = new BroadcastChannel(\"stonecrop-operation-log\"), D.addEventListener(\"message\", (w) => {\n const S = w.data;\n if (!S || typeof S != \"object\") return;\n const v = va(S);\n v.clientId !== n.value && (v.type === \"operation\" && v.operation ? (t.value.push({ ...v.operation, source: \"sync\" }), r.value = t.value.length - 1) : v.type === \"operation\" && v.operations && (t.value.push(\n ...v.operations.map((X) => Object.assign({}, X, { source: \"sync\" }))\n ), r.value = t.value.length - 1));\n }));\n }\n function Re(w) {\n if (!D) return;\n const S = {\n type: \"operation\",\n operation: w,\n clientId: n.value,\n timestamp: /* @__PURE__ */ new Date()\n };\n D.postMessage(_r(S));\n }\n function Ct(w, S) {\n if (!D) return;\n const v = {\n type: \"operation\",\n operations: [...w, S],\n clientId: n.value,\n timestamp: /* @__PURE__ */ new Date()\n };\n D.postMessage(_r(v));\n }\n function jt(w) {\n if (!D) return;\n const S = {\n type: \"undo\",\n operation: w,\n clientId: n.value,\n timestamp: /* @__PURE__ */ new Date()\n };\n D.postMessage(_r(S));\n }\n function Ce(w) {\n if (!D) return;\n const S = {\n type: \"redo\",\n operation: w,\n clientId: n.value,\n timestamp: /* @__PURE__ */ new Date()\n };\n D.postMessage(_r(S));\n }\n const ht = _a(\"stonecrop-operations\", null, {\n serializer: {\n read: (w) => {\n try {\n return JSON.parse(w);\n } catch {\n return null;\n }\n },\n write: (w) => w ? JSON.stringify(w) : \"\"\n }\n });\n function A() {\n if (!(typeof window > \"u\"))\n try {\n const w = ht.value;\n w && Array.isArray(w.operations) && (t.value = w.operations.map((S) => ({\n ...S,\n timestamp: new Date(S.timestamp)\n })), r.value = w.currentIndex ?? -1);\n } catch (w) {\n typeof console < \"u\" && console.error(\"Failed to load operations from persistence:\", w);\n }\n }\n function Y() {\n if (!(typeof window > \"u\"))\n try {\n ht.value = {\n operations: t.value.map((w) => ({\n ...w,\n timestamp: w.timestamp.toISOString()\n })),\n currentIndex: r.value\n };\n } catch (w) {\n typeof console < \"u\" && console.error(\"Failed to save operations to persistence:\", w);\n }\n }\n function ae() {\n Je(\n [t, r],\n () => {\n e.value.enablePersistence && Y();\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: l,\n addOperation: h,\n startBatch: d,\n commitBatch: _,\n cancelBatch: g,\n undo: m,\n redo: E,\n clear: b,\n getOperationsFor: N,\n getSnapshot: $,\n markIrreversible: k,\n logAction: M\n };\n});\nclass Wt {\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 Wt._root ? Wt._root : (Wt._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 l = this.getFieldRollback(n, i), h = r.enableRollback ?? l ?? this.options.enableRollback;\n h && t.store && (f = this.captureSnapshot(t));\n for (const m of o)\n try {\n const E = await this.executeAction(m, t, r.timeout);\n if (a.push(E), !E.success) {\n u = !0;\n break;\n }\n } catch (E) {\n const b = {\n success: !1,\n error: E instanceof Error ? E : new Error(String(E)),\n executionTime: 0,\n action: m\n };\n a.push(b), u = !0;\n break;\n }\n if (h && 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, _ = a.filter((m) => !m.success && m.error != null);\n if (_.length > 0 && this.options.errorHandler)\n for (const m of _)\n try {\n m.error && this.options.errorHandler(m.error, t, m.action);\n } catch (E) {\n console.error(\"[FieldTriggers] Error in global error handler:\", E);\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 && h ? 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 l = {\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(l);\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 Le(e) {\n return new Wt(e);\n}\nfunction zp(e, t) {\n Le().registerAction(e, t);\n}\nfunction kp(e, t) {\n Le().registerTransitionAction(e, t);\n}\nfunction Op(e, t, r) {\n Le().setFieldRollback(e, t, r);\n}\nasync function $p(e, t, r) {\n const n = Le(), 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 Ep(e, t) {\n if (e)\n try {\n or().markIrreversible(e, t);\n } catch {\n }\n}\nfunction si() {\n try {\n return or();\n } catch {\n return null;\n }\n}\nclass _t {\n static instance;\n /**\n * Gets the singleton instance of HST\n * @returns The HST singleton instance\n */\n static getInstance() {\n return _t.instance || (_t.instance = new _t()), _t.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 Or {\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 = _t.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 Or(n, o, r, this.rootNode) : new Or(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 = si();\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], h = r === void 0 && o !== void 0 ? \"delete\" : \"set\";\n s.addOperation(\n {\n type: h,\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 = Le(), 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 = si();\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 = Le(), 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 ya(e, t) {\n return new Or(e, t, \"\", null);\n}\nclass Be {\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 Be._root ? Be._root : (Be._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 = or(), 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 = ya(nn(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((h) => typeof h == \"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\", l;\n try {\n if (o && o.length > 0) {\n const h = Le();\n o.forEach((d) => {\n try {\n const _ = h.getAction(d);\n if (!_) throw new Error(`Action \"${d}\" is not registered in FieldTriggerEngine`);\n const g = {\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 _(g);\n } catch (_) {\n throw f = \"failure\", l = _ instanceof Error ? _.message : \"Unknown error\", _;\n }\n });\n }\n } catch {\n } finally {\n c.logAction(t.doctype, r, s, f, l);\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 ai(\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 ai(`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 Ip() {\n return Be._root;\n}\nfunction ai(e, t) {\n const r = new Error(e);\n return r.code = t, r;\n}\nfunction Ap(e, t, r) {\n const n = kr(\"$stonecrop\") || Be._root;\n if (!n)\n throw new Error(\"Stonecrop instance not available. Ensure useStonecrop() has been called first.\");\n const i = K(!1), o = K(!1), s = K(null), a = n.getStore(), u = () => `${e.slug || e.doctype}.${t}.${r}`, c = () => e.links?.[r]?.fetch, f = async (_) => {\n try {\n return await new Function(\n \"stonecrop\",\n \"path\",\n \"hst\",\n `\n\t\t\t\treturn (${_})(stonecrop, path, hst)\n\t\t\t`\n )(n, u(), a);\n } catch (g) {\n throw new Error(`Custom handler failed: ${g instanceof Error ? g.message : String(g)}`, { cause: g });\n }\n }, l = async () => {\n const _ = c(), g = `${e.slug || e.doctype}.${t}`;\n if (_?.method === \"custom\") {\n a.has(g) || a.set(g, {}, \"system\");\n const m = await f(_.handler);\n a.set(u(), m, \"system\");\n } else\n await n.fetchNestedData(g, e, t, { includeNested: [r] });\n }, h = async () => {\n if (!i.value) {\n i.value = !0, s.value = null;\n try {\n await l(), o.value = !0;\n } catch (_) {\n throw s.value = _ instanceof Error ? _ : new Error(String(_)), _;\n } finally {\n i.value = !1;\n }\n }\n }, d = te(() => {\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: h\n };\n}\nfunction Rp(e) {\n e || (e = {});\n const t = e.registry || kr(\"$registry\"), r = kr(\"$stonecrop\"), n = K(), i = K(), o = K({}), s = K(), a = K(), u = K([]), c = K(!1), f = K(null), l = K(), h = te(() => !n.value || !l.value || !e.recordId || e.recordId === \"new\" ? !0 : n.value.isWorkflowReady(l.value, e.recordId).ready), d = te(() => !n.value || !l.value || !e.recordId || e.recordId === \"new\" ? [] : n.value.isWorkflowReady(l.value, e.recordId).blockedLinks ?? []), _ = r || Be._root;\n _ && (n.value = _), e?.doctype && typeof e.doctype != \"string\" && (l.value = e.doctype);\n const g = K([]), m = K(-1), E = te(() => n.value?.getOperationLogStore().canUndo ?? !1), $ = te(() => n.value?.getOperationLogStore().canRedo ?? !1), b = te(() => n.value?.getOperationLogStore().undoCount ?? 0), N = te(() => n.value?.getOperationLogStore().redoCount ?? 0), k = te(\n () => n.value?.getOperationLogStore().undoRedoState ?? {\n canUndo: !1,\n canRedo: !1,\n undoCount: 0,\n redoCount: 0,\n currentIndex: -1\n }\n ), M = (z) => n.value?.getOperationLogStore().undo(z) ?? !1, D = (z) => n.value?.getOperationLogStore().redo(z) ?? !1, ie = () => {\n n.value?.getOperationLogStore().startBatch();\n }, Re = (z) => n.value?.getOperationLogStore().commitBatch(z) ?? null, Ct = () => {\n n.value?.getOperationLogStore().cancelBatch();\n }, jt = () => {\n n.value?.getOperationLogStore().clear();\n }, Ce = (z, R) => n.value?.getOperationLogStore().getOperationsFor(z, R) ?? [], ht = () => n.value?.getOperationLogStore().getSnapshot() ?? {\n operations: [],\n currentIndex: -1,\n totalOperations: 0,\n reversibleOperations: 0,\n irreversibleOperations: 0\n }, A = (z, R) => {\n n.value?.getOperationLogStore().markIrreversible(z, R);\n }, Y = (z, R, O, L = \"success\", F) => n.value?.getOperationLogStore().logAction(z, R, O, L, F) ?? \"\", ae = (z) => {\n n.value?.getOperationLogStore().configure(z);\n };\n if (t && n.value)\n try {\n const z = n.value.getOperationLogStore(), R = oo(z);\n g.value = R.operations.value, m.value = R.currentIndex.value, Je(\n () => R.operations.value,\n (O) => {\n g.value = O;\n }\n ), Je(\n () => R.currentIndex.value,\n (O) => {\n m.value = O;\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 && Kr(e.doctype, e.recordId || \"new\", o, i.value)), eo(async () => {\n if (!(!t || !n.value)) {\n if (!e.doctype && t.router) {\n const z = t.router.currentRoute.value;\n if (!z.path) return;\n const R = z.path.split(\"/\").filter((L) => L.length > 0), O = R[1]?.toLowerCase();\n if (R.length > 0) {\n const L = {\n path: z.path,\n segments: R\n }, F = await t.getMeta?.(L);\n if (F) {\n if (t.addDoctype(F), n.value.setup(F), s.value = F, a.value = O, i.value = n.value.getStore(), t && (u.value = t.resolveSchema(F)), O && O !== \"new\") {\n const nt = n.value.getRecordById(F, O);\n if (nt)\n o.value = nt.get(\"\") || {};\n else\n try {\n await n.value.getRecord(F, O);\n const pt = n.value.getRecordById(F, O);\n pt && (o.value = pt.get(\"\") || {});\n } catch {\n o.value = t.initializeRecord(u.value);\n }\n } else\n o.value = t.initializeRecord(u.value);\n i.value && Kr(F, O || \"new\", o, i.value), n.value.runAction(F, \"load\", O ? [O] : void 0);\n }\n }\n }\n if (e.doctype) {\n const z = e.recordId;\n if (typeof e.doctype == \"string\") {\n const R = e.doctype;\n i.value = n.value.getStore(), c.value = !0, f.value = null;\n let O;\n try {\n if (O = t.getDoctype(R), !O && t.getMeta) {\n const L = {\n path: `/${R}`,\n segments: [R]\n };\n O = await t.getMeta(L), O && t.addDoctype(O);\n }\n O || (f.value = new Error(`Doctype '${R}' not found in registry and getMeta returned no result`));\n } catch (L) {\n f.value = L instanceof Error ? L : new Error(String(L));\n } finally {\n c.value = !1;\n }\n if (l.value = O, !O) return;\n if (u.value = t.resolveSchema(O), z && z !== \"new\") {\n const L = n.value.getRecordById(O, z);\n if (L)\n o.value = L.get(\"\") || {};\n else\n try {\n await n.value.getRecord(O, z);\n const F = n.value.getRecordById(O, z);\n F && (o.value = F.get(\"\") || {});\n } catch {\n o.value = t.initializeRecord(u.value);\n }\n } else\n o.value = t.initializeRecord(u.value);\n i.value && Kr(O, z || \"new\", o, i.value);\n } else if (z && z !== \"new\") {\n const R = e.doctype, O = n.value.getRecordById(R, z);\n if (O)\n o.value = O.get(\"\") || {};\n else\n try {\n await n.value.getRecord(R, z);\n const L = n.value.getRecordById(R, z);\n L && (o.value = L.get(\"\") || {});\n } catch {\n o.value = t.initializeRecord(u.value);\n }\n }\n }\n }\n });\n const w = (z, R) => {\n const O = l.value || s.value;\n if (!O) return \"\";\n const L = R || e.recordId || a.value || \"new\";\n return `${O.slug}.${L}.${z}`;\n }, S = (z) => {\n const R = l.value || s.value;\n if (!(!i.value || !n.value || !R))\n try {\n const O = z.path.split(\".\");\n if (O.length >= 2) {\n const nt = O[0], pt = O[1];\n if (i.value.has(`${nt}.${pt}`) || n.value.addRecord(R, pt, { ...o.value }), O.length > 3) {\n const Us = `${nt}.${pt}`, Br = O.slice(2);\n let Wr = Us;\n for (let hr = 0; hr < Br.length - 1; hr++)\n if (Wr += `.${Br[hr]}`, !i.value.has(Wr)) {\n const Bs = Br[hr + 1], Ws = !isNaN(Number(Bs));\n i.value.set(Wr, Ws ? [] : {});\n }\n }\n }\n i.value.set(z.path, z.value);\n const L = z.fieldname.split(\".\"), F = { ...o.value };\n L.length === 1 ? F[L[0]] = z.value : wa(F, L, z.value), o.value = F;\n } catch {\n }\n };\n (e.doctype || t?.router) && (ri(\"hstPathProvider\", w), ri(\"hstChangeHandler\", S));\n const v = (z, R) => {\n if (!n.value)\n throw new Error(\"Stonecrop instance not available\");\n return n.value.initializeNestedData(z, R);\n }, X = async (z, R, O, L) => {\n if (!n.value)\n throw new Error(\"Stonecrop instance not available\");\n return n.value.fetchNestedData(z, R, O, L);\n }, be = (z, R) => {\n if (!n.value)\n throw new Error(\"Stonecrop instance not available\");\n return n.value.collectRecordPayload(z, R);\n }, Te = (z, R) => ({\n provideHSTPath: (F) => `${z}.${F}`,\n handleHSTChange: (F) => {\n const nt = F.path.startsWith(z) ? F.path : `${z}.${F.fieldname}`;\n S({\n ...F,\n path: nt\n });\n }\n }), je = {\n operations: g,\n currentIndex: m,\n undoRedoState: k,\n canUndo: E,\n canRedo: $,\n undoCount: b,\n redoCount: N,\n undo: M,\n redo: D,\n startBatch: ie,\n commitBatch: Re,\n cancelBatch: Ct,\n clear: jt,\n getOperationsFor: Ce,\n getSnapshot: ht,\n markIrreversible: A,\n logAction: Y,\n configure: ae\n };\n return e.doctype ? {\n stonecrop: n,\n operationLog: je,\n provideHSTPath: w,\n handleHSTChange: S,\n hstStore: i,\n formData: o,\n resolvedSchema: u,\n initializeNestedData: v,\n fetchNestedData: X,\n collectRecordPayload: be,\n createNestedContext: Te,\n isLoading: c,\n error: f,\n resolvedDoctype: l,\n isWorkflowReady: h,\n blockedLinks: d\n } : !e.doctype && t?.router ? {\n stonecrop: n,\n operationLog: je,\n provideHSTPath: w,\n handleHSTChange: S,\n hstStore: i,\n formData: o,\n resolvedSchema: u,\n initializeNestedData: v,\n fetchNestedData: X,\n collectRecordPayload: be,\n createNestedContext: Te,\n isLoading: c,\n error: f,\n resolvedDoctype: l,\n isWorkflowReady: h,\n blockedLinks: d\n } : {\n stonecrop: n,\n operationLog: je\n };\n}\nfunction Kr(e, t, r, n) {\n Je(\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 wa(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 uo(e) {\n const r = (ro() ? kr(\"$operationLogStore\", void 0) : void 0) || or();\n e && r.configure(e);\n const { operations: n, currentIndex: i, undoRedoState: o, canUndo: s, canRedo: a, undoCount: u, redoCount: c } = oo(r);\n function f(k) {\n return r.undo(k);\n }\n function l(k) {\n return r.redo(k);\n }\n function h() {\n r.startBatch();\n }\n function d(k) {\n return r.commitBatch(k);\n }\n function _() {\n r.cancelBatch();\n }\n function g() {\n r.clear();\n }\n function m(k, M) {\n return r.getOperationsFor(k, M);\n }\n function E() {\n return r.getSnapshot();\n }\n function $(k, M) {\n r.markIrreversible(k, M);\n }\n function b(k, M, D, ie = \"success\", Re) {\n return r.logAction(k, M, D, ie, Re);\n }\n function N(k) {\n r.configure(k);\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: l,\n startBatch: h,\n commitBatch: d,\n cancelBatch: _,\n clear: g,\n getOperationsFor: m,\n getSnapshot: E,\n markIrreversible: $,\n logAction: b,\n configure: N\n };\n}\nfunction Tp(e, t = !0) {\n if (!t) return;\n const { undo: r, redo: n, canUndo: i, canRedo: o } = uo(), s = ma();\n Lt(s[\"Ctrl+Z\"], () => {\n i.value && r(e);\n }), Lt(s[\"Meta+Z\"], () => {\n i.value && r(e);\n }), Lt(s[\"Ctrl+Shift+Z\"], () => {\n o.value && n(e);\n }), Lt(s[\"Meta+Shift+Z\"], () => {\n o.value && n(e);\n }), Lt(s[\"Ctrl+Y\"], () => {\n o.value && n(e);\n });\n}\nasync function Pp(e, t) {\n const { startBatch: r, commitBatch: n, cancelBatch: i } = uo();\n r();\n try {\n return await e(), n(t);\n } catch (o) {\n throw i(), o;\n }\n}\nfunction p(e, t, r) {\n function n(a, u) {\n if (a._zod || Object.defineProperty(a, \"_zod\", {\n value: {\n def: u,\n constr: s,\n traits: /* @__PURE__ */ new Set()\n },\n enumerable: !1\n }), a._zod.traits.has(e))\n return;\n a._zod.traits.add(e), t(a, u);\n const c = s.prototype, f = Object.keys(c);\n for (let l = 0; l < f.length; l++) {\n const h = f[l];\n h in a || (a[h] = c[h].bind(a));\n }\n }\n const i = r?.Parent ?? Object;\n class o extends i {\n }\n Object.defineProperty(o, \"name\", { value: e });\n function s(a) {\n var u;\n const c = r?.Parent ? new o() : this;\n n(c, a), (u = c._zod).deferred ?? (u.deferred = []);\n for (const f of c._zod.deferred)\n f();\n return c;\n }\n return Object.defineProperty(s, \"init\", { value: n }), Object.defineProperty(s, Symbol.hasInstance, {\n value: (a) => r?.Parent && a instanceof r.Parent ? !0 : a?._zod?.traits?.has(e)\n }), Object.defineProperty(s, \"name\", { value: e }), s;\n}\nclass vt extends Error {\n constructor() {\n super(\"Encountered Promise during synchronous parse. Use .parseAsync() instead.\");\n }\n}\nclass co extends Error {\n constructor(t) {\n super(`Encountered unidirectional transform during encode: ${t}`), this.name = \"ZodEncodeError\";\n }\n}\nconst fo = {};\nfunction Ve(e) {\n return fo;\n}\nfunction lo(e) {\n const t = Object.values(e).filter((n) => typeof n == \"number\");\n return Object.entries(e).filter(([n, i]) => t.indexOf(+n) === -1).map(([n, i]) => i);\n}\nfunction on(e, t) {\n return typeof t == \"bigint\" ? t.toString() : t;\n}\nfunction Nr(e) {\n return {\n get value() {\n {\n const t = e();\n return Object.defineProperty(this, \"value\", { value: t }), t;\n }\n }\n };\n}\nfunction wn(e) {\n return e == null;\n}\nfunction Sn(e) {\n const t = e.startsWith(\"^\") ? 1 : 0, r = e.endsWith(\"$\") ? e.length - 1 : e.length;\n return e.slice(t, r);\n}\nfunction Sa(e, t) {\n const r = (e.toString().split(\".\")[1] || \"\").length, n = t.toString();\n let i = (n.split(\".\")[1] || \"\").length;\n if (i === 0 && /\\d?e-\\d?/.test(n)) {\n const u = n.match(/\\d?e-(\\d?)/);\n u?.[1] && (i = Number.parseInt(u[1]));\n }\n const o = r > i ? r : i, s = Number.parseInt(e.toFixed(o).replace(\".\", \"\")), a = Number.parseInt(t.toFixed(o).replace(\".\", \"\"));\n return s % a / 10 ** o;\n}\nconst ui = /* @__PURE__ */ Symbol(\"evaluating\");\nfunction T(e, t, r) {\n let n;\n Object.defineProperty(e, t, {\n get() {\n if (n !== ui)\n return n === void 0 && (n = ui, n = r()), n;\n },\n set(i) {\n Object.defineProperty(e, t, {\n value: i\n // configurable: true,\n });\n },\n configurable: !0\n });\n}\nfunction at(e, t, r) {\n Object.defineProperty(e, t, {\n value: r,\n writable: !0,\n enumerable: !0,\n configurable: !0\n });\n}\nfunction et(...e) {\n const t = {};\n for (const r of e) {\n const n = Object.getOwnPropertyDescriptors(r);\n Object.assign(t, n);\n }\n return Object.defineProperties({}, t);\n}\nfunction ci(e) {\n return JSON.stringify(e);\n}\nfunction ba(e) {\n return e.toLowerCase().trim().replace(/[^\\w\\s-]/g, \"\").replace(/[\\s_-]+/g, \"-\").replace(/^-+|-+$/g, \"\");\n}\nconst ho = \"captureStackTrace\" in Error ? Error.captureStackTrace : (...e) => {\n};\nfunction Ht(e) {\n return typeof e == \"object\" && e !== null && !Array.isArray(e);\n}\nconst za = Nr(() => {\n if (typeof navigator < \"u\" && navigator?.userAgent?.includes(\"Cloudflare\"))\n return !1;\n try {\n const e = Function;\n return new e(\"\"), !0;\n } catch {\n return !1;\n }\n});\nfunction yt(e) {\n if (Ht(e) === !1)\n return !1;\n const t = e.constructor;\n if (t === void 0 || typeof t != \"function\")\n return !0;\n const r = t.prototype;\n return !(Ht(r) === !1 || Object.prototype.hasOwnProperty.call(r, \"isPrototypeOf\") === !1);\n}\nfunction po(e) {\n return yt(e) ? { ...e } : Array.isArray(e) ? [...e] : e;\n}\nconst ka = /* @__PURE__ */ new Set([\"string\", \"number\", \"symbol\"]);\nfunction wt(e) {\n return e.replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\");\n}\nfunction tt(e, t, r) {\n const n = new e._zod.constr(t ?? e._zod.def);\n return (!t || r?.parent) && (n._zod.parent = e), n;\n}\nfunction y(e) {\n const t = e;\n if (!t)\n return {};\n if (typeof t == \"string\")\n return { error: () => t };\n if (t?.message !== void 0) {\n if (t?.error !== void 0)\n throw new Error(\"Cannot specify both `message` and `error` params\");\n t.error = t.message;\n }\n return delete t.message, typeof t.error == \"string\" ? { ...t, error: () => t.error } : t;\n}\nfunction Oa(e) {\n return Object.keys(e).filter((t) => e[t]._zod.optin === \"optional\" && e[t]._zod.optout === \"optional\");\n}\nconst $a = {\n safeint: [Number.MIN_SAFE_INTEGER, Number.MAX_SAFE_INTEGER],\n int32: [-2147483648, 2147483647],\n uint32: [0, 4294967295],\n float32: [-34028234663852886e22, 34028234663852886e22],\n float64: [-Number.MAX_VALUE, Number.MAX_VALUE]\n};\nfunction Ea(e, t) {\n const r = e._zod.def, n = r.checks;\n if (n && n.length > 0)\n throw new Error(\".pick() cannot be used on object schemas containing refinements\");\n const o = et(e._zod.def, {\n get shape() {\n const s = {};\n for (const a in t) {\n if (!(a in r.shape))\n throw new Error(`Unrecognized key: \"${a}\"`);\n t[a] && (s[a] = r.shape[a]);\n }\n return at(this, \"shape\", s), s;\n },\n checks: []\n });\n return tt(e, o);\n}\nfunction Ia(e, t) {\n const r = e._zod.def, n = r.checks;\n if (n && n.length > 0)\n throw new Error(\".omit() cannot be used on object schemas containing refinements\");\n const o = et(e._zod.def, {\n get shape() {\n const s = { ...e._zod.def.shape };\n for (const a in t) {\n if (!(a in r.shape))\n throw new Error(`Unrecognized key: \"${a}\"`);\n t[a] && delete s[a];\n }\n return at(this, \"shape\", s), s;\n },\n checks: []\n });\n return tt(e, o);\n}\nfunction Aa(e, t) {\n if (!yt(t))\n throw new Error(\"Invalid input to extend: expected a plain object\");\n const r = e._zod.def.checks;\n if (r && r.length > 0) {\n const o = e._zod.def.shape;\n for (const s in t)\n if (Object.getOwnPropertyDescriptor(o, s) !== void 0)\n throw new Error(\"Cannot overwrite keys on object schemas containing refinements. Use `.safeExtend()` instead.\");\n }\n const i = et(e._zod.def, {\n get shape() {\n const o = { ...e._zod.def.shape, ...t };\n return at(this, \"shape\", o), o;\n }\n });\n return tt(e, i);\n}\nfunction Ra(e, t) {\n if (!yt(t))\n throw new Error(\"Invalid input to safeExtend: expected a plain object\");\n const r = et(e._zod.def, {\n get shape() {\n const n = { ...e._zod.def.shape, ...t };\n return at(this, \"shape\", n), n;\n }\n });\n return tt(e, r);\n}\nfunction Ta(e, t) {\n const r = et(e._zod.def, {\n get shape() {\n const n = { ...e._zod.def.shape, ...t._zod.def.shape };\n return at(this, \"shape\", n), n;\n },\n get catchall() {\n return t._zod.def.catchall;\n },\n checks: []\n // delete existing checks\n });\n return tt(e, r);\n}\nfunction Pa(e, t, r) {\n const i = t._zod.def.checks;\n if (i && i.length > 0)\n throw new Error(\".partial() cannot be used on object schemas containing refinements\");\n const s = et(t._zod.def, {\n get shape() {\n const a = t._zod.def.shape, u = { ...a };\n if (r)\n for (const c in r) {\n if (!(c in a))\n throw new Error(`Unrecognized key: \"${c}\"`);\n r[c] && (u[c] = e ? new e({\n type: \"optional\",\n innerType: a[c]\n }) : a[c]);\n }\n else\n for (const c in a)\n u[c] = e ? new e({\n type: \"optional\",\n innerType: a[c]\n }) : a[c];\n return at(this, \"shape\", u), u;\n },\n checks: []\n });\n return tt(t, s);\n}\nfunction Na(e, t, r) {\n const n = et(t._zod.def, {\n get shape() {\n const i = t._zod.def.shape, o = { ...i };\n if (r)\n for (const s in r) {\n if (!(s in o))\n throw new Error(`Unrecognized key: \"${s}\"`);\n r[s] && (o[s] = new e({\n type: \"nonoptional\",\n innerType: i[s]\n }));\n }\n else\n for (const s in i)\n o[s] = new e({\n type: \"nonoptional\",\n innerType: i[s]\n });\n return at(this, \"shape\", o), o;\n }\n });\n return tt(t, n);\n}\nfunction gt(e, t = 0) {\n if (e.aborted === !0)\n return !0;\n for (let r = t; r < e.issues.length; r++)\n if (e.issues[r]?.continue !== !0)\n return !0;\n return !1;\n}\nfunction mt(e, t) {\n return t.map((r) => {\n var n;\n return (n = r).path ?? (n.path = []), r.path.unshift(e), r;\n });\n}\nfunction gr(e) {\n return typeof e == \"string\" ? e : e?.message;\n}\nfunction Ke(e, t, r) {\n const n = { ...e, path: e.path ?? [] };\n if (!e.message) {\n const i = gr(e.inst?._zod.def?.error?.(e)) ?? gr(t?.error?.(e)) ?? gr(r.customError?.(e)) ?? gr(r.localeError?.(e)) ?? \"Invalid input\";\n n.message = i;\n }\n return delete n.inst, delete n.continue, t?.reportInput || delete n.input, n;\n}\nfunction bn(e) {\n return Array.isArray(e) ? \"array\" : typeof e == \"string\" ? \"string\" : \"unknown\";\n}\nfunction Yt(...e) {\n const [t, r, n] = e;\n return typeof t == \"string\" ? {\n message: t,\n code: \"custom\",\n input: r,\n inst: n\n } : { ...t };\n}\nconst _o = (e, t) => {\n e.name = \"$ZodError\", Object.defineProperty(e, \"_zod\", {\n value: e._zod,\n enumerable: !1\n }), Object.defineProperty(e, \"issues\", {\n value: t,\n enumerable: !1\n }), e.message = JSON.stringify(t, on, 2), Object.defineProperty(e, \"toString\", {\n value: () => e.message,\n enumerable: !1\n });\n}, go = p(\"$ZodError\", _o), mo = p(\"$ZodError\", _o, { Parent: Error });\nfunction Za(e, t = (r) => r.message) {\n const r = {}, n = [];\n for (const i of e.issues)\n i.path.length > 0 ? (r[i.path[0]] = r[i.path[0]] || [], r[i.path[0]].push(t(i))) : n.push(t(i));\n return { formErrors: n, fieldErrors: r };\n}\nfunction Ma(e, t = (r) => r.message) {\n const r = { _errors: [] }, n = (i) => {\n for (const o of i.issues)\n if (o.code === \"invalid_union\" && o.errors.length)\n o.errors.map((s) => n({ issues: s }));\n else if (o.code === \"invalid_key\")\n n({ issues: o.issues });\n else if (o.code === \"invalid_element\")\n n({ issues: o.issues });\n else if (o.path.length === 0)\n r._errors.push(t(o));\n else {\n let s = r, a = 0;\n for (; a < o.path.length; ) {\n const u = o.path[a];\n a === o.path.length - 1 ? (s[u] = s[u] || { _errors: [] }, s[u]._errors.push(t(o))) : s[u] = s[u] || { _errors: [] }, s = s[u], a++;\n }\n }\n };\n return n(e), r;\n}\nconst zn = (e) => (t, r, n, i) => {\n const o = n ? Object.assign(n, { async: !1 }) : { async: !1 }, s = t._zod.run({ value: r, issues: [] }, o);\n if (s instanceof Promise)\n throw new vt();\n if (s.issues.length) {\n const a = new (i?.Err ?? e)(s.issues.map((u) => Ke(u, o, Ve())));\n throw ho(a, i?.callee), a;\n }\n return s.value;\n}, kn = (e) => async (t, r, n, i) => {\n const o = n ? Object.assign(n, { async: !0 }) : { async: !0 };\n let s = t._zod.run({ value: r, issues: [] }, o);\n if (s instanceof Promise && (s = await s), s.issues.length) {\n const a = new (i?.Err ?? e)(s.issues.map((u) => Ke(u, o, Ve())));\n throw ho(a, i?.callee), a;\n }\n return s.value;\n}, Zr = (e) => (t, r, n) => {\n const i = n ? { ...n, async: !1 } : { async: !1 }, o = t._zod.run({ value: r, issues: [] }, i);\n if (o instanceof Promise)\n throw new vt();\n return o.issues.length ? {\n success: !1,\n error: new (e ?? go)(o.issues.map((s) => Ke(s, i, Ve())))\n } : { success: !0, data: o.value };\n}, Da = /* @__PURE__ */ Zr(mo), Mr = (e) => async (t, r, n) => {\n const i = n ? Object.assign(n, { async: !0 }) : { async: !0 };\n let o = t._zod.run({ value: r, issues: [] }, i);\n return o instanceof Promise && (o = await o), o.issues.length ? {\n success: !1,\n error: new e(o.issues.map((s) => Ke(s, i, Ve())))\n } : { success: !0, data: o.value };\n}, Ca = /* @__PURE__ */ Mr(mo), ja = (e) => (t, r, n) => {\n const i = n ? Object.assign(n, { direction: \"backward\" }) : { direction: \"backward\" };\n return zn(e)(t, r, i);\n}, La = (e) => (t, r, n) => zn(e)(t, r, n), Fa = (e) => async (t, r, n) => {\n const i = n ? Object.assign(n, { direction: \"backward\" }) : { direction: \"backward\" };\n return kn(e)(t, r, i);\n}, xa = (e) => async (t, r, n) => kn(e)(t, r, n), qa = (e) => (t, r, n) => {\n const i = n ? Object.assign(n, { direction: \"backward\" }) : { direction: \"backward\" };\n return Zr(e)(t, r, i);\n}, Ua = (e) => (t, r, n) => Zr(e)(t, r, n), Ba = (e) => async (t, r, n) => {\n const i = n ? Object.assign(n, { direction: \"backward\" }) : { direction: \"backward\" };\n return Mr(e)(t, r, i);\n}, Wa = (e) => async (t, r, n) => Mr(e)(t, r, n), Ja = /^[cC][^\\s-]{8,}$/, Va = /^[0-9a-z]+$/, Ka = /^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/, Ha = /^[0-9a-vA-V]{20}$/, Ya = /^[A-Za-z0-9]{27}$/, Ga = /^[a-zA-Z0-9_-]{21}$/, Xa = /^P(?:(\\d+W)|(?!.*W)(?=\\d|T\\d)(\\d+Y)?(\\d+M)?(\\d+D)?(T(?=\\d)(\\d+H)?(\\d+M)?(\\d+([.,]\\d+)?S)?)?)$/, Qa = /^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$/, fi = (e) => e ? new RegExp(`^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-${e}[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$`) : /^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/, eu = /^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$/, tu = \"^(\\\\p{Extended_Pictographic}|\\\\p{Emoji_Component})+$\";\nfunction ru() {\n return new RegExp(tu, \"u\");\n}\nconst nu = /^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/, iu = /^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))$/, ou = /^((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\.){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\/([0-9]|[1-2][0-9]|3[0-2])$/, su = /^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|::|([0-9a-fA-F]{1,4})?::([0-9a-fA-F]{1,4}:?){0,6})\\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/, au = /^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/, vo = /^[A-Za-z0-9_-]*$/, uu = /^\\+[1-9]\\d{6,14}$/, yo = \"(?:(?:\\\\d\\\\d[2468][048]|\\\\d\\\\d[13579][26]|\\\\d\\\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\\\d|30)|(?:02)-(?:0[1-9]|1\\\\d|2[0-8])))\", cu = /* @__PURE__ */ new RegExp(`^${yo}$`);\nfunction wo(e) {\n const t = \"(?:[01]\\\\d|2[0-3]):[0-5]\\\\d\";\n return typeof e.precision == \"number\" ? e.precision === -1 ? `${t}` : e.precision === 0 ? `${t}:[0-5]\\\\d` : `${t}:[0-5]\\\\d\\\\.\\\\d{${e.precision}}` : `${t}(?::[0-5]\\\\d(?:\\\\.\\\\d+)?)?`;\n}\nfunction fu(e) {\n return new RegExp(`^${wo(e)}$`);\n}\nfunction lu(e) {\n const t = wo({ precision: e.precision }), r = [\"Z\"];\n e.local && r.push(\"\"), e.offset && r.push(\"([+-](?:[01]\\\\d|2[0-3]):[0-5]\\\\d)\");\n const n = `${t}(?:${r.join(\"|\")})`;\n return new RegExp(`^${yo}T(?:${n})$`);\n}\nconst hu = (e) => {\n const t = e ? `[\\\\s\\\\S]{${e?.minimum ?? 0},${e?.maximum ?? \"\"}}` : \"[\\\\s\\\\S]*\";\n return new RegExp(`^${t}$`);\n}, pu = /^-?\\d+$/, So = /^-?\\d+(?:\\.\\d+)?$/, du = /^(?:true|false)$/i, _u = /^[^A-Z]*$/, gu = /^[^a-z]*$/, de = /* @__PURE__ */ p(\"$ZodCheck\", (e, t) => {\n var r;\n e._zod ?? (e._zod = {}), e._zod.def = t, (r = e._zod).onattach ?? (r.onattach = []);\n}), bo = {\n number: \"number\",\n bigint: \"bigint\",\n object: \"date\"\n}, zo = /* @__PURE__ */ p(\"$ZodCheckLessThan\", (e, t) => {\n de.init(e, t);\n const r = bo[typeof t.value];\n e._zod.onattach.push((n) => {\n const i = n._zod.bag, o = (t.inclusive ? i.maximum : i.exclusiveMaximum) ?? Number.POSITIVE_INFINITY;\n t.value < o && (t.inclusive ? i.maximum = t.value : i.exclusiveMaximum = t.value);\n }), e._zod.check = (n) => {\n (t.inclusive ? n.value <= t.value : n.value < t.value) || n.issues.push({\n origin: r,\n code: \"too_big\",\n maximum: typeof t.value == \"object\" ? t.value.getTime() : t.value,\n input: n.value,\n inclusive: t.inclusive,\n inst: e,\n continue: !t.abort\n });\n };\n}), ko = /* @__PURE__ */ p(\"$ZodCheckGreaterThan\", (e, t) => {\n de.init(e, t);\n const r = bo[typeof t.value];\n e._zod.onattach.push((n) => {\n const i = n._zod.bag, o = (t.inclusive ? i.minimum : i.exclusiveMinimum) ?? Number.NEGATIVE_INFINITY;\n t.value > o && (t.inclusive ? i.minimum = t.value : i.exclusiveMinimum = t.value);\n }), e._zod.check = (n) => {\n (t.inclusive ? n.value >= t.value : n.value > t.value) || n.issues.push({\n origin: r,\n code: \"too_small\",\n minimum: typeof t.value == \"object\" ? t.value.getTime() : t.value,\n input: n.value,\n inclusive: t.inclusive,\n inst: e,\n continue: !t.abort\n });\n };\n}), mu = /* @__PURE__ */ p(\"$ZodCheckMultipleOf\", (e, t) => {\n de.init(e, t), e._zod.onattach.push((r) => {\n var n;\n (n = r._zod.bag).multipleOf ?? (n.multipleOf = t.value);\n }), e._zod.check = (r) => {\n if (typeof r.value != typeof t.value)\n throw new Error(\"Cannot mix number and bigint in multiple_of check.\");\n (typeof r.value == \"bigint\" ? r.value % t.value === BigInt(0) : Sa(r.value, t.value) === 0) || r.issues.push({\n origin: typeof r.value,\n code: \"not_multiple_of\",\n divisor: t.value,\n input: r.value,\n inst: e,\n continue: !t.abort\n });\n };\n}), vu = /* @__PURE__ */ p(\"$ZodCheckNumberFormat\", (e, t) => {\n de.init(e, t), t.format = t.format || \"float64\";\n const r = t.format?.includes(\"int\"), n = r ? \"int\" : \"number\", [i, o] = $a[t.format];\n e._zod.onattach.push((s) => {\n const a = s._zod.bag;\n a.format = t.format, a.minimum = i, a.maximum = o, r && (a.pattern = pu);\n }), e._zod.check = (s) => {\n const a = s.value;\n if (r) {\n if (!Number.isInteger(a)) {\n s.issues.push({\n expected: n,\n format: t.format,\n code: \"invalid_type\",\n continue: !1,\n input: a,\n inst: e\n });\n return;\n }\n if (!Number.isSafeInteger(a)) {\n a > 0 ? s.issues.push({\n input: a,\n code: \"too_big\",\n maximum: Number.MAX_SAFE_INTEGER,\n note: \"Integers must be within the safe integer range.\",\n inst: e,\n origin: n,\n inclusive: !0,\n continue: !t.abort\n }) : s.issues.push({\n input: a,\n code: \"too_small\",\n minimum: Number.MIN_SAFE_INTEGER,\n note: \"Integers must be within the safe integer range.\",\n inst: e,\n origin: n,\n inclusive: !0,\n continue: !t.abort\n });\n return;\n }\n }\n a < i && s.issues.push({\n origin: \"number\",\n input: a,\n code: \"too_small\",\n minimum: i,\n inclusive: !0,\n inst: e,\n continue: !t.abort\n }), a > o && s.issues.push({\n origin: \"number\",\n input: a,\n code: \"too_big\",\n maximum: o,\n inclusive: !0,\n inst: e,\n continue: !t.abort\n });\n };\n}), yu = /* @__PURE__ */ p(\"$ZodCheckMaxLength\", (e, t) => {\n var r;\n de.init(e, t), (r = e._zod.def).when ?? (r.when = (n) => {\n const i = n.value;\n return !wn(i) && i.length !== void 0;\n }), e._zod.onattach.push((n) => {\n const i = n._zod.bag.maximum ?? Number.POSITIVE_INFINITY;\n t.maximum < i && (n._zod.bag.maximum = t.maximum);\n }), e._zod.check = (n) => {\n const i = n.value;\n if (i.length <= t.maximum)\n return;\n const s = bn(i);\n n.issues.push({\n origin: s,\n code: \"too_big\",\n maximum: t.maximum,\n inclusive: !0,\n input: i,\n inst: e,\n continue: !t.abort\n });\n };\n}), wu = /* @__PURE__ */ p(\"$ZodCheckMinLength\", (e, t) => {\n var r;\n de.init(e, t), (r = e._zod.def).when ?? (r.when = (n) => {\n const i = n.value;\n return !wn(i) && i.length !== void 0;\n }), e._zod.onattach.push((n) => {\n const i = n._zod.bag.minimum ?? Number.NEGATIVE_INFINITY;\n t.minimum > i && (n._zod.bag.minimum = t.minimum);\n }), e._zod.check = (n) => {\n const i = n.value;\n if (i.length >= t.minimum)\n return;\n const s = bn(i);\n n.issues.push({\n origin: s,\n code: \"too_small\",\n minimum: t.minimum,\n inclusive: !0,\n input: i,\n inst: e,\n continue: !t.abort\n });\n };\n}), Su = /* @__PURE__ */ p(\"$ZodCheckLengthEquals\", (e, t) => {\n var r;\n de.init(e, t), (r = e._zod.def).when ?? (r.when = (n) => {\n const i = n.value;\n return !wn(i) && i.length !== void 0;\n }), e._zod.onattach.push((n) => {\n const i = n._zod.bag;\n i.minimum = t.length, i.maximum = t.length, i.length = t.length;\n }), e._zod.check = (n) => {\n const i = n.value, o = i.length;\n if (o === t.length)\n return;\n const s = bn(i), a = o > t.length;\n n.issues.push({\n origin: s,\n ...a ? { code: \"too_big\", maximum: t.length } : { code: \"too_small\", minimum: t.length },\n inclusive: !0,\n exact: !0,\n input: n.value,\n inst: e,\n continue: !t.abort\n });\n };\n}), Dr = /* @__PURE__ */ p(\"$ZodCheckStringFormat\", (e, t) => {\n var r, n;\n de.init(e, t), e._zod.onattach.push((i) => {\n const o = i._zod.bag;\n o.format = t.format, t.pattern && (o.patterns ?? (o.patterns = /* @__PURE__ */ new Set()), o.patterns.add(t.pattern));\n }), t.pattern ? (r = e._zod).check ?? (r.check = (i) => {\n t.pattern.lastIndex = 0, !t.pattern.test(i.value) && i.issues.push({\n origin: \"string\",\n code: \"invalid_format\",\n format: t.format,\n input: i.value,\n ...t.pattern ? { pattern: t.pattern.toString() } : {},\n inst: e,\n continue: !t.abort\n });\n }) : (n = e._zod).check ?? (n.check = () => {\n });\n}), bu = /* @__PURE__ */ p(\"$ZodCheckRegex\", (e, t) => {\n Dr.init(e, t), e._zod.check = (r) => {\n t.pattern.lastIndex = 0, !t.pattern.test(r.value) && r.issues.push({\n origin: \"string\",\n code: \"invalid_format\",\n format: \"regex\",\n input: r.value,\n pattern: t.pattern.toString(),\n inst: e,\n continue: !t.abort\n });\n };\n}), zu = /* @__PURE__ */ p(\"$ZodCheckLowerCase\", (e, t) => {\n t.pattern ?? (t.pattern = _u), Dr.init(e, t);\n}), ku = /* @__PURE__ */ p(\"$ZodCheckUpperCase\", (e, t) => {\n t.pattern ?? (t.pattern = gu), Dr.init(e, t);\n}), Ou = /* @__PURE__ */ p(\"$ZodCheckIncludes\", (e, t) => {\n de.init(e, t);\n const r = wt(t.includes), n = new RegExp(typeof t.position == \"number\" ? `^.{${t.position}}${r}` : r);\n t.pattern = n, e._zod.onattach.push((i) => {\n const o = i._zod.bag;\n o.patterns ?? (o.patterns = /* @__PURE__ */ new Set()), o.patterns.add(n);\n }), e._zod.check = (i) => {\n i.value.includes(t.includes, t.position) || i.issues.push({\n origin: \"string\",\n code: \"invalid_format\",\n format: \"includes\",\n includes: t.includes,\n input: i.value,\n inst: e,\n continue: !t.abort\n });\n };\n}), $u = /* @__PURE__ */ p(\"$ZodCheckStartsWith\", (e, t) => {\n de.init(e, t);\n const r = new RegExp(`^${wt(t.prefix)}.*`);\n t.pattern ?? (t.pattern = r), e._zod.onattach.push((n) => {\n const i = n._zod.bag;\n i.patterns ?? (i.patterns = /* @__PURE__ */ new Set()), i.patterns.add(r);\n }), e._zod.check = (n) => {\n n.value.startsWith(t.prefix) || n.issues.push({\n origin: \"string\",\n code: \"invalid_format\",\n format: \"starts_with\",\n prefix: t.prefix,\n input: n.value,\n inst: e,\n continue: !t.abort\n });\n };\n}), Eu = /* @__PURE__ */ p(\"$ZodCheckEndsWith\", (e, t) => {\n de.init(e, t);\n const r = new RegExp(`.*${wt(t.suffix)}$`);\n t.pattern ?? (t.pattern = r), e._zod.onattach.push((n) => {\n const i = n._zod.bag;\n i.patterns ?? (i.patterns = /* @__PURE__ */ new Set()), i.patterns.add(r);\n }), e._zod.check = (n) => {\n n.value.endsWith(t.suffix) || n.issues.push({\n origin: \"string\",\n code: \"invalid_format\",\n format: \"ends_with\",\n suffix: t.suffix,\n input: n.value,\n inst: e,\n continue: !t.abort\n });\n };\n}), Iu = /* @__PURE__ */ p(\"$ZodCheckOverwrite\", (e, t) => {\n de.init(e, t), e._zod.check = (r) => {\n r.value = t.tx(r.value);\n };\n});\nclass Au {\n constructor(t = []) {\n this.content = [], this.indent = 0, this && (this.args = t);\n }\n indented(t) {\n this.indent += 1, t(this), this.indent -= 1;\n }\n write(t) {\n if (typeof t == \"function\") {\n t(this, { execution: \"sync\" }), t(this, { execution: \"async\" });\n return;\n }\n const n = t.split(`\n`).filter((s) => s), i = Math.min(...n.map((s) => s.length - s.trimStart().length)), o = n.map((s) => s.slice(i)).map((s) => \" \".repeat(this.indent * 2) + s);\n for (const s of o)\n this.content.push(s);\n }\n compile() {\n const t = Function, r = this?.args, i = [...(this?.content ?? [\"\"]).map((o) => ` ${o}`)];\n return new t(...r, i.join(`\n`));\n }\n}\nconst Ru = {\n major: 4,\n minor: 3,\n patch: 6\n}, W = /* @__PURE__ */ p(\"$ZodType\", (e, t) => {\n var r;\n e ?? (e = {}), e._zod.def = t, e._zod.bag = e._zod.bag || {}, e._zod.version = Ru;\n const n = [...e._zod.def.checks ?? []];\n e._zod.traits.has(\"$ZodCheck\") && n.unshift(e);\n for (const i of n)\n for (const o of i._zod.onattach)\n o(e);\n if (n.length === 0)\n (r = e._zod).deferred ?? (r.deferred = []), e._zod.deferred?.push(() => {\n e._zod.run = e._zod.parse;\n });\n else {\n const i = (s, a, u) => {\n let c = gt(s), f;\n for (const l of a) {\n if (l._zod.def.when) {\n if (!l._zod.def.when(s))\n continue;\n } else if (c)\n continue;\n const h = s.issues.length, d = l._zod.check(s);\n if (d instanceof Promise && u?.async === !1)\n throw new vt();\n if (f || d instanceof Promise)\n f = (f ?? Promise.resolve()).then(async () => {\n await d, s.issues.length !== h && (c || (c = gt(s, h)));\n });\n else {\n if (s.issues.length === h)\n continue;\n c || (c = gt(s, h));\n }\n }\n return f ? f.then(() => s) : s;\n }, o = (s, a, u) => {\n if (gt(s))\n return s.aborted = !0, s;\n const c = i(a, n, u);\n if (c instanceof Promise) {\n if (u.async === !1)\n throw new vt();\n return c.then((f) => e._zod.parse(f, u));\n }\n return e._zod.parse(c, u);\n };\n e._zod.run = (s, a) => {\n if (a.skipChecks)\n return e._zod.parse(s, a);\n if (a.direction === \"backward\") {\n const c = e._zod.parse({ value: s.value, issues: [] }, { ...a, skipChecks: !0 });\n return c instanceof Promise ? c.then((f) => o(f, s, a)) : o(c, s, a);\n }\n const u = e._zod.parse(s, a);\n if (u instanceof Promise) {\n if (a.async === !1)\n throw new vt();\n return u.then((c) => i(c, n, a));\n }\n return i(u, n, a);\n };\n }\n T(e, \"~standard\", () => ({\n validate: (i) => {\n try {\n const o = Da(e, i);\n return o.success ? { value: o.data } : { issues: o.error?.issues };\n } catch {\n return Ca(e, i).then((s) => s.success ? { value: s.data } : { issues: s.error?.issues });\n }\n },\n vendor: \"zod\",\n version: 1\n }));\n}), On = /* @__PURE__ */ p(\"$ZodString\", (e, t) => {\n W.init(e, t), e._zod.pattern = [...e?._zod.bag?.patterns ?? []].pop() ?? hu(e._zod.bag), e._zod.parse = (r, n) => {\n if (t.coerce)\n try {\n r.value = String(r.value);\n } catch {\n }\n return typeof r.value == \"string\" || r.issues.push({\n expected: \"string\",\n code: \"invalid_type\",\n input: r.value,\n inst: e\n }), r;\n };\n}), J = /* @__PURE__ */ p(\"$ZodStringFormat\", (e, t) => {\n Dr.init(e, t), On.init(e, t);\n}), Tu = /* @__PURE__ */ p(\"$ZodGUID\", (e, t) => {\n t.pattern ?? (t.pattern = Qa), J.init(e, t);\n}), Pu = /* @__PURE__ */ p(\"$ZodUUID\", (e, t) => {\n if (t.version) {\n const n = {\n v1: 1,\n v2: 2,\n v3: 3,\n v4: 4,\n v5: 5,\n v6: 6,\n v7: 7,\n v8: 8\n }[t.version];\n if (n === void 0)\n throw new Error(`Invalid UUID version: \"${t.version}\"`);\n t.pattern ?? (t.pattern = fi(n));\n } else\n t.pattern ?? (t.pattern = fi());\n J.init(e, t);\n}), Nu = /* @__PURE__ */ p(\"$ZodEmail\", (e, t) => {\n t.pattern ?? (t.pattern = eu), J.init(e, t);\n}), Zu = /* @__PURE__ */ p(\"$ZodURL\", (e, t) => {\n J.init(e, t), e._zod.check = (r) => {\n try {\n const n = r.value.trim(), i = new URL(n);\n t.hostname && (t.hostname.lastIndex = 0, t.hostname.test(i.hostname) || r.issues.push({\n code: \"invalid_format\",\n format: \"url\",\n note: \"Invalid hostname\",\n pattern: t.hostname.source,\n input: r.value,\n inst: e,\n continue: !t.abort\n })), t.protocol && (t.protocol.lastIndex = 0, t.protocol.test(i.protocol.endsWith(\":\") ? i.protocol.slice(0, -1) : i.protocol) || r.issues.push({\n code: \"invalid_format\",\n format: \"url\",\n note: \"Invalid protocol\",\n pattern: t.protocol.source,\n input: r.value,\n inst: e,\n continue: !t.abort\n })), t.normalize ? r.value = i.href : r.value = n;\n return;\n } catch {\n r.issues.push({\n code: \"invalid_format\",\n format: \"url\",\n input: r.value,\n inst: e,\n continue: !t.abort\n });\n }\n };\n}), Mu = /* @__PURE__ */ p(\"$ZodEmoji\", (e, t) => {\n t.pattern ?? (t.pattern = ru()), J.init(e, t);\n}), Du = /* @__PURE__ */ p(\"$ZodNanoID\", (e, t) => {\n t.pattern ?? (t.pattern = Ga), J.init(e, t);\n}), Cu = /* @__PURE__ */ p(\"$ZodCUID\", (e, t) => {\n t.pattern ?? (t.pattern = Ja), J.init(e, t);\n}), ju = /* @__PURE__ */ p(\"$ZodCUID2\", (e, t) => {\n t.pattern ?? (t.pattern = Va), J.init(e, t);\n}), Lu = /* @__PURE__ */ p(\"$ZodULID\", (e, t) => {\n t.pattern ?? (t.pattern = Ka), J.init(e, t);\n}), Fu = /* @__PURE__ */ p(\"$ZodXID\", (e, t) => {\n t.pattern ?? (t.pattern = Ha), J.init(e, t);\n}), xu = /* @__PURE__ */ p(\"$ZodKSUID\", (e, t) => {\n t.pattern ?? (t.pattern = Ya), J.init(e, t);\n}), qu = /* @__PURE__ */ p(\"$ZodISODateTime\", (e, t) => {\n t.pattern ?? (t.pattern = lu(t)), J.init(e, t);\n}), Uu = /* @__PURE__ */ p(\"$ZodISODate\", (e, t) => {\n t.pattern ?? (t.pattern = cu), J.init(e, t);\n}), Bu = /* @__PURE__ */ p(\"$ZodISOTime\", (e, t) => {\n t.pattern ?? (t.pattern = fu(t)), J.init(e, t);\n}), Wu = /* @__PURE__ */ p(\"$ZodISODuration\", (e, t) => {\n t.pattern ?? (t.pattern = Xa), J.init(e, t);\n}), Ju = /* @__PURE__ */ p(\"$ZodIPv4\", (e, t) => {\n t.pattern ?? (t.pattern = nu), J.init(e, t), e._zod.bag.format = \"ipv4\";\n}), Vu = /* @__PURE__ */ p(\"$ZodIPv6\", (e, t) => {\n t.pattern ?? (t.pattern = iu), J.init(e, t), e._zod.bag.format = \"ipv6\", e._zod.check = (r) => {\n try {\n new URL(`http://[${r.value}]`);\n } catch {\n r.issues.push({\n code: \"invalid_format\",\n format: \"ipv6\",\n input: r.value,\n inst: e,\n continue: !t.abort\n });\n }\n };\n}), Ku = /* @__PURE__ */ p(\"$ZodCIDRv4\", (e, t) => {\n t.pattern ?? (t.pattern = ou), J.init(e, t);\n}), Hu = /* @__PURE__ */ p(\"$ZodCIDRv6\", (e, t) => {\n t.pattern ?? (t.pattern = su), J.init(e, t), e._zod.check = (r) => {\n const n = r.value.split(\"/\");\n try {\n if (n.length !== 2)\n throw new Error();\n const [i, o] = n;\n if (!o)\n throw new Error();\n const s = Number(o);\n if (`${s}` !== o)\n throw new Error();\n if (s < 0 || s > 128)\n throw new Error();\n new URL(`http://[${i}]`);\n } catch {\n r.issues.push({\n code: \"invalid_format\",\n format: \"cidrv6\",\n input: r.value,\n inst: e,\n continue: !t.abort\n });\n }\n };\n});\nfunction Oo(e) {\n if (e === \"\")\n return !0;\n if (e.length % 4 !== 0)\n return !1;\n try {\n return atob(e), !0;\n } catch {\n return !1;\n }\n}\nconst Yu = /* @__PURE__ */ p(\"$ZodBase64\", (e, t) => {\n t.pattern ?? (t.pattern = au), J.init(e, t), e._zod.bag.contentEncoding = \"base64\", e._zod.check = (r) => {\n Oo(r.value) || r.issues.push({\n code: \"invalid_format\",\n format: \"base64\",\n input: r.value,\n inst: e,\n continue: !t.abort\n });\n };\n});\nfunction Gu(e) {\n if (!vo.test(e))\n return !1;\n const t = e.replace(/[-_]/g, (n) => n === \"-\" ? \"+\" : \"/\"), r = t.padEnd(Math.ceil(t.length / 4) * 4, \"=\");\n return Oo(r);\n}\nconst Xu = /* @__PURE__ */ p(\"$ZodBase64URL\", (e, t) => {\n t.pattern ?? (t.pattern = vo), J.init(e, t), e._zod.bag.contentEncoding = \"base64url\", e._zod.check = (r) => {\n Gu(r.value) || r.issues.push({\n code: \"invalid_format\",\n format: \"base64url\",\n input: r.value,\n inst: e,\n continue: !t.abort\n });\n };\n}), Qu = /* @__PURE__ */ p(\"$ZodE164\", (e, t) => {\n t.pattern ?? (t.pattern = uu), J.init(e, t);\n});\nfunction ec(e, t = null) {\n try {\n const r = e.split(\".\");\n if (r.length !== 3)\n return !1;\n const [n] = r;\n if (!n)\n return !1;\n const i = JSON.parse(atob(n));\n return !(\"typ\" in i && i?.typ !== \"JWT\" || !i.alg || t && (!(\"alg\" in i) || i.alg !== t));\n } catch {\n return !1;\n }\n}\nconst tc = /* @__PURE__ */ p(\"$ZodJWT\", (e, t) => {\n J.init(e, t), e._zod.check = (r) => {\n ec(r.value, t.alg) || r.issues.push({\n code: \"invalid_format\",\n format: \"jwt\",\n input: r.value,\n inst: e,\n continue: !t.abort\n });\n };\n}), $o = /* @__PURE__ */ p(\"$ZodNumber\", (e, t) => {\n W.init(e, t), e._zod.pattern = e._zod.bag.pattern ?? So, e._zod.parse = (r, n) => {\n if (t.coerce)\n try {\n r.value = Number(r.value);\n } catch {\n }\n const i = r.value;\n if (typeof i == \"number\" && !Number.isNaN(i) && Number.isFinite(i))\n return r;\n const o = typeof i == \"number\" ? Number.isNaN(i) ? \"NaN\" : Number.isFinite(i) ? void 0 : \"Infinity\" : void 0;\n return r.issues.push({\n expected: \"number\",\n code: \"invalid_type\",\n input: i,\n inst: e,\n ...o ? { received: o } : {}\n }), r;\n };\n}), rc = /* @__PURE__ */ p(\"$ZodNumberFormat\", (e, t) => {\n vu.init(e, t), $o.init(e, t);\n}), nc = /* @__PURE__ */ p(\"$ZodBoolean\", (e, t) => {\n W.init(e, t), e._zod.pattern = du, e._zod.parse = (r, n) => {\n if (t.coerce)\n try {\n r.value = !!r.value;\n } catch {\n }\n const i = r.value;\n return typeof i == \"boolean\" || r.issues.push({\n expected: \"boolean\",\n code: \"invalid_type\",\n input: i,\n inst: e\n }), r;\n };\n}), ic = /* @__PURE__ */ p(\"$ZodUnknown\", (e, t) => {\n W.init(e, t), e._zod.parse = (r) => r;\n}), oc = /* @__PURE__ */ p(\"$ZodNever\", (e, t) => {\n W.init(e, t), e._zod.parse = (r, n) => (r.issues.push({\n expected: \"never\",\n code: \"invalid_type\",\n input: r.value,\n inst: e\n }), r);\n});\nfunction li(e, t, r) {\n e.issues.length && t.issues.push(...mt(r, e.issues)), t.value[r] = e.value;\n}\nconst sc = /* @__PURE__ */ p(\"$ZodArray\", (e, t) => {\n W.init(e, t), e._zod.parse = (r, n) => {\n const i = r.value;\n if (!Array.isArray(i))\n return r.issues.push({\n expected: \"array\",\n code: \"invalid_type\",\n input: i,\n inst: e\n }), r;\n r.value = Array(i.length);\n const o = [];\n for (let s = 0; s < i.length; s++) {\n const a = i[s], u = t.element._zod.run({\n value: a,\n issues: []\n }, n);\n u instanceof Promise ? o.push(u.then((c) => li(c, r, s))) : li(u, r, s);\n }\n return o.length ? Promise.all(o).then(() => r) : r;\n };\n});\nfunction $r(e, t, r, n, i) {\n if (e.issues.length) {\n if (i && !(r in n))\n return;\n t.issues.push(...mt(r, e.issues));\n }\n e.value === void 0 ? r in n && (t.value[r] = void 0) : t.value[r] = e.value;\n}\nfunction Eo(e) {\n const t = Object.keys(e.shape);\n for (const n of t)\n if (!e.shape?.[n]?._zod?.traits?.has(\"$ZodType\"))\n throw new Error(`Invalid element at key \"${n}\": expected a Zod schema`);\n const r = Oa(e.shape);\n return {\n ...e,\n keys: t,\n keySet: new Set(t),\n numKeys: t.length,\n optionalKeys: new Set(r)\n };\n}\nfunction Io(e, t, r, n, i, o) {\n const s = [], a = i.keySet, u = i.catchall._zod, c = u.def.type, f = u.optout === \"optional\";\n for (const l in t) {\n if (a.has(l))\n continue;\n if (c === \"never\") {\n s.push(l);\n continue;\n }\n const h = u.run({ value: t[l], issues: [] }, n);\n h instanceof Promise ? e.push(h.then((d) => $r(d, r, l, t, f))) : $r(h, r, l, t, f);\n }\n return s.length && r.issues.push({\n code: \"unrecognized_keys\",\n keys: s,\n input: t,\n inst: o\n }), e.length ? Promise.all(e).then(() => r) : r;\n}\nconst ac = /* @__PURE__ */ p(\"$ZodObject\", (e, t) => {\n if (W.init(e, t), !Object.getOwnPropertyDescriptor(t, \"shape\")?.get) {\n const a = t.shape;\n Object.defineProperty(t, \"shape\", {\n get: () => {\n const u = { ...a };\n return Object.defineProperty(t, \"shape\", {\n value: u\n }), u;\n }\n });\n }\n const n = Nr(() => Eo(t));\n T(e._zod, \"propValues\", () => {\n const a = t.shape, u = {};\n for (const c in a) {\n const f = a[c]._zod;\n if (f.values) {\n u[c] ?? (u[c] = /* @__PURE__ */ new Set());\n for (const l of f.values)\n u[c].add(l);\n }\n }\n return u;\n });\n const i = Ht, o = t.catchall;\n let s;\n e._zod.parse = (a, u) => {\n s ?? (s = n.value);\n const c = a.value;\n if (!i(c))\n return a.issues.push({\n expected: \"object\",\n code: \"invalid_type\",\n input: c,\n inst: e\n }), a;\n a.value = {};\n const f = [], l = s.shape;\n for (const h of s.keys) {\n const d = l[h], _ = d._zod.optout === \"optional\", g = d._zod.run({ value: c[h], issues: [] }, u);\n g instanceof Promise ? f.push(g.then((m) => $r(m, a, h, c, _))) : $r(g, a, h, c, _);\n }\n return o ? Io(f, c, a, u, n.value, e) : f.length ? Promise.all(f).then(() => a) : a;\n };\n}), uc = /* @__PURE__ */ p(\"$ZodObjectJIT\", (e, t) => {\n ac.init(e, t);\n const r = e._zod.parse, n = Nr(() => Eo(t)), i = (h) => {\n const d = new Au([\"shape\", \"payload\", \"ctx\"]), _ = n.value, g = (b) => {\n const N = ci(b);\n return `shape[${N}]._zod.run({ value: input[${N}], issues: [] }, ctx)`;\n };\n d.write(\"const input = payload.value;\");\n const m = /* @__PURE__ */ Object.create(null);\n let E = 0;\n for (const b of _.keys)\n m[b] = `key_${E++}`;\n d.write(\"const newResult = {};\");\n for (const b of _.keys) {\n const N = m[b], k = ci(b), D = h[b]?._zod?.optout === \"optional\";\n d.write(`const ${N} = ${g(b)};`), D ? d.write(`\n if (${N}.issues.length) {\n if (${k} in input) {\n payload.issues = payload.issues.concat(${N}.issues.map(iss => ({\n ...iss,\n path: iss.path ? [${k}, ...iss.path] : [${k}]\n })));\n }\n }\n \n if (${N}.value === undefined) {\n if (${k} in input) {\n newResult[${k}] = undefined;\n }\n } else {\n newResult[${k}] = ${N}.value;\n }\n \n `) : d.write(`\n if (${N}.issues.length) {\n payload.issues = payload.issues.concat(${N}.issues.map(iss => ({\n ...iss,\n path: iss.path ? [${k}, ...iss.path] : [${k}]\n })));\n }\n \n if (${N}.value === undefined) {\n if (${k} in input) {\n newResult[${k}] = undefined;\n }\n } else {\n newResult[${k}] = ${N}.value;\n }\n \n `);\n }\n d.write(\"payload.value = newResult;\"), d.write(\"return payload;\");\n const $ = d.compile();\n return (b, N) => $(h, b, N);\n };\n let o;\n const s = Ht, a = !fo.jitless, c = a && za.value, f = t.catchall;\n let l;\n e._zod.parse = (h, d) => {\n l ?? (l = n.value);\n const _ = h.value;\n return s(_) ? a && c && d?.async === !1 && d.jitless !== !0 ? (o || (o = i(t.shape)), h = o(h, d), f ? Io([], _, h, d, l, e) : h) : r(h, d) : (h.issues.push({\n expected: \"object\",\n code: \"invalid_type\",\n input: _,\n inst: e\n }), h);\n };\n});\nfunction hi(e, t, r, n) {\n for (const o of e)\n if (o.issues.length === 0)\n return t.value = o.value, t;\n const i = e.filter((o) => !gt(o));\n return i.length === 1 ? (t.value = i[0].value, i[0]) : (t.issues.push({\n code: \"invalid_union\",\n input: t.value,\n inst: r,\n errors: e.map((o) => o.issues.map((s) => Ke(s, n, Ve())))\n }), t);\n}\nconst Ao = /* @__PURE__ */ p(\"$ZodUnion\", (e, t) => {\n W.init(e, t), T(e._zod, \"optin\", () => t.options.some((i) => i._zod.optin === \"optional\") ? \"optional\" : void 0), T(e._zod, \"optout\", () => t.options.some((i) => i._zod.optout === \"optional\") ? \"optional\" : void 0), T(e._zod, \"values\", () => {\n if (t.options.every((i) => i._zod.values))\n return new Set(t.options.flatMap((i) => Array.from(i._zod.values)));\n }), T(e._zod, \"pattern\", () => {\n if (t.options.every((i) => i._zod.pattern)) {\n const i = t.options.map((o) => o._zod.pattern);\n return new RegExp(`^(${i.map((o) => Sn(o.source)).join(\"|\")})$`);\n }\n });\n const r = t.options.length === 1, n = t.options[0]._zod.run;\n e._zod.parse = (i, o) => {\n if (r)\n return n(i, o);\n let s = !1;\n const a = [];\n for (const u of t.options) {\n const c = u._zod.run({\n value: i.value,\n issues: []\n }, o);\n if (c instanceof Promise)\n a.push(c), s = !0;\n else {\n if (c.issues.length === 0)\n return c;\n a.push(c);\n }\n }\n return s ? Promise.all(a).then((u) => hi(u, i, e, o)) : hi(a, i, e, o);\n };\n}), cc = /* @__PURE__ */ p(\"$ZodDiscriminatedUnion\", (e, t) => {\n t.inclusive = !1, Ao.init(e, t);\n const r = e._zod.parse;\n T(e._zod, \"propValues\", () => {\n const i = {};\n for (const o of t.options) {\n const s = o._zod.propValues;\n if (!s || Object.keys(s).length === 0)\n throw new Error(`Invalid discriminated union option at index \"${t.options.indexOf(o)}\"`);\n for (const [a, u] of Object.entries(s)) {\n i[a] || (i[a] = /* @__PURE__ */ new Set());\n for (const c of u)\n i[a].add(c);\n }\n }\n return i;\n });\n const n = Nr(() => {\n const i = t.options, o = /* @__PURE__ */ new Map();\n for (const s of i) {\n const a = s._zod.propValues?.[t.discriminator];\n if (!a || a.size === 0)\n throw new Error(`Invalid discriminated union option at index \"${t.options.indexOf(s)}\"`);\n for (const u of a) {\n if (o.has(u))\n throw new Error(`Duplicate discriminator value \"${String(u)}\"`);\n o.set(u, s);\n }\n }\n return o;\n });\n e._zod.parse = (i, o) => {\n const s = i.value;\n if (!Ht(s))\n return i.issues.push({\n code: \"invalid_type\",\n expected: \"object\",\n input: s,\n inst: e\n }), i;\n const a = n.value.get(s?.[t.discriminator]);\n return a ? a._zod.run(i, o) : t.unionFallback ? r(i, o) : (i.issues.push({\n code: \"invalid_union\",\n errors: [],\n note: \"No matching discriminator\",\n discriminator: t.discriminator,\n input: s,\n path: [t.discriminator],\n inst: e\n }), i);\n };\n}), fc = /* @__PURE__ */ p(\"$ZodIntersection\", (e, t) => {\n W.init(e, t), e._zod.parse = (r, n) => {\n const i = r.value, o = t.left._zod.run({ value: i, issues: [] }, n), s = t.right._zod.run({ value: i, issues: [] }, n);\n return o instanceof Promise || s instanceof Promise ? Promise.all([o, s]).then(([u, c]) => pi(r, u, c)) : pi(r, o, s);\n };\n});\nfunction sn(e, t) {\n if (e === t)\n return { valid: !0, data: e };\n if (e instanceof Date && t instanceof Date && +e == +t)\n return { valid: !0, data: e };\n if (yt(e) && yt(t)) {\n const r = Object.keys(t), n = Object.keys(e).filter((o) => r.indexOf(o) !== -1), i = { ...e, ...t };\n for (const o of n) {\n const s = sn(e[o], t[o]);\n if (!s.valid)\n return {\n valid: !1,\n mergeErrorPath: [o, ...s.mergeErrorPath]\n };\n i[o] = s.data;\n }\n return { valid: !0, data: i };\n }\n if (Array.isArray(e) && Array.isArray(t)) {\n if (e.length !== t.length)\n return { valid: !1, mergeErrorPath: [] };\n const r = [];\n for (let n = 0; n < e.length; n++) {\n const i = e[n], o = t[n], s = sn(i, o);\n if (!s.valid)\n return {\n valid: !1,\n mergeErrorPath: [n, ...s.mergeErrorPath]\n };\n r.push(s.data);\n }\n return { valid: !0, data: r };\n }\n return { valid: !1, mergeErrorPath: [] };\n}\nfunction pi(e, t, r) {\n const n = /* @__PURE__ */ new Map();\n let i;\n for (const a of t.issues)\n if (a.code === \"unrecognized_keys\") {\n i ?? (i = a);\n for (const u of a.keys)\n n.has(u) || n.set(u, {}), n.get(u).l = !0;\n } else\n e.issues.push(a);\n for (const a of r.issues)\n if (a.code === \"unrecognized_keys\")\n for (const u of a.keys)\n n.has(u) || n.set(u, {}), n.get(u).r = !0;\n else\n e.issues.push(a);\n const o = [...n].filter(([, a]) => a.l && a.r).map(([a]) => a);\n if (o.length && i && e.issues.push({ ...i, keys: o }), gt(e))\n return e;\n const s = sn(t.value, r.value);\n if (!s.valid)\n throw new Error(`Unmergable intersection. Error path: ${JSON.stringify(s.mergeErrorPath)}`);\n return e.value = s.data, e;\n}\nconst lc = /* @__PURE__ */ p(\"$ZodRecord\", (e, t) => {\n W.init(e, t), e._zod.parse = (r, n) => {\n const i = r.value;\n if (!yt(i))\n return r.issues.push({\n expected: \"record\",\n code: \"invalid_type\",\n input: i,\n inst: e\n }), r;\n const o = [], s = t.keyType._zod.values;\n if (s) {\n r.value = {};\n const a = /* @__PURE__ */ new Set();\n for (const c of s)\n if (typeof c == \"string\" || typeof c == \"number\" || typeof c == \"symbol\") {\n a.add(typeof c == \"number\" ? c.toString() : c);\n const f = t.valueType._zod.run({ value: i[c], issues: [] }, n);\n f instanceof Promise ? o.push(f.then((l) => {\n l.issues.length && r.issues.push(...mt(c, l.issues)), r.value[c] = l.value;\n })) : (f.issues.length && r.issues.push(...mt(c, f.issues)), r.value[c] = f.value);\n }\n let u;\n for (const c in i)\n a.has(c) || (u = u ?? [], u.push(c));\n u && u.length > 0 && r.issues.push({\n code: \"unrecognized_keys\",\n input: i,\n inst: e,\n keys: u\n });\n } else {\n r.value = {};\n for (const a of Reflect.ownKeys(i)) {\n if (a === \"__proto__\")\n continue;\n let u = t.keyType._zod.run({ value: a, issues: [] }, n);\n if (u instanceof Promise)\n throw new Error(\"Async schemas not supported in object keys currently\");\n if (typeof a == \"string\" && So.test(a) && u.issues.length) {\n const l = t.keyType._zod.run({ value: Number(a), issues: [] }, n);\n if (l instanceof Promise)\n throw new Error(\"Async schemas not supported in object keys currently\");\n l.issues.length === 0 && (u = l);\n }\n if (u.issues.length) {\n t.mode === \"loose\" ? r.value[a] = i[a] : r.issues.push({\n code: \"invalid_key\",\n origin: \"record\",\n issues: u.issues.map((l) => Ke(l, n, Ve())),\n input: a,\n path: [a],\n inst: e\n });\n continue;\n }\n const f = t.valueType._zod.run({ value: i[a], issues: [] }, n);\n f instanceof Promise ? o.push(f.then((l) => {\n l.issues.length && r.issues.push(...mt(a, l.issues)), r.value[u.value] = l.value;\n })) : (f.issues.length && r.issues.push(...mt(a, f.issues)), r.value[u.value] = f.value);\n }\n }\n return o.length ? Promise.all(o).then(() => r) : r;\n };\n}), hc = /* @__PURE__ */ p(\"$ZodEnum\", (e, t) => {\n W.init(e, t);\n const r = lo(t.entries), n = new Set(r);\n e._zod.values = n, e._zod.pattern = new RegExp(`^(${r.filter((i) => ka.has(typeof i)).map((i) => typeof i == \"string\" ? wt(i) : i.toString()).join(\"|\")})$`), e._zod.parse = (i, o) => {\n const s = i.value;\n return n.has(s) || i.issues.push({\n code: \"invalid_value\",\n values: r,\n input: s,\n inst: e\n }), i;\n };\n}), pc = /* @__PURE__ */ p(\"$ZodLiteral\", (e, t) => {\n if (W.init(e, t), t.values.length === 0)\n throw new Error(\"Cannot create literal schema with no valid values\");\n const r = new Set(t.values);\n e._zod.values = r, e._zod.pattern = new RegExp(`^(${t.values.map((n) => typeof n == \"string\" ? wt(n) : n ? wt(n.toString()) : String(n)).join(\"|\")})$`), e._zod.parse = (n, i) => {\n const o = n.value;\n return r.has(o) || n.issues.push({\n code: \"invalid_value\",\n values: t.values,\n input: o,\n inst: e\n }), n;\n };\n}), dc = /* @__PURE__ */ p(\"$ZodTransform\", (e, t) => {\n W.init(e, t), e._zod.parse = (r, n) => {\n if (n.direction === \"backward\")\n throw new co(e.constructor.name);\n const i = t.transform(r.value, r);\n if (n.async)\n return (i instanceof Promise ? i : Promise.resolve(i)).then((s) => (r.value = s, r));\n if (i instanceof Promise)\n throw new vt();\n return r.value = i, r;\n };\n});\nfunction di(e, t) {\n return e.issues.length && t === void 0 ? { issues: [], value: void 0 } : e;\n}\nconst Ro = /* @__PURE__ */ p(\"$ZodOptional\", (e, t) => {\n W.init(e, t), e._zod.optin = \"optional\", e._zod.optout = \"optional\", T(e._zod, \"values\", () => t.innerType._zod.values ? /* @__PURE__ */ new Set([...t.innerType._zod.values, void 0]) : void 0), T(e._zod, \"pattern\", () => {\n const r = t.innerType._zod.pattern;\n return r ? new RegExp(`^(${Sn(r.source)})?$`) : void 0;\n }), e._zod.parse = (r, n) => {\n if (t.innerType._zod.optin === \"optional\") {\n const i = t.innerType._zod.run(r, n);\n return i instanceof Promise ? i.then((o) => di(o, r.value)) : di(i, r.value);\n }\n return r.value === void 0 ? r : t.innerType._zod.run(r, n);\n };\n}), _c = /* @__PURE__ */ p(\"$ZodExactOptional\", (e, t) => {\n Ro.init(e, t), T(e._zod, \"values\", () => t.innerType._zod.values), T(e._zod, \"pattern\", () => t.innerType._zod.pattern), e._zod.parse = (r, n) => t.innerType._zod.run(r, n);\n}), gc = /* @__PURE__ */ p(\"$ZodNullable\", (e, t) => {\n W.init(e, t), T(e._zod, \"optin\", () => t.innerType._zod.optin), T(e._zod, \"optout\", () => t.innerType._zod.optout), T(e._zod, \"pattern\", () => {\n const r = t.innerType._zod.pattern;\n return r ? new RegExp(`^(${Sn(r.source)}|null)$`) : void 0;\n }), T(e._zod, \"values\", () => t.innerType._zod.values ? /* @__PURE__ */ new Set([...t.innerType._zod.values, null]) : void 0), e._zod.parse = (r, n) => r.value === null ? r : t.innerType._zod.run(r, n);\n}), mc = /* @__PURE__ */ p(\"$ZodDefault\", (e, t) => {\n W.init(e, t), e._zod.optin = \"optional\", T(e._zod, \"values\", () => t.innerType._zod.values), e._zod.parse = (r, n) => {\n if (n.direction === \"backward\")\n return t.innerType._zod.run(r, n);\n if (r.value === void 0)\n return r.value = t.defaultValue, r;\n const i = t.innerType._zod.run(r, n);\n return i instanceof Promise ? i.then((o) => _i(o, t)) : _i(i, t);\n };\n});\nfunction _i(e, t) {\n return e.value === void 0 && (e.value = t.defaultValue), e;\n}\nconst vc = /* @__PURE__ */ p(\"$ZodPrefault\", (e, t) => {\n W.init(e, t), e._zod.optin = \"optional\", T(e._zod, \"values\", () => t.innerType._zod.values), e._zod.parse = (r, n) => (n.direction === \"backward\" || r.value === void 0 && (r.value = t.defaultValue), t.innerType._zod.run(r, n));\n}), yc = /* @__PURE__ */ p(\"$ZodNonOptional\", (e, t) => {\n W.init(e, t), T(e._zod, \"values\", () => {\n const r = t.innerType._zod.values;\n return r ? new Set([...r].filter((n) => n !== void 0)) : void 0;\n }), e._zod.parse = (r, n) => {\n const i = t.innerType._zod.run(r, n);\n return i instanceof Promise ? i.then((o) => gi(o, e)) : gi(i, e);\n };\n});\nfunction gi(e, t) {\n return !e.issues.length && e.value === void 0 && e.issues.push({\n code: \"invalid_type\",\n expected: \"nonoptional\",\n input: e.value,\n inst: t\n }), e;\n}\nconst wc = /* @__PURE__ */ p(\"$ZodCatch\", (e, t) => {\n W.init(e, t), T(e._zod, \"optin\", () => t.innerType._zod.optin), T(e._zod, \"optout\", () => t.innerType._zod.optout), T(e._zod, \"values\", () => t.innerType._zod.values), e._zod.parse = (r, n) => {\n if (n.direction === \"backward\")\n return t.innerType._zod.run(r, n);\n const i = t.innerType._zod.run(r, n);\n return i instanceof Promise ? i.then((o) => (r.value = o.value, o.issues.length && (r.value = t.catchValue({\n ...r,\n error: {\n issues: o.issues.map((s) => Ke(s, n, Ve()))\n },\n input: r.value\n }), r.issues = []), r)) : (r.value = i.value, i.issues.length && (r.value = t.catchValue({\n ...r,\n error: {\n issues: i.issues.map((o) => Ke(o, n, Ve()))\n },\n input: r.value\n }), r.issues = []), r);\n };\n}), Sc = /* @__PURE__ */ p(\"$ZodPipe\", (e, t) => {\n W.init(e, t), T(e._zod, \"values\", () => t.in._zod.values), T(e._zod, \"optin\", () => t.in._zod.optin), T(e._zod, \"optout\", () => t.out._zod.optout), T(e._zod, \"propValues\", () => t.in._zod.propValues), e._zod.parse = (r, n) => {\n if (n.direction === \"backward\") {\n const o = t.out._zod.run(r, n);\n return o instanceof Promise ? o.then((s) => mr(s, t.in, n)) : mr(o, t.in, n);\n }\n const i = t.in._zod.run(r, n);\n return i instanceof Promise ? i.then((o) => mr(o, t.out, n)) : mr(i, t.out, n);\n };\n});\nfunction mr(e, t, r) {\n return e.issues.length ? (e.aborted = !0, e) : t._zod.run({ value: e.value, issues: e.issues }, r);\n}\nconst bc = /* @__PURE__ */ p(\"$ZodReadonly\", (e, t) => {\n W.init(e, t), T(e._zod, \"propValues\", () => t.innerType._zod.propValues), T(e._zod, \"values\", () => t.innerType._zod.values), T(e._zod, \"optin\", () => t.innerType?._zod?.optin), T(e._zod, \"optout\", () => t.innerType?._zod?.optout), e._zod.parse = (r, n) => {\n if (n.direction === \"backward\")\n return t.innerType._zod.run(r, n);\n const i = t.innerType._zod.run(r, n);\n return i instanceof Promise ? i.then(mi) : mi(i);\n };\n});\nfunction mi(e) {\n return e.value = Object.freeze(e.value), e;\n}\nconst zc = /* @__PURE__ */ p(\"$ZodLazy\", (e, t) => {\n W.init(e, t), T(e._zod, \"innerType\", () => t.getter()), T(e._zod, \"pattern\", () => e._zod.innerType?._zod?.pattern), T(e._zod, \"propValues\", () => e._zod.innerType?._zod?.propValues), T(e._zod, \"optin\", () => e._zod.innerType?._zod?.optin ?? void 0), T(e._zod, \"optout\", () => e._zod.innerType?._zod?.optout ?? void 0), e._zod.parse = (r, n) => e._zod.innerType._zod.run(r, n);\n}), kc = /* @__PURE__ */ p(\"$ZodCustom\", (e, t) => {\n de.init(e, t), W.init(e, t), e._zod.parse = (r, n) => r, e._zod.check = (r) => {\n const n = r.value, i = t.fn(n);\n if (i instanceof Promise)\n return i.then((o) => vi(o, r, n, e));\n vi(i, r, n, e);\n };\n});\nfunction vi(e, t, r, n) {\n if (!e) {\n const i = {\n code: \"custom\",\n input: r,\n inst: n,\n // incorporates params.error into issue reporting\n path: [...n._zod.def.path ?? []],\n // incorporates params.error into issue reporting\n continue: !n._zod.def.abort\n // params: inst._zod.def.params,\n };\n n._zod.def.params && (i.params = n._zod.def.params), t.issues.push(Yt(i));\n }\n}\nvar yi;\nclass Oc {\n constructor() {\n this._map = /* @__PURE__ */ new WeakMap(), this._idmap = /* @__PURE__ */ new Map();\n }\n add(t, ...r) {\n const n = r[0];\n return this._map.set(t, n), n && typeof n == \"object\" && \"id\" in n && this._idmap.set(n.id, t), this;\n }\n clear() {\n return this._map = /* @__PURE__ */ new WeakMap(), this._idmap = /* @__PURE__ */ new Map(), this;\n }\n remove(t) {\n const r = this._map.get(t);\n return r && typeof r == \"object\" && \"id\" in r && this._idmap.delete(r.id), this._map.delete(t), this;\n }\n get(t) {\n const r = t._zod.parent;\n if (r) {\n const n = { ...this.get(r) ?? {} };\n delete n.id;\n const i = { ...n, ...this._map.get(t) };\n return Object.keys(i).length ? i : void 0;\n }\n return this._map.get(t);\n }\n has(t) {\n return this._map.has(t);\n }\n}\nfunction $c() {\n return new Oc();\n}\n(yi = globalThis).__zod_globalRegistry ?? (yi.__zod_globalRegistry = $c());\nconst xt = globalThis.__zod_globalRegistry;\n// @__NO_SIDE_EFFECTS__\nfunction Ec(e, t) {\n return new e({\n type: \"string\",\n ...y(t)\n });\n}\n// @__NO_SIDE_EFFECTS__\nfunction Ic(e, t) {\n return new e({\n type: \"string\",\n format: \"email\",\n check: \"string_format\",\n abort: !1,\n ...y(t)\n });\n}\n// @__NO_SIDE_EFFECTS__\nfunction wi(e, t) {\n return new e({\n type: \"string\",\n format: \"guid\",\n check: \"string_format\",\n abort: !1,\n ...y(t)\n });\n}\n// @__NO_SIDE_EFFECTS__\nfunction Ac(e, t) {\n return new e({\n type: \"string\",\n format: \"uuid\",\n check: \"string_format\",\n abort: !1,\n ...y(t)\n });\n}\n// @__NO_SIDE_EFFECTS__\nfunction Rc(e, t) {\n return new e({\n type: \"string\",\n format: \"uuid\",\n check: \"string_format\",\n abort: !1,\n version: \"v4\",\n ...y(t)\n });\n}\n// @__NO_SIDE_EFFECTS__\nfunction Tc(e, t) {\n return new e({\n type: \"string\",\n format: \"uuid\",\n check: \"string_format\",\n abort: !1,\n version: \"v6\",\n ...y(t)\n });\n}\n// @__NO_SIDE_EFFECTS__\nfunction Pc(e, t) {\n return new e({\n type: \"string\",\n format: \"uuid\",\n check: \"string_format\",\n abort: !1,\n version: \"v7\",\n ...y(t)\n });\n}\n// @__NO_SIDE_EFFECTS__\nfunction Nc(e, t) {\n return new e({\n type: \"string\",\n format: \"url\",\n check: \"string_format\",\n abort: !1,\n ...y(t)\n });\n}\n// @__NO_SIDE_EFFECTS__\nfunction Zc(e, t) {\n return new e({\n type: \"string\",\n format: \"emoji\",\n check: \"string_format\",\n abort: !1,\n ...y(t)\n });\n}\n// @__NO_SIDE_EFFECTS__\nfunction Mc(e, t) {\n return new e({\n type: \"string\",\n format: \"nanoid\",\n check: \"string_format\",\n abort: !1,\n ...y(t)\n });\n}\n// @__NO_SIDE_EFFECTS__\nfunction Dc(e, t) {\n return new e({\n type: \"string\",\n format: \"cuid\",\n check: \"string_format\",\n abort: !1,\n ...y(t)\n });\n}\n// @__NO_SIDE_EFFECTS__\nfunction Cc(e, t) {\n return new e({\n type: \"string\",\n format: \"cuid2\",\n check: \"string_format\",\n abort: !1,\n ...y(t)\n });\n}\n// @__NO_SIDE_EFFECTS__\nfunction jc(e, t) {\n return new e({\n type: \"string\",\n format: \"ulid\",\n check: \"string_format\",\n abort: !1,\n ...y(t)\n });\n}\n// @__NO_SIDE_EFFECTS__\nfunction Lc(e, t) {\n return new e({\n type: \"string\",\n format: \"xid\",\n check: \"string_format\",\n abort: !1,\n ...y(t)\n });\n}\n// @__NO_SIDE_EFFECTS__\nfunction Fc(e, t) {\n return new e({\n type: \"string\",\n format: \"ksuid\",\n check: \"string_format\",\n abort: !1,\n ...y(t)\n });\n}\n// @__NO_SIDE_EFFECTS__\nfunction xc(e, t) {\n return new e({\n type: \"string\",\n format: \"ipv4\",\n check: \"string_format\",\n abort: !1,\n ...y(t)\n });\n}\n// @__NO_SIDE_EFFECTS__\nfunction qc(e, t) {\n return new e({\n type: \"string\",\n format: \"ipv6\",\n check: \"string_format\",\n abort: !1,\n ...y(t)\n });\n}\n// @__NO_SIDE_EFFECTS__\nfunction Uc(e, t) {\n return new e({\n type: \"string\",\n format: \"cidrv4\",\n check: \"string_format\",\n abort: !1,\n ...y(t)\n });\n}\n// @__NO_SIDE_EFFECTS__\nfunction Bc(e, t) {\n return new e({\n type: \"string\",\n format: \"cidrv6\",\n check: \"string_format\",\n abort: !1,\n ...y(t)\n });\n}\n// @__NO_SIDE_EFFECTS__\nfunction Wc(e, t) {\n return new e({\n type: \"string\",\n format: \"base64\",\n check: \"string_format\",\n abort: !1,\n ...y(t)\n });\n}\n// @__NO_SIDE_EFFECTS__\nfunction Jc(e, t) {\n return new e({\n type: \"string\",\n format: \"base64url\",\n check: \"string_format\",\n abort: !1,\n ...y(t)\n });\n}\n// @__NO_SIDE_EFFECTS__\nfunction Vc(e, t) {\n return new e({\n type: \"string\",\n format: \"e164\",\n check: \"string_format\",\n abort: !1,\n ...y(t)\n });\n}\n// @__NO_SIDE_EFFECTS__\nfunction Kc(e, t) {\n return new e({\n type: \"string\",\n format: \"jwt\",\n check: \"string_format\",\n abort: !1,\n ...y(t)\n });\n}\n// @__NO_SIDE_EFFECTS__\nfunction Hc(e, t) {\n return new e({\n type: \"string\",\n format: \"datetime\",\n check: \"string_format\",\n offset: !1,\n local: !1,\n precision: null,\n ...y(t)\n });\n}\n// @__NO_SIDE_EFFECTS__\nfunction Yc(e, t) {\n return new e({\n type: \"string\",\n format: \"date\",\n check: \"string_format\",\n ...y(t)\n });\n}\n// @__NO_SIDE_EFFECTS__\nfunction Gc(e, t) {\n return new e({\n type: \"string\",\n format: \"time\",\n check: \"string_format\",\n precision: null,\n ...y(t)\n });\n}\n// @__NO_SIDE_EFFECTS__\nfunction Xc(e, t) {\n return new e({\n type: \"string\",\n format: \"duration\",\n check: \"string_format\",\n ...y(t)\n });\n}\n// @__NO_SIDE_EFFECTS__\nfunction Qc(e, t) {\n return new e({\n type: \"number\",\n checks: [],\n ...y(t)\n });\n}\n// @__NO_SIDE_EFFECTS__\nfunction ef(e, t) {\n return new e({\n type: \"number\",\n check: \"number_format\",\n abort: !1,\n format: \"safeint\",\n ...y(t)\n });\n}\n// @__NO_SIDE_EFFECTS__\nfunction tf(e, t) {\n return new e({\n type: \"boolean\",\n ...y(t)\n });\n}\n// @__NO_SIDE_EFFECTS__\nfunction rf(e) {\n return new e({\n type: \"unknown\"\n });\n}\n// @__NO_SIDE_EFFECTS__\nfunction nf(e, t) {\n return new e({\n type: \"never\",\n ...y(t)\n });\n}\n// @__NO_SIDE_EFFECTS__\nfunction Si(e, t) {\n return new zo({\n check: \"less_than\",\n ...y(t),\n value: e,\n inclusive: !1\n });\n}\n// @__NO_SIDE_EFFECTS__\nfunction Hr(e, t) {\n return new zo({\n check: \"less_than\",\n ...y(t),\n value: e,\n inclusive: !0\n });\n}\n// @__NO_SIDE_EFFECTS__\nfunction bi(e, t) {\n return new ko({\n check: \"greater_than\",\n ...y(t),\n value: e,\n inclusive: !1\n });\n}\n// @__NO_SIDE_EFFECTS__\nfunction Yr(e, t) {\n return new ko({\n check: \"greater_than\",\n ...y(t),\n value: e,\n inclusive: !0\n });\n}\n// @__NO_SIDE_EFFECTS__\nfunction zi(e, t) {\n return new mu({\n check: \"multiple_of\",\n ...y(t),\n value: e\n });\n}\n// @__NO_SIDE_EFFECTS__\nfunction To(e, t) {\n return new yu({\n check: \"max_length\",\n ...y(t),\n maximum: e\n });\n}\n// @__NO_SIDE_EFFECTS__\nfunction Er(e, t) {\n return new wu({\n check: \"min_length\",\n ...y(t),\n minimum: e\n });\n}\n// @__NO_SIDE_EFFECTS__\nfunction Po(e, t) {\n return new Su({\n check: \"length_equals\",\n ...y(t),\n length: e\n });\n}\n// @__NO_SIDE_EFFECTS__\nfunction of(e, t) {\n return new bu({\n check: \"string_format\",\n format: \"regex\",\n ...y(t),\n pattern: e\n });\n}\n// @__NO_SIDE_EFFECTS__\nfunction sf(e) {\n return new zu({\n check: \"string_format\",\n format: \"lowercase\",\n ...y(e)\n });\n}\n// @__NO_SIDE_EFFECTS__\nfunction af(e) {\n return new ku({\n check: \"string_format\",\n format: \"uppercase\",\n ...y(e)\n });\n}\n// @__NO_SIDE_EFFECTS__\nfunction uf(e, t) {\n return new Ou({\n check: \"string_format\",\n format: \"includes\",\n ...y(t),\n includes: e\n });\n}\n// @__NO_SIDE_EFFECTS__\nfunction cf(e, t) {\n return new $u({\n check: \"string_format\",\n format: \"starts_with\",\n ...y(t),\n prefix: e\n });\n}\n// @__NO_SIDE_EFFECTS__\nfunction ff(e, t) {\n return new Eu({\n check: \"string_format\",\n format: \"ends_with\",\n ...y(t),\n suffix: e\n });\n}\n// @__NO_SIDE_EFFECTS__\nfunction Rt(e) {\n return new Iu({\n check: \"overwrite\",\n tx: e\n });\n}\n// @__NO_SIDE_EFFECTS__\nfunction lf(e) {\n return /* @__PURE__ */ Rt((t) => t.normalize(e));\n}\n// @__NO_SIDE_EFFECTS__\nfunction hf() {\n return /* @__PURE__ */ Rt((e) => e.trim());\n}\n// @__NO_SIDE_EFFECTS__\nfunction pf() {\n return /* @__PURE__ */ Rt((e) => e.toLowerCase());\n}\n// @__NO_SIDE_EFFECTS__\nfunction df() {\n return /* @__PURE__ */ Rt((e) => e.toUpperCase());\n}\n// @__NO_SIDE_EFFECTS__\nfunction _f() {\n return /* @__PURE__ */ Rt((e) => ba(e));\n}\n// @__NO_SIDE_EFFECTS__\nfunction gf(e, t, r) {\n return new e({\n type: \"array\",\n element: t,\n // get element() {\n // return element;\n // },\n ...y(r)\n });\n}\n// @__NO_SIDE_EFFECTS__\nfunction mf(e, t, r) {\n return new e({\n type: \"custom\",\n check: \"custom\",\n fn: t,\n ...y(r)\n });\n}\n// @__NO_SIDE_EFFECTS__\nfunction vf(e) {\n const t = /* @__PURE__ */ yf((r) => (r.addIssue = (n) => {\n if (typeof n == \"string\")\n r.issues.push(Yt(n, r.value, t._zod.def));\n else {\n const i = n;\n i.fatal && (i.continue = !1), i.code ?? (i.code = \"custom\"), i.input ?? (i.input = r.value), i.inst ?? (i.inst = t), i.continue ?? (i.continue = !t._zod.def.abort), r.issues.push(Yt(i));\n }\n }, e(r.value, r)));\n return t;\n}\n// @__NO_SIDE_EFFECTS__\nfunction yf(e, t) {\n const r = new de({\n check: \"custom\",\n ...y(t)\n });\n return r._zod.check = e, r;\n}\nfunction No(e) {\n let t = e?.target ?? \"draft-2020-12\";\n return t === \"draft-4\" && (t = \"draft-04\"), t === \"draft-7\" && (t = \"draft-07\"), {\n processors: e.processors ?? {},\n metadataRegistry: e?.metadata ?? xt,\n target: t,\n unrepresentable: e?.unrepresentable ?? \"throw\",\n override: e?.override ?? (() => {\n }),\n io: e?.io ?? \"output\",\n counter: 0,\n seen: /* @__PURE__ */ new Map(),\n cycles: e?.cycles ?? \"ref\",\n reused: e?.reused ?? \"inline\",\n external: e?.external ?? void 0\n };\n}\nfunction G(e, t, r = { path: [], schemaPath: [] }) {\n var n;\n const i = e._zod.def, o = t.seen.get(e);\n if (o)\n return o.count++, r.schemaPath.includes(e) && (o.cycle = r.path), o.schema;\n const s = { schema: {}, count: 1, cycle: void 0, path: r.path };\n t.seen.set(e, s);\n const a = e._zod.toJSONSchema?.();\n if (a)\n s.schema = a;\n else {\n const f = {\n ...r,\n schemaPath: [...r.schemaPath, e],\n path: r.path\n };\n if (e._zod.processJSONSchema)\n e._zod.processJSONSchema(t, s.schema, f);\n else {\n const h = s.schema, d = t.processors[i.type];\n if (!d)\n throw new Error(`[toJSONSchema]: Non-representable type encountered: ${i.type}`);\n d(e, t, h, f);\n }\n const l = e._zod.parent;\n l && (s.ref || (s.ref = l), G(l, t, f), t.seen.get(l).isParent = !0);\n }\n const u = t.metadataRegistry.get(e);\n return u && Object.assign(s.schema, u), t.io === \"input\" && ue(e) && (delete s.schema.examples, delete s.schema.default), t.io === \"input\" && s.schema._prefault && ((n = s.schema).default ?? (n.default = s.schema._prefault)), delete s.schema._prefault, t.seen.get(e).schema;\n}\nfunction Zo(e, t) {\n const r = e.seen.get(t);\n if (!r)\n throw new Error(\"Unprocessed schema. This is a bug in Zod.\");\n const n = /* @__PURE__ */ new Map();\n for (const s of e.seen.entries()) {\n const a = e.metadataRegistry.get(s[0])?.id;\n if (a) {\n const u = n.get(a);\n if (u && u !== s[0])\n throw new Error(`Duplicate schema id \"${a}\" detected during JSON Schema conversion. Two different schemas cannot share the same id when converted together.`);\n n.set(a, s[0]);\n }\n }\n const i = (s) => {\n const a = e.target === \"draft-2020-12\" ? \"$defs\" : \"definitions\";\n if (e.external) {\n const l = e.external.registry.get(s[0])?.id, h = e.external.uri ?? ((_) => _);\n if (l)\n return { ref: h(l) };\n const d = s[1].defId ?? s[1].schema.id ?? `schema${e.counter++}`;\n return s[1].defId = d, { defId: d, ref: `${h(\"__shared\")}#/${a}/${d}` };\n }\n if (s[1] === r)\n return { ref: \"#\" };\n const c = `#/${a}/`, f = s[1].schema.id ?? `__schema${e.counter++}`;\n return { defId: f, ref: c + f };\n }, o = (s) => {\n if (s[1].schema.$ref)\n return;\n const a = s[1], { ref: u, defId: c } = i(s);\n a.def = { ...a.schema }, c && (a.defId = c);\n const f = a.schema;\n for (const l in f)\n delete f[l];\n f.$ref = u;\n };\n if (e.cycles === \"throw\")\n for (const s of e.seen.entries()) {\n const a = s[1];\n if (a.cycle)\n throw new Error(`Cycle detected: #/${a.cycle?.join(\"/\")}/<root>\n\nSet the \\`cycles\\` parameter to \\`\"ref\"\\` to resolve cyclical schemas with defs.`);\n }\n for (const s of e.seen.entries()) {\n const a = s[1];\n if (t === s[0]) {\n o(s);\n continue;\n }\n if (e.external) {\n const c = e.external.registry.get(s[0])?.id;\n if (t !== s[0] && c) {\n o(s);\n continue;\n }\n }\n if (e.metadataRegistry.get(s[0])?.id) {\n o(s);\n continue;\n }\n if (a.cycle) {\n o(s);\n continue;\n }\n if (a.count > 1 && e.reused === \"ref\") {\n o(s);\n continue;\n }\n }\n}\nfunction Mo(e, t) {\n const r = e.seen.get(t);\n if (!r)\n throw new Error(\"Unprocessed schema. This is a bug in Zod.\");\n const n = (s) => {\n const a = e.seen.get(s);\n if (a.ref === null)\n return;\n const u = a.def ?? a.schema, c = { ...u }, f = a.ref;\n if (a.ref = null, f) {\n n(f);\n const h = e.seen.get(f), d = h.schema;\n if (d.$ref && (e.target === \"draft-07\" || e.target === \"draft-04\" || e.target === \"openapi-3.0\") ? (u.allOf = u.allOf ?? [], u.allOf.push(d)) : Object.assign(u, d), Object.assign(u, c), s._zod.parent === f)\n for (const g in u)\n g === \"$ref\" || g === \"allOf\" || g in c || delete u[g];\n if (d.$ref && h.def)\n for (const g in u)\n g === \"$ref\" || g === \"allOf\" || g in h.def && JSON.stringify(u[g]) === JSON.stringify(h.def[g]) && delete u[g];\n }\n const l = s._zod.parent;\n if (l && l !== f) {\n n(l);\n const h = e.seen.get(l);\n if (h?.schema.$ref && (u.$ref = h.schema.$ref, h.def))\n for (const d in u)\n d === \"$ref\" || d === \"allOf\" || d in h.def && JSON.stringify(u[d]) === JSON.stringify(h.def[d]) && delete u[d];\n }\n e.override({\n zodSchema: s,\n jsonSchema: u,\n path: a.path ?? []\n });\n };\n for (const s of [...e.seen.entries()].reverse())\n n(s[0]);\n const i = {};\n if (e.target === \"draft-2020-12\" ? i.$schema = \"https://json-schema.org/draft/2020-12/schema\" : e.target === \"draft-07\" ? i.$schema = \"http://json-schema.org/draft-07/schema#\" : e.target === \"draft-04\" ? i.$schema = \"http://json-schema.org/draft-04/schema#\" : e.target, e.external?.uri) {\n const s = e.external.registry.get(t)?.id;\n if (!s)\n throw new Error(\"Schema is missing an `id` property\");\n i.$id = e.external.uri(s);\n }\n Object.assign(i, r.def ?? r.schema);\n const o = e.external?.defs ?? {};\n for (const s of e.seen.entries()) {\n const a = s[1];\n a.def && a.defId && (o[a.defId] = a.def);\n }\n e.external || Object.keys(o).length > 0 && (e.target === \"draft-2020-12\" ? i.$defs = o : i.definitions = o);\n try {\n const s = JSON.parse(JSON.stringify(i));\n return Object.defineProperty(s, \"~standard\", {\n value: {\n ...t[\"~standard\"],\n jsonSchema: {\n input: Ir(t, \"input\", e.processors),\n output: Ir(t, \"output\", e.processors)\n }\n },\n enumerable: !1,\n writable: !1\n }), s;\n } catch {\n throw new Error(\"Error converting schema to JSON.\");\n }\n}\nfunction ue(e, t) {\n const r = t ?? { seen: /* @__PURE__ */ new Set() };\n if (r.seen.has(e))\n return !1;\n r.seen.add(e);\n const n = e._zod.def;\n if (n.type === \"transform\")\n return !0;\n if (n.type === \"array\")\n return ue(n.element, r);\n if (n.type === \"set\")\n return ue(n.valueType, r);\n if (n.type === \"lazy\")\n return ue(n.getter(), r);\n if (n.type === \"promise\" || n.type === \"optional\" || n.type === \"nonoptional\" || n.type === \"nullable\" || n.type === \"readonly\" || n.type === \"default\" || n.type === \"prefault\")\n return ue(n.innerType, r);\n if (n.type === \"intersection\")\n return ue(n.left, r) || ue(n.right, r);\n if (n.type === \"record\" || n.type === \"map\")\n return ue(n.keyType, r) || ue(n.valueType, r);\n if (n.type === \"pipe\")\n return ue(n.in, r) || ue(n.out, r);\n if (n.type === \"object\") {\n for (const i in n.shape)\n if (ue(n.shape[i], r))\n return !0;\n return !1;\n }\n if (n.type === \"union\") {\n for (const i of n.options)\n if (ue(i, r))\n return !0;\n return !1;\n }\n if (n.type === \"tuple\") {\n for (const i of n.items)\n if (ue(i, r))\n return !0;\n return !!(n.rest && ue(n.rest, r));\n }\n return !1;\n}\nconst wf = (e, t = {}) => (r) => {\n const n = No({ ...r, processors: t });\n return G(e, n), Zo(n, e), Mo(n, e);\n}, Ir = (e, t, r = {}) => (n) => {\n const { libraryOptions: i, target: o } = n ?? {}, s = No({ ...i ?? {}, target: o, io: t, processors: r });\n return G(e, s), Zo(s, e), Mo(s, e);\n}, Sf = {\n guid: \"uuid\",\n url: \"uri\",\n datetime: \"date-time\",\n json_string: \"json-string\",\n regex: \"\"\n // do not set\n}, bf = (e, t, r, n) => {\n const i = r;\n i.type = \"string\";\n const { minimum: o, maximum: s, format: a, patterns: u, contentEncoding: c } = e._zod.bag;\n if (typeof o == \"number\" && (i.minLength = o), typeof s == \"number\" && (i.maxLength = s), a && (i.format = Sf[a] ?? a, i.format === \"\" && delete i.format, a === \"time\" && delete i.format), c && (i.contentEncoding = c), u && u.size > 0) {\n const f = [...u];\n f.length === 1 ? i.pattern = f[0].source : f.length > 1 && (i.allOf = [\n ...f.map((l) => ({\n ...t.target === \"draft-07\" || t.target === \"draft-04\" || t.target === \"openapi-3.0\" ? { type: \"string\" } : {},\n pattern: l.source\n }))\n ]);\n }\n}, zf = (e, t, r, n) => {\n const i = r, { minimum: o, maximum: s, format: a, multipleOf: u, exclusiveMaximum: c, exclusiveMinimum: f } = e._zod.bag;\n typeof a == \"string\" && a.includes(\"int\") ? i.type = \"integer\" : i.type = \"number\", typeof f == \"number\" && (t.target === \"draft-04\" || t.target === \"openapi-3.0\" ? (i.minimum = f, i.exclusiveMinimum = !0) : i.exclusiveMinimum = f), typeof o == \"number\" && (i.minimum = o, typeof f == \"number\" && t.target !== \"draft-04\" && (f >= o ? delete i.minimum : delete i.exclusiveMinimum)), typeof c == \"number\" && (t.target === \"draft-04\" || t.target === \"openapi-3.0\" ? (i.maximum = c, i.exclusiveMaximum = !0) : i.exclusiveMaximum = c), typeof s == \"number\" && (i.maximum = s, typeof c == \"number\" && t.target !== \"draft-04\" && (c <= s ? delete i.maximum : delete i.exclusiveMaximum)), typeof u == \"number\" && (i.multipleOf = u);\n}, kf = (e, t, r, n) => {\n r.type = \"boolean\";\n}, Of = (e, t, r, n) => {\n r.not = {};\n}, $f = (e, t, r, n) => {\n}, Ef = (e, t, r, n) => {\n const i = e._zod.def, o = lo(i.entries);\n o.every((s) => typeof s == \"number\") && (r.type = \"number\"), o.every((s) => typeof s == \"string\") && (r.type = \"string\"), r.enum = o;\n}, If = (e, t, r, n) => {\n const i = e._zod.def, o = [];\n for (const s of i.values)\n if (s === void 0) {\n if (t.unrepresentable === \"throw\")\n throw new Error(\"Literal `undefined` cannot be represented in JSON Schema\");\n } else if (typeof s == \"bigint\") {\n if (t.unrepresentable === \"throw\")\n throw new Error(\"BigInt literals cannot be represented in JSON Schema\");\n o.push(Number(s));\n } else\n o.push(s);\n if (o.length !== 0) if (o.length === 1) {\n const s = o[0];\n r.type = s === null ? \"null\" : typeof s, t.target === \"draft-04\" || t.target === \"openapi-3.0\" ? r.enum = [s] : r.const = s;\n } else\n o.every((s) => typeof s == \"number\") && (r.type = \"number\"), o.every((s) => typeof s == \"string\") && (r.type = \"string\"), o.every((s) => typeof s == \"boolean\") && (r.type = \"boolean\"), o.every((s) => s === null) && (r.type = \"null\"), r.enum = o;\n}, Af = (e, t, r, n) => {\n if (t.unrepresentable === \"throw\")\n throw new Error(\"Custom types cannot be represented in JSON Schema\");\n}, Rf = (e, t, r, n) => {\n if (t.unrepresentable === \"throw\")\n throw new Error(\"Transforms cannot be represented in JSON Schema\");\n}, Tf = (e, t, r, n) => {\n const i = r, o = e._zod.def, { minimum: s, maximum: a } = e._zod.bag;\n typeof s == \"number\" && (i.minItems = s), typeof a == \"number\" && (i.maxItems = a), i.type = \"array\", i.items = G(o.element, t, { ...n, path: [...n.path, \"items\"] });\n}, Pf = (e, t, r, n) => {\n const i = r, o = e._zod.def;\n i.type = \"object\", i.properties = {};\n const s = o.shape;\n for (const c in s)\n i.properties[c] = G(s[c], t, {\n ...n,\n path: [...n.path, \"properties\", c]\n });\n const a = new Set(Object.keys(s)), u = new Set([...a].filter((c) => {\n const f = o.shape[c]._zod;\n return t.io === \"input\" ? f.optin === void 0 : f.optout === void 0;\n }));\n u.size > 0 && (i.required = Array.from(u)), o.catchall?._zod.def.type === \"never\" ? i.additionalProperties = !1 : o.catchall ? o.catchall && (i.additionalProperties = G(o.catchall, t, {\n ...n,\n path: [...n.path, \"additionalProperties\"]\n })) : t.io === \"output\" && (i.additionalProperties = !1);\n}, Nf = (e, t, r, n) => {\n const i = e._zod.def, o = i.inclusive === !1, s = i.options.map((a, u) => G(a, t, {\n ...n,\n path: [...n.path, o ? \"oneOf\" : \"anyOf\", u]\n }));\n o ? r.oneOf = s : r.anyOf = s;\n}, Zf = (e, t, r, n) => {\n const i = e._zod.def, o = G(i.left, t, {\n ...n,\n path: [...n.path, \"allOf\", 0]\n }), s = G(i.right, t, {\n ...n,\n path: [...n.path, \"allOf\", 1]\n }), a = (c) => \"allOf\" in c && Object.keys(c).length === 1, u = [\n ...a(o) ? o.allOf : [o],\n ...a(s) ? s.allOf : [s]\n ];\n r.allOf = u;\n}, Mf = (e, t, r, n) => {\n const i = r, o = e._zod.def;\n i.type = \"object\";\n const s = o.keyType, u = s._zod.bag?.patterns;\n if (o.mode === \"loose\" && u && u.size > 0) {\n const f = G(o.valueType, t, {\n ...n,\n path: [...n.path, \"patternProperties\", \"*\"]\n });\n i.patternProperties = {};\n for (const l of u)\n i.patternProperties[l.source] = f;\n } else\n (t.target === \"draft-07\" || t.target === \"draft-2020-12\") && (i.propertyNames = G(o.keyType, t, {\n ...n,\n path: [...n.path, \"propertyNames\"]\n })), i.additionalProperties = G(o.valueType, t, {\n ...n,\n path: [...n.path, \"additionalProperties\"]\n });\n const c = s._zod.values;\n if (c) {\n const f = [...c].filter((l) => typeof l == \"string\" || typeof l == \"number\");\n f.length > 0 && (i.required = f);\n }\n}, Df = (e, t, r, n) => {\n const i = e._zod.def, o = G(i.innerType, t, n), s = t.seen.get(e);\n t.target === \"openapi-3.0\" ? (s.ref = i.innerType, r.nullable = !0) : r.anyOf = [o, { type: \"null\" }];\n}, Cf = (e, t, r, n) => {\n const i = e._zod.def;\n G(i.innerType, t, n);\n const o = t.seen.get(e);\n o.ref = i.innerType;\n}, jf = (e, t, r, n) => {\n const i = e._zod.def;\n G(i.innerType, t, n);\n const o = t.seen.get(e);\n o.ref = i.innerType, r.default = JSON.parse(JSON.stringify(i.defaultValue));\n}, Lf = (e, t, r, n) => {\n const i = e._zod.def;\n G(i.innerType, t, n);\n const o = t.seen.get(e);\n o.ref = i.innerType, t.io === \"input\" && (r._prefault = JSON.parse(JSON.stringify(i.defaultValue)));\n}, Ff = (e, t, r, n) => {\n const i = e._zod.def;\n G(i.innerType, t, n);\n const o = t.seen.get(e);\n o.ref = i.innerType;\n let s;\n try {\n s = i.catchValue(void 0);\n } catch {\n throw new Error(\"Dynamic catch values are not supported in JSON Schema\");\n }\n r.default = s;\n}, xf = (e, t, r, n) => {\n const i = e._zod.def, o = t.io === \"input\" ? i.in._zod.def.type === \"transform\" ? i.out : i.in : i.out;\n G(o, t, n);\n const s = t.seen.get(e);\n s.ref = o;\n}, qf = (e, t, r, n) => {\n const i = e._zod.def;\n G(i.innerType, t, n);\n const o = t.seen.get(e);\n o.ref = i.innerType, r.readOnly = !0;\n}, Do = (e, t, r, n) => {\n const i = e._zod.def;\n G(i.innerType, t, n);\n const o = t.seen.get(e);\n o.ref = i.innerType;\n}, Uf = (e, t, r, n) => {\n const i = e._zod.innerType;\n G(i, t, n);\n const o = t.seen.get(e);\n o.ref = i;\n}, Bf = /* @__PURE__ */ p(\"ZodISODateTime\", (e, t) => {\n qu.init(e, t), H.init(e, t);\n});\nfunction Wf(e) {\n return /* @__PURE__ */ Hc(Bf, e);\n}\nconst Jf = /* @__PURE__ */ p(\"ZodISODate\", (e, t) => {\n Uu.init(e, t), H.init(e, t);\n});\nfunction Vf(e) {\n return /* @__PURE__ */ Yc(Jf, e);\n}\nconst Kf = /* @__PURE__ */ p(\"ZodISOTime\", (e, t) => {\n Bu.init(e, t), H.init(e, t);\n});\nfunction Hf(e) {\n return /* @__PURE__ */ Gc(Kf, e);\n}\nconst Yf = /* @__PURE__ */ p(\"ZodISODuration\", (e, t) => {\n Wu.init(e, t), H.init(e, t);\n});\nfunction Gf(e) {\n return /* @__PURE__ */ Xc(Yf, e);\n}\nconst Xf = (e, t) => {\n go.init(e, t), e.name = \"ZodError\", Object.defineProperties(e, {\n format: {\n value: (r) => Ma(e, r)\n // enumerable: false,\n },\n flatten: {\n value: (r) => Za(e, r)\n // enumerable: false,\n },\n addIssue: {\n value: (r) => {\n e.issues.push(r), e.message = JSON.stringify(e.issues, on, 2);\n }\n // enumerable: false,\n },\n addIssues: {\n value: (r) => {\n e.issues.push(...r), e.message = JSON.stringify(e.issues, on, 2);\n }\n // enumerable: false,\n },\n isEmpty: {\n get() {\n return e.issues.length === 0;\n }\n // enumerable: false,\n }\n });\n}, $e = p(\"ZodError\", Xf, {\n Parent: Error\n}), Qf = /* @__PURE__ */ zn($e), el = /* @__PURE__ */ kn($e), tl = /* @__PURE__ */ Zr($e), rl = /* @__PURE__ */ Mr($e), nl = /* @__PURE__ */ ja($e), il = /* @__PURE__ */ La($e), ol = /* @__PURE__ */ Fa($e), sl = /* @__PURE__ */ xa($e), al = /* @__PURE__ */ qa($e), ul = /* @__PURE__ */ Ua($e), cl = /* @__PURE__ */ Ba($e), fl = /* @__PURE__ */ Wa($e), V = /* @__PURE__ */ p(\"ZodType\", (e, t) => (W.init(e, t), Object.assign(e[\"~standard\"], {\n jsonSchema: {\n input: Ir(e, \"input\"),\n output: Ir(e, \"output\")\n }\n}), e.toJSONSchema = wf(e, {}), e.def = t, e.type = t.type, Object.defineProperty(e, \"_def\", { value: t }), e.check = (...r) => e.clone(et(t, {\n checks: [\n ...t.checks ?? [],\n ...r.map((n) => typeof n == \"function\" ? { _zod: { check: n, def: { check: \"custom\" }, onattach: [] } } : n)\n ]\n}), {\n parent: !0\n}), e.with = e.check, e.clone = (r, n) => tt(e, r, n), e.brand = () => e, e.register = ((r, n) => (r.add(e, n), e)), e.parse = (r, n) => Qf(e, r, n, { callee: e.parse }), e.safeParse = (r, n) => tl(e, r, n), e.parseAsync = async (r, n) => el(e, r, n, { callee: e.parseAsync }), e.safeParseAsync = async (r, n) => rl(e, r, n), e.spa = e.safeParseAsync, e.encode = (r, n) => nl(e, r, n), e.decode = (r, n) => il(e, r, n), e.encodeAsync = async (r, n) => ol(e, r, n), e.decodeAsync = async (r, n) => sl(e, r, n), e.safeEncode = (r, n) => al(e, r, n), e.safeDecode = (r, n) => ul(e, r, n), e.safeEncodeAsync = async (r, n) => cl(e, r, n), e.safeDecodeAsync = async (r, n) => fl(e, r, n), e.refine = (r, n) => e.check(nh(r, n)), e.superRefine = (r) => e.check(ih(r)), e.overwrite = (r) => e.check(/* @__PURE__ */ Rt(r)), e.optional = () => $i(e), e.exactOptional = () => ql(e), e.nullable = () => Ei(e), e.nullish = () => $i(Ei(e)), e.nonoptional = (r) => Kl(e, r), e.array = () => He(e), e.or = (r) => qo([e, r]), e.and = (r) => Cl(e, r), e.transform = (r) => cn(e, Bo(r)), e.default = (r) => Wl(e, r), e.prefault = (r) => Vl(e, r), e.catch = (r) => Yl(e, r), e.pipe = (r) => cn(e, r), e.readonly = () => Ql(e), e.describe = (r) => {\n const n = e.clone();\n return xt.add(n, { description: r }), n;\n}, Object.defineProperty(e, \"description\", {\n get() {\n return xt.get(e)?.description;\n },\n configurable: !0\n}), e.meta = (...r) => {\n if (r.length === 0)\n return xt.get(e);\n const n = e.clone();\n return xt.add(n, r[0]), n;\n}, e.isOptional = () => e.safeParse(void 0).success, e.isNullable = () => e.safeParse(null).success, e.apply = (r) => r(e), e)), Co = /* @__PURE__ */ p(\"_ZodString\", (e, t) => {\n On.init(e, t), V.init(e, t), e._zod.processJSONSchema = (n, i, o) => bf(e, n, i);\n const r = e._zod.bag;\n e.format = r.format ?? null, e.minLength = r.minimum ?? null, e.maxLength = r.maximum ?? null, e.regex = (...n) => e.check(/* @__PURE__ */ of(...n)), e.includes = (...n) => e.check(/* @__PURE__ */ uf(...n)), e.startsWith = (...n) => e.check(/* @__PURE__ */ cf(...n)), e.endsWith = (...n) => e.check(/* @__PURE__ */ ff(...n)), e.min = (...n) => e.check(/* @__PURE__ */ Er(...n)), e.max = (...n) => e.check(/* @__PURE__ */ To(...n)), e.length = (...n) => e.check(/* @__PURE__ */ Po(...n)), e.nonempty = (...n) => e.check(/* @__PURE__ */ Er(1, ...n)), e.lowercase = (n) => e.check(/* @__PURE__ */ sf(n)), e.uppercase = (n) => e.check(/* @__PURE__ */ af(n)), e.trim = () => e.check(/* @__PURE__ */ hf()), e.normalize = (...n) => e.check(/* @__PURE__ */ lf(...n)), e.toLowerCase = () => e.check(/* @__PURE__ */ pf()), e.toUpperCase = () => e.check(/* @__PURE__ */ df()), e.slugify = () => e.check(/* @__PURE__ */ _f());\n}), ll = /* @__PURE__ */ p(\"ZodString\", (e, t) => {\n On.init(e, t), Co.init(e, t), e.email = (r) => e.check(/* @__PURE__ */ Ic(hl, r)), e.url = (r) => e.check(/* @__PURE__ */ Nc(pl, r)), e.jwt = (r) => e.check(/* @__PURE__ */ Kc(Il, r)), e.emoji = (r) => e.check(/* @__PURE__ */ Zc(dl, r)), e.guid = (r) => e.check(/* @__PURE__ */ wi(ki, r)), e.uuid = (r) => e.check(/* @__PURE__ */ Ac(vr, r)), e.uuidv4 = (r) => e.check(/* @__PURE__ */ Rc(vr, r)), e.uuidv6 = (r) => e.check(/* @__PURE__ */ Tc(vr, r)), e.uuidv7 = (r) => e.check(/* @__PURE__ */ Pc(vr, r)), e.nanoid = (r) => e.check(/* @__PURE__ */ Mc(_l, r)), e.guid = (r) => e.check(/* @__PURE__ */ wi(ki, r)), e.cuid = (r) => e.check(/* @__PURE__ */ Dc(gl, r)), e.cuid2 = (r) => e.check(/* @__PURE__ */ Cc(ml, r)), e.ulid = (r) => e.check(/* @__PURE__ */ jc(vl, r)), e.base64 = (r) => e.check(/* @__PURE__ */ Wc(Ol, r)), e.base64url = (r) => e.check(/* @__PURE__ */ Jc($l, r)), e.xid = (r) => e.check(/* @__PURE__ */ Lc(yl, r)), e.ksuid = (r) => e.check(/* @__PURE__ */ Fc(wl, r)), e.ipv4 = (r) => e.check(/* @__PURE__ */ xc(Sl, r)), e.ipv6 = (r) => e.check(/* @__PURE__ */ qc(bl, r)), e.cidrv4 = (r) => e.check(/* @__PURE__ */ Uc(zl, r)), e.cidrv6 = (r) => e.check(/* @__PURE__ */ Bc(kl, r)), e.e164 = (r) => e.check(/* @__PURE__ */ Vc(El, r)), e.datetime = (r) => e.check(Wf(r)), e.date = (r) => e.check(Vf(r)), e.time = (r) => e.check(Hf(r)), e.duration = (r) => e.check(Gf(r));\n});\nfunction I(e) {\n return /* @__PURE__ */ Ec(ll, e);\n}\nconst H = /* @__PURE__ */ p(\"ZodStringFormat\", (e, t) => {\n J.init(e, t), Co.init(e, t);\n}), hl = /* @__PURE__ */ p(\"ZodEmail\", (e, t) => {\n Nu.init(e, t), H.init(e, t);\n}), ki = /* @__PURE__ */ p(\"ZodGUID\", (e, t) => {\n Tu.init(e, t), H.init(e, t);\n}), vr = /* @__PURE__ */ p(\"ZodUUID\", (e, t) => {\n Pu.init(e, t), H.init(e, t);\n}), pl = /* @__PURE__ */ p(\"ZodURL\", (e, t) => {\n Zu.init(e, t), H.init(e, t);\n}), dl = /* @__PURE__ */ p(\"ZodEmoji\", (e, t) => {\n Mu.init(e, t), H.init(e, t);\n}), _l = /* @__PURE__ */ p(\"ZodNanoID\", (e, t) => {\n Du.init(e, t), H.init(e, t);\n}), gl = /* @__PURE__ */ p(\"ZodCUID\", (e, t) => {\n Cu.init(e, t), H.init(e, t);\n}), ml = /* @__PURE__ */ p(\"ZodCUID2\", (e, t) => {\n ju.init(e, t), H.init(e, t);\n}), vl = /* @__PURE__ */ p(\"ZodULID\", (e, t) => {\n Lu.init(e, t), H.init(e, t);\n}), yl = /* @__PURE__ */ p(\"ZodXID\", (e, t) => {\n Fu.init(e, t), H.init(e, t);\n}), wl = /* @__PURE__ */ p(\"ZodKSUID\", (e, t) => {\n xu.init(e, t), H.init(e, t);\n}), Sl = /* @__PURE__ */ p(\"ZodIPv4\", (e, t) => {\n Ju.init(e, t), H.init(e, t);\n}), bl = /* @__PURE__ */ p(\"ZodIPv6\", (e, t) => {\n Vu.init(e, t), H.init(e, t);\n}), zl = /* @__PURE__ */ p(\"ZodCIDRv4\", (e, t) => {\n Ku.init(e, t), H.init(e, t);\n}), kl = /* @__PURE__ */ p(\"ZodCIDRv6\", (e, t) => {\n Hu.init(e, t), H.init(e, t);\n}), Ol = /* @__PURE__ */ p(\"ZodBase64\", (e, t) => {\n Yu.init(e, t), H.init(e, t);\n}), $l = /* @__PURE__ */ p(\"ZodBase64URL\", (e, t) => {\n Xu.init(e, t), H.init(e, t);\n}), El = /* @__PURE__ */ p(\"ZodE164\", (e, t) => {\n Qu.init(e, t), H.init(e, t);\n}), Il = /* @__PURE__ */ p(\"ZodJWT\", (e, t) => {\n tc.init(e, t), H.init(e, t);\n}), jo = /* @__PURE__ */ p(\"ZodNumber\", (e, t) => {\n $o.init(e, t), V.init(e, t), e._zod.processJSONSchema = (n, i, o) => zf(e, n, i), e.gt = (n, i) => e.check(/* @__PURE__ */ bi(n, i)), e.gte = (n, i) => e.check(/* @__PURE__ */ Yr(n, i)), e.min = (n, i) => e.check(/* @__PURE__ */ Yr(n, i)), e.lt = (n, i) => e.check(/* @__PURE__ */ Si(n, i)), e.lte = (n, i) => e.check(/* @__PURE__ */ Hr(n, i)), e.max = (n, i) => e.check(/* @__PURE__ */ Hr(n, i)), e.int = (n) => e.check(Oi(n)), e.safe = (n) => e.check(Oi(n)), e.positive = (n) => e.check(/* @__PURE__ */ bi(0, n)), e.nonnegative = (n) => e.check(/* @__PURE__ */ Yr(0, n)), e.negative = (n) => e.check(/* @__PURE__ */ Si(0, n)), e.nonpositive = (n) => e.check(/* @__PURE__ */ Hr(0, n)), e.multipleOf = (n, i) => e.check(/* @__PURE__ */ zi(n, i)), e.step = (n, i) => e.check(/* @__PURE__ */ zi(n, i)), e.finite = () => e;\n const r = e._zod.bag;\n e.minValue = Math.max(r.minimum ?? Number.NEGATIVE_INFINITY, r.exclusiveMinimum ?? Number.NEGATIVE_INFINITY) ?? null, e.maxValue = Math.min(r.maximum ?? Number.POSITIVE_INFINITY, r.exclusiveMaximum ?? Number.POSITIVE_INFINITY) ?? null, e.isInt = (r.format ?? \"\").includes(\"int\") || Number.isSafeInteger(r.multipleOf ?? 0.5), e.isFinite = !0, e.format = r.format ?? null;\n});\nfunction an(e) {\n return /* @__PURE__ */ Qc(jo, e);\n}\nconst Al = /* @__PURE__ */ p(\"ZodNumberFormat\", (e, t) => {\n rc.init(e, t), jo.init(e, t);\n});\nfunction Oi(e) {\n return /* @__PURE__ */ ef(Al, e);\n}\nconst Rl = /* @__PURE__ */ p(\"ZodBoolean\", (e, t) => {\n nc.init(e, t), V.init(e, t), e._zod.processJSONSchema = (r, n, i) => kf(e, r, n);\n});\nfunction ze(e) {\n return /* @__PURE__ */ tf(Rl, e);\n}\nconst Tl = /* @__PURE__ */ p(\"ZodUnknown\", (e, t) => {\n ic.init(e, t), V.init(e, t), e._zod.processJSONSchema = (r, n, i) => $f();\n});\nfunction Gt() {\n return /* @__PURE__ */ rf(Tl);\n}\nconst Pl = /* @__PURE__ */ p(\"ZodNever\", (e, t) => {\n oc.init(e, t), V.init(e, t), e._zod.processJSONSchema = (r, n, i) => Of(e, r, n);\n});\nfunction Lo(e) {\n return /* @__PURE__ */ nf(Pl, e);\n}\nconst Nl = /* @__PURE__ */ p(\"ZodArray\", (e, t) => {\n sc.init(e, t), V.init(e, t), e._zod.processJSONSchema = (r, n, i) => Tf(e, r, n, i), e.element = t.element, e.min = (r, n) => e.check(/* @__PURE__ */ Er(r, n)), e.nonempty = (r) => e.check(/* @__PURE__ */ Er(1, r)), e.max = (r, n) => e.check(/* @__PURE__ */ To(r, n)), e.length = (r, n) => e.check(/* @__PURE__ */ Po(r, n)), e.unwrap = () => e.element;\n});\nfunction He(e, t) {\n return /* @__PURE__ */ gf(Nl, e, t);\n}\nconst Fo = /* @__PURE__ */ p(\"ZodObject\", (e, t) => {\n uc.init(e, t), V.init(e, t), e._zod.processJSONSchema = (r, n, i) => Pf(e, r, n, i), T(e, \"shape\", () => t.shape), e.keyof = () => Ie(Object.keys(e._zod.def.shape)), e.catchall = (r) => e.clone({ ...e._zod.def, catchall: r }), e.passthrough = () => e.clone({ ...e._zod.def, catchall: Gt() }), e.loose = () => e.clone({ ...e._zod.def, catchall: Gt() }), e.strict = () => e.clone({ ...e._zod.def, catchall: Lo() }), e.strip = () => e.clone({ ...e._zod.def, catchall: void 0 }), e.extend = (r) => Aa(e, r), e.safeExtend = (r) => Ra(e, r), e.merge = (r) => Ta(e, r), e.pick = (r) => Ea(e, r), e.omit = (r) => Ia(e, r), e.partial = (...r) => Pa(Wo, e, r[0]), e.required = (...r) => Na(Jo, e, r[0]);\n});\nfunction ce(e, t) {\n const r = {\n type: \"object\",\n shape: e ?? {},\n ...y(t)\n };\n return new Fo(r);\n}\nfunction Zl(e, t) {\n return new Fo({\n type: \"object\",\n shape: e,\n catchall: Gt(),\n ...y(t)\n });\n}\nconst xo = /* @__PURE__ */ p(\"ZodUnion\", (e, t) => {\n Ao.init(e, t), V.init(e, t), e._zod.processJSONSchema = (r, n, i) => Nf(e, r, n, i), e.options = t.options;\n});\nfunction qo(e, t) {\n return new xo({\n type: \"union\",\n options: e,\n ...y(t)\n });\n}\nconst Ml = /* @__PURE__ */ p(\"ZodDiscriminatedUnion\", (e, t) => {\n xo.init(e, t), cc.init(e, t);\n});\nfunction Uo(e, t, r) {\n return new Ml({\n type: \"union\",\n options: t,\n discriminator: e,\n ...y(r)\n });\n}\nconst Dl = /* @__PURE__ */ p(\"ZodIntersection\", (e, t) => {\n fc.init(e, t), V.init(e, t), e._zod.processJSONSchema = (r, n, i) => Zf(e, r, n, i);\n});\nfunction Cl(e, t) {\n return new Dl({\n type: \"intersection\",\n left: e,\n right: t\n });\n}\nconst jl = /* @__PURE__ */ p(\"ZodRecord\", (e, t) => {\n lc.init(e, t), V.init(e, t), e._zod.processJSONSchema = (r, n, i) => Mf(e, r, n, i), e.keyType = t.keyType, e.valueType = t.valueType;\n});\nfunction Xt(e, t, r) {\n return new jl({\n type: \"record\",\n keyType: e,\n valueType: t,\n ...y(r)\n });\n}\nconst un = /* @__PURE__ */ p(\"ZodEnum\", (e, t) => {\n hc.init(e, t), V.init(e, t), e._zod.processJSONSchema = (n, i, o) => Ef(e, n, i), e.enum = t.entries, e.options = Object.values(t.entries);\n const r = new Set(Object.keys(t.entries));\n e.extract = (n, i) => {\n const o = {};\n for (const s of n)\n if (r.has(s))\n o[s] = t.entries[s];\n else\n throw new Error(`Key ${s} not found in enum`);\n return new un({\n ...t,\n checks: [],\n ...y(i),\n entries: o\n });\n }, e.exclude = (n, i) => {\n const o = { ...t.entries };\n for (const s of n)\n if (r.has(s))\n delete o[s];\n else\n throw new Error(`Key ${s} not found in enum`);\n return new un({\n ...t,\n checks: [],\n ...y(i),\n entries: o\n });\n };\n});\nfunction Ie(e, t) {\n const r = Array.isArray(e) ? Object.fromEntries(e.map((n) => [n, n])) : e;\n return new un({\n type: \"enum\",\n entries: r,\n ...y(t)\n });\n}\nconst Ll = /* @__PURE__ */ p(\"ZodLiteral\", (e, t) => {\n pc.init(e, t), V.init(e, t), e._zod.processJSONSchema = (r, n, i) => If(e, r, n), e.values = new Set(t.values), Object.defineProperty(e, \"value\", {\n get() {\n if (t.values.length > 1)\n throw new Error(\"This schema contains multiple valid literal values. Use `.values` instead.\");\n return t.values[0];\n }\n });\n});\nfunction st(e, t) {\n return new Ll({\n type: \"literal\",\n values: Array.isArray(e) ? e : [e],\n ...y(t)\n });\n}\nconst Fl = /* @__PURE__ */ p(\"ZodTransform\", (e, t) => {\n dc.init(e, t), V.init(e, t), e._zod.processJSONSchema = (r, n, i) => Rf(e, r), e._zod.parse = (r, n) => {\n if (n.direction === \"backward\")\n throw new co(e.constructor.name);\n r.addIssue = (o) => {\n if (typeof o == \"string\")\n r.issues.push(Yt(o, r.value, t));\n else {\n const s = o;\n s.fatal && (s.continue = !1), s.code ?? (s.code = \"custom\"), s.input ?? (s.input = r.value), s.inst ?? (s.inst = e), r.issues.push(Yt(s));\n }\n };\n const i = t.transform(r.value, r);\n return i instanceof Promise ? i.then((o) => (r.value = o, r)) : (r.value = i, r);\n };\n});\nfunction Bo(e) {\n return new Fl({\n type: \"transform\",\n transform: e\n });\n}\nconst Wo = /* @__PURE__ */ p(\"ZodOptional\", (e, t) => {\n Ro.init(e, t), V.init(e, t), e._zod.processJSONSchema = (r, n, i) => Do(e, r, n, i), e.unwrap = () => e._zod.def.innerType;\n});\nfunction $i(e) {\n return new Wo({\n type: \"optional\",\n innerType: e\n });\n}\nconst xl = /* @__PURE__ */ p(\"ZodExactOptional\", (e, t) => {\n _c.init(e, t), V.init(e, t), e._zod.processJSONSchema = (r, n, i) => Do(e, r, n, i), e.unwrap = () => e._zod.def.innerType;\n});\nfunction ql(e) {\n return new xl({\n type: \"optional\",\n innerType: e\n });\n}\nconst Ul = /* @__PURE__ */ p(\"ZodNullable\", (e, t) => {\n gc.init(e, t), V.init(e, t), e._zod.processJSONSchema = (r, n, i) => Df(e, r, n, i), e.unwrap = () => e._zod.def.innerType;\n});\nfunction Ei(e) {\n return new Ul({\n type: \"nullable\",\n innerType: e\n });\n}\nconst Bl = /* @__PURE__ */ p(\"ZodDefault\", (e, t) => {\n mc.init(e, t), V.init(e, t), e._zod.processJSONSchema = (r, n, i) => jf(e, r, n, i), e.unwrap = () => e._zod.def.innerType, e.removeDefault = e.unwrap;\n});\nfunction Wl(e, t) {\n return new Bl({\n type: \"default\",\n innerType: e,\n get defaultValue() {\n return typeof t == \"function\" ? t() : po(t);\n }\n });\n}\nconst Jl = /* @__PURE__ */ p(\"ZodPrefault\", (e, t) => {\n vc.init(e, t), V.init(e, t), e._zod.processJSONSchema = (r, n, i) => Lf(e, r, n, i), e.unwrap = () => e._zod.def.innerType;\n});\nfunction Vl(e, t) {\n return new Jl({\n type: \"prefault\",\n innerType: e,\n get defaultValue() {\n return typeof t == \"function\" ? t() : po(t);\n }\n });\n}\nconst Jo = /* @__PURE__ */ p(\"ZodNonOptional\", (e, t) => {\n yc.init(e, t), V.init(e, t), e._zod.processJSONSchema = (r, n, i) => Cf(e, r, n, i), e.unwrap = () => e._zod.def.innerType;\n});\nfunction Kl(e, t) {\n return new Jo({\n type: \"nonoptional\",\n innerType: e,\n ...y(t)\n });\n}\nconst Hl = /* @__PURE__ */ p(\"ZodCatch\", (e, t) => {\n wc.init(e, t), V.init(e, t), e._zod.processJSONSchema = (r, n, i) => Ff(e, r, n, i), e.unwrap = () => e._zod.def.innerType, e.removeCatch = e.unwrap;\n});\nfunction Yl(e, t) {\n return new Hl({\n type: \"catch\",\n innerType: e,\n catchValue: typeof t == \"function\" ? t : () => t\n });\n}\nconst Gl = /* @__PURE__ */ p(\"ZodPipe\", (e, t) => {\n Sc.init(e, t), V.init(e, t), e._zod.processJSONSchema = (r, n, i) => xf(e, r, n, i), e.in = t.in, e.out = t.out;\n});\nfunction cn(e, t) {\n return new Gl({\n type: \"pipe\",\n in: e,\n out: t\n // ...util.normalizeParams(params),\n });\n}\nconst Xl = /* @__PURE__ */ p(\"ZodReadonly\", (e, t) => {\n bc.init(e, t), V.init(e, t), e._zod.processJSONSchema = (r, n, i) => qf(e, r, n, i), e.unwrap = () => e._zod.def.innerType;\n});\nfunction Ql(e) {\n return new Xl({\n type: \"readonly\",\n innerType: e\n });\n}\nconst eh = /* @__PURE__ */ p(\"ZodLazy\", (e, t) => {\n zc.init(e, t), V.init(e, t), e._zod.processJSONSchema = (r, n, i) => Uf(e, r, n, i), e.unwrap = () => e._zod.def.getter();\n});\nfunction th(e) {\n return new eh({\n type: \"lazy\",\n getter: e\n });\n}\nconst rh = /* @__PURE__ */ p(\"ZodCustom\", (e, t) => {\n kc.init(e, t), V.init(e, t), e._zod.processJSONSchema = (r, n, i) => Af(e, r);\n});\nfunction nh(e, t = {}) {\n return /* @__PURE__ */ mf(rh, e, t);\n}\nfunction ih(e) {\n return /* @__PURE__ */ vf(e);\n}\nfunction oh(e, t) {\n return cn(Bo(e), t);\n}\nconst sh = ce({\n /** The table view type */\n view: Ie([\"list\", \"uncounted\", \"list-expansion\", \"tree\", \"gantt\", \"tree-gantt\"]).optional(),\n /** Allow the table to use the full width of its container */\n fullWidth: ze().optional(),\n /** Default expansion state for tree views */\n defaultTreeExpansion: Ie([\"root\", \"branch\", \"leaf\"]).optional(),\n /** Enable dependency graph connections for Gantt views */\n dependencyGraph: ze().optional()\n}).meta({\n title: \"TableViewConfig\",\n description: \"JSON-safe view configuration for table fields in doctype authoring\"\n}), ah = qo([\n He(I()),\n // Select choices: [\"A\", \"B\", \"C\"]\n Xt(I(), Gt())\n // Config: \\{ precision: 10, scale: 2 \\}\n]).meta({\n title: \"FieldOptions\",\n description: \"Field options - flexible bag for type-specific configuration\"\n}), uh = Zl({\n /** Error message to display when validation fails */\n errorMessage: I()\n}).meta({\n title: \"FieldValidation\",\n description: \"Validation configuration for form fields\"\n});\nfunction Vo(e) {\n if (typeof e != \"object\" || e === null || Array.isArray(e)) return e;\n const t = e;\n return \"kind\" in t ? e : \"schema\" in t ? { kind: \"fieldset\", ...t } : \"columns\" in t ? { kind: \"table\", ...t } : { kind: \"field\", ...t };\n}\nfunction Ko(e) {\n const t = Vo(e);\n if (typeof t != \"object\" || t === null) return t;\n const r = t;\n return r.kind === \"fieldset\" && Array.isArray(r.schema) ? { ...r, schema: r.schema.map(Ko) } : t;\n}\nfunction ch() {\n const e = ce({\n kind: st(\"field\"),\n fieldname: I().min(1),\n component: I().min(1),\n primaryKey: ze().optional(),\n computed: ze().optional(),\n language: I().optional(),\n doctype: I().min(1).optional(),\n label: I().optional(),\n width: I().optional(),\n align: Ie([\"left\", \"center\", \"right\", \"start\", \"end\"]).optional(),\n edit: ze().optional(),\n mask: I().optional(),\n format: I().optional(),\n mode: Ie([\"edit\", \"read\", \"display\"]).optional(),\n options: ah.optional(),\n required: ze().optional(),\n readOnly: ze().optional(),\n hidden: ze().optional(),\n default: Gt().optional(),\n validation: uh.optional(),\n cardinality: Ie([\"atMostOne\", \"one\", \"noneOrMany\", \"atLeastOne\"]).optional(),\n source: st(\"introspected\").optional()\n }).meta({ title: \"ValueField\" }), t = ce({\n kind: st(\"table\"),\n fieldname: I().min(1),\n component: I().optional(),\n label: I().optional(),\n // Validates that each column has fieldname; allows all other ColumnSchema properties\n columns: He(ce({ fieldname: I().min(1) }).passthrough()),\n config: sh.optional(),\n mode: Ie([\"edit\", \"read\", \"display\"]).optional()\n }).meta({ title: \"TableField\" });\n let r = Lo();\n const n = ce({\n kind: st(\"fieldset\"),\n fieldname: I().min(1),\n component: I().optional(),\n label: I().optional(),\n collapsible: ze().optional(),\n mode: Ie([\"edit\", \"read\", \"display\"]).optional(),\n schema: th(() => r.array())\n }).meta({ title: \"FieldsetField\" }), i = Uo(\"kind\", [e, n, t]);\n return r = oh(Vo, i), { ValueFieldSchema: e, TableFieldSchema: t, FieldsetFieldSchema: n, DoctypeFieldSchema: r };\n}\nconst fh = ch(), lh = fh.DoctypeFieldSchema, hh = Ie([\"atMostOne\", \"one\", \"noneOrMany\", \"atLeastOne\"]).meta({\n title: \"Cardinality\",\n description: \"Cardinality for relationship links between doctypes\"\n}), ph = ce({\n /** Fetch method type */\n method: st(\"sync\"),\n /** Optional limit on number of records to fetch */\n limit: an().int().positive().optional()\n}).meta({\n title: \"SyncFetch\",\n description: \"Sync fetch strategy - data is fetched in the initial query\"\n}), dh = ce({\n /** Fetch method type */\n method: st(\"lazy\")\n}).meta({\n title: \"LazyFetch\",\n description: \"Lazy fetch strategy - data is fetched on demand in a separate query\"\n}), _h = ce({\n /** Fetch method type */\n method: st(\"custom\"),\n /** Serialized handler function to invoke */\n handler: I()\n}).meta({\n title: \"CustomFetch\",\n description: \"Custom fetch strategy - uses a custom handler function\"\n}), gh = Uo(\"method\", [ph, dh, _h]).meta({\n title: \"FetchStrategy\",\n description: \"Fetch strategy for link data loading\"\n}), mh = ce({\n /** Target doctype slug */\n target: I().min(1),\n /** Cardinality of the relationship */\n cardinality: hh,\n /** Backlink fieldname on the target doctype that points back to this link */\n backlink: I().optional(),\n /** Override default rendering component (AForm for 1:1, ATable for 1:many) */\n component: I().optional(),\n /** Fieldname of the corresponding Link field in the fields array */\n fieldname: I().min(1).optional(),\n /** Fetch strategy for loading nested data */\n fetch: gh.optional(),\n /** Whether to block workflow actions until nested data is loaded (default: true) */\n blockWorkflows: ze().optional()\n}).meta({\n title: \"LinkDeclaration\",\n description: \"Declares a relationship from one doctype to another\"\n}), vh = ce({\n /** Display label for the action */\n label: I().min(1),\n /** Fields that must have values before action can execute */\n requiredFields: He(I()).optional(),\n /** Workflow states where this action is available */\n allowedStates: He(I()).optional(),\n /** The state the record transitions to after this action executes */\n nextState: I().optional(),\n /** True for stateless command actions with no workflow effect at all (print, email, etc.) */\n stateless: ze().optional(),\n /**\n * True for an internal self-transition: the action runs within the current state without\n * advancing the workflow (e.g. `save`, which mutates record data but stays put). Scoped by\n * `allowedStates`, rendered as a self-loop in the graph, and has no `nextState`. Distinct from\n * `stateless` (which has no workflow presence at all): a self-transition is graph-owned and,\n * unlike a stateless command, persists record data on dispatch.\n */\n selfTransition: ze().optional(),\n /** JS function body stored as a string; executed client-side via AsyncFunction with injected API surface */\n clientHandler: I().optional()\n}).meta({\n title: \"ActionDefinition\",\n description: \"Action definition within a workflow\"\n}), yh = ce({\n /** Optional display label; the map key is the trigger's identity */\n label: I().optional(),\n /** Fieldnames whose edits fire this trigger (fires when any listed field changes) */\n on: He(I()),\n /** JS function body stored as a string; run client-side with `{ record, value, setError }`. Advisory. */\n clientHandler: I()\n}).meta({\n title: \"TriggerDefinition\",\n description: \"Reactive field-validation trigger — advisory client-side\"\n});\nfunction Ii(e, t) {\n const r = e.allowedStates;\n return !r || r.length === 0 ? !0 : r.includes(t);\n}\nconst wh = Xt(\n I(),\n ce({\n position: ce({ x: an(), y: an() }).optional(),\n targetPosition: Ie([\"left\", \"top\", \"right\", \"bottom\"]).optional(),\n sourcePosition: Ie([\"left\", \"top\", \"right\", \"bottom\"]).optional()\n })\n), Sh = ce({\n /** List of workflow states */\n states: He(I()).optional(),\n /** Actions available in this workflow */\n actions: Xt(I(), vh).optional(),\n /** Reactive field-validation triggers (advisory, client-side), keyed by trigger name */\n triggers: Xt(I(), yh).optional(),\n /**\n * DocBuilder node positions keyed by state name — authoring view-state. Persisted here so a\n * doctype author's manual graph arrangement survives reloads; like `triggers`, it is client-only\n * and never enters the runtime GraphQL SDL. See {@link (WorkflowLayout:variable)}.\n */\n layout: wh.optional()\n}).meta({\n title: \"WorkflowMeta\",\n description: \"Workflow metadata - states and actions for a doctype\"\n});\nce({\n /** Display name of the doctype */\n name: I().min(1),\n /** URL-friendly slug (kebab-case) */\n slug: I().min(1).optional(),\n /** Field definitions (a link field is one carrying `doctype`) */\n fields: He(lh),\n /** Relationship links to other doctypes */\n links: Xt(I(), mh).optional(),\n /** Workflow configuration */\n workflow: Sh.optional(),\n /** Parent doctype for inheritance */\n inherits: I().optional()\n}).meta({\n title: \"DoctypeMeta\",\n description: \"Doctype metadata - complete definition of a doctype\"\n});\nconst Ho = {\n ATextInput: \"text\",\n ATextarea: \"text\",\n ANumericInput: \"number\",\n ACheckbox: \"boolean\",\n ADate: \"date\",\n ADatePicker: \"date\",\n ADateSelection: \"date\",\n ADateTime: \"datetime\",\n ADuration: \"text\",\n ADateRange: \"date\",\n ADropdown: \"select\",\n ACodeEditor: \"code\",\n AFormLink: \"link\",\n AFileAttach: \"attach\"\n};\nfunction bh(e) {\n return e ? Ho[e] : void 0;\n}\nconst Yo = {\n AFormLink: \"inline\",\n AForm: \"expand\",\n ATable: \"expand\"\n};\nfunction $n(e) {\n return e ? Yo[e] : void 0;\n}\nfunction Ai(e, t) {\n return $n(e.component ?? t) === \"inline\" ? \"inline\" : e.cardinality === \"noneOrMany\" || e.cardinality === \"atLeastOne\" ? \"table\" : \"record\";\n}\n[\n .../* @__PURE__ */ new Set([...Object.keys(Ho), ...Object.keys(Yo)])\n].toSorted();\nvar Ar = \"@@__IMMUTABLE_INDEXED__@@\";\nfunction Oe(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[Ar]);\n}\nvar Rr = \"@@__IMMUTABLE_KEYED__@@\";\nfunction U(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[Rr]);\n}\nfunction En(e) {\n return U(e) || Oe(e);\n}\nvar Go = \"@@__IMMUTABLE_ITERABLE__@@\";\nfunction ye(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[Go]);\n}\nvar oe = function(t) {\n return ye(t) ? t : pe(t);\n}, Ee = /* @__PURE__ */ (function(e) {\n function t(r) {\n return U(r) ? r : rt(r);\n }\n return e && (t.__proto__ = e), t.prototype = Object.create(e && e.prototype), t.prototype.constructor = t, t;\n})(oe), ut = /* @__PURE__ */ (function(e) {\n function t(r) {\n return Oe(r) ? r : Ae(r);\n }\n return e && (t.__proto__ = e), t.prototype = Object.create(e && e.prototype), t.prototype.constructor = t, t;\n})(oe), Tt = /* @__PURE__ */ (function(e) {\n function t(r) {\n return ye(r) && !En(r) ? r : Zt(r);\n }\n return e && (t.__proto__ = e), t.prototype = Object.create(e && e.prototype), t.prototype.constructor = t, t;\n})(oe);\noe.Keyed = Ee;\noe.Indexed = ut;\noe.Set = Tt;\nvar Pt = 0, we = 1, Se = 2, fn = typeof Symbol == \"function\" && Symbol.iterator, Xo = \"@@iterator\", Cr = fn || Xo, Z = function(t) {\n this.next = t;\n};\nZ.prototype.toString = function() {\n return \"[Iterator]\";\n};\nZ.KEYS = Pt;\nZ.VALUES = we;\nZ.ENTRIES = Se;\nZ.prototype.inspect = Z.prototype.toSource = function() {\n return this.toString();\n};\nZ.prototype[Cr] = function() {\n return this;\n};\nfunction B(e, t, r, n) {\n var i = e === Pt ? t : e === we ? 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 le() {\n return { value: void 0, done: !0 };\n}\nfunction Qo(e) {\n return Array.isArray(e) ? !0 : !!jr(e);\n}\nfunction Ri(e) {\n return !!(e && // @ts-expect-error: maybeIterator is typed as `{}`\n typeof e.next == \"function\");\n}\nfunction ln(e) {\n var t = jr(e);\n return t && t.call(e);\n}\nfunction jr(e) {\n var t = e && // @ts-expect-error: maybeIterator is typed as `{}`\n (fn && e[fn] || // @ts-expect-error: maybeIterator is typed as `{}`\n e[Xo]);\n if (typeof t == \"function\")\n return t;\n}\nfunction zh(e) {\n var t = jr(e);\n return t && t === e.entries;\n}\nfunction kh(e) {\n var t = jr(e);\n return t && t === e.keys;\n}\nvar sr = \"delete\", j = 5, me = 1 << j, fe = me - 1, P = {};\nfunction hn() {\n return { value: !1 };\n}\nfunction ke(e) {\n e && (e.value = !0);\n}\nfunction In() {\n}\nfunction St(e) {\n return e.size === void 0 && (e.size = e.__iterate(es)), e.size;\n}\nfunction Ye(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 ? St(e) + t : t;\n}\nfunction es() {\n return !0;\n}\nfunction Lr(e, t, r) {\n return (e === 0 && !rs(e) || r !== void 0 && e <= -r) && (t === void 0 || r !== void 0 && t >= r);\n}\nfunction ar(e, t) {\n return ts(e, t, 0);\n}\nfunction Fr(e, t) {\n return ts(e, t, t);\n}\nfunction ts(e, t, r) {\n return e === void 0 ? r : rs(e) ? t === 1 / 0 ? t : Math.max(0, t + e) | 0 : t === void 0 || t === e ? e : Math.min(t, e) | 0;\n}\nfunction rs(e) {\n return e < 0 || e === 0 && 1 / e === -1 / 0;\n}\nvar ns = \"@@__IMMUTABLE_RECORD__@@\";\nfunction ct(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[ns]);\n}\nfunction Me(e) {\n return ye(e) || ct(e);\n}\nvar Ge = \"@@__IMMUTABLE_ORDERED__@@\";\nfunction Ze(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[Ge]);\n}\nvar is = \"@@__IMMUTABLE_SEQ__@@\";\nfunction An(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[is]);\n}\nvar Nt = Object.prototype.hasOwnProperty;\nfunction os(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 pe = /* @__PURE__ */ (function(e) {\n function t(r) {\n return r == null ? Tn() : Me(r) ? r.toSeq() : $h(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 Z(function() {\n if (a === s)\n return le();\n var u = o[i ? s - ++a : a++];\n return B(n, u[0], u[1]);\n });\n }\n return this.__iteratorUncached(n, i);\n }, t;\n})(oe), rt = /* @__PURE__ */ (function(e) {\n function t(r) {\n return r == null ? Tn().toKeyedSeq() : ye(r) ? U(r) ? r.toSeq() : r.fromEntrySeq() : ct(r) ? r.toSeq() : Pn(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})(pe), Ae = /* @__PURE__ */ (function(e) {\n function t(r) {\n return r == null ? Tn() : ye(r) ? U(r) ? r.entrySeq() : r.toIndexedSeq() : ct(r) ? r.toSeq().entrySeq() : ss(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})(pe), Zt = /* @__PURE__ */ (function(e) {\n function t(r) {\n return (ye(r) && !En(r) ? r : Ae(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})(pe);\npe.isSeq = An;\npe.Keyed = rt;\npe.Set = Zt;\npe.Indexed = Ae;\npe.prototype[is] = !0;\nvar bt = /* @__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[Ye(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 Z(function() {\n if (a === s)\n return le();\n var u = i ? s - ++a : a++;\n return B(n, u, o[u]);\n });\n }, t;\n})(Ae), Rn = /* @__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 Nt.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 Z(function() {\n if (u === a)\n return le();\n var c = s[i ? a - ++u : u++];\n return B(n, c, o[c]);\n });\n }, t;\n})(rt);\nRn.prototype[Ge] = !0;\nvar Oh = /* @__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 = ln(o), a = 0;\n if (Ri(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 = ln(o);\n if (!Ri(s))\n return new Z(le);\n var a = 0;\n return new Z(function() {\n var u = s.next();\n return u.done ? u : B(n, a++, u.value);\n });\n }, t;\n})(Ae), Ti;\nfunction Tn() {\n return Ti || (Ti = new bt([]));\n}\nfunction Pn(e) {\n var t = Nn(e);\n if (t)\n return t.fromEntrySeq();\n if (typeof e == \"object\")\n return new Rn(e);\n throw new TypeError(\n \"Expected Array or collection object of [k, v] entries, or keyed object: \" + e\n );\n}\nfunction ss(e) {\n var t = Nn(e);\n if (t)\n return t;\n throw new TypeError(\n \"Expected Array or collection object of values: \" + e\n );\n}\nfunction $h(e) {\n var t = Nn(e);\n if (t)\n return zh(e) ? t.fromEntrySeq() : kh(e) ? t.toSetSeq() : t;\n if (typeof e == \"object\")\n return new Rn(e);\n throw new TypeError(\n \"Expected Array or collection object of values, or keyed object: \" + e\n );\n}\nfunction Nn(e) {\n return os(e) ? new bt(e) : Qo(e) ? new Oh(e) : void 0;\n}\nfunction ur() {\n return this.__ensureOwner();\n}\nfunction cr() {\n return this.__ownerID ? this : this.__ensureOwner(new In());\n}\nvar Ft = 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 xr(e) {\n return e >>> 1 & 1073741824 | e & 3221225471;\n}\nvar Eh = Object.prototype.valueOf;\nfunction _e(e) {\n if (e == null)\n return Pi(e);\n if (typeof e.hashCode == \"function\")\n return xr(e.hashCode(e));\n var t = Nh(e);\n if (t == null)\n return Pi(t);\n switch (typeof t) {\n case \"boolean\":\n return t ? 1108378657 : 1108378656;\n case \"number\":\n return Ih(t);\n case \"string\":\n return t.length > Zh ? Ah(t) : pn(t);\n case \"object\":\n case \"function\":\n return Th(t);\n case \"symbol\":\n return Rh(t);\n default:\n if (typeof t.toString == \"function\")\n return pn(t.toString());\n throw new Error(\"Value type \" + typeof t + \" cannot be hashed.\");\n }\n}\nfunction Pi(e) {\n return e === null ? 1108378658 : (\n /* undefined */\n 1108378659\n );\n}\nfunction Ih(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 xr(t);\n}\nfunction Ah(e) {\n var t = Qr[e];\n return t === void 0 && (t = pn(e), Xr === Mh && (Xr = 0, Qr = {}), Xr++, Qr[e] = t), t;\n}\nfunction pn(e) {\n for (var t = 0, r = 0; r < e.length; r++)\n t = 31 * t + e.charCodeAt(r) | 0;\n return xr(t);\n}\nfunction Rh(e) {\n var t = Mi[e];\n return t !== void 0 || (t = as(), Mi[e] = t), t;\n}\nfunction Th(e) {\n var t;\n if (dn && (t = _n.get(e), t !== void 0) || (t = e[it], t !== void 0) || !Zi && (t = e.propertyIsEnumerable && e.propertyIsEnumerable[it], t !== void 0 || (t = Ph(e), t !== void 0)))\n return t;\n if (t = as(), dn)\n _n.set(e, t);\n else {\n if (Ni !== void 0 && Ni(e) === !1)\n throw new Error(\"Non-extensible objects are not allowed as keys.\");\n if (Zi)\n Object.defineProperty(e, it, {\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[it] = t;\n else if (e.nodeType !== void 0)\n e[it] = t;\n else\n throw new Error(\"Unable to set a non-enumerable property on object.\");\n }\n return t;\n}\nvar Ni = Object.isExtensible, Zi = (function() {\n try {\n return Object.defineProperty({}, \"@\", {}), !0;\n } catch {\n return !1;\n }\n})();\nfunction Ph(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 Nh(e) {\n return e.valueOf !== Eh && 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 as() {\n var e = ++Gr;\n return Gr & 1073741824 && (Gr = 0), e;\n}\nvar dn = typeof WeakMap == \"function\", _n;\ndn && (_n = /* @__PURE__ */ new WeakMap());\nvar Mi = /* @__PURE__ */ Object.create(null), Gr = 0, it = \"__immutablehash__\";\ntypeof Symbol == \"function\" && (it = Symbol(it));\nvar Zh = 16, Mh = 255, Xr = 0, Qr = {}, qr = /* @__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 = Zn(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 = hs(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})(rt);\nqr.prototype[Ge] = !0;\nvar us = /* @__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 && St(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(we, i), a = 0;\n return i && St(this), new Z(function() {\n var u = s.next();\n return u.done ? u : B(\n n,\n i ? o.size - ++a : a++,\n u.value,\n u\n );\n });\n }, t;\n})(Ae), cs = /* @__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(we, i);\n return new Z(function() {\n var s = o.next();\n return s.done ? s : B(n, s.value, s.value, s);\n });\n }, t;\n})(Zt), fs = /* @__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 Ci(s);\n var a = ye(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(we, i);\n return new Z(function() {\n for (; ; ) {\n var s = o.next();\n if (s.done)\n return s;\n var a = s.value;\n if (a) {\n Ci(a);\n var u = ye(a);\n return B(\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})(rt);\nus.prototype.cacheResult = qr.prototype.cacheResult = cs.prototype.cacheResult = fs.prototype.cacheResult = Cn;\nfunction ls(e) {\n var t = De(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 = Cn, 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 === Se) {\n var i = e.__iterator(r, n);\n return new Z(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 === we ? Pt : we,\n n\n );\n }, t;\n}\nfunction hs(e, t, r) {\n var n = De(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, P);\n return s === P ? 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(Se, o);\n return new Z(function() {\n var a = s.next();\n if (a.done)\n return a;\n var u = a.value, c = u[0];\n return B(\n i,\n c,\n t.call(r, u[1], c, e),\n a\n );\n });\n }, n;\n}\nfunction Zn(e, t) {\n var r = this, n = De(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 = ls(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 = Cn, n.__iterate = function(i, o) {\n var s = this, a = 0;\n return o && St(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 && St(e);\n var a = e.__iterator(Se, !o);\n return new Z(function() {\n var u = a.next();\n if (u.done)\n return u;\n var c = u.value;\n return B(\n i,\n t ? c[0] : o ? r.size - ++s : s++,\n c[1],\n u\n );\n });\n }, n;\n}\nfunction ps(e, t, r, n) {\n var i = De(e);\n return n && (i.has = function(o) {\n var s = e.get(o, P);\n return s !== P && !!t.call(r, s, o, e);\n }, i.get = function(o, s) {\n var a = e.get(o, P);\n return a !== P && 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, l) {\n if (t.call(r, c, f, l))\n return u++, o(c, n ? f : u - 1, a);\n }, s), u;\n }, i.__iteratorUncached = function(o, s) {\n var a = e.__iterator(Se, s), u = 0;\n return new Z(function() {\n for (; ; ) {\n var c = a.next();\n if (c.done)\n return c;\n var f = c.value, l = f[0], h = f[1];\n if (t.call(r, h, l, e))\n return B(o, n ? l : u++, h, c);\n }\n });\n }, i;\n}\nfunction Dh(e, t, r) {\n var n = Qe().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 Ch(e, t, r) {\n var n = U(e), i = (Ze(e) ? xe() : Qe()).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 = Dn(e);\n return i.map(function(s) {\n return C(e, o(s));\n }).asImmutable();\n}\nfunction jh(e, t, r) {\n var n = U(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 = Dn(e);\n return i.map(function(s) {\n return C(e, o(s));\n });\n}\nfunction Mn(e, t, r, n) {\n var i = e.size;\n if (Lr(t, r, i))\n return e;\n if (typeof i > \"u\" && (t < 0 || r < 0))\n return Mn(e.toSeq().cacheResult(), t, r, n);\n var o = ar(t, i), s = Fr(r, i), a = s - o, u;\n a === a && (u = a < 0 ? 0 : a);\n var c = De(e);\n return c.size = u === 0 ? u : e.size && u || void 0, !n && An(e) && u >= 0 && (c.get = function(f, l) {\n return f = Ye(this, f), f >= 0 && f < u ? e.get(f + o, l) : l;\n }), c.__iterateUncached = function(f, l) {\n var h = this;\n if (u === 0)\n return 0;\n if (l)\n return this.cacheResult().__iterate(f, l);\n var d = 0, _ = !0, g = 0;\n return e.__iterate(function(m, E) {\n if (!(_ && (_ = d++ < o)))\n return g++, f(m, n ? E : g - 1, h) !== !1 && g !== u;\n }), g;\n }, c.__iteratorUncached = function(f, l) {\n if (u !== 0 && l)\n return this.cacheResult().__iterator(f, l);\n if (u === 0)\n return new Z(le);\n var h = e.__iterator(f, l), d = 0, _ = 0;\n return new Z(function() {\n for (; d++ < o; )\n h.next();\n if (++_ > u)\n return le();\n var g = h.next();\n return n || f === we || g.done ? g : f === Pt ? B(f, _ - 1, void 0, g) : B(f, _ - 1, g.value[1], g);\n });\n }, c;\n}\nfunction Lh(e, t, r) {\n var n = De(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(Se, o), u = !0;\n return new Z(function() {\n if (!u)\n return le();\n var c = a.next();\n if (c.done)\n return c;\n var f = c.value, l = f[0], h = f[1];\n return t.call(r, h, l, s) ? i === Se ? c : B(i, l, h, c) : (u = !1, le());\n });\n }, n;\n}\nfunction ds(e, t, r, n) {\n var i = De(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, l, h) {\n if (!(u && (u = t.call(r, f, l, h))))\n return c++, o(f, n ? l : 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(Se, s), c = !0, f = 0;\n return new Z(function() {\n var l, h, d;\n do {\n if (l = u.next(), l.done)\n return n || o === we ? l : o === Pt ? B(o, f++, void 0, l) : B(o, f++, l.value[1], l);\n var _ = l.value;\n h = _[0], d = _[1], c && (c = t.call(r, d, h, a));\n } while (c);\n return o === Se ? l : B(o, h, d, l);\n });\n }, i;\n}\nvar Fh = /* @__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[Rr] = this._wrappedIterables[0][Rr], this[Ar] = this._wrappedIterables[0][Ar], this[Ge] = this._wrappedIterables[0][Ge];\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 = U(this), a = s ? Se : we, u = this._wrappedIterables[o].__iterator(\n a,\n i\n ), c = !0, f = 0; c; ) {\n for (var l = u.next(); l.done; ) {\n if (o++, o === this._wrappedIterables.length)\n return f;\n u = this._wrappedIterables[o].__iterator(\n a,\n i\n ), l = u.next();\n }\n var h = s ? n(l.value[1], l.value[0], this) : n(l.value, f, this);\n c = h !== !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 Z(le);\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 Z(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})(pe);\nfunction xh(e, t) {\n var r = U(e), n = [e].concat(t).map(function(o) {\n return ye(o) ? r && (o = Ee(o)) : o = r ? Pn(o) : ss(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 && U(i) || Oe(e) && Oe(i))\n return i;\n }\n return new Fh(n);\n}\nfunction _s(e, t, r) {\n var n = De(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(l, h) {\n return (!t || f < t) && ye(l) ? u(l, f + 1) : (s++, i(l, r ? h : 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 Z(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 === Se && (f = f[1]), (!t || a.length < t) && ye(f))\n a.push(s), s = f.__iterator(i, o);\n else\n return r ? c : B(i, u++, f, c);\n }\n return le();\n });\n }, n;\n}\nfunction qh(e, t, r) {\n var n = Dn(e);\n return e.toSeq().map(function(i, o) {\n return n(t.call(r, i, o, e));\n }).flatten(!0);\n}\nfunction Uh(e, t) {\n var r = De(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(we, i), s = 0, a;\n return new Z(function() {\n return (!a || s % 2) && (a = o.next(), a.done) ? a : s % 2 ? B(n, s++, t) : B(n, s++, a.value, a);\n });\n }, r;\n}\nfunction zt(e, t, r) {\n t || (t = gs);\n var n = U(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 ? rt(o) : Oe(e) ? Ae(o) : Zt(o);\n}\nfunction yr(e, t, r) {\n if (t || (t = gs), r) {\n var n = e.toSeq().map(function(i, o) {\n return [i, r(i, o, e)];\n }).reduce(function(i, o) {\n return Di(t, i[1], o[1]) ? o : i;\n });\n return n && n[0];\n }\n return e.reduce(function(i, o) {\n return Di(t, i, o) ? o : i;\n });\n}\nfunction Di(e, t, r) {\n var n = e(r, t);\n return n === 0 && r !== t && (r == null || r !== r) || n > 0;\n}\nfunction wr(e, t, r, n) {\n var i = De(e), o = new bt(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(we, 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(l) {\n return l = oe(l), ln(a ? l.reverse() : l);\n }\n ), c = 0, f = !1;\n return new Z(function() {\n var l;\n return f || (l = u.map(function(h) {\n return h.next();\n }), f = n ? l.every(function(h) {\n return h.done;\n }) : l.some(function(h) {\n return h.done;\n })), f ? le() : B(\n s,\n c++,\n t.apply(\n null,\n l.map(function(h) {\n return h.value;\n })\n )\n );\n });\n }, i;\n}\nfunction C(e, t) {\n return e === t ? e : An(e) ? t : e.constructor(t);\n}\nfunction Ci(e) {\n if (e !== Object(e))\n throw new TypeError(\"Expected [K, V] tuple: \" + e);\n}\nfunction Dn(e) {\n return U(e) ? Ee : Oe(e) ? ut : Tt;\n}\nfunction De(e) {\n return Object.create(\n (U(e) ? rt : Oe(e) ? Ae : Zt).prototype\n );\n}\nfunction Cn() {\n return this._iter.cacheResult ? (this._iter.cacheResult(), this.size = this._iter.size, this) : pe.prototype.cacheResult.call(this);\n}\nfunction gs(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 ji(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 ve(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 !!(ji(e) && ji(t) && e.equals(t));\n}\nfunction ms(e, t, r, n) {\n return Mt(\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 vs() {\n for (var e = [], t = arguments.length; t--; ) e[t] = arguments[t];\n return ws(this, e);\n}\nfunction ys(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 ws(this, t, e);\n}\nfunction ws(e, t, r) {\n for (var n = [], i = 0; i < t.length; i++) {\n var o = Ee(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 ? ct(e) ? e : e.constructor(n[0]) : e.withMutations(function(s) {\n for (var a = r ? function(c, f) {\n ms(\n s,\n f,\n P,\n function(l) {\n return l === P ? c : r(l, 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 Bh = Object.prototype.toString;\nfunction Wh(e) {\n if (!e || typeof e != \"object\" || Bh.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 Xe(e) {\n return typeof e == \"object\" && (Me(e) || Array.isArray(e) || Wh(e));\n}\nfunction Pe(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 Tr(e) {\n if (Array.isArray(e))\n return Pe(e);\n var t = {};\n for (var r in e)\n Nt.call(e, r) && (t[r] = e[r]);\n return t;\n}\nfunction jn(e, t, r) {\n return Ln(e, t, Jh(r));\n}\nfunction Ln(e, t, r) {\n if (!Xe(e))\n throw new TypeError(\n \"Cannot merge into non-data-structure value: \" + e\n );\n if (Me(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 ? ut : Ee, s = n ? function(u) {\n i === e && (i = Tr(i)), i.push(u);\n } : function(u, c) {\n var f = Nt.call(i, c), l = f && r ? r(i[c], u, c) : u;\n (!f || l !== i[c]) && (i === e && (i = Tr(i)), i[c] = l);\n }, a = 0; a < t.length; a++)\n o(t[a]).forEach(s);\n return i;\n}\nfunction Jh(e) {\n function t(r, n, i) {\n return Xe(r) && Xe(n) && Vh(r, n) ? Ln(r, [n], t) : e ? e(r, n, i) : n;\n }\n return t;\n}\nfunction Vh(e, t) {\n var r = pe(e), n = pe(t);\n return Oe(r) === Oe(n) && U(r) === U(n);\n}\nfunction Ss() {\n for (var e = [], t = arguments.length; t--; ) e[t] = arguments[t];\n return jn(this, e);\n}\nfunction bs(e) {\n for (var t = [], r = arguments.length - 1; r-- > 0; ) t[r] = arguments[r + 1];\n return jn(this, t, e);\n}\nfunction Fn(e) {\n for (var t = [], r = arguments.length - 1; r-- > 0; ) t[r] = arguments[r + 1];\n return Mt(\n this,\n e,\n Ne(),\n function(n) {\n return jn(n, t);\n }\n );\n}\nfunction xn(e) {\n for (var t = [], r = arguments.length - 1; r-- > 0; ) t[r] = arguments[r + 1];\n return Mt(this, e, Ne(), function(n) {\n return Ln(n, t);\n });\n}\nfunction Kh(e, t, r) {\n return Mt(e, t, P, function() {\n return r;\n });\n}\nfunction qn(e, t) {\n return Kh(this, e, t);\n}\nfunction Un(e, t, r) {\n return arguments.length === 1 ? e(this) : ms(this, e, t, r);\n}\nfunction Bn(e, t, r) {\n return Mt(this, e, t, r);\n}\nfunction Wn() {\n return this.__altered;\n}\nfunction fr(e) {\n var t = this.asMutable();\n return e(t), t.wasAltered() ? t.__ensureOwner(this.__ownerID) : this;\n}\nvar zs = \"@@__IMMUTABLE_MAP__@@\";\nfunction Jn(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[zs]);\n}\nfunction Jt(e, t) {\n if (!e)\n throw new Error(t);\n}\nfunction ge(e) {\n Jt(e !== 1 / 0, \"Cannot perform this action with an infinite size.\");\n}\nvar Qe = /* @__PURE__ */ (function(e) {\n function t(r) {\n return r == null ? Ne() : Jn(r) && !Ze(r) ? r : Ne().withMutations(function(n) {\n var i = e(r);\n ge(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 xi(this, n, i);\n }, t.prototype.remove = function(n) {\n return xi(this, n, P);\n }, t.prototype.deleteAll = function(n) {\n var i = oe(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) : Ne();\n }, t.prototype.sort = function(n) {\n return xe(zt(this, n));\n }, t.prototype.sortBy = function(n, i) {\n return xe(zt(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 Hh(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 ? Vn(this.size, this._root, n, this.__hash) : this.size === 0 ? Ne() : (this.__ownerID = n, this.__altered = !1, this);\n }, t;\n})(Ee);\nQe.isMap = Jn;\nvar q = Qe.prototype;\nq[zs] = !0;\nq[sr] = q.remove;\nq.removeAll = q.deleteAll;\nq.setIn = qn;\nq.removeIn = q.deleteIn = Yn;\nq.update = Un;\nq.updateIn = Bn;\nq.merge = q.concat = vs;\nq.mergeWith = ys;\nq.mergeDeep = Ss;\nq.mergeDeepWith = bs;\nq.mergeIn = xn;\nq.mergeDeepIn = Fn;\nq.withMutations = fr;\nq.wasAltered = Wn;\nq.asImmutable = ur;\nq[\"@@transducer/init\"] = q.asMutable = cr;\nq[\"@@transducer/step\"] = function(e, t) {\n return e.set(t[0], t[1]);\n};\nq[\"@@transducer/result\"] = function(e) {\n return e.asImmutable();\n};\nvar Qt = function(t, r) {\n this.ownerID = t, this.entries = r;\n};\nQt.prototype.get = function(t, r, n, i) {\n for (var o = this.entries, s = 0, a = o.length; s < a; s++)\n if (ve(n, o[s][0]))\n return o[s][1];\n return i;\n};\nQt.prototype.update = function(t, r, n, i, o, s, a) {\n for (var u = o === P, c = this.entries, f = 0, l = c.length; f < l && !ve(i, c[f][0]); f++)\n ;\n var h = f < l;\n if (h ? c[f][1] === o : u)\n return this;\n if (ke(a), (u || !h) && ke(s), !(u && c.length === 1)) {\n if (!h && !u && c.length >= tp)\n return Yh(t, c, i, o);\n var d = t && t === this.ownerID, _ = d ? c : Pe(c);\n return h ? u ? f === l - 1 ? _.pop() : _[f] = _.pop() : _[f] = [i, o] : _.push([i, o]), d ? (this.entries = _, this) : new Qt(t, _);\n }\n};\nvar kt = function(t, r, n) {\n this.ownerID = t, this.bitmap = r, this.nodes = n;\n};\nkt.prototype.get = function(t, r, n, i) {\n r === void 0 && (r = _e(n));\n var o = 1 << ((t === 0 ? r : r >>> t) & fe), s = this.bitmap;\n return (s & o) === 0 ? i : this.nodes[ks(s & o - 1)].get(\n t + j,\n r,\n n,\n i\n );\n};\nkt.prototype.update = function(t, r, n, i, o, s, a) {\n n === void 0 && (n = _e(i));\n var u = (r === 0 ? n : n >>> r) & fe, c = 1 << u, f = this.bitmap, l = (f & c) !== 0;\n if (!l && o === P)\n return this;\n var h = ks(f & c - 1), d = this.nodes, _ = l ? d[h] : void 0, g = Kn(\n _,\n t,\n r + j,\n n,\n i,\n o,\n s,\n a\n );\n if (g === _)\n return this;\n if (!l && g && d.length >= rp)\n return Xh(t, d, f, u, g);\n if (l && !g && d.length === 2 && qi(d[h ^ 1]))\n return d[h ^ 1];\n if (l && g && d.length === 1 && qi(g))\n return g;\n var m = t && t === this.ownerID, E = l ? g ? f : f ^ c : f | c, $ = l ? g ? Os(d, h, g, m) : ep(d, h, m) : Qh(d, h, g, m);\n return m ? (this.bitmap = E, this.nodes = $, this) : new kt(t, E, $);\n};\nvar er = function(t, r, n) {\n this.ownerID = t, this.count = r, this.nodes = n;\n};\ner.prototype.get = function(t, r, n, i) {\n r === void 0 && (r = _e(n));\n var o = (t === 0 ? r : r >>> t) & fe, s = this.nodes[o];\n return s ? s.get(t + j, r, n, i) : i;\n};\ner.prototype.update = function(t, r, n, i, o, s, a) {\n n === void 0 && (n = _e(i));\n var u = (r === 0 ? n : n >>> r) & fe, c = o === P, f = this.nodes, l = f[u];\n if (c && !l)\n return this;\n var h = Kn(\n l,\n t,\n r + j,\n n,\n i,\n o,\n s,\n a\n );\n if (h === l)\n return this;\n var d = this.count;\n if (!l)\n d++;\n else if (!h && (d--, d < np))\n return Gh(t, f, d, u);\n var _ = t && t === this.ownerID, g = Os(f, u, h, _);\n return _ ? (this.count = d, this.nodes = g, this) : new er(t, d, g);\n};\nvar Ot = function(t, r, n) {\n this.ownerID = t, this.keyHash = r, this.entries = n;\n};\nOt.prototype.get = function(t, r, n, i) {\n for (var o = this.entries, s = 0, a = o.length; s < a; s++)\n if (ve(n, o[s][0]))\n return o[s][1];\n return i;\n};\nOt.prototype.update = function(t, r, n, i, o, s, a) {\n n === void 0 && (n = _e(i));\n var u = o === P;\n if (n !== this.keyHash)\n return u ? this : (ke(a), ke(s), Hn(this, t, r, n, [i, o]));\n for (var c = this.entries, f = 0, l = c.length; f < l && !ve(i, c[f][0]); f++)\n ;\n var h = f < l;\n if (h ? c[f][1] === o : u)\n return this;\n if (ke(a), (u || !h) && ke(s), u && l === 2)\n return new Fe(t, this.keyHash, c[f ^ 1]);\n var d = t && t === this.ownerID, _ = d ? c : Pe(c);\n return h ? u ? f === l - 1 ? _.pop() : _[f] = _.pop() : _[f] = [i, o] : _.push([i, o]), d ? (this.entries = _, this) : new Ot(t, this.keyHash, _);\n};\nvar Fe = function(t, r, n) {\n this.ownerID = t, this.keyHash = r, this.entry = n;\n};\nFe.prototype.get = function(t, r, n, i) {\n return ve(n, this.entry[0]) ? this.entry[1] : i;\n};\nFe.prototype.update = function(t, r, n, i, o, s, a) {\n var u = o === P, c = ve(i, this.entry[0]);\n if (c ? o === this.entry[1] : u)\n return this;\n if (ke(a), u) {\n ke(s);\n return;\n }\n return c ? t && t === this.ownerID ? (this.entry[1] = o, this) : new Fe(t, this.keyHash, [i, o]) : (ke(s), Hn(this, t, r, _e(i), [i, o]));\n};\nQt.prototype.iterate = Ot.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};\nkt.prototype.iterate = er.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};\nFe.prototype.iterate = function(e, t) {\n return e(this.entry);\n};\nvar Hh = /* @__PURE__ */ (function(e) {\n function t(r, n, i) {\n this._type = n, this._reverse = i, this._stack = r._root && Li(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 en(n, o.entry);\n } else if (o.entries) {\n if (a = o.entries.length - 1, s <= a)\n return en(\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 en(n, u.entry);\n i = this._stack = Li(u, i);\n }\n continue;\n }\n i = this._stack = this._stack.__prev;\n }\n return le();\n }, t;\n})(Z);\nfunction en(e, t) {\n return B(e, t[0], t[1]);\n}\nfunction Li(e, t) {\n return {\n node: e,\n index: 0,\n __prev: t\n };\n}\nfunction Vn(e, t, r, n) {\n var i = Object.create(q);\n return i.size = e, i._root = t, i.__ownerID = r, i.__hash = n, i.__altered = !1, i;\n}\nvar Fi;\nfunction Ne() {\n return Fi || (Fi = Vn(0));\n}\nfunction xi(e, t, r) {\n var n, i;\n if (e._root) {\n var o = hn(), s = hn();\n if (n = Kn(\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 === P ? -1 : 1 : 0);\n } else {\n if (r === P)\n return e;\n i = 1, n = new Qt(e.__ownerID, [[t, r]]);\n }\n return e.__ownerID ? (e.size = i, e._root = n, e.__hash = void 0, e.__altered = !0, e) : n ? Vn(i, n) : Ne();\n}\nfunction Kn(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 === P ? e : (ke(a), ke(s), new Fe(t, n, [i, o]));\n}\nfunction qi(e) {\n return e.constructor === Fe || e.constructor === Ot;\n}\nfunction Hn(e, t, r, n, i) {\n if (e.keyHash === n)\n return new Ot(t, n, [e.entry, i]);\n var o = (r === 0 ? e.keyHash : e.keyHash >>> r) & fe, s = (r === 0 ? n : n >>> r) & fe, a, u = o === s ? [Hn(e, t, r + j, n, i)] : (a = new Fe(t, n, i), o < s ? [e, a] : [a, e]);\n return new kt(t, 1 << o | 1 << s, u);\n}\nfunction Yh(e, t, r, n) {\n e || (e = new In());\n for (var i = new Fe(e, _e(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 Gh(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 kt(e, i, s);\n}\nfunction Xh(e, t, r, n, i) {\n for (var o = 0, s = new Array(me), a = 0; r !== 0; a++, r >>>= 1)\n s[a] = r & 1 ? t[o++] : void 0;\n return s[n] = i, new er(e, o + 1, s);\n}\nfunction ks(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 Os(e, t, r, n) {\n var i = n ? e : Pe(e);\n return i[t] = r, i;\n}\nfunction Qh(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 ep(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 tp = me / 4, rp = me / 2, np = me / 4;\nfunction $s(e) {\n if (os(e) && typeof e != \"string\")\n return e;\n if (Ze(e))\n return e.toArray();\n throw new TypeError(\"Invalid keyPath: expected Ordered Collection or Array: \" + e);\n}\nfunction tr(e) {\n try {\n return typeof e == \"string\" ? JSON.stringify(e) : String(e);\n } catch {\n return JSON.stringify(e);\n }\n}\nfunction ip(e, t) {\n return Me(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 Xe(e) && Nt.call(e, t)\n );\n}\nfunction Es(e, t, r) {\n return Me(e) ? e.get(t, r) : ip(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 op(e, t) {\n if (!Xe(e))\n throw new TypeError(\"Cannot update non-data-structure value: \" + e);\n if (Me(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 (!Nt.call(e, t))\n return e;\n var r = Tr(e);\n return Array.isArray(r) ? r.splice(t, 1) : delete r[t], r;\n}\nfunction sp(e, t, r) {\n if (!Xe(e))\n throw new TypeError(\"Cannot update non-data-structure value: \" + e);\n if (Me(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 (Nt.call(e, t) && r === e[t])\n return e;\n var n = Tr(e);\n return n[t] = r, n;\n}\nfunction Mt(e, t, r, n) {\n n || (n = r, r = void 0);\n var i = Is(\n Me(e),\n // @ts-expect-error type issues with Record and mixed types\n e,\n $s(t),\n 0,\n r,\n n\n );\n return i === P ? r : i;\n}\nfunction Is(e, t, r, n, i, o) {\n var s = t === P;\n if (n === r.length) {\n var a = s ? i : t, u = o(a);\n return u === a ? t : u;\n }\n if (!s && !Xe(t))\n throw new TypeError(\"Cannot update within non-data-structure value in path [\" + Array.from(r).slice(0, n).map(tr) + \"]: \" + t);\n var c = r[n], f = s ? P : Es(t, c, P), l = Is(\n f === P ? e : Me(f),\n // @ts-expect-error mixed type\n f,\n r,\n n + 1,\n i,\n o\n );\n return l === f ? t : l === P ? op(t, c) : sp(s ? e ? Ne() : {} : t, c, l);\n}\nfunction ap(e, t) {\n return Mt(e, t, function() {\n return P;\n });\n}\nfunction Yn(e) {\n return ap(this, e);\n}\nvar As = \"@@__IMMUTABLE_LIST__@@\";\nfunction Rs(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[As]);\n}\nvar $t = /* @__PURE__ */ (function(e) {\n function t(r) {\n var n = zr();\n if (r == null)\n return n;\n if (Rs(r))\n return r;\n var i = e(r), o = i.size;\n return o === 0 ? n : (ge(o), o > 0 && o < me ? rr(0, o, j, null, new We(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 = Ye(this, n), n >= 0 && n < this.size) {\n n += this._origin;\n var o = Ts(this, n);\n return o && o.array[n & fe];\n }\n return i;\n }, t.prototype.set = function(n, i) {\n return up(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 = j, this._root = this._tail = this.__hash = void 0, this.__altered = !0, this) : zr();\n }, t.prototype.push = function() {\n var n = arguments, i = this.size;\n return this.withMutations(function(o) {\n qe(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 qe(this, 0, -1);\n }, t.prototype.unshift = function() {\n var n = arguments;\n return this.withMutations(function(i) {\n qe(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 qe(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\" && Qo(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 qe(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 Lr(n, i, o) ? this : qe(\n this,\n ar(n, o),\n Fr(i, o)\n );\n }, t.prototype.__iterator = function(n, i) {\n var o = i ? this.size : 0, s = Ui(this, i);\n return new Z(function() {\n var a = s();\n return a === Vt ? le() : B(n, i ? --o : o++, a);\n });\n }, t.prototype.__iterate = function(n, i) {\n for (var o = i ? this.size : 0, s = Ui(this, i), a; (a = s()) !== Vt && n(a, i ? --o : o++, this) !== !1; )\n ;\n return o;\n }, t.prototype.__ensureOwner = function(n) {\n return n === this.__ownerID ? this : n ? rr(\n this._origin,\n this._capacity,\n this._level,\n this._root,\n this._tail,\n n,\n this.__hash\n ) : this.size === 0 ? zr() : (this.__ownerID = n, this.__altered = !1, this);\n }, t;\n})(ut);\n$t.isList = Rs;\nvar Q = $t.prototype;\nQ[As] = !0;\nQ[sr] = Q.remove;\nQ.merge = Q.concat;\nQ.setIn = qn;\nQ.deleteIn = Q.removeIn = Yn;\nQ.update = Un;\nQ.updateIn = Bn;\nQ.mergeIn = xn;\nQ.mergeDeepIn = Fn;\nQ.withMutations = fr;\nQ.wasAltered = Wn;\nQ.asImmutable = ur;\nQ[\"@@transducer/init\"] = Q.asMutable = cr;\nQ[\"@@transducer/step\"] = function(e, t) {\n return e.push(t);\n};\nQ[\"@@transducer/result\"] = function(e) {\n return e.asImmutable();\n};\nvar We = function(t, r) {\n this.array = t, this.ownerID = r;\n};\nWe.prototype.removeBefore = function(t, r, n) {\n if ((n & (1 << r + j) - 1) === 0 || this.array.length === 0)\n return this;\n var i = n >>> r & fe;\n if (i >= this.array.length)\n return new We([], 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 - j, n), s === a && o)\n return this;\n }\n if (o && !s)\n return this;\n var u = Et(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};\nWe.prototype.removeAfter = function(t, r, n) {\n if (n === (r ? 1 << r + j : me) || this.array.length === 0)\n return this;\n var i = n - 1 >>> r & fe;\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 - j, n), o === s && i === this.array.length - 1)\n return this;\n }\n var a = Et(this, t);\n return a.array.splice(i + 1), o && (a.array[i] = o), a;\n};\nvar Vt = {};\nfunction Ui(e, t) {\n var r = e._origin, n = e._capacity, i = nr(n), o = e._tail;\n return s(e._root, e._level, 0);\n function s(c, f, l) {\n return f === 0 ? a(c, l) : u(c, f, l);\n }\n function a(c, f) {\n var l = f === i ? o && o.array : c && c.array, h = f > r ? 0 : r - f, d = n - f;\n return d > me && (d = me), function() {\n if (h === d)\n return Vt;\n var _ = t ? --d : h++;\n return l && l[_];\n };\n }\n function u(c, f, l) {\n var h, d = c && c.array, _ = l > r ? 0 : r - l >> f, g = (n - l >> f) + 1;\n return g > me && (g = me), function() {\n for (; ; ) {\n if (h) {\n var m = h();\n if (m !== Vt)\n return m;\n h = null;\n }\n if (_ === g)\n return Vt;\n var E = t ? --g : _++;\n h = s(\n d && d[E],\n f - j,\n l + (E << f)\n );\n }\n };\n }\n}\nfunction rr(e, t, r, n, i, o, s) {\n var a = Object.create(Q);\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 zr() {\n return rr(0, 0, j);\n}\nfunction up(e, t, r) {\n if (t = Ye(e, t), t !== t)\n return e;\n if (t >= e.size || t < 0)\n return e.withMutations(function(s) {\n t < 0 ? qe(s, t).set(0, r) : qe(s, 0, t + 1).set(t, r);\n });\n t += e._origin;\n var n = e._tail, i = e._root, o = hn();\n return t >= nr(e._capacity) ? n = gn(n, e.__ownerID, 0, t, r, o) : i = gn(\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) : rr(e._origin, e._capacity, e._level, i, n) : e;\n}\nfunction gn(e, t, r, n, i, o) {\n var s = n >>> r & fe, 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 = gn(\n c,\n t,\n r - j,\n n,\n i,\n o\n );\n return f === c ? e : (u = Et(e, t), u.array[s] = f, u);\n }\n return a && e.array[s] === i ? e : (o && ke(o), u = Et(e, t), i === void 0 && s === u.array.length - 1 ? u.array.pop() : u.array[s] = i, u);\n}\nfunction Et(e, t) {\n return t && e && t === e.ownerID ? e : new We(e ? e.array.slice() : [], t);\n}\nfunction Ts(e, t) {\n if (t >= nr(e._capacity))\n return e._tail;\n if (t < 1 << e._level + j) {\n for (var r = e._root, n = e._level; r && n > 0; )\n r = r.array[t >>> n & fe], n -= j;\n return r;\n }\n}\nfunction qe(e, t, r) {\n t !== void 0 && (t |= 0), r !== void 0 && (r |= 0);\n var n = e.__ownerID || new In(), 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 We(\n c && c.array.length ? [void 0, c] : [],\n n\n ), u += j, f += 1 << u;\n f && (s += f, i += f, a += f, o += f);\n for (var l = nr(o), h = nr(a); h >= 1 << u + j; )\n c = new We(\n c && c.array.length ? [c] : [],\n n\n ), u += j;\n var d = e._tail, _ = h < l ? Ts(e, a - 1) : h > l ? new We([], n) : d;\n if (d && h > l && s < o && d.array.length) {\n c = Et(c, n);\n for (var g = c, m = u; m > j; m -= j) {\n var E = l >>> m & fe;\n g = g.array[E] = Et(g.array[E], n);\n }\n g.array[l >>> j & fe] = d;\n }\n if (a < o && (_ = _ && _.removeAfter(n, 0, a)), s >= h)\n s -= h, a -= h, u = j, c = null, _ = _ && _.removeBefore(n, 0, s);\n else if (s > i || h < l) {\n for (f = 0; c; ) {\n var $ = s >>> u & fe;\n if ($ !== h >>> u & fe)\n break;\n $ && (f += (1 << u) * $), u -= j, c = c.array[$];\n }\n c && s > i && (c = c.removeBefore(n, u, s - f)), c && h < l && (c = c.removeAfter(\n n,\n u,\n h - 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 = _, e.__hash = void 0, e.__altered = !0, e) : rr(s, a, u, c, _);\n}\nfunction nr(e) {\n return e < me ? 0 : e - 1 >>> j << j;\n}\nfunction Ps(e) {\n return Jn(e) && Ze(e);\n}\nvar xe = /* @__PURE__ */ (function(e) {\n function t(r) {\n return r == null ? qt() : Ps(r) ? r : qt().withMutations(function(n) {\n var i = Ee(r);\n ge(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) : qt();\n }, t.prototype.set = function(n, i) {\n return Wi(this, n, i);\n }, t.prototype.remove = function(n) {\n return Wi(this, n, P);\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 ? Gn(i, o, n, this.__hash) : this.size === 0 ? qt() : (this.__ownerID = n, this.__altered = !1, this._map = i, this._list = o, this);\n }, t;\n})(Qe);\nxe.isOrderedMap = Ps;\nxe.prototype[Ge] = !0;\nxe.prototype[sr] = xe.prototype.remove;\nfunction Gn(e, t, r, n) {\n var i = Object.create(xe.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 Bi;\nfunction qt() {\n return Bi || (Bi = Gn(Ne(), zr()));\n}\nfunction Wi(e, t, r) {\n var n = e._map, i = e._list, o = n.get(t), s = o !== void 0, a, u;\n if (r === P) {\n if (!s)\n return e;\n i.size >= me && 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) : Gn(a, u);\n}\nvar Ns = \"@@__IMMUTABLE_STACK__@@\";\nfunction mn(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[Ns]);\n}\nvar Xn = /* @__PURE__ */ (function(e) {\n function t(r) {\n return r == null ? Sr() : mn(r) ? r : Sr().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 = Ye(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) : Ut(i, o);\n }, t.prototype.pushAll = function(n) {\n if (n = e(n), n.size === 0)\n return this;\n if (this.size === 0 && mn(n))\n return n;\n ge(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) : Ut(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) : Sr();\n }, t.prototype.slice = function(n, i) {\n if (Lr(n, i, this.size))\n return this;\n var o = ar(n, this.size), s = Fr(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) : Ut(a, u);\n }, t.prototype.__ensureOwner = function(n) {\n return n === this.__ownerID ? this : n ? Ut(this.size, this._head, n, this.__hash) : this.size === 0 ? Sr() : (this.__ownerID = n, this.__altered = !1, this);\n }, t.prototype.__iterate = function(n, i) {\n var o = this;\n if (i)\n return new bt(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 bt(this.toArray()).__iterator(n, i);\n var o = 0, s = this._head;\n return new Z(function() {\n if (s) {\n var a = s.value;\n return s = s.next, B(n, o++, a);\n }\n return le();\n });\n }, t;\n})(ut);\nXn.isStack = mn;\nvar he = Xn.prototype;\nhe[Ns] = !0;\nhe.shift = he.pop;\nhe.unshift = he.push;\nhe.unshiftAll = he.pushAll;\nhe.withMutations = fr;\nhe.wasAltered = Wn;\nhe.asImmutable = ur;\nhe[\"@@transducer/init\"] = he.asMutable = cr;\nhe[\"@@transducer/step\"] = function(e, t) {\n return e.unshift(t);\n};\nhe[\"@@transducer/result\"] = function(e) {\n return e.asImmutable();\n};\nfunction Ut(e, t, r, n) {\n var i = Object.create(he);\n return i.size = e, i._head = t, i.__ownerID = r, i.__hash = n, i.__altered = !1, i;\n}\nvar Ji;\nfunction Sr() {\n return Ji || (Ji = Ut(0));\n}\nfunction Vi(e, t, r, n, i, o) {\n return ge(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 cp(e, t) {\n return t;\n}\nfunction fp(e, t) {\n return [t, e];\n}\nfunction tn(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 Ki(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 Hi(e, t) {\n return e < t ? 1 : e > t ? -1 : 0;\n}\nfunction Zs(e, t) {\n if (e === t)\n return !0;\n if (!ye(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 || U(e) !== U(t) || Oe(e) !== Oe(t) || // @ts-expect-error Range extends Collection, which implements [Symbol.iterator], so it is valid\n Ze(e) !== Ze(t))\n return !1;\n if (e.size === 0 && t.size === 0)\n return !0;\n var r = !En(e);\n if (Ze(e)) {\n var n = e.entries();\n return t.every(function(u, c) {\n var f = n.next().value;\n return f && ve(f[1], u) && (r || ve(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 !ve(u, e.get(c, P))\n ) : (\n // @ts-expect-error type of `get` does not \"catch\" the version with `notSetValue`\n !ve(e.get(c, P), 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 lp = /* @__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 (Jt(i !== 0, \"Cannot step a Range by 0\"), Jt(\n r !== void 0,\n \"You must define a start value when using Range\"\n ), Jt(\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 (rn)\n return rn;\n rn = 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 + Ye(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 Lr(n, i, this.size) ? this : (n = ar(n, this.size), i = Fr(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 Z(function() {\n if (u === o)\n return le();\n var c = a;\n return a += i ? -s : s, B(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 : Zs(this, n);\n }, t;\n})(Ae), rn, Ms = \"@@__IMMUTABLE_SET__@@\";\nfunction Qn(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[Ms]);\n}\nvar Ur = /* @__PURE__ */ (function(e) {\n function t(r) {\n return r == null ? Bt() : Qn(r) && !Ze(r) ? r : Bt().withMutations(function(n) {\n var i = e(r);\n ge(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(Ee(n).keySeq());\n }, t.intersect = function(n) {\n return n = oe(n).toArray(), n.length ? ne.intersect.apply(t(n.pop()), n) : Bt();\n }, t.union = function(n) {\n return n = oe(n).toArray(), n.length ? ne.union.apply(t(n.pop()), n) : Bt();\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 br(this, this._map.set(n, n));\n }, t.prototype.remove = function(n) {\n return br(this, this._map.remove(n));\n }, t.prototype.clear = function() {\n return br(this, this._map.clear());\n }, t.prototype.map = function(n, i) {\n var o = this, s = !1, a = br(\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 ir(zt(this, n));\n }, t.prototype.sortBy = function(n, i) {\n return ir(zt(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})(Tt);\nUr.isSet = Qn;\nvar ne = Ur.prototype;\nne[Ms] = !0;\nne[sr] = ne.remove;\nne.merge = ne.concat = ne.union;\nne.withMutations = fr;\nne.asImmutable = ur;\nne[\"@@transducer/init\"] = ne.asMutable = cr;\nne[\"@@transducer/step\"] = function(e, t) {\n return e.add(t);\n};\nne[\"@@transducer/result\"] = function(e) {\n return e.asImmutable();\n};\nne.__empty = Bt;\nne.__make = Ds;\nfunction br(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 Ds(e, t) {\n var r = Object.create(ne);\n return r.size = e ? e.size : 0, r._map = e, r.__ownerID = t, r;\n}\nvar Yi;\nfunction Bt() {\n return Yi || (Yi = Ds(Ne()));\n}\nfunction Cs(e, t, r) {\n for (var n = $s(t), i = 0; i !== n.length; )\n if (e = Es(e, n[i++], P), e === P)\n return r;\n return e;\n}\nfunction js(e, t) {\n return Cs(this, e, t);\n}\nfunction hp(e, t) {\n return Cs(e, t, P) !== P;\n}\nfunction pp(e) {\n return hp(this, e);\n}\nfunction Ls() {\n ge(this.size);\n var e = {};\n return this.__iterate(function(t, r) {\n e[r] = t;\n }), e;\n}\nfunction Pr(e) {\n if (!e || typeof e != \"object\")\n return e;\n if (!ye(e)) {\n if (!Xe(e))\n return e;\n e = pe(e);\n }\n if (U(e)) {\n var t = {};\n return e.__iterate(function(n, i) {\n t[i] = Pr(n);\n }), t;\n }\n var r = [];\n return e.__iterate(function(n) {\n r.push(Pr(n));\n }), r;\n}\nfunction dp(e) {\n if (e.size === 1 / 0)\n return 0;\n var t = Ze(e), r = U(e), n = t ? 1 : 0;\n return e.__iterate(r ? t ? function(i, o) {\n n = 31 * n + Gi(_e(i), _e(o)) | 0;\n } : function(i, o) {\n n = n + Gi(_e(i), _e(o)) | 0;\n } : t ? function(i) {\n n = 31 * n + _e(i) | 0;\n } : function(i) {\n n = n + _e(i) | 0;\n }), _p(e.size, n);\n}\nfunction _p(e, t) {\n return t = Ft(t, 3432918353), t = Ft(t << 15 | t >>> -15, 461845907), t = Ft(t << 13 | t >>> -13, 5), t = (t + 3864292196 | 0) ^ e, t = Ft(t ^ t >>> 16, 2246822507), t = Ft(t ^ t >>> 13, 3266489909), t = xr(t ^ t >>> 16), t;\n}\nfunction Gi(e, t) {\n return e ^ t + 2654435769 + (e << 6) + (e >> 2) | 0;\n}\nfunction ft(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}\noe.Iterator = Z;\nft(oe, {\n // ### Conversion to other types\n toArray: function() {\n ge(this.size);\n var t = new Array(this.size || 0), r = U(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 us(this);\n },\n toJS: function() {\n return Pr(this);\n },\n toKeyedSeq: function() {\n return new qr(this, !0);\n },\n toMap: function() {\n return Qe(this.toKeyedSeq());\n },\n toObject: Ls,\n toOrderedMap: function() {\n return xe(this.toKeyedSeq());\n },\n toOrderedSet: function() {\n return ir(U(this) ? this.valueSeq() : this);\n },\n toSet: function() {\n return Ur(U(this) ? this.valueSeq() : this);\n },\n toSetSeq: function() {\n return new cs(this);\n },\n toSeq: function() {\n return Oe(this) ? this.toIndexedSeq() : U(this) ? this.toKeyedSeq() : this.toSetSeq();\n },\n toStack: function() {\n return Xn(U(this) ? this.valueSeq() : this);\n },\n toList: function() {\n return $t(U(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 C(this, xh(this, t));\n },\n includes: function(t) {\n return this.some(function(r) {\n return ve(r, t);\n });\n },\n entries: function() {\n return this.__iterator(Se);\n },\n every: function(t, r) {\n ge(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 C(this, ps(this, t, r, !0));\n },\n partition: function(t, r) {\n return jh(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 ge(this.size), this.__iterate(r ? t.bind(r) : t);\n },\n join: function(t) {\n ge(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(Pt);\n },\n map: function(t, r) {\n return C(this, hs(this, t, r));\n },\n reduce: function(t, r, n) {\n return Vi(\n this,\n t,\n r,\n n,\n arguments.length < 2,\n !1\n );\n },\n reduceRight: function(t, r, n) {\n return Vi(\n this,\n t,\n r,\n n,\n arguments.length < 2,\n !0\n );\n },\n reverse: function() {\n return C(this, Zn(this, !0));\n },\n slice: function(t, r) {\n return C(this, Mn(this, t, r, !0));\n },\n some: function(t, r) {\n ge(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 C(this, zt(this, t));\n },\n values: function() {\n return this.__iterator(we);\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 St(\n t ? this.toSeq().filter(t, r) : this\n );\n },\n countBy: function(t, r) {\n return Dh(this, t, r);\n },\n equals: function(t) {\n return Zs(this, t);\n },\n entrySeq: function() {\n var t = this;\n if (t._cache)\n return new bt(t._cache);\n var r = t.toSeq().map(fp).toIndexedSeq();\n return r.fromEntrySeq = function() {\n return t.toSeq();\n }, r;\n },\n filterNot: function(t, r) {\n return this.filter(tn(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(es, null, t);\n },\n flatMap: function(t, r) {\n return C(this, qh(this, t, r));\n },\n flatten: function(t) {\n return C(this, _s(this, t, !0));\n },\n fromEntrySeq: function() {\n return new fs(this);\n },\n get: function(t, r) {\n return this.find(function(n, i) {\n return ve(i, t);\n }, void 0, r);\n },\n getIn: js,\n groupBy: function(t, r) {\n return Ch(this, t, r);\n },\n has: function(t) {\n return this.get(t, P) !== P;\n },\n hasIn: pp,\n isSubset: function(t) {\n return t = typeof t.includes == \"function\" ? t : oe(t), this.every(function(r) {\n return t.includes(r);\n });\n },\n isSuperset: function(t) {\n return t = typeof t.isSubset == \"function\" ? t : oe(t), t.isSubset(this);\n },\n keyOf: function(t) {\n return this.findKey(function(r) {\n return ve(r, t);\n });\n },\n keySeq: function() {\n return this.toSeq().map(cp).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 yr(this, t);\n },\n maxBy: function(t, r) {\n return yr(this, r, t);\n },\n min: function(t) {\n return yr(\n this,\n t ? Ki(t) : Hi\n );\n },\n minBy: function(t, r) {\n return yr(\n this,\n r ? Ki(r) : Hi,\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 C(this, ds(this, t, r, !0));\n },\n skipUntil: function(t, r) {\n return this.skipWhile(tn(t), r);\n },\n sortBy: function(t, r) {\n return C(this, zt(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 C(this, Lh(this, t, r));\n },\n takeUntil: function(t, r) {\n return this.takeWhile(tn(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 = dp(this));\n }\n // ### Internal\n // abstract __iterate(fn, reverse)\n // abstract __iterator(type, reverse)\n});\nvar se = oe.prototype;\nse[Go] = !0;\nse[Cr] = se.values;\nse.toJSON = se.toArray;\nse.__toStringMapper = tr;\nse.inspect = se.toSource = function() {\n return this.toString();\n};\nse.chain = se.flatMap;\nse.contains = se.includes;\nft(Ee, {\n // ### More sequential methods\n flip: function() {\n return C(this, ls(this));\n },\n mapEntries: function(t, r) {\n var n = this, i = 0;\n return C(\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 C(\n this,\n this.toSeq().flip().map(function(i, o) {\n return t.call(r, i, o, n);\n }).flip()\n );\n }\n});\nvar lr = Ee.prototype;\nlr[Rr] = !0;\nlr[Cr] = se.entries;\nlr.toJSON = Ls;\nlr.__toStringMapper = function(e, t) {\n return tr(t) + \": \" + tr(e);\n};\nft(ut, {\n // ### Conversion to other types\n toKeyedSeq: function() {\n return new qr(this, !1);\n },\n // ### ES6 Collection methods (ES6 Array and Map)\n filter: function(t, r) {\n return C(this, ps(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 C(this, Zn(this, !1));\n },\n slice: function(t, r) {\n return C(this, Mn(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 = ar(t, t < 0 ? this.count() : this.size);\n var i = this.slice(0, t);\n return C(\n this,\n n === 1 ? i : i.concat(Pe(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 C(this, _s(this, t, !1));\n },\n get: function(t, r) {\n return t = Ye(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 = Ye(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 C(this, Uh(this, t));\n },\n interleave: function() {\n var t = [this].concat(Pe(arguments)), r = wr(this.toSeq(), Ae.of, t), n = r.flatten(!0);\n return r.size && (n.size = r.size * t.length), C(this, n);\n },\n keySeq: function() {\n return lp(0, this.size);\n },\n last: function(t) {\n return this.get(-1, t);\n },\n skipWhile: function(t, r) {\n return C(this, ds(this, t, r, !1));\n },\n zip: function() {\n var t = [this].concat(Pe(arguments));\n return C(this, wr(this, Xi, t));\n },\n zipAll: function() {\n var t = [this].concat(Pe(arguments));\n return C(this, wr(this, Xi, t, !0));\n },\n zipWith: function(t) {\n var r = Pe(arguments);\n return r[0] = this, C(this, wr(this, t, r));\n }\n});\nvar Dt = ut.prototype;\nDt[Ar] = !0;\nDt[Ge] = !0;\nft(Tt, {\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 It = Tt.prototype;\nIt.has = se.includes;\nIt.contains = It.includes;\nIt.keys = It.values;\nft(rt, lr);\nft(Ae, Dt);\nft(Zt, It);\nfunction Xi() {\n return Pe(arguments);\n}\nfunction Fs(e) {\n return Qn(e) && Ze(e);\n}\nvar ir = /* @__PURE__ */ (function(e) {\n function t(r) {\n return r == null ? vn() : Fs(r) ? r : vn().withMutations(function(n) {\n var i = Tt(r);\n ge(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(Ee(n).keySeq());\n }, t.prototype.toString = function() {\n return this.__toString(\"OrderedSet {\", \"}\");\n }, t;\n})(Ur);\nir.isOrderedSet = Fs;\nvar lt = ir.prototype;\nlt[Ge] = !0;\nlt.zip = Dt.zip;\nlt.zipWith = Dt.zipWith;\nlt.zipAll = Dt.zipAll;\nlt.__empty = vn;\nlt.__make = xs;\nfunction xs(e, t) {\n var r = Object.create(lt);\n return r.size = e ? e.size : 0, r._map = e, r.__ownerID = t, r;\n}\nvar Qi;\nfunction vn() {\n return Qi || (Qi = xs(qt()));\n}\nfunction gp(e) {\n if (ct(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 (Me(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 re = function(t, r) {\n var n;\n gp(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 l = 0; l < c.length; l++) {\n var h = c[l];\n f[h] = l, o[h] ? typeof console == \"object\" && console.warn && console.warn(\n \"Cannot define \" + ti(this) + ' with property \"' + h + '\" since that property name is part of the Record API.'\n ) : mp(o, h);\n }\n }\n return this.__ownerID = void 0, this._values = $t().withMutations(function(d) {\n d.setSize(u._keys.length), Ee(a).forEach(function(_, g) {\n d.set(u._indices[g], _ === u._defaultValues[g] ? void 0 : _);\n });\n }), this;\n }, o = i.prototype = Object.create(x);\n return o.constructor = i, r && (i.displayName = r), i;\n};\nre.prototype.toString = function() {\n for (var t = ti(this) + \" { \", r = this._keys, n, i = 0, o = r.length; i !== o; i++)\n n = r[i], t += (i ? \", \" : \"\") + n + \": \" + tr(this.get(n));\n return t + \" }\";\n};\nre.prototype.equals = function(t) {\n return this === t || ct(t) && At(this).equals(At(t));\n};\nre.prototype.hashCode = function() {\n return At(this).hashCode();\n};\nre.prototype.has = function(t) {\n return this._indices.hasOwnProperty(t);\n};\nre.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};\nre.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 ei(this, n);\n }\n return this;\n};\nre.prototype.remove = function(t) {\n return this.set(t);\n};\nre.prototype.clear = function() {\n var t = this._values.clear().setSize(this._keys.length);\n return this.__ownerID ? this : ei(this, t);\n};\nre.prototype.wasAltered = function() {\n return this._values.wasAltered();\n};\nre.prototype.toSeq = function() {\n return At(this);\n};\nre.prototype.toJS = function() {\n return Pr(this);\n};\nre.prototype.entries = function() {\n return this.__iterator(Se);\n};\nre.prototype.__iterator = function(t, r) {\n return At(this).__iterator(t, r);\n};\nre.prototype.__iterate = function(t, r) {\n return At(this).__iterate(t, r);\n};\nre.prototype.__ensureOwner = function(t) {\n if (t === this.__ownerID)\n return this;\n var r = this._values.__ensureOwner(t);\n return t ? ei(this, r, t) : (this.__ownerID = t, this._values = r, this);\n};\nre.isRecord = ct;\nre.getDescriptiveName = ti;\nvar x = re.prototype;\nx[ns] = !0;\nx[sr] = x.remove;\nx.deleteIn = x.removeIn = Yn;\nx.getIn = js;\nx.hasIn = se.hasIn;\nx.merge = vs;\nx.mergeWith = ys;\nx.mergeIn = xn;\nx.mergeDeep = Ss;\nx.mergeDeepWith = bs;\nx.mergeDeepIn = Fn;\nx.setIn = qn;\nx.update = Un;\nx.updateIn = Bn;\nx.withMutations = fr;\nx.asMutable = cr;\nx.asImmutable = ur;\nx[Cr] = x.entries;\nx.toJSON = x.toObject = se.toObject;\nx.inspect = x.toSource = function() {\n return this.toString();\n};\nfunction ei(e, t, r) {\n var n = Object.create(Object.getPrototypeOf(e));\n return n._values = t, n.__ownerID = r, n;\n}\nfunction ti(e) {\n return e.constructor.displayName || e.constructor.name || \"Record\";\n}\nfunction At(e) {\n return Pn(e._keys.map(function(t) {\n return [t, e.get(t)];\n }));\n}\nfunction mp(e, t) {\n try {\n Object.defineProperty(e, t, {\n get: function() {\n return this.get(t);\n },\n set: function(r) {\n Jt(this.__ownerID, \"Cannot set on an immutable record.\"), this.set(t, r);\n }\n });\n } catch {\n }\n}\nclass qs {\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', component: 'ATextInput' },\n * { fieldname: 'status', label: 'Status', component: 'ATextInput' },\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?.map(Ko), n = r ? $t(r) : $t(), i = t.actions ? Qe(t.actions) : Qe();\n return new qs(t.name, n, t.workflow, i, 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]) => !a.stateless && Ii(a, t)).map(([a, u]) => ({\n name: a,\n targetState: u.nextState ?? 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 the stateless **Commands** available in a given workflow state — side-effect\n * actions (save/print/email…) that do not change workflow state. Unlike transitions,\n * Commands may exist on a workflow that declares no `states` (a commands-only doctype),\n * and a Command with no `allowedStates` is available in every state.\n *\n * Only meaningful for WorkflowMeta format; XState workflows have no Commands.\n *\n * @param currentState - The record's current state, used to honor a Command's `allowedStates`\n * @returns Array of command descriptors with `name`\n *\n * @example\n * ```ts\n * const commands = doctype.getAvailableCommands('Draft')\n * // [{ name: 'Print' }]\n * ```\n *\n * @public\n */\n getAvailableCommands(t) {\n const r = this.workflow;\n if (!r) return [];\n const n = r.actions;\n return n ? Object.entries(n).filter(([, i]) => i.stateless === !0 && Ii(i, t ?? \"\")).map(([i]) => ({ name: i })) : [];\n }\n /**\n * Returns the field-validation **triggers** declared on this doctype's workflow (advisory,\n * client-side). Keyed by trigger name. Returns undefined when the workflow is absent, is an\n * XState machine (no triggers), or simply declares none.\n *\n * @returns The `workflow.triggers` map, or undefined\n *\n * @example\n * ```ts\n * const triggers = doctype.getTriggers()\n * // { dateOrder: { on: ['start_date', 'end_date'], clientHandler: '…' } }\n * ```\n *\n * @public\n */\n getTriggers() {\n const t = this.workflow;\n if (t)\n return t.triggers;\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', allowedStates: ['draft'] }\n * ```\n *\n * @public\n */\n getActionMeta(t) {\n const r = this.workflow;\n return r ? r.actions?.[t] : void 0;\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 Kt {\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 Kt._root ? Kt._root : (Kt._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 = Le();\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 const s = o.kind === \"field\" ? r.get(o.fieldname) : void 0;\n if (o.kind === \"field\" && (s || o.doctype)) {\n const a = s, u = a?.target ?? o.doctype;\n if (!a || Ai(a, o.component) === \"inline\") {\n const { cardinality: g, ...m } = o;\n i.push({\n ...m,\n component: m.component || \"AFormLink\",\n ...u !== void 0 ? { doctype: u } : {}\n });\n continue;\n }\n const c = this.registry[a.target];\n if (!c) {\n const { cardinality: g, ...m } = o;\n i.push({ ...m });\n continue;\n }\n const f = this.resolveSchema(c, new Set(n)), { options: l, cardinality: h, kind: d, ..._ } = o;\n if (Ai(a, o.component) === \"table\")\n i.push(this.buildTableConfig(o, f, a.component));\n else {\n const g = {\n ..._,\n kind: \"link\",\n label: _.label || o.fieldname,\n component: a.component || _.component || \"AForm\",\n schema: f\n };\n i.push(g);\n }\n } else if (o.kind === \"fieldset\") {\n const a = this.resolveFields(o.schema, r, n), { schema: u, ...c } = o, f = {\n ...c,\n schema: a\n };\n i.push(f);\n } else if (o.kind === \"table\") {\n const { columns: a, config: u, ...c } = o, f = {\n ...c,\n kind: \"table\",\n component: c.component || \"ATable\",\n schema: a,\n config: u ?? { view: \"list\" }\n };\n i.push(f);\n } else {\n o.kind === \"field\" && $n(o.component) && console.warn(\n `[Stonecrop] Field \"${o.fieldname}\" renders with \"${o.component}\", which is a link component, but the field is not a link: it has no \\`doctype\\` and no \\`links\\` declaration. It will render as a plain field. Add \\`\"doctype\": \"<doctype-slug>\"\\` to the field definition.`\n );\n const { cardinality: a, ...u } = o;\n i.push({ ...u });\n }\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((c) => c.kind === \"field\").map(({ kind: c, ...f }) => f), o = t.config ?? { view: \"list\" }, { options: s, cardinality: a, ...u } = t;\n return {\n ...u,\n kind: \"table\",\n label: u.label || t.fieldname,\n component: n || u.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 the default from the component's category; 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 const o = bh(n.component);\n o === \"text\" ? r[n.fieldname] = \"\" : o === \"number\" ? r[n.fieldname] = 0 : o === \"boolean\" ? r[n.fieldname] = !1 : o === \"code\" && n.language ? r[n.fieldname] = n.language === \"json\" ? {} : \"\" : 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 vp(e, t, r) {\n await yn();\n try {\n await r(e, t);\n } catch {\n }\n}\nconst Np = {\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 Kt(i, t?.getMeta);\n e.provide(\"$registry\", o), e.config.globalProperties.$registry = o;\n const s = new Be(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 = or(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 && vp(o, s, t.onRouterInitialized);\n }\n}, Zp = io(\"stonecrop-validation\", () => {\n const e = K([]), t = te(() => e.value.length === 0), r = te(() => {\n const f = {};\n for (const l of e.value)\n f[l.field] || (f[l.field] = []), f[l.field].push(l.message);\n return f;\n });\n function n(f) {\n return e.value.filter((l) => l.field === f).map((l) => l.message);\n }\n function i(f, l, h) {\n e.value.push({ trigger: f, field: l, message: h });\n }\n function o(f) {\n e.value = e.value.filter((l) => l.trigger !== f);\n }\n function s() {\n e.value = [];\n }\n async function a(f, l, h, d) {\n o(f);\n const _ = Object.freeze({ ...h }), g = (m, E) => i(f, m, E);\n try {\n await Ys(l.clientHandler, { record: _, value: d, setError: g });\n } catch (m) {\n typeof console < \"u\" && console.error(\n `Validation trigger \"${f}\" threw and was ignored (advisory — save is not blocked). Fix its clientHandler:`,\n m\n );\n }\n }\n async function u(f, l, h) {\n const d = [];\n for (const [_, g] of Object.entries(f))\n g.on.includes(l) && d.push(a(_, g, h, h[l]));\n await Promise.all(d);\n }\n async function c(f, l) {\n await Promise.all(Object.entries(f).map(([h, d]) => a(h, d, l, void 0)));\n }\n return {\n errors: e,\n isValid: t,\n errorsByField: r,\n errorsFor: n,\n setError: i,\n clearTrigger: o,\n clearAll: s,\n validateField: u,\n validateRecord: c\n };\n});\nvar ee = /* @__PURE__ */ ((e) => (e.ERROR = \"error\", e.WARNING = \"warning\", e.INFO = \"info\", e))(ee || {});\nclass yp {\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, o)), 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 l = i instanceof Map ? i : i.toObject();\n s.push(...this.validateActionRegistration(t, l));\n }\n const u = s.filter((l) => l.severity === ee.ERROR).length, c = s.filter((l) => l.severity === ee.WARNING).length, f = s.filter((l) => l.severity === ee.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) {\n const i = [];\n for (const o of r) {\n if (!o.fieldname) {\n i.push({\n severity: ee.ERROR,\n rule: \"required-fieldname\",\n message: \"Field is missing required property: fieldname\",\n doctype: t,\n context: { field: o }\n });\n continue;\n }\n o.kind === \"field\" && !o.component && i.push({\n severity: ee.ERROR,\n rule: \"required-component\",\n message: `Field \"${o.fieldname}\" must have a component property`,\n doctype: t,\n fieldname: o.fieldname\n }), o.kind === \"field\" && $n(o.component) && !o.doctype && !n?.[o.fieldname] && i.push({\n severity: ee.ERROR,\n rule: \"link-component-without-doctype\",\n message: `Field \"${o.fieldname}\" renders with \"${o.component}\", which is a link component, but has no \\`doctype\\` to name its target`,\n doctype: t,\n fieldname: o.fieldname\n }), o.kind === \"fieldset\" && i.push(...this.validateRequiredProperties(t, o.schema, n));\n }\n return i;\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.doctype) {\n const s = o.doctype;\n n.registry[s] || n.registry[s.toLowerCase()] || i.push({\n severity: ee.ERROR,\n rule: \"link-invalid-target\",\n message: `Link field \"${o.fieldname}\" references non-existent doctype: \"${s}\"`,\n doctype: t,\n fieldname: o.fieldname,\n context: { targetDoctype: s }\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.doctype && 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: ee.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: ee.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: ee.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: ee.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 l = f.doctype;\n l && l !== u.target && o.push({\n severity: ee.ERROR,\n rule: \"link-field-target-mismatch\",\n message: `Link field \"${u.fieldname}\" targets \"${l}\" but link declaration targets \"${u.target}\"`,\n doctype: t,\n fieldname: u.fieldname,\n context: { linkFieldTarget: l, linkTarget: u.target }\n });\n }\n }\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: ee.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: ee.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: ee.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 l = \"target\" in f ? f.target : void 0;\n typeof l == \"string\" ? o.add(l) : Array.isArray(l) && l.forEach((h) => {\n typeof h == \"string\" && o.add(h);\n });\n }\n }\n }\n for (const s of i)\n o.has(s) || n.push({\n severity: ee.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 = Le();\n for (const [o, s] of Object.entries(r)) {\n if (!Array.isArray(s)) {\n n.push({\n severity: ee.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: ee.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 wp(e, t) {\n return new yp({\n registry: e,\n ...t\n });\n}\nfunction Mp(e, t, r, n, i) {\n return wp(r).validate(e, t, n, i);\n}\nexport {\n qs as Doctype,\n Wt as FieldTriggerEngine,\n _t as HST,\n Kt as Registry,\n yp as SchemaValidator,\n Be as Stonecrop,\n ee as ValidationSeverity,\n ya as createHST,\n wp as createValidator,\n Np as default,\n Ys as executeClientHandler,\n Le as getGlobalTriggerEngine,\n Ip as getStonecrop,\n Ep as markOperationIrreversible,\n zp as registerGlobalAction,\n kp as registerTransitionAction,\n Op as setFieldRollback,\n $p as triggerTransition,\n Ap as useLazyLink,\n uo as useOperationLog,\n or as useOperationLogStore,\n Rp as useStonecrop,\n Tp as useUndoRedoShortcuts,\n Zp as useValidationStore,\n Mp as validateSchema,\n Pp as withBatch\n};\n//# sourceMappingURL=stonecrop.js.map\n","import { defineComponent as ne, useTemplateRef as pe, ref as A, computed as S, onMounted as Le, openBlock as g, createElementBlock as k, unref as P, normalizeClass as ue, normalizeStyle as $e, createBlock as me, resolveDynamicComponent as Ze, mergeProps as at, toDisplayString as B, createElementVNode as y, withModifiers as se, withDirectives as X, Fragment as Y, renderList as we, vShow as xe, createCommentVNode as W, renderSlot as De, createTextVNode as kt, watch as te, onBeforeUnmount as fn, nextTick as st, toValue as H, shallowRef as he, getCurrentScope as Mt, onScopeDispose as It, reactive as Tt, vModelText as ge, vModelCheckbox as jt, vModelSelect as zt, getCurrentInstance as Dt, watchEffect as Ct, useCssVars as mn, onUnmounted as hn, useModel as Ie, inject as wt, createVNode as ze, withCtx as Ft, mergeModels as be, isRef as pn, toRefs as gn, customRef as $t, toRef as Xt, readonly as St, withKeys as ve, provide as wn } from \"vue\";\nimport { defineStore as yn } from \"pinia\";\nimport './assets/index.css';function yt(e) {\n return Function(`\"use strict\"; return (${e})`)();\n}\nfunction Yt(e, t) {\n return Mt() ? (It(e, t), !0) : !1;\n}\nconst xn = typeof window < \"u\" && typeof document < \"u\";\ntypeof WorkerGlobalScope < \"u\" && globalThis instanceof WorkerGlobalScope;\nconst bn = (e) => e != null, kn = Object.prototype.toString, Mn = (e) => kn.call(e) === \"[object Object]\", In = () => {\n};\nfunction Qe(e) {\n return Array.isArray(e) ? e : [e];\n}\nfunction Tn(e, t, l) {\n return te(e, t, {\n ...l,\n immediate: !0\n });\n}\nconst qe = xn ? 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 Xe(...e) {\n const t = (a, n, o, s) => (a.addEventListener(n, o, s), () => a.removeEventListener(n, o, s)), l = S(() => {\n const a = Qe(H(e[0])).filter((n) => n != null);\n return a.every((n) => typeof n != \"string\") ? a : void 0;\n });\n return Tn(() => {\n var a, n;\n return [\n (a = (n = l.value) === null || n === void 0 ? void 0 : n.map((o) => We(o))) !== null && a !== void 0 ? a : [qe].filter((o) => o != null),\n Qe(H(l.value ? e[1] : e[0])),\n Qe(P(l.value ? e[2] : e[1])),\n H(l.value ? e[3] : e[2])\n ];\n }, ([a, n, o, s], d, r) => {\n if (!a?.length || !n?.length || !o?.length) return;\n const i = Mn(s) ? { ...s } : s, h = a.flatMap((f) => n.flatMap((x) => o.map((b) => t(f, x, b, i))));\n r(() => {\n h.forEach((f) => f());\n });\n }, { flush: \"post\" });\n}\n// @__NO_SIDE_EFFECTS__\nfunction Dn() {\n const e = he(!1), t = Dt();\n return t && Le(() => {\n e.value = !0;\n }, t), e;\n}\n// @__NO_SIDE_EFFECTS__\nfunction Cn(e) {\n const t = /* @__PURE__ */ Dn();\n return S(() => (t.value, !!e()));\n}\nfunction $n(e, t, l = {}) {\n const { window: a = qe, ...n } = l;\n let o;\n const s = /* @__PURE__ */ Cn(() => a && \"MutationObserver\" in a), d = () => {\n o && (o.disconnect(), o = void 0);\n }, r = te(S(() => {\n const f = Qe(H(e)).map(We).filter(bn);\n return new Set(f);\n }), (f) => {\n d(), s.value && f.size && (o = new MutationObserver(t), f.forEach((x) => o.observe(x, n)));\n }, {\n immediate: !0,\n flush: \"post\"\n }), i = () => o?.takeRecords(), h = () => {\n r(), d();\n };\n return Yt(h), {\n isSupported: s,\n stop: h,\n takeRecords: i\n };\n}\nfunction Sn(e, t, l = {}) {\n const { window: a = qe, document: n = a?.document, flush: o = \"sync\" } = l;\n if (!a || !n) return In;\n let s;\n const d = (h) => {\n s?.(), s = h;\n }, r = Ct(() => {\n const h = We(e);\n if (h) {\n const { stop: f } = $n(n, (x) => {\n x.map((b) => [...b.removedNodes]).flat().some((b) => b === h || b.contains(h)) && t(x);\n }, {\n window: a,\n childList: !0,\n subtree: !0\n });\n d(f);\n }\n }, { flush: o }), i = () => {\n r(), d();\n };\n return Yt(i), i;\n}\n// @__NO_SIDE_EFFECTS__\nfunction An(e = {}) {\n var t;\n const { window: l = qe, deep: a = !0, triggerOnRemoval: n = !1 } = e, o = (t = e.document) !== null && t !== void 0 ? t : l?.document, s = () => {\n let i = o?.activeElement;\n if (a)\n for (var h; i?.shadowRoot; ) i = i == null || (h = i.shadowRoot) === null || h === void 0 ? void 0 : h.activeElement;\n return i;\n }, d = he(), r = () => {\n d.value = s();\n };\n if (l) {\n const i = {\n capture: !0,\n passive: !0\n };\n Xe(l, \"blur\", (h) => {\n h.relatedTarget === null && r();\n }, i), Xe(l, \"focus\", r, i);\n }\n return n && Sn(d, r, { document: o }), r(), d;\n}\nconst Ln = \"focusin\", Rn = \"focusout\", En = \":focus-within\";\nfunction Hn(e, t = {}) {\n const { window: l = qe } = t, a = S(() => We(e)), n = he(!1), o = S(() => n.value);\n if (!l || !(/* @__PURE__ */ An(t)).value) return { focused: o };\n const s = { passive: !0 };\n return Xe(a, Ln, () => n.value = !0, s), Xe(a, Rn, () => {\n var d, r, i;\n return n.value = (d = (r = a.value) === null || r === void 0 || (i = r.matches) === null || i === void 0 ? void 0 : i.call(r, En)) !== null && d !== void 0 ? d : !1;\n }, s), { focused: o };\n}\nfunction Vn(e, { window: t = qe, scrollTarget: l } = {}) {\n const a = A(!1), n = () => {\n if (!t) return;\n const o = t.document, s = We(e);\n if (!s)\n a.value = !1;\n else {\n const d = s.getBoundingClientRect();\n a.value = d.top <= (t.innerHeight || o.documentElement.clientHeight) && d.left <= (t.innerWidth || o.documentElement.clientWidth) && d.bottom >= 0 && d.right >= 0;\n }\n };\n return te(\n () => We(e),\n () => n(),\n { immediate: !0, flush: \"post\" }\n ), t && Xe(l || t, \"scroll\", n, {\n capture: !1,\n passive: !0\n }), a;\n}\nconst Re = (e) => {\n let t = Vn(e).value;\n return t = t && e.offsetHeight > 0, t;\n}, Ee = (e) => e.tabIndex >= 0, Pt = (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?.previousElementSibling;\n if (l instanceof HTMLTableRowElement) {\n const a = Array.from(l.children)[e.cellIndex];\n a instanceof HTMLElement && (t = a);\n }\n } else if (e instanceof HTMLTableRowElement) {\n const l = e.previousElementSibling;\n l instanceof HTMLTableRowElement && (t = l);\n }\n return t && (!Ee(t) || !Re(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 a = t.parentElement?.parentElement;\n if (a) {\n const n = a.firstElementChild?.children[t.cellIndex];\n n instanceof HTMLElement && (l = n);\n }\n } else if (t instanceof HTMLTableRowElement) {\n const a = t.parentElement;\n if (a) {\n const n = a.firstElementChild;\n n instanceof HTMLTableRowElement && (l = n);\n }\n }\n return l && (!Ee(l) || !Re(l)) ? Lt(l) : l;\n}, Nt = (e) => {\n if (e.target instanceof HTMLElement)\n return Lt(e.target);\n}, Lt = (e) => {\n let t;\n if (e instanceof HTMLTableCellElement) {\n const l = e.parentElement?.nextElementSibling;\n if (l) {\n const a = Array.from(l.children)[e.cellIndex];\n a instanceof HTMLElement && (t = a);\n }\n } else if (e instanceof HTMLTableRowElement) {\n const l = e.nextElementSibling;\n l instanceof HTMLTableRowElement && (t = l);\n }\n return t && (!Ee(t) || !Re(t)) ? Lt(t) : t;\n}, Fn = (e) => {\n if (!(e.target instanceof HTMLElement)) return;\n const t = e.target;\n let l;\n if (t instanceof HTMLTableCellElement) {\n const a = t.parentElement?.parentElement;\n if (a) {\n const n = a.lastElementChild?.children[t.cellIndex];\n n instanceof HTMLElement && (l = n);\n }\n } else if (t instanceof HTMLTableRowElement) {\n const a = t.parentElement;\n if (a) {\n const n = a.lastElementChild;\n n instanceof HTMLTableRowElement && (l = n);\n }\n }\n return l && (!Ee(l) || !Re(l)) ? At(l) : l;\n}, Ot = (e) => {\n if (e.target instanceof HTMLElement)\n return Rt(e.target);\n}, Rt = (e) => {\n let t;\n const l = e.previousElementSibling;\n if (l instanceof HTMLElement)\n t = l;\n else {\n const a = e.parentElement?.previousElementSibling?.lastElementChild;\n a instanceof HTMLElement && (t = a);\n }\n return t && (!Ee(t) || !Re(t)) ? Rt(t) : t;\n}, Zt = (e) => {\n if (e.target instanceof HTMLElement)\n return Et(e.target);\n}, Et = (e) => {\n let t;\n const l = e.nextElementSibling;\n if (l instanceof HTMLElement)\n t = l;\n else {\n const a = e.parentElement?.nextElementSibling?.firstElementChild;\n a instanceof HTMLElement && (t = a);\n }\n return t && (!Ee(t) || !Re(t)) ? Et(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 && (!Ee(l) || !Re(l)) ? Et(l) : l;\n}, Gt = (e) => {\n if (!(e.target instanceof HTMLElement)) return;\n const t = e.target.parentElement?.lastElementChild, l = t instanceof HTMLElement ? t : null;\n return l && (!Ee(l) || !Re(l)) ? Rt(l) : l;\n}, Ke = [\"alt\", \"control\", \"shift\", \"meta\"], Pn = {\n ArrowUp: \"up\",\n ArrowDown: \"down\",\n ArrowLeft: \"left\",\n ArrowRight: \"right\"\n}, nt = {\n \"keydown.up\": (e) => {\n const t = Pt(e);\n t && (e.preventDefault(), e.stopPropagation(), t.focus());\n },\n \"keydown.down\": (e) => {\n const t = Nt(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 = Zt(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 = Fn(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 = Gt(e);\n t && (e.preventDefault(), e.stopPropagation(), t.focus());\n },\n \"keydown.end\": (e) => {\n const t = Gt(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 = Nt(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 = Pt(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 = Zt(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 Kt(e) {\n const t = (o) => {\n const s = it(o);\n let d = [];\n if (typeof o.selectors == \"string\")\n d = 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 ? d.push(r) : d.push(r.$el);\n else if (o.selectors instanceof HTMLElement)\n d.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 ? d.push(r) : d.push(r.$el);\n else\n d.push(o.selectors.value);\n return d;\n }, l = (o) => {\n const s = it(o);\n let d = [];\n return o.selectors ? d = t(o) : s && (d = Array.from(s.children).filter((r) => r instanceof HTMLElement).filter((r) => Ee(r) && Re(r))), d;\n }, a = (o) => (s) => {\n const d = Pn[s.key] || s.key.toLowerCase();\n if (Ke.includes(d)) return;\n const r = o.handlers || nt;\n for (const i of Object.keys(r)) {\n const [h, ...f] = i.split(\".\");\n if (h === \"keydown\" && f.includes(d)) {\n const x = r[i], b = f.filter((p) => Ke.includes(p)), m = Ke.some((p) => {\n const u = p.charAt(0).toUpperCase() + p.slice(1);\n return s.getModifierState(u);\n });\n if (b.length > 0) {\n if (m) {\n for (const p of Ke)\n if (f.includes(p)) {\n const u = p.charAt(0).toUpperCase() + p.slice(1);\n s.getModifierState(u) && x(s);\n }\n }\n } else\n m || x(s);\n }\n }\n }, n = [];\n Le(() => {\n for (const o of e) {\n const s = it(o), d = l(o), r = a(o), i = s ? [s] : d;\n for (const h of i) {\n const { focused: f } = Hn(A(h)), x = te(f, (b) => {\n b ? h.addEventListener(\"keydown\", r) : h.removeEventListener(\"keydown\", r);\n });\n n.push(x);\n }\n }\n }), fn(() => {\n for (const o of n)\n o();\n });\n}\nfunction Ht(e, t) {\n return Mt() ? (It(e, t), !0) : !1;\n}\nconst _t = typeof window < \"u\" && typeof document < \"u\";\ntypeof WorkerGlobalScope < \"u\" && globalThis instanceof WorkerGlobalScope;\nconst Nn = (e) => e != null, On = Object.prototype.toString, Zn = (e) => On.call(e) === \"[object Object]\", Oe = () => {\n};\nfunction Un(...e) {\n if (e.length !== 1) return Xt(...e);\n const t = e[0];\n return typeof t == \"function\" ? St($t(() => ({\n get: t,\n set: Oe\n }))) : A(t);\n}\nfunction Gn(e, t) {\n function l(...a) {\n return new Promise((n, o) => {\n Promise.resolve(e(() => t.apply(this, a), {\n fn: t,\n thisArg: this,\n args: a\n })).then(n).catch(o);\n });\n }\n return l;\n}\nfunction Wn(e, t = {}) {\n let l, a, n = Oe;\n const o = (d) => {\n clearTimeout(d), n(), n = Oe;\n };\n let s;\n return (d) => {\n const r = H(e), i = H(t.maxWait);\n return l && o(l), r <= 0 || i !== void 0 && i <= 0 ? (a && (o(a), a = void 0), Promise.resolve(d())) : new Promise((h, f) => {\n n = t.rejectOnCancel ? f : h, s = d, i && !a && (a = setTimeout(() => {\n l && o(l), a = void 0, h(s());\n }, i)), l = setTimeout(() => {\n a && o(a), a = void 0, h(d());\n }, r);\n });\n };\n}\nfunction et(e) {\n return Array.isArray(e) ? e : [e];\n}\nfunction qn(e) {\n return Dt();\n}\n// @__NO_SIDE_EFFECTS__\nfunction jn(e, t = 200, l = {}) {\n return Gn(Wn(t, l), e);\n}\nfunction zn(e, t = {}) {\n if (!pn(e)) return gn(e);\n const l = Array.isArray(e.value) ? Array.from({ length: e.value.length }) : {};\n for (const a in e.value) l[a] = $t(() => ({\n get() {\n return e.value[a];\n },\n set(n) {\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[a] = n, e.value = s;\n } else {\n const s = {\n ...e.value,\n [a]: n\n };\n Object.setPrototypeOf(s, Object.getPrototypeOf(e.value)), e.value = s;\n }\n else e.value[a] = n;\n }\n }));\n return l;\n}\nfunction Xn(e, t = !0, l) {\n qn() ? Le(e, l) : t ? e() : st(e);\n}\nfunction Yn(e, t, l) {\n return te(e, t, {\n ...l,\n immediate: !0\n });\n}\nconst Ye = _t ? 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 Fe(...e) {\n const t = (a, n, o, s) => (a.addEventListener(n, o, s), () => a.removeEventListener(n, o, s)), l = S(() => {\n const a = et(H(e[0])).filter((n) => n != null);\n return a.every((n) => typeof n != \"string\") ? a : void 0;\n });\n return Yn(() => {\n var a, n;\n return [\n (a = (n = l.value) === null || n === void 0 ? void 0 : n.map((o) => Ce(o))) !== null && a !== void 0 ? a : [Ye].filter((o) => o != null),\n et(H(l.value ? e[1] : e[0])),\n et(P(l.value ? e[2] : e[1])),\n H(l.value ? e[3] : e[2])\n ];\n }, ([a, n, o, s], d, r) => {\n if (!a?.length || !n?.length || !o?.length) return;\n const i = Zn(s) ? { ...s } : s, h = a.flatMap((f) => n.flatMap((x) => o.map((b) => t(f, x, b, i))));\n r(() => {\n h.forEach((f) => f());\n });\n }, { flush: \"post\" });\n}\nfunction xt(e, t, l = {}) {\n const { window: a = Ye, ignore: n = [], capture: o = !0, detectIframe: s = !1, controls: d = !1 } = l;\n if (!a) return d ? {\n stop: Oe,\n cancel: Oe,\n trigger: Oe\n } : Oe;\n let r = !0;\n const i = (u) => H(n).some((c) => {\n if (typeof c == \"string\") return Array.from(a.document.querySelectorAll(c)).some((M) => M === u.target || u.composedPath().includes(M));\n {\n const M = Ce(c);\n return M && (u.target === M || u.composedPath().includes(M));\n }\n });\n function h(u) {\n const c = H(u);\n return c && c.$.subTree.shapeFlag === 16;\n }\n function f(u, c) {\n const M = H(u), C = M.$.subTree && M.$.subTree.children;\n return C == null || !Array.isArray(C) ? !1 : C.some((D) => D.el === c.target || c.composedPath().includes(D.el));\n }\n const x = (u) => {\n const c = Ce(e);\n if (u.target != null && !(!(c instanceof Element) && h(e) && f(e, u)) && !(!c || c === u.target || u.composedPath().includes(c))) {\n if (\"detail\" in u && u.detail === 0 && (r = !i(u)), !r) {\n r = !0;\n return;\n }\n t(u);\n }\n };\n let b = !1;\n const m = [\n Fe(a, \"click\", (u) => {\n b || (b = !0, setTimeout(() => {\n b = !1;\n }, 0), x(u));\n }, {\n passive: !0,\n capture: o\n }),\n Fe(a, \"pointerdown\", (u) => {\n const c = Ce(e);\n r = !i(u) && !!(c && !u.composedPath().includes(c));\n }, { passive: !0 }),\n s && Fe(a, \"blur\", (u) => {\n setTimeout(() => {\n var c;\n const M = Ce(e);\n ((c = a.document.activeElement) === null || c === void 0 ? void 0 : c.tagName) === \"IFRAME\" && !M?.contains(a.document.activeElement) && t(u);\n }, 0);\n }, { passive: !0 })\n ].filter(Boolean), p = () => m.forEach((u) => u());\n return d ? {\n stop: p,\n cancel: () => {\n r = !1;\n },\n trigger: (u) => {\n r = !0, x(u), r = !1;\n }\n } : p;\n}\n// @__NO_SIDE_EFFECTS__\nfunction Kn() {\n const e = he(!1), t = Dt();\n return t && Le(() => {\n e.value = !0;\n }, t), e;\n}\n// @__NO_SIDE_EFFECTS__\nfunction Jt(e) {\n const t = /* @__PURE__ */ Kn();\n return S(() => (t.value, !!e()));\n}\nfunction Qt(e, t, l = {}) {\n const { window: a = Ye, ...n } = l;\n let o;\n const s = /* @__PURE__ */ Jt(() => a && \"MutationObserver\" in a), d = () => {\n o && (o.disconnect(), o = void 0);\n }, r = te(S(() => {\n const f = et(H(e)).map(Ce).filter(Nn);\n return new Set(f);\n }), (f) => {\n d(), s.value && f.size && (o = new MutationObserver(t), f.forEach((x) => o.observe(x, n)));\n }, {\n immediate: !0,\n flush: \"post\"\n }), i = () => o?.takeRecords(), h = () => {\n r(), d();\n };\n return Ht(h), {\n isSupported: s,\n stop: h,\n takeRecords: i\n };\n}\nconst _e = {\n speed: 2,\n margin: 30,\n direction: \"both\"\n};\nfunction _n(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, a, n, o;\n const { pointerTypes: s, preventDefault: d, stopPropagation: r, exact: i, onMove: h, onEnd: f, onStart: x, initialValue: b, axis: m = \"both\", draggingElement: p = Ye, containerElement: u, handle: c = e, buttons: M = [0], restrictInView: C, autoScroll: D = !1 } = t, I = A((l = H(b)) !== null && l !== void 0 ? l : {\n x: 0,\n y: 0\n }), V = A(), O = (E) => s ? s.includes(E.pointerType) : !0, R = (E) => {\n H(d) && E.preventDefault(), H(r) && E.stopPropagation();\n }, F = H(D), K = typeof F == \"object\" ? {\n speed: (a = H(F.speed)) !== null && a !== void 0 ? a : _e.speed,\n margin: (n = H(F.margin)) !== null && n !== void 0 ? n : _e.margin,\n direction: (o = F.direction) !== null && o !== void 0 ? o : _e.direction\n } : _e, J = (E) => typeof E == \"number\" ? [E, E] : [E.x, E.y], le = (E, T, L) => {\n const { clientWidth: G, clientHeight: N, scrollLeft: ae, scrollTop: Ae, scrollWidth: Be, scrollHeight: Z } = E, [q, _] = J(K.margin), [oe, de] = J(K.speed);\n let ie = 0, ce = 0;\n (K.direction === \"x\" || K.direction === \"both\") && (L.x < q && ae > 0 ? ie = -oe : L.x + T.width > G - q && ae < Be - G && (ie = oe)), (K.direction === \"y\" || K.direction === \"both\") && (L.y < _ && Ae > 0 ? ce = -de : L.y + T.height > N - _ && Ae < Z - N && (ce = de)), (ie || ce) && E.scrollBy({\n left: ie,\n top: ce,\n behavior: \"auto\"\n });\n };\n let re = null;\n const Te = () => {\n const E = H(u);\n E && !re && (re = setInterval(() => {\n const T = H(e).getBoundingClientRect(), { x: L, y: G } = I.value, N = {\n x: L - E.scrollLeft,\n y: G - E.scrollTop\n };\n N.x >= 0 && N.y >= 0 && (le(E, T, N), N.x += E.scrollLeft, N.y += E.scrollTop, I.value = N);\n }, 1e3 / 60));\n }, Me = () => {\n re && (clearInterval(re), re = null);\n }, He = (E, T, L, G) => {\n const [N, ae] = typeof L == \"number\" ? [L, L] : [L.x, L.y], { clientWidth: Ae, clientHeight: Be } = T;\n return E.x < N || E.x + G.width > Ae - N || E.y < ae || E.y + G.height > Be - ae;\n }, Ve = () => {\n if (H(t.disabled) || !V.value) return;\n const E = H(u);\n if (!E) return;\n const T = H(e).getBoundingClientRect(), { x: L, y: G } = I.value;\n He({\n x: L - E.scrollLeft,\n y: G - E.scrollTop\n }, E, K.margin, T) ? Te() : Me();\n };\n H(D) && te(I, Ve);\n const Pe = (E) => {\n var T;\n if (!H(M).includes(E.button) || H(t.disabled) || !O(E) || H(i) && E.target !== H(e)) return;\n const L = H(u), G = L == null || (T = L.getBoundingClientRect) === null || T === void 0 ? void 0 : T.call(L), N = H(e).getBoundingClientRect(), ae = {\n x: E.clientX - (L ? N.left - G.left + (D ? 0 : L.scrollLeft) : N.left),\n y: E.clientY - (L ? N.top - G.top + (D ? 0 : L.scrollTop) : N.top)\n };\n x?.(ae, E) !== !1 && (V.value = ae, R(E));\n }, fe = (E) => {\n if (H(t.disabled) || !O(E) || !V.value) return;\n const T = H(u);\n T instanceof HTMLElement && _n(T);\n const L = H(e).getBoundingClientRect();\n let { x: G, y: N } = I.value;\n if ((m === \"x\" || m === \"both\") && (G = E.clientX - V.value.x, T && (G = Math.min(Math.max(0, G), T.scrollWidth - L.width))), (m === \"y\" || m === \"both\") && (N = E.clientY - V.value.y, T && (N = Math.min(Math.max(0, N), T.scrollHeight - L.height))), H(D) && T && (re === null && le(T, L, {\n x: G,\n y: N\n }), G += T.scrollLeft, N += T.scrollTop), T && (C || D)) {\n if (m !== \"y\") {\n const ae = G - T.scrollLeft;\n ae < 0 ? G = T.scrollLeft : ae > T.clientWidth - L.width && (G = T.clientWidth - L.width + T.scrollLeft);\n }\n if (m !== \"x\") {\n const ae = N - T.scrollTop;\n ae < 0 ? N = T.scrollTop : ae > T.clientHeight - L.height && (N = T.clientHeight - L.height + T.scrollTop);\n }\n }\n I.value = {\n x: G,\n y: N\n }, h?.(I.value, E), R(E);\n }, Se = (E) => {\n H(t.disabled) || !O(E) || V.value && (V.value = void 0, D && Me(), f?.(I.value, E), R(E));\n };\n if (_t) {\n const E = () => {\n var T;\n return {\n capture: (T = t.capture) !== null && T !== void 0 ? T : !0,\n passive: !H(d)\n };\n };\n Fe(c, \"pointerdown\", Pe, E), Fe(p, \"pointermove\", fe, E), Fe(p, \"pointerup\", Se, E);\n }\n return {\n ...zn(I),\n position: I,\n isDragging: S(() => !!V.value),\n style: S(() => `\n left: ${I.value.x}px;\n top: ${I.value.y}px;\n ${D ? \"text-wrap: nowrap;\" : \"\"}\n `)\n };\n}\nfunction lt(e, t, l = {}) {\n const { window: a = Ye, ...n } = l;\n let o;\n const s = /* @__PURE__ */ Jt(() => a && \"ResizeObserver\" in a), d = () => {\n o && (o.disconnect(), o = void 0);\n }, r = te(S(() => {\n const h = H(e);\n return Array.isArray(h) ? h.map((f) => Ce(f)) : [Ce(h)];\n }), (h) => {\n if (d(), s.value && a) {\n o = new ResizeObserver(t);\n for (const f of h) f && o.observe(f, n);\n }\n }, {\n immediate: !0,\n flush: \"post\"\n }), i = () => {\n d(), r();\n };\n return Ht(i), {\n isSupported: s,\n stop: i\n };\n}\nfunction Ne(e, t = {}) {\n const { reset: l = !0, windowResize: a = !0, windowScroll: n = !0, immediate: o = !0, updateTiming: s = \"sync\" } = t, d = he(0), r = he(0), i = he(0), h = he(0), f = he(0), x = he(0), b = he(0), m = he(0);\n function p() {\n const c = Ce(e);\n if (!c) {\n l && (d.value = 0, r.value = 0, i.value = 0, h.value = 0, f.value = 0, x.value = 0, b.value = 0, m.value = 0);\n return;\n }\n const M = c.getBoundingClientRect();\n d.value = M.height, r.value = M.bottom, i.value = M.left, h.value = M.right, f.value = M.top, x.value = M.width, b.value = M.x, m.value = M.y;\n }\n function u() {\n s === \"sync\" ? p() : s === \"next-frame\" && requestAnimationFrame(() => p());\n }\n return lt(e, u), te(() => Ce(e), (c) => !c && u()), Qt(e, u, { attributeFilter: [\"style\", \"class\"] }), n && Fe(\"scroll\", u, {\n capture: !0,\n passive: !0\n }), a && Fe(\"resize\", u, { passive: !0 }), Xn(() => {\n o && u();\n }), {\n height: d,\n bottom: r,\n left: i,\n right: h,\n top: f,\n width: x,\n x: b,\n y: m,\n update: u\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 Jn(e, t = !1) {\n const l = he(t);\n let a = \"\";\n te(Un(e), (s) => {\n const d = dt(H(s));\n if (d) {\n const r = d;\n if (ct.get(r) || ct.set(r, r.style.overflow), r.style.overflow !== \"hidden\" && (a = 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 n = () => {\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 = a, ct.delete(s), l.value = !1);\n };\n return Ht(o), S({\n get() {\n return l.value;\n },\n set(s) {\n s ? n() : o();\n }\n });\n}\nconst en = {\n ATextInput: \"text\",\n ATextarea: \"text\",\n ANumericInput: \"number\",\n ACheckbox: \"boolean\",\n ADate: \"date\",\n ADatePicker: \"date\",\n ADateSelection: \"date\",\n ADateTime: \"datetime\",\n ADuration: \"text\",\n ADateRange: \"date\",\n ADropdown: \"select\",\n ACodeEditor: \"code\",\n AFormLink: \"link\",\n AFileAttach: \"attach\"\n};\nfunction tn(e) {\n return e ? en[e] : void 0;\n}\nconst Qn = {\n AFormLink: \"inline\",\n AForm: \"expand\",\n ATable: \"expand\"\n};\n[\n .../* @__PURE__ */ new Set([...Object.keys(en), ...Object.keys(Qn)])\n].toSorted();\nconst el = (e) => {\n const t = new DOMParser().parseFromString(e, \"text/html\");\n return Array.from(t.body.childNodes).some((l) => l.nodeType === 1);\n}, tl = (e = 8) => Array.from({ length: e }, () => Math.floor(Math.random() * 16).toString(16)).join(\"\");\nfunction nn(e, t) {\n const l = t[e];\n if (l.isRoot || l.parent === null || l.parent === void 0)\n return !0;\n const a = l.parent;\n return a < 0 || a >= t.length ? !1 : (t[a].childrenOpen || !1) && nn(a, t);\n}\nfunction nl(e, t, l) {\n const a = l.filterType || \"text\", n = t.value;\n if (!n && a !== \"dateRange\" && a !== \"checkbox\") return !0;\n switch (a) {\n case \"text\":\n return (typeof e == \"object\" && e !== null ? Object.values(e).join(\" \") : String(e || \"\")).toLowerCase().includes(String(n).toLowerCase());\n case \"number\": {\n const o = Number(e), s = Number(n);\n return !isNaN(o) && !isNaN(s) && o === s;\n }\n case \"select\":\n return e === n;\n case \"checkbox\":\n return n === !0 ? !!e : !0;\n case \"date\": {\n let o;\n if (typeof e == \"number\") {\n const d = new Date(e), r = (/* @__PURE__ */ new Date()).getFullYear();\n o = new Date(r, d.getMonth(), d.getDate());\n } else\n o = new Date(String(e));\n const s = new Date(String(n));\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 d;\n if (typeof e == \"number\") {\n const r = new Date(e), i = (/* @__PURE__ */ new Date()).getFullYear();\n d = new Date(i, r.getMonth(), r.getDate());\n } else\n d = new Date(String(e));\n return !(o && d < new Date(String(o)) || s && d > new Date(String(s)));\n }\n default:\n return !0;\n }\n}\nfunction ll(e, t) {\n return t && e === 0 && t > 0 ? `${t}ch` : \"inherit\";\n}\nconst ol = (e) => {\n const t = e.id || tl(), l = e.linkResolver ?? null;\n return yn(`table-${t}`, () => {\n const a = () => {\n const v = [Object.assign({}, { rowModified: !1 })], w = /* @__PURE__ */ new Set();\n for (let j = 0; j < o.value.length; j++) {\n const U = o.value[j];\n U.parent !== null && U.parent !== void 0 && w.add(U.parent);\n }\n const $ = (j) => o.value[j]?.gantt !== void 0, z = (j) => {\n for (let U = 0; U < o.value.length; U++)\n if (o.value[U].parent === j && ($(U) || z(U)))\n return !0;\n return !1;\n }, Q = (j) => {\n const U = s.value, ee = U.view === \"tree\" || U.view === \"tree-gantt\" ? U.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(j);\n case \"leaf\":\n return !0;\n // All nodes should be expanded\n default:\n return !0;\n }\n };\n for (let j = 0; j < o.value.length; j++) {\n const U = o.value[j], ee = U.parent === null || U.parent === void 0, ye = w.has(j);\n v[j] = {\n childrenOpen: Q(j),\n expanded: !1,\n indent: U.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: U.parent\n };\n }\n return v;\n }, n = A(e.columns), o = A(e.rows), s = A(e.config || {}), d = A({}), r = A({}), i = S(() => {\n const v = {};\n for (const [w, $] of n.value.entries())\n for (const [z, Q] of o.value.entries())\n v[`${w}:${z}`] = Q[$.name];\n return v;\n }), h = S({\n get: () => {\n const v = a();\n for (let w = 0; w < v.length; w++)\n d.value[w] && (v[w].rowModified = d.value[w]), r.value[w] && (r.value[w].childrenOpen !== void 0 && (v[w].childrenOpen = r.value[w].childrenOpen), r.value[w].expanded !== void 0 && (v[w].expanded = r.value[w].expanded));\n if (D.value)\n for (let w = 0; w < v.length; w++)\n v[w].isRoot || (v[w].open = nn(w, v));\n return v;\n },\n set: (v) => {\n JSON.stringify(v) !== JSON.stringify(h.value) && (h.value = v);\n }\n }), f = A(e.modal || { visible: !1 }), x = A({}), b = A([]), m = A([]), p = A([]), u = A({\n column: null,\n direction: null\n }), c = A({}), M = S(() => n.value.some((v) => v.pinned)), C = S(() => s.value.view === \"gantt\" || s.value.view === \"tree-gantt\"), D = S(() => s.value.view === \"tree\" || s.value.view === \"tree-gantt\"), I = S(() => {\n const v = s.value;\n return v.view === \"gantt\" || v.view === \"tree-gantt\" ? v.dependencyGraph !== !1 : !0;\n }), V = S(() => `${Math.ceil(o.value.length / 100 + 1)}ch`), O = S(\n () => s.value.view ? [\"list\", \"tree\", \"tree-gantt\", \"list-expansion\"].includes(s.value.view) : !1\n ), R = S(() => {\n let v = o.value.map((w, $) => ({\n ...w,\n originalIndex: $\n }));\n if (Object.entries(c.value).forEach(([w, $]) => {\n const z = parseInt(w), Q = n.value[z];\n !Q || !($.value || $.startValue || $.endValue || Q.filterType === \"checkbox\" && $.value !== void 0) || (v = v.filter((j) => {\n const U = j[Q.name];\n return nl(U, $, Q);\n }));\n }), u.value.column !== null && u.value.direction) {\n const w = n.value[u.value.column], $ = u.value.direction;\n v.sort((z, Q) => {\n let j = z[w.name], U = Q[w.name];\n j == null && (j = \"\"), U == null && (U = \"\");\n const ee = Number(j), ye = Number(U);\n if (!isNaN(ee) && !isNaN(ye) && j !== \"\" && U !== \"\")\n return $ === \"asc\" ? ee - ye : ye - ee;\n {\n const Vt = String(j).toLowerCase(), Bt = String(U).toLowerCase();\n return $ === \"asc\" ? Vt.localeCompare(Bt) : Bt.localeCompare(Vt);\n }\n });\n }\n return v;\n }), F = (v, w) => i.value[`${v}:${w}`], K = (v, w, $) => {\n const z = `${v}:${w}`, Q = n.value[v];\n i.value[z] !== $ && (d.value[w] = !0), i.value[z] = $, o.value[w] = {\n ...o.value[w],\n [Q.name]: $\n };\n }, J = (v) => {\n o.value = v;\n }, le = (v, w, $) => {\n const z = `${v}:${w}`;\n i.value[z] !== $ && (d.value[w] = !0, x.value[z] = $);\n }, re = (v) => {\n const w = n.value.indexOf(v) === n.value.length - 1, $ = s.value.fullWidth ? v.resizable && !w : v.resizable;\n return {\n width: v.width || \"40ch\",\n textAlign: v.align || \"center\",\n ...$ && {\n resize: \"horizontal\",\n overflow: \"hidden\",\n whiteSpace: \"nowrap\"\n }\n };\n }, Te = (v, w) => {\n if (v < 0 || v >= n.value.length) return;\n const $ = Math.max(w, 40);\n n.value[v] = {\n ...n.value[v],\n width: `${$}px`\n };\n }, Me = (v) => {\n const w = o.value[v];\n return C.value && w.gantt !== void 0;\n }, He = (v) => !D.value || h.value[v].isRoot || h.value[v].open, Ve = (v) => !D.value && s.value.view !== \"list-expansion\" ? \"\" : D.value && (h.value[v].isRoot || h.value[v].isParent) ? h.value[v].childrenOpen ? \"▼\" : \"►\" : s.value.view === \"list-expansion\" ? h.value[v].expanded ? \"▼\" : \"►\" : \"\", Pe = (v) => {\n if (D.value) {\n const w = r.value[v] || {}, $ = !(w.childrenOpen ?? h.value[v].childrenOpen);\n r.value[v] = {\n ...w,\n childrenOpen: $\n }, $ || fe(v);\n } else if (s.value.view === \"list-expansion\") {\n const w = r.value[v] || {}, $ = w.expanded ?? h.value[v].expanded;\n r.value[v] = {\n ...w,\n expanded: !$\n };\n }\n }, fe = (v) => {\n for (let w = 0; w < o.value.length; w++)\n if (h.value[w].parent === v) {\n const $ = r.value[w] || {};\n r.value[w] = {\n ...$,\n childrenOpen: !1\n }, fe(w);\n }\n }, Se = (v, w) => {\n const $ = F(v, w);\n return E(v, w, $);\n }, E = (v, w, $) => {\n const z = n.value[v], Q = o.value[w], j = z.format;\n if (!j) {\n const U = tn(z.component);\n return U === \"boolean\" ? $ ? \"✓\" : \"✗\" : U === \"date\" ? $ != null ? new Date(String($)).toLocaleDateString() : $ : U === \"datetime\" && $ != null ? new Date(String($)).toLocaleString() : $;\n }\n return typeof j == \"function\" ? j($, { table: i.value, row: Q, column: z }) : typeof j == \"string\" ? Function(`\"use strict\";return (${j})`)()($, { table: i.value, row: Q, column: z }) : $;\n }, T = (v) => {\n v.target instanceof Node && f.value.parent?.contains(v.target) || f.value.visible && (f.value.visible = !1);\n }, L = (v) => {\n const w = o.value[v.rowIndex]?.gantt;\n w && (v.type === \"resize\" ? v.edge === \"start\" ? (w.startIndex = v.newStart, w.endIndex = v.end, w.colspan = w.endIndex - w.startIndex) : v.edge === \"end\" && (w.startIndex = v.start, w.endIndex = v.newEnd, w.colspan = w.endIndex - w.startIndex) : v.type === \"bar\" && (w.startIndex = v.newStart, w.endIndex = v.newEnd, w.colspan = w.endIndex - w.startIndex));\n }, G = (v) => {\n const w = b.value.findIndex(($) => $.id === v.id);\n w >= 0 ? b.value[w] = v : b.value.push(v);\n }, N = (v) => {\n const w = b.value.findIndex(($) => $.id === v);\n w >= 0 && b.value.splice(w, 1);\n }, ae = (v) => {\n const w = m.value.findIndex(($) => $.id === v.id);\n w >= 0 ? m.value[w] = v : m.value.push(v);\n }, Ae = (v) => {\n const w = m.value.findIndex(($) => $.id === v);\n w >= 0 && m.value.splice(w, 1);\n }, Be = (v, w, $) => {\n const z = m.value.find((U) => U.id === v), Q = m.value.find((U) => U.id === w);\n if (!z || !Q)\n return console.warn(\"Cannot create connection: handle not found\"), null;\n const j = {\n id: `connection-${v}-${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: $?.style,\n label: $?.label\n };\n return p.value.push(j), j;\n }, Z = (v) => {\n const w = p.value.findIndex(($) => $.id === v);\n return w >= 0 ? (p.value.splice(w, 1), !0) : !1;\n }, q = (v) => p.value.filter((w) => w.from.barId === v || w.to.barId === v), _ = (v) => m.value.filter((w) => w.barId === v), oe = (v) => {\n if (n.value[v].sortable === !1) return;\n let w;\n u.value.column === v && u.value.direction === \"asc\" ? w = \"desc\" : w = \"asc\", u.value.column = v, u.value.direction = w;\n }, de = (v, w) => {\n !w.value && !w.startValue && !w.endValue ? delete c.value[v] : c.value[v] = w;\n }, ie = (v) => {\n delete c.value[v];\n }, ce = (v, w = \"end\") => {\n const $ = {};\n for (const Q of n.value)\n $[Q.name] = \"\";\n v && Object.assign($, v);\n let z;\n return w === \"start\" ? (z = 0, o.value.unshift($)) : w === \"end\" ? (z = o.value.length, o.value.push($)) : (z = Math.max(0, Math.min(w, o.value.length)), o.value.splice(z, 0, $)), z;\n };\n return {\n // state\n columns: n,\n config: s,\n connectionHandles: m,\n connectionPaths: p,\n display: h,\n filterState: c,\n ganttBars: b,\n modal: f,\n rows: o,\n sortState: u,\n table: i,\n updates: x,\n // getters\n filteredRows: R,\n hasPinnedColumns: M,\n isGanttView: C,\n isTreeView: D,\n isDependencyGraphEnabled: I,\n numberedRowWidth: V,\n zeroColumn: O,\n // resolver\n linkResolver: l,\n // actions\n addRow: ce,\n clearFilter: ie,\n closeModal: T,\n createConnection: Be,\n deleteConnection: Z,\n deleteRow: (v) => {\n if (v < 0 || v >= o.value.length)\n return null;\n const [w] = o.value.splice(v, 1);\n delete d.value[v], delete r.value[v];\n const $ = {}, z = {};\n for (const [Q, j] of Object.entries(d.value)) {\n const U = parseInt(Q);\n U > v ? $[U - 1] = j : $[U] = j;\n }\n for (const [Q, j] of Object.entries(r.value)) {\n const U = parseInt(Q);\n U > v ? z[U - 1] = j : z[U] = j;\n }\n return d.value = $, r.value = z, w;\n },\n duplicateRow: (v) => {\n if (v < 0 || v >= o.value.length)\n return -1;\n const w = o.value[v], $ = JSON.parse(JSON.stringify(w)), z = v + 1;\n return o.value.splice(z, 0, $), z;\n },\n getCellData: F,\n getCellDisplayValue: Se,\n getConnectionsForBar: q,\n getFormattedValue: E,\n getHandlesForBar: _,\n getHeaderCellStyle: re,\n getRowExpandSymbol: Ve,\n insertRowAbove: (v, w) => {\n const $ = Math.max(0, v);\n return ce(w, $);\n },\n insertRowBelow: (v, w) => {\n const $ = Math.min(v + 1, o.value.length);\n return ce(w, $);\n },\n isRowGantt: Me,\n isRowVisible: He,\n moveRow: (v, w) => {\n if (v < 0 || v >= o.value.length || w < 0 || w >= o.value.length || v === w)\n return !1;\n const [$] = o.value.splice(v, 1);\n o.value.splice(w, 0, $);\n const z = {}, Q = {};\n for (const [j, U] of Object.entries(d.value)) {\n const ee = parseInt(j);\n let ye = ee;\n ee === v ? ye = w : v < w ? ee > v && ee <= w && (ye = ee - 1) : ee >= w && ee < v && (ye = ee + 1), z[ye] = U;\n }\n for (const [j, U] of Object.entries(r.value)) {\n const ee = parseInt(j);\n let ye = ee;\n ee === v ? ye = w : v < w ? ee > v && ee <= w && (ye = ee - 1) : ee >= w && ee < v && (ye = ee + 1), Q[ye] = U;\n }\n return d.value = z, r.value = Q, !0;\n },\n registerConnectionHandle: ae,\n registerGanttBar: G,\n resizeColumn: Te,\n setCellData: K,\n setCellText: le,\n setFilter: de,\n sortByColumn: oe,\n toggleRowExpand: Pe,\n unregisterConnectionHandle: Ae,\n unregisterGanttBar: N,\n updateGanttBar: L,\n updateRows: J\n };\n })();\n}, al = [\"data-colindex\", \"data-rowindex\", \"data-editable\", \"contenteditable\", \"tabindex\"], sl = [\"innerHTML\"], rl = { key: 2 }, il = /* @__PURE__ */ ne({\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\"), a = e.store.getCellData(e.colIndex, e.rowIndex), n = A(\"\"), o = A(!1), s = e.store.columns[e.colIndex], d = e.store.rows[e.rowIndex], r = s.align || \"center\", i = s.width || \"40ch\", h = S(() => e.store.getCellDisplayValue(e.colIndex, e.rowIndex)), f = A(null);\n Le(() => {\n if (!s.linkDoctype) return;\n const R = e.store.getCellData(e.colIndex, e.rowIndex);\n if (R != null && typeof R == \"object\") {\n const K = R, J = K.displayText ?? K.id;\n (typeof J == \"string\" || typeof J == \"number\") && (f.value = String(J));\n return;\n }\n const F = e.store.linkResolver;\n !F || typeof R != \"string\" || R === \"\" || F(s.linkDoctype, R).then((K) => (K != null && (f.value = K), K));\n });\n const x = S(() => f.value ?? h.value), b = S(() => typeof x.value == \"string\" ? el(x.value) : !1), m = S(() => ({\n textAlign: r,\n width: i,\n fontWeight: o.value ? \"bold\" : \"inherit\",\n paddingLeft: ll(e.colIndex, e.store.display[e.rowIndex]?.indent)\n })), p = S(() => ({\n \"sticky-column\": e.pinned,\n \"cell-modified\": o.value\n })), u = () => {\n M(), c();\n }, c = () => {\n const { left: R, bottom: F, width: K, height: J } = Ne(l);\n s.mask, s.modalComponent && e.store.$patch((le) => {\n le.modal.visible = !0, le.modal.colIndex = e.colIndex, le.modal.rowIndex = e.rowIndex, le.modal.left = R.value, le.modal.bottom = F.value, le.modal.width = K.value, le.modal.height = J.value, le.modal.cell = l.value, typeof s.modalComponent == \"function\" ? le.modal.component = s.modalComponent({ table: e.store.table, row: d, column: s }) : le.modal.component = s.modalComponent, le.modal.componentProps = s.modalComponentExtraProps;\n });\n };\n if (e.addNavigation) {\n let R = {\n ...nt,\n \"keydown.f2\": c,\n \"keydown.alt.up\": c,\n \"keydown.alt.down\": c,\n \"keydown.alt.left\": c,\n \"keydown.alt.right\": c\n };\n typeof e.addNavigation == \"object\" && (R = {\n ...R,\n ...e.addNavigation\n }), Kt([\n {\n selectors: l,\n handlers: R\n }\n ]);\n }\n const M = () => {\n if (l.value && s.edit) {\n const R = window.getSelection();\n if (R)\n try {\n const F = document.createRange();\n F.selectNodeContents && (F.selectNodeContents(l.value), R.removeAllRanges(), R.addRange(F));\n } catch {\n }\n }\n }, C = () => {\n l.value && (n.value = l.value.textContent, M());\n }, D = () => {\n try {\n const R = window.getSelection();\n if (R && R.rangeCount > 0 && l.value) {\n const F = R.getRangeAt(0), K = F.cloneRange();\n if (K.selectNodeContents && K.setEnd)\n return K.selectNodeContents(l.value), K.setEnd(F.endContainer, F.endOffset), K.toString().length;\n }\n } catch {\n }\n return 0;\n }, I = (R) => {\n if (l.value)\n try {\n const F = window.getSelection();\n if (!F) return;\n let K = 0;\n const J = document.createTreeWalker ? document.createTreeWalker(l.value, NodeFilter.SHOW_TEXT, null) : null;\n if (!J) return;\n let le, re = null;\n for (; le = J.nextNode(); ) {\n const Te = le, Me = K + Te.textContent.length;\n if (R <= Me && (re = document.createRange(), re.setStart && re.setEnd)) {\n re.setStart(Te, R - K), re.setEnd(Te, R - K);\n break;\n }\n K = Me;\n }\n re && F.removeAllRanges && F.addRange && (F.removeAllRanges(), F.addRange(re));\n } catch {\n }\n }, V = (R) => {\n if (!s.edit) return;\n const F = R.target;\n if (F.textContent === n.value)\n return;\n const K = D();\n n.value = F.textContent, s.format ? (o.value = F.textContent !== e.store.getFormattedValue(e.colIndex, e.rowIndex, a), e.store.setCellText(e.colIndex, e.rowIndex, F.textContent)) : (o.value = F.textContent !== a, e.store.setCellData(e.colIndex, e.rowIndex, F.textContent)), st().then(() => I(K));\n }, O = /* @__PURE__ */ jn(V, e.debounce);\n return t({\n currentData: n\n }), (R, F) => (g(), k(\"td\", {\n ref: \"cell\",\n \"data-colindex\": e.colIndex,\n \"data-rowindex\": e.rowIndex,\n \"data-editable\": P(s).edit,\n contenteditable: P(s).edit,\n tabindex: e.tabIndex,\n spellcheck: !1,\n style: $e(m.value),\n class: ue([\"atable-cell\", p.value]),\n onFocus: C,\n onPaste: V,\n onInput: F[0] || (F[0] = //@ts-ignore\n (...K) => P(O) && P(O)(...K)),\n onClick: u\n }, [\n P(s).cellComponent ? (g(), me(Ze(P(s).cellComponent), at({\n key: 0,\n value: x.value\n }, P(s).cellComponentProps), null, 16, [\"value\"])) : b.value ? (g(), k(\"span\", {\n key: 1,\n innerHTML: x.value\n }, null, 8, sl)) : (g(), k(\"span\", rl, B(x.value), 1))\n ], 46, al));\n }\n}), 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__ */ ne({\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 mn((Z) => ({\n v564d6da1: n.value,\n v4f540c19: Z.colspan\n }));\n const a = l, n = A(e.color.length >= 6 ? e.color : \"#cccccc\"), o = `gantt-bar-row-${e.rowIndex}-col-${e.colIndex}`, s = pe(\"container\"), d = pe(\"bar\"), r = pe(\"leftResizeHandle\"), i = pe(\"rightResizeHandle\"), h = pe(\"leftConnectionHandle\"), f = pe(\"rightConnectionHandle\"), { width: x } = Ne(s), { left: b, right: m } = Ne(d), p = A(e.start), u = A(e.end || p.value + e.colspan), c = A(!1), M = A(!1), C = A(!1), D = A(!1), I = A(!1), V = A({ startX: 0, startY: 0, endX: 0, endY: 0 }), O = S(() => Te.value || le.value || re.value), R = S(() => e.colspan > 0 ? x.value / e.colspan : 0), F = S(() => {\n const Z = p.value / e.colspan * 100, q = u.value / e.colspan * 100;\n return {\n left: `${Z}%`,\n width: `${q - Z}%`,\n backgroundColor: n.value\n };\n }), K = S(() => ({\n position: \"fixed\",\n top: 0,\n left: 0,\n width: \"100vw\",\n height: \"100vh\",\n pointerEvents: \"none\",\n zIndex: 1e3\n })), J = A({ startX: 0, startPos: 0 }), { isDragging: le } = ut(r, {\n axis: \"x\",\n onStart: () => Me(b.value, p.value),\n onMove: ({ x: Z }) => He(Z),\n onEnd: ({ x: Z }) => Ve(Z)\n }), { isDragging: re } = ut(i, {\n axis: \"x\",\n onStart: () => Me(m.value, u.value),\n onMove: ({ x: Z }) => Pe(Z),\n onEnd: ({ x: Z }) => fe(Z)\n }), { isDragging: Te } = ut(d, {\n exact: !0,\n axis: \"x\",\n onStart: () => Me(b.value, p.value),\n onMove: ({ x: Z }) => Se(Z),\n onEnd: ({ x: Z }) => E(Z)\n });\n Le(() => {\n T();\n }), hn(() => {\n L();\n });\n function Me(Z, q) {\n d.value && (d.value.style.transition = \"none\"), J.value = { startX: Z, startPos: q };\n }\n function He(Z) {\n if (!le.value || !d.value) return;\n const q = (Z - J.value.startX) / R.value, _ = Math.max(0, Math.min(u.value - 1, J.value.startPos + q));\n d.value.style.left = `${_ / e.colspan * 100}%`, d.value.style.width = `${(u.value - _) / e.colspan * 100}%`;\n }\n function Ve(Z) {\n if (!d.value) return;\n const q = Z - J.value.startX, _ = Math.round(q / R.value), oe = p.value, de = Math.max(0, Math.min(u.value - 1, J.value.startPos + _));\n p.value = de, e.store.updateGanttBar({\n rowIndex: e.rowIndex,\n colIndex: e.colIndex,\n type: \"resize\",\n edge: \"start\",\n oldStart: oe,\n newStart: de,\n end: u.value,\n delta: _,\n oldColspan: u.value - oe,\n newColspan: u.value - de\n });\n }\n function Pe(Z) {\n if (!re.value || !d.value) return;\n const q = (Z - J.value.startX) / R.value, _ = Math.max(p.value + 1, Math.min(e.columnsCount, J.value.startPos + q));\n d.value.style.width = `${(_ - p.value) / e.colspan * 100}%`;\n }\n function fe(Z) {\n if (!d.value) return;\n const q = Z - J.value.startX, _ = Math.round(q / R.value), oe = u.value, de = Math.max(p.value + 1, Math.min(e.columnsCount, J.value.startPos + _));\n u.value = de, e.store.updateGanttBar({\n rowIndex: e.rowIndex,\n colIndex: e.colIndex,\n type: \"resize\",\n edge: \"end\",\n oldEnd: oe,\n newEnd: de,\n start: p.value,\n delta: _,\n oldColspan: oe - p.value,\n newColspan: de - p.value\n });\n }\n function Se(Z) {\n if (!Te.value || !d.value) return;\n const q = (Z - J.value.startX) / R.value, _ = u.value - p.value, oe = Math.max(0, Math.min(J.value.startPos + q, e.columnsCount - _));\n d.value.style.left = `${oe / e.colspan * 100}%`;\n }\n function E(Z) {\n if (!d.value) return;\n const q = Z - J.value.startX, _ = Math.round(q / R.value), oe = u.value - p.value, de = p.value, ie = u.value;\n let ce = J.value.startPos + _, v = ce + oe;\n ce < 0 ? (ce = 0, v = oe) : v > e.columnsCount && (v = e.columnsCount, ce = v - oe), p.value = ce, u.value = v, e.store.updateGanttBar({\n rowIndex: e.rowIndex,\n colIndex: e.colIndex,\n type: \"bar\",\n oldStart: de,\n oldEnd: ie,\n newStart: ce,\n newEnd: v,\n delta: _,\n colspan: v - ce\n });\n }\n function T() {\n const { x: Z, y: q } = Ne(d), { x: _, y: oe } = Ne(h), { x: de, y: ie } = Ne(f);\n e.store.registerGanttBar({\n id: o,\n rowIndex: e.rowIndex,\n colIndex: e.colIndex,\n startIndex: p,\n endIndex: u,\n color: n,\n label: e.label,\n position: { x: Z, y: q }\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: _, y: oe },\n visible: c,\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: de, y: ie },\n visible: M,\n barId: o\n }));\n }\n function L() {\n e.store.unregisterGanttBar(o), e.store.isDependencyGraphEnabled && (e.store.unregisterConnectionHandle(`${o}-connection-left`), e.store.unregisterConnectionHandle(`${o}-connection-right`));\n }\n function G() {\n e.store.isDependencyGraphEnabled && (c.value = !0, M.value = !0);\n }\n function N() {\n !C.value && !D.value && (c.value = !1, M.value = !1);\n }\n function ae(Z, q) {\n q.preventDefault(), q.stopPropagation(), I.value = !0, Z === \"left\" ? C.value = !0 : D.value = !0;\n const _ = Z === \"left\" ? h.value : f.value;\n if (_) {\n const ie = _.getBoundingClientRect(), ce = ie.left + ie.width / 2, v = ie.top + ie.height / 2;\n V.value = { startX: ce, startY: v, endX: ce, endY: v };\n }\n const oe = (ie) => {\n V.value.endX = ie.clientX, V.value.endY = ie.clientY;\n }, de = (ie) => {\n Ae(ie, Z), Be(oe, de);\n };\n document.addEventListener(\"mousemove\", oe), document.addEventListener(\"mouseup\", de);\n }\n function Ae(Z, q) {\n const _ = document.elementFromPoint(Z.clientX, Z.clientY)?.closest(\".connection-handle\");\n if (_ && _ !== (q === \"left\" ? h.value : f.value)) {\n const oe = _.closest(\".gantt-bar\");\n if (oe) {\n const de = parseInt(oe.getAttribute(\"data-rowindex\") || \"0\"), ie = parseInt(oe.getAttribute(\"data-colindex\") || \"0\"), ce = _.classList.contains(\"left-connection-handle\") ? \"left\" : \"right\", v = `gantt-bar-row-${de}-col-${ie}`, w = e.store.createConnection(\n `${o}-connection-${q}`,\n `${v}-connection-${ce}`\n );\n w && a(\"connection:create\", w);\n }\n }\n }\n function Be(Z, q) {\n I.value = !1, C.value = !1, D.value = !1, document.removeEventListener(\"mousemove\", Z), document.removeEventListener(\"mouseup\", q), d.value?.matches(\":hover\") || N();\n }\n return t({\n barStyle: F,\n cleanupConnectionDrag: Be,\n currentEnd: u,\n handleConnectionDrop: Ae,\n isLeftConnectionDragging: C,\n isLeftConnectionVisible: c,\n isRightConnectionDragging: D,\n isRightConnectionVisible: M,\n showDragPreview: I\n }), (Z, q) => (g(), k(\"td\", {\n class: \"aganttcell\",\n colspan: e.colspan\n }, [\n y(\"div\", dl, [\n y(\"div\", {\n ref: \"bar\",\n \"data-rowindex\": e.rowIndex,\n \"data-colindex\": e.colIndex,\n class: ue([\"gantt-bar\", { \"is-dragging\": O.value }]),\n style: $e(F.value),\n onMouseenter: G,\n onMouseleave: N\n }, [\n e.store.isDependencyGraphEnabled ? (g(), k(\"div\", {\n key: 0,\n ref: \"leftConnectionHandle\",\n class: ue([\"connection-handle left-connection-handle\", { visible: c.value, \"is-dragging\": C.value }]),\n onMousedown: q[0] || (q[0] = se((_) => ae(\"left\", _), [\"stop\"]))\n }, [...q[2] || (q[2] = [\n y(\"div\", { class: \"connection-dot\" }, null, -1)\n ])], 34)) : W(\"\", !0),\n e.store.isDependencyGraphEnabled ? (g(), k(\"div\", {\n key: 1,\n ref: \"rightConnectionHandle\",\n class: ue([\"connection-handle right-connection-handle\", { visible: M.value, \"is-dragging\": D.value }]),\n onMousedown: q[1] || (q[1] = se((_) => ae(\"right\", _), [\"stop\"]))\n }, [...q[3] || (q[3] = [\n y(\"div\", { class: \"connection-dot\" }, null, -1)\n ])], 34)) : W(\"\", !0),\n y(\"div\", {\n ref: \"leftResizeHandle\",\n class: ue([\"resize-handle left-resize-handle\", { \"is-dragging\": P(le) }])\n }, [...q[4] || (q[4] = [\n y(\"div\", { class: \"handle-grip\" }, null, -1),\n y(\"div\", { class: \"vertical-indicator left-indicator\" }, null, -1)\n ])], 2),\n e.label ? (g(), k(\"label\", vl, B(e.label), 1)) : W(\"\", !0),\n y(\"div\", {\n ref: \"rightResizeHandle\",\n class: ue([\"resize-handle right-resize-handle\", { \"is-dragging\": P(re) }])\n }, [...q[5] || (q[5] = [\n y(\"div\", { class: \"handle-grip\" }, null, -1),\n y(\"div\", { class: \"vertical-indicator right-indicator\" }, null, -1)\n ])], 2)\n ], 46, cl)\n ], 512),\n e.store.isDependencyGraphEnabled && I.value ? (g(), k(\"svg\", {\n key: 0,\n style: $e(K.value)\n }, [\n y(\"line\", {\n x1: V.value.startX,\n y1: V.value.startY,\n x2: V.value.endX,\n y2: V.value.endY,\n stroke: \"#2196f3\",\n \"stroke-width\": \"2\",\n \"stroke-dasharray\": \"5,5\"\n }, null, 8, fl)\n ], 4)) : W(\"\", !0)\n ], 8, ul));\n }\n}), Ue = (e, t) => {\n const l = e.__vccOpts || e;\n for (const [a, n] of t)\n l[a] = n;\n return l;\n}, hl = /* @__PURE__ */ Ue(ml, [[\"__scopeId\", \"data-v-032ef6d9\"]]), pl = `<?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>`, wl = `<?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>`, yl = `<?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>`, xl = `<?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>`, bl = `<?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 = '<svg viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\"><path d=\"M8 13V3.5M4.5 7 8 3.5 11.5 7\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>', Il = '<svg viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\"><path d=\"M8 3v9.5M4.5 9 8 12.5 11.5 9\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>', Tl = {\n add: pl,\n delete: gl,\n duplicate: wl,\n insertAbove: yl,\n insertBelow: xl,\n move: bl,\n moveUp: Ml,\n moveDown: Il,\n open: kl\n}, Dl = {\n key: 0,\n class: \"row-actions-dropdown\"\n}, Cl = [\"aria-expanded\"], $l = [\"disabled\", \"onClick\"], Sl = [\"innerHTML\"], Al = { class: \"action-label\" }, Ll = {\n key: 1,\n class: \"row-actions-icons\"\n}, Rl = [\"title\", \"aria-label\", \"disabled\", \"onClick\"], El = [\"innerHTML\"], tt = /* @__PURE__ */ ne({\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, a = t, n = pe(\"actionsCell\"), o = pe(\"toggleButton\"), s = A(0), d = A(!1), r = A(!1), i = A({ top: 0, left: 0 }), h = {\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 moveUp: \"Move Up\",\n moveDown: \"Move Down\",\n open: \"Open Record\"\n }, f = S(() => {\n const c = [], M = l.config.actions || {}, C = [\n \"open\",\n \"moveUp\",\n \"moveDown\",\n \"duplicate\",\n \"insertAbove\",\n \"insertBelow\",\n \"add\",\n \"delete\",\n \"move\"\n ];\n for (const D of C) {\n const I = M[D];\n if (I === !1 || I === void 0) continue;\n let V = !0, O = h[D], R = Tl[D], F = !1;\n typeof I == \"object\" && (V = I.enabled !== !1, O = I.label || O, R = I.icon || R, I.disabled && (F = I.disabled(l.rowIndex, l.store))), V && c.push({ type: D, label: O, icon: R, disabled: F });\n }\n return c;\n }), x = S(() => {\n if (l.config.forceDropdown) return !0;\n const c = l.config.dropdownThreshold ?? 150;\n return c === 0 ? !1 : s.value > 0 && s.value < c;\n }), b = S(() => d.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 lt(n, (c) => {\n const M = c[0];\n M && (s.value = M.contentRect.width);\n });\n const m = () => {\n d.value || p(), d.value = !d.value;\n }, p = () => {\n if (!o.value) return;\n const c = o.value.getBoundingClientRect(), M = window.innerHeight, C = window.innerWidth, D = f.value.length * 40 + 16, I = 160, V = M - c.bottom, O = c.top;\n r.value = V < D && O > D;\n let R = c.left;\n R + I > C && (R = Math.max(0, c.right - I)), i.value = {\n top: r.value ? c.top : c.bottom,\n left: R\n };\n };\n xt(n, () => {\n d.value = !1;\n });\n const u = (c, M) => {\n d.value = !1;\n const C = l.config.actions?.[c];\n typeof C == \"object\" && C.handler && C.handler(l.rowIndex, l.store) === !1 || a(\"action\", c, l.rowIndex, M);\n };\n return (c, M) => (g(), k(\"td\", {\n ref: \"actionsCell\",\n class: ue([\"atable-row-actions\", { \"sticky-column\": e.position === \"before-index\", \"dropdown-active\": d.value }])\n }, [\n x.value ? (g(), k(\"div\", Dl, [\n y(\"button\", {\n ref: \"toggleButton\",\n type: \"button\",\n class: \"row-actions-toggle\",\n \"aria-expanded\": d.value,\n \"aria-haspopup\": \"true\",\n onClick: se(m, [\"stop\"])\n }, [...M[0] || (M[0] = [\n y(\"span\", { class: \"dropdown-icon\" }, \"⋮\", -1)\n ])], 8, Cl),\n X(y(\"div\", {\n class: ue([\"row-actions-menu\", { \"menu-flipped\": r.value }]),\n style: $e(b.value),\n role: \"menu\"\n }, [\n (g(!0), k(Y, null, we(f.value, (C) => (g(), k(\"button\", {\n key: C.type,\n type: \"button\",\n class: \"row-action-menu-item\",\n role: \"menuitem\",\n disabled: C.disabled,\n onClick: se((D) => u(C.type, D), [\"stop\"])\n }, [\n y(\"span\", {\n class: \"action-icon\",\n innerHTML: C.icon\n }, null, 8, Sl),\n y(\"span\", Al, B(C.label), 1)\n ], 8, $l))), 128))\n ], 6), [\n [xe, d.value]\n ])\n ])) : (g(), k(\"div\", Ll, [\n (g(!0), k(Y, null, we(f.value, (C) => (g(), k(\"button\", {\n key: C.type,\n type: \"button\",\n class: \"row-action-btn\",\n title: C.label,\n \"aria-label\": C.label,\n disabled: C.disabled,\n onClick: se((D) => u(C.type, D), [\"stop\"])\n }, [\n y(\"span\", {\n class: \"action-icon\",\n innerHTML: C.icon\n }, null, 8, El)\n ], 8, Rl))), 128))\n ]))\n ], 2));\n }\n}), Hl = [\"tabindex\"], Vl = [\"tabindex\"], Bl = [\"colspan\"], Fl = /* @__PURE__ */ ne({\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, a = pe(\"rowEl\"), n = S(() => e.store.isRowVisible(e.rowIndex)), o = S(() => e.store.getRowExpandSymbol(e.rowIndex)), s = S(() => e.store.config.clickable ?? !1), d = S(() => e.store.config.rowActions || { enabled: !1 }), r = S(() => d.value.enabled), i = S(() => d.value.position || \"before-index\"), h = S(() => e.store.config.view === \"list-expansion\" && !!e.store.display[e.rowIndex]?.expanded), f = S(() => {\n const p = e.store.config.view === \"uncounted\" ? 0 : 1, u = r.value ? 1 : 0;\n return e.store.columns.length + p + u;\n }), x = (p, u, c) => {\n l(\"row:action\", p, u, c);\n }, b = (p) => {\n const u = p.target;\n u.closest(\".atable-row-actions\") || u.closest(\".tree-index\") || u.closest(\".expansion-index\") || l(\"row:click\", e.rowIndex, p);\n }, m = e.store.config.view === \"list-expansion\";\n if (e.addNavigation || m) {\n let p = {};\n e.addNavigation === !0 ? p = { ...nt } : typeof e.addNavigation == \"object\" && (p = { ...nt, ...e.addNavigation }), m && !p[\"keydown.control.g\"] && (p[\"keydown.control.g\"] = (u) => {\n u.stopPropagation(), u.preventDefault(), e.store.toggleRowExpand(e.rowIndex);\n }), Kt([\n {\n selectors: a,\n handlers: p\n }\n ]);\n }\n return (p, u) => (g(), k(Y, null, [\n X(y(\"tr\", at(p.$attrs, {\n ref: \"rowEl\",\n tabindex: e.tabIndex,\n class: [\"atable-row\", { \"atable-row-clickable\": s.value }],\n onClick: b\n }), [\n r.value && i.value === \"before-index\" ? (g(), me(tt, {\n key: 0,\n \"row-index\": e.rowIndex,\n store: e.store,\n config: d.value,\n position: i.value,\n onAction: x\n }, null, 8, [\"row-index\", \"store\", \"config\", \"position\"])) : W(\"\", !0),\n e.store.config.view !== \"uncounted\" ? De(p.$slots, \"index\", { key: 1 }, () => [\n e.store.config.view === \"list\" ? (g(), k(\"td\", {\n key: 0,\n tabIndex: -1,\n class: ue([\"list-index\", e.store.hasPinnedColumns ? \"sticky-index\" : \"\"])\n }, B(e.rowIndex + 1), 3)) : e.store.isTreeView ? (g(), k(\"td\", {\n key: 1,\n tabIndex: -1,\n class: ue([\"tree-index\", e.store.hasPinnedColumns ? \"sticky-index\" : \"\"]),\n onClick: u[0] || (u[0] = (c) => e.store.toggleRowExpand(e.rowIndex))\n }, B(o.value), 3)) : e.store.config.view === \"list-expansion\" ? (g(), k(\"td\", {\n key: 2,\n tabIndex: -1,\n class: ue([\"expansion-index\", e.store.hasPinnedColumns ? \"sticky-index\" : \"\"]),\n onClick: u[1] || (u[1] = (c) => e.store.toggleRowExpand(e.rowIndex))\n }, B(o.value), 3)) : W(\"\", !0)\n ], !0) : W(\"\", !0),\n r.value && i.value === \"after-index\" ? (g(), me(tt, {\n key: 2,\n \"row-index\": e.rowIndex,\n store: e.store,\n config: d.value,\n position: i.value,\n onAction: x\n }, null, 8, [\"row-index\", \"store\", \"config\", \"position\"])) : W(\"\", !0),\n De(p.$slots, \"default\", {}, void 0, !0),\n r.value && i.value === \"end\" ? (g(), me(tt, {\n key: 3,\n \"row-index\": e.rowIndex,\n store: e.store,\n config: d.value,\n position: i.value,\n onAction: x\n }, null, 8, [\"row-index\", \"store\", \"config\", \"position\"])) : W(\"\", !0)\n ], 16, Hl), [\n [xe, n.value]\n ]),\n h.value ? (g(), k(\"tr\", {\n key: 0,\n tabindex: e.tabIndex,\n class: \"atable-expanded-row\"\n }, [\n y(\"td\", {\n tabIndex: -1,\n colspan: f.value,\n class: \"atable-expanded-content\"\n }, [\n De(p.$slots, \"content\", {\n row: e.store.rows[e.rowIndex],\n rowIndex: e.rowIndex,\n store: e.store\n }, void 0, !0)\n ], 8, Bl)\n ], 8, Vl)) : W(\"\", !0)\n ], 64));\n }\n}), ln = /* @__PURE__ */ Ue(Fl, [[\"__scopeId\", \"data-v-4dd47763\"]]), vt = /* @__PURE__ */ new WeakMap(), Pl = {\n mounted(e, t) {\n const l = !t.modifiers.bubble;\n let a;\n if (typeof t.value == \"function\") a = xt(e, t.value, { capture: l });\n else {\n const [n, o] = t.value;\n a = xt(e, n, Object.assign({ capture: l }, o));\n }\n vt.set(e, a);\n },\n unmounted(e) {\n const t = vt.get(e);\n t && typeof t == \"function\" ? t() : t?.stop(), vt.delete(e);\n }\n}, Nl = { mounted(e, t) {\n typeof t.value == \"function\" ? lt(e, t.value) : lt(e, ...t.value);\n} };\nfunction Ol() {\n let e = !1;\n const t = he(!1);\n return (l, a) => {\n if (t.value = a.value, e) return;\n e = !0;\n const n = Jn(l, a.value);\n te(t, (o) => n.value = o);\n };\n}\nOl();\nconst Zl = { class: \"gantt-connection-overlay\" }, Ul = {\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}, Gl = [\"d\", \"stroke-width\", \"onDblclick\"], Wl = [\"id\", \"d\", \"stroke\", \"stroke-width\", \"onDblclick\"], ql = 0.25, Je = 16, jl = /* @__PURE__ */ ne({\n __name: \"AGanttConnection\",\n props: {\n store: {}\n },\n emits: [\"connection:delete\"],\n setup(e, { emit: t }) {\n const l = t, a = S(() => e.store.connectionPaths.filter((s) => {\n const d = e.store.ganttBars.find((i) => i.id === s.from.barId), r = e.store.ganttBars.find((i) => i.id === s.to.barId);\n return d && r;\n })), n = (s) => {\n const d = e.store.connectionHandles.find(\n (O) => O.barId === s.from.barId && O.side === s.from.side\n ), r = e.store.connectionHandles.find(\n (O) => O.barId === s.to.barId && O.side === s.to.side\n );\n if (!d || !r) return \"\";\n const i = d.position.x + Je / 2, h = d.position.y + Je / 2, f = r.position.x + Je / 2, x = r.position.y + Je / 2, b = Math.abs(f - i), m = Math.max(b * ql, 50), p = i + (s.from.side === \"left\" ? -m : m), u = f + (s.to.side === \"left\" ? -m : m), c = { x: 0.5 * i + 0.5 * p, y: 0.5 * h + 0.5 * h }, M = { x: 0.5 * p + 0.5 * u, y: 0.5 * h + 0.5 * x }, C = { x: 0.5 * u + 0.5 * f, y: 0.5 * x + 0.5 * x }, D = { x: 0.5 * c.x + 0.5 * M.x, y: 0.5 * c.y + 0.5 * M.y }, I = { x: 0.5 * M.x + 0.5 * C.x, y: 0.5 * M.y + 0.5 * C.y }, V = { x: 0.5 * D.x + 0.5 * I.x, y: 0.5 * D.y + 0.5 * I.y };\n return `M ${i} ${h} Q ${p} ${h}, ${V.x} ${V.y} Q ${u} ${x}, ${f} ${x}`;\n }, o = (s) => {\n e.store.deleteConnection(s.id) && l(\"connection:delete\", s);\n };\n return (s, d) => (g(), k(\"div\", Zl, [\n (g(), k(\"svg\", Ul, [\n d[0] || (d[0] = y(\"defs\", null, [\n y(\"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 y(\"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 y(\"polygon\", {\n points: \"0 0, 10 3.5, 0 7\",\n fill: \"currentColor\"\n })\n ])\n ], -1)),\n (g(!0), k(Y, null, we(a.value, (r) => (g(), k(\"path\", {\n key: `${r.id}-hitbox`,\n d: n(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, Gl))), 128)),\n (g(!0), k(Y, null, we(a.value, (r) => (g(), k(\"path\", {\n id: r.id,\n key: r.id,\n d: n(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, Wl))), 128))\n ]))\n ]));\n }\n}), zl = /* @__PURE__ */ Ue(jl, [[\"__scopeId\", \"data-v-d5929c98\"]]), Xl = { class: \"column-filter\" }, Yl = {\n key: 2,\n class: \"checkbox-filter\"\n}, Kl = [\"value\"], _l = {\n key: 5,\n class: \"date-range-filter\"\n}, Jl = /* @__PURE__ */ ne({\n __name: \"ATableColumnFilter\",\n props: {\n column: {},\n colIndex: {},\n store: {}\n },\n setup(e) {\n const t = {\n text: \"text\",\n number: \"number\",\n boolean: \"checkbox\",\n date: \"date\",\n datetime: \"dateRange\",\n select: \"select\",\n code: \"text\",\n link: \"text\",\n attach: \"text\"\n }, l = A(\"\"), a = Tt({\n startValue: \"\",\n endValue: \"\"\n }), n = S(() => {\n if (e.column.filterType) return e.column.filterType;\n const h = tn(e.column.component);\n return h ? t[h] : \"text\";\n }), o = (h) => {\n if (h.filterOptions) return h.filterOptions;\n const f = /* @__PURE__ */ new Set();\n return e.store.rows.forEach((x) => {\n const b = x[h.name];\n b != null && b !== \"\" && f.add(b);\n }), Array.from(f).map((x) => ({\n value: x,\n label: String(x)\n }));\n }, s = S(() => !!(l.value || a.startValue || a.endValue)), d = (h) => {\n !h && n.value !== \"checkbox\" ? (e.store.clearFilter(e.colIndex), l.value = \"\") : (l.value = h, e.store.setFilter(e.colIndex, { value: h }));\n }, r = (h, f) => {\n h === \"start\" ? a.startValue = f : a.endValue = f, !a.startValue && !a.endValue ? e.store.clearFilter(e.colIndex) : e.store.setFilter(e.colIndex, {\n value: null,\n startValue: a.startValue,\n endValue: a.endValue\n });\n }, i = () => {\n l.value = \"\", a.startValue = \"\", a.endValue = \"\", e.store.clearFilter(e.colIndex);\n };\n return (h, f) => (g(), k(\"div\", Xl, [\n n.value === \"text\" ? X((g(), k(\"input\", {\n key: 0,\n \"onUpdate:modelValue\": f[0] || (f[0] = (x) => l.value = x),\n type: \"text\",\n class: \"filter-input\",\n onInput: f[1] || (f[1] = (x) => d(l.value))\n }, null, 544)), [\n [ge, l.value]\n ]) : n.value === \"number\" ? X((g(), k(\"input\", {\n key: 1,\n \"onUpdate:modelValue\": f[2] || (f[2] = (x) => l.value = x),\n type: \"number\",\n class: \"filter-input\",\n onInput: f[3] || (f[3] = (x) => d(l.value))\n }, null, 544)), [\n [ge, l.value]\n ]) : n.value === \"checkbox\" ? (g(), k(\"label\", Yl, [\n X(y(\"input\", {\n \"onUpdate:modelValue\": f[4] || (f[4] = (x) => l.value = x),\n type: \"checkbox\",\n class: \"filter-checkbox\",\n onChange: f[5] || (f[5] = (x) => d(l.value))\n }, null, 544), [\n [jt, l.value]\n ]),\n y(\"span\", null, B(e.column.label), 1)\n ])) : n.value === \"select\" ? X((g(), k(\"select\", {\n key: 3,\n \"onUpdate:modelValue\": f[6] || (f[6] = (x) => l.value = x),\n class: \"filter-select\",\n onChange: f[7] || (f[7] = (x) => d(l.value))\n }, [\n f[15] || (f[15] = y(\"option\", { value: \"\" }, \"All\", -1)),\n (g(!0), k(Y, null, we(o(e.column), (x) => (g(), k(\"option\", {\n key: x.value || x,\n value: x.value || x\n }, B(x.label || x), 9, Kl))), 128))\n ], 544)), [\n [zt, l.value]\n ]) : n.value === \"date\" ? X((g(), k(\"input\", {\n key: 4,\n \"onUpdate:modelValue\": f[8] || (f[8] = (x) => l.value = x),\n type: \"date\",\n class: \"filter-input\",\n onChange: f[9] || (f[9] = (x) => d(l.value))\n }, null, 544)), [\n [ge, l.value]\n ]) : n.value === \"dateRange\" ? (g(), k(\"div\", _l, [\n X(y(\"input\", {\n \"onUpdate:modelValue\": f[10] || (f[10] = (x) => a.startValue = x),\n type: \"date\",\n class: \"filter-input\",\n onChange: f[11] || (f[11] = (x) => r(\"start\", a.startValue))\n }, null, 544), [\n [ge, a.startValue]\n ]),\n f[16] || (f[16] = y(\"span\", { class: \"date-separator\" }, \"-\", -1)),\n X(y(\"input\", {\n \"onUpdate:modelValue\": f[12] || (f[12] = (x) => a.endValue = x),\n type: \"date\",\n class: \"filter-input\",\n onChange: f[13] || (f[13] = (x) => r(\"end\", a.endValue))\n }, null, 544), [\n [ge, a.endValue]\n ])\n ])) : n.value === \"component\" && e.column.filterComponent ? (g(), me(Ze(e.column.filterComponent), {\n key: 6,\n value: l.value,\n column: e.column,\n \"col-index\": e.colIndex,\n store: e.store,\n \"onUpdate:value\": f[14] || (f[14] = (x) => d(x))\n }, null, 40, [\"value\", \"column\", \"col-index\", \"store\"])) : W(\"\", !0),\n s.value ? (g(), k(\"button\", {\n key: 7,\n class: \"clear-btn\",\n title: \"Clear\",\n onClick: i\n }, \"×\")) : W(\"\", !0)\n ]));\n }\n}), Ql = /* @__PURE__ */ Ue(Jl, [[\"__scopeId\", \"data-v-b57e3235\"]]), eo = { key: 0 }, to = {\n class: \"atable-header-row\",\n tabindex: \"-1\"\n}, no = {\n key: 2,\n class: \"row-actions-header\"\n}, lo = [\"data-colindex\", \"onClick\"], oo = {\n key: 3,\n class: \"row-actions-header\"\n}, ao = {\n key: 0,\n class: \"atable-filters-row\"\n}, so = {\n key: 2,\n class: \"row-actions-header\"\n}, ro = {\n key: 3,\n class: \"row-actions-header\"\n}, on = /* @__PURE__ */ ne({\n __name: \"ATableHeader\",\n props: {\n columns: {},\n store: {}\n },\n setup(e) {\n const t = S(() => e.columns.filter((s) => s.filterable)), l = S(() => e.store.config.rowActions?.enabled ?? !1), a = S(() => e.store.config.rowActions?.position ?? \"before-index\"), n = (s) => e.store.sortByColumn(s), o = (s) => {\n for (const d of s) {\n if (d.borderBoxSize.length === 0) continue;\n const r = d.borderBoxSize[0].inlineSize, i = Number(d.target.dataset.colindex), h = e.store.columns[i]?.width;\n typeof h == \"number\" && h !== r && e.store.resizeColumn(i, r);\n }\n };\n return (s, d) => e.columns.length ? (g(), k(\"thead\", eo, [\n y(\"tr\", to, [\n l.value && a.value === \"before-index\" ? (g(), k(\"th\", {\n key: 0,\n class: ue([\"row-actions-header\", { \"sticky-column\": a.value === \"before-index\" }])\n }, null, 2)) : W(\"\", !0),\n e.store.zeroColumn ? (g(), k(\"th\", {\n key: 1,\n id: \"header-index\",\n class: ue([[\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)) : W(\"\", !0),\n l.value && a.value === \"after-index\" ? (g(), k(\"th\", no)) : W(\"\", !0),\n (g(!0), k(Y, null, we(e.columns, (r, i) => X((g(), k(\"th\", {\n key: r.name,\n \"data-colindex\": i,\n tabindex: \"-1\",\n style: $e(e.store.getHeaderCellStyle(r)),\n class: ue(`${r.pinned ? \"sticky-column\" : \"\"} ${r.sortable === !1 ? \"\" : \"cursor-pointer\"}`),\n onClick: (h) => r.sortable !== !1 ? n(i) : void 0\n }, [\n De(s.$slots, \"default\", {}, () => [\n kt(B(r.label || String.fromCharCode(i + 97).toUpperCase()), 1)\n ])\n ], 14, lo)), [\n [P(Nl), o]\n ])), 128)),\n l.value && a.value === \"end\" ? (g(), k(\"th\", oo)) : W(\"\", !0)\n ]),\n t.value.length > 0 ? (g(), k(\"tr\", ao, [\n l.value && a.value === \"before-index\" ? (g(), k(\"th\", {\n key: 0,\n class: ue([\"row-actions-header\", { \"sticky-column\": a.value === \"before-index\" }])\n }, null, 2)) : W(\"\", !0),\n e.store.zeroColumn ? (g(), k(\"th\", {\n key: 1,\n class: ue([[\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)) : W(\"\", !0),\n l.value && a.value === \"after-index\" ? (g(), k(\"th\", so)) : W(\"\", !0),\n (g(!0), k(Y, null, we(e.columns, (r, i) => (g(), k(\"th\", {\n key: `filter-${r.name}`,\n class: ue(`${r.pinned ? \"sticky-column\" : \"\"}`),\n style: $e(e.store.getHeaderCellStyle(r))\n }, [\n r.filterable ? (g(), me(Ql, {\n key: 0,\n column: r,\n \"col-index\": i,\n store: e.store\n }, null, 8, [\"column\", \"col-index\", \"store\"])) : W(\"\", !0)\n ], 6))), 128)),\n l.value && a.value === \"end\" ? (g(), k(\"th\", ro)) : W(\"\", !0)\n ])) : W(\"\", !0)\n ])) : W(\"\", !0);\n }\n}), an = /* @__PURE__ */ ne({\n __name: \"ATableModal\",\n props: {\n store: {}\n },\n setup(e) {\n const t = pe(\"amodal\"), { width: l, height: a } = Ne(t), n = S(() => {\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, d = 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 + a.value < s ? r : r - (a.value + e.store.modal.height);\n let h = e.store.modal.cell?.offsetLeft || 0;\n return h = h + l.value <= d ? h : h - (l.value - e.store.modal.width), {\n left: `${h}px`,\n top: `${r}px`\n };\n });\n return (o, s) => (g(), k(\"div\", {\n ref: \"amodal\",\n class: \"amodal\",\n tabindex: \"-1\",\n style: $e(n.value),\n onClick: s[0] || (s[0] = se(() => {\n }, [\"stop\"])),\n onInput: s[1] || (s[1] = se(() => {\n }, [\"stop\"]))\n }, [\n De(o.$slots, \"default\")\n ], 36));\n }\n});\nfunction io(e) {\n return e.filter((t) => !t.hidden && t.component).map(({ fieldname: t, hidden: l, ...a }) => {\n const n = Object.assign({ name: t }, a);\n return a.doctype && !a.cellComponent && (n.linkDoctype = a.doctype, a.format || (n.format = (o) => {\n if (o == null) return \"\";\n if (typeof o == \"object\") {\n const s = o.displayText ?? o.id ?? \"\";\n return typeof s == \"string\" || typeof s == \"number\" ? String(s) : \"\";\n }\n return String(o);\n })), n;\n });\n}\nconst uo = {\n class: \"atable-container\",\n style: { position: \"relative\" }\n}, co = /* @__PURE__ */ ne({\n __name: \"ATable\",\n props: /* @__PURE__ */ be({\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__ */ be([\"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 a = Ie(e, \"rows\"), n = Ie(e, \"columns\"), o = l, s = pe(\"table\"), d = n.value?.length ? n.value : io(e.schema ?? []), r = wt(\"aformLinkResolver\", null), i = ol({\n columns: d,\n rows: a.value,\n id: e.id,\n config: e.config,\n linkResolver: e.linkResolver ?? r\n });\n i.$onAction(({ name: c, store: M, args: C, after: D }) => {\n if (c === \"setCellData\" || c === \"setCellText\") {\n const [I, V, O] = C, R = M.getCellData(I, V);\n D(() => {\n a.value = [...i.rows], o(\"cellUpdate\", { colIndex: I, rowIndex: V, newValue: O, oldValue: R });\n });\n } else if (c === \"updateGanttBar\") {\n const [I] = C;\n let V = !1;\n I.type === \"resize\" ? V = I.oldColspan !== I.newColspan : I.type === \"bar\" && (V = I.oldStart !== I.newStart || I.oldEnd !== I.newEnd), V && D(() => {\n o(\"gantt:drag\", I);\n });\n } else c === \"resizeColumn\" && D(() => {\n n.value = [...i.columns], o(\"columns:update\", [...i.columns]);\n });\n }), te(\n () => a.value,\n (c) => {\n JSON.stringify(c) !== JSON.stringify(i.rows) && (i.rows = [...c]);\n },\n { deep: !0 }\n ), te(\n n,\n (c) => {\n c && JSON.stringify(c) !== JSON.stringify(i.columns) && (i.columns = [...c], o(\"columns:update\", [...c]));\n },\n { deep: !0 }\n ), Le(() => {\n n.value?.some((c) => c.pinned) && (f(), i.isTreeView && Qt(s, f, { childList: !0, subtree: !0 }));\n });\n const h = S(() => i.columns.filter((c) => c.pinned).length), f = () => {\n const c = s.value, M = c?.rows[0], C = c?.rows[1], D = M ? Array.from(M.cells) : [];\n for (const [I, V] of D.entries()) {\n const O = C?.cells[I];\n O && (V.style.width = `${O.offsetWidth}px`);\n }\n for (const I of c?.rows || []) {\n let V = 0;\n const O = [];\n for (const R of I.cells)\n (R.classList.contains(\"sticky-column\") || R.classList.contains(\"sticky-index\")) && (R.style.left = `${V}px`, V += R.offsetWidth, O.push(R));\n O.length > 0 && O[O.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 M = i.modal.parent;\n M && st().then(() => M.focus());\n }\n });\n const x = (c) => {\n if (!c.gantt || h.value === 0)\n return i.columns;\n const M = [];\n for (let C = 0; C < h.value; C++) {\n const D = { ...i.columns[C] };\n D.originalIndex = C, M.push(D);\n }\n return M.push({\n ...i.columns[h.value],\n isGantt: !0,\n colspan: c.gantt?.colspan || i.columns.length - h.value,\n originalIndex: h.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 }), M;\n }, b = (c) => {\n o(\"connection:event\", { type: \"create\", connection: c });\n }, m = (c) => {\n o(\"connection:event\", { type: \"delete\", connection: c });\n }, p = (c, M) => {\n const C = i.rows[c];\n o(\"row:click\", { row: C, rowIndex: c, event: M });\n }, u = (c, M, C) => {\n switch (c) {\n case \"add\": {\n const D = i.addRow({}, M + 1), I = i.rows[D];\n a.value = [...i.rows], o(\"row:add\", { rowIndex: D, row: I });\n break;\n }\n case \"delete\": {\n const D = i.deleteRow(M);\n D && (a.value = [...i.rows], o(\"row:delete\", { rowIndex: M, row: D }));\n break;\n }\n case \"duplicate\": {\n const D = i.duplicateRow(M);\n if (D >= 0) {\n const I = i.rows[D];\n a.value = [...i.rows], o(\"row:duplicate\", { sourceIndex: M, newIndex: D, row: I });\n }\n break;\n }\n case \"insertAbove\": {\n const D = i.insertRowAbove(M), I = i.rows[D];\n a.value = [...i.rows], o(\"row:insert-above\", { targetIndex: M, newIndex: D, row: I });\n break;\n }\n case \"insertBelow\": {\n const D = i.insertRowBelow(M), I = i.rows[D];\n a.value = [...i.rows], o(\"row:insert-below\", { targetIndex: M, newIndex: D, row: I });\n break;\n }\n case \"move\": {\n o(\"row:move\", { fromIndex: M, toIndex: -1 });\n break;\n }\n case \"moveUp\": {\n M > 0 && i.moveRow(M, M - 1) && (a.value = [...i.rows], o(\"row:move\", { fromIndex: M, toIndex: M - 1 }));\n break;\n }\n case \"moveDown\": {\n M < i.rows.length - 1 && i.moveRow(M, M + 1) && (a.value = [...i.rows], o(\"row:move\", { fromIndex: M, toIndex: M + 1 }));\n break;\n }\n case \"open\": {\n const D = i.rows[M];\n o(\"row:open\", { row: D, rowIndex: M, event: C });\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, M) => (g(), k(\"div\", uo, [\n X((g(), k(\"table\", {\n ref: \"table\",\n class: \"atable\",\n style: $e({\n width: P(i).config.fullWidth ? \"100%\" : \"auto\"\n })\n }, [\n De(c.$slots, \"header\", { data: P(i) }, () => [\n ze(on, {\n columns: P(i).columns,\n store: P(i)\n }, null, 8, [\"columns\", \"store\"])\n ], !0),\n y(\"tbody\", null, [\n De(c.$slots, \"body\", { data: P(i) }, () => [\n (g(!0), k(Y, null, we(P(i).filteredRows, (C, D) => (g(), me(ln, {\n key: `${C.originalIndex}-${D}`,\n row: C,\n \"row-index\": C.originalIndex,\n store: P(i),\n \"onRow:action\": u,\n \"onRow:click\": p\n }, {\n default: Ft(() => [\n (g(!0), k(Y, null, we(x(C), (I, V) => (g(), k(Y, {\n key: I.name\n }, [\n I.isGantt ? (g(), me(Ze(I.ganttComponent || \"AGanttCell\"), {\n key: 0,\n store: P(i),\n \"columns-count\": P(i).columns.length - h.value,\n color: C.gantt?.color,\n start: C.gantt?.startIndex,\n end: C.gantt?.endIndex,\n colspan: I.colspan,\n pinned: I.pinned,\n \"row-index\": C.originalIndex,\n \"col-index\": I.originalIndex ?? V,\n style: $e({\n textAlign: I?.align || \"center\",\n minWidth: I?.width || \"40ch\",\n width: P(i).config.fullWidth ? \"auto\" : null\n }),\n \"onConnection:create\": b\n }, null, 40, [\"store\", \"columns-count\", \"color\", \"start\", \"end\", \"colspan\", \"pinned\", \"row-index\", \"col-index\", \"style\"])) : (g(), me(Ze(I.cellComponent || \"ACell\"), {\n key: 1,\n store: P(i),\n pinned: I.pinned,\n \"row-index\": C.originalIndex,\n \"col-index\": V,\n style: $e({\n textAlign: I?.align || \"center\",\n width: P(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 De(c.$slots, \"footer\", { data: P(i) }, void 0, !0),\n De(c.$slots, \"modal\", { data: P(i) }, () => [\n X(ze(an, { store: P(i) }, {\n default: Ft(() => [\n (g(), me(Ze(P(i).modal.component), at({\n key: `${P(i).modal.rowIndex}:${P(i).modal.colIndex}`,\n \"col-index\": P(i).modal.colIndex,\n \"row-index\": P(i).modal.rowIndex,\n store: P(i)\n }, P(i).modal.componentProps), null, 16, [\"col-index\", \"row-index\", \"store\"]))\n ]),\n _: 1\n }, 8, [\"store\"]), [\n [xe, P(i).modal.visible]\n ])\n ], !0)\n ], 4)), [\n [P(Pl), P(i).closeModal]\n ]),\n P(i).isGanttView && P(i).isDependencyGraphEnabled ? (g(), me(zl, {\n key: 0,\n store: P(i),\n \"onConnection:delete\": m\n }, null, 8, [\"store\"])) : W(\"\", !0)\n ]));\n }\n}), vo = /* @__PURE__ */ Ue(co, [[\"__scopeId\", \"data-v-4bfbbeab\"]]), fo = {}, mo = { class: \"aloading\" }, ho = { class: \"aloading-header\" };\nfunction po(e, t) {\n return g(), k(\"div\", mo, [\n y(\"h2\", ho, [\n De(e.$slots, \"default\", {}, void 0, !0)\n ]),\n t[0] || (t[0] = y(\"div\", { class: \"aloading-bar\" }, null, -1))\n ]);\n}\nconst go = /* @__PURE__ */ Ue(fo, [[\"render\", po], [\"__scopeId\", \"data-v-a930a25b\"]]), wo = {}, yo = { class: \"aloading\" }, xo = { class: \"aloading-header\" };\nfunction bo(e, t) {\n return g(), k(\"div\", yo, [\n y(\"h2\", xo, [\n De(e.$slots, \"default\", {}, void 0, !0)\n ]),\n t[0] || (t[0] = y(\"div\", { class: \"aloading-bar\" }, null, -1))\n ]);\n}\nconst ko = /* @__PURE__ */ Ue(wo, [[\"render\", bo], [\"__scopeId\", \"data-v-e1165876\"]]);\nfunction Mo(e) {\n e.component(\"ACell\", il), e.component(\"AGanttCell\", hl), e.component(\"ARow\", ln), e.component(\"ARowActions\", tt), e.component(\"ATable\", vo), e.component(\"ATableHeader\", on), e.component(\"ATableLoading\", go), e.component(\"ATableLoadingBar\", ko), e.component(\"ATableModal\", an);\n}\nconst Io = { class: \"aform_form-element\" }, To = { class: \"aform_field-label\" }, Do = { class: \"aform_display-value\" }, Co = [\"for\"], $o = { class: \"aform_checkbox-container aform_input-field\" }, So = [\"id\", \"disabled\", \"required\"], Ao = [\"innerHTML\"], Lo = /* @__PURE__ */ ne({\n __name: \"ACheckbox\",\n props: /* @__PURE__ */ be({\n schema: {},\n label: {},\n selectRange: { type: Boolean },\n mask: {},\n required: { type: Boolean },\n mode: {},\n uuid: {},\n validation: { default: () => ({ errorMessage: \"\" }) },\n errors: {}\n }, {\n modelValue: { type: [Boolean, String, Array, Set] },\n modelModifiers: {}\n }),\n emits: [\"update:modelValue\"],\n setup(e) {\n const t = S(() => e.errors?.length ? e.errors.join(\"; \") : e.validation.errorMessage ?? \"\"), l = Ie(e, \"modelValue\");\n return (a, n) => (g(), k(\"div\", Io, [\n e.mode === \"display\" ? (g(), k(Y, { key: 0 }, [\n y(\"label\", To, B(e.label), 1),\n y(\"span\", Do, B(l.value ? \"✓\" : \"✗\"), 1)\n ], 64)) : (g(), k(Y, { key: 1 }, [\n y(\"label\", {\n class: \"aform_field-label\",\n for: e.uuid\n }, B(e.label), 9, Co),\n y(\"span\", $o, [\n X(y(\"input\", {\n id: e.uuid,\n \"onUpdate:modelValue\": n[0] || (n[0] = (o) => l.value = o),\n type: \"checkbox\",\n class: \"aform_checkbox\",\n disabled: e.mode === \"read\",\n required: e.required\n }, null, 8, So), [\n [jt, l.value]\n ])\n ]),\n X(y(\"p\", {\n class: \"aform_error\",\n innerHTML: t.value\n }, null, 8, Ao), [\n [xe, t.value]\n ])\n ], 64))\n ]));\n }\n}), ke = (e, t) => {\n const l = e.__vccOpts || e;\n for (const [a, n] of t)\n l[a] = n;\n return l;\n}, Ro = /* @__PURE__ */ ke(Lo, [[\"__scopeId\", \"data-v-ca06741d\"]]);\nfunction sn(e, t) {\n return Mt() ? (It(e, t), !0) : !1;\n}\n// @__NO_SIDE_EFFECTS__\nfunction Wt() {\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 sn(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 rn = typeof window < \"u\" && typeof document < \"u\";\ntypeof WorkerGlobalScope < \"u\" && globalThis instanceof WorkerGlobalScope;\nconst Eo = Object.prototype.toString, Ho = (e) => Eo.call(e) === \"[object Object]\", je = () => {\n}, Vo = (e, t) => Object.prototype.hasOwnProperty.call(e, t);\nfunction Bo(...e) {\n if (e.length !== 1) return Xt(...e);\n const t = e[0];\n return typeof t == \"function\" ? St($t(() => ({\n get: t,\n set: je\n }))) : A(t);\n}\nfunction ft(e) {\n return Array.isArray(e) ? e : [e];\n}\nfunction Fo(e, t, l) {\n return te(e, t, {\n ...l,\n immediate: !0\n });\n}\nconst un = rn ? window : void 0, Po = rn ? window.document : void 0;\nfunction Ge(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 = (a, n, o, s) => (a.addEventListener(n, o, s), () => a.removeEventListener(n, o, s)), l = S(() => {\n const a = ft(H(e[0])).filter((n) => n != null);\n return a.every((n) => typeof n != \"string\") ? a : void 0;\n });\n return Fo(() => {\n var a, n;\n return [\n (a = (n = l.value) === null || n === void 0 ? void 0 : n.map((o) => Ge(o))) !== null && a !== void 0 ? a : [un].filter((o) => o != null),\n ft(H(l.value ? e[1] : e[0])),\n ft(P(l.value ? e[2] : e[1])),\n H(l.value ? e[3] : e[2])\n ];\n }, ([a, n, o, s], d, r) => {\n if (!a?.length || !n?.length || !o?.length) return;\n const i = Ho(s) ? { ...s } : s, h = a.flatMap((f) => n.flatMap((x) => o.map((b) => t(f, x, b, i))));\n r(() => {\n h.forEach((f) => f());\n });\n }, { flush: \"post\" });\n}\nfunction ot(e, t, l = {}) {\n const { window: a = un, ignore: n = [], capture: o = !0, detectIframe: s = !1, controls: d = !1 } = l;\n if (!a) return d ? {\n stop: je,\n cancel: je,\n trigger: je\n } : je;\n let r = !0;\n const i = (u) => H(n).some((c) => {\n if (typeof c == \"string\") return Array.from(a.document.querySelectorAll(c)).some((M) => M === u.target || u.composedPath().includes(M));\n {\n const M = Ge(c);\n return M && (u.target === M || u.composedPath().includes(M));\n }\n });\n function h(u) {\n const c = H(u);\n return c && c.$.subTree.shapeFlag === 16;\n }\n function f(u, c) {\n const M = H(u), C = M.$.subTree && M.$.subTree.children;\n return C == null || !Array.isArray(C) ? !1 : C.some((D) => D.el === c.target || c.composedPath().includes(D.el));\n }\n const x = (u) => {\n const c = Ge(e);\n if (u.target != null && !(!(c instanceof Element) && h(e) && f(e, u)) && !(!c || c === u.target || u.composedPath().includes(c))) {\n if (\"detail\" in u && u.detail === 0 && (r = !i(u)), !r) {\n r = !0;\n return;\n }\n t(u);\n }\n };\n let b = !1;\n const m = [\n mt(a, \"click\", (u) => {\n b || (b = !0, setTimeout(() => {\n b = !1;\n }, 0), x(u));\n }, {\n passive: !0,\n capture: o\n }),\n mt(a, \"pointerdown\", (u) => {\n const c = Ge(e);\n r = !i(u) && !!(c && !u.composedPath().includes(c));\n }, { passive: !0 }),\n s && mt(a, \"blur\", (u) => {\n setTimeout(() => {\n var c;\n const M = Ge(e);\n ((c = a.document.activeElement) === null || c === void 0 ? void 0 : c.tagName) === \"IFRAME\" && !M?.contains(a.document.activeElement) && t(u);\n }, 0);\n }, { passive: !0 })\n ].filter(Boolean), p = () => m.forEach((u) => u());\n return d ? {\n stop: p,\n cancel: () => {\n r = !1;\n },\n trigger: (u) => {\n r = !0, x(u), r = !1;\n }\n } : p;\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 = Po } = e, l = A(Oo(e.initialFiles)), { on: a, trigger: n } = /* @__PURE__ */ Wt(), { on: o, trigger: s } = /* @__PURE__ */ Wt(), d = S(() => {\n var f;\n const x = (f = Ge(e.input)) !== null && f !== void 0 ? f : t ? t.createElement(\"input\") : void 0;\n return x && (x.type = \"file\", x.onchange = (b) => {\n l.value = b.target.files, n(l.value);\n }, x.oncancel = () => {\n s();\n }), x;\n }), r = () => {\n l.value = null, d.value && d.value.value && (d.value.value = \"\", n(null));\n }, i = (f) => {\n const x = d.value;\n x && (x.multiple = H(f.multiple), x.accept = H(f.accept), x.webkitdirectory = H(f.directory), Vo(f, \"capture\") && (x.capture = H(f.capture)));\n }, h = (f) => {\n const x = d.value;\n if (!x) return;\n const b = {\n ...No,\n ...e,\n ...f\n };\n i(b), H(b.reset) && r(), x.click();\n };\n return Ct(() => {\n i(e);\n }), {\n files: St(l),\n open: h,\n reset: r,\n onCancel: o,\n onChange: a\n };\n}\nfunction ht(e) {\n return typeof Window < \"u\" && e instanceof Window ? e.document.documentElement : typeof Document < \"u\" && e instanceof Document ? e.documentElement : e;\n}\nconst pt = /* @__PURE__ */ new WeakMap();\nfunction Uo(e, t = !1) {\n const l = he(t);\n let a = \"\";\n te(Bo(e), (s) => {\n const d = ht(H(s));\n if (d) {\n const r = d;\n if (pt.get(r) || pt.set(r, r.style.overflow), r.style.overflow !== \"hidden\" && (a = 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 n = () => {\n const s = ht(H(e));\n !s || l.value || (s.style.overflow = \"hidden\", l.value = !0);\n }, o = () => {\n const s = ht(H(e));\n !s || !l.value || (s.style.overflow = a, pt.delete(s), l.value = !1);\n };\n return sn(o), S({\n get() {\n return l.value;\n },\n set(s) {\n s ? n() : o();\n }\n });\n}\nconst Go = { class: \"aform_display-value\" }, Wo = { key: 0 }, qo = [\"innerHTML\"], jo = {\n ref: \"datepicker\",\n class: \"adatepicker\",\n tabindex: \"0\"\n}, zo = {\n colspan: \"5\",\n tabindex: -1\n}, Xo = { key: 0 }, Yo = { colspan: \"7\" }, Ko = { class: \"date-input\" }, _o = [\"value\"], Jo = [\"value\"], Qo = [\"onClick\", \"onKeydown\", \"onMouseover\"], ea = [\"innerHTML\"], ta = 6, qt = 7, na = /* @__PURE__ */ ne({\n __name: \"ADatePicker\",\n props: /* @__PURE__ */ be({\n schema: {},\n label: {},\n selectRange: { type: Boolean, default: !1 },\n mask: {},\n required: { type: Boolean },\n mode: {},\n uuid: {},\n validation: { default: () => ({ errorMessage: \"\" }) },\n errors: {}\n }, {\n modelValue: { default: /* @__PURE__ */ new Date() },\n modelModifiers: {}\n }),\n emits: /* @__PURE__ */ be([\"get-date\"], [\"update:modelValue\"]),\n setup(e, { expose: t, emit: l }) {\n const a = S(() => e.errors?.length ? e.errors.join(\"; \") : e.validation.errorMessage ?? \"\"), n = Ie(e, \"modelValue\"), o = A(new Date(n.value)), s = A(o.value.getMonth()), d = A(o.value.getFullYear()), r = A([]), i = A(new Date(n.value)), h = A(null), f = A(null), x = pe(\"start-date-input\"), b = pe(\"end-date-input\"), m = l, p = S(() => new Date(d.value, s.value, 1).toLocaleDateString(void 0, {\n year: \"numeric\",\n month: \"long\"\n })), u = S(() => h.value != null ? M(h.value) : \"\"), c = S(() => f.value != null ? M(f.value) : \"\"), M = (T) => fe(T) ? T.getMonth() + 1 + \"/\" + T.getDate() + \"/\" + T.getFullYear() : \"\", C = (T) => {\n const L = /* @__PURE__ */ new Date();\n return s.value !== L.getMonth() ? !1 : L.toDateString() === new Date(T).toDateString();\n }, D = (T) => new Date(T).toDateString() === new Date(o.value).toDateString(), I = (T) => {\n const L = h.value;\n return fe(L) ? new Date(T).toDateString() === L.toDateString() : !1;\n }, V = (T) => {\n const L = f.value;\n return fe(L) ? new Date(T).toDateString() === L.toDateString() : !1;\n }, O = (T, L) => (T - 1) * qt + L, R = (T) => {\n const L = h.value;\n if (!fe(L)) return !1;\n const G = new Date(T), N = f.value, ae = fe(N) ? N : new Date(i.value);\n return G.getTime() > L.getTime() && G.getTime() < ae.getTime();\n }, F = (T, L) => r.value[O(T, L)], K = (T) => {\n i.value = new Date(r.value[T]);\n }, J = () => {\n r.value = [];\n const T = new Date(d.value, s.value, 1), L = T.getDay(), G = T.setDate(T.getDate() - L);\n for (const N of Array(43).keys())\n r.value.push(G + N * 864e5);\n }, le = () => d.value -= 1, re = () => d.value += 1, Te = () => {\n s.value == 0 ? (s.value = 11, le()) : s.value -= 1;\n }, Me = () => {\n s.value == 11 ? (s.value = 0, re()) : s.value += 1;\n }, He = (T) => {\n T.key === \"Enter\" && Se();\n }, Ve = (T) => {\n if (n.value = o.value = new Date(r.value[T]), e.selectRange) {\n const L = h.value;\n L == null || f.value != null ? (h.value = n.value, f.value = null) : fe(L) && o.value.getTime() < L.getTime() ? (f.value = null, h.value = n.value) : f.value = n.value, x.value && (x.value.value = M(h.value) ?? \"\"), b.value && (b.value.value = M(f.value) ?? \"\");\n }\n E();\n }, Pe = () => {\n const T = h.value, L = f.value;\n fe(L) && fe(T) && L.getTime() < T.getTime() && ([h.value, f.value] = [L, T]);\n }, fe = (T) => T instanceof Date && !isNaN(T.getTime()), Se = () => {\n if (x.value?.value == \"\")\n h.value = null;\n else if (x.value) {\n const T = new Date(x.value.value);\n h.value = fe(T) ? T : null;\n }\n if (b.value?.value == \"\")\n f.value = null;\n else if (b.value) {\n const T = new Date(b.value.value);\n f.value = fe(T) ? T : null;\n }\n fe(h.value) && (fe(f.value) && Pe(), o.value = h.value), E();\n }, E = () => {\n m(\"get-date\", {\n start: e.selectRange ? h.value : null,\n end: e.selectRange ? f.value : null,\n selected: o.value\n });\n };\n return Le(async () => {\n J(), await st();\n const T = document.getElementsByClassName(\"selectedDate\");\n if (T.length > 0)\n T[0].focus();\n else {\n const L = document.getElementsByClassName(\"todaysDate\");\n L.length > 0 && L[0].focus();\n }\n }), te([s, d], J), t({ currentMonth: s, currentYear: d, selectedDate: o }), (T, L) => e.mode === \"display\" || e.mode === \"read\" ? (g(), k(Y, { key: 0 }, [\n y(\"span\", Go, B(n.value ? new Date(n.value).toLocaleDateString() : \"\"), 1),\n e.label ? (g(), k(\"label\", Wo, B(e.label), 1)) : W(\"\", !0),\n X(y(\"p\", {\n class: \"aform_error\",\n innerHTML: a.value\n }, null, 8, qo), [\n [xe, a.value]\n ])\n ], 64)) : (g(), k(Y, { key: 1 }, [\n y(\"div\", jo, [\n y(\"table\", null, [\n y(\"tbody\", null, [\n y(\"tr\", null, [\n y(\"td\", {\n id: \"previous-month-btn\",\n tabindex: -1,\n onClick: Te\n }, \"<\"),\n y(\"th\", zo, B(p.value), 1),\n y(\"td\", {\n id: \"next-month-btn\",\n tabindex: -1,\n onClick: Me\n }, \">\")\n ]),\n e.selectRange ? (g(), k(\"tr\", Xo, [\n y(\"td\", Yo, [\n y(\"div\", Ko, [\n y(\"input\", {\n ref: \"start-date-input\",\n value: u.value,\n class: \"date-input-start aform_input-field\",\n type: \"text\",\n placeholder: \"start date\",\n onBlur: L[0] || (L[0] = (G) => Se()),\n onKeydown: He\n }, null, 40, _o),\n L[2] || (L[2] = y(\"div\", null, \"-\", -1)),\n y(\"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: L[1] || (L[1] = (G) => Se()),\n onKeydown: He\n }, null, 40, Jo)\n ])\n ])\n ])) : W(\"\", !0),\n L[3] || (L[3] = y(\"tr\", { class: \"days-header\" }, [\n y(\"td\", null, \"M\"),\n y(\"td\", null, \"T\"),\n y(\"td\", null, \"W\"),\n y(\"td\", null, \"T\"),\n y(\"td\", null, \"F\"),\n y(\"td\", null, \"S\"),\n y(\"td\", null, \"S\")\n ], -1)),\n (g(), k(Y, null, we(ta, (G) => y(\"tr\", { key: G }, [\n (g(), k(Y, null, we(qt, (N) => y(\"td\", {\n ref_for: !0,\n ref: \"celldate\",\n key: O(G, N),\n class: ue([\"date-cell\", {\n todaysDate: C(F(G, N)),\n selectedDate: D(F(G, N)),\n withinRange: e.selectRange ? R(F(G, N)) : !1,\n startDate: e.selectRange ? I(F(G, N)) : !1,\n endDate: e.selectRange ? V(F(G, N)) : !1\n }]),\n contenteditable: !1,\n spellcheck: !1,\n tabindex: 0,\n onClick: se((ae) => Ve(O(G, N)), [\"prevent\", \"stop\"]),\n onKeydown: ve((ae) => Ve(O(G, N)), [\"enter\"]),\n onMouseover: (ae) => K(O(G, N))\n }, B(new Date(F(G, N)).getDate()), 43, Qo)), 64))\n ])), 64))\n ])\n ])\n ], 512),\n X(y(\"p\", {\n class: \"aform_error\",\n innerHTML: a.value\n }, null, 8, ea), [\n [xe, a.value]\n ])\n ], 64));\n }\n}), dn = /* @__PURE__ */ ke(na, [[\"__scopeId\", \"data-v-51c0c73a\"]]), la = { class: \"adate_time\" }, oa = { class: \"adate_time_fields\" }, aa = [\"onKeydown\"], sa = [\"onKeydown\"], ra = {\n key: 0,\n class: \"colon\"\n}, ia = [\"onKeydown\"], ua = /* @__PURE__ */ ne({\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, a = pe(\"meridiem-selector\"), n = 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 = A(e.defaultMeridiem == \"AM\" ? \"AM\" : \"PM\");\n Le(() => {\n d();\n });\n const s = () => {\n const b = e.allowMilitaryTime ? 23 : 12, m = e.allowMilitaryTime ? 0 : 1;\n let p = Number(n.hours), u = Number(n.minutes), c = Number(n.seconds);\n (isNaN(p) || n.hours === \"\" || p > b) && (p = b), !e.allowMilitaryTime && p < m && (p = m), (isNaN(u) || n.minutes === \"\" || u > 59) && (u = 59), (isNaN(c) || n.seconds === \"\" || c > 59) && (c = 59), n.hours = String(p).padStart(2, \"0\"), n.minutes = String(u).padStart(2, \"0\"), n.seconds = String(c).padStart(2, \"0\"), d();\n }, d = () => {\n const b = Number(n.hours), m = Number(n.minutes), p = Number(n.seconds);\n l(\"get-time\", {\n hours: b,\n minutes: m,\n seconds: p,\n meridiem: o.value,\n militaryTime: e.allowMilitaryTime ? b : o.value === \"PM\" ? b === 12 ? 12 : b + 12 : b % 12\n });\n }, r = (b) => {\n const m = b.target;\n m instanceof HTMLInputElement && m.select();\n }, i = (b, m = 1) => {\n const p = e.allowMilitaryTime ? 23 : 12, u = e.allowMilitaryTime ? 0 : 1;\n if (b == \"hours\") {\n const C = Number(n.hours);\n n.hours = String(C + m), (C == 11 && Number(n.hours) == 12 || C == 12 && Number(n.hours) == 11) && f();\n } else b == \"minutes\" ? n.minutes = String(Number(n.minutes) + m) : b == \"seconds\" && (n.seconds = String(Number(n.seconds) + m));\n const c = Number(n.hours);\n Number(n.seconds) < 0 ? n.minutes = String(Number(n.minutes) - 1) : Number(n.seconds) > 59 && (n.minutes = String(Number(n.minutes) + 1)), Number(n.minutes) < 0 ? n.hours = String(c - 1) : Number(n.minutes) > 59 && (n.hours = String(c + 1));\n const M = Number(n.hours);\n !e.allowMilitaryTime && M !== c && (c === 11 && M === 12 || c === 12 && M === 11) && f(), n.hours = String(h(Number(n.hours), u, p)).padStart(2, \"0\"), n.minutes = String(h(Number(n.minutes), 0, 59)).padStart(2, \"0\"), n.seconds = String(h(Number(n.seconds), 0, 59)).padStart(2, \"0\");\n };\n te(\n () => n.hours,\n (b, m) => {\n n.hours = Number(b) > 99 ? m : b;\n }\n ), te(\n () => n.minutes,\n (b, m) => {\n n.minutes = Number(b) > 99 ? m : b;\n }\n ), te(\n () => n.seconds,\n (b, m) => {\n n.seconds = Number(b) > 99 ? m : b;\n }\n );\n const h = (b, m, p) => b > p ? m : b < m ? p : b, f = () => {\n o.value = o.value == \"PM\" ? \"AM\" : \"PM\", d();\n }, x = (b, m = !1) => {\n b.stopPropagation(), b.preventDefault();\n const p = b.clipboardData;\n if (!p) return;\n let u = p.getData(\"Text\");\n if (u = u.replace(/[^0-9]/g, \"\"), m) {\n u.length % 2 != 0 && (u = \"0\" + u), u.length < 3 && (u += \"00\"), u.length < 5 && (u += \"00\");\n const c = u.match(/(..?)/g);\n if (!c || c.length < 3) return;\n n.seconds = c[2], n.minutes = c[1], n.hours = c[0], s(), e.allowMilitaryTime || a.value?.focus();\n } else {\n u.length > 2 && (u = u.slice(0, 2));\n const c = b.target;\n c instanceof HTMLInputElement && (c.value = u, c.dispatchEvent(new Event(\"input\")));\n }\n };\n return (b, m) => (g(), k(\"div\", la, [\n y(\"div\", oa, [\n X(y(\"input\", {\n \"onUpdate:modelValue\": m[0] || (m[0] = (p) => n.hours = p),\n type: \"text\",\n inputmode: \"numeric\",\n onPaste: m[1] || (m[1] = (p) => x(p, !0)),\n onFocus: r,\n onBlur: s,\n onKeydown: [\n ve(se(s, [\"prevent\"]), [\"enter\"]),\n m[2] || (m[2] = ve(se((p) => i(\"hours\"), [\"prevent\"]), [\"up\"])),\n m[3] || (m[3] = ve(se((p) => i(\"hours\", -1), [\"prevent\"]), [\"down\"]))\n ]\n }, null, 40, aa), [\n [ge, n.hours]\n ]),\n m[12] || (m[12] = y(\"span\", { class: \"colon\" }, \":\", -1)),\n X(y(\"input\", {\n \"onUpdate:modelValue\": m[4] || (m[4] = (p) => n.minutes = p),\n type: \"text\",\n inputmode: \"numeric\",\n onPaste: x,\n onFocus: r,\n onBlur: s,\n onKeydown: [\n ve(se(s, [\"prevent\"]), [\"enter\"]),\n m[5] || (m[5] = ve(se((p) => i(\"minutes\"), [\"prevent\"]), [\"up\"])),\n m[6] || (m[6] = ve(se((p) => i(\"minutes\", -1), [\"prevent\"]), [\"down\"]))\n ]\n }, null, 40, sa), [\n [ge, n.minutes]\n ]),\n e.useSeconds ? (g(), k(\"span\", ra, \":\")) : W(\"\", !0),\n e.useSeconds ? X((g(), k(\"input\", {\n key: 1,\n \"onUpdate:modelValue\": m[7] || (m[7] = (p) => n.seconds = p),\n type: \"text\",\n inputmode: \"numeric\",\n onPaste: x,\n onFocus: r,\n onBlur: s,\n onKeydown: [\n ve(se(s, [\"prevent\"]), [\"enter\"]),\n m[8] || (m[8] = ve(se((p) => i(\"seconds\"), [\"prevent\"]), [\"up\"])),\n m[9] || (m[9] = ve(se((p) => i(\"seconds\", -1), [\"prevent\"]), [\"down\"]))\n ]\n }, null, 40, ia)), [\n [ge, n.seconds]\n ]) : W(\"\", !0),\n e.allowMilitaryTime ? W(\"\", !0) : X((g(), k(\"select\", {\n key: 2,\n ref: \"meridiem-selector\",\n \"onUpdate:modelValue\": m[10] || (m[10] = (p) => o.value = p),\n class: \"aform-select meridiem-selector\",\n onChange: s\n }, [...m[11] || (m[11] = [\n y(\"option\", { value: \"AM\" }, \"AM\", -1),\n y(\"option\", { value: \"PM\" }, \"PM\", -1)\n ])], 544)), [\n [zt, o.value]\n ])\n ])\n ]));\n }\n}), bt = /* @__PURE__ */ ke(ua, [[\"__scopeId\", \"data-v-959a3e41\"]]), da = { class: \"adate-selection\" }, ca = {\n key: 3,\n class: \"empty\"\n}, va = /* @__PURE__ */ ne({\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 wn(\"select-range\", e.selectRange);\n const a = /* @__PURE__ */ new Date(), n = A(a), o = A(a), s = A(0), d = A(0), r = (m, p) => {\n const u = new Date(m);\n return u.setHours(0, 0, 0, 0), new Date(u.getTime() + p);\n }, i = (m) => {\n let p;\n if (m.militaryTime !== void 0)\n p = m.militaryTime;\n else {\n const u = m.hours % 12;\n p = m.meridiem === \"PM\" ? u + 12 : u;\n }\n return (p * 3600 + m.minutes * 60 + (m.seconds ?? 0)) * 1e3;\n }, h = () => {\n !e.selectRange || !e.showTime || !e.showEndTime || l(\"get-range\", {\n start: r(n.value, s.value),\n end: r(o.value, d.value)\n });\n }, f = (m) => {\n l(\"get-date\", m), e.selectRange && (n.value = m.start ?? m.selected, o.value = m.end ?? m.selected, h());\n }, x = (m) => {\n s.value = i(m), e.showEndTime ? h() : l(\"get-time\", m);\n }, b = (m) => {\n d.value = i(m), h();\n };\n return (m, p) => (g(), k(\"div\", da, [\n e.showDate ? (g(), me(dn, {\n key: 0,\n \"select-range\": e.selectRange,\n onGetDate: f\n }, null, 8, [\"select-range\"])) : W(\"\", !0),\n e.showTime ? (g(), me(bt, {\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: x\n }, null, 8, [\"allow-military-time\", \"default-hours\", \"default-minutes\", \"default-seconds\", \"default-meridiem\", \"use-seconds\"])) : W(\"\", !0),\n e.selectRange && e.showTime && e.showEndTime ? (g(), k(Y, { key: 2 }, [\n p[0] || (p[0] = y(\"div\", { class: \"adate-selection__end-label\" }, \"End time\", -1)),\n ze(bt, {\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: b\n }, null, 8, [\"allow-military-time\", \"default-hours\", \"default-minutes\", \"default-seconds\", \"default-meridiem\", \"use-seconds\"])\n ], 64)) : W(\"\", !0),\n !e.showTime && !e.showDate ? (g(), k(\"p\", ca, \"empty\")) : W(\"\", !0)\n ]));\n }\n}), rt = /* @__PURE__ */ ke(va, [[\"__scopeId\", \"data-v-eeadb3e2\"]]), fa = { class: \"aform_display-value\" }, ma = [\"id\", \"value\", \"disabled\", \"required\"], ha = [\"for\"], pa = [\"innerHTML\"], ga = /* @__PURE__ */ ne({\n __name: \"ADate\",\n props: /* @__PURE__ */ be({\n schema: {},\n label: { default: \"Date\" },\n selectRange: { type: Boolean },\n mask: {},\n required: { type: Boolean },\n mode: {},\n uuid: {},\n validation: { default: () => ({ errorMessage: \"\" }) },\n errors: {}\n }, {\n modelValue: {},\n modelModifiers: {}\n }),\n emits: [\"update:modelValue\"],\n setup(e) {\n const t = S(() => e.errors?.length ? e.errors.join(\"; \") : e.validation.errorMessage ?? \"\"), l = Ie(e, \"modelValue\"), a = A(l.value ? new Date(l.value) : /* @__PURE__ */ new Date()), n = S({\n get: () => a.value.toISOString().split(\"T\")[0],\n set: (r) => {\n a.value = new Date(r), l.value = r;\n }\n }), o = pe(\"picker\"), s = A(!1);\n ot(o, () => s.value = !1), te(\n () => l.value,\n (r) => {\n r && (a.value = new Date(r));\n }\n );\n const d = (r) => {\n a.value = r.selected, l.value = n.value;\n };\n return (r, i) => (g(), k(\"div\", null, [\n e.mode === \"display\" ? (g(), k(Y, { key: 0 }, [\n y(\"span\", fa, B(l.value ? new Date(n.value).toLocaleDateString() : \"\"), 1),\n y(\"label\", null, B(e.label), 1)\n ], 64)) : (g(), k(Y, { key: 1 }, [\n X(y(\"input\", {\n id: e.uuid,\n ref: \"date\",\n \"onUpdate:modelValue\": i[0] || (i[0] = (h) => n.value = h),\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] = se(\n () => {\n s.value = !s.value;\n },\n [\"prevent\"]\n ))\n }, null, 8, ma), [\n [ge, n.value]\n ]),\n y(\"label\", { for: e.uuid }, B(e.label), 9, ha),\n X(y(\"p\", { innerHTML: t.value }, null, 8, pa), [\n [xe, t.value]\n ]),\n s.value ? (g(), me(rt, {\n key: 0,\n ref: \"picker\",\n class: \"picker\",\n \"select-range\": !1,\n \"show-time\": !1,\n onGetDate: d\n }, null, 512)) : W(\"\", !0)\n ], 64))\n ]));\n }\n}), wa = /* @__PURE__ */ ke(ga, [[\"__scopeId\", \"data-v-a73c275b\"]]), gt = /* @__PURE__ */ new WeakMap(), cn = {\n mounted(e, t) {\n const l = !t.modifiers.bubble;\n let a;\n if (typeof t.value == \"function\") a = ot(e, t.value, { capture: l });\n else {\n const [n, o] = t.value;\n a = ot(e, n, Object.assign({ capture: l }, o));\n }\n gt.set(e, a);\n },\n unmounted(e) {\n const t = gt.get(e);\n t && typeof t == \"function\" ? t() : t?.stop(), gt.delete(e);\n }\n};\nfunction ya() {\n let e = !1;\n const t = he(!1);\n return (l, a) => {\n if (t.value = a.value, e) return;\n e = !0;\n const n = Uo(l, a.value);\n te(t, (o) => n.value = o);\n };\n}\nya();\nconst xa = {\n key: 0,\n class: \"input-wrapper\"\n}, ba = { class: \"aform_display-value\" }, ka = [\"innerHTML\"], Ma = { class: \"input-wrapper\" }, Ia = [\"disabled\"], Ta = {\n id: \"autocomplete-results\",\n class: \"autocomplete-results\"\n}, Da = {\n key: 0,\n class: \"loading autocomplete-result\"\n}, Ca = [\"onClick\"], $a = [\"innerHTML\"], Sa = /* @__PURE__ */ ne({\n __name: \"ADropdown\",\n props: /* @__PURE__ */ be({\n schema: {},\n label: {},\n selectRange: { type: Boolean },\n mask: {},\n required: { type: Boolean },\n mode: {},\n uuid: {},\n validation: { default: () => ({ errorMessage: \"\" }) },\n errors: {},\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 = S(() => e.errors?.length ? e.errors.join(\"; \") : e.validation.errorMessage ?? \"\"), l = Ie(e, \"modelValue\"), a = A(l.value ?? \"\"), n = Tt({\n activeItemIndex: null,\n open: !1,\n loading: !1,\n results: e.options\n }), o = () => i(), s = async () => {\n if (n.open = !0, n.activeItemIndex = null, e.filterFunction) {\n e.isAsync && (n.loading = !0);\n try {\n const m = await e.filterFunction(l.value || \"\");\n n.results = m || [];\n } catch {\n n.results = [];\n } finally {\n e.isAsync && (n.loading = !1);\n }\n } else\n h();\n }, d = (m) => {\n l.value = m, a.value = m, i(m);\n }, r = () => {\n const m = e.options?.indexOf(l.value ?? \"\") ?? -1;\n n.activeItemIndex = e.isAsync ? null : m >= 0 ? m : null, n.open = !0, n.results = e.isAsync ? [] : e.options;\n }, i = (m) => {\n n.activeItemIndex = null, n.open = !1, e.options?.includes(m || l.value || \"\") || (l.value = a.value);\n }, h = () => {\n l.value ? n.results = e.options?.filter((m) => m.toLowerCase().includes((l.value ?? \"\").toLowerCase())) : n.results = e.options;\n }, f = () => {\n const m = n.results?.length || 0;\n if (n.activeItemIndex != null) {\n const p = isNaN(n.activeItemIndex) ? 0 : n.activeItemIndex;\n n.activeItemIndex = (p + 1) % m;\n } else\n n.activeItemIndex = 0;\n }, x = () => {\n const m = 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 = m - 1;\n }, b = () => {\n if (n.results) {\n const m = n.activeItemIndex || 0, p = n.results[m];\n d(p);\n }\n n.activeItemIndex = 0;\n };\n return (m, p) => e.mode === \"display\" ? (g(), k(\"div\", xa, [\n y(\"span\", ba, B(l.value ?? \"\"), 1),\n y(\"label\", null, B(e.label), 1),\n X(y(\"p\", {\n class: \"aform_error\",\n innerHTML: t.value\n }, null, 8, ka), [\n [xe, t.value]\n ])\n ])) : X((g(), k(\"div\", {\n key: 1,\n class: ue([\"autocomplete\", { isOpen: n.open }])\n }, [\n y(\"div\", Ma, [\n X(y(\"input\", {\n \"onUpdate:modelValue\": p[0] || (p[0] = (u) => l.value = u),\n type: \"text\",\n disabled: e.mode === \"read\",\n onInput: s,\n onFocus: r,\n onKeydown: [\n ve(f, [\"down\"]),\n ve(x, [\"up\"]),\n ve(b, [\"enter\"]),\n ve(o, [\"esc\"]),\n ve(o, [\"tab\"])\n ]\n }, null, 40, Ia), [\n [ge, l.value]\n ]),\n X(y(\"ul\", Ta, [\n n.loading ? (g(), k(\"li\", Da, \"Loading results...\")) : (g(!0), k(Y, { key: 1 }, we(n.results, (u, c) => (g(), k(\"li\", {\n key: u,\n class: ue([\"autocomplete-result\", { \"is-active\": c === n.activeItemIndex }]),\n onClick: se((M) => d(u), [\"stop\"])\n }, B(u), 11, Ca))), 128))\n ], 512), [\n [xe, n.open]\n ]),\n y(\"label\", null, B(e.label), 1)\n ]),\n X(y(\"p\", {\n class: \"aform_error\",\n innerHTML: t.value\n }, null, 8, $a), [\n [xe, t.value]\n ])\n ], 2)), [\n [P(cn), o]\n ]);\n }\n}), Aa = /* @__PURE__ */ ke(Sa, [[\"__scopeId\", \"data-v-0f2bf458\"]]), La = { class: \"aduration\" }, Ra = { class: \"aform_display-value\" }, Ea = { class: \"aduration__footer\" }, Ha = {\n key: 0,\n class: \"aduration__summary\"\n}, Va = { class: \"aduration__value\" }, Ba = { class: \"aduration__ms\" }, Fa = /* @__PURE__ */ ne({\n __name: \"ADuration\",\n props: /* @__PURE__ */ be({\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 = Ie(e, \"modelValue\"), l = A(null), a = A(null), n = S(() => {\n if (!l.value || !a.value) return 0;\n const r = a.value.getTime() - l.value.getTime();\n return r > 0 ? r : 0;\n });\n te(n, (r) => {\n t.value = r;\n });\n const o = (r) => {\n l.value = r.start, a.value = r.end, t.value = n.value;\n }, s = S(() => {\n const r = n.value;\n if (r === 0) return \"0s\";\n const i = Math.floor(r / 1e3) % 60, h = Math.floor(r / 6e4) % 60, f = Math.floor(r / 36e5) % 24, x = Math.floor(r / 864e5);\n return [x && `${x}d`, f && `${f}h`, h && `${h}m`, i && `${i}s`].filter(Boolean).join(\" \") || \"0s\";\n }), d = S(() => {\n const r = t.value;\n if (!r) return \"—\";\n const i = Math.floor(r / 1e3) % 60, h = Math.floor(r / 6e4) % 60, f = Math.floor(r / 36e5) % 24, x = Math.floor(r / 864e5);\n return [x && `${x}d`, f && `${f}h`, h && `${h}m`, i && `${i}s`].filter(Boolean).join(\" \") || \"0s\";\n });\n return (r, i) => (g(), k(\"div\", La, [\n e.mode === \"display\" || e.mode === \"read\" ? (g(), k(Y, { key: 0 }, [\n y(\"span\", Ra, B(d.value), 1),\n y(\"label\", null, B(e.label), 1)\n ], 64)) : (g(), k(Y, { key: 1 }, [\n ze(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 y(\"div\", Ea, [\n y(\"label\", null, B(e.label), 1),\n l.value && a.value ? (g(), k(\"div\", Ha, [\n i[0] || (i[0] = y(\"span\", { class: \"aduration__label\" }, \"Duration:\", -1)),\n y(\"span\", Va, B(s.value), 1),\n y(\"span\", Ba, \"(\" + B(t.value ?? 0) + \" ms)\", 1)\n ])) : W(\"\", !0)\n ])\n ], 64))\n ]));\n }\n}), Pa = /* @__PURE__ */ ke(Fa, [[\"__scopeId\", \"data-v-22611dd6\"]]), Na = { class: \"adaterange\" }, Oa = { class: \"aform_display-value\" }, Za = [\"id\", \"value\", \"disabled\"], Ua = [\"for\"], Ga = [\"innerHTML\"], Wa = /* @__PURE__ */ ne({\n __name: \"ADateRange\",\n props: /* @__PURE__ */ be({\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: \"\" }) },\n errors: {}\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 = (u) => new Date(u).toLocaleDateString(), l = S(() => e.errors?.length ? e.errors.join(\"; \") : e.validation.errorMessage ?? \"\"), a = Ie(e, \"modelValue\"), n = A(a.value.start_date ? new Date(a.value.start_date) : null), o = A(a.value.end_date ? new Date(a.value.end_date) : null), s = A(!1), d = A(null);\n ot(d, () => s.value = !1);\n const r = () => {\n e.mode !== \"read\" && (s.value = !0);\n }, i = (u) => u ? `${u.getMonth() + 1}/${u.getDate()}/${u.getFullYear()}` : \"\", h = S(() => {\n const u = i(n.value), c = i(o.value);\n return u && c ? `${u} — ${c}` : u ? `${u} — ...` : \"\";\n }), f = S(() => {\n const u = a.value.start_date, c = a.value.end_date;\n return !u && !c ? \"\" : u && c ? `${t(u)} — ${t(c)}` : u ? `From ${t(u)}` : `Until ${t(c)}`;\n }), x = () => {\n const u = n.value, c = o.value;\n u && c && c.getTime() < u.getTime() && ([n.value, o.value] = [c, u]);\n }, b = (u) => u ? u.toISOString().split(\"T\")[0] : null, m = () => {\n a.value = {\n start_date: b(n.value),\n end_date: b(o.value)\n };\n }, p = (u) => {\n u.start && (n.value = u.start), u.end && (o.value = u.end, x(), s.value = !1), m();\n };\n return te(\n () => a.value,\n (u) => {\n n.value = u.start_date ? new Date(u.start_date) : null, o.value = u.end_date ? new Date(u.end_date) : null;\n },\n { deep: !0 }\n ), (u, c) => (g(), k(\"div\", Na, [\n e.mode === \"display\" ? (g(), k(Y, { key: 0 }, [\n y(\"span\", Oa, B(f.value), 1),\n y(\"label\", null, B(e.label), 1)\n ], 64)) : (g(), k(Y, { key: 1 }, [\n y(\"input\", {\n id: e.uuid,\n class: \"adate-input aform_input-field\",\n type: \"text\",\n value: h.value,\n placeholder: \"Select date range\",\n disabled: e.mode === \"read\",\n readonly: \"\",\n onClick: r\n }, null, 8, Za),\n y(\"label\", { for: e.uuid }, B(e.label), 9, Ua),\n X(y(\"p\", { innerHTML: l.value }, null, 8, Ga), [\n [xe, l.value]\n ]),\n s.value ? (g(), me(rt, {\n key: 0,\n ref_key: \"pickerRef\",\n ref: d,\n class: \"picker\",\n \"select-range\": !0,\n \"show-time\": !1,\n onGetDate: p\n }, null, 512)) : W(\"\", !0)\n ], 64))\n ]));\n }\n}), qa = /* @__PURE__ */ ke(Wa, [[\"__scopeId\", \"data-v-b5838478\"]]), ja = { class: \"aform\" }, za = {\n key: 0,\n class: \"aform-nested-section\"\n}, Xa = {\n key: 0,\n class: \"aform-nested-label\"\n}, Ya = /* @__PURE__ */ ne({\n __name: \"AForm\",\n props: /* @__PURE__ */ be({\n schema: {},\n mode: { default: \"edit\" },\n errors: {}\n }, {\n data: { required: !0 },\n dataModifiers: {}\n }),\n emits: /* @__PURE__ */ be([\"update:schema\", \"update:data\"], [\"update:data\"]),\n setup(e, { emit: t }) {\n const l = t, a = Ie(e, \"data\"), n = (b) => (b.kind === \"link\" || b.kind === \"fieldset\") && \"schema\" in b && Array.isArray(b.schema) && b.schema.length > 0, o = A({});\n te(\n () => a.value,\n (b) => {\n !e.schema || !b || e.schema.forEach((m) => {\n n(m) && (o.value[m.fieldname] = b[m.fieldname] ?? {});\n });\n },\n { immediate: !0 }\n );\n const s = (b, m) => {\n o.value[b] = m, a.value && (a.value[b] = m, l(\"update:data\", { ...a.value }));\n }, d = (b) => {\n const m = {};\n for (const [p, u] of Object.entries(b))\n [\"component\", \"primaryKey\", \"computed\", \"language\", \"hidden\", \"mode\", \"width\"].includes(p) || (m[p] = u);\n return b.kind === \"table\" && (m.rows = a.value[b.fieldname] || []), m;\n }, r = (b) => {\n if (b.kind !== \"field\") return {};\n const m = b.width;\n return m ? { flexBasis: m, width: m } : {};\n }, i = S(() => e.mode ?? \"edit\");\n function h(b) {\n const m = b.mode;\n return m || i.value;\n }\n const f = A([]);\n Ct(() => {\n e.schema && f.value.length !== e.schema.length && (f.value = e.schema.map((b, m) => S({\n get() {\n return a.value?.[e.schema[m].fieldname];\n },\n set: (p) => {\n const u = e.schema[m].fieldname;\n u && a.value && (a.value[u] = p, l(\"update:data\", { ...a.value })), l(\"update:schema\", e.schema);\n }\n })));\n });\n const x = S(() => f.value);\n return (b, m) => (g(), k(\"form\", ja, [\n (g(!0), k(Y, null, we(e.schema, (p, u) => (g(), k(Y, { key: u }, [\n n(p) ? (g(), k(\"div\", za, [\n p.label && p.kind !== \"fieldset\" ? (g(), k(\"h4\", Xa, B(p.label), 1)) : W(\"\", !0),\n (g(), me(Ze(p.component ?? \"AForm\"), {\n data: o.value[p.fieldname],\n mode: h(p),\n schema: p.schema,\n label: p.label,\n collapsible: p.kind === \"fieldset\" ? p.collapsible : void 0,\n errors: e.errors,\n \"onUpdate:data\": (c) => s(p.fieldname, c)\n }, null, 40, [\"data\", \"mode\", \"schema\", \"label\", \"collapsible\", \"errors\", \"onUpdate:data\"]))\n ])) : p.hidden ? W(\"\", !0) : (g(), me(Ze(p.component), at({\n key: 1,\n modelValue: x.value[u].value,\n \"onUpdate:modelValue\": (c) => x.value[u].value = c,\n style: r(p),\n schema: p,\n data: a.value[p.fieldname],\n mode: h(p),\n errors: e.errors?.[p.fieldname]\n }, { ref_for: !0 }, d(p)), null, 16, [\"modelValue\", \"onUpdate:modelValue\", \"style\", \"schema\", \"data\", \"mode\", \"errors\"]))\n ], 64))), 128))\n ]));\n }\n}), vn = /* @__PURE__ */ ke(Ya, [[\"__scopeId\", \"data-v-039be29e\"]]), Ka = /* @__PURE__ */ ne({\n __name: \"CollapseButton\",\n props: {\n collapsed: { type: Boolean }\n },\n setup(e) {\n return (t, l) => (g(), k(\"button\", {\n class: ue([\"collapse-button\", e.collapsed ? \"rotated\" : \"unrotated\"])\n }, \"×\", 2));\n }\n}), _a = /* @__PURE__ */ ke(Ka, [[\"__scopeId\", \"data-v-6f1c1b45\"]]), Ja = /* @__PURE__ */ ne({\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 = A(!1), a = A(e.data || []), n = A(e.schema), o = (s) => {\n s.preventDefault(), e.collapsible && (l.value = !l.value);\n };\n return t({ collapsed: l }), (s, d) => (g(), k(\"fieldset\", null, [\n e.label || e.collapsible ? (g(), k(\"legend\", {\n key: 0,\n onClick: o,\n onSubmit: o\n }, [\n kt(B(e.label) + \" \", 1),\n e.collapsible ? (g(), me(_a, {\n key: 0,\n collapsed: l.value\n }, null, 8, [\"collapsed\"])) : W(\"\", !0)\n ], 32)) : W(\"\", !0),\n De(s.$slots, \"default\", { collapsed: l.value }, () => [\n X(ze(vn, {\n data: a.value,\n \"onUpdate:data\": d[0] || (d[0] = (r) => a.value = r),\n schema: n.value,\n mode: e.mode\n }, null, 8, [\"data\", \"schema\", \"mode\"]), [\n [xe, !l.value]\n ])\n ], !0)\n ]));\n }\n}), Qa = /* @__PURE__ */ ke(Ja, [[\"__scopeId\", \"data-v-162e7317\"]]), es = { class: \"aform_form-element aform_file-attach aform__grid--full\" }, ts = {\n key: 0,\n class: \"aform_file-attach-feedback\"\n}, ns = {\n key: 1,\n class: \"aform_display-value\"\n}, ls = {\n key: 0,\n class: \"aform_file-attach-feedback\"\n}, os = [\"disabled\"], as = [\"disabled\"], ss = /* @__PURE__ */ ne({\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 errors: {}\n },\n setup(e) {\n const { files: t, open: l, reset: a, onChange: n } = Zo(), o = S(() => {\n const s = t.value?.length ?? 0;\n return `${s} ${s === 1 ? \"file\" : \"files\"}`;\n });\n return n((s) => s), (s, d) => (g(), k(\"div\", es, [\n e.mode === \"display\" ? (g(), k(Y, { key: 0 }, [\n P(t) ? (g(), k(\"div\", ts, [\n y(\"p\", null, [\n y(\"b\", null, B(o.value), 1)\n ]),\n (g(!0), k(Y, null, we(P(t), (r) => (g(), k(\"li\", {\n key: r.name\n }, B(r.name), 1))), 128))\n ])) : (g(), k(\"span\", ns, \"No file selected\"))\n ], 64)) : (g(), k(Y, { key: 1 }, [\n P(t) ? (g(), k(\"div\", ls, [\n y(\"p\", null, [\n d[2] || (d[2] = kt(\" You have selected: \", -1)),\n y(\"b\", null, B(o.value), 1)\n ]),\n (g(!0), k(Y, null, we(P(t), (r) => (g(), k(\"li\", {\n key: r.name\n }, B(r.name), 1))), 128))\n ])) : W(\"\", !0),\n y(\"button\", {\n type: \"button\",\n class: \"aform_form-btn\",\n disabled: e.mode === \"read\",\n onClick: d[0] || (d[0] = (r) => P(l)())\n }, B(e.label), 9, os),\n y(\"button\", {\n type: \"button\",\n disabled: !P(t) || e.mode === \"read\",\n class: \"aform_form-btn\",\n onClick: d[1] || (d[1] = (r) => P(a)())\n }, \"Reset\", 8, as)\n ], 64))\n ]));\n }\n}), rs = /* @__PURE__ */ ke(ss, [[\"__scopeId\", \"data-v-8eefd179\"]]), is = { class: \"aform_form-element\" }, us = {\n key: 0,\n class: \"aform_display-value\"\n}, ds = { class: \"aform_form-link-wrapper\" }, cs = { class: \"input-group\" }, vs = [\"disabled\", \"onKeydown\"], fs = [\"onKeydown\"], ms = {\n key: 0,\n class: \"autocomplete-results\"\n}, hs = {\n key: 0,\n class: \"autocomplete-result loading\"\n}, ps = [\"onMousedown\"], gs = {\n key: 0,\n class: \"aform_field-label\"\n}, ws = /* @__PURE__ */ ne({\n __name: \"AFormLink\",\n props: /* @__PURE__ */ be({\n schema: {},\n label: {},\n selectRange: { type: Boolean },\n mask: {},\n required: { type: Boolean },\n mode: {},\n uuid: {},\n validation: {},\n errors: {},\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 = Ie(e, \"modelValue\"), l = S(() => {\n const I = t.value?.id;\n return I != null && I !== \"\";\n }), a = S(() => l.value ? e.formatter ? e.formatter(t.value) : t.value.displayText ?? String(t.value.id) : \"—\"), n = A(l.value ? a.value : \"\"), o = A(!1), s = A(!1), d = A([]), r = A(null), i = wt(\"aformLinkNavigator\", null), h = wt(\"aformLinkResolver\", null);\n te(\n () => t.value,\n (I) => {\n I != null && (typeof I == \"string\" || typeof I == \"number\") && (t.value = { id: I });\n },\n { immediate: !0 }\n ), te(\n () => t.value?.id,\n async (I) => {\n if (!(!I || t.value.displayText))\n try {\n let V;\n e.filterFunction ? (V = (await (typeof e.filterFunction == \"string\" ? yt(e.filterFunction) : e.filterFunction)(String(I))).find((F) => String(F.id) === String(I))?.displayText, V === void 0 && console.warn(\n `[AFormLink] filterFunction returned no matching result for id \"${I}\". The function must return an item whose \\`id\\` exactly matches the search string.`\n )) : h && e.doctype && (V = await h(e.doctype, I.toString()) ?? void 0), V && (n.value = V, t.value = { ...t.value, displayText: V });\n } catch {\n }\n },\n { immediate: !0 }\n );\n const f = () => {\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 }, x = async (I) => {\n if (!(!e.filterFunction || e.mode === \"read\")) {\n r.value = null, o.value = !0, e.isAsync && (s.value = !0);\n try {\n const V = typeof e.filterFunction == \"string\" ? yt(e.filterFunction) : e.filterFunction;\n d.value = await V(I) ?? [];\n } catch {\n d.value = [];\n } finally {\n s.value = !1;\n }\n }\n }, b = () => {\n o.value = !1, r.value = null, n.value = l.value ? a.value : \"\";\n }, m = () => {\n o.value && b();\n }, p = () => x(n.value), u = () => x(n.value), c = (I) => {\n t.value = I, n.value = I.displayText ?? String(I.id), o.value = !1, r.value = null;\n }, M = () => {\n const I = d.value.length;\n I && (r.value = r.value === null ? 0 : (r.value + 1) % I);\n }, C = () => {\n d.value.length && (r.value === null || r.value === 0 ? r.value = null : r.value -= 1);\n }, D = () => {\n r.value !== null && d.value[r.value] && c(d.value[r.value]);\n };\n return (I, V) => (g(), k(\"div\", is, [\n e.mode === \"display\" ? (g(), k(\"span\", us, B(a.value), 1)) : (g(), k(Y, { key: 1 }, [\n X((g(), k(\"div\", ds, [\n y(\"div\", cs, [\n X(y(\"input\", {\n \"onUpdate:modelValue\": V[0] || (V[0] = (O) => n.value = O),\n type: \"text\",\n class: \"aform_input-field\",\n disabled: e.disabled || e.mode === \"read\",\n onInput: u,\n onFocus: p,\n onKeydown: [\n ve(se(M, [\"prevent\"]), [\"down\"]),\n ve(se(C, [\"prevent\"]), [\"up\"]),\n ve(se(D, [\"prevent\"]), [\"enter\"]),\n ve(b, [\"esc\"]),\n ve(b, [\"tab\"])\n ]\n }, null, 40, vs), [\n [ge, n.value]\n ]),\n l.value && !e.disabled ? (g(), k(\"button\", {\n key: 0,\n type: \"button\",\n class: \"aform_form-btn\",\n onClick: f,\n onKeydown: ve(se(f, [\"prevent\"]), [\"enter\"])\n }, [\n y(\"span\", null, B(e.icon === \"chevron-right\" ? \"›\" : \"→\"), 1)\n ], 40, fs)) : W(\"\", !0)\n ]),\n o.value ? (g(), k(\"ul\", ms, [\n s.value ? (g(), k(\"li\", hs, \"Loading…\")) : (g(!0), k(Y, { key: 1 }, we(d.value, (O, R) => (g(), k(\"li\", {\n key: String(O.id),\n class: ue([\"autocomplete-result\", { \"is-active\": R === r.value }]),\n onMousedown: se((F) => c(O), [\"prevent\"])\n }, B(O.displayText ?? String(O.id)), 43, ps))), 128))\n ])) : W(\"\", !0)\n ])), [\n [P(cn), m]\n ]),\n e.label ? (g(), k(\"label\", gs, B(e.label), 1)) : W(\"\", !0)\n ], 64))\n ]));\n }\n}), ys = /* @__PURE__ */ ke(ws, [[\"__scopeId\", \"data-v-4b68886b\"]]), xs = { class: \"aform_form-element\" }, bs = { class: \"aform_display-value\" }, ks = { class: \"aform_field-label\" }, Ms = [\"id\", \"disabled\", \"required\"], Is = [\"for\"], Ts = [\"innerHTML\"], Ds = /* @__PURE__ */ ne({\n __name: \"ANumericInput\",\n props: /* @__PURE__ */ be({\n schema: {},\n label: {},\n selectRange: { type: Boolean },\n mask: {},\n required: { type: Boolean },\n mode: {},\n uuid: {},\n validation: { default: () => ({ errorMessage: \"\" }) },\n errors: {}\n }, {\n modelValue: {},\n modelModifiers: {}\n }),\n emits: [\"update:modelValue\"],\n setup(e) {\n const t = S(() => e.errors?.length ? e.errors.join(\"; \") : e.validation.errorMessage ?? \"\"), l = Ie(e, \"modelValue\");\n return (a, n) => (g(), k(\"div\", xs, [\n e.mode === \"display\" ? (g(), k(Y, { key: 0 }, [\n y(\"span\", bs, B(l.value ?? \"\"), 1),\n y(\"label\", ks, B(e.label), 1)\n ], 64)) : (g(), k(Y, { key: 1 }, [\n X(y(\"input\", {\n id: e.uuid,\n \"onUpdate:modelValue\": n[0] || (n[0] = (o) => l.value = o),\n class: \"aform_input-field\",\n type: \"number\",\n disabled: e.mode === \"read\",\n required: e.required\n }, null, 8, Ms), [\n [ge, l.value]\n ]),\n y(\"label\", {\n class: \"aform_field-label\",\n for: e.uuid\n }, B(e.label), 9, Is),\n X(y(\"p\", {\n class: \"aform_error\",\n innerHTML: t.value\n }, null, 8, Ts), [\n [xe, t.value]\n ])\n ], 64))\n ]));\n }\n});\nfunction Cs(e) {\n try {\n return yt(e);\n } catch {\n return;\n }\n}\nfunction $s(e) {\n const t = e.value;\n if (!t) return;\n const l = Cs(t);\n if (l) {\n const n = e.instance?.locale;\n return l(n);\n }\n return t;\n}\nfunction Ss(e, t) {\n let l = e;\n const a = [t, \"/\", \"-\", \"(\", \")\", \" \"];\n for (const n of a)\n l = l.replaceAll(n, \"\");\n return l;\n}\nfunction As(e, t, l) {\n let a = t;\n for (const n of e) {\n const o = a.indexOf(l);\n if (o !== -1) {\n const s = a.substring(0, o), d = a.substring(o + 1);\n a = s + n + d;\n }\n }\n return a.slice(0, t.length);\n}\nfunction Ls(e, t) {\n const l = $s(t);\n if (!l) return;\n const a = \"#\", n = e.value, o = Ss(n, a);\n if (o) {\n const s = As(o, l, a), d = t.instance;\n d?.maskFilled && (d.maskFilled = !s.includes(a)), e.value = s;\n } else\n e.value = l;\n}\nconst Rs = { class: \"aform_form-element\" }, Es = { class: \"aform_display-value\" }, Hs = { class: \"aform_field-label\" }, Vs = [\"id\", \"disabled\", \"maxlength\", \"required\"], Bs = [\"for\"], Fs = [\"innerHTML\"], Ps = /* @__PURE__ */ ne({\n __name: \"ATextInput\",\n props: /* @__PURE__ */ be({\n schema: {},\n label: {},\n selectRange: { type: Boolean },\n mask: {},\n required: { type: Boolean },\n mode: {},\n uuid: {},\n validation: { default: () => ({ errorMessage: \"\" }) },\n errors: {}\n }, {\n modelValue: {},\n modelModifiers: {}\n }),\n emits: [\"update:modelValue\"],\n setup(e) {\n const t = S(() => e.errors?.length ? e.errors.join(\"; \") : e.validation.errorMessage ?? \"\"), l = A(!0), a = Ie(e, \"modelValue\");\n return (n, o) => (g(), k(\"div\", Rs, [\n e.mode === \"display\" ? (g(), k(Y, { key: 0 }, [\n y(\"span\", Es, B(a.value ?? \"\"), 1),\n y(\"label\", Hs, B(e.label), 1)\n ], 64)) : (g(), k(Y, { key: 1 }, [\n X(y(\"input\", {\n id: e.uuid,\n \"onUpdate:modelValue\": o[0] || (o[0] = (s) => a.value = s),\n class: \"aform_input-field\",\n disabled: e.mode === \"read\",\n maxlength: e.mask && l.value ? e.mask.length : void 0,\n required: e.required\n }, null, 8, Vs), [\n [ge, a.value],\n [P(Ls), e.mask]\n ]),\n y(\"label\", {\n class: \"aform_field-label\",\n for: e.uuid\n }, B(e.label), 9, Bs),\n X(y(\"p\", {\n class: \"aform_error\",\n innerHTML: t.value\n }, null, 8, Fs), [\n [xe, t.value]\n ])\n ], 64))\n ]));\n }\n}), Ns = { class: \"aform_form-element\" }, Os = { class: \"aform_display-value\" }, Zs = { class: \"aform_field-label\" }, Us = [\"id\", \"disabled\", \"required\"], Gs = [\"for\"], Ws = [\"innerHTML\"], qs = /* @__PURE__ */ ne({\n __name: \"ATextarea\",\n props: /* @__PURE__ */ be({\n schema: {},\n label: {},\n selectRange: { type: Boolean },\n mask: {},\n required: { type: Boolean },\n mode: {},\n uuid: {},\n validation: { default: () => ({ errorMessage: \"\" }) },\n errors: {}\n }, {\n modelValue: {},\n modelModifiers: {}\n }),\n emits: [\"update:modelValue\"],\n setup(e) {\n const t = S(() => e.errors?.length ? e.errors.join(\"; \") : e.validation.errorMessage ?? \"\"), l = Ie(e, \"modelValue\");\n return (a, n) => (g(), k(\"div\", Ns, [\n e.mode === \"display\" ? (g(), k(Y, { key: 0 }, [\n y(\"span\", Os, B(l.value ?? \"\"), 1),\n y(\"label\", Zs, B(e.label), 1)\n ], 64)) : (g(), k(Y, { key: 1 }, [\n X(y(\"textarea\", {\n id: e.uuid,\n \"onUpdate:modelValue\": n[0] || (n[0] = (o) => l.value = o),\n class: \"aform_input-field aform_textarea\",\n disabled: e.mode === \"read\",\n required: e.required\n }, null, 8, Us), [\n [ge, l.value]\n ]),\n y(\"label\", {\n class: \"aform_field-label\",\n for: e.uuid\n }, B(e.label), 9, Gs),\n X(y(\"p\", {\n class: \"aform_error\",\n innerHTML: t.value\n }, null, 8, Ws), [\n [xe, t.value]\n ])\n ], 64))\n ]));\n }\n}), js = { class: \"login-container\" }, zs = { class: \"account-container\" }, Xs = { class: \"account-header\" }, Ys = { id: \"account-title\" }, Ks = { id: \"account-subtitle\" }, _s = { class: \"login-form-container\" }, Js = { class: \"login-form-email aform_form-element\" }, Qs = [\"disabled\"], er = { class: \"login-form-password aform_form-element\" }, tr = [\"disabled\"], nr = [\"disabled\"], lr = {\n key: 0,\n class: \"material-symbols-outlined loading-icon\"\n}, or = /* @__PURE__ */ ne({\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, a = A(\"\"), n = A(\"\"), o = A(!1), s = A(!1);\n function d(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(), k(\"div\", js, [\n y(\"div\", null, [\n y(\"div\", zs, [\n y(\"div\", Xs, [\n y(\"h1\", Ys, B(e.headerTitle), 1),\n y(\"p\", Ks, B(e.headerSubtitle), 1)\n ]),\n y(\"form\", { onSubmit: d }, [\n y(\"div\", _s, [\n y(\"div\", Js, [\n i[2] || (i[2] = y(\"label\", {\n id: \"login-email\",\n for: \"email\",\n class: \"aform_field-label\"\n }, \"Email\", -1)),\n X(y(\"input\", {\n id: \"email\",\n \"onUpdate:modelValue\": i[0] || (i[0] = (h) => a.value = h),\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, Qs), [\n [ge, a.value]\n ])\n ]),\n y(\"div\", er, [\n i[3] || (i[3] = y(\"label\", {\n id: \"login-password\",\n for: \"password\",\n class: \"aform_field-label\"\n }, \"Password\", -1)),\n X(y(\"input\", {\n id: \"password\",\n \"onUpdate:modelValue\": i[1] || (i[1] = (h) => n.value = h),\n class: \"aform_input-field\",\n name: \"password\",\n type: \"password\",\n disabled: o.value\n }, null, 8, tr), [\n [ge, n.value]\n ])\n ]),\n y(\"button\", {\n class: \"btn\",\n disabled: o.value || !a.value || !n.value,\n onClick: d\n }, [\n o.value ? (g(), k(\"span\", lr, \"progress_activity\")) : W(\"\", !0),\n i[4] || (i[4] = y(\"span\", { id: \"login-form-button\" }, \"Login\", -1))\n ], 8, nr)\n ])\n ], 32),\n i[5] || (i[5] = y(\"button\", { class: \"btn\" }, [\n y(\"span\", { id: \"forgot-password-button\" }, \"Forgot password?\")\n ], -1))\n ])\n ])\n ]));\n }\n}), rr = /* @__PURE__ */ ke(or, [[\"__scopeId\", \"data-v-2c0f0634\"]]);\nfunction ir(e) {\n e.use(Mo), e.component(\"ACheckbox\", Ro), e.component(\"ADate\", wa), e.component(\"ADropdown\", Aa), e.component(\"ADatePicker\", dn), e.component(\"ADateTime\", bt), e.component(\"ADateRange\", qa), e.component(\"ADateSelection\", rt), e.component(\"AFieldset\", Qa), e.component(\"AFileAttach\", rs), e.component(\"AForm\", vn), e.component(\"AFormLink\", ys), e.component(\"ANumericInput\", Ds), e.component(\"ATextInput\", Ps), e.component(\"ATextarea\", qs), e.component(\"ADuration\", Pa);\n}\nexport {\n Ro as ACheckbox,\n wa as ADate,\n dn as ADatePicker,\n qa as ADateRange,\n rt as ADateSelection,\n bt as ADateTime,\n Aa as ADropdown,\n Pa as ADuration,\n Qa as AFieldset,\n rs as AFileAttach,\n vn as AForm,\n ys as AFormLink,\n Ds as ANumericInput,\n Ps as ATextInput,\n qs as ATextarea,\n rr as Login,\n yt as deserializeFunction,\n ir 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\n\t\t\tv-if=\"currentViewSchema.length > 0\"\n\t\t\tv-model:data=\"currentViewData\"\n\t\t\t:schema=\"currentViewSchema\"\n\t\t\t:errors=\"fieldErrors\" />\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, useValidationStore } 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// Field-validation store (advisory, client-side). Pinia is a declared peerDependency, kept external\n// in this package's build (rollupOptions), so `useValidationStore()` resolves the host app's single\n// active Pinia directly — the old `getCurrentInstance().$pinia` workaround for the bundled-Pinia bug\n// is no longer needed. Still guarded: validation is optional and Desktop predates it, so a host that\n// mounts Desktop without Pinia disables validation gracefully instead of crashing on mount.\nlet validationStore: ReturnType<typeof useValidationStore> | null = null\ntry {\n\tvalidationStore = useValidationStore()\n} catch {\n\tvalidationStore = null\n}\n\n// Inline field errors handed to AForm. Only surfaced in the record form view (currentView is\n// defined below); empty elsewhere so a previous record's errors never bleed into a list view.\nconst fieldErrors = computed<Record<string, string[]>>(() =>\n\tcurrentView.value === 'record' ? (validationStore?.errorsByField ?? {}) : {}\n)\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\tconst changedFields: string[] = []\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\tchangedFields.push(fieldname)\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Advisory field-validation runs on the fields that actually changed (honors each\n\t\t\t// trigger's `on` set). Driven here, after the HST writes, so HST stays value-only.\n\t\t\tif (changedFields.length > 0) {\n\t\t\t\tdriveFieldValidation(changedFields)\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// Advisory field-validation: run the doctype's triggers for the fields that changed on this edit.\n// Snapshots the post-edit record as a plain, flat object so validators read siblings read-only\n// (the core store freezes it). Fire-and-forget — the reactive error store repaints AForm on resolve.\nfunction driveFieldValidation(changedFields: string[]) {\n\tif (!validationStore || !stonecrop.value || !currentDoctype.value || !currentRecordId.value) return\n\n\tconst doctype = stonecrop.value.registry.getDoctype(currentDoctype.value)\n\tconst triggers = doctype?.getTriggers()\n\tif (!triggers || Object.keys(triggers).length === 0) return\n\n\tconst node = stonecrop.value.getRecordById(currentDoctype.value, currentRecordId.value)\n\tconst record = { ...(node?.get('') as Record<string, unknown>) }\n\n\tfor (const field of changedFields) {\n\t\tvoid validationStore.validateField(triggers, field, record)\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 }) => ({\n\t\t\t// Prefer the workflow action's human-readable label (WorkflowMeta format);\n\t\t\t// fall back to the raw transition name for XState workflows with no action meta.\n\t\t\tlabel: doctype.getActionMeta(name)?.label ?? name,\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\n// Helper: stateless Commands available for the current record — side-effect actions that\n// change no workflow state. Surfaced in the same Actions dropdown as transitions; each emits\n// the same 'action' event, so the host's handler runs a Command's clientHandler identically.\nconst getAvailableCommands = () => {\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\tconst currentState = stonecrop.value.getRecordState(currentDoctype.value, currentRecordId.value)\n\t\tconst commands = doctype.getAvailableCommands(currentState)\n\t\tconst recordData = currentViewData.value || {}\n\n\t\treturn commands.map(({ name }) => ({\n\t\t\tlabel: doctype.getActionMeta(name)?.label ?? name,\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 commands:', 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 AND stateless Command\n\t\t\t// available in the record's current state. Clicking either emits 'action'.\n\t\t\tconst recordActions = [...getAvailableTransitions(), ...getAvailableCommands()]\n\t\t\tif (recordActions.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: recordActions,\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\tcomponent: 'ATextInput',\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\tcomponent: 'ATextInput',\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\tcomponent: 'ANumericInput',\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\tcomponent: 'ATextInput',\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', component: 'ATextInput' },\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// Clear advisory validation errors when the target record changes, so errors from a previously\n// edited record never bleed into a newly opened one.\nwatch([currentDoctype, currentRecordId], () => {\n\tvalidationStore?.clearAll()\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","Hs","Ys","t","r","i","Gs","Xs","Qs","so","ea","Js","to","Vs","K","ta","n","o","ao","ra","Jr","na","ro","ia","Je","oa","sa","eo","yn","aa","ot","ua","Ue","dt","te","Ks","f","l","h","d","pr","dr","ca","fa","la","ha","pa","ni","da","_","no","m","E","$","b","N","k","Ct","Ce","M","D","ie","ht","Re","Y","ae","jt","_a","Vr","_r","va","ii","oi","or","io","w","v","X","be","je","Te","Wt","u","Le","si","_t","Or","ya","Be","nn","s","a","c","g","ai","Rp","kr","z","R","O","L","F","oo","Kr","nt","pt","Us","Br","Wr","hr","Bs","Ws","wa","ri","p","vt","co","fo","Ve","lo","on","Nr","wn","Sn","Sa","ui","at","et","ci","ba","ho","Ht","za","yt","po","ka","wt","tt","y","Oa","$a","Ea","Ia","Aa","Ra","Ta","Pa","Na","gt","mt","gr","Ke","bn","Yt","_o","go","mo","Za","Ma","zn","kn","Zr","Da","Mr","Ca","ja","La","Fa","xa","qa","Ua","Ba","Wa","Ja","Va","Ka","Ha","Ya","Ga","Xa","Qa","fi","eu","tu","ru","nu","iu","ou","su","au","vo","uu","yo","cu","wo","fu","lu","hu","pu","So","du","_u","gu","de","bo","zo","ko","mu","vu","yu","wu","Su","Dr","bu","zu","ku","Ou","$u","Eu","Iu","Au","Ru","W","On","J","Tu","Pu","Nu","Zu","Mu","Du","Cu","ju","Lu","Fu","xu","qu","Uu","Bu","Wu","Ju","Vu","Ku","Hu","Oo","Yu","Gu","Xu","Qu","ec","tc","$o","rc","nc","ic","oc","li","sc","$r","Eo","Io","ac","uc","hi","Ao","cc","fc","pi","sn","lc","hc","pc","dc","di","Ro","_c","gc","mc","_i","vc","yc","gi","wc","Sc","mr","bc","mi","zc","kc","vi","yi","Oc","$c","xt","Ec","Ic","wi","Ac","Rc","Tc","Pc","Nc","Zc","Mc","Dc","Cc","jc","Lc","Fc","xc","qc","Uc","Bc","Wc","Jc","Vc","Kc","Hc","Yc","Gc","Xc","Qc","ef","tf","rf","nf","Si","Hr","bi","Yr","zi","To","Er","Po","of","sf","af","uf","cf","ff","Rt","lf","hf","pf","df","_f","gf","mf","vf","yf","No","G","ue","Zo","Mo","Ir","wf","Sf","bf","zf","kf","Of","$f","Ef","If","Af","Rf","Tf","Pf","Nf","Zf","Mf","Df","Cf","jf","Lf","Ff","xf","qf","Do","Uf","Bf","H","Wf","Jf","Vf","Kf","Hf","Yf","Gf","Xf","$e","Qf","tl","rl","nl","il","ol","sl","al","ul","cl","fl","V","nh","ih","$i","ql","Ei","Kl","He","qo","Cl","cn","Bo","Wl","Vl","Yl","Ql","Co","ll","hl","pl","Il","dl","ki","vr","_l","gl","ml","vl","Ol","$l","yl","wl","Sl","bl","zl","kl","El","I","jo","Oi","an","Al","Rl","ze","Tl","Gt","Pl","Lo","Nl","Fo","Ie","Wo","Jo","ce","Zl","xo","Ml","Uo","Dl","jl","Xt","un","Ll","st","Fl","xl","Ul","Bl","Jl","Hl","Gl","Xl","eh","th","rh","oh","sh","ah","uh","Vo","ch","fh","lh","hh","ph","dh","_h","gh","mh","vh","yh","wh","Sh","Ho","Yo","Ar","Oe","Rr","U","En","Go","ye","oe","pe","Ee","rt","ut","Ae","Tt","Zt","Pt","we","Se","fn","Xo","Cr","Z","B","le","Qo","jr","Ri","ln","zh","kh","sr","j","me","fe","P","hn","ke","In","St","es","Ye","Lr","rs","ar","ts","Fr","ns","ct","Me","Ge","Ze","is","An","Nt","os","Tn","$h","Pn","ss","bt","Rn","Oh","Ti","Nn","ur","cr","Ft","xr","Eh","_e","Pi","Nh","Ih","Zh","Ah","pn","Th","Rh","Qr","Xr","Mh","Mi","as","dn","_n","it","Zi","Ph","Ni","Gr","qr","Zn","hs","us","cs","fs","Ci","Cn","ls","De","ps","Dh","Qe","Ch","xe","Dn","C","jh","Mn","Lh","ds","Fh","xh","_s","qh","Uh","zt","gs","yr","Di","wr","ji","ve","ms","Mt","vs","ws","ys","Bh","Wh","Xe","Pe","Tr","jn","Ln","Jh","Vh","Ss","bs","Fn","Ne","xn","Kh","qn","Un","Bn","Wn","fr","zs","Jn","Jt","ge","xi","Hh","Vn","q","Yn","Qt","tp","Yh","kt","ks","Kn","rp","Xh","qi","Os","ep","Qh","er","np","Gh","Ot","Hn","Fe","Li","en","Fi","$s","tr","ip","Es","op","sp","Is","ap","As","Rs","$t","zr","rr","We","Ts","up","qe","Ui","Vt","Q","Et","nr","gn","Ps","qt","Wi","Gn","Bi","Ns","mn","Xn","Sr","Ut","he","Ji","Vi","cp","fp","tn","Ki","Hi","Zs","lp","rn","Ms","Qn","Ur","Bt","ne","br","ir","Ds","Yi","Cs","js","hp","pp","Ls","Pr","dp","Gi","_p","ft","se","lr","Xi","Dt","It","Fs","vn","lt","xs","Qi","gp","re","ti","mp","x","At","ei","Zp","A","S","breadcrumbsVisibile","searchVisible","searchText","rotateHideTabIcon","toggleBreadcrumbs","toggleSearch","handleSearchInput","event","handleSearch","navigateHome","_component_router_link","_cache","_withKeys","breadcrumb","_createTextVNode","stonecrop","useStonecrop","validationStore","useValidationStore","fieldErrors","currentView","loading","commandPaletteOpen","currentViewData","doctype","formatDoctypeName","getRecordCount","idField","getRecords","record","currentDoctype","currentRecordId","flat","field","nested","child","newData","fieldsetNames","flatData","fieldsetValues","key","value","nestedValue","hstStore","changedFields","fieldname","fieldPath","driveFieldValidation","error","triggers","route","unref","router","pathMatch","routeDoctype","isNewRecord","routeName","getAvailableTransitions","currentState","transitions","recordData","name","getAvailableCommands","commands","actionElements","elements","createNewRecord","recordActions","navigationBreadcrumbs","breadcrumbs","recordPath","searchCommands","doNavigate","cmd","executeCommand","command","word","target","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","id","toDisplayString","rec","val","doctypeSlug","cached","cachedDisplay","fetched","onUnmounted","ActionSet","_unref","AForm","SheetNav","CommandPalette","_withCtx","plugin","app","Desktop"],"mappings":"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"}