@vuu-ui/vuu-utils 2.1.13 → 2.1.15
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.
- package/cjs/node_modules/@dnd-kit/react/hooks.js +17 -17
- package/cjs/node_modules/@dnd-kit/react/hooks.js.map +1 -1
- package/cjs/node_modules/@dnd-kit/react/index.js +24 -24
- package/cjs/node_modules/@dnd-kit/react/index.js.map +1 -1
- package/cjs/node_modules/@dnd-kit/react/sortable.js +5 -5
- package/cjs/node_modules/@dnd-kit/react/sortable.js.map +1 -1
- package/cjs/packages/vuu-utils/src/ShellContext.js +3 -3
- package/cjs/packages/vuu-utils/src/ShellContext.js.map +1 -1
- package/cjs/packages/vuu-utils/src/ThemeProvider.js +10 -10
- package/cjs/packages/vuu-utils/src/ThemeProvider.js.map +1 -1
- package/cjs/packages/vuu-utils/src/context-definitions/DataContext.js +2 -2
- package/cjs/packages/vuu-utils/src/context-definitions/DataContext.js.map +1 -1
- package/cjs/packages/vuu-utils/src/context-definitions/DataProvider.js +4 -4
- package/cjs/packages/vuu-utils/src/context-definitions/DataProvider.js.map +1 -1
- package/cjs/packages/vuu-utils/src/context-definitions/DataSourceProvider.js +5 -5
- package/cjs/packages/vuu-utils/src/context-definitions/DataSourceProvider.js.map +1 -1
- package/cjs/packages/vuu-utils/src/context-definitions/WorkspaceContext.js +3 -3
- package/cjs/packages/vuu-utils/src/context-definitions/WorkspaceContext.js.map +1 -1
- package/cjs/packages/vuu-utils/src/data-editing/DataEditingProvider.js +5 -5
- package/cjs/packages/vuu-utils/src/data-editing/DataEditingProvider.js.map +1 -1
- package/cjs/packages/vuu-utils/src/data-editing/EditButtons.js +12 -15
- package/cjs/packages/vuu-utils/src/data-editing/EditButtons.js.map +1 -1
- package/cjs/packages/vuu-utils/src/data-editing/EditSession.js +52 -130
- package/cjs/packages/vuu-utils/src/data-editing/EditSession.js.map +1 -1
- package/cjs/packages/vuu-utils/src/data-editing/edit-utils.js +1 -32
- package/cjs/packages/vuu-utils/src/data-editing/edit-utils.js.map +1 -1
- package/cjs/packages/vuu-utils/src/data-editing/useEditableTable.js +15 -23
- package/cjs/packages/vuu-utils/src/data-editing/useEditableTable.js.map +1 -1
- package/cjs/packages/vuu-utils/src/datasource/BaseDataSource.js +3 -2
- package/cjs/packages/vuu-utils/src/datasource/BaseDataSource.js.map +1 -1
- package/cjs/packages/vuu-utils/src/datasource/datasource-filter-utils.js +3 -3
- package/cjs/packages/vuu-utils/src/datasource/datasource-filter-utils.js.map +1 -1
- package/cjs/packages/vuu-utils/src/date/date-utils.js +2 -2
- package/cjs/packages/vuu-utils/src/date/date-utils.js.map +1 -1
- package/cjs/packages/vuu-utils/src/date/formatter.js +2 -2
- package/cjs/packages/vuu-utils/src/date/formatter.js.map +1 -1
- package/cjs/packages/vuu-utils/src/feature-utils.js +2 -2
- package/cjs/packages/vuu-utils/src/feature-utils.js.map +1 -1
- package/cjs/packages/vuu-utils/src/index.js +2 -9
- package/cjs/packages/vuu-utils/src/index.js.map +1 -1
- package/cjs/packages/vuu-utils/src/protocol-message-utils.js +0 -10
- package/cjs/packages/vuu-utils/src/protocol-message-utils.js.map +1 -1
- package/cjs/packages/vuu-utils/src/react-utils.js +8 -8
- package/cjs/packages/vuu-utils/src/react-utils.js.map +1 -1
- package/cjs/packages/vuu-utils/src/theme-utils.js +3 -3
- package/cjs/packages/vuu-utils/src/theme-utils.js.map +1 -1
- package/cjs/packages/vuu-utils/src/useId.js +2 -2
- package/cjs/packages/vuu-utils/src/useId.js.map +1 -1
- package/cjs/packages/vuu-utils/src/useLayoutEffectSkipFirst.js +3 -3
- package/cjs/packages/vuu-utils/src/useLayoutEffectSkipFirst.js.map +1 -1
- package/cjs/packages/vuu-utils/src/useResizeObserver.js +5 -5
- package/cjs/packages/vuu-utils/src/useResizeObserver.js.map +1 -1
- package/cjs/packages/vuu-utils/src/useStateRef.js +4 -4
- package/cjs/packages/vuu-utils/src/useStateRef.js.map +1 -1
- package/esm/packages/vuu-utils/src/ThemeProvider.js +2 -2
- package/esm/packages/vuu-utils/src/ThemeProvider.js.map +1 -1
- package/esm/packages/vuu-utils/src/context-definitions/WorkspaceContext.js +2 -2
- package/esm/packages/vuu-utils/src/context-definitions/WorkspaceContext.js.map +1 -1
- package/esm/packages/vuu-utils/src/data-editing/EditButtons.js +4 -7
- package/esm/packages/vuu-utils/src/data-editing/EditButtons.js.map +1 -1
- package/esm/packages/vuu-utils/src/data-editing/EditSession.js +53 -130
- package/esm/packages/vuu-utils/src/data-editing/EditSession.js.map +1 -1
- package/esm/packages/vuu-utils/src/data-editing/edit-utils.js +2 -32
- package/esm/packages/vuu-utils/src/data-editing/edit-utils.js.map +1 -1
- package/esm/packages/vuu-utils/src/data-editing/useEditableTable.js +9 -17
- package/esm/packages/vuu-utils/src/data-editing/useEditableTable.js.map +1 -1
- package/esm/packages/vuu-utils/src/datasource/BaseDataSource.js +1 -0
- package/esm/packages/vuu-utils/src/datasource/BaseDataSource.js.map +1 -1
- package/esm/packages/vuu-utils/src/feature-utils.js +2 -2
- package/esm/packages/vuu-utils/src/feature-utils.js.map +1 -1
- package/esm/packages/vuu-utils/src/index.js +3 -3
- package/esm/packages/vuu-utils/src/protocol-message-utils.js +1 -6
- package/esm/packages/vuu-utils/src/protocol-message-utils.js.map +1 -1
- package/package.json +6 -6
- package/types/data-editing/EditButtons.d.ts +1 -1
- package/types/data-editing/EditSession.d.ts +6 -30
- package/types/data-editing/edit-utils.d.ts +0 -2
- package/types/data-editing/useEditableTable.d.ts +1 -1
- package/types/filters/filter-utils.d.ts +1 -2
- package/types/index.d.ts +2 -3
- package/types/protocol-message-utils.d.ts +1 -6
- package/cjs/packages/vuu-utils/dist/index.js +0 -6004
- package/cjs/packages/vuu-utils/dist/index.js.map +0 -1
- package/esm/packages/vuu-utils/dist/index.js +0 -5979
- package/esm/packages/vuu-utils/dist/index.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../../../packages/vuu-utils/dist/index.mjs"],"sourcesContent":["import * as __WEBPACK_EXTERNAL_MODULE_react__ from \"react\";\nimport * as __WEBPACK_EXTERNAL_MODULE_react_dom__ from \"react-dom\";\nimport * as __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime__ from \"react/jsx-runtime\";\nimport * as __WEBPACK_EXTERNAL_MODULE__salt_ds_core__ from \"@salt-ds/core\";\nimport * as __WEBPACK_EXTERNAL_MODULE__vuu_ui_vuu_filter_parser__ from \"@vuu-ui/vuu-filter-parser\";\nimport * as __WEBPACK_EXTERNAL_MODULE__internationalized_date__ from \"@internationalized/date\";\nimport * as __WEBPACK_EXTERNAL_MODULE_clsx__ from \"clsx\";\nconst signals_core_i = Symbol.for(\"preact-signals\");\nfunction signals_core_t() {\n if (signals_core_r > 1) {\n signals_core_r--;\n return;\n }\n let i, t = !1;\n while(void 0 !== signals_core_s){\n let o = signals_core_s;\n signals_core_s = void 0;\n signals_core_f++;\n while(void 0 !== o){\n const n = o.o;\n o.o = void 0;\n o.f &= -3;\n if (!(8 & o.f) && signals_core_v(o)) try {\n o.c();\n } catch (o) {\n if (!t) {\n i = o;\n t = !0;\n }\n }\n o = n;\n }\n }\n signals_core_f = 0;\n signals_core_r--;\n if (t) throw i;\n}\nfunction signals_core_o(i) {\n if (signals_core_r > 0) return i();\n signals_core_r++;\n try {\n return i();\n } finally{\n signals_core_t();\n }\n}\nlet signals_core_n, signals_core_s;\nfunction signals_core_h(i) {\n const t = signals_core_n;\n signals_core_n = void 0;\n try {\n return i();\n } finally{\n signals_core_n = t;\n }\n}\nlet signals_core_r = 0, signals_core_f = 0, e = 0;\nfunction signals_core_c(i) {\n if (void 0 === signals_core_n) return;\n let t = i.n;\n if (void 0 === t || t.t !== signals_core_n) {\n t = {\n i: 0,\n S: i,\n p: signals_core_n.s,\n n: void 0,\n t: signals_core_n,\n e: void 0,\n x: void 0,\n r: t\n };\n if (void 0 !== signals_core_n.s) signals_core_n.s.n = t;\n signals_core_n.s = t;\n i.n = t;\n if (32 & signals_core_n.f) i.S(t);\n return t;\n }\n if (-1 === t.i) {\n t.i = 0;\n if (void 0 !== t.n) {\n t.n.p = t.p;\n if (void 0 !== t.p) t.p.n = t.n;\n t.p = signals_core_n.s;\n t.n = void 0;\n signals_core_n.s.n = t;\n signals_core_n.s = t;\n }\n return t;\n }\n}\nfunction u(i, t) {\n this.v = i;\n this.i = 0;\n this.n = void 0;\n this.t = void 0;\n this.W = null == t ? void 0 : t.watched;\n this.Z = null == t ? void 0 : t.unwatched;\n}\nu.prototype.brand = signals_core_i;\nu.prototype.h = function() {\n return !0;\n};\nu.prototype.S = function(i) {\n const t = this.t;\n if (t !== i && void 0 === i.e) {\n i.x = t;\n this.t = i;\n if (void 0 !== t) t.e = i;\n else signals_core_h(()=>{\n var i;\n null == (i = this.W) || i.call(this);\n });\n }\n};\nu.prototype.U = function(i) {\n if (void 0 !== this.t) {\n const t = i.e, o = i.x;\n if (void 0 !== t) {\n t.x = o;\n i.e = void 0;\n }\n if (void 0 !== o) {\n o.e = t;\n i.x = void 0;\n }\n if (i === this.t) {\n this.t = o;\n if (void 0 === o) signals_core_h(()=>{\n var i;\n null == (i = this.Z) || i.call(this);\n });\n }\n }\n};\nu.prototype.subscribe = function(i) {\n return E(()=>{\n const t = this.value, o = signals_core_n;\n signals_core_n = void 0;\n try {\n i(t);\n } finally{\n signals_core_n = o;\n }\n });\n};\nu.prototype.valueOf = function() {\n return this.value;\n};\nu.prototype.toString = function() {\n return this.value + \"\";\n};\nu.prototype.toJSON = function() {\n return this.value;\n};\nu.prototype.peek = function() {\n const i = signals_core_n;\n signals_core_n = void 0;\n try {\n return this.value;\n } finally{\n signals_core_n = i;\n }\n};\nObject.defineProperty(u.prototype, \"value\", {\n get () {\n const i = signals_core_c(this);\n if (void 0 !== i) i.i = this.i;\n return this.v;\n },\n set (i) {\n if (i !== this.v) {\n if (signals_core_f > 100) throw new Error(\"Cycle detected\");\n this.v = i;\n this.i++;\n e++;\n signals_core_r++;\n try {\n for(let i = this.t; void 0 !== i; i = i.x)i.t.N();\n } finally{\n signals_core_t();\n }\n }\n }\n});\nfunction signals_core_d(i, t) {\n return new u(i, t);\n}\nfunction signals_core_v(i) {\n for(let t = i.s; void 0 !== t; t = t.n)if (t.S.i !== t.i || !t.S.h() || t.S.i !== t.i) return !0;\n return !1;\n}\nfunction l(i) {\n for(let t = i.s; void 0 !== t; t = t.n){\n const o = t.S.n;\n if (void 0 !== o) t.r = o;\n t.S.n = t;\n t.i = -1;\n if (void 0 === t.n) {\n i.s = t;\n break;\n }\n }\n}\nfunction signals_core_y(i) {\n let t, o = i.s;\n while(void 0 !== o){\n const i = o.p;\n if (-1 === o.i) {\n o.S.U(o);\n if (void 0 !== i) i.n = o.n;\n if (void 0 !== o.n) o.n.p = i;\n } else t = o;\n o.S.n = o.r;\n if (void 0 !== o.r) o.r = void 0;\n o = i;\n }\n i.s = t;\n}\nfunction signals_core_a(i, t) {\n u.call(this, void 0);\n this.x = i;\n this.s = void 0;\n this.g = e - 1;\n this.f = 4;\n this.W = null == t ? void 0 : t.watched;\n this.Z = null == t ? void 0 : t.unwatched;\n}\nsignals_core_a.prototype = new u;\nsignals_core_a.prototype.h = function() {\n this.f &= -3;\n if (1 & this.f) return !1;\n if (32 == (36 & this.f)) return !0;\n this.f &= -5;\n if (this.g === e) return !0;\n this.g = e;\n this.f |= 1;\n if (this.i > 0 && !signals_core_v(this)) {\n this.f &= -2;\n return !0;\n }\n const i = signals_core_n;\n try {\n l(this);\n signals_core_n = this;\n const i = this.x();\n if (16 & this.f || this.v !== i || 0 === this.i) {\n this.v = i;\n this.f &= -17;\n this.i++;\n }\n } catch (i) {\n this.v = i;\n this.f |= 16;\n this.i++;\n }\n signals_core_n = i;\n signals_core_y(this);\n this.f &= -2;\n return !0;\n};\nsignals_core_a.prototype.S = function(i) {\n if (void 0 === this.t) {\n this.f |= 36;\n for(let i = this.s; void 0 !== i; i = i.n)i.S.S(i);\n }\n u.prototype.S.call(this, i);\n};\nsignals_core_a.prototype.U = function(i) {\n if (void 0 !== this.t) {\n u.prototype.U.call(this, i);\n if (void 0 === this.t) {\n this.f &= -33;\n for(let i = this.s; void 0 !== i; i = i.n)i.S.U(i);\n }\n }\n};\nsignals_core_a.prototype.N = function() {\n if (!(2 & this.f)) {\n this.f |= 6;\n for(let i = this.t; void 0 !== i; i = i.x)i.t.N();\n }\n};\nObject.defineProperty(signals_core_a.prototype, \"value\", {\n get () {\n if (1 & this.f) throw new Error(\"Cycle detected\");\n const i = signals_core_c(this);\n this.h();\n if (void 0 !== i) i.i = this.i;\n if (16 & this.f) throw this.v;\n return this.v;\n }\n});\nfunction signals_core_w(i, t) {\n return new signals_core_a(i, t);\n}\nfunction signals_core_(i) {\n const o = i.u;\n i.u = void 0;\n if (\"function\" == typeof o) {\n signals_core_r++;\n const s = signals_core_n;\n signals_core_n = void 0;\n try {\n o();\n } catch (t) {\n i.f &= -2;\n i.f |= 8;\n signals_core_b(i);\n throw t;\n } finally{\n signals_core_n = s;\n signals_core_t();\n }\n }\n}\nfunction signals_core_b(i) {\n for(let t = i.s; void 0 !== t; t = t.n)t.S.U(t);\n i.x = void 0;\n i.s = void 0;\n signals_core_(i);\n}\nfunction signals_core_g(i) {\n if (signals_core_n !== this) throw new Error(\"Out-of-order effect\");\n signals_core_y(this);\n signals_core_n = i;\n this.f &= -2;\n if (8 & this.f) signals_core_b(this);\n signals_core_t();\n}\nfunction signals_core_p(i) {\n this.x = i;\n this.u = void 0;\n this.s = void 0;\n this.o = void 0;\n this.f = 32;\n}\nsignals_core_p.prototype.c = function() {\n const i = this.S();\n try {\n if (8 & this.f) return;\n if (void 0 === this.x) return;\n const t = this.x();\n if (\"function\" == typeof t) this.u = t;\n } finally{\n i();\n }\n};\nsignals_core_p.prototype.S = function() {\n if (1 & this.f) throw new Error(\"Cycle detected\");\n this.f |= 1;\n this.f &= -9;\n signals_core_(this);\n l(this);\n signals_core_r++;\n const i = signals_core_n;\n signals_core_n = this;\n return signals_core_g.bind(this, i);\n};\nsignals_core_p.prototype.N = function() {\n if (!(2 & this.f)) {\n this.f |= 2;\n this.o = signals_core_s;\n signals_core_s = this;\n }\n};\nsignals_core_p.prototype.d = function() {\n this.f |= 8;\n if (!(1 & this.f)) signals_core_b(this);\n};\nsignals_core_p.prototype.dispose = function() {\n this.d();\n};\nfunction E(i) {\n const t = new signals_core_p(i);\n try {\n t.c();\n } catch (i) {\n t.d();\n throw i;\n }\n const o = t.d.bind(t);\n o[Symbol.dispose] = o;\n return o;\n}\nvar __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __knownSymbol = (name, symbol)=>(symbol = Symbol[name]) ? symbol : Symbol.for(\"Symbol.\" + name);\nvar __typeError = (msg)=>{\n throw TypeError(msg);\n};\nvar __defNormalProp = (obj, key, value)=>key in obj ? __defProp(obj, key, {\n enumerable: true,\n configurable: true,\n writable: true,\n value\n }) : obj[key] = value;\nvar __spreadValues = (a, b)=>{\n for(var prop in b || (b = {}))if (__hasOwnProp.call(b, prop)) __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols) {\n for (var prop of __getOwnPropSymbols(b))if (__propIsEnum.call(b, prop)) __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps = (a, b)=>__defProps(a, __getOwnPropDescs(b));\nvar __name = (target, value)=>__defProp(target, \"name\", {\n value,\n configurable: true\n });\nvar __decoratorStart = (base)=>{\n var _a2;\n return [\n ,\n ,\n ,\n __create(null != (_a2 = null == base ? void 0 : base[__knownSymbol(\"metadata\")]) ? _a2 : null)\n ];\n};\nvar __decoratorStrings = [\n \"class\",\n \"method\",\n \"getter\",\n \"setter\",\n \"accessor\",\n \"field\",\n \"value\",\n \"get\",\n \"set\"\n];\nvar __expectFn = (fn)=>void 0 !== fn && \"function\" != typeof fn ? __typeError(\"Function expected\") : fn;\nvar __decoratorContext = (kind, name, done, metadata, fns)=>({\n kind: __decoratorStrings[kind],\n name,\n metadata,\n addInitializer: (fn)=>done._ ? __typeError(\"Already initialized\") : fns.push(__expectFn(fn || null))\n });\nvar __decoratorMetadata = (array, target)=>__defNormalProp(target, __knownSymbol(\"metadata\"), array[3]);\nvar __runInitializers = (array, flags, self, value)=>{\n for(var i = 0, fns = array[flags >> 1], n = fns && fns.length; i < n; i++)1 & flags ? fns[i].call(self) : value = fns[i].call(self, value);\n return value;\n};\nvar __decorateElement = (array, flags, name, decorators, target, extra)=>{\n var fn, it, done, ctx, access, k = 7 & flags, s = !!(8 & flags), p = !!(16 & flags);\n var j = k > 3 ? array.length + 1 : k ? s ? 1 : 2 : 0, key = __decoratorStrings[k + 5];\n var initializers = k > 3 && (array[j - 1] = []), extraInitializers = array[j] || (array[j] = []);\n var desc = k && (p || s || (target = target.prototype), k < 5 && (k > 3 || !p) && __getOwnPropDesc(k < 4 ? target : {\n get [name] () {\n return __privateGet(this, extra);\n },\n set [name] (x){\n return __privateSet(this, extra, x);\n }\n }, name));\n k ? p && k < 4 && __name(extra, (k > 2 ? \"set \" : k > 1 ? \"get \" : \"\") + name) : __name(target, name);\n for(var i = decorators.length - 1; i >= 0; i--){\n ctx = __decoratorContext(k, name, done = {}, array[3], extraInitializers);\n if (k) {\n ctx.static = s, ctx.private = p, access = ctx.access = {\n has: p ? (x1)=>__privateIn(target, x1) : (x1)=>name in x1\n };\n if (3 ^ k) access.get = p ? (x1)=>(1 ^ k ? __privateGet : __privateMethod)(x1, target, 4 ^ k ? extra : desc.get) : (x1)=>x1[name];\n if (k > 2) access.set = p ? (x1, y)=>__privateSet(x1, target, y, 4 ^ k ? extra : desc.set) : (x1, y)=>x1[name] = y;\n }\n it = (0, decorators[i])(k ? k < 4 ? p ? extra : desc[key] : k > 4 ? void 0 : {\n get: desc.get,\n set: desc.set\n } : target, ctx), done._ = 1;\n if (4 ^ k || void 0 === it) __expectFn(it) && (k > 4 ? initializers.unshift(it) : k ? p ? extra = it : desc[key] = it : target = it);\n else if (\"object\" != typeof it || null === it) __typeError(\"Object expected\");\n else __expectFn(fn = it.get) && (desc.get = fn), __expectFn(fn = it.set) && (desc.set = fn), __expectFn(fn = it.init) && initializers.unshift(fn);\n }\n return k || __decoratorMetadata(array, target), desc && __defProp(target, name, desc), p ? 4 ^ k ? extra : desc : target;\n};\nvar __accessCheck = (obj, member, msg)=>member.has(obj) || __typeError(\"Cannot \" + msg);\nvar __privateIn = (member, obj)=>Object(obj) !== obj ? __typeError('Cannot use the \"in\" operator on this value') : member.has(obj);\nvar __privateGet = (obj, member, getter)=>(__accessCheck(obj, member, \"read from private field\"), getter ? getter.call(obj) : member.get(obj));\nvar __privateAdd = (obj, member, value)=>member.has(obj) ? __typeError(\"Cannot add the same private member more than once\") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value);\nvar __privateSet = (obj, member, value, setter)=>(__accessCheck(obj, member, \"write to private field\"), setter ? setter.call(obj, value) : member.set(obj, value), value);\nvar __privateMethod = (obj, member, method)=>(__accessCheck(obj, member, \"access private method\"), method);\nfunction computed(compute, comparator) {\n if (comparator) {\n let previousValue;\n return signals_core_w(()=>{\n const value = compute();\n if (value && previousValue && comparator(previousValue, value)) return previousValue;\n previousValue = value;\n return value;\n });\n }\n return signals_core_w(compute);\n}\nfunction dist_deepEqual(a, b) {\n if (Object.is(a, b)) return true;\n if (null === a || null === b) return false;\n if (\"function\" == typeof a && \"function\" == typeof b) return a === b;\n if (a instanceof Set && b instanceof Set) {\n if (a.size !== b.size) return false;\n for (const value of a)if (!b.has(value)) return false;\n return true;\n }\n if (Array.isArray(a)) {\n if (!Array.isArray(b) || a.length !== b.length) return false;\n const hasDifferentValues = a.some((value, index)=>!dist_deepEqual(value, b[index]));\n return !hasDifferentValues;\n }\n if (\"object\" == typeof a && \"object\" == typeof b) {\n const aKeys = Object.keys(a);\n const bKeys = Object.keys(b);\n if (aKeys.length !== bKeys.length) return false;\n const hasDifferentValues = aKeys.some((key)=>!dist_deepEqual(a[key], b[key]));\n return !hasDifferentValues;\n }\n return false;\n}\nfunction reactive({ get }, _) {\n return {\n init (value) {\n return signals_core_d(value);\n },\n get () {\n const current = get.call(this);\n return current.value;\n },\n set (newValue) {\n const current = get.call(this);\n if (current.peek() === newValue) return;\n current.value = newValue;\n }\n };\n}\nfunction derived(target, _) {\n const map = /* @__PURE__ */ new WeakMap();\n return function() {\n let result = map.get(this);\n if (!result) {\n result = computed(target.bind(this));\n map.set(this, result);\n }\n return result.value;\n };\n}\nfunction enumerable(enumerable2 = true) {\n return function(_value, context) {\n context.addInitializer(function() {\n const host = \"field\" === context.kind ? this : context.static ? this : Object.getPrototypeOf(this);\n const descriptor = Object.getOwnPropertyDescriptor(host, context.name);\n if (descriptor) Object.defineProperty(host, context.name, __spreadProps(__spreadValues({}, descriptor), {\n enumerable: enumerable2\n }));\n });\n };\n}\nfunction effects(...entries) {\n const effects2 = entries.map(E);\n return ()=>effects2.forEach((cleanup)=>cleanup());\n}\nvar _previous_dec, _initial_dec, _current_dec, _current_dec2, _previous_dec2, _initial_dec2, _init, _initial, dist_a, initial_get, initial_set, _ValueHistory_instances, _previous, dist_b, previous_get, previous_set, _current, dist_c, current_get, current_set;\n_initial_dec2 = [\n reactive\n], _previous_dec2 = [\n reactive\n], _current_dec2 = [\n reactive\n], _current_dec = [\n enumerable()\n], _initial_dec = [\n enumerable()\n], _previous_dec = [\n enumerable()\n];\nvar ValueHistory = class {\n constructor(defaultValue, equals = Object.is){\n this.defaultValue = defaultValue;\n this.equals = equals;\n __runInitializers(_init, 5, this);\n __privateAdd(this, _ValueHistory_instances);\n __privateAdd(this, _initial, __runInitializers(_init, 8, this)), __runInitializers(_init, 11, this);\n __privateAdd(this, _previous, __runInitializers(_init, 12, this)), __runInitializers(_init, 15, this);\n __privateAdd(this, _current, __runInitializers(_init, 16, this)), __runInitializers(_init, 19, this);\n this.reset = this.reset.bind(this);\n this.reset();\n }\n get current() {\n return __privateGet(this, _ValueHistory_instances, current_get);\n }\n get initial() {\n return __privateGet(this, _ValueHistory_instances, initial_get);\n }\n get previous() {\n return __privateGet(this, _ValueHistory_instances, previous_get);\n }\n set current(value) {\n const current = signals_core_h(()=>__privateGet(this, _ValueHistory_instances, current_get));\n if (value && current && this.equals(current, value)) return;\n signals_core_o(()=>{\n if (!__privateGet(this, _ValueHistory_instances, initial_get)) __privateSet(this, _ValueHistory_instances, value, initial_set);\n __privateSet(this, _ValueHistory_instances, current, previous_set);\n __privateSet(this, _ValueHistory_instances, value, current_set);\n });\n }\n reset(value = this.defaultValue) {\n signals_core_o(()=>{\n __privateSet(this, _ValueHistory_instances, void 0, previous_set);\n __privateSet(this, _ValueHistory_instances, value, initial_set);\n __privateSet(this, _ValueHistory_instances, value, current_set);\n });\n }\n};\n_init = __decoratorStart(null);\n_initial = new WeakMap();\n_ValueHistory_instances = new WeakSet();\n_previous = new WeakMap();\n_current = new WeakMap();\ndist_a = __decorateElement(_init, 20, \"#initial\", _initial_dec2, _ValueHistory_instances, _initial), initial_get = dist_a.get, initial_set = dist_a.set;\ndist_b = __decorateElement(_init, 20, \"#previous\", _previous_dec2, _ValueHistory_instances, _previous), previous_get = dist_b.get, previous_set = dist_b.set;\ndist_c = __decorateElement(_init, 20, \"#current\", _current_dec2, _ValueHistory_instances, _current), current_get = dist_c.get, current_set = dist_c.set;\n__decorateElement(_init, 2, \"current\", _current_dec, ValueHistory);\n__decorateElement(_init, 2, \"initial\", _initial_dec, ValueHistory);\n__decorateElement(_init, 2, \"previous\", _previous_dec, ValueHistory);\n__decoratorMetadata(_init, ValueHistory);\nfunction snapshot(value) {\n return signals_core_h(()=>{\n const output = {};\n for(const key in value)output[key] = value[key];\n return output;\n });\n}\nvar _store;\nvar WeakStore = class {\n constructor(){\n __privateAdd(this, _store, /* @__PURE__ */ new WeakMap());\n }\n get(key, id) {\n var _a2;\n return key ? null == (_a2 = __privateGet(this, _store).get(key)) ? void 0 : _a2.get(id) : void 0;\n }\n set(key, id, value) {\n var _a2;\n if (!key) return;\n if (!__privateGet(this, _store).has(key)) __privateGet(this, _store).set(key, /* @__PURE__ */ new Map());\n return null == (_a2 = __privateGet(this, _store).get(key)) ? void 0 : _a2.set(id, value);\n }\n clear(key) {\n var _a2;\n return key ? null == (_a2 = __privateGet(this, _store).get(key)) ? void 0 : _a2.clear() : void 0;\n }\n};\n_store = new WeakMap();\nvar dist_create = Object.create;\nvar dist_defProp = Object.defineProperty;\nvar dist_getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar dist_getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar dist_hasOwnProp = Object.prototype.hasOwnProperty;\nvar dist_propIsEnum = Object.prototype.propertyIsEnumerable;\nvar dist_knownSymbol = (name, symbol)=>(symbol = Symbol[name]) ? symbol : Symbol.for(\"Symbol.\" + name);\nvar dist_typeError = (msg)=>{\n throw TypeError(msg);\n};\nvar __pow = Math.pow;\nvar dist_defNormalProp = (obj, key, value)=>key in obj ? dist_defProp(obj, key, {\n enumerable: true,\n configurable: true,\n writable: true,\n value\n }) : obj[key] = value;\nvar dist_spreadValues = (a, b)=>{\n for(var prop in b || (b = {}))if (dist_hasOwnProp.call(b, prop)) dist_defNormalProp(a, prop, b[prop]);\n if (dist_getOwnPropSymbols) {\n for (var prop of dist_getOwnPropSymbols(b))if (dist_propIsEnum.call(b, prop)) dist_defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar dist_name = (target, value)=>dist_defProp(target, \"name\", {\n value,\n configurable: true\n });\nvar dist_decoratorStart = (base)=>{\n var _a2;\n return [\n ,\n ,\n ,\n dist_create(null != (_a2 = null == base ? void 0 : base[dist_knownSymbol(\"metadata\")]) ? _a2 : null)\n ];\n};\nvar dist_decoratorStrings = [\n \"class\",\n \"method\",\n \"getter\",\n \"setter\",\n \"accessor\",\n \"field\",\n \"value\",\n \"get\",\n \"set\"\n];\nvar dist_expectFn = (fn)=>void 0 !== fn && \"function\" != typeof fn ? dist_typeError(\"Function expected\") : fn;\nvar dist_decoratorContext = (kind, name, done, metadata, fns)=>({\n kind: dist_decoratorStrings[kind],\n name,\n metadata,\n addInitializer: (fn)=>done._ ? dist_typeError(\"Already initialized\") : fns.push(dist_expectFn(fn || null))\n });\nvar dist_decoratorMetadata = (array, target)=>dist_defNormalProp(target, dist_knownSymbol(\"metadata\"), array[3]);\nvar dist_runInitializers = (array, flags, self, value)=>{\n for(var i = 0, fns = array[flags >> 1], n = fns && fns.length; i < n; i++)1 & flags ? fns[i].call(self) : value = fns[i].call(self, value);\n return value;\n};\nvar dist_decorateElement = (array, flags, name, decorators, target, extra)=>{\n var fn, it, done, ctx, access, k = 7 & flags, s = !!(8 & flags), p = !!(16 & flags);\n var j = k > 3 ? array.length + 1 : k ? s ? 1 : 2 : 0, key = dist_decoratorStrings[k + 5];\n var initializers = k > 3 && (array[j - 1] = []), extraInitializers = array[j] || (array[j] = []);\n var desc = k && (p || s || (target = target.prototype), k < 5 && (k > 3 || !p) && dist_getOwnPropDesc(k < 4 ? target : {\n get [name] () {\n return dist_privateGet(this, extra);\n },\n set [name] (x){\n return dist_privateSet(this, extra, x);\n }\n }, name));\n k ? p && k < 4 && dist_name(extra, (k > 2 ? \"set \" : k > 1 ? \"get \" : \"\") + name) : dist_name(target, name);\n for(var i = decorators.length - 1; i >= 0; i--){\n ctx = dist_decoratorContext(k, name, done = {}, array[3], extraInitializers);\n if (k) {\n ctx.static = s, ctx.private = p, access = ctx.access = {\n has: p ? (x1)=>dist_privateIn(target, x1) : (x1)=>name in x1\n };\n if (3 ^ k) access.get = p ? (x1)=>(1 ^ k ? dist_privateGet : dist_privateMethod)(x1, target, 4 ^ k ? extra : desc.get) : (x1)=>x1[name];\n if (k > 2) access.set = p ? (x1, y)=>dist_privateSet(x1, target, y, 4 ^ k ? extra : desc.set) : (x1, y)=>x1[name] = y;\n }\n it = (0, decorators[i])(k ? k < 4 ? p ? extra : desc[key] : k > 4 ? void 0 : {\n get: desc.get,\n set: desc.set\n } : target, ctx), done._ = 1;\n if (4 ^ k || void 0 === it) dist_expectFn(it) && (k > 4 ? initializers.unshift(it) : k ? p ? extra = it : desc[key] = it : target = it);\n else if (\"object\" != typeof it || null === it) dist_typeError(\"Object expected\");\n else dist_expectFn(fn = it.get) && (desc.get = fn), dist_expectFn(fn = it.set) && (desc.set = fn), dist_expectFn(fn = it.init) && initializers.unshift(fn);\n }\n return k || dist_decoratorMetadata(array, target), desc && dist_defProp(target, name, desc), p ? 4 ^ k ? extra : desc : target;\n};\nvar dist_accessCheck = (obj, member, msg)=>member.has(obj) || dist_typeError(\"Cannot \" + msg);\nvar dist_privateIn = (member, obj)=>Object(obj) !== obj ? dist_typeError('Cannot use the \"in\" operator on this value') : member.has(obj);\nvar dist_privateGet = (obj, member, getter)=>(dist_accessCheck(obj, member, \"read from private field\"), getter ? getter.call(obj) : member.get(obj));\nvar dist_privateAdd = (obj, member, value)=>member.has(obj) ? dist_typeError(\"Cannot add the same private member more than once\") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value);\nvar dist_privateSet = (obj, member, value, setter)=>(dist_accessCheck(obj, member, \"write to private field\"), setter ? setter.call(obj, value) : member.set(obj, value), value);\nvar dist_privateMethod = (obj, member, method)=>(dist_accessCheck(obj, member, \"access private method\"), method);\nvar Point = class _Point {\n constructor(x1, y){\n this.x = x1;\n this.y = y;\n }\n static delta(a, b) {\n return new _Point(a.x - b.x, a.y - b.y);\n }\n static distance(a, b) {\n return Math.hypot(a.x - b.x, a.y - b.y);\n }\n static equals(a, b) {\n return a.x === b.x && a.y === b.y;\n }\n static from({ x: x1, y }) {\n return new _Point(x1, y);\n }\n};\nvar Rectangle = class _Rectangle {\n constructor(left, top, width, height){\n this.left = left;\n this.top = top;\n this.width = width;\n this.height = height;\n this.scale = {\n x: 1,\n y: 1\n };\n }\n get inverseScale() {\n return {\n x: 1 / this.scale.x,\n y: 1 / this.scale.y\n };\n }\n translate(x1, y) {\n const { top, left, width, height, scale } = this;\n const newShape = new _Rectangle(left + x1, top + y, width, height);\n newShape.scale = dist_spreadValues({}, scale);\n return newShape;\n }\n get boundingRectangle() {\n const { width, height, left, top, right, bottom } = this;\n return {\n width,\n height,\n left,\n top,\n right,\n bottom\n };\n }\n get center() {\n const { left, top, right, bottom } = this;\n return new Point((left + right) / 2, (top + bottom) / 2);\n }\n get area() {\n const { width, height } = this;\n return width * height;\n }\n equals(shape) {\n if (!(shape instanceof _Rectangle)) return false;\n const { left, top, width, height } = this;\n return left === shape.left && top === shape.top && width === shape.width && height === shape.height;\n }\n containsPoint(point) {\n const { top, left, bottom, right } = this;\n return top <= point.y && point.y <= bottom && left <= point.x && point.x <= right;\n }\n intersectionArea(shape) {\n if (shape instanceof _Rectangle) return rectangleRectangleIntersection(this, shape);\n return 0;\n }\n intersectionRatio(shape) {\n const { area } = this;\n const intersectionArea = this.intersectionArea(shape);\n const intersectionRatio = intersectionArea / (shape.area + area - intersectionArea);\n return intersectionRatio;\n }\n get bottom() {\n const { top, height } = this;\n return top + height;\n }\n get right() {\n const { left, width } = this;\n return left + width;\n }\n get aspectRatio() {\n const { width, height } = this;\n return width / height;\n }\n get corners() {\n return [\n {\n x: this.left,\n y: this.top\n },\n {\n x: this.right,\n y: this.top\n },\n {\n x: this.left,\n y: this.bottom\n },\n {\n x: this.right,\n y: this.bottom\n }\n ];\n }\n static from({ top, left, width, height }) {\n return new _Rectangle(left, top, width, height);\n }\n static delta(a, b, alignment = {\n x: \"center\",\n y: \"center\"\n }) {\n const getCoordinate = (rect, axis)=>{\n const align = alignment[axis];\n const start = \"x\" === axis ? rect.left : rect.top;\n const size = \"x\" === axis ? rect.width : rect.height;\n if (\"start\" == align) return start;\n if (\"end\" == align) return start + size;\n return start + size / 2;\n };\n return Point.delta({\n x: getCoordinate(a, \"x\"),\n y: getCoordinate(a, \"y\")\n }, {\n x: getCoordinate(b, \"x\"),\n y: getCoordinate(b, \"y\")\n });\n }\n static intersectionRatio(a, b) {\n return _Rectangle.from(a).intersectionRatio(_Rectangle.from(b));\n }\n};\nfunction rectangleRectangleIntersection(a, b) {\n const top = Math.max(b.top, a.top);\n const left = Math.max(b.left, a.left);\n const right = Math.min(b.left + b.width, a.left + a.width);\n const bottom = Math.min(b.top + b.height, a.top + a.height);\n const width = right - left;\n const height = bottom - top;\n if (left < right && top < bottom) {\n const intersectionArea = width * height;\n return intersectionArea;\n }\n return 0;\n}\nvar _direction_dec, _delta_dec, geometry_dist_a, _timestamp, dist_init;\nvar Position = class extends (geometry_dist_a = ValueHistory, _delta_dec = [\n derived\n], _direction_dec = [\n derived\n], geometry_dist_a) {\n constructor(initialValue){\n const point = Point.from(initialValue);\n super(point, (a, b)=>Point.equals(a, b));\n dist_runInitializers(dist_init, 5, this);\n dist_privateAdd(this, _timestamp, 0);\n this.velocity = {\n x: 0,\n y: 0\n };\n }\n get delta() {\n return Point.delta(this.current, this.initial);\n }\n get direction() {\n const { current, previous } = this;\n if (!previous) return null;\n const delta = {\n x: current.x - previous.x,\n y: current.y - previous.y\n };\n if (!delta.x && !delta.y) return null;\n if (Math.abs(delta.x) > Math.abs(delta.y)) return delta.x > 0 ? \"right\" : \"left\";\n return delta.y > 0 ? \"down\" : \"up\";\n }\n get current() {\n return super.current;\n }\n set current(coordinates) {\n const { current } = this;\n const point = Point.from(coordinates);\n const delta = {\n x: point.x - current.x,\n y: point.y - current.y\n };\n const timestamp = Date.now();\n const timeDelta = timestamp - dist_privateGet(this, _timestamp);\n const velocity = (delta2)=>Math.round(delta2 / timeDelta * 100);\n signals_core_o(()=>{\n dist_privateSet(this, _timestamp, timestamp);\n this.velocity = {\n x: velocity(delta.x),\n y: velocity(delta.y)\n };\n super.current = point;\n });\n }\n reset(coordinates = this.defaultValue) {\n super.reset(Point.from(coordinates));\n this.velocity = {\n x: 0,\n y: 0\n };\n }\n};\ndist_init = dist_decoratorStart(geometry_dist_a);\n_timestamp = new WeakMap();\ndist_decorateElement(dist_init, 2, \"delta\", _delta_dec, Position);\ndist_decorateElement(dist_init, 2, \"direction\", _direction_dec, Position);\ndist_decoratorMetadata(dist_init, Position);\nfunction exceedsDistance({ x: x1, y }, distance) {\n const dx = Math.abs(x1);\n const dy = Math.abs(y);\n if (\"number\" == typeof distance) return Math.sqrt(__pow(dx, 2) + __pow(dy, 2)) > distance;\n if (\"x\" in distance && \"y\" in distance) return dx > distance.x && dy > distance.y;\n if (\"x\" in distance) return dx > distance.x;\n if (\"y\" in distance) return dy > distance.y;\n return false;\n}\nvar Axis = /* @__PURE__ */ ((Axis2)=>{\n Axis2[\"Horizontal\"] = \"x\";\n Axis2[\"Vertical\"] = \"y\";\n return Axis2;\n})(Axis || {});\nvar Axes = Object.values(Axis);\nvar abstract_create = Object.create;\nvar abstract_defProp = Object.defineProperty;\nvar abstract_defProps = Object.defineProperties;\nvar abstract_getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar abstract_getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar abstract_getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar abstract_hasOwnProp = Object.prototype.hasOwnProperty;\nvar abstract_propIsEnum = Object.prototype.propertyIsEnumerable;\nvar abstract_knownSymbol = (name, symbol)=>(symbol = Symbol[name]) ? symbol : Symbol.for(\"Symbol.\" + name);\nvar abstract_typeError = (msg)=>{\n throw TypeError(msg);\n};\nvar abstract_defNormalProp = (obj, key, value)=>key in obj ? abstract_defProp(obj, key, {\n enumerable: true,\n configurable: true,\n writable: true,\n value\n }) : obj[key] = value;\nvar abstract_spreadValues = (a, b)=>{\n for(var prop in b || (b = {}))if (abstract_hasOwnProp.call(b, prop)) abstract_defNormalProp(a, prop, b[prop]);\n if (abstract_getOwnPropSymbols) {\n for (var prop of abstract_getOwnPropSymbols(b))if (abstract_propIsEnum.call(b, prop)) abstract_defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar abstract_spreadProps = (a, b)=>abstract_defProps(a, abstract_getOwnPropDescs(b));\nvar abstract_name = (target, value)=>abstract_defProp(target, \"name\", {\n value,\n configurable: true\n });\nvar __objRest = (source, exclude)=>{\n var target = {};\n for(var prop in source)if (abstract_hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0) target[prop] = source[prop];\n if (null != source && abstract_getOwnPropSymbols) {\n for (var prop of abstract_getOwnPropSymbols(source))if (exclude.indexOf(prop) < 0 && abstract_propIsEnum.call(source, prop)) target[prop] = source[prop];\n }\n return target;\n};\nvar abstract_decoratorStart = (base)=>{\n var _a;\n return [\n ,\n ,\n ,\n abstract_create(null != (_a = null == base ? void 0 : base[abstract_knownSymbol(\"metadata\")]) ? _a : null)\n ];\n};\nvar abstract_decoratorStrings = [\n \"class\",\n \"method\",\n \"getter\",\n \"setter\",\n \"accessor\",\n \"field\",\n \"value\",\n \"get\",\n \"set\"\n];\nvar abstract_expectFn = (fn)=>void 0 !== fn && \"function\" != typeof fn ? abstract_typeError(\"Function expected\") : fn;\nvar abstract_decoratorContext = (kind, name, done, metadata, fns)=>({\n kind: abstract_decoratorStrings[kind],\n name,\n metadata,\n addInitializer: (fn)=>done._ ? abstract_typeError(\"Already initialized\") : fns.push(abstract_expectFn(fn || null))\n });\nvar abstract_decoratorMetadata = (array, target)=>abstract_defNormalProp(target, abstract_knownSymbol(\"metadata\"), array[3]);\nvar abstract_runInitializers = (array, flags, self, value)=>{\n for(var i = 0, fns = array[flags >> 1], n = fns && fns.length; i < n; i++)1 & flags ? fns[i].call(self) : value = fns[i].call(self, value);\n return value;\n};\nvar abstract_decorateElement = (array, flags, name, decorators, target, extra)=>{\n var fn, it, done, ctx, access, k = 7 & flags, s = !!(8 & flags), p = !!(16 & flags);\n var j = k > 3 ? array.length + 1 : k ? s ? 1 : 2 : 0, key = abstract_decoratorStrings[k + 5];\n var initializers = k > 3 && (array[j - 1] = []), extraInitializers = array[j] || (array[j] = []);\n var desc = k && (p || s || (target = target.prototype), k < 5 && (k > 3 || !p) && abstract_getOwnPropDesc(k < 4 ? target : {\n get [name] () {\n return abstract_privateGet(this, extra);\n },\n set [name] (x){\n return abstract_privateSet(this, extra, x);\n }\n }, name));\n k ? p && k < 4 && abstract_name(extra, (k > 2 ? \"set \" : k > 1 ? \"get \" : \"\") + name) : abstract_name(target, name);\n for(var i = decorators.length - 1; i >= 0; i--){\n ctx = abstract_decoratorContext(k, name, done = {}, array[3], extraInitializers);\n if (k) {\n ctx.static = s, ctx.private = p, access = ctx.access = {\n has: p ? (x1)=>abstract_privateIn(target, x1) : (x1)=>name in x1\n };\n if (3 ^ k) access.get = p ? (x1)=>(1 ^ k ? abstract_privateGet : abstract_privateMethod)(x1, target, 4 ^ k ? extra : desc.get) : (x1)=>x1[name];\n if (k > 2) access.set = p ? (x1, y)=>abstract_privateSet(x1, target, y, 4 ^ k ? extra : desc.set) : (x1, y)=>x1[name] = y;\n }\n it = (0, decorators[i])(k ? k < 4 ? p ? extra : desc[key] : k > 4 ? void 0 : {\n get: desc.get,\n set: desc.set\n } : target, ctx), done._ = 1;\n if (4 ^ k || void 0 === it) abstract_expectFn(it) && (k > 4 ? initializers.unshift(it) : k ? p ? extra = it : desc[key] = it : target = it);\n else if (\"object\" != typeof it || null === it) abstract_typeError(\"Object expected\");\n else abstract_expectFn(fn = it.get) && (desc.get = fn), abstract_expectFn(fn = it.set) && (desc.set = fn), abstract_expectFn(fn = it.init) && initializers.unshift(fn);\n }\n return k || abstract_decoratorMetadata(array, target), desc && abstract_defProp(target, name, desc), p ? 4 ^ k ? extra : desc : target;\n};\nvar abstract_accessCheck = (obj, member, msg)=>member.has(obj) || abstract_typeError(\"Cannot \" + msg);\nvar abstract_privateIn = (member, obj)=>Object(obj) !== obj ? abstract_typeError('Cannot use the \"in\" operator on this value') : member.has(obj);\nvar abstract_privateGet = (obj, member, getter)=>(abstract_accessCheck(obj, member, \"read from private field\"), getter ? getter.call(obj) : member.get(obj));\nvar abstract_privateAdd = (obj, member, value)=>member.has(obj) ? abstract_typeError(\"Cannot add the same private member more than once\") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value);\nvar abstract_privateSet = (obj, member, value, setter)=>(abstract_accessCheck(obj, member, \"write to private field\"), setter ? setter.call(obj, value) : member.set(obj, value), value);\nvar abstract_privateMethod = (obj, member, method)=>(abstract_accessCheck(obj, member, \"access private method\"), method);\nfunction configure(plugin, options) {\n return {\n plugin,\n options\n };\n}\nfunction configurator(plugin) {\n return (options)=>configure(plugin, options);\n}\nfunction abstract_descriptor(plugin) {\n if (\"function\" == typeof plugin) return {\n plugin,\n options: void 0\n };\n return plugin;\n}\nvar _disabled_dec, abstract_init, _disabled, _cleanupFunctions;\n_disabled_dec = [\n reactive\n];\nvar Plugin = class {\n constructor(manager, options){\n this.manager = manager;\n this.options = options;\n abstract_privateAdd(this, _disabled, abstract_runInitializers(abstract_init, 8, this, false)), abstract_runInitializers(abstract_init, 11, this);\n abstract_privateAdd(this, _cleanupFunctions, /* @__PURE__ */ new Set());\n }\n enable() {\n this.disabled = false;\n }\n disable() {\n this.disabled = true;\n }\n isDisabled() {\n return signals_core_h(()=>this.disabled);\n }\n configure(options) {\n this.options = options;\n }\n registerEffect(callback) {\n const dispose = E(callback.bind(this));\n abstract_privateGet(this, _cleanupFunctions).add(dispose);\n return dispose;\n }\n destroy() {\n abstract_privateGet(this, _cleanupFunctions).forEach((cleanup)=>cleanup());\n }\n static configure(options) {\n return configure(this, options);\n }\n};\nabstract_init = abstract_decoratorStart(null);\n_disabled = new WeakMap();\n_cleanupFunctions = new WeakMap();\nabstract_decorateElement(abstract_init, 4, \"disabled\", _disabled_dec, Plugin, _disabled);\nabstract_decoratorMetadata(abstract_init, Plugin);\nvar CorePlugin = class extends Plugin {\n};\nvar _previousValues;\nvar PluginRegistry = class {\n constructor(manager){\n this.manager = manager;\n this.instances = /* @__PURE__ */ new Map();\n abstract_privateAdd(this, _previousValues, []);\n }\n get values() {\n return Array.from(this.instances.values());\n }\n set values(entries) {\n const descriptors = entries.map(abstract_descriptor).reduceRight((acc, descriptor2)=>{\n if (acc.some(({ plugin })=>plugin === descriptor2.plugin)) return acc;\n return [\n descriptor2,\n ...acc\n ];\n }, []);\n const constructors = descriptors.map(({ plugin })=>plugin);\n for (const plugin of abstract_privateGet(this, _previousValues))if (!constructors.includes(plugin)) {\n if (plugin.prototype instanceof CorePlugin) continue;\n this.unregister(plugin);\n }\n for (const { plugin, options } of descriptors)this.register(plugin, options);\n abstract_privateSet(this, _previousValues, constructors);\n }\n get(plugin) {\n const instance = this.instances.get(plugin);\n return instance;\n }\n register(plugin, options) {\n const existingInstance = this.instances.get(plugin);\n if (existingInstance) {\n if (existingInstance.options !== options) existingInstance.options = options;\n return existingInstance;\n }\n const instance = new plugin(this.manager, options);\n this.instances.set(plugin, instance);\n return instance;\n }\n unregister(plugin) {\n const instance = this.instances.get(plugin);\n if (instance) {\n instance.destroy();\n this.instances.delete(plugin);\n }\n }\n destroy() {\n for (const plugin of this.instances.values())plugin.destroy();\n this.instances.clear();\n }\n};\n_previousValues = new WeakMap();\nfunction sortCollisions(a, b) {\n if (a.priority === b.priority) {\n if (a.type === b.type) return b.value - a.value;\n return b.type - a.type;\n }\n return b.priority - a.priority;\n}\nvar DEFAULT_VALUE = [];\nvar _previousCoordinates, _collisions;\nvar CollisionObserver = class extends Plugin {\n constructor(manager){\n super(manager);\n abstract_privateAdd(this, _previousCoordinates);\n abstract_privateAdd(this, _collisions);\n this.computeCollisions = this.computeCollisions.bind(this);\n abstract_privateSet(this, _collisions, signals_core_d(DEFAULT_VALUE));\n this.destroy = effects(()=>{\n const collisions = this.computeCollisions();\n const coordinates = signals_core_h(()=>this.manager.dragOperation.position.current);\n if (collisions !== DEFAULT_VALUE) {\n const previousCoordinates = abstract_privateGet(this, _previousCoordinates);\n abstract_privateSet(this, _previousCoordinates, coordinates);\n if (previousCoordinates && coordinates.x == previousCoordinates.x && coordinates.y == previousCoordinates.y) return;\n } else abstract_privateSet(this, _previousCoordinates, void 0);\n abstract_privateGet(this, _collisions).value = collisions;\n }, ()=>{\n const { dragOperation } = this.manager;\n if (dragOperation.status.initialized) this.forceUpdate();\n });\n }\n forceUpdate(immediate = true) {\n signals_core_h(()=>{\n if (immediate) abstract_privateGet(this, _collisions).value = this.computeCollisions();\n else abstract_privateSet(this, _previousCoordinates, void 0);\n });\n }\n computeCollisions(entries, collisionDetector) {\n const { registry, dragOperation } = this.manager;\n const { source, shape, status } = dragOperation;\n if (!status.initialized || !shape) return DEFAULT_VALUE;\n const collisions = [];\n const potentialTargets = [];\n for (const entry of null != entries ? entries : registry.droppables){\n if (entry.disabled) continue;\n if (source && !entry.accepts(source)) continue;\n const detectCollision = null != collisionDetector ? collisionDetector : entry.collisionDetector;\n if (!detectCollision) continue;\n potentialTargets.push(entry);\n entry.shape;\n const collision = signals_core_h(()=>detectCollision({\n droppable: entry,\n dragOperation\n }));\n if (collision) {\n if (null != entry.collisionPriority) collision.priority = entry.collisionPriority;\n collisions.push(collision);\n }\n }\n if (0 === potentialTargets.length) return DEFAULT_VALUE;\n collisions.sort(sortCollisions);\n return collisions;\n }\n get collisions() {\n return abstract_privateGet(this, _collisions).value;\n }\n};\n_previousCoordinates = new WeakMap();\n_collisions = new WeakMap();\nvar Monitor = class {\n constructor(){\n this.registry = /* @__PURE__ */ new Map();\n }\n addEventListener(name, handler) {\n const { registry } = this;\n const listeners = new Set(registry.get(name));\n listeners.add(handler);\n registry.set(name, listeners);\n return ()=>this.removeEventListener(name, handler);\n }\n removeEventListener(name, handler) {\n const { registry } = this;\n const listeners = new Set(registry.get(name));\n listeners.delete(handler);\n registry.set(name, listeners);\n }\n dispatch(name, ...args) {\n const { registry } = this;\n const listeners = registry.get(name);\n if (!listeners) return;\n for (const listener of listeners)listener(...args);\n }\n};\nvar DragDropMonitor = class extends Monitor {\n constructor(manager){\n super();\n this.manager = manager;\n }\n dispatch(type, event) {\n const args = [\n event,\n this.manager\n ];\n super.dispatch(type, ...args);\n }\n};\nfunction defaultPreventable(event, cancelable = true) {\n let defaultPrevented = false;\n return abstract_spreadProps(abstract_spreadValues({}, event), {\n cancelable,\n get defaultPrevented () {\n return defaultPrevented;\n },\n preventDefault () {\n if (!cancelable) return;\n defaultPrevented = true;\n }\n });\n}\nvar CollisionNotifier = class extends CorePlugin {\n constructor(manager){\n super(manager);\n const isEqual = (a, b)=>a.map(({ id })=>id).join(\"\") === b.map(({ id })=>id).join(\"\");\n let previousCollisions = [];\n this.destroy = effects(()=>{\n const { dragOperation, collisionObserver } = manager;\n if (dragOperation.status.initializing) {\n previousCollisions = [];\n collisionObserver.enable();\n }\n }, ()=>{\n const { collisionObserver, monitor } = manager;\n const { collisions } = collisionObserver;\n if (collisionObserver.isDisabled()) return;\n const event = defaultPreventable({\n collisions\n });\n monitor.dispatch(\"collision\", event);\n if (event.defaultPrevented) return;\n if (isEqual(collisions, previousCollisions)) return;\n previousCollisions = collisions;\n const [firstCollision] = collisions;\n signals_core_h(()=>{\n var _a;\n if ((null == firstCollision ? void 0 : firstCollision.id) !== (null == (_a = manager.dragOperation.target) ? void 0 : _a.id)) {\n collisionObserver.disable();\n manager.actions.setDropTarget(null == firstCollision ? void 0 : firstCollision.id).then(()=>{\n collisionObserver.enable();\n });\n }\n });\n });\n }\n};\nvar abstract_CollisionPriority = /* @__PURE__ */ ((CollisionPriority2)=>{\n CollisionPriority2[CollisionPriority2[\"Lowest\"] = 0] = \"Lowest\";\n CollisionPriority2[CollisionPriority2[\"Low\"] = 1] = \"Low\";\n CollisionPriority2[CollisionPriority2[\"Normal\"] = 2] = \"Normal\";\n CollisionPriority2[CollisionPriority2[\"High\"] = 3] = \"High\";\n CollisionPriority2[CollisionPriority2[\"Highest\"] = 4] = \"Highest\";\n return CollisionPriority2;\n})(abstract_CollisionPriority || {});\nvar abstract_CollisionType = /* @__PURE__ */ ((CollisionType2)=>{\n CollisionType2[CollisionType2[\"Collision\"] = 0] = \"Collision\";\n CollisionType2[CollisionType2[\"ShapeIntersection\"] = 1] = \"ShapeIntersection\";\n CollisionType2[CollisionType2[\"PointerIntersection\"] = 2] = \"PointerIntersection\";\n return CollisionType2;\n})(abstract_CollisionType || {});\nvar _dropped_dec, _dragging_dec, _initialized_dec, _initializing_dec, _idle_dec, abstract_current_dec, _value_dec, _init2, abstract_value;\n_value_dec = [\n reactive\n], abstract_current_dec = [\n derived\n], _idle_dec = [\n derived\n], _initializing_dec = [\n derived\n], _initialized_dec = [\n derived\n], _dragging_dec = [\n derived\n], _dropped_dec = [\n derived\n];\nvar Status = class {\n constructor(){\n abstract_runInitializers(_init2, 5, this);\n abstract_privateAdd(this, abstract_value, abstract_runInitializers(_init2, 8, this, \"idle\")), abstract_runInitializers(_init2, 11, this);\n }\n get current() {\n return this.value;\n }\n get idle() {\n return \"idle\" === this.value;\n }\n get initializing() {\n return \"initializing\" === this.value;\n }\n get initialized() {\n const { value } = this;\n return \"idle\" !== value && \"initialization-pending\" !== value;\n }\n get dragging() {\n return \"dragging\" === this.value;\n }\n get dropped() {\n return \"dropped\" === this.value;\n }\n set(value) {\n this.value = value;\n }\n};\n_init2 = abstract_decoratorStart(null);\nabstract_value = new WeakMap();\nabstract_decorateElement(_init2, 4, \"value\", _value_dec, Status, abstract_value);\nabstract_decorateElement(_init2, 2, \"current\", abstract_current_dec, Status);\nabstract_decorateElement(_init2, 2, \"idle\", _idle_dec, Status);\nabstract_decorateElement(_init2, 2, \"initializing\", _initializing_dec, Status);\nabstract_decorateElement(_init2, 2, \"initialized\", _initialized_dec, Status);\nabstract_decorateElement(_init2, 2, \"dragging\", _dragging_dec, Status);\nabstract_decorateElement(_init2, 2, \"dropped\", _dropped_dec, Status);\nabstract_decoratorMetadata(_init2, Status);\nvar DragActions = class {\n constructor(manager){\n this.manager = manager;\n }\n setDragSource(source) {\n const { dragOperation } = this.manager;\n dragOperation.sourceIdentifier = \"string\" == typeof source || \"number\" == typeof source ? source : source.id;\n }\n setDropTarget(identifier) {\n return signals_core_h(()=>{\n const { dragOperation } = this.manager;\n const id = null != identifier ? identifier : null;\n if (dragOperation.targetIdentifier === id) return Promise.resolve(false);\n dragOperation.targetIdentifier = id;\n const event = defaultPreventable({\n operation: dragOperation.snapshot()\n });\n if (dragOperation.status.dragging) this.manager.monitor.dispatch(\"dragover\", event);\n return this.manager.renderer.rendering.then(()=>event.defaultPrevented);\n });\n }\n start(args) {\n return signals_core_h(()=>{\n const { dragOperation } = this.manager;\n if (null != args.source) this.setDragSource(args.source);\n const sourceInstance = dragOperation.source;\n if (!sourceInstance) throw new Error(\"Cannot start a drag operation without a drag source\");\n if (!dragOperation.status.idle) throw new Error(\"Cannot start a drag operation while another is active\");\n const controller = new AbortController();\n const { event: nativeEvent, coordinates } = args;\n signals_core_o(()=>{\n dragOperation.status.set(\"initialization-pending\");\n dragOperation.shape = null;\n dragOperation.canceled = false;\n dragOperation.activatorEvent = null != nativeEvent ? nativeEvent : null;\n dragOperation.position.reset(coordinates);\n });\n const beforeStartEvent = defaultPreventable({\n operation: dragOperation.snapshot()\n });\n this.manager.monitor.dispatch(\"beforedragstart\", beforeStartEvent);\n if (beforeStartEvent.defaultPrevented) {\n dragOperation.reset();\n controller.abort();\n return controller;\n }\n dragOperation.status.set(\"initializing\");\n dragOperation.controller = controller;\n this.manager.renderer.rendering.then(()=>{\n if (controller.signal.aborted) return;\n const { status } = dragOperation;\n if (\"initializing\" !== status.current) return;\n dragOperation.status.set(\"dragging\");\n this.manager.monitor.dispatch(\"dragstart\", {\n nativeEvent,\n operation: dragOperation.snapshot(),\n cancelable: false\n });\n });\n return controller;\n });\n }\n move(args) {\n return signals_core_h(()=>{\n var _a, _b;\n const { dragOperation } = this.manager;\n const { status, controller } = dragOperation;\n if (!status.dragging || !controller || controller.signal.aborted) return;\n const event = defaultPreventable({\n nativeEvent: args.event,\n operation: dragOperation.snapshot(),\n by: args.by,\n to: args.to\n }, null == (_a = args.cancelable) || _a);\n if (null == (_b = args.propagate) || _b) this.manager.monitor.dispatch(\"dragmove\", event);\n queueMicrotask(()=>{\n var _a2, _b2, _c3, _d, _e;\n if (event.defaultPrevented) return;\n const coordinates = null != (_e = args.to) ? _e : {\n x: dragOperation.position.current.x + (null != (_b2 = null == (_a2 = args.by) ? void 0 : _a2.x) ? _b2 : 0),\n y: dragOperation.position.current.y + (null != (_d = null == (_c3 = args.by) ? void 0 : _c3.y) ? _d : 0)\n };\n dragOperation.position.current = coordinates;\n });\n });\n }\n stop(args = {}) {\n return signals_core_h(()=>{\n var _a, _b;\n const { dragOperation } = this.manager;\n const { controller } = dragOperation;\n if (!controller || controller.signal.aborted) return;\n let promise;\n const suspend = ()=>{\n const output = {\n resume: ()=>{},\n abort: ()=>{}\n };\n promise = new Promise((resolve, reject)=>{\n output.resume = resolve;\n output.abort = reject;\n });\n return output;\n };\n controller.abort();\n const end = ()=>{\n this.manager.renderer.rendering.then(()=>{\n dragOperation.status.set(\"dropped\");\n const dropping = signals_core_h(()=>{\n var _a2;\n return (null == (_a2 = dragOperation.source) ? void 0 : _a2.status) === \"dropping\";\n });\n const cleanup = ()=>{\n if (dragOperation.controller === controller) dragOperation.controller = void 0;\n dragOperation.reset();\n };\n if (dropping) {\n const { source } = dragOperation;\n const dispose = E(()=>{\n if ((null == source ? void 0 : source.status) === \"idle\") {\n dispose();\n cleanup();\n }\n });\n } else this.manager.renderer.rendering.then(cleanup);\n });\n };\n dragOperation.canceled = null != (_a = args.canceled) && _a;\n this.manager.monitor.dispatch(\"dragend\", {\n nativeEvent: args.event,\n operation: dragOperation.snapshot(),\n canceled: null != (_b = args.canceled) && _b,\n suspend\n });\n if (promise) promise.then(end).catch(()=>dragOperation.reset());\n else end();\n });\n }\n};\nvar _disabled_dec2, _data_dec, _id_dec, _manager_dec, _init3, _manager, _id, _data, _disabled2;\n_manager_dec = [\n reactive\n], _id_dec = [\n reactive\n], _data_dec = [\n reactive\n], _disabled_dec2 = [\n reactive\n];\nvar Entity = class {\n constructor(input, manager){\n abstract_privateAdd(this, _manager, abstract_runInitializers(_init3, 8, this)), abstract_runInitializers(_init3, 11, this);\n abstract_privateAdd(this, _id, abstract_runInitializers(_init3, 12, this)), abstract_runInitializers(_init3, 15, this);\n abstract_privateAdd(this, _data, abstract_runInitializers(_init3, 16, this)), abstract_runInitializers(_init3, 19, this);\n abstract_privateAdd(this, _disabled2, abstract_runInitializers(_init3, 20, this)), abstract_runInitializers(_init3, 23, this);\n const { effects: effects6, id, data = {}, disabled = false, register = true } = input;\n let previousId = id;\n this.manager = manager;\n this.id = id;\n this.data = data;\n this.disabled = disabled;\n this.effects = ()=>{\n var _a;\n return [\n ()=>{\n const { id: id2, manager: manager2 } = this;\n if (id2 === previousId) return;\n null == manager2 || manager2.registry.register(this);\n return ()=>null == manager2 ? void 0 : manager2.registry.unregister(this);\n },\n ...null != (_a = null == effects6 ? void 0 : effects6()) ? _a : []\n ];\n };\n this.register = this.register.bind(this);\n this.unregister = this.unregister.bind(this);\n this.destroy = this.destroy.bind(this);\n if (manager && register) queueMicrotask(this.register);\n }\n register() {\n var _a;\n return null == (_a = this.manager) ? void 0 : _a.registry.register(this);\n }\n unregister() {\n var _a;\n null == (_a = this.manager) || _a.registry.unregister(this);\n }\n destroy() {\n var _a;\n null == (_a = this.manager) || _a.registry.unregister(this);\n }\n};\n_init3 = abstract_decoratorStart(null);\n_manager = new WeakMap();\n_id = new WeakMap();\n_data = new WeakMap();\n_disabled2 = new WeakMap();\nabstract_decorateElement(_init3, 4, \"manager\", _manager_dec, Entity, _manager);\nabstract_decorateElement(_init3, 4, \"id\", _id_dec, Entity, _id);\nabstract_decorateElement(_init3, 4, \"data\", _data_dec, Entity, _data);\nabstract_decorateElement(_init3, 4, \"disabled\", _disabled_dec2, Entity, _disabled2);\nabstract_decoratorMetadata(_init3, Entity);\nvar EntityRegistry = class {\n constructor(){\n this.map = signals_core_d(/* @__PURE__ */ new Map());\n this.cleanupFunctions = /* @__PURE__ */ new WeakMap();\n this.register = (key, value)=>{\n const current = this.map.peek();\n const currentValue = current.get(key);\n const unregister = ()=>this.unregister(key, value);\n if (currentValue === value) return unregister;\n if (currentValue) {\n const cleanup2 = this.cleanupFunctions.get(currentValue);\n null == cleanup2 || cleanup2();\n this.cleanupFunctions.delete(currentValue);\n }\n const updatedMap = new Map(current);\n updatedMap.set(key, value);\n this.map.value = updatedMap;\n const cleanup = effects(...value.effects());\n this.cleanupFunctions.set(value, cleanup);\n return unregister;\n };\n this.unregister = (key, value)=>{\n const current = this.map.peek();\n if (current.get(key) !== value) return;\n const cleanup = this.cleanupFunctions.get(value);\n null == cleanup || cleanup();\n this.cleanupFunctions.delete(value);\n const updatedMap = new Map(current);\n updatedMap.delete(key);\n this.map.value = updatedMap;\n };\n }\n [Symbol.iterator]() {\n return this.map.peek().values();\n }\n get value() {\n return this.map.value.values();\n }\n has(identifier) {\n return this.map.value.has(identifier);\n }\n get(identifier) {\n return this.map.value.get(identifier);\n }\n destroy() {\n for (const entry of this){\n const cleanup = this.cleanupFunctions.get(entry);\n null == cleanup || cleanup();\n entry.destroy();\n }\n this.map.value = /* @__PURE__ */ new Map();\n }\n};\nvar _isDragSource_dec, _isDragging_dec, _isDropping_dec, _status_dec, _modifiers_dec, _type_dec, abstract_c, _init4, _type, _modifiers, _status;\nvar abstract_Draggable = class extends (abstract_c = Entity, _type_dec = [\n reactive\n], _modifiers_dec = [\n reactive\n], _status_dec = [\n reactive\n], _isDropping_dec = [\n derived\n], _isDragging_dec = [\n derived\n], _isDragSource_dec = [\n derived\n], abstract_c) {\n constructor(_a, manager){\n var _b = _a, { modifiers, type, sensors } = _b, input = __objRest(_b, [\n \"modifiers\",\n \"type\",\n \"sensors\"\n ]);\n super(input, manager);\n abstract_runInitializers(_init4, 5, this);\n abstract_privateAdd(this, _type, abstract_runInitializers(_init4, 8, this)), abstract_runInitializers(_init4, 11, this);\n abstract_privateAdd(this, _modifiers, abstract_runInitializers(_init4, 12, this)), abstract_runInitializers(_init4, 15, this);\n abstract_privateAdd(this, _status, abstract_runInitializers(_init4, 16, this, this.isDragSource ? \"dragging\" : \"idle\")), abstract_runInitializers(_init4, 19, this);\n this.type = type;\n this.sensors = sensors;\n this.modifiers = modifiers;\n this.alignment = input.alignment;\n }\n get isDropping() {\n return \"dropping\" === this.status && this.isDragSource;\n }\n get isDragging() {\n return \"dragging\" === this.status && this.isDragSource;\n }\n get isDragSource() {\n var _a, _b;\n return (null == (_b = null == (_a = this.manager) ? void 0 : _a.dragOperation.source) ? void 0 : _b.id) === this.id;\n }\n};\n_init4 = abstract_decoratorStart(abstract_c);\n_type = new WeakMap();\n_modifiers = new WeakMap();\n_status = new WeakMap();\nabstract_decorateElement(_init4, 4, \"type\", _type_dec, abstract_Draggable, _type);\nabstract_decorateElement(_init4, 4, \"modifiers\", _modifiers_dec, abstract_Draggable, _modifiers);\nabstract_decorateElement(_init4, 4, \"status\", _status_dec, abstract_Draggable, _status);\nabstract_decorateElement(_init4, 2, \"isDropping\", _isDropping_dec, abstract_Draggable);\nabstract_decorateElement(_init4, 2, \"isDragging\", _isDragging_dec, abstract_Draggable);\nabstract_decorateElement(_init4, 2, \"isDragSource\", _isDragSource_dec, abstract_Draggable);\nabstract_decoratorMetadata(_init4, abstract_Draggable);\nvar _isDropTarget_dec, _shape_dec, _collisionPriority_dec, _collisionDetector_dec, _type_dec2, _accept_dec, _c2, _init5, _accept, _type2, _collisionDetector, _collisionPriority, _shape;\nvar abstract_Droppable = class extends (_c2 = Entity, _accept_dec = [\n reactive\n], _type_dec2 = [\n reactive\n], _collisionDetector_dec = [\n reactive\n], _collisionPriority_dec = [\n reactive\n], _shape_dec = [\n reactive\n], _isDropTarget_dec = [\n derived\n], _c2) {\n constructor(_a, manager){\n var _b = _a, { accept, collisionDetector, collisionPriority, type } = _b, input = __objRest(_b, [\n \"accept\",\n \"collisionDetector\",\n \"collisionPriority\",\n \"type\"\n ]);\n super(input, manager);\n abstract_runInitializers(_init5, 5, this);\n abstract_privateAdd(this, _accept, abstract_runInitializers(_init5, 8, this)), abstract_runInitializers(_init5, 11, this);\n abstract_privateAdd(this, _type2, abstract_runInitializers(_init5, 12, this)), abstract_runInitializers(_init5, 15, this);\n abstract_privateAdd(this, _collisionDetector, abstract_runInitializers(_init5, 16, this)), abstract_runInitializers(_init5, 19, this);\n abstract_privateAdd(this, _collisionPriority, abstract_runInitializers(_init5, 20, this)), abstract_runInitializers(_init5, 23, this);\n abstract_privateAdd(this, _shape, abstract_runInitializers(_init5, 24, this)), abstract_runInitializers(_init5, 27, this);\n this.accept = accept;\n this.collisionDetector = collisionDetector;\n this.collisionPriority = collisionPriority;\n this.type = type;\n }\n accepts(draggable) {\n const { accept } = this;\n if (!accept) return true;\n if (\"function\" == typeof accept) return accept(draggable);\n if (!draggable.type) return false;\n if (Array.isArray(accept)) return accept.includes(draggable.type);\n return draggable.type === accept;\n }\n get isDropTarget() {\n var _a, _b;\n return (null == (_b = null == (_a = this.manager) ? void 0 : _a.dragOperation.target) ? void 0 : _b.id) === this.id;\n }\n};\n_init5 = abstract_decoratorStart(_c2);\n_accept = new WeakMap();\n_type2 = new WeakMap();\n_collisionDetector = new WeakMap();\n_collisionPriority = new WeakMap();\n_shape = new WeakMap();\nabstract_decorateElement(_init5, 4, \"accept\", _accept_dec, abstract_Droppable, _accept);\nabstract_decorateElement(_init5, 4, \"type\", _type_dec2, abstract_Droppable, _type2);\nabstract_decorateElement(_init5, 4, \"collisionDetector\", _collisionDetector_dec, abstract_Droppable, _collisionDetector);\nabstract_decorateElement(_init5, 4, \"collisionPriority\", _collisionPriority_dec, abstract_Droppable, _collisionPriority);\nabstract_decorateElement(_init5, 4, \"shape\", _shape_dec, abstract_Droppable, _shape);\nabstract_decorateElement(_init5, 2, \"isDropTarget\", _isDropTarget_dec, abstract_Droppable);\nabstract_decoratorMetadata(_init5, abstract_Droppable);\nvar Sensor = class extends Plugin {\n constructor(manager, options){\n super(manager, options);\n this.manager = manager;\n this.options = options;\n }\n};\nvar Modifier = class extends Plugin {\n constructor(manager, options){\n super(manager, options);\n this.manager = manager;\n this.options = options;\n }\n apply(operation) {\n return operation.transform;\n }\n};\nvar DragDropRegistry = class {\n constructor(manager){\n this.draggables = new EntityRegistry();\n this.droppables = new EntityRegistry();\n this.plugins = new PluginRegistry(manager);\n this.sensors = new PluginRegistry(manager);\n this.modifiers = new PluginRegistry(manager);\n }\n register(input, options) {\n if (input instanceof abstract_Draggable) return this.draggables.register(input.id, input);\n if (input instanceof abstract_Droppable) return this.droppables.register(input.id, input);\n if (input.prototype instanceof Modifier) return this.modifiers.register(input, options);\n if (input.prototype instanceof Sensor) return this.sensors.register(input, options);\n if (input.prototype instanceof Plugin) return this.plugins.register(input, options);\n throw new Error(\"Invalid instance type\");\n }\n unregister(input) {\n if (input instanceof Entity) {\n if (input instanceof abstract_Draggable) return this.draggables.unregister(input.id, input);\n if (input instanceof abstract_Droppable) return this.droppables.unregister(input.id, input);\n return ()=>{};\n }\n if (input.prototype instanceof Modifier) return this.modifiers.unregister(input);\n if (input.prototype instanceof Sensor) return this.sensors.unregister(input);\n if (input.prototype instanceof Plugin) return this.plugins.unregister(input);\n throw new Error(\"Invalid instance type\");\n }\n destroy() {\n this.draggables.destroy();\n this.droppables.destroy();\n this.plugins.destroy();\n this.sensors.destroy();\n this.modifiers.destroy();\n }\n};\nvar _transform_dec, _target_dec, _source_dec, _modifiers_dec2, _targetIdentifier_dec, _sourceIdentifier_dec, _activatorEvent_dec, _canceled_dec, _shape_dec2, _manager2, _previousSource, _shape2, _init6, _canceled, _activatorEvent, _sourceIdentifier, _targetIdentifier, _modifiers2, _transform;\n_shape_dec2 = [\n derived\n], _canceled_dec = [\n reactive\n], _activatorEvent_dec = [\n reactive\n], _sourceIdentifier_dec = [\n reactive\n], _targetIdentifier_dec = [\n reactive\n], _modifiers_dec2 = [\n reactive\n], _source_dec = [\n derived\n], _target_dec = [\n derived\n], _transform_dec = [\n derived\n];\nvar DragOperation = class {\n constructor(manager){\n abstract_runInitializers(_init6, 5, this);\n abstract_privateAdd(this, _manager2);\n abstract_privateAdd(this, _previousSource);\n abstract_privateAdd(this, _shape2, new ValueHistory(void 0, (a, b)=>a && b ? a.equals(b) : a === b));\n this.status = new Status();\n abstract_privateAdd(this, _canceled, abstract_runInitializers(_init6, 8, this, false)), abstract_runInitializers(_init6, 11, this);\n abstract_privateAdd(this, _activatorEvent, abstract_runInitializers(_init6, 12, this, null)), abstract_runInitializers(_init6, 15, this);\n abstract_privateAdd(this, _sourceIdentifier, abstract_runInitializers(_init6, 16, this, null)), abstract_runInitializers(_init6, 19, this);\n abstract_privateAdd(this, _targetIdentifier, abstract_runInitializers(_init6, 20, this, null)), abstract_runInitializers(_init6, 23, this);\n abstract_privateAdd(this, _modifiers2, abstract_runInitializers(_init6, 24, this, [])), abstract_runInitializers(_init6, 27, this);\n this.position = new Position({\n x: 0,\n y: 0\n });\n abstract_privateAdd(this, _transform, {\n x: 0,\n y: 0\n });\n abstract_privateSet(this, _manager2, manager);\n }\n get shape() {\n const { current, initial, previous } = abstract_privateGet(this, _shape2);\n if (!current || !initial) return null;\n return {\n current,\n initial,\n previous\n };\n }\n set shape(value) {\n if (value) abstract_privateGet(this, _shape2).current = value;\n else abstract_privateGet(this, _shape2).reset();\n }\n get source() {\n var _a;\n const identifier = this.sourceIdentifier;\n if (null == identifier) return null;\n const value = abstract_privateGet(this, _manager2).registry.draggables.get(identifier);\n if (value) abstract_privateSet(this, _previousSource, value);\n return null != (_a = null != value ? value : abstract_privateGet(this, _previousSource)) ? _a : null;\n }\n get target() {\n var _a;\n const identifier = this.targetIdentifier;\n return null != identifier ? null != (_a = abstract_privateGet(this, _manager2).registry.droppables.get(identifier)) ? _a : null : null;\n }\n get transform() {\n const { x: x1, y } = this.position.delta;\n let transform = {\n x: x1,\n y\n };\n for (const modifier of this.modifiers)transform = modifier.apply(abstract_spreadProps(abstract_spreadValues({}, this.snapshot()), {\n transform\n }));\n abstract_privateSet(this, _transform, transform);\n return transform;\n }\n snapshot() {\n return signals_core_h(()=>({\n source: this.source,\n target: this.target,\n activatorEvent: this.activatorEvent,\n transform: abstract_privateGet(this, _transform),\n shape: this.shape ? snapshot(this.shape) : null,\n position: snapshot(this.position),\n status: snapshot(this.status),\n canceled: this.canceled\n }));\n }\n reset() {\n signals_core_o(()=>{\n this.status.set(\"idle\");\n this.sourceIdentifier = null;\n this.targetIdentifier = null;\n abstract_privateGet(this, _shape2).reset();\n this.position.reset({\n x: 0,\n y: 0\n });\n abstract_privateSet(this, _transform, {\n x: 0,\n y: 0\n });\n this.modifiers = [];\n });\n }\n};\n_init6 = abstract_decoratorStart(null);\n_manager2 = new WeakMap();\n_previousSource = new WeakMap();\n_shape2 = new WeakMap();\n_canceled = new WeakMap();\n_activatorEvent = new WeakMap();\n_sourceIdentifier = new WeakMap();\n_targetIdentifier = new WeakMap();\n_modifiers2 = new WeakMap();\n_transform = new WeakMap();\nabstract_decorateElement(_init6, 2, \"shape\", _shape_dec2, DragOperation);\nabstract_decorateElement(_init6, 4, \"canceled\", _canceled_dec, DragOperation, _canceled);\nabstract_decorateElement(_init6, 4, \"activatorEvent\", _activatorEvent_dec, DragOperation, _activatorEvent);\nabstract_decorateElement(_init6, 4, \"sourceIdentifier\", _sourceIdentifier_dec, DragOperation, _sourceIdentifier);\nabstract_decorateElement(_init6, 4, \"targetIdentifier\", _targetIdentifier_dec, DragOperation, _targetIdentifier);\nabstract_decorateElement(_init6, 4, \"modifiers\", _modifiers_dec2, DragOperation, _modifiers2);\nabstract_decorateElement(_init6, 2, \"source\", _source_dec, DragOperation);\nabstract_decorateElement(_init6, 2, \"target\", _target_dec, DragOperation);\nabstract_decorateElement(_init6, 2, \"transform\", _transform_dec, DragOperation);\nabstract_decoratorMetadata(_init6, DragOperation);\nvar defaultRenderer = {\n get rendering () {\n return Promise.resolve();\n }\n};\nvar DragDropManager = class {\n constructor(config){\n this.destroy = ()=>{\n if (!this.dragOperation.status.idle) this.actions.stop({\n canceled: true\n });\n this.dragOperation.modifiers.forEach((modifier)=>modifier.destroy());\n this.registry.destroy();\n this.collisionObserver.destroy();\n };\n const { plugins = [], sensors = [], modifiers = [], renderer = defaultRenderer } = null != config ? config : {};\n const monitor = new DragDropMonitor(this);\n const registry = new DragDropRegistry(this);\n this.registry = registry;\n this.monitor = monitor;\n this.renderer = renderer;\n this.actions = new DragActions(this);\n this.dragOperation = new DragOperation(this);\n this.collisionObserver = new CollisionObserver(this);\n this.plugins = [\n CollisionNotifier,\n ...plugins\n ];\n this.modifiers = modifiers;\n this.sensors = sensors;\n const { destroy } = this;\n const cleanup = effects(()=>{\n var _a, _b, _c3;\n const currentModifiers = signals_core_h(()=>this.dragOperation.modifiers);\n const managerModifiers = this.modifiers;\n if (currentModifiers !== managerModifiers) currentModifiers.forEach((modifier)=>modifier.destroy());\n this.dragOperation.modifiers = null != (_c3 = null == (_b = null == (_a = this.dragOperation.source) ? void 0 : _a.modifiers) ? void 0 : _b.map((modifier)=>{\n const { plugin, options } = abstract_descriptor(modifier);\n return new plugin(this, options);\n })) ? _c3 : managerModifiers;\n });\n this.destroy = ()=>{\n cleanup();\n destroy();\n };\n }\n get plugins() {\n return this.registry.plugins.values;\n }\n set plugins(plugins) {\n this.registry.plugins.values = plugins;\n }\n get modifiers() {\n return this.registry.modifiers.values;\n }\n set modifiers(modifiers) {\n this.registry.modifiers.values = modifiers;\n }\n get sensors() {\n return this.registry.sensors.values;\n }\n set sensors(sensors) {\n this.registry.sensors.values = sensors;\n }\n};\nvar modifiers_defProp = Object.defineProperty;\nvar modifiers_defProps = Object.defineProperties;\nvar modifiers_getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar modifiers_getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar modifiers_hasOwnProp = Object.prototype.hasOwnProperty;\nvar modifiers_propIsEnum = Object.prototype.propertyIsEnumerable;\nvar modifiers_defNormalProp = (obj, key, value)=>key in obj ? modifiers_defProp(obj, key, {\n enumerable: true,\n configurable: true,\n writable: true,\n value\n }) : obj[key] = value;\nvar modifiers_spreadValues = (a, b)=>{\n for(var prop in b || (b = {}))if (modifiers_hasOwnProp.call(b, prop)) modifiers_defNormalProp(a, prop, b[prop]);\n if (modifiers_getOwnPropSymbols) {\n for (var prop of modifiers_getOwnPropSymbols(b))if (modifiers_propIsEnum.call(b, prop)) modifiers_defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar modifiers_spreadProps = (a, b)=>modifiers_defProps(a, modifiers_getOwnPropDescs(b));\nvar modifiers_AxisModifier = class extends Modifier {\n apply({ transform }) {\n if (!this.options) return transform;\n const { axis, value } = this.options;\n return modifiers_spreadProps(modifiers_spreadValues({}, transform), {\n [axis]: value\n });\n }\n};\nmodifiers_AxisModifier.configure = configurator(modifiers_AxisModifier);\nvar AxisModifier = modifiers_AxisModifier;\nAxisModifier.configure({\n axis: \"x\",\n value: 0\n});\nvar RestrictToHorizontalAxis = AxisModifier.configure({\n axis: \"y\",\n value: 0\n});\nvar modifiers_SnapModifier = class extends Modifier {\n apply({ transform }) {\n var _a;\n const { size = 20 } = null != (_a = this.options) ? _a : {};\n const x1 = \"number\" == typeof size ? size : size.x;\n const y = \"number\" == typeof size ? size : size.y;\n return modifiers_spreadProps(modifiers_spreadValues({}, transform), {\n x: Math.ceil(transform.x / x1) * x1,\n y: Math.ceil(transform.y / y) * y\n });\n }\n};\nmodifiers_SnapModifier.configure = configurator(modifiers_SnapModifier);\nvar utilities_typeError = (msg)=>{\n throw TypeError(msg);\n};\nvar utilities_accessCheck = (obj, member, msg)=>member.has(obj) || utilities_typeError(\"Cannot \" + msg);\nvar utilities_privateGet = (obj, member, getter)=>(utilities_accessCheck(obj, member, \"read from private field\"), member.get(obj));\nvar utilities_privateAdd = (obj, member, value)=>member.has(obj) ? utilities_typeError(\"Cannot add the same private member more than once\") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value);\nvar utilities_privateSet = (obj, member, value, setter)=>(utilities_accessCheck(obj, member, \"write to private field\"), member.set(obj, value), value);\nvar utilities_privateMethod = (obj, member, method)=>(utilities_accessCheck(obj, member, \"access private method\"), method);\nfunction isKeyframeEffect(effect) {\n if (!effect) return false;\n if (effect instanceof KeyframeEffect) return true;\n return \"getKeyframes\" in effect && \"function\" == typeof effect.getKeyframes;\n}\nfunction getFinalKeyframe(element, match) {\n const animations2 = element.getAnimations();\n if (animations2.length > 0) for (const animation of animations2){\n if (\"running\" !== animation.playState) continue;\n const { effect } = animation;\n const keyframes = isKeyframeEffect(effect) ? effect.getKeyframes() : [];\n const matchedKeyframes = keyframes.filter(match);\n if (matchedKeyframes.length > 0) return [\n matchedKeyframes[matchedKeyframes.length - 1],\n animation\n ];\n }\n return null;\n}\nfunction getBoundingRectangle(element) {\n const { width, height, top, left, bottom, right } = element.getBoundingClientRect();\n return {\n width,\n height,\n top,\n left,\n bottom,\n right\n };\n}\nvar canUseDOM = \"undefined\" != typeof window && void 0 !== window.document && void 0 !== window.document.createElement;\nfunction isWindow(element) {\n const elementString = Object.prototype.toString.call(element);\n return \"[object Window]\" === elementString || \"[object global]\" === elementString;\n}\nfunction isNode(node) {\n return \"nodeType\" in node;\n}\nfunction getWindow(target) {\n var _a, _b, _c;\n if (!target) return window;\n if (isWindow(target)) return target;\n if (!isNode(target)) return window;\n if (\"defaultView\" in target) return null != (_a = target.defaultView) ? _a : window;\n return null != (_c = null == (_b = target.ownerDocument) ? void 0 : _b.defaultView) ? _c : window;\n}\nfunction isDocument(node) {\n const { Document } = getWindow(node);\n return node instanceof Document || \"nodeType\" in node && node.nodeType === Node.DOCUMENT_NODE;\n}\nfunction isHTMLElement(node) {\n if (!node || isWindow(node)) return false;\n return node instanceof getWindow(node).HTMLElement || \"namespaceURI\" in node && \"string\" == typeof node.namespaceURI && node.namespaceURI.endsWith(\"html\");\n}\nfunction isSVGElement(node) {\n return node instanceof getWindow(node).SVGElement || \"namespaceURI\" in node && \"string\" == typeof node.namespaceURI && node.namespaceURI.endsWith(\"svg\");\n}\nfunction getDocument(target) {\n if (!target) return document;\n if (isWindow(target)) return target.document;\n if (!isNode(target)) return document;\n if (isDocument(target)) return target;\n if (isHTMLElement(target) || isSVGElement(target)) return target.ownerDocument;\n return document;\n}\nfunction getViewportBoundingRectangle(element) {\n const { documentElement } = getDocument(element);\n const width = documentElement.clientWidth;\n const height = documentElement.clientHeight;\n return {\n top: 0,\n left: 0,\n right: width,\n bottom: height,\n width,\n height\n };\n}\nfunction isOverflowVisible(element, style) {\n if (isDetailsElement(element) && false === element.open) return false;\n const { overflow, overflowX, overflowY } = getComputedStyle(element);\n return \"visible\" === overflow && \"visible\" === overflowX && \"visible\" === overflowY;\n}\nfunction isDetailsElement(element) {\n return \"DETAILS\" === element.tagName;\n}\nfunction getVisibleBoundingRectangle(element, boundingClientRect = element.getBoundingClientRect(), margin = 0) {\n var _a;\n let rect = boundingClientRect;\n const { ownerDocument } = element;\n const ownerWindow = null != (_a = ownerDocument.defaultView) ? _a : window;\n let ancestor = element.parentElement;\n while(ancestor && ancestor !== ownerDocument.documentElement){\n if (!isOverflowVisible(ancestor)) {\n const ancestorRect = ancestor.getBoundingClientRect();\n const marginTop = margin * (ancestorRect.bottom - ancestorRect.top);\n const marginRight = margin * (ancestorRect.right - ancestorRect.left);\n const marginBottom = margin * (ancestorRect.bottom - ancestorRect.top);\n const marginLeft = margin * (ancestorRect.right - ancestorRect.left);\n rect = {\n top: Math.max(rect.top, ancestorRect.top - marginTop),\n right: Math.min(rect.right, ancestorRect.right + marginRight),\n bottom: Math.min(rect.bottom, ancestorRect.bottom + marginBottom),\n left: Math.max(rect.left, ancestorRect.left - marginLeft),\n width: 0,\n height: 0\n };\n rect.width = rect.right - rect.left;\n rect.height = rect.bottom - rect.top;\n }\n ancestor = ancestor.parentElement;\n }\n const viewportWidth = ownerWindow.innerWidth;\n const viewportHeight = ownerWindow.innerHeight;\n const viewportMarginY = margin * viewportHeight;\n const viewportMarginX = margin * viewportWidth;\n rect = {\n top: Math.max(rect.top, 0 - viewportMarginY),\n right: Math.min(rect.right, viewportWidth + viewportMarginX),\n bottom: Math.min(rect.bottom, viewportHeight + viewportMarginY),\n left: Math.max(rect.left, 0 - viewportMarginX),\n width: 0,\n height: 0\n };\n rect.width = rect.right - rect.left;\n rect.height = rect.bottom - rect.top;\n if (rect.width < 0) rect.width = 0;\n if (rect.height < 0) rect.height = 0;\n return rect;\n}\nfunction isSafari() {\n return /^((?!chrome|android).)*safari/i.test(navigator.userAgent);\n}\nfunction cloneElement(element) {\n const selector = \"input, textarea, select, canvas, [contenteditable]\";\n const clonedElement = element.cloneNode(true);\n const fields = Array.from(element.querySelectorAll(selector));\n const clonedFields = Array.from(clonedElement.querySelectorAll(selector));\n clonedFields.forEach((field, index)=>{\n const originalField = fields[index];\n if (isField(field) && isField(originalField)) {\n if (\"file\" !== field.type) field.value = originalField.value;\n if (\"radio\" === field.type && field.name) field.name = `Cloned__${field.name}`;\n }\n if (isCanvasElement(field) && isCanvasElement(originalField) && originalField.width > 0 && originalField.height > 0) {\n const destCtx = field.getContext(\"2d\");\n null == destCtx || destCtx.drawImage(originalField, 0, 0);\n }\n });\n return clonedElement;\n}\nfunction isField(element) {\n return \"value\" in element;\n}\nfunction isCanvasElement(element) {\n return \"CANVAS\" === element.tagName;\n}\nfunction getElementFromPoint(document2, { x: x1, y }) {\n const element = document2.elementFromPoint(x1, y);\n if (isIFrameElement(element)) {\n const { contentDocument } = element;\n if (contentDocument) {\n const { left, top } = element.getBoundingClientRect();\n return getElementFromPoint(contentDocument, {\n x: x1 - left,\n y: y - top\n });\n }\n }\n return element;\n}\nfunction isIFrameElement(element) {\n return (null == element ? void 0 : element.tagName) === \"IFRAME\";\n}\nvar ProxiedElements = /* @__PURE__ */ new WeakMap();\nvar Listeners = class {\n constructor(){\n this.entries = /* @__PURE__ */ new Set();\n this.clear = ()=>{\n for (const entry of this.entries){\n const [target, { type, listener, options }] = entry;\n target.removeEventListener(type, listener, options);\n }\n this.entries.clear();\n };\n }\n bind(target, input) {\n const listeners = Array.isArray(input) ? input : [\n input\n ];\n const entries = [];\n for (const descriptor of listeners){\n const { type, listener, options } = descriptor;\n const entry = [\n target,\n descriptor\n ];\n target.addEventListener(type, listener, options);\n this.entries.add(entry);\n entries.push(entry);\n }\n return function() {\n for (const [target2, { type, listener, options }] of entries)target2.removeEventListener(type, listener, options);\n };\n }\n};\nfunction getFrameElement(el) {\n const refWindow = null == el ? void 0 : el.ownerDocument.defaultView;\n if (refWindow && refWindow.self !== refWindow.parent) return refWindow.frameElement;\n}\nfunction getFrameElements(el) {\n const frames = /* @__PURE__ */ new Set();\n let frame = getFrameElement(el);\n while(frame){\n frames.add(frame);\n frame = getFrameElement(frame);\n }\n return frames;\n}\nfunction utilities_timeout(callback, duration) {\n const id = setTimeout(callback, duration);\n return ()=>clearTimeout(id);\n}\nfunction throttle(func, limit) {\n const time = ()=>performance.now();\n let cancel;\n let lastRan;\n return function(...args) {\n const context = this;\n if (lastRan) {\n null == cancel || cancel();\n cancel = utilities_timeout(()=>{\n func.apply(context, args);\n lastRan = time();\n }, limit - (time() - lastRan));\n } else {\n func.apply(context, args);\n lastRan = time();\n }\n };\n}\nfunction isRectEqual(a, b) {\n if (a === b) return true;\n if (!a || !b) return false;\n return a.top == b.top && a.left == b.left && a.right == b.right && a.bottom == b.bottom;\n}\nfunction isVisible(element, boundingClientRect = element.getBoundingClientRect()) {\n const { width, height } = getVisibleBoundingRectangle(element, boundingClientRect);\n return width > 0 && height > 0;\n}\nvar Observer = canUseDOM ? ResizeObserver : class {\n observe() {}\n unobserve() {}\n disconnect() {}\n};\nvar _initialized;\nvar ResizeNotifier = class extends Observer {\n constructor(callback){\n super((entries)=>{\n if (!utilities_privateGet(this, _initialized)) {\n utilities_privateSet(this, _initialized, true);\n return;\n }\n callback(entries, this);\n });\n utilities_privateAdd(this, _initialized, false);\n }\n};\n_initialized = new WeakMap();\nvar threshold = Array.from({\n length: 100\n}, (_, index)=>index / 100);\nvar THROTTLE_INTERVAL = 75;\nvar _visible, _previousBoundingClientRect, _resizeObserver, _positionObserver, _visibilityObserver, _debug, _disconnected, _observePosition, _PositionObserver_instances, notify_fn, updateDebug_fn;\nvar PositionObserver = class {\n constructor(element, callback, options = {\n debug: false,\n skipInitial: false\n }){\n this.element = element;\n this.callback = callback;\n utilities_privateAdd(this, _PositionObserver_instances);\n this.disconnect = ()=>{\n var _a, _b, _c;\n utilities_privateSet(this, _disconnected, true);\n null == (_a = utilities_privateGet(this, _resizeObserver)) || _a.disconnect();\n null == (_b = utilities_privateGet(this, _positionObserver)) || _b.disconnect();\n utilities_privateGet(this, _visibilityObserver).disconnect();\n null == (_c = utilities_privateGet(this, _debug)) || _c.remove();\n };\n utilities_privateAdd(this, _visible, true);\n utilities_privateAdd(this, _previousBoundingClientRect);\n utilities_privateAdd(this, _resizeObserver);\n utilities_privateAdd(this, _positionObserver);\n utilities_privateAdd(this, _visibilityObserver);\n utilities_privateAdd(this, _debug);\n utilities_privateAdd(this, _disconnected, false);\n utilities_privateAdd(this, _observePosition, throttle(()=>{\n var _a, _b, _c;\n const { element } = this;\n null == (_a = utilities_privateGet(this, _positionObserver)) || _a.disconnect();\n if (utilities_privateGet(this, _disconnected) || !utilities_privateGet(this, _visible) || !element.isConnected) return;\n const root = null != (_b = element.ownerDocument) ? _b : document;\n const { innerHeight, innerWidth } = null != (_c = root.defaultView) ? _c : window;\n const clientRect = element.getBoundingClientRect();\n const visibleRect = getVisibleBoundingRectangle(element, clientRect);\n const { top, left, bottom, right } = visibleRect;\n const insetTop = -Math.floor(top);\n const insetLeft = -Math.floor(left);\n const insetRight = -Math.floor(innerWidth - right);\n const insetBottom = -Math.floor(innerHeight - bottom);\n const rootMargin = `${insetTop}px ${insetRight}px ${insetBottom}px ${insetLeft}px`;\n this.boundingClientRect = clientRect;\n utilities_privateSet(this, _positionObserver, new IntersectionObserver((entries)=>{\n const [entry] = entries;\n const { intersectionRect } = entry;\n const intersectionRatio = 1 !== entry.intersectionRatio ? entry.intersectionRatio : Rectangle.intersectionRatio(intersectionRect, getVisibleBoundingRectangle(element));\n if (1 !== intersectionRatio) utilities_privateGet(this, _observePosition).call(this);\n }, {\n threshold,\n rootMargin,\n root\n }));\n utilities_privateGet(this, _positionObserver).observe(element);\n utilities_privateMethod(this, _PositionObserver_instances, notify_fn).call(this);\n }, THROTTLE_INTERVAL));\n this.boundingClientRect = element.getBoundingClientRect();\n utilities_privateSet(this, _visible, isVisible(element, this.boundingClientRect));\n let initial = true;\n this.callback = (boundingClientRect)=>{\n if (initial) {\n initial = false;\n if (options.skipInitial) return;\n }\n callback(boundingClientRect);\n };\n const root = element.ownerDocument;\n if (null == options ? void 0 : options.debug) {\n utilities_privateSet(this, _debug, document.createElement(\"div\"));\n utilities_privateGet(this, _debug).style.background = \"rgba(0,0,0,0.15)\";\n utilities_privateGet(this, _debug).style.position = \"fixed\";\n utilities_privateGet(this, _debug).style.pointerEvents = \"none\";\n root.body.appendChild(utilities_privateGet(this, _debug));\n }\n utilities_privateSet(this, _visibilityObserver, new IntersectionObserver((entries)=>{\n var _a, _b;\n const entry = entries[entries.length - 1];\n const { boundingClientRect, isIntersecting: visible } = entry;\n const { width, height } = boundingClientRect;\n const previousVisible = utilities_privateGet(this, _visible);\n utilities_privateSet(this, _visible, visible);\n if (!width && !height) return;\n if (previousVisible && !visible) {\n null == (_a = utilities_privateGet(this, _positionObserver)) || _a.disconnect();\n this.callback(null);\n null == (_b = utilities_privateGet(this, _resizeObserver)) || _b.disconnect();\n utilities_privateSet(this, _resizeObserver, void 0);\n if (utilities_privateGet(this, _debug)) utilities_privateGet(this, _debug).style.visibility = \"hidden\";\n } else utilities_privateGet(this, _observePosition).call(this);\n if (visible && !utilities_privateGet(this, _resizeObserver)) {\n utilities_privateSet(this, _resizeObserver, new ResizeNotifier(utilities_privateGet(this, _observePosition)));\n utilities_privateGet(this, _resizeObserver).observe(element);\n }\n }, {\n threshold,\n root\n }));\n if (utilities_privateGet(this, _visible) && !options.skipInitial) this.callback(this.boundingClientRect);\n utilities_privateGet(this, _visibilityObserver).observe(element);\n }\n};\n_visible = new WeakMap();\n_previousBoundingClientRect = new WeakMap();\n_resizeObserver = new WeakMap();\n_positionObserver = new WeakMap();\n_visibilityObserver = new WeakMap();\n_debug = new WeakMap();\n_disconnected = new WeakMap();\n_observePosition = new WeakMap();\n_PositionObserver_instances = new WeakSet();\nnotify_fn = function() {\n if (utilities_privateGet(this, _disconnected)) return;\n utilities_privateMethod(this, _PositionObserver_instances, updateDebug_fn).call(this);\n if (isRectEqual(this.boundingClientRect, utilities_privateGet(this, _previousBoundingClientRect))) return;\n this.callback(this.boundingClientRect);\n utilities_privateSet(this, _previousBoundingClientRect, this.boundingClientRect);\n};\nupdateDebug_fn = function() {\n if (utilities_privateGet(this, _debug)) {\n const { top, left, width, height } = getVisibleBoundingRectangle(this.element);\n utilities_privateGet(this, _debug).style.overflow = \"hidden\";\n utilities_privateGet(this, _debug).style.visibility = \"visible\";\n utilities_privateGet(this, _debug).style.top = `${Math.floor(top)}px`;\n utilities_privateGet(this, _debug).style.left = `${Math.floor(left)}px`;\n utilities_privateGet(this, _debug).style.width = `${Math.floor(width)}px`;\n utilities_privateGet(this, _debug).style.height = `${Math.floor(height)}px`;\n }\n};\nvar framePositionObservers = /* @__PURE__ */ new WeakMap();\nvar scrollListeners = /* @__PURE__ */ new WeakMap();\nfunction addFrameListener(frame, callback) {\n let cached = framePositionObservers.get(frame);\n if (!cached) {\n const observer = new PositionObserver(frame, (boundingClientRect)=>{\n const cached2 = framePositionObservers.get(frame);\n if (!cached2) return;\n cached2.callbacks.forEach((callback2)=>callback2(boundingClientRect));\n }, {\n skipInitial: true\n });\n cached = {\n disconnect: observer.disconnect,\n callbacks: /* @__PURE__ */ new Set()\n };\n }\n cached.callbacks.add(callback);\n framePositionObservers.set(frame, cached);\n return ()=>{\n cached.callbacks.delete(callback);\n if (0 === cached.callbacks.size) {\n framePositionObservers.delete(frame);\n cached.disconnect();\n }\n };\n}\nfunction observeParentFrames(frames, callback) {\n const cleanup = /* @__PURE__ */ new Set();\n for (const frame of frames){\n const remove = addFrameListener(frame, callback);\n cleanup.add(remove);\n }\n return ()=>cleanup.forEach((remove)=>remove());\n}\nfunction addScrollListener(element, callback) {\n var _a;\n const doc = element.ownerDocument;\n if (!scrollListeners.has(doc)) {\n const controller = new AbortController();\n const listeners2 = /* @__PURE__ */ new Set();\n document.addEventListener(\"scroll\", (event)=>listeners2.forEach((listener)=>listener(event)), {\n capture: true,\n passive: true,\n signal: controller.signal\n });\n scrollListeners.set(doc, {\n disconnect: ()=>controller.abort(),\n listeners: listeners2\n });\n }\n const { listeners, disconnect } = null != (_a = scrollListeners.get(doc)) ? _a : {};\n if (!listeners || !disconnect) return ()=>{};\n listeners.add(callback);\n return ()=>{\n listeners.delete(callback);\n if (0 === listeners.size) {\n disconnect();\n scrollListeners.delete(doc);\n }\n };\n}\nvar _elementObserver, _disconnected2, _frames, _handleScroll;\nvar FrameObserver = class {\n constructor(element, callback, options){\n this.callback = callback;\n utilities_privateAdd(this, _elementObserver);\n utilities_privateAdd(this, _disconnected2, false);\n utilities_privateAdd(this, _frames);\n utilities_privateAdd(this, _handleScroll, throttle((event)=>{\n if (utilities_privateGet(this, _disconnected2)) return;\n if (!event.target) return;\n if (\"contains\" in event.target && \"function\" == typeof event.target.contains) {\n for (const frame of utilities_privateGet(this, _frames))if (event.target.contains(frame)) {\n this.callback(utilities_privateGet(this, _elementObserver).boundingClientRect);\n break;\n }\n }\n }, THROTTLE_INTERVAL));\n const frames = getFrameElements(element);\n const unobserveParentFrames = observeParentFrames(frames, callback);\n const removeScrollListener = addScrollListener(element, utilities_privateGet(this, _handleScroll));\n utilities_privateSet(this, _frames, frames);\n utilities_privateSet(this, _elementObserver, new PositionObserver(element, callback, options));\n this.disconnect = ()=>{\n if (utilities_privateGet(this, _disconnected2)) return;\n utilities_privateSet(this, _disconnected2, true);\n unobserveParentFrames();\n removeScrollListener();\n utilities_privateGet(this, _elementObserver).disconnect();\n };\n }\n};\n_elementObserver = new WeakMap();\n_disconnected2 = new WeakMap();\n_frames = new WeakMap();\n_handleScroll = new WeakMap();\nfunction supportsPopover(element) {\n return \"showPopover\" in element && \"hidePopover\" in element && \"function\" == typeof element.showPopover && \"function\" == typeof element.hidePopover;\n}\nfunction showPopover(element) {\n try {\n if (supportsPopover(element) && element.isConnected && element.hasAttribute(\"popover\") && !element.matches(\":popover-open\")) element.showPopover();\n } catch (error) {}\n}\nfunction isDocumentScrollingElement(element) {\n if (!canUseDOM || !element) return false;\n return element === getDocument(element).scrollingElement;\n}\nfunction getScrollPosition(scrollableElement) {\n const window2 = getWindow(scrollableElement);\n const rect = isDocumentScrollingElement(scrollableElement) ? getViewportBoundingRectangle(scrollableElement) : getBoundingRectangle(scrollableElement);\n const dimensions = isDocumentScrollingElement(scrollableElement) ? {\n height: window2.innerHeight,\n width: window2.innerWidth\n } : {\n height: scrollableElement.clientHeight,\n width: scrollableElement.clientWidth\n };\n const position = {\n current: {\n x: scrollableElement.scrollLeft,\n y: scrollableElement.scrollTop\n },\n max: {\n x: scrollableElement.scrollWidth - dimensions.width,\n y: scrollableElement.scrollHeight - dimensions.height\n }\n };\n const isTop = position.current.y <= 0;\n const isLeft = position.current.x <= 0;\n const isBottom = position.current.y >= position.max.y;\n const isRight = position.current.x >= position.max.x;\n return {\n rect,\n position,\n isTop,\n isLeft,\n isBottom,\n isRight\n };\n}\nfunction canScroll(scrollableElement, by) {\n const { isTop, isBottom, isLeft, isRight, position } = getScrollPosition(scrollableElement);\n const { x: x1, y } = null != by ? by : {\n x: 0,\n y: 0\n };\n const top = !isTop && position.current.y + y > 0;\n const bottom = !isBottom && position.current.y + y < position.max.y;\n const left = !isLeft && position.current.x + x1 > 0;\n const right = !isRight && position.current.x + x1 < position.max.x;\n return {\n top,\n bottom,\n left,\n right,\n x: left || right,\n y: top || bottom\n };\n}\nvar Scheduler = class {\n constructor(scheduler4){\n this.scheduler = scheduler4;\n this.pending = false;\n this.tasks = /* @__PURE__ */ new Set();\n this.resolvers = /* @__PURE__ */ new Set();\n this.flush = ()=>{\n const { tasks, resolvers } = this;\n this.pending = false;\n this.tasks = /* @__PURE__ */ new Set();\n this.resolvers = /* @__PURE__ */ new Set();\n for (const task of tasks)task();\n for (const resolve of resolvers)resolve();\n };\n }\n schedule(task) {\n this.tasks.add(task);\n if (!this.pending) {\n this.pending = true;\n this.scheduler(this.flush);\n }\n return new Promise((resolve)=>this.resolvers.add(resolve));\n }\n};\nvar scheduler = new Scheduler((callback)=>{\n if (\"function\" == typeof requestAnimationFrame) requestAnimationFrame(callback);\n else callback();\n});\nvar scheduler2 = new Scheduler((callback)=>setTimeout(callback, 50));\nvar cachedStyles = /* @__PURE__ */ new Map();\nvar clear = cachedStyles.clear.bind(cachedStyles);\nfunction getComputedStyles(element, cached = false) {\n if (!cached) return computeStyles(element);\n let styles = cachedStyles.get(element);\n if (styles) return styles;\n styles = computeStyles(element);\n cachedStyles.set(element, styles);\n scheduler2.schedule(clear);\n return styles;\n}\nfunction computeStyles(element) {\n return getWindow(element).getComputedStyle(element);\n}\nfunction isFixed(node, computedStyle = getComputedStyles(node, true)) {\n return \"fixed\" === computedStyle.position;\n}\nfunction isScrollable(element, computedStyle = getComputedStyles(element, true)) {\n const overflowRegex = /(auto|scroll|overlay)/;\n const properties = [\n \"overflow\",\n \"overflowX\",\n \"overflowY\"\n ];\n return properties.some((property)=>{\n const value = computedStyle[property];\n return \"string\" == typeof value && overflowRegex.test(value);\n });\n}\nvar defaultOptions = {\n excludeElement: true\n};\nfunction getScrollableAncestors(element, options = defaultOptions) {\n const { limit, excludeElement } = options;\n const scrollParents = /* @__PURE__ */ new Set();\n function findScrollableAncestors(node) {\n if (null != limit && scrollParents.size >= limit) return scrollParents;\n if (!node) return scrollParents;\n if (isDocument(node) && null != node.scrollingElement && !scrollParents.has(node.scrollingElement)) {\n scrollParents.add(node.scrollingElement);\n return scrollParents;\n }\n if (!isHTMLElement(node)) {\n if (isSVGElement(node)) return findScrollableAncestors(node.parentElement);\n return scrollParents;\n }\n if (scrollParents.has(node)) return scrollParents;\n const computedStyle = getComputedStyles(node, true);\n if (excludeElement && node === element) ;\n else if (isScrollable(node, computedStyle)) scrollParents.add(node);\n if (isFixed(node, computedStyle)) {\n const { scrollingElement } = node.ownerDocument;\n if (scrollingElement) scrollParents.add(scrollingElement);\n return scrollParents;\n }\n return findScrollableAncestors(node.parentNode);\n }\n if (!element) return scrollParents;\n return findScrollableAncestors(element);\n}\nfunction getFirstScrollableAncestor(node) {\n const [firstScrollableAncestor] = getScrollableAncestors(node, {\n limit: 1\n });\n return null != firstScrollableAncestor ? firstScrollableAncestor : null;\n}\nfunction getFrameTransform(el, boundary = window.frameElement) {\n const transform = {\n x: 0,\n y: 0,\n scaleX: 1,\n scaleY: 1\n };\n if (!el) return transform;\n let frame = getFrameElement(el);\n while(frame){\n if (frame === boundary) break;\n const rect = getBoundingRectangle(frame);\n const { x: scaleX, y: scaleY } = getScale(frame, rect);\n transform.x = transform.x + rect.left;\n transform.y = transform.y + rect.top;\n transform.scaleX = transform.scaleX * scaleX;\n transform.scaleY = transform.scaleY * scaleY;\n frame = getFrameElement(frame);\n }\n return transform;\n}\nfunction getScale(element, boundingRectangle = getBoundingRectangle(element)) {\n const width = Math.round(boundingRectangle.width);\n const height = Math.round(boundingRectangle.height);\n if (isHTMLElement(element)) return {\n x: width / element.offsetWidth,\n y: height / element.offsetHeight\n };\n const styles = getComputedStyles(element, true);\n return {\n x: (parseFloat(styles.width) || width) / width,\n y: (parseFloat(styles.height) || height) / height\n };\n}\nfunction parseScale(scale) {\n if (\"none\" === scale) return null;\n const values = scale.split(\" \");\n const x1 = parseFloat(values[0]);\n const y = parseFloat(values[1]);\n if (isNaN(x1) && isNaN(y)) return null;\n return {\n x: isNaN(x1) ? y : x1,\n y: isNaN(y) ? x1 : y\n };\n}\nfunction parseTranslate(translate) {\n if (\"none\" === translate) return null;\n const [x1, y, z = \"0\"] = translate.split(\" \");\n const output = {\n x: parseFloat(x1),\n y: parseFloat(y),\n z: parseInt(z, 10)\n };\n if (isNaN(output.x) && isNaN(output.y)) return null;\n return {\n x: isNaN(output.x) ? 0 : output.x,\n y: isNaN(output.y) ? 0 : output.y,\n z: isNaN(output.z) ? 0 : output.z\n };\n}\nfunction parseTransform(computedStyles) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _i;\n const { scale, transform, translate } = computedStyles;\n const parsedScale = parseScale(scale);\n const parsedTranslate = parseTranslate(translate);\n const parsedMatrix = parseTransformMatrix(transform);\n if (!parsedMatrix && !parsedScale && !parsedTranslate) return null;\n const normalizedScale = {\n x: null != (_a = null == parsedScale ? void 0 : parsedScale.x) ? _a : 1,\n y: null != (_b = null == parsedScale ? void 0 : parsedScale.y) ? _b : 1\n };\n const normalizedTranslate = {\n x: null != (_c = null == parsedTranslate ? void 0 : parsedTranslate.x) ? _c : 0,\n y: null != (_d = null == parsedTranslate ? void 0 : parsedTranslate.y) ? _d : 0\n };\n const normalizedMatrix = {\n x: null != (_e = null == parsedMatrix ? void 0 : parsedMatrix.x) ? _e : 0,\n y: null != (_f = null == parsedMatrix ? void 0 : parsedMatrix.y) ? _f : 0,\n scaleX: null != (_g = null == parsedMatrix ? void 0 : parsedMatrix.scaleX) ? _g : 1,\n scaleY: null != (_h = null == parsedMatrix ? void 0 : parsedMatrix.scaleY) ? _h : 1\n };\n return {\n x: normalizedTranslate.x + normalizedMatrix.x,\n y: normalizedTranslate.y + normalizedMatrix.y,\n z: null != (_i = null == parsedTranslate ? void 0 : parsedTranslate.z) ? _i : 0,\n scaleX: normalizedScale.x * normalizedMatrix.scaleX,\n scaleY: normalizedScale.y * normalizedMatrix.scaleY\n };\n}\nfunction parseTransformMatrix(transform) {\n if (transform.startsWith(\"matrix3d(\")) {\n const transformArray = transform.slice(9, -1).split(/, /);\n return {\n x: +transformArray[12],\n y: +transformArray[13],\n scaleX: +transformArray[0],\n scaleY: +transformArray[5]\n };\n }\n if (transform.startsWith(\"matrix(\")) {\n const transformArray = transform.slice(7, -1).split(/, /);\n return {\n x: +transformArray[4],\n y: +transformArray[5],\n scaleX: +transformArray[0],\n scaleY: +transformArray[3]\n };\n }\n return null;\n}\nvar ScrollDirection = /* @__PURE__ */ ((ScrollDirection2)=>{\n ScrollDirection2[ScrollDirection2[\"Idle\"] = 0] = \"Idle\";\n ScrollDirection2[ScrollDirection2[\"Forward\"] = 1] = \"Forward\";\n ScrollDirection2[ScrollDirection2[\"Reverse\"] = -1] = \"Reverse\";\n return ScrollDirection2;\n})(ScrollDirection || {});\nvar defaultThreshold = {\n x: 0.2,\n y: 0.2\n};\nvar defaultTolerance = {\n x: 10,\n y: 10\n};\nfunction detectScrollIntent(scrollableElement, coordinates, intent, acceleration = 25, thresholdPercentage = defaultThreshold, tolerance = defaultTolerance) {\n const { x: x1, y } = coordinates;\n const { rect, isTop, isBottom, isLeft, isRight } = getScrollPosition(scrollableElement);\n const frameTransform = getFrameTransform(scrollableElement);\n const computedStyles = getComputedStyles(scrollableElement, true);\n const parsedTransform = parseTransform(computedStyles);\n const isXAxisInverted = null !== parsedTransform && (null == parsedTransform ? void 0 : parsedTransform.scaleX) < 0;\n const isYAxisInverted = null !== parsedTransform && (null == parsedTransform ? void 0 : parsedTransform.scaleY) < 0;\n const scrollContainerRect = new Rectangle(rect.left * frameTransform.scaleX + frameTransform.x, rect.top * frameTransform.scaleY + frameTransform.y, rect.width * frameTransform.scaleX, rect.height * frameTransform.scaleY);\n const direction = {\n x: 0,\n y: 0\n };\n const speed = {\n x: 0,\n y: 0\n };\n const threshold2 = {\n height: scrollContainerRect.height * thresholdPercentage.y,\n width: scrollContainerRect.width * thresholdPercentage.x\n };\n if ((!isTop || isYAxisInverted && !isBottom) && y <= scrollContainerRect.top + threshold2.height && (null == intent ? void 0 : intent.y) !== 1 && x1 >= scrollContainerRect.left - tolerance.x && x1 <= scrollContainerRect.right + tolerance.x) {\n direction.y = isYAxisInverted ? 1 : -1;\n speed.y = acceleration * Math.abs((scrollContainerRect.top + threshold2.height - y) / threshold2.height);\n } else if ((!isBottom || isYAxisInverted && !isTop) && y >= scrollContainerRect.bottom - threshold2.height && (null == intent ? void 0 : intent.y) !== -1 && x1 >= scrollContainerRect.left - tolerance.x && x1 <= scrollContainerRect.right + tolerance.x) {\n direction.y = isYAxisInverted ? -1 : 1;\n speed.y = acceleration * Math.abs((scrollContainerRect.bottom - threshold2.height - y) / threshold2.height);\n }\n if ((!isRight || isXAxisInverted && !isLeft) && x1 >= scrollContainerRect.right - threshold2.width && (null == intent ? void 0 : intent.x) !== -1 && y >= scrollContainerRect.top - tolerance.y && y <= scrollContainerRect.bottom + tolerance.y) {\n direction.x = isXAxisInverted ? -1 : 1;\n speed.x = acceleration * Math.abs((scrollContainerRect.right - threshold2.width - x1) / threshold2.width);\n } else if ((!isLeft || isXAxisInverted && !isRight) && x1 <= scrollContainerRect.left + threshold2.width && (null == intent ? void 0 : intent.x) !== 1 && y >= scrollContainerRect.top - tolerance.y && y <= scrollContainerRect.bottom + tolerance.y) {\n direction.x = isXAxisInverted ? 1 : -1;\n speed.x = acceleration * Math.abs((scrollContainerRect.left + threshold2.width - x1) / threshold2.width);\n }\n return {\n direction,\n speed\n };\n}\nfunction supportsScrollIntoViewIfNeeded(element) {\n return \"scrollIntoViewIfNeeded\" in element && \"function\" == typeof element.scrollIntoViewIfNeeded;\n}\nfunction scrollIntoViewIfNeeded(el, centerIfNeeded = false) {\n if (supportsScrollIntoViewIfNeeded(el)) {\n el.scrollIntoViewIfNeeded(centerIfNeeded);\n return;\n }\n if (!isHTMLElement(el)) return el.scrollIntoView();\n var parent = getFirstScrollableAncestor(el);\n if (!isHTMLElement(parent)) return;\n const parentComputedStyle = getComputedStyles(parent, true), parentBorderTopWidth = parseInt(parentComputedStyle.getPropertyValue(\"border-top-width\")), parentBorderLeftWidth = parseInt(parentComputedStyle.getPropertyValue(\"border-left-width\")), overTop = el.offsetTop - parent.offsetTop < parent.scrollTop, overBottom = el.offsetTop - parent.offsetTop + el.clientHeight - parentBorderTopWidth > parent.scrollTop + parent.clientHeight, overLeft = el.offsetLeft - parent.offsetLeft < parent.scrollLeft, overRight = el.offsetLeft - parent.offsetLeft + el.clientWidth - parentBorderLeftWidth > parent.scrollLeft + parent.clientWidth, alignWithTop = overTop && !overBottom;\n if ((overTop || overBottom) && centerIfNeeded) parent.scrollTop = el.offsetTop - parent.offsetTop - parent.clientHeight / 2 - parentBorderTopWidth + el.clientHeight / 2;\n if ((overLeft || overRight) && centerIfNeeded) parent.scrollLeft = el.offsetLeft - parent.offsetLeft - parent.clientWidth / 2 - parentBorderLeftWidth + el.clientWidth / 2;\n if ((overTop || overBottom || overLeft || overRight) && !centerIfNeeded) el.scrollIntoView(alignWithTop);\n}\nfunction applyTransform(rect, parsedTransform, transformOrigin) {\n const { scaleX, scaleY, x: translateX, y: translateY } = parsedTransform;\n const x1 = rect.left + translateX + (1 - scaleX) * parseFloat(transformOrigin);\n const y = rect.top + translateY + (1 - scaleY) * parseFloat(transformOrigin.slice(transformOrigin.indexOf(\" \") + 1));\n const w = scaleX ? rect.width * scaleX : rect.width;\n const h = scaleY ? rect.height * scaleY : rect.height;\n return {\n width: w,\n height: h,\n top: y,\n right: x1 + w,\n bottom: y + h,\n left: x1\n };\n}\nfunction inverseTransform(rect, parsedTransform, transformOrigin) {\n const { scaleX, scaleY, x: translateX, y: translateY } = parsedTransform;\n const x1 = rect.left - translateX - (1 - scaleX) * parseFloat(transformOrigin);\n const y = rect.top - translateY - (1 - scaleY) * parseFloat(transformOrigin.slice(transformOrigin.indexOf(\" \") + 1));\n const w = scaleX ? rect.width / scaleX : rect.width;\n const h = scaleY ? rect.height / scaleY : rect.height;\n return {\n width: w,\n height: h,\n top: y,\n right: x1 + w,\n bottom: y + h,\n left: x1\n };\n}\nfunction animateTransform({ element, keyframes, options }) {\n return element.animate(keyframes, options).finished;\n}\nfunction computeTranslate(element, translate = getComputedStyles(element).translate, projected = true) {\n if (projected) {\n const keyframe = getFinalKeyframe(element, (keyframe2)=>\"translate\" in keyframe2);\n if (keyframe) {\n const { translate: translate2 = \"\" } = keyframe[0];\n if (\"string\" == typeof translate2) {\n const finalTranslate = parseTranslate(translate2);\n if (finalTranslate) return finalTranslate;\n }\n }\n }\n if (translate) {\n const finalTranslate = parseTranslate(translate);\n if (finalTranslate) return finalTranslate;\n }\n return {\n x: 0,\n y: 0,\n z: 0\n };\n}\nvar scheduler3 = new Scheduler((callback)=>setTimeout(callback, 0));\nvar animations = /* @__PURE__ */ new Map();\nvar clear2 = animations.clear.bind(animations);\nfunction getDocumentAnimations(element) {\n const document2 = element.ownerDocument;\n let documentAnimations = animations.get(document2);\n if (documentAnimations) return documentAnimations;\n documentAnimations = document2.getAnimations();\n animations.set(document2, documentAnimations);\n scheduler3.schedule(clear2);\n const elementAnimations = documentAnimations.filter((animation)=>isKeyframeEffect(animation.effect) && animation.effect.target === element);\n animations.set(element, elementAnimations);\n return documentAnimations;\n}\nfunction forceFinishAnimations(element, options) {\n const animations2 = getDocumentAnimations(element).filter((animation)=>{\n var _a, _b;\n if (isKeyframeEffect(animation.effect)) {\n const { target } = animation.effect;\n const isValidTarget = null == (_b = target && (null == (_a = options.isValidTarget) ? void 0 : _a.call(options, target))) || _b;\n if (isValidTarget) return animation.effect.getKeyframes().some((keyframe)=>{\n for (const property of options.properties)if (keyframe[property]) return true;\n });\n }\n }).map((animation)=>{\n const { effect, currentTime } = animation;\n const duration = null == effect ? void 0 : effect.getComputedTiming().duration;\n if (animation.pending || \"finished\" === animation.playState) return;\n if (\"number\" == typeof duration && \"number\" == typeof currentTime && currentTime < duration) {\n animation.currentTime = duration;\n return ()=>{\n animation.currentTime = currentTime;\n };\n }\n });\n if (animations2.length > 0) return ()=>animations2.forEach((reset)=>null == reset ? void 0 : reset());\n}\nvar DOMRectangle = class extends Rectangle {\n constructor(element, options = {}){\n var _a, _b, _c, _d;\n const { frameTransform = getFrameTransform(element), ignoreTransforms, getBoundingClientRect = getBoundingRectangle } = options;\n const resetAnimations = forceFinishAnimations(element, {\n properties: [\n \"transform\",\n \"translate\",\n \"scale\",\n \"width\",\n \"height\"\n ],\n isValidTarget: (target)=>(target !== element || isSafari()) && target.contains(element)\n });\n const boundingRectangle = getBoundingClientRect(element);\n let { top, left, width, height } = boundingRectangle;\n let updated;\n const computedStyles = getComputedStyles(element);\n const parsedTransform = parseTransform(computedStyles);\n const scale = {\n x: null != (_a = null == parsedTransform ? void 0 : parsedTransform.scaleX) ? _a : 1,\n y: null != (_b = null == parsedTransform ? void 0 : parsedTransform.scaleY) ? _b : 1\n };\n const projectedTransform = getProjectedTransform(element, computedStyles);\n null == resetAnimations || resetAnimations();\n if (parsedTransform) {\n updated = inverseTransform(boundingRectangle, parsedTransform, computedStyles.transformOrigin);\n if (ignoreTransforms || projectedTransform) {\n top = updated.top;\n left = updated.left;\n width = updated.width;\n height = updated.height;\n }\n }\n const intrinsic = {\n width: null != (_c = null == updated ? void 0 : updated.width) ? _c : width,\n height: null != (_d = null == updated ? void 0 : updated.height) ? _d : height\n };\n if (projectedTransform && !ignoreTransforms && updated) {\n const projected = applyTransform(updated, projectedTransform, computedStyles.transformOrigin);\n top = projected.top;\n left = projected.left;\n width = projected.width;\n height = projected.height;\n scale.x = projectedTransform.scaleX;\n scale.y = projectedTransform.scaleY;\n }\n if (frameTransform) {\n if (!ignoreTransforms) {\n left *= frameTransform.scaleX;\n width *= frameTransform.scaleX;\n top *= frameTransform.scaleY;\n height *= frameTransform.scaleY;\n }\n left += frameTransform.x;\n top += frameTransform.y;\n }\n super(left, top, width, height);\n this.scale = scale;\n this.intrinsicWidth = intrinsic.width;\n this.intrinsicHeight = intrinsic.height;\n }\n};\nfunction getProjectedTransform(element, computedStyles) {\n var _a;\n const animations2 = element.getAnimations();\n let projectedTransform = null;\n if (!animations2.length) return null;\n for (const animation of animations2){\n if (\"running\" !== animation.playState) continue;\n const keyframes = isKeyframeEffect(animation.effect) ? animation.effect.getKeyframes() : [];\n const keyframe = keyframes[keyframes.length - 1];\n if (!keyframe) continue;\n const { transform, translate, scale } = keyframe;\n if (transform || translate || scale) {\n const parsedTransform = parseTransform({\n transform: \"string\" == typeof transform && transform ? transform : computedStyles.transform,\n translate: \"string\" == typeof translate && translate ? translate : computedStyles.translate,\n scale: \"string\" == typeof scale && scale ? scale : computedStyles.scale\n });\n if (parsedTransform) projectedTransform = projectedTransform ? {\n x: projectedTransform.x + parsedTransform.x,\n y: projectedTransform.y + parsedTransform.y,\n z: null != (_a = projectedTransform.z) ? _a : parsedTransform.z,\n scaleX: projectedTransform.scaleX * parsedTransform.scaleX,\n scaleY: projectedTransform.scaleY * parsedTransform.scaleY\n } : parsedTransform;\n }\n }\n return projectedTransform;\n}\nfunction supportsStyle(element) {\n return \"style\" in element && \"object\" == typeof element.style && null !== element.style && \"setProperty\" in element.style && \"removeProperty\" in element.style && \"function\" == typeof element.style.setProperty && \"function\" == typeof element.style.removeProperty;\n}\nvar Styles = class {\n constructor(element){\n this.element = element;\n this.initial = /* @__PURE__ */ new Map();\n }\n set(properties, prefix = \"\") {\n const { element } = this;\n if (!supportsStyle(element)) return;\n for (const [key, value] of Object.entries(properties)){\n const property = `${prefix}${key}`;\n if (!this.initial.has(property)) this.initial.set(property, element.style.getPropertyValue(property));\n element.style.setProperty(property, \"string\" == typeof value ? value : `${value}px`);\n }\n }\n remove(properties, prefix = \"\") {\n const { element } = this;\n if (!supportsStyle(element)) return;\n for (const key of properties){\n const property = `${prefix}${key}`;\n element.style.removeProperty(property);\n }\n }\n reset() {\n const { element } = this;\n if (!supportsStyle(element)) return;\n for (const [key, value] of this.initial)element.style.setProperty(key, value);\n if (\"\" === element.getAttribute(\"style\")) element.removeAttribute(\"style\");\n }\n};\nfunction isElement(target) {\n if (!target) return false;\n return target instanceof getWindow(target).Element || isNode(target) && target.nodeType === Node.ELEMENT_NODE;\n}\nfunction isKeyboardEvent(event) {\n if (!event) return false;\n const { KeyboardEvent: KeyboardEvent1 } = getWindow(event.target);\n return event instanceof KeyboardEvent1;\n}\nfunction isPointerEvent(event) {\n if (!event) return false;\n const { PointerEvent } = getWindow(event.target);\n return event instanceof PointerEvent;\n}\nfunction isTextInput(target) {\n if (!isElement(target)) return false;\n const { tagName } = target;\n return \"INPUT\" === tagName || \"TEXTAREA\" === tagName || isContentEditable(target);\n}\nfunction isContentEditable(element) {\n return element.hasAttribute(\"contenteditable\") && \"false\" !== element.getAttribute(\"contenteditable\");\n}\nvar ids = {};\nfunction generateUniqueId(prefix) {\n const id = null == ids[prefix] ? 0 : ids[prefix] + 1;\n ids[prefix] = id;\n return `${prefix}-${id}`;\n}\nvar pointerIntersection = ({ dragOperation, droppable })=>{\n const pointerCoordinates = dragOperation.position.current;\n if (!pointerCoordinates) return null;\n const { id } = droppable;\n if (!droppable.shape) return null;\n if (droppable.shape.containsPoint(pointerCoordinates)) {\n const distance = Point.distance(droppable.shape.center, pointerCoordinates);\n return {\n id,\n value: 1 / distance,\n type: abstract_CollisionType.PointerIntersection,\n priority: abstract_CollisionPriority.High\n };\n }\n return null;\n};\nvar shapeIntersection = ({ dragOperation, droppable })=>{\n const { shape } = dragOperation;\n if (!droppable.shape || !(null == shape ? void 0 : shape.current)) return null;\n const intersectionArea = shape.current.intersectionArea(droppable.shape);\n if (intersectionArea) {\n const { position } = dragOperation;\n const distance = Point.distance(droppable.shape.center, position.current);\n const intersectionRatio = intersectionArea / (shape.current.area + droppable.shape.area - intersectionArea);\n const value = intersectionRatio / distance;\n return {\n id: droppable.id,\n value,\n type: abstract_CollisionType.ShapeIntersection,\n priority: abstract_CollisionPriority.Normal\n };\n }\n return null;\n};\nvar defaultCollisionDetection = (args)=>{\n var _a;\n return null != (_a = pointerIntersection(args)) ? _a : shapeIntersection(args);\n};\nvar closestCorners = (input)=>{\n const { dragOperation, droppable } = input;\n const { shape, position } = dragOperation;\n if (!droppable.shape) return null;\n const shapeCorners = shape ? Rectangle.from(shape.current.boundingRectangle).corners : void 0;\n const distance = Rectangle.from(droppable.shape.boundingRectangle).corners.reduce((acc, corner, index)=>{\n var _a;\n return acc + Point.distance(Point.from(corner), null != (_a = null == shapeCorners ? void 0 : shapeCorners[index]) ? _a : position.current);\n }, 0);\n const value = distance / 4;\n return {\n id: droppable.id,\n value: 1 / value,\n type: abstract_CollisionType.Collision,\n priority: abstract_CollisionPriority.Normal\n };\n};\nvar dom_create = Object.create;\nvar dom_defProp = Object.defineProperty;\nvar dom_defProps = Object.defineProperties;\nvar dom_getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar dom_getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar dom_getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar dom_hasOwnProp = Object.prototype.hasOwnProperty;\nvar dom_propIsEnum = Object.prototype.propertyIsEnumerable;\nvar dom_knownSymbol = (name, symbol)=>(symbol = Symbol[name]) ? symbol : Symbol.for(\"Symbol.\" + name);\nvar dom_typeError = (msg)=>{\n throw TypeError(msg);\n};\nvar dom_defNormalProp = (obj, key, value)=>key in obj ? dom_defProp(obj, key, {\n enumerable: true,\n configurable: true,\n writable: true,\n value\n }) : obj[key] = value;\nvar dom_spreadValues = (a, b)=>{\n for(var prop in b || (b = {}))if (dom_hasOwnProp.call(b, prop)) dom_defNormalProp(a, prop, b[prop]);\n if (dom_getOwnPropSymbols) {\n for (var prop of dom_getOwnPropSymbols(b))if (dom_propIsEnum.call(b, prop)) dom_defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar dom_spreadProps = (a, b)=>dom_defProps(a, dom_getOwnPropDescs(b));\nvar dom_name = (target, value)=>dom_defProp(target, \"name\", {\n value,\n configurable: true\n });\nvar dom_objRest = (source, exclude)=>{\n var target = {};\n for(var prop in source)if (dom_hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0) target[prop] = source[prop];\n if (null != source && dom_getOwnPropSymbols) {\n for (var prop of dom_getOwnPropSymbols(source))if (exclude.indexOf(prop) < 0 && dom_propIsEnum.call(source, prop)) target[prop] = source[prop];\n }\n return target;\n};\nvar dom_decoratorStart = (base)=>{\n var _a4;\n return [\n ,\n ,\n ,\n dom_create(null != (_a4 = null == base ? void 0 : base[dom_knownSymbol(\"metadata\")]) ? _a4 : null)\n ];\n};\nvar dom_decoratorStrings = [\n \"class\",\n \"method\",\n \"getter\",\n \"setter\",\n \"accessor\",\n \"field\",\n \"value\",\n \"get\",\n \"set\"\n];\nvar dom_expectFn = (fn)=>void 0 !== fn && \"function\" != typeof fn ? dom_typeError(\"Function expected\") : fn;\nvar dom_decoratorContext = (kind, name, done, metadata, fns)=>({\n kind: dom_decoratorStrings[kind],\n name,\n metadata,\n addInitializer: (fn)=>done._ ? dom_typeError(\"Already initialized\") : fns.push(dom_expectFn(fn || null))\n });\nvar dom_decoratorMetadata = (array, target)=>dom_defNormalProp(target, dom_knownSymbol(\"metadata\"), array[3]);\nvar dom_runInitializers = (array, flags, self, value)=>{\n for(var i = 0, fns = array[flags >> 1], n = fns && fns.length; i < n; i++)1 & flags ? fns[i].call(self) : value = fns[i].call(self, value);\n return value;\n};\nvar dom_decorateElement = (array, flags, name, decorators, target, extra)=>{\n var fn, it, done, ctx, access, k = 7 & flags, s = !!(8 & flags), p = !!(16 & flags);\n var j = k > 3 ? array.length + 1 : k ? s ? 1 : 2 : 0, key = dom_decoratorStrings[k + 5];\n var initializers = k > 3 && (array[j - 1] = []), extraInitializers = array[j] || (array[j] = []);\n var desc = k && (p || s || (target = target.prototype), k < 5 && (k > 3 || !p) && dom_getOwnPropDesc(k < 4 ? target : {\n get [name] () {\n return dom_privateGet(this, extra);\n },\n set [name] (x){\n return dom_privateSet(this, extra, x);\n }\n }, name));\n k ? p && k < 4 && dom_name(extra, (k > 2 ? \"set \" : k > 1 ? \"get \" : \"\") + name) : dom_name(target, name);\n for(var i = decorators.length - 1; i >= 0; i--){\n ctx = dom_decoratorContext(k, name, done = {}, array[3], extraInitializers);\n if (k) {\n ctx.static = s, ctx.private = p, access = ctx.access = {\n has: p ? (x1)=>dom_privateIn(target, x1) : (x1)=>name in x1\n };\n if (3 ^ k) access.get = p ? (x1)=>(1 ^ k ? dom_privateGet : dom_privateMethod)(x1, target, 4 ^ k ? extra : desc.get) : (x1)=>x1[name];\n if (k > 2) access.set = p ? (x1, y)=>dom_privateSet(x1, target, y, 4 ^ k ? extra : desc.set) : (x1, y)=>x1[name] = y;\n }\n it = (0, decorators[i])(k ? k < 4 ? p ? extra : desc[key] : k > 4 ? void 0 : {\n get: desc.get,\n set: desc.set\n } : target, ctx), done._ = 1;\n if (4 ^ k || void 0 === it) dom_expectFn(it) && (k > 4 ? initializers.unshift(it) : k ? p ? extra = it : desc[key] = it : target = it);\n else if (\"object\" != typeof it || null === it) dom_typeError(\"Object expected\");\n else dom_expectFn(fn = it.get) && (desc.get = fn), dom_expectFn(fn = it.set) && (desc.set = fn), dom_expectFn(fn = it.init) && initializers.unshift(fn);\n }\n return k || dom_decoratorMetadata(array, target), desc && dom_defProp(target, name, desc), p ? 4 ^ k ? extra : desc : target;\n};\nvar dom_accessCheck = (obj, member, msg)=>member.has(obj) || dom_typeError(\"Cannot \" + msg);\nvar dom_privateIn = (member, obj)=>Object(obj) !== obj ? dom_typeError('Cannot use the \"in\" operator on this value') : member.has(obj);\nvar dom_privateGet = (obj, member, getter)=>(dom_accessCheck(obj, member, \"read from private field\"), getter ? getter.call(obj) : member.get(obj));\nvar dom_privateAdd = (obj, member, value)=>member.has(obj) ? dom_typeError(\"Cannot add the same private member more than once\") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value);\nvar dom_privateSet = (obj, member, value, setter)=>(dom_accessCheck(obj, member, \"write to private field\"), setter ? setter.call(obj, value) : member.set(obj, value), value);\nvar dom_privateMethod = (obj, member, method)=>(dom_accessCheck(obj, member, \"access private method\"), method);\nvar defaultAttributes = {\n role: \"button\",\n roleDescription: \"draggable\"\n};\nvar defaultDescriptionIdPrefix = \"dnd-kit-description\";\nvar defaultAnnouncementIdPrefix = \"dnd-kit-announcement\";\nvar defaultScreenReaderInstructions = {\n draggable: \"To pick up a draggable item, press the space bar. While dragging, use the arrow keys to move the item in a given direction. Press space again to drop the item in its new position, or press escape to cancel.\"\n};\nvar defaultAnnouncements = {\n dragstart ({ operation: { source } }) {\n if (!source) return;\n return `Picked up draggable item ${source.id}.`;\n },\n dragover ({ operation: { source, target } }) {\n if (!source || source.id === (null == target ? void 0 : target.id)) return;\n if (target) return `Draggable item ${source.id} was moved over droppable target ${target.id}.`;\n return `Draggable item ${source.id} is no longer over a droppable target.`;\n },\n dragend ({ operation: { source, target }, canceled }) {\n if (!source) return;\n if (canceled) return `Dragging was cancelled. Draggable item ${source.id} was dropped.`;\n if (target) return `Draggable item ${source.id} was dropped over droppable target ${target.id}`;\n return `Draggable item ${source.id} was dropped.`;\n }\n};\nfunction isFocusable(element) {\n const tagName = element.tagName.toLowerCase();\n return [\n \"input\",\n \"select\",\n \"textarea\",\n \"a\",\n \"button\"\n ].includes(tagName);\n}\nfunction createHiddenText(id, value) {\n const element = document.createElement(\"div\");\n element.id = id;\n element.style.setProperty(\"display\", \"none\");\n element.textContent = value;\n return element;\n}\nfunction createLiveRegion(id) {\n const element = document.createElement(\"div\");\n element.id = id;\n element.setAttribute(\"role\", \"status\");\n element.setAttribute(\"aria-live\", \"polite\");\n element.setAttribute(\"aria-atomic\", \"true\");\n element.style.setProperty(\"position\", \"fixed\");\n element.style.setProperty(\"width\", \"1px\");\n element.style.setProperty(\"height\", \"1px\");\n element.style.setProperty(\"margin\", \"-1px\");\n element.style.setProperty(\"border\", \"0\");\n element.style.setProperty(\"padding\", \"0\");\n element.style.setProperty(\"overflow\", \"hidden\");\n element.style.setProperty(\"clip\", \"rect(0 0 0 0)\");\n element.style.setProperty(\"clip-path\", \"inset(100%)\");\n element.style.setProperty(\"white-space\", \"nowrap\");\n return element;\n}\nvar debouncedEvents = [\n \"dragover\",\n \"dragmove\"\n];\nvar Accessibility = class extends Plugin {\n constructor(manager, options){\n super(manager);\n const { id, idPrefix: { description: descriptionPrefix = defaultDescriptionIdPrefix, announcement: announcementPrefix = defaultAnnouncementIdPrefix } = {}, announcements = defaultAnnouncements, screenReaderInstructions = defaultScreenReaderInstructions, debounce: debounceMs = 500 } = null != options ? options : {};\n const descriptionId = id ? `${descriptionPrefix}-${id}` : generateUniqueId(descriptionPrefix);\n const announcementId = id ? `${announcementPrefix}-${id}` : generateUniqueId(announcementPrefix);\n let hiddenTextElement;\n let liveRegionElement;\n let liveRegionTextNode;\n let latestAnnouncement;\n const updateAnnouncement = (value = latestAnnouncement)=>{\n if (!liveRegionTextNode || !value) return;\n if ((null == liveRegionTextNode ? void 0 : liveRegionTextNode.nodeValue) !== value) liveRegionTextNode.nodeValue = value;\n };\n const scheduleUpdateAnnouncement = ()=>scheduler.schedule(updateAnnouncement);\n const debouncedUpdateAnnouncement = debounce(scheduleUpdateAnnouncement, debounceMs);\n const eventListeners = Object.entries(announcements).map(([eventName, getAnnouncement])=>this.manager.monitor.addEventListener(eventName, (event, manager2)=>{\n const element = liveRegionTextNode;\n if (!element) return;\n const announcement = null == getAnnouncement ? void 0 : getAnnouncement(event, manager2);\n if (announcement && element.nodeValue !== announcement) {\n latestAnnouncement = announcement;\n if (debouncedEvents.includes(eventName)) debouncedUpdateAnnouncement();\n else {\n scheduleUpdateAnnouncement();\n debouncedUpdateAnnouncement.cancel();\n }\n }\n }));\n const initialize = ()=>{\n let elements = [];\n if (!(null == hiddenTextElement ? void 0 : hiddenTextElement.isConnected)) {\n hiddenTextElement = createHiddenText(descriptionId, screenReaderInstructions.draggable);\n elements.push(hiddenTextElement);\n }\n if (!(null == liveRegionElement ? void 0 : liveRegionElement.isConnected)) {\n liveRegionElement = createLiveRegion(announcementId);\n liveRegionTextNode = document.createTextNode(\"\");\n liveRegionElement.appendChild(liveRegionTextNode);\n elements.push(liveRegionElement);\n }\n if (elements.length > 0) document.body.append(...elements);\n };\n const mutations = /* @__PURE__ */ new Set();\n function executeMutations() {\n for (const operation of mutations)operation();\n }\n this.registerEffect(()=>{\n var _a4;\n mutations.clear();\n for (const draggable of this.manager.registry.draggables.value){\n const activator = null != (_a4 = draggable.handle) ? _a4 : draggable.element;\n if (activator) {\n if (!hiddenTextElement || !liveRegionElement) mutations.add(initialize);\n if ((!isFocusable(activator) || isSafari()) && !activator.hasAttribute(\"tabindex\")) mutations.add(()=>activator.setAttribute(\"tabindex\", \"0\"));\n if (!activator.hasAttribute(\"role\") && \"button\" !== activator.tagName.toLowerCase()) mutations.add(()=>activator.setAttribute(\"role\", defaultAttributes.role));\n if (!activator.hasAttribute(\"aria-roledescription\")) mutations.add(()=>activator.setAttribute(\"aria-roledescription\", defaultAttributes.roleDescription));\n if (!activator.hasAttribute(\"aria-describedby\")) mutations.add(()=>activator.setAttribute(\"aria-describedby\", descriptionId));\n for (const key of [\n \"aria-pressed\",\n \"aria-grabbed\"\n ]){\n const value = String(draggable.isDragging);\n if (activator.getAttribute(key) !== value) mutations.add(()=>activator.setAttribute(key, value));\n }\n const disabled = String(draggable.disabled);\n if (activator.getAttribute(\"aria-disabled\") !== disabled) mutations.add(()=>activator.setAttribute(\"aria-disabled\", disabled));\n }\n }\n if (mutations.size > 0) scheduler.schedule(executeMutations);\n });\n this.destroy = ()=>{\n super.destroy();\n null == hiddenTextElement || hiddenTextElement.remove();\n null == liveRegionElement || liveRegionElement.remove();\n eventListeners.forEach((unsubscribe)=>unsubscribe());\n };\n }\n};\nfunction debounce(fn, wait) {\n let timeout;\n const debounced = ()=>{\n clearTimeout(timeout);\n timeout = setTimeout(fn, wait);\n };\n debounced.cancel = ()=>clearTimeout(timeout);\n return debounced;\n}\nvar Cursor = class extends Plugin {\n constructor(manager, options){\n super(manager, options);\n this.manager = manager;\n const doc = computed(()=>{\n var _a4;\n return getDocument(null == (_a4 = this.manager.dragOperation.source) ? void 0 : _a4.element);\n });\n this.destroy = E(()=>{\n var _a4;\n const { dragOperation } = this.manager;\n const { cursor = \"grabbing\", nonce } = null != (_a4 = this.options) ? _a4 : {};\n if (dragOperation.status.initialized) {\n const document2 = doc.value;\n const style = document2.createElement(\"style\");\n if (nonce) style.setAttribute(\"nonce\", nonce);\n style.textContent = `* { cursor: ${cursor} !important; }`;\n document2.head.appendChild(style);\n return ()=>style.remove();\n }\n });\n }\n};\nvar ATTR_PREFIX = \"data-dnd-\";\nvar DROPPING_ATTRIBUTE = `${ATTR_PREFIX}dropping`;\nvar CSS_PREFIX = \"--dnd-\";\nvar ATTRIBUTE = `${ATTR_PREFIX}dragging`;\nvar PLACEHOLDER_ATTRIBUTE = `${ATTR_PREFIX}placeholder`;\nvar IGNORED_ATTRIBUTES = [\n ATTRIBUTE,\n PLACEHOLDER_ATTRIBUTE,\n \"popover\",\n \"aria-pressed\",\n \"aria-grabbing\"\n];\nvar IGNORED_STYLES = [\n \"view-transition-name\"\n];\nvar CSS_RULES = `\n :root [${ATTRIBUTE}] {\n position: fixed !important;\n pointer-events: none !important;\n touch-action: none;\n z-index: calc(infinity);\n will-change: translate;\n top: var(${CSS_PREFIX}top, 0px) !important;\n left: var(${CSS_PREFIX}left, 0px) !important;\n right: unset !important;\n bottom: unset !important;\n width: var(${CSS_PREFIX}width, auto);\n max-width: var(${CSS_PREFIX}width, auto);\n height: var(${CSS_PREFIX}height, auto);\n max-height: var(${CSS_PREFIX}height, auto);\n transition: var(${CSS_PREFIX}transition) !important;\n }\n\n :root [${PLACEHOLDER_ATTRIBUTE}] {\n transition: none;\n }\n\n :root [${PLACEHOLDER_ATTRIBUTE}='hidden'] {\n visibility: hidden;\n }\n\n [${ATTRIBUTE}] * {\n pointer-events: none !important;\n }\n\n [${ATTRIBUTE}]:not([${DROPPING_ATTRIBUTE}]) {\n translate: var(${CSS_PREFIX}translate) !important;\n }\n\n [${ATTRIBUTE}][style*='${CSS_PREFIX}scale'] {\n scale: var(${CSS_PREFIX}scale) !important;\n transform-origin: var(${CSS_PREFIX}transform-origin) !important;\n }\n\n @layer {\n :where([${ATTRIBUTE}][popover]) {\n overflow: visible;\n background: unset;\n border: unset;\n margin: unset;\n padding: unset;\n color: inherit;\n\n &:is(input, button) {\n border: revert;\n background: revert;\n }\n }\n }\n [${ATTRIBUTE}]::backdrop, [${ATTR_PREFIX}overlay]:not([${ATTRIBUTE}]) {\n display: none;\n visibility: hidden;\n }\n`.replace(/\\n+/g, \" \").replace(/\\s+/g, \" \").trim();\nfunction createPlaceholder(source, type = \"hidden\") {\n return signals_core_h(()=>{\n const { element, manager } = source;\n if (!element || !manager) return;\n const containedDroppables = findContainedDroppables(element, manager.registry.droppables);\n const cleanup = [];\n const placeholder = cloneElement(element);\n const { remove } = placeholder;\n proxyDroppableElements(containedDroppables, placeholder, cleanup);\n configurePlaceholder(placeholder, type);\n placeholder.remove = ()=>{\n cleanup.forEach((fn)=>fn());\n remove.call(placeholder);\n };\n return placeholder;\n });\n}\nfunction findContainedDroppables(element, droppables) {\n const containedDroppables = /* @__PURE__ */ new Map();\n for (const droppable of droppables)if (!!droppable.element) {\n if (element === droppable.element || element.contains(droppable.element)) {\n const identifierAttribute = `${ATTR_PREFIX}${generateUniqueId(\"dom-id\")}`;\n droppable.element.setAttribute(identifierAttribute, \"\");\n containedDroppables.set(droppable, identifierAttribute);\n }\n }\n return containedDroppables;\n}\nfunction proxyDroppableElements(containedDroppables, placeholder, cleanup) {\n for (const [droppable, identifierAttribute] of containedDroppables){\n if (!droppable.element) continue;\n const selector = `[${identifierAttribute}]`;\n const clonedElement = placeholder.matches(selector) ? placeholder : placeholder.querySelector(selector);\n droppable.element.removeAttribute(identifierAttribute);\n if (!clonedElement) continue;\n const originalElement = droppable.element;\n droppable.proxy = clonedElement;\n clonedElement.removeAttribute(identifierAttribute);\n ProxiedElements.set(originalElement, clonedElement);\n cleanup.push(()=>{\n ProxiedElements[\"delete\"](originalElement);\n droppable.proxy = void 0;\n });\n }\n}\nfunction configurePlaceholder(placeholder, type = \"hidden\") {\n placeholder.setAttribute(\"inert\", \"true\");\n placeholder.setAttribute(\"tab-index\", \"-1\");\n placeholder.setAttribute(\"aria-hidden\", \"true\");\n placeholder.setAttribute(PLACEHOLDER_ATTRIBUTE, type);\n}\nfunction isSameFrame(element, target) {\n if (element === target) return true;\n return getFrameElement(element) === getFrameElement(target);\n}\nfunction preventPopoverClose(event) {\n const { target } = event;\n if (\"newState\" in event && \"closed\" === event.newState && isElement(target) && target.hasAttribute(\"popover\")) requestAnimationFrame(()=>showPopover(target));\n}\nfunction isTableRow(element) {\n return \"TR\" === element.tagName;\n}\nvar styleSheetRegistry = /* @__PURE__ */ new Map();\nvar _overlay_dec, dom_a, dom_init, _overlay, _Feedback_instances, render_fn, injectStyles_fn;\nvar dom_Feedback = class extends (dom_a = Plugin, _overlay_dec = [\n reactive\n], dom_a) {\n constructor(manager, options){\n super(manager, options);\n dom_privateAdd(this, _Feedback_instances);\n dom_privateAdd(this, _overlay, dom_runInitializers(dom_init, 8, this)), dom_runInitializers(dom_init, 11, this);\n this.state = {\n initial: {},\n current: {}\n };\n this.registerEffect(dom_privateMethod(this, _Feedback_instances, injectStyles_fn));\n this.registerEffect(dom_privateMethod(this, _Feedback_instances, render_fn));\n }\n destroy() {\n super.destroy();\n for (const [doc, registration] of styleSheetRegistry.entries())if (registration.instances.has(this)) {\n registration.instances.delete(this);\n if (0 === registration.instances.size) {\n registration.cleanup();\n styleSheetRegistry.delete(doc);\n }\n }\n }\n};\ndom_init = dom_decoratorStart(dom_a);\n_overlay = new WeakMap();\n_Feedback_instances = new WeakSet();\nrender_fn = function() {\n var _a4, _b2, _c3;\n const { state, manager, options } = this;\n const { dragOperation } = manager;\n const { position, source, status } = dragOperation;\n if (status.idle) {\n state.current = {};\n state.initial = {};\n return;\n }\n if (!source) return;\n const { element, feedback } = source;\n if (!element || \"none\" === feedback || !status.initialized || status.initializing) return;\n const { initial } = state;\n const feedbackElement = null != (_a4 = this.overlay) ? _a4 : element;\n const frameTransform = getFrameTransform(feedbackElement);\n const elementFrameTransform = getFrameTransform(element);\n const crossFrame = !isSameFrame(element, feedbackElement);\n const shape = new DOMRectangle(element, {\n frameTransform: crossFrame ? elementFrameTransform : null,\n ignoreTransforms: !crossFrame\n });\n const scaleDelta = {\n x: elementFrameTransform.scaleX / frameTransform.scaleX,\n y: elementFrameTransform.scaleY / frameTransform.scaleY\n };\n let { width, height, top, left } = shape;\n if (crossFrame) {\n width /= scaleDelta.x;\n height /= scaleDelta.y;\n }\n let elementMutationObserver;\n let documentMutationObserver;\n const styles = new Styles(feedbackElement);\n const { transition, translate, boxSizing, paddingBlockStart, paddingBlockEnd, paddingInlineStart, paddingInlineEnd, borderInlineStartWidth, borderInlineEndWidth, borderBlockStartWidth, borderBlockEndWidth } = getComputedStyles(element);\n const clone = \"clone\" === feedback;\n const contentBox = \"content-box\" === boxSizing;\n const widthOffset = contentBox ? parseInt(paddingInlineStart) + parseInt(paddingInlineEnd) + parseInt(borderInlineStartWidth) + parseInt(borderInlineEndWidth) : 0;\n const heightOffset = contentBox ? parseInt(paddingBlockStart) + parseInt(paddingBlockEnd) + parseInt(borderBlockStartWidth) + parseInt(borderBlockEndWidth) : 0;\n const placeholder = \"move\" === feedback || this.overlay ? null : createPlaceholder(source, clone ? \"clone\" : \"hidden\");\n const isKeyboardOperation = signals_core_h(()=>isKeyboardEvent(manager.dragOperation.activatorEvent));\n if (\"none\" !== translate) {\n const parsedTranslate = parseTranslate(translate);\n if (parsedTranslate && !initial.translate) initial.translate = parsedTranslate;\n }\n if (!initial.transformOrigin) {\n const current = signals_core_h(()=>position.current);\n initial.transformOrigin = {\n x: (current.x - left * frameTransform.scaleX - frameTransform.x) / (width * frameTransform.scaleX),\n y: (current.y - top * frameTransform.scaleY - frameTransform.y) / (height * frameTransform.scaleY)\n };\n }\n const { transformOrigin } = initial;\n const relativeTop = top * frameTransform.scaleY + frameTransform.y;\n const relativeLeft = left * frameTransform.scaleX + frameTransform.x;\n if (!initial.coordinates) {\n initial.coordinates = {\n x: relativeLeft,\n y: relativeTop\n };\n if (1 !== scaleDelta.x || 1 !== scaleDelta.y) {\n const { scaleX, scaleY } = elementFrameTransform;\n const { x: tX2, y: tY2 } = transformOrigin;\n initial.coordinates.x += (width * scaleX - width) * tX2;\n initial.coordinates.y += (height * scaleY - height) * tY2;\n }\n }\n if (!initial.dimensions) initial.dimensions = {\n width,\n height\n };\n if (!initial.frameTransform) initial.frameTransform = frameTransform;\n const coordinatesDelta = {\n x: initial.coordinates.x - relativeLeft,\n y: initial.coordinates.y - relativeTop\n };\n const sizeDelta = {\n width: (initial.dimensions.width * initial.frameTransform.scaleX - width * frameTransform.scaleX) * transformOrigin.x,\n height: (initial.dimensions.height * initial.frameTransform.scaleY - height * frameTransform.scaleY) * transformOrigin.y\n };\n const delta = {\n x: coordinatesDelta.x / frameTransform.scaleX + sizeDelta.width,\n y: coordinatesDelta.y / frameTransform.scaleY + sizeDelta.height\n };\n const projected = {\n left: left + delta.x,\n top: top + delta.y\n };\n feedbackElement.setAttribute(ATTRIBUTE, \"true\");\n const transform = signals_core_h(()=>dragOperation.transform);\n const initialTranslate = null != (_b2 = initial.translate) ? _b2 : {\n x: 0,\n y: 0\n };\n const tX = transform.x * frameTransform.scaleX + initialTranslate.x;\n const tY = transform.y * frameTransform.scaleY + initialTranslate.y;\n const translateString = `${tX}px ${tY}px 0`;\n const transitionString = transition ? `${transition}, translate 0ms linear` : \"\";\n styles.set({\n width: width - widthOffset,\n height: height - heightOffset,\n top: projected.top,\n left: projected.left,\n translate: translateString,\n transition: transitionString,\n scale: crossFrame ? `${scaleDelta.x} ${scaleDelta.y}` : \"\",\n \"transform-origin\": `${100 * transformOrigin.x}% ${100 * transformOrigin.y}%`\n }, CSS_PREFIX);\n if (placeholder) {\n element.insertAdjacentElement(\"afterend\", placeholder);\n if (null == options ? void 0 : options.rootElement) {\n const root = \"function\" == typeof options.rootElement ? options.rootElement(source) : options.rootElement;\n root.appendChild(element);\n }\n }\n if (supportsPopover(feedbackElement)) {\n if (!feedbackElement.hasAttribute(\"popover\")) feedbackElement.setAttribute(\"popover\", \"manual\");\n showPopover(feedbackElement);\n feedbackElement.addEventListener(\"beforetoggle\", preventPopoverClose);\n }\n const resizeObserver = new ResizeObserver(()=>{\n if (!placeholder) return;\n const placeholderShape = new DOMRectangle(placeholder, {\n frameTransform,\n ignoreTransforms: true\n });\n const origin = null != transformOrigin ? transformOrigin : {\n x: 1,\n y: 1\n };\n const dX = (width - placeholderShape.width) * origin.x + delta.x;\n const dY = (height - placeholderShape.height) * origin.y + delta.y;\n styles.set({\n width: placeholderShape.width - widthOffset,\n height: placeholderShape.height - heightOffset,\n top: top + dY,\n left: left + dX\n }, CSS_PREFIX);\n null == elementMutationObserver || elementMutationObserver.takeRecords();\n if (isTableRow(element) && isTableRow(placeholder)) {\n const cells = Array.from(element.cells);\n const placeholderCells = Array.from(placeholder.cells);\n for (const [index, cell] of cells.entries()){\n const placeholderCell = placeholderCells[index];\n cell.style.width = `${placeholderCell.offsetWidth}px`;\n }\n }\n dragOperation.shape = new DOMRectangle(feedbackElement);\n });\n const initialShape = new DOMRectangle(feedbackElement);\n signals_core_h(()=>dragOperation.shape = initialShape);\n const feedbackWindow = getWindow(feedbackElement);\n const handleWindowResize = (event)=>{\n this.manager.actions.stop({\n event\n });\n };\n if (isKeyboardOperation) feedbackWindow.addEventListener(\"resize\", handleWindowResize);\n if (\"idle\" === signals_core_h(()=>source.status)) requestAnimationFrame(()=>source.status = \"dragging\");\n if (placeholder) {\n resizeObserver.observe(placeholder);\n elementMutationObserver = new MutationObserver((mutations)=>{\n let hasChildrenMutations = false;\n for (const mutation of mutations){\n if (mutation.target !== element) {\n hasChildrenMutations = true;\n continue;\n }\n if (\"attributes\" !== mutation.type) continue;\n const attributeName = mutation.attributeName;\n if (attributeName.startsWith(\"aria-\") || IGNORED_ATTRIBUTES.includes(attributeName)) continue;\n const attributeValue = element.getAttribute(attributeName);\n if (\"style\" === attributeName) {\n if (supportsStyle(element) && supportsStyle(placeholder)) {\n const styles2 = element.style;\n for (const key of Array.from(placeholder.style))if (\"\" === styles2.getPropertyValue(key)) placeholder.style.removeProperty(key);\n for (const key of Array.from(styles2)){\n if (IGNORED_STYLES.includes(key) || key.startsWith(CSS_PREFIX)) continue;\n const value = styles2.getPropertyValue(key);\n placeholder.style.setProperty(key, value);\n }\n }\n } else if (null !== attributeValue) placeholder.setAttribute(attributeName, attributeValue);\n else placeholder.removeAttribute(attributeName);\n }\n if (hasChildrenMutations && clone) placeholder.innerHTML = element.innerHTML;\n });\n elementMutationObserver.observe(element, {\n attributes: true,\n subtree: true,\n childList: true\n });\n documentMutationObserver = new MutationObserver((entries)=>{\n for (const entry of entries)if (0 !== entry.addedNodes.length) for (const node of Array.from(entry.addedNodes)){\n if (node.contains(element) && element.nextElementSibling !== placeholder) {\n element.insertAdjacentElement(\"afterend\", placeholder);\n showPopover(feedbackElement);\n return;\n }\n if (node.contains(placeholder) && placeholder.previousElementSibling !== element) {\n placeholder.insertAdjacentElement(\"beforebegin\", element);\n showPopover(feedbackElement);\n return;\n }\n }\n });\n documentMutationObserver.observe(element.ownerDocument.body, {\n childList: true,\n subtree: true\n });\n }\n const id = null == (_c3 = manager.dragOperation.source) ? void 0 : _c3.id;\n const restoreFocus = ()=>{\n var _a5;\n if (!isKeyboardOperation || null == id) return;\n const draggable = manager.registry.draggables.get(id);\n const element2 = null != (_a5 = null == draggable ? void 0 : draggable.handle) ? _a5 : null == draggable ? void 0 : draggable.element;\n if (isHTMLElement(element2)) element2.focus();\n };\n const cleanup = ()=>{\n null == elementMutationObserver || elementMutationObserver.disconnect();\n null == documentMutationObserver || documentMutationObserver.disconnect();\n resizeObserver.disconnect();\n feedbackWindow.removeEventListener(\"resize\", handleWindowResize);\n if (supportsPopover(feedbackElement)) {\n feedbackElement.removeEventListener(\"beforetoggle\", preventPopoverClose);\n feedbackElement.removeAttribute(\"popover\");\n }\n feedbackElement.removeAttribute(ATTRIBUTE);\n styles.reset();\n source.status = \"idle\";\n const moved = null != state.current.translate;\n if (placeholder && (moved || placeholder.parentElement !== feedbackElement.parentElement) && feedbackElement.isConnected) placeholder.replaceWith(feedbackElement);\n null == placeholder || placeholder.remove();\n };\n const cleanupEffects = effects(()=>{\n var _a5;\n const { transform: transform2, status: status2 } = dragOperation;\n if (!transform2.x && !transform2.y && !state.current.translate) return;\n if (status2.dragging) {\n const initialTranslate2 = null != (_a5 = initial.translate) ? _a5 : {\n x: 0,\n y: 0\n };\n const translate2 = {\n x: transform2.x / frameTransform.scaleX + initialTranslate2.x,\n y: transform2.y / frameTransform.scaleY + initialTranslate2.y\n };\n const previousTranslate = state.current.translate;\n const modifiers = signals_core_h(()=>dragOperation.modifiers);\n const currentShape = signals_core_h(()=>{\n var _a6;\n return null == (_a6 = dragOperation.shape) ? void 0 : _a6.current;\n });\n const translateTransition = isKeyboardOperation ? \"250ms cubic-bezier(0.25, 1, 0.5, 1)\" : \"0ms linear\";\n styles.set({\n transition: `${transition}, translate ${translateTransition}`,\n translate: `${translate2.x}px ${translate2.y}px 0`\n }, CSS_PREFIX);\n null == elementMutationObserver || elementMutationObserver.takeRecords();\n if (currentShape && currentShape !== initialShape && previousTranslate && !modifiers.length) {\n const delta2 = Point.delta(translate2, previousTranslate);\n dragOperation.shape = Rectangle.from(currentShape.boundingRectangle).translate(delta2.x * frameTransform.scaleX, delta2.y * frameTransform.scaleY);\n } else dragOperation.shape = new DOMRectangle(feedbackElement);\n state.current.translate = translate2;\n }\n }, function() {\n if (dragOperation.status.dropped) {\n this.dispose();\n source.status = \"dropping\";\n let translate2 = state.current.translate;\n const moved = null != translate2;\n if (!translate2 && element !== feedbackElement) translate2 = {\n x: 0,\n y: 0\n };\n if (!translate2) {\n cleanup();\n return;\n }\n const dropAnimation = ()=>{\n var _a5, _b3;\n {\n showPopover(feedbackElement);\n const [, animation] = null != (_a5 = getFinalKeyframe(feedbackElement, (keyframe)=>\"translate\" in keyframe)) ? _a5 : [];\n null == animation || animation.pause();\n const target = null != placeholder ? placeholder : element;\n const options2 = {\n frameTransform: isSameFrame(feedbackElement, target) ? null : void 0\n };\n const current = new DOMRectangle(feedbackElement, options2);\n const currentTranslate = null != (_b3 = parseTranslate(getComputedStyles(feedbackElement).translate)) ? _b3 : translate2;\n const final = new DOMRectangle(target, options2);\n const delta2 = Rectangle.delta(current, final, source.alignment);\n const finalTranslate = {\n x: currentTranslate.x - delta2.x,\n y: currentTranslate.y - delta2.y\n };\n const heightKeyframes = Math.round(current.intrinsicHeight) !== Math.round(final.intrinsicHeight) ? {\n minHeight: [\n `${current.intrinsicHeight}px`,\n `${final.intrinsicHeight}px`\n ],\n maxHeight: [\n `${current.intrinsicHeight}px`,\n `${final.intrinsicHeight}px`\n ]\n } : {};\n const widthKeyframes = Math.round(current.intrinsicWidth) !== Math.round(final.intrinsicWidth) ? {\n minWidth: [\n `${current.intrinsicWidth}px`,\n `${final.intrinsicWidth}px`\n ],\n maxWidth: [\n `${current.intrinsicWidth}px`,\n `${final.intrinsicWidth}px`\n ]\n } : {};\n styles.set({\n transition\n }, CSS_PREFIX);\n feedbackElement.setAttribute(DROPPING_ATTRIBUTE, \"\");\n null == elementMutationObserver || elementMutationObserver.takeRecords();\n animateTransform({\n element: feedbackElement,\n keyframes: dom_spreadProps(dom_spreadValues(dom_spreadValues({}, heightKeyframes), widthKeyframes), {\n translate: [\n `${currentTranslate.x}px ${currentTranslate.y}px 0`,\n `${finalTranslate.x}px ${finalTranslate.y}px 0`\n ]\n }),\n options: {\n duration: moved || feedbackElement !== element ? 250 : 0,\n easing: \"ease\"\n }\n }).then(()=>{\n feedbackElement.removeAttribute(DROPPING_ATTRIBUTE);\n null == animation || animation.finish();\n cleanup();\n requestAnimationFrame(restoreFocus);\n });\n }\n };\n manager.renderer.rendering.then(dropAnimation);\n }\n });\n return ()=>{\n cleanup();\n cleanupEffects();\n };\n};\ninjectStyles_fn = function() {\n var _a4, _b2, _c3;\n const { status, source, target } = this.manager.dragOperation;\n const { nonce } = null != (_a4 = this.options) ? _a4 : {};\n if (status.initializing) {\n const sourceDocument = getDocument(null != (_b2 = null == source ? void 0 : source.element) ? _b2 : null);\n const targetDocument = getDocument(null != (_c3 = null == target ? void 0 : target.element) ? _c3 : null);\n const documents = /* @__PURE__ */ new Set([\n sourceDocument,\n targetDocument\n ]);\n for (const doc of documents){\n let registration = styleSheetRegistry.get(doc);\n if (!registration) {\n const style = document.createElement(\"style\");\n style.textContent = CSS_RULES;\n if (nonce) style.setAttribute(\"nonce\", nonce);\n doc.head.prepend(style);\n const mutationObserver = new MutationObserver((entries)=>{\n for (const entry of entries)if (\"childList\" === entry.type) {\n const removedNodes = Array.from(entry.removedNodes);\n if (removedNodes.length > 0 && removedNodes.includes(style)) doc.head.prepend(style);\n }\n });\n mutationObserver.observe(doc.head, {\n childList: true\n });\n registration = {\n cleanup: ()=>{\n mutationObserver.disconnect();\n style.remove();\n },\n instances: /* @__PURE__ */ new Set()\n };\n styleSheetRegistry.set(doc, registration);\n }\n registration.instances.add(this);\n }\n }\n};\ndom_decorateElement(dom_init, 4, \"overlay\", _overlay_dec, dom_Feedback, _overlay);\ndom_decoratorMetadata(dom_init, dom_Feedback);\ndom_Feedback.configure = configurator(dom_Feedback);\nvar Feedback = dom_Feedback;\nvar LOCKED = true;\nvar UNLOCKED = false;\nvar _dec, dom_a2, _dec2, dom_b, dom_init2, __b, __a;\ndom_b = (_dec2 = [\n reactive\n], ScrollDirection.Forward), dom_a2 = (_dec = [\n reactive\n], ScrollDirection.Reverse);\nvar ScrollLock = class {\n constructor(){\n dom_privateAdd(this, __b, dom_runInitializers(dom_init2, 8, this, LOCKED)), dom_runInitializers(dom_init2, 11, this);\n dom_privateAdd(this, __a, dom_runInitializers(dom_init2, 12, this, LOCKED)), dom_runInitializers(dom_init2, 15, this);\n }\n isLocked(direction) {\n if (direction === ScrollDirection.Idle) return false;\n if (null == direction) return this[ScrollDirection.Forward] === LOCKED && this[ScrollDirection.Reverse] === LOCKED;\n return this[direction] === LOCKED;\n }\n unlock(direction) {\n if (direction === ScrollDirection.Idle) return;\n this[direction] = UNLOCKED;\n }\n};\ndom_init2 = dom_decoratorStart(null);\n__b = new WeakMap();\n__a = new WeakMap();\ndom_decorateElement(dom_init2, 4, dom_b, _dec2, ScrollLock, __b);\ndom_decorateElement(dom_init2, 4, dom_a2, _dec, ScrollLock, __a);\ndom_decoratorMetadata(dom_init2, ScrollLock);\nvar DIRECTIONS = [\n ScrollDirection.Forward,\n ScrollDirection.Reverse\n];\nvar ScrollIntent = class {\n constructor(){\n this.x = new ScrollLock();\n this.y = new ScrollLock();\n }\n isLocked() {\n return this.x.isLocked() && this.y.isLocked();\n }\n};\nvar ScrollIntentTracker = class extends Plugin {\n constructor(manager){\n super(manager);\n const scrollIntent = signals_core_d(new ScrollIntent());\n let previousDelta = null;\n this.signal = scrollIntent;\n E(()=>{\n const { status } = manager.dragOperation;\n if (!status.initialized) {\n previousDelta = null;\n scrollIntent.value = new ScrollIntent();\n return;\n }\n const { delta } = manager.dragOperation.position;\n if (previousDelta) {\n const directions = {\n x: getDirection(delta.x, previousDelta.x),\n y: getDirection(delta.y, previousDelta.y)\n };\n const intent = scrollIntent.peek();\n signals_core_o(()=>{\n for (const axis of Axes)for (const direction of DIRECTIONS)if (directions[axis] === direction) intent[axis].unlock(direction);\n scrollIntent.value = intent;\n });\n }\n previousDelta = delta;\n });\n }\n get current() {\n return this.signal.peek();\n }\n};\nfunction getDirection(a, b) {\n return Math.sign(a - b);\n}\nvar _autoScrolling_dec, dom_a3, dom_init3, _autoScrolling, _meta, _scroll;\nvar Scroller = class extends (dom_a3 = CorePlugin, _autoScrolling_dec = [\n reactive\n], dom_a3) {\n constructor(manager){\n super(manager);\n dom_privateAdd(this, _autoScrolling, dom_runInitializers(dom_init3, 8, this, false)), dom_runInitializers(dom_init3, 11, this);\n dom_privateAdd(this, _meta);\n dom_privateAdd(this, _scroll, ()=>{\n if (!dom_privateGet(this, _meta)) return;\n const { element, by } = dom_privateGet(this, _meta);\n if (by.y) element.scrollTop += by.y;\n if (by.x) element.scrollLeft += by.x;\n });\n this.scroll = (options)=>{\n var _a4;\n if (this.disabled) return false;\n const elements = this.getScrollableElements();\n if (!elements) {\n dom_privateSet(this, _meta, void 0);\n return false;\n }\n const { position } = this.manager.dragOperation;\n const currentPosition = null == position ? void 0 : position.current;\n if (currentPosition) {\n const { by } = null != options ? options : {};\n const intent = by ? {\n x: getScrollIntent(by.x),\n y: getScrollIntent(by.y)\n } : void 0;\n const scrollIntent = intent ? void 0 : this.scrollIntentTracker.current;\n if (null == scrollIntent ? void 0 : scrollIntent.isLocked()) return false;\n for (const scrollableElement of elements){\n const elementCanScroll = canScroll(scrollableElement, by);\n if (elementCanScroll.x || elementCanScroll.y) {\n const { speed, direction } = detectScrollIntent(scrollableElement, currentPosition, intent);\n if (scrollIntent) {\n for (const axis of Axes)if (scrollIntent[axis].isLocked(direction[axis])) {\n speed[axis] = 0;\n direction[axis] = 0;\n }\n }\n if (direction.x || direction.y) {\n const { x: x1, y } = null != by ? by : direction;\n const scrollLeftBy = x1 * speed.x;\n const scrollTopBy = y * speed.y;\n if (scrollLeftBy || scrollTopBy) {\n const previousScrollBy = null == (_a4 = dom_privateGet(this, _meta)) ? void 0 : _a4.by;\n if (this.autoScrolling && previousScrollBy) {\n const scrollIntentMismatch = previousScrollBy.x && !scrollLeftBy || previousScrollBy.y && !scrollTopBy;\n if (scrollIntentMismatch) continue;\n }\n dom_privateSet(this, _meta, {\n element: scrollableElement,\n by: {\n x: scrollLeftBy,\n y: scrollTopBy\n }\n });\n scheduler.schedule(dom_privateGet(this, _scroll));\n return true;\n }\n }\n }\n }\n }\n dom_privateSet(this, _meta, void 0);\n return false;\n };\n let previousElementFromPoint = null;\n let previousScrollableElements = null;\n const elementFromPoint = computed(()=>{\n const { position, source } = manager.dragOperation;\n if (!position) return null;\n const element = getElementFromPoint(getDocument(null == source ? void 0 : source.element), position.current);\n if (element) previousElementFromPoint = element;\n return null != element ? element : previousElementFromPoint;\n });\n const scrollableElements = computed(()=>{\n const element = elementFromPoint.value;\n const { documentElement } = getDocument(element);\n if (!element || element === documentElement) {\n const { target } = manager.dragOperation;\n const targetElement = null == target ? void 0 : target.element;\n if (targetElement) {\n const elements = getScrollableAncestors(targetElement, {\n excludeElement: false\n });\n previousScrollableElements = elements;\n return elements;\n }\n }\n if (element) {\n const elements = getScrollableAncestors(element, {\n excludeElement: false\n });\n if (this.autoScrolling && previousScrollableElements && elements.size < (null == previousScrollableElements ? void 0 : previousScrollableElements.size)) return previousScrollableElements;\n previousScrollableElements = elements;\n return elements;\n }\n previousScrollableElements = null;\n return null;\n }, dist_deepEqual);\n this.getScrollableElements = ()=>scrollableElements.value;\n this.scrollIntentTracker = new ScrollIntentTracker(manager);\n this.destroy = manager.monitor.addEventListener(\"dragmove\", (event)=>{\n if (this.disabled || event.defaultPrevented || !isKeyboardEvent(manager.dragOperation.activatorEvent) || !event.by) return;\n if (this.scroll({\n by: event.by\n })) event.preventDefault();\n });\n }\n};\ndom_init3 = dom_decoratorStart(dom_a3);\n_autoScrolling = new WeakMap();\n_meta = new WeakMap();\n_scroll = new WeakMap();\ndom_decorateElement(dom_init3, 4, \"autoScrolling\", _autoScrolling_dec, Scroller, _autoScrolling);\ndom_decoratorMetadata(dom_init3, Scroller);\nfunction getScrollIntent(value) {\n if (value > 0) return ScrollDirection.Forward;\n if (value < 0) return ScrollDirection.Reverse;\n return ScrollDirection.Idle;\n}\nvar dom_Scheduler = class {\n constructor(scheduler5){\n this.scheduler = scheduler5;\n this.pending = false;\n this.tasks = /* @__PURE__ */ new Set();\n this.resolvers = /* @__PURE__ */ new Set();\n this.flush = ()=>{\n const { tasks, resolvers } = this;\n this.pending = false;\n this.tasks = /* @__PURE__ */ new Set();\n this.resolvers = /* @__PURE__ */ new Set();\n for (const task of tasks)task();\n for (const resolve of resolvers)resolve();\n };\n }\n schedule(task) {\n this.tasks.add(task);\n if (!this.pending) {\n this.pending = true;\n this.scheduler(this.flush);\n }\n return new Promise((resolve)=>this.resolvers.add(resolve));\n }\n};\nvar dom_scheduler3 = new dom_Scheduler((callback)=>{\n if (\"function\" == typeof requestAnimationFrame) requestAnimationFrame(callback);\n else callback();\n});\nvar AUTOSCROLL_INTERVAL = 10;\nvar AutoScroller = class extends Plugin {\n constructor(manager, _options){\n super(manager);\n const scroller = manager.registry.plugins.get(Scroller);\n if (!scroller) throw new Error(\"AutoScroller plugin depends on Scroller plugin\");\n this.destroy = E(()=>{\n if (this.disabled) return;\n const { position: _, status } = manager.dragOperation;\n if (status.dragging) {\n const canScroll2 = scroller.scroll();\n if (canScroll2) {\n scroller.autoScrolling = true;\n const interval = setInterval(()=>dom_scheduler3.schedule(scroller.scroll), AUTOSCROLL_INTERVAL);\n return ()=>{\n clearInterval(interval);\n };\n }\n scroller.autoScrolling = false;\n }\n });\n }\n};\nvar listenerOptions = {\n capture: true,\n passive: true\n};\nvar _timeout;\nvar ScrollListener = class extends CorePlugin {\n constructor(manager){\n super(manager);\n dom_privateAdd(this, _timeout);\n this.handleScroll = ()=>{\n if (null == dom_privateGet(this, _timeout)) dom_privateSet(this, _timeout, setTimeout(()=>{\n this.manager.collisionObserver.forceUpdate(false);\n dom_privateSet(this, _timeout, void 0);\n }, 50));\n };\n const { dragOperation } = this.manager;\n this.destroy = E(()=>{\n var _a4, _b2, _c3;\n const enabled = dragOperation.status.dragging;\n if (enabled) {\n const root = null != (_c3 = null == (_b2 = null == (_a4 = dragOperation.source) ? void 0 : _a4.element) ? void 0 : _b2.ownerDocument) ? _c3 : document;\n root.addEventListener(\"scroll\", this.handleScroll, listenerOptions);\n return ()=>{\n root.removeEventListener(\"scroll\", this.handleScroll, listenerOptions);\n };\n }\n });\n }\n};\n_timeout = new WeakMap();\nvar PreventSelection = class extends Plugin {\n constructor(manager, options){\n super(manager, options);\n this.manager = manager;\n this.destroy = E(()=>{\n var _a4;\n const { dragOperation } = this.manager;\n const { nonce } = null != (_a4 = this.options) ? _a4 : {};\n if (dragOperation.status.initialized) {\n const style = document.createElement(\"style\");\n if (nonce) style.setAttribute(\"nonce\", nonce);\n style.textContent = \"* { user-select: none !important; -webkit-user-select: none !important; }\";\n document.head.appendChild(style);\n removeSelection();\n document.addEventListener(\"selectionchange\", removeSelection, {\n capture: true\n });\n return ()=>{\n document.removeEventListener(\"selectionchange\", removeSelection, {\n capture: true\n });\n style.remove();\n };\n }\n });\n }\n};\nfunction removeSelection() {\n var _a4;\n null == (_a4 = document.getSelection()) || _a4.removeAllRanges();\n}\nvar defaults = Object.freeze({\n offset: 10,\n keyboardCodes: {\n start: [\n \"Space\",\n \"Enter\"\n ],\n cancel: [\n \"Escape\"\n ],\n end: [\n \"Space\",\n \"Enter\",\n \"Tab\"\n ],\n up: [\n \"ArrowUp\"\n ],\n down: [\n \"ArrowDown\"\n ],\n left: [\n \"ArrowLeft\"\n ],\n right: [\n \"ArrowRight\"\n ]\n },\n shouldActivate (args) {\n var _a4;\n const { event, source } = args;\n const target = null != (_a4 = source.handle) ? _a4 : source.element;\n return event.target === target;\n }\n});\nvar dom_cleanupFunctions;\nvar dom_KeyboardSensor = class extends Sensor {\n constructor(manager, options){\n super(manager);\n this.manager = manager;\n this.options = options;\n dom_privateAdd(this, dom_cleanupFunctions, []);\n this.listeners = new Listeners();\n this.handleSourceKeyDown = (event, source, options)=>{\n if (this.disabled || event.defaultPrevented) return;\n if (!isElement(event.target)) return;\n if (source.disabled) return;\n const { keyboardCodes = defaults.keyboardCodes, shouldActivate = defaults.shouldActivate } = null != options ? options : {};\n if (!keyboardCodes.start.includes(event.code)) return;\n if (!this.manager.dragOperation.status.idle) return;\n if (shouldActivate({\n event,\n source,\n manager: this.manager\n })) this.handleStart(event, source, options);\n };\n }\n bind(source, options = this.options) {\n const unbind = E(()=>{\n var _a4;\n const target = null != (_a4 = source.handle) ? _a4 : source.element;\n const listener = (event)=>{\n if (isKeyboardEvent(event)) this.handleSourceKeyDown(event, source, options);\n };\n if (target) {\n target.addEventListener(\"keydown\", listener);\n return ()=>{\n target.removeEventListener(\"keydown\", listener);\n };\n }\n });\n return unbind;\n }\n handleStart(event, source, options) {\n const { element } = source;\n if (!element) throw new Error(\"Source draggable does not have an associated element\");\n event.preventDefault();\n event.stopImmediatePropagation();\n scrollIntoViewIfNeeded(element);\n const { center } = new DOMRectangle(element);\n const controller = this.manager.actions.start({\n event,\n coordinates: {\n x: center.x,\n y: center.y\n },\n source\n });\n if (controller.signal.aborted) return this.cleanup();\n this.sideEffects();\n const sourceDocument = getDocument(element);\n const listeners = [\n this.listeners.bind(sourceDocument, [\n {\n type: \"keydown\",\n listener: (event2)=>this.handleKeyDown(event2, source, options),\n options: {\n capture: true\n }\n }\n ])\n ];\n dom_privateGet(this, dom_cleanupFunctions).push(...listeners);\n }\n handleKeyDown(event, _source, options) {\n const { keyboardCodes = defaults.keyboardCodes } = null != options ? options : {};\n if (isKeycode(event, [\n ...keyboardCodes.end,\n ...keyboardCodes.cancel\n ])) {\n event.preventDefault();\n const canceled = isKeycode(event, keyboardCodes.cancel);\n this.handleEnd(event, canceled);\n return;\n }\n if (isKeycode(event, keyboardCodes.up)) this.handleMove(\"up\", event);\n else if (isKeycode(event, keyboardCodes.down)) this.handleMove(\"down\", event);\n if (isKeycode(event, keyboardCodes.left)) this.handleMove(\"left\", event);\n else if (isKeycode(event, keyboardCodes.right)) this.handleMove(\"right\", event);\n }\n handleEnd(event, canceled) {\n this.manager.actions.stop({\n event,\n canceled\n });\n this.cleanup();\n }\n handleMove(direction, event) {\n var _a4, _b2;\n const { shape } = this.manager.dragOperation;\n const factor = event.shiftKey ? 5 : 1;\n let by = {\n x: 0,\n y: 0\n };\n let offset = null != (_b2 = null == (_a4 = this.options) ? void 0 : _a4.offset) ? _b2 : defaults.offset;\n if (\"number\" == typeof offset) offset = {\n x: offset,\n y: offset\n };\n if (!shape) return;\n switch(direction){\n case \"up\":\n by = {\n x: 0,\n y: -offset.y * factor\n };\n break;\n case \"down\":\n by = {\n x: 0,\n y: offset.y * factor\n };\n break;\n case \"left\":\n by = {\n x: -offset.x * factor,\n y: 0\n };\n break;\n case \"right\":\n by = {\n x: offset.x * factor,\n y: 0\n };\n break;\n }\n if (by.x || by.y) {\n event.preventDefault();\n this.manager.actions.move({\n event,\n by\n });\n }\n }\n sideEffects() {\n const autoScroller = this.manager.registry.plugins.get(AutoScroller);\n if ((null == autoScroller ? void 0 : autoScroller.disabled) === false) {\n autoScroller.disable();\n dom_privateGet(this, dom_cleanupFunctions).push(()=>{\n autoScroller.enable();\n });\n }\n }\n cleanup() {\n dom_privateGet(this, dom_cleanupFunctions).forEach((cleanup)=>cleanup());\n dom_privateSet(this, dom_cleanupFunctions, []);\n }\n destroy() {\n this.cleanup();\n this.listeners.clear();\n }\n};\ndom_cleanupFunctions = new WeakMap();\ndom_KeyboardSensor.configure = configurator(dom_KeyboardSensor);\ndom_KeyboardSensor.defaults = defaults;\nvar KeyboardSensor = dom_KeyboardSensor;\nfunction isKeycode(event, codes) {\n return codes.includes(event.code);\n}\nvar defaults2 = Object.freeze({\n activationConstraints (event, source) {\n var _a4;\n const { pointerType, target } = event;\n if (\"mouse\" === pointerType && isElement(target) && (source.handle === target || (null == (_a4 = source.handle) ? void 0 : _a4.contains(target)))) return;\n if (\"touch\" === pointerType) return {\n delay: {\n value: 250,\n tolerance: 5\n }\n };\n if (isTextInput(target) && !event.defaultPrevented) return {\n delay: {\n value: 200,\n tolerance: 0\n }\n };\n return {\n delay: {\n value: 200,\n tolerance: 10\n },\n distance: {\n value: 5\n }\n };\n }\n});\nvar _cleanup, _clearTimeout;\nvar dom_PointerSensor = class extends Sensor {\n constructor(manager, options){\n super(manager);\n this.manager = manager;\n this.options = options;\n dom_privateAdd(this, _cleanup, /* @__PURE__ */ new Set());\n dom_privateAdd(this, _clearTimeout);\n this.listeners = new Listeners();\n this.latest = {\n event: void 0,\n coordinates: void 0\n };\n this.handleMove = ()=>{\n const { event, coordinates: to } = this.latest;\n if (!event || !to) return;\n this.manager.actions.move({\n event,\n to\n });\n };\n this.handleCancel = this.handleCancel.bind(this);\n this.handlePointerUp = this.handlePointerUp.bind(this);\n this.handleKeyDown = this.handleKeyDown.bind(this);\n }\n activationConstraints(event, source) {\n var _a4;\n const { activationConstraints = defaults2.activationConstraints } = null != (_a4 = this.options) ? _a4 : {};\n const constraints = \"function\" == typeof activationConstraints ? activationConstraints(event, source) : activationConstraints;\n return constraints;\n }\n bind(source, options = this.options) {\n const unbind = E(()=>{\n var _a4;\n const controller = new AbortController();\n const { signal: signal3 } = controller;\n const listener = (event)=>{\n if (isPointerEvent(event)) this.handlePointerDown(event, source, options);\n };\n let targets = [\n null != (_a4 = source.handle) ? _a4 : source.element\n ];\n if (null == options ? void 0 : options.activatorElements) targets = Array.isArray(options.activatorElements) ? options.activatorElements : options.activatorElements(source);\n for (const target of targets)if (!!target) {\n patchWindow(target.ownerDocument.defaultView);\n target.addEventListener(\"pointerdown\", listener, {\n signal: signal3\n });\n }\n return ()=>controller.abort();\n });\n return unbind;\n }\n handlePointerDown(event, source, options = {}) {\n if (this.disabled || !event.isPrimary || 0 !== event.button || !isElement(event.target) || source.disabled || isCapturedBySensor(event) || !this.manager.dragOperation.status.idle) return;\n const { target } = event;\n const isNativeDraggable = isHTMLElement(target) && target.draggable && \"true\" === target.getAttribute(\"draggable\");\n const offset = getFrameTransform(source.element);\n this.initialCoordinates = {\n x: event.clientX * offset.scaleX + offset.x,\n y: event.clientY * offset.scaleY + offset.y\n };\n const constraints = this.activationConstraints(event, source);\n event.sensor = this;\n if ((null == constraints ? void 0 : constraints.delay) || (null == constraints ? void 0 : constraints.distance)) {\n const { delay } = constraints;\n if (delay) {\n const timeout = setTimeout(()=>this.handleStart(source, event), delay.value);\n dom_privateSet(this, _clearTimeout, ()=>{\n clearTimeout(timeout);\n dom_privateSet(this, _clearTimeout, void 0);\n });\n }\n } else this.handleStart(source, event);\n const ownerDocument = getDocument(event.target);\n const unbindListeners = this.listeners.bind(ownerDocument, [\n {\n type: \"pointermove\",\n listener: (event2)=>this.handlePointerMove(event2, source)\n },\n {\n type: \"pointerup\",\n listener: this.handlePointerUp,\n options: {\n capture: true\n }\n },\n {\n type: \"dragstart\",\n listener: isNativeDraggable ? this.handleCancel : dom_preventDefault,\n options: {\n capture: true\n }\n }\n ]);\n const cleanup = ()=>{\n var _a4;\n unbindListeners();\n null == (_a4 = dom_privateGet(this, _clearTimeout)) || _a4.call(this);\n this.initialCoordinates = void 0;\n };\n dom_privateGet(this, _cleanup).add(cleanup);\n }\n handlePointerMove(event, source) {\n const coordinates = {\n x: event.clientX,\n y: event.clientY\n };\n const offset = getFrameTransform(source.element);\n coordinates.x = coordinates.x * offset.scaleX + offset.x;\n coordinates.y = coordinates.y * offset.scaleY + offset.y;\n if (this.manager.dragOperation.status.dragging) {\n event.preventDefault();\n event.stopPropagation();\n this.latest.event = event;\n this.latest.coordinates = coordinates;\n scheduler.schedule(this.handleMove);\n return;\n }\n if (!this.initialCoordinates) return;\n const delta = {\n x: coordinates.x - this.initialCoordinates.x,\n y: coordinates.y - this.initialCoordinates.y\n };\n const constraints = this.activationConstraints(event, source);\n const { distance, delay } = null != constraints ? constraints : {};\n if (distance) {\n if (null != distance.tolerance && exceedsDistance(delta, distance.tolerance)) return this.handleCancel(event);\n if (exceedsDistance(delta, distance.value)) return this.handleStart(source, event);\n }\n if (delay) {\n if (exceedsDistance(delta, delay.tolerance)) return this.handleCancel(event);\n }\n }\n handlePointerUp(event) {\n const { status } = this.manager.dragOperation;\n if (!status.idle) {\n event.preventDefault();\n event.stopPropagation();\n const canceled = !status.initialized;\n this.manager.actions.stop({\n event,\n canceled\n });\n }\n this.cleanup();\n }\n handleKeyDown(event) {\n if (\"Escape\" === event.key) {\n event.preventDefault();\n this.handleCancel(event);\n }\n }\n handleStart(source, event) {\n var _a4;\n const { manager, initialCoordinates } = this;\n null == (_a4 = dom_privateGet(this, _clearTimeout)) || _a4.call(this);\n if (!initialCoordinates || !manager.dragOperation.status.idle) return;\n if (event.defaultPrevented) return;\n const controller = manager.actions.start({\n coordinates: initialCoordinates,\n event,\n source\n });\n if (controller.signal.aborted) return this.cleanup();\n event.preventDefault();\n const ownerDocument = getDocument(event.target);\n const pointerCaptureTarget = ownerDocument.body;\n pointerCaptureTarget.setPointerCapture(event.pointerId);\n const unbind = this.listeners.bind(ownerDocument, [\n {\n type: \"touchmove\",\n listener: dom_preventDefault,\n options: {\n passive: false\n }\n },\n {\n type: \"click\",\n listener: dom_preventDefault\n },\n {\n type: \"contextmenu\",\n listener: dom_preventDefault\n },\n {\n type: \"keydown\",\n listener: this.handleKeyDown\n },\n {\n type: \"lostpointercapture\",\n listener: (event2)=>{\n if (event2.target !== pointerCaptureTarget) return;\n this.handlePointerUp(event2);\n }\n }\n ]);\n dom_privateGet(this, _cleanup).add(unbind);\n }\n handleCancel(event) {\n const { dragOperation } = this.manager;\n if (dragOperation.status.initialized) this.manager.actions.stop({\n event,\n canceled: true\n });\n this.cleanup();\n }\n cleanup() {\n this.latest = {\n event: void 0,\n coordinates: void 0\n };\n dom_privateGet(this, _cleanup).forEach((cleanup)=>cleanup());\n dom_privateGet(this, _cleanup).clear();\n }\n destroy() {\n this.cleanup();\n this.listeners.clear();\n }\n};\n_cleanup = new WeakMap();\n_clearTimeout = new WeakMap();\ndom_PointerSensor.configure = configurator(dom_PointerSensor);\ndom_PointerSensor.defaults = defaults2;\nvar PointerSensor = dom_PointerSensor;\nfunction isCapturedBySensor(event) {\n return \"sensor\" in event;\n}\nfunction dom_preventDefault(event) {\n event.preventDefault();\n}\nfunction noop() {}\nvar windows = /* @__PURE__ */ new WeakSet();\nfunction patchWindow(window1) {\n if (!window1 || windows.has(window1)) return;\n window1.addEventListener(\"touchmove\", noop, {\n capture: false,\n passive: false\n });\n windows.add(window1);\n}\nvar defaultPreset = {\n modifiers: [],\n plugins: [\n Accessibility,\n AutoScroller,\n Cursor,\n Feedback,\n PreventSelection\n ],\n sensors: [\n PointerSensor,\n KeyboardSensor\n ]\n};\nvar dom_DragDropManager = class extends DragDropManager {\n constructor(input = {}){\n const { plugins = defaultPreset.plugins, sensors = defaultPreset.sensors, modifiers = [] } = input;\n super(dom_spreadProps(dom_spreadValues({}, input), {\n plugins: [\n ScrollListener,\n Scroller,\n ...plugins\n ],\n sensors,\n modifiers\n }));\n }\n};\nvar _feedback_dec, _element_dec, _handle_dec, dom_c, dom_init4, _handle, _element, _feedback;\nvar dom_Draggable = class extends (dom_c = abstract_Draggable, _handle_dec = [\n reactive\n], _element_dec = [\n reactive\n], _feedback_dec = [\n reactive\n], dom_c) {\n constructor(_a4, manager){\n var _b2 = _a4, { element, effects: effects2 = ()=>[], handle, feedback = \"default\" } = _b2, input = dom_objRest(_b2, [\n \"element\",\n \"effects\",\n \"handle\",\n \"feedback\"\n ]);\n super(dom_spreadValues({\n effects: ()=>[\n ...effects2(),\n ()=>{\n var _a5, _b3;\n const { manager: manager2 } = this;\n if (!manager2) return;\n const sensors = null != (_b3 = null == (_a5 = this.sensors) ? void 0 : _a5.map(abstract_descriptor)) ? _b3 : [\n ...manager2.sensors\n ];\n const unbindFunctions = sensors.map((entry)=>{\n const sensorInstance = entry instanceof Sensor ? entry : manager2.registry.register(entry.plugin);\n const options = entry instanceof Sensor ? void 0 : entry.options;\n const unbind = sensorInstance.bind(this, options);\n return unbind;\n });\n return function() {\n unbindFunctions.forEach((unbind)=>unbind());\n };\n }\n ]\n }, input), manager);\n dom_privateAdd(this, _handle, dom_runInitializers(dom_init4, 8, this)), dom_runInitializers(dom_init4, 11, this);\n dom_privateAdd(this, _element, dom_runInitializers(dom_init4, 12, this)), dom_runInitializers(dom_init4, 15, this);\n dom_privateAdd(this, _feedback, dom_runInitializers(dom_init4, 16, this)), dom_runInitializers(dom_init4, 19, this);\n this.element = element;\n this.handle = handle;\n this.feedback = feedback;\n }\n};\ndom_init4 = dom_decoratorStart(dom_c);\n_handle = new WeakMap();\n_element = new WeakMap();\n_feedback = new WeakMap();\ndom_decorateElement(dom_init4, 4, \"handle\", _handle_dec, dom_Draggable, _handle);\ndom_decorateElement(dom_init4, 4, \"element\", _element_dec, dom_Draggable, _element);\ndom_decorateElement(dom_init4, 4, \"feedback\", _feedback_dec, dom_Draggable, _feedback);\ndom_decoratorMetadata(dom_init4, dom_Draggable);\nvar _proxy_dec, _element_dec2, dom_c2, dom_init5, _element2, dom_d, element_get, element_set, _Droppable_instances, _proxy;\nvar dom_Droppable = class extends (dom_c2 = abstract_Droppable, _element_dec2 = [\n reactive\n], _proxy_dec = [\n reactive\n], dom_c2) {\n constructor(_a4, manager){\n var _b2 = _a4, { element, effects: effects2 = ()=>[] } = _b2, input = dom_objRest(_b2, [\n \"element\",\n \"effects\"\n ]);\n const { collisionDetector = defaultCollisionDetection } = input;\n const updateShape = (boundingClientRect)=>{\n const { manager: manager2, element: element2 } = this;\n if (!element2 || null === boundingClientRect) {\n this.shape = void 0;\n return;\n }\n if (!manager2) return;\n const updatedShape = new DOMRectangle(element2);\n const shape = signals_core_h(()=>this.shape);\n if (updatedShape && (null == shape ? void 0 : shape.equals(updatedShape))) return shape;\n this.shape = updatedShape;\n return updatedShape;\n };\n const observePosition = signals_core_d(false);\n super(dom_spreadProps(dom_spreadValues({}, input), {\n collisionDetector,\n effects: ()=>[\n ...effects2(),\n ()=>{\n const { element: element2, manager: manager2 } = this;\n if (!manager2) return;\n const { dragOperation } = manager2;\n const { source } = dragOperation;\n observePosition.value = Boolean(source && dragOperation.status.initialized && element2 && !this.disabled && this.accepts(source));\n },\n ()=>{\n const { element: element2 } = this;\n if (observePosition.value && element2) {\n const positionObserver = new FrameObserver(element2, updateShape);\n return ()=>{\n positionObserver.disconnect();\n this.shape = void 0;\n };\n }\n },\n ()=>{\n var _a5;\n if (null == (_a5 = this.manager) ? void 0 : _a5.dragOperation.status.initialized) return ()=>{\n this.shape = void 0;\n };\n }\n ]\n }), manager);\n dom_privateAdd(this, _Droppable_instances);\n dom_privateAdd(this, _element2, dom_runInitializers(dom_init5, 8, this)), dom_runInitializers(dom_init5, 11, this);\n dom_privateAdd(this, _proxy, dom_runInitializers(dom_init5, 12, this)), dom_runInitializers(dom_init5, 15, this);\n this.element = element;\n this.refreshShape = ()=>updateShape();\n }\n set element(element) {\n dom_privateSet(this, _Droppable_instances, element, element_set);\n }\n get element() {\n var _a4;\n return null != (_a4 = this.proxy) ? _a4 : dom_privateGet(this, _Droppable_instances, element_get);\n }\n};\ndom_init5 = dom_decoratorStart(dom_c2);\n_element2 = new WeakMap();\n_Droppable_instances = new WeakSet();\n_proxy = new WeakMap();\ndom_d = dom_decorateElement(dom_init5, 20, \"#element\", _element_dec2, _Droppable_instances, _element2), element_get = dom_d.get, element_set = dom_d.set;\ndom_decorateElement(dom_init5, 4, \"proxy\", _proxy_dec, dom_Droppable, _proxy);\ndom_decoratorMetadata(dom_init5, dom_Droppable);\nfunction isRef(value) {\n return null != value && \"object\" == typeof value && \"current\" in value;\n}\nfunction utilities_currentValue(value) {\n var _a;\n if (null == value) return;\n if (isRef(value)) return null != (_a = value.current) ? _a : void 0;\n return value;\n}\nvar hooks_canUseDOM = \"undefined\" != typeof window && void 0 !== window.document && void 0 !== window.document.createElement;\nvar useIsomorphicLayoutEffect = hooks_canUseDOM ? __WEBPACK_EXTERNAL_MODULE_react__.useLayoutEffect : __WEBPACK_EXTERNAL_MODULE_react__.useEffect;\nfunction useForceUpdate() {\n const setState = (0, __WEBPACK_EXTERNAL_MODULE_react__.useState)(0)[1];\n return (0, __WEBPACK_EXTERNAL_MODULE_react__.useCallback)(()=>{\n setState((value)=>value + 1);\n }, [\n setState\n ]);\n}\nfunction useSignal(signal, sync = false) {\n const previous = (0, __WEBPACK_EXTERNAL_MODULE_react__.useRef)(signal.peek());\n const read = (0, __WEBPACK_EXTERNAL_MODULE_react__.useRef)(false);\n const forceUpdate = useForceUpdate();\n useIsomorphicLayoutEffect(()=>E(()=>{\n const previousValue = previous.current;\n const currentValue2 = signal.value;\n if (previousValue !== currentValue2) {\n previous.current = currentValue2;\n if (!read.current) return;\n if (sync) (0, __WEBPACK_EXTERNAL_MODULE_react_dom__.flushSync)(forceUpdate);\n else forceUpdate();\n }\n }), [\n signal,\n sync,\n forceUpdate\n ]);\n return {\n get value () {\n read.current = true;\n return signal.peek();\n }\n };\n}\nfunction hooks_useComputed(compute, dependencies = [], sync = false) {\n const $compute = (0, __WEBPACK_EXTERNAL_MODULE_react__.useRef)(compute);\n $compute.current = compute;\n return useSignal((0, __WEBPACK_EXTERNAL_MODULE_react__.useMemo)(()=>computed(()=>$compute.current()), dependencies), sync);\n}\nfunction hooks_useDeepSignal(target, synchronous) {\n const tracked = (0, __WEBPACK_EXTERNAL_MODULE_react__.useRef)(/* @__PURE__ */ new Map());\n const forceUpdate = useForceUpdate();\n useIsomorphicLayoutEffect(()=>{\n if (!target) {\n tracked.current.clear();\n return;\n }\n return E(()=>{\n var _a;\n let stale = false;\n let sync = false;\n for (const entry of tracked.current){\n const [key] = entry;\n const value = signals_core_h(()=>entry[1]);\n const latestValue = target[key];\n if (value !== latestValue) {\n stale = true;\n tracked.current.set(key, latestValue);\n sync = null != (_a = null == synchronous ? void 0 : synchronous(key, value, latestValue)) && _a;\n }\n }\n if (stale) sync ? (0, __WEBPACK_EXTERNAL_MODULE_react_dom__.flushSync)(forceUpdate) : forceUpdate();\n });\n }, [\n target\n ]);\n return (0, __WEBPACK_EXTERNAL_MODULE_react__.useMemo)(()=>target ? new Proxy(target, {\n get (target2, key) {\n const value = target2[key];\n tracked.current.set(key, value);\n return value;\n }\n }) : target, [\n target\n ]);\n}\nfunction useImmediateEffect(callback, _) {\n callback();\n}\nfunction useLatest(value) {\n const valueRef = (0, __WEBPACK_EXTERNAL_MODULE_react__.useRef)(value);\n useIsomorphicLayoutEffect(()=>{\n valueRef.current = value;\n }, [\n value\n ]);\n return valueRef;\n}\nfunction hooks_useOnValueChange(value, onChange, effect3 = __WEBPACK_EXTERNAL_MODULE_react__.useEffect, compare = Object.is) {\n const tracked = (0, __WEBPACK_EXTERNAL_MODULE_react__.useRef)(value);\n effect3(()=>{\n const oldValue = tracked.current;\n if (!compare(value, oldValue)) {\n tracked.current = value;\n onChange(value, oldValue);\n }\n }, [\n onChange,\n value\n ]);\n}\nfunction hooks_useOnElementChange(value, onChange) {\n const previous = (0, __WEBPACK_EXTERNAL_MODULE_react__.useRef)(utilities_currentValue(value));\n useIsomorphicLayoutEffect(()=>{\n const current = utilities_currentValue(value);\n if (current !== previous.current) {\n previous.current = current;\n onChange(current);\n }\n });\n}\nvar react_getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar react_hasOwnProp = Object.prototype.hasOwnProperty;\nvar react_propIsEnum = Object.prototype.propertyIsEnumerable;\nvar react_objRest = (source, exclude)=>{\n var target = {};\n for(var prop in source)if (react_hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0) target[prop] = source[prop];\n if (null != source && react_getOwnPropSymbols) {\n for (var prop of react_getOwnPropSymbols(source))if (exclude.indexOf(prop) < 0 && react_propIsEnum.call(source, prop)) target[prop] = source[prop];\n }\n return target;\n};\nvar defaultManager = new dom_DragDropManager();\nvar DragDropContext = (0, __WEBPACK_EXTERNAL_MODULE_react__.createContext)(defaultManager);\nvar Renderer = (0, __WEBPACK_EXTERNAL_MODULE_react__.memo)((0, __WEBPACK_EXTERNAL_MODULE_react__.forwardRef)(({ children }, ref)=>{\n const [transitionCount, setTransitionCount] = (0, __WEBPACK_EXTERNAL_MODULE_react__.useState)(0);\n const rendering = (0, __WEBPACK_EXTERNAL_MODULE_react__.useRef)(null);\n const resolver = (0, __WEBPACK_EXTERNAL_MODULE_react__.useRef)(null);\n const renderer = (0, __WEBPACK_EXTERNAL_MODULE_react__.useMemo)(()=>({\n renderer: {\n get rendering () {\n var _a2;\n return null != (_a2 = rendering.current) ? _a2 : Promise.resolve();\n }\n },\n trackRendering (callback) {\n if (!rendering.current) rendering.current = new Promise((resolve)=>{\n resolver.current = resolve;\n });\n (0, __WEBPACK_EXTERNAL_MODULE_react__.startTransition)(()=>{\n callback();\n setTransitionCount((count)=>count + 1);\n });\n }\n }), []);\n useIsomorphicLayoutEffect(()=>{\n var _a2;\n null == (_a2 = resolver.current) || _a2.call(resolver);\n rendering.current = null;\n }, [\n children,\n transitionCount\n ]);\n (0, __WEBPACK_EXTERNAL_MODULE_react__.useImperativeHandle)(ref, ()=>renderer);\n return null;\n}));\nvar react_options = [\n void 0,\n dist_deepEqual\n];\nfunction DragDropProvider(_a2) {\n var _b = _a2, { children, onCollision, onBeforeDragStart, onDragStart, onDragMove, onDragOver, onDragEnd } = _b, input = react_objRest(_b, [\n \"children\",\n \"onCollision\",\n \"onBeforeDragStart\",\n \"onDragStart\",\n \"onDragMove\",\n \"onDragOver\",\n \"onDragEnd\"\n ]);\n var _a3;\n const rendererRef = (0, __WEBPACK_EXTERNAL_MODULE_react__.useRef)(null);\n const [manager, setManager] = (0, __WEBPACK_EXTERNAL_MODULE_react__.useState)(null != (_a3 = input.manager) ? _a3 : null);\n const { plugins, modifiers, sensors } = input;\n const handleBeforeDragStart = useLatest(onBeforeDragStart);\n const handleDragStart = useLatest(onDragStart);\n const handleDragOver = useLatest(onDragOver);\n const handleDragMove = useLatest(onDragMove);\n const handleDragEnd = useLatest(onDragEnd);\n const handleCollision = useLatest(onCollision);\n (0, __WEBPACK_EXTERNAL_MODULE_react__.useEffect)(()=>{\n var _a4;\n if (!rendererRef.current) throw new Error(\"Renderer not found\");\n const { renderer, trackRendering } = rendererRef.current;\n const manager2 = null != (_a4 = input.manager) ? _a4 : new dom_DragDropManager(input);\n manager2.renderer = renderer;\n manager2.monitor.addEventListener(\"beforedragstart\", (event)=>{\n const callback = handleBeforeDragStart.current;\n if (callback) trackRendering(()=>callback(event, manager2));\n });\n manager2.monitor.addEventListener(\"dragstart\", (event)=>{\n var _a5;\n return null == (_a5 = handleDragStart.current) ? void 0 : _a5.call(handleDragStart, event, manager2);\n });\n manager2.monitor.addEventListener(\"dragover\", (event)=>{\n const callback = handleDragOver.current;\n if (callback) trackRendering(()=>callback(event, manager2));\n });\n manager2.monitor.addEventListener(\"dragmove\", (event)=>{\n const callback = handleDragMove.current;\n if (callback) trackRendering(()=>callback(event, manager2));\n });\n manager2.monitor.addEventListener(\"dragend\", (event)=>{\n const callback = handleDragEnd.current;\n if (callback) trackRendering(()=>callback(event, manager2));\n });\n manager2.monitor.addEventListener(\"collision\", (event)=>{\n var _a5;\n return null == (_a5 = handleCollision.current) ? void 0 : _a5.call(handleCollision, event, manager2);\n });\n (0, __WEBPACK_EXTERNAL_MODULE_react__.startTransition)(()=>setManager(manager2));\n return manager2.destroy;\n }, [\n input.manager\n ]);\n hooks_useOnValueChange(plugins, ()=>manager && (manager.plugins = null != plugins ? plugins : defaultPreset.plugins), ...react_options);\n hooks_useOnValueChange(sensors, ()=>manager && (manager.sensors = null != sensors ? sensors : defaultPreset.sensors), ...react_options);\n hooks_useOnValueChange(modifiers, ()=>manager && (manager.modifiers = null != modifiers ? modifiers : defaultPreset.modifiers), ...react_options);\n return /* @__PURE__ */ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime__.jsxs)(DragDropContext.Provider, {\n value: manager,\n children: [\n /* @__PURE__ */ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime__.jsx)(Renderer, {\n ref: rendererRef,\n children\n }),\n children\n ]\n });\n}\nfunction useDragDropManager() {\n return (0, __WEBPACK_EXTERNAL_MODULE_react__.useContext)(DragDropContext);\n}\nfunction useInstance(initializer) {\n var _a2;\n const manager = null != (_a2 = useDragDropManager()) ? _a2 : void 0;\n const [instance] = (0, __WEBPACK_EXTERNAL_MODULE_react__.useState)(()=>initializer(manager));\n if (instance.manager !== manager) instance.manager = manager;\n useIsomorphicLayoutEffect(instance.register, [\n manager,\n instance\n ]);\n return instance;\n}\nfunction DragOverlay({ children, className, style, tag, disabled }) {\n var _a2;\n const ref = (0, __WEBPACK_EXTERNAL_MODULE_react__.useRef)(null);\n const manager = useDragDropManager();\n const source = null != (_a2 = hooks_useComputed(()=>null == manager ? void 0 : manager.dragOperation.source, [\n manager\n ]).value) ? _a2 : null;\n const isDisabled = \"function\" == typeof disabled ? disabled(source) : disabled;\n (0, __WEBPACK_EXTERNAL_MODULE_react__.useEffect)(()=>{\n if (!ref.current || !manager || isDisabled) return;\n const feedback = manager.plugins.find((plugin)=>plugin instanceof Feedback);\n if (!feedback) return;\n feedback.overlay = ref.current;\n return ()=>{\n feedback.overlay = void 0;\n };\n }, [\n manager,\n isDisabled\n ]);\n const patchedManager = (0, __WEBPACK_EXTERNAL_MODULE_react__.useMemo)(()=>{\n if (!manager) return null;\n const patchedRegistry = new Proxy(manager.registry, {\n get (target, property) {\n if (\"register\" === property || \"unregister\" === property) return react_noop;\n return target[property];\n }\n });\n return new Proxy(manager, {\n get (target, property) {\n if (\"registry\" === property) return patchedRegistry;\n return target[property];\n }\n });\n }, [\n manager\n ]);\n return /* @__PURE__ */ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime__.jsx)(DragDropContext.Provider, {\n value: patchedManager,\n children: (0, __WEBPACK_EXTERNAL_MODULE_react__.createElement)(tag || \"div\", {\n ref,\n className,\n style,\n \"data-dnd-overlay\": true\n }, renderChildren())\n });\n function renderChildren() {\n if (!source || isDisabled) return null;\n if (\"function\" == typeof children) return /* @__PURE__ */ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime__.jsx)(Children, {\n source,\n children\n });\n return children;\n }\n}\nfunction react_noop() {\n return ()=>{};\n}\nfunction Children({ children, source }) {\n return children(hooks_useDeepSignal(source));\n}\nvar react_create = Object.create;\nvar __defProp2 = Object.defineProperty;\nvar react_getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar react_knownSymbol = (name, symbol)=>(symbol = Symbol[name]) ? symbol : Symbol.for(\"Symbol.\" + name);\nvar react_typeError = (msg)=>{\n throw TypeError(msg);\n};\nvar __defNormalProp2 = (obj, key, value)=>key in obj ? __defProp2(obj, key, {\n enumerable: true,\n configurable: true,\n writable: true,\n value\n }) : obj[key] = value;\nvar react_decoratorStart = (base)=>{\n var _a2;\n return [\n ,\n ,\n ,\n react_create(null != (_a2 = null == base ? void 0 : base[react_knownSymbol(\"metadata\")]) ? _a2 : null)\n ];\n};\nvar react_decoratorStrings = [\n \"class\",\n \"method\",\n \"getter\",\n \"setter\",\n \"accessor\",\n \"field\",\n \"value\",\n \"get\",\n \"set\"\n];\nvar react_expectFn = (fn)=>void 0 !== fn && \"function\" != typeof fn ? react_typeError(\"Function expected\") : fn;\nvar react_decoratorContext = (kind, name, done, metadata, fns)=>({\n kind: react_decoratorStrings[kind],\n name,\n metadata,\n addInitializer: (fn)=>done._ ? react_typeError(\"Already initialized\") : fns.push(react_expectFn(fn || null))\n });\nvar react_decoratorMetadata = (array, target)=>__defNormalProp2(target, react_knownSymbol(\"metadata\"), array[3]);\nvar react_runInitializers = (array, flags, self, value)=>{\n for(var i = 0, fns = array[flags >> 1], n = fns && fns.length; i < n; i++)fns[i].call(self);\n return value;\n};\nvar react_decorateElement = (array, flags, name, decorators, target, extra)=>{\n var it, done, ctx, access, k = 7 & flags, s = false, p = false;\n var j = 2, key = react_decoratorStrings[k + 5];\n var extraInitializers = array[j] || (array[j] = []);\n var desc = (target = target.prototype, react_getOwnPropDesc(target, name));\n for(var i = decorators.length - 1; i >= 0; i--){\n ctx = react_decoratorContext(k, name, done = {}, array[3], extraInitializers);\n ctx.static = s, ctx.private = p, access = ctx.access = {\n has: (x1)=>name in x1\n };\n access.get = (x1)=>x1[name];\n it = (0, decorators[i])(desc[key], ctx), done._ = 1;\n react_expectFn(it) && (desc[key] = it);\n }\n return desc && __defProp2(target, name, desc), target;\n};\nvar react_accessCheck = (obj, member, msg)=>member.has(obj) || react_typeError(\"Cannot \" + msg);\nvar react_privateGet = (obj, member, getter)=>(react_accessCheck(obj, member, \"read from private field\"), member.get(obj));\nvar react_privateAdd = (obj, member, value)=>member.has(obj) ? react_typeError(\"Cannot add the same private member more than once\") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value);\nvar react_privateSet = (obj, member, value, setter)=>(react_accessCheck(obj, member, \"write to private field\"), member.set(obj, value), value);\nvar react_Point = class _Point {\n constructor(x1, y){\n this.x = x1;\n this.y = y;\n }\n static delta(a, b) {\n return new _Point(a.x - b.x, a.y - b.y);\n }\n static distance(a, b) {\n return Math.hypot(a.x - b.x, a.y - b.y);\n }\n static equals(a, b) {\n return a.x === b.x && a.y === b.y;\n }\n static from({ x: x1, y }) {\n return new _Point(x1, y);\n }\n};\nvar react_direction_dec;\nvar react_delta_dec;\nvar react_a;\nvar react_timestamp;\nvar react_init;\nvar react_Position = class extends (react_a = ValueHistory, react_delta_dec = [\n derived\n], react_direction_dec = [\n derived\n], react_a) {\n constructor(initialValue){\n const point = react_Point.from(initialValue);\n super(point, (a, b)=>react_Point.equals(a, b));\n react_runInitializers(react_init, 5, this);\n react_privateAdd(this, react_timestamp, 0);\n this.velocity = {\n x: 0,\n y: 0\n };\n }\n get delta() {\n return react_Point.delta(this.current, this.initial);\n }\n get direction() {\n const { current, previous } = this;\n if (!previous) return null;\n const delta = {\n x: current.x - previous.x,\n y: current.y - previous.y\n };\n if (!delta.x && !delta.y) return null;\n if (Math.abs(delta.x) > Math.abs(delta.y)) return delta.x > 0 ? \"right\" : \"left\";\n return delta.y > 0 ? \"down\" : \"up\";\n }\n get current() {\n return super.current;\n }\n set current(coordinates) {\n const { current } = this;\n const point = react_Point.from(coordinates);\n const delta = {\n x: point.x - current.x,\n y: point.y - current.y\n };\n const timestamp = Date.now();\n const timeDelta = timestamp - react_privateGet(this, react_timestamp);\n const velocity = (delta2)=>Math.round(delta2 / timeDelta * 100);\n signals_core_o(()=>{\n react_privateSet(this, react_timestamp, timestamp);\n this.velocity = {\n x: velocity(delta.x),\n y: velocity(delta.y)\n };\n super.current = point;\n });\n }\n reset(coordinates = this.defaultValue) {\n super.reset(react_Point.from(coordinates));\n this.velocity = {\n x: 0,\n y: 0\n };\n }\n};\nreact_init = react_decoratorStart(react_a);\nreact_timestamp = /* @__PURE__ */ new WeakMap();\nreact_decorateElement(react_init, 2, \"delta\", react_delta_dec, react_Position);\nreact_decorateElement(react_init, 2, \"direction\", react_direction_dec, react_Position);\nreact_decoratorMetadata(react_init, react_Position);\nvar react_Axis = /* @__PURE__ */ ((Axis2)=>{\n Axis2[\"Horizontal\"] = \"x\";\n Axis2[\"Vertical\"] = \"y\";\n return Axis2;\n})(react_Axis || {});\nObject.values(react_Axis);\nvar sortable_create = Object.create;\nvar sortable_defProp = Object.defineProperty;\nvar sortable_defProps = Object.defineProperties;\nvar sortable_getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar sortable_getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar sortable_getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar sortable_hasOwnProp = Object.prototype.hasOwnProperty;\nvar sortable_propIsEnum = Object.prototype.propertyIsEnumerable;\nvar sortable_knownSymbol = (name, symbol)=>(symbol = Symbol[name]) ? symbol : Symbol.for(\"Symbol.\" + name);\nvar sortable_typeError = (msg)=>{\n throw TypeError(msg);\n};\nvar sortable_defNormalProp = (obj, key, value)=>key in obj ? sortable_defProp(obj, key, {\n enumerable: true,\n configurable: true,\n writable: true,\n value\n }) : obj[key] = value;\nvar sortable_spreadValues = (a, b)=>{\n for(var prop in b || (b = {}))if (sortable_hasOwnProp.call(b, prop)) sortable_defNormalProp(a, prop, b[prop]);\n if (sortable_getOwnPropSymbols) {\n for (var prop of sortable_getOwnPropSymbols(b))if (sortable_propIsEnum.call(b, prop)) sortable_defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar sortable_spreadProps = (a, b)=>sortable_defProps(a, sortable_getOwnPropDescs(b));\nvar sortable_objRest = (source, exclude)=>{\n var target = {};\n for(var prop in source)if (sortable_hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0) target[prop] = source[prop];\n if (null != source && sortable_getOwnPropSymbols) {\n for (var prop of sortable_getOwnPropSymbols(source))if (exclude.indexOf(prop) < 0 && sortable_propIsEnum.call(source, prop)) target[prop] = source[prop];\n }\n return target;\n};\nvar sortable_decoratorStart = (base)=>{\n var _a;\n return [\n ,\n ,\n ,\n sortable_create(null)\n ];\n};\nvar sortable_decoratorStrings = [\n \"class\",\n \"method\",\n \"getter\",\n \"setter\",\n \"accessor\",\n \"field\",\n \"value\",\n \"get\",\n \"set\"\n];\nvar sortable_expectFn = (fn)=>void 0 !== fn && \"function\" != typeof fn ? sortable_typeError(\"Function expected\") : fn;\nvar sortable_decoratorContext = (kind, name, done, metadata, fns)=>({\n kind: sortable_decoratorStrings[kind],\n name,\n metadata,\n addInitializer: (fn)=>done._ ? sortable_typeError(\"Already initialized\") : fns.push(sortable_expectFn(fn || null))\n });\nvar sortable_decoratorMetadata = (array, target)=>sortable_defNormalProp(target, sortable_knownSymbol(\"metadata\"), array[3]);\nvar sortable_runInitializers = (array, flags, self, value)=>{\n for(var i = 0, fns = array[flags >> 1], n = fns && fns.length; i < n; i++)1 & flags ? fns[i].call(self) : value = fns[i].call(self, value);\n return value;\n};\nvar sortable_decorateElement = (array, flags, name, decorators, target, extra)=>{\n var fn, it, done, ctx, access, k = 7 & flags, s = false, p = false;\n var j = array.length + 1, key = sortable_decoratorStrings[k + 5];\n var initializers = array[j - 1] = [], extraInitializers = array[j] || (array[j] = []);\n var desc = (target = target.prototype, sortable_getOwnPropDesc({\n get [name] () {\n return sortable_privateGet(this, extra);\n },\n set [name] (x){\n return sortable_privateSet(this, extra, x);\n }\n }, name));\n for(var i = decorators.length - 1; i >= 0; i--){\n ctx = sortable_decoratorContext(k, name, done = {}, array[3], extraInitializers);\n ctx.static = s, ctx.private = p, access = ctx.access = {\n has: (x1)=>name in x1\n };\n access.get = (x1)=>x1[name];\n access.set = (x1, y)=>x1[name] = y;\n it = (0, decorators[i])({\n get: desc.get,\n set: desc.set\n }, ctx), done._ = 1;\n if (void 0 === it) sortable_expectFn(it) && (desc[key] = it);\n else if (\"object\" != typeof it || null === it) sortable_typeError(\"Object expected\");\n else sortable_expectFn(fn = it.get) && (desc.get = fn), sortable_expectFn(fn = it.set) && (desc.set = fn), sortable_expectFn(fn = it.init) && initializers.unshift(fn);\n }\n return desc && sortable_defProp(target, name, desc), target;\n};\nvar sortable_accessCheck = (obj, member, msg)=>member.has(obj) || sortable_typeError(\"Cannot \" + msg);\nvar sortable_privateGet = (obj, member, getter)=>(sortable_accessCheck(obj, member, \"read from private field\"), member.get(obj));\nvar sortable_privateAdd = (obj, member, value)=>member.has(obj) ? sortable_typeError(\"Cannot add the same private member more than once\") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value);\nvar sortable_privateSet = (obj, member, value, setter)=>(sortable_accessCheck(obj, member, \"write to private field\"), member.set(obj, value), value);\nfunction isSortable(element) {\n return element instanceof SortableDroppable || element instanceof SortableDraggable;\n}\nvar TOLERANCE = 10;\nvar SortableKeyboardPlugin = class extends Plugin {\n constructor(manager){\n super(manager);\n const cleanupEffect = E(()=>{\n const { dragOperation } = manager;\n if (!isKeyboardEvent(dragOperation.activatorEvent)) return;\n if (!isSortable(dragOperation.source)) return;\n if (dragOperation.status.initialized) {\n const scroller = manager.registry.plugins.get(Scroller);\n if (scroller) {\n scroller.disable();\n return ()=>scroller.enable();\n }\n }\n });\n const unsubscribe = manager.monitor.addEventListener(\"dragmove\", (event, manager2)=>{\n queueMicrotask(()=>{\n if (this.disabled || event.defaultPrevented || !event.nativeEvent) return;\n const { dragOperation } = manager2;\n if (!isKeyboardEvent(event.nativeEvent)) return;\n if (!isSortable(dragOperation.source)) return;\n if (!dragOperation.shape) return;\n const { actions, collisionObserver, registry } = manager2;\n const { by } = event;\n if (!by) return;\n const direction = sortable_getDirection(by);\n const { source, target } = dragOperation;\n const { center } = dragOperation.shape.current;\n const potentialTargets = [];\n const cleanup = [];\n signals_core_o(()=>{\n for (const droppable of registry.droppables){\n const { id: id2 } = droppable;\n if (!droppable.accepts(source) || id2 === (null == target ? void 0 : target.id) && isSortable(droppable) || !droppable.element) continue;\n let previousShape = droppable.shape;\n const shape = new DOMRectangle(droppable.element, {\n getBoundingClientRect: (element)=>getVisibleBoundingRectangle(element, void 0, 0.2)\n });\n if (!!shape.height && !!shape.width) {\n if (\"down\" == direction && center.y + TOLERANCE < shape.center.y || \"up\" == direction && center.y - TOLERANCE > shape.center.y || \"left\" == direction && center.x - TOLERANCE > shape.center.x || \"right\" == direction && center.x + TOLERANCE < shape.center.x) {\n potentialTargets.push(droppable);\n droppable.shape = shape;\n cleanup.push(()=>droppable.shape = previousShape);\n }\n }\n }\n });\n event.preventDefault();\n collisionObserver.disable();\n const collisions = collisionObserver.computeCollisions(potentialTargets, closestCorners);\n signals_core_o(()=>cleanup.forEach((clean)=>clean()));\n const [firstCollision] = collisions;\n if (!firstCollision) return;\n const { id } = firstCollision;\n const { index, group } = source.sortable;\n actions.setDropTarget(id).then(()=>{\n const { source: source2, target: target2, shape } = dragOperation;\n if (!source2 || !isSortable(source2) || !shape) return;\n const { index: newIndex, group: newGroup, target: targetElement } = source2.sortable;\n const updated = index !== newIndex || group !== newGroup;\n const element = updated ? targetElement : null == target2 ? void 0 : target2.element;\n if (!element) return;\n scrollIntoViewIfNeeded(element);\n const updatedShape = new DOMRectangle(element);\n if (!updatedShape) return;\n const delta = Rectangle.delta(updatedShape, Rectangle.from(shape.current.boundingRectangle), source2.alignment);\n actions.move({\n by: delta\n });\n if (updated) actions.setDropTarget(source2.id).then(()=>collisionObserver.enable());\n else collisionObserver.enable();\n });\n });\n });\n this.destroy = ()=>{\n unsubscribe();\n cleanupEffect();\n };\n }\n};\nfunction sortable_getDirection(delta) {\n const { x: x1, y } = delta;\n if (x1 > 0) return \"right\";\n if (x1 < 0) return \"left\";\n if (y > 0) return \"down\";\n else if (y < 0) return \"up\";\n}\nvar sortable_defProp2 = Object.defineProperty;\nvar __defProps2 = Object.defineProperties;\nvar __getOwnPropDescs2 = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols2 = Object.getOwnPropertySymbols;\nvar __hasOwnProp2 = Object.prototype.hasOwnProperty;\nvar __propIsEnum2 = Object.prototype.propertyIsEnumerable;\nvar sortable_defNormalProp2 = (obj, key, value)=>key in obj ? sortable_defProp2(obj, key, {\n enumerable: true,\n configurable: true,\n writable: true,\n value\n }) : obj[key] = value;\nvar __spreadValues2 = (a, b)=>{\n for(var prop in b || (b = {}))if (__hasOwnProp2.call(b, prop)) sortable_defNormalProp2(a, prop, b[prop]);\n if (__getOwnPropSymbols2) {\n for (var prop of __getOwnPropSymbols2(b))if (__propIsEnum2.call(b, prop)) sortable_defNormalProp2(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps2 = (a, b)=>__defProps2(a, __getOwnPropDescs2(b));\nfunction arrayMove(array, from, to) {\n if (from === to) return array;\n const newArray = array.slice();\n newArray.splice(to, 0, newArray.splice(from, 1)[0]);\n return newArray;\n}\nfunction mutate(items, event, mutation) {\n var _a, _b;\n const { source, target, canceled } = event.operation;\n if (!source || !target || canceled) {\n if (\"preventDefault\" in event) event.preventDefault();\n return items;\n }\n const findIndex = (item, id)=>item === id || \"object\" == typeof item && \"id\" in item && item.id === id;\n if (Array.isArray(items)) {\n const sourceIndex2 = items.findIndex((item)=>findIndex(item, source.id));\n const targetIndex2 = items.findIndex((item)=>findIndex(item, target.id));\n if (-1 === sourceIndex2 || -1 === targetIndex2) return items;\n if (!canceled && \"index\" in source && \"number\" == typeof source.index) {\n const projectedSourceIndex = source.index;\n if (projectedSourceIndex !== sourceIndex2) return mutation(items, sourceIndex2, projectedSourceIndex);\n }\n return mutation(items, sourceIndex2, targetIndex2);\n }\n const entries = Object.entries(items);\n let sourceIndex = -1;\n let sourceParent;\n let targetIndex = -1;\n let targetParent;\n for (const [id, children] of entries){\n if (-1 === sourceIndex) {\n sourceIndex = children.findIndex((item)=>findIndex(item, source.id));\n if (-1 !== sourceIndex) sourceParent = id;\n }\n if (-1 === targetIndex) {\n targetIndex = children.findIndex((item)=>findIndex(item, target.id));\n if (-1 !== targetIndex) targetParent = id;\n }\n if (-1 !== sourceIndex && -1 !== targetIndex) break;\n }\n if (!source.manager) return items;\n const { dragOperation } = source.manager;\n const position = null != (_b = null == (_a = dragOperation.shape) ? void 0 : _a.current.center) ? _b : dragOperation.position.current;\n if (null == targetParent) {\n if (target.id in items) {\n const insertionIndex = target.shape && position.y > target.shape.center.y ? items[target.id].length : 0;\n targetParent = target.id;\n targetIndex = insertionIndex;\n }\n }\n if (null == sourceParent || null == targetParent || sourceParent === targetParent && sourceIndex === targetIndex) {\n if (\"preventDefault\" in event) event.preventDefault();\n return items;\n }\n if (sourceParent === targetParent) return __spreadProps2(__spreadValues2({}, items), {\n [sourceParent]: mutation(items[sourceParent], sourceIndex, targetIndex)\n });\n const isBelowTarget = target.shape && Math.round(position.y) > Math.round(target.shape.center.y);\n const modifier = isBelowTarget ? 1 : 0;\n const sourceItem = items[sourceParent][sourceIndex];\n return __spreadProps2(__spreadValues2({}, items), {\n [sourceParent]: [\n ...items[sourceParent].slice(0, sourceIndex),\n ...items[sourceParent].slice(sourceIndex + 1)\n ],\n [targetParent]: [\n ...items[targetParent].slice(0, targetIndex + modifier),\n sourceItem,\n ...items[targetParent].slice(targetIndex + modifier)\n ]\n });\n}\nfunction move(items, event) {\n return mutate(items, event, arrayMove);\n}\nvar defaultGroup = \"__default__\";\nvar OptimisticSortingPlugin = class extends Plugin {\n constructor(manager){\n super(manager);\n const getSortableInstances = ()=>{\n const sortableInstances = /* @__PURE__ */ new Map();\n for (const droppable of manager.registry.droppables)if (droppable instanceof SortableDroppable) {\n const { sortable } = droppable;\n const { group } = sortable;\n let instances = sortableInstances.get(group);\n if (!instances) {\n instances = /* @__PURE__ */ new Set();\n sortableInstances.set(group, instances);\n }\n instances.add(sortable);\n }\n for (const [group, instances] of sortableInstances)sortableInstances.set(group, new Set(sortable_sort(instances)));\n return sortableInstances;\n };\n const unsubscribe = [\n manager.monitor.addEventListener(\"dragover\", (event, manager2)=>{\n if (this.disabled) return;\n const { dragOperation } = manager2;\n const { source, target } = dragOperation;\n if (!isSortable(source) || !isSortable(target)) return;\n if (source.sortable === target.sortable) return;\n const instances = getSortableInstances();\n const sameGroup = source.sortable.group === target.sortable.group;\n const sourceInstances = instances.get(source.sortable.group);\n const targetInstances = sameGroup ? sourceInstances : instances.get(target.sortable.group);\n if (!sourceInstances || !targetInstances) return;\n queueMicrotask(()=>{\n if (event.defaultPrevented) return;\n manager2.renderer.rendering.then(()=>{\n var _a, _b, _c;\n const newInstances = getSortableInstances();\n for (const [group, sortableInstances] of instances.entries()){\n const entries = Array.from(sortableInstances).entries();\n for (const [index, sortable] of entries)if (sortable.index !== index || sortable.group !== group || !(null == (_a = newInstances.get(group)) ? void 0 : _a.has(sortable))) return;\n }\n const sourceElement = source.sortable.element;\n const targetElement = target.sortable.element;\n if (!targetElement || !sourceElement) return;\n if (!sameGroup && target.id === source.sortable.group) return;\n const orderedSourceSortables = sortable_sort(sourceInstances);\n const orderedTargetSortables = sameGroup ? orderedSourceSortables : sortable_sort(targetInstances);\n const sourceGroup = null != (_b = source.sortable.group) ? _b : defaultGroup;\n const targetGroup = null != (_c = target.sortable.group) ? _c : defaultGroup;\n const state = {\n [sourceGroup]: orderedSourceSortables,\n [targetGroup]: orderedTargetSortables\n };\n const newState = move(state, event);\n if (state === newState) return;\n const sourceIndex = newState[targetGroup].indexOf(source.sortable);\n const targetIndex = newState[targetGroup].indexOf(target.sortable);\n manager2.collisionObserver.disable();\n reorder(sourceElement, sourceIndex, targetElement, targetIndex);\n signals_core_o(()=>{\n for (const [index, sortable] of newState[sourceGroup].entries())sortable.index = index;\n if (!sameGroup) for (const [index, sortable] of newState[targetGroup].entries()){\n sortable.group = target.sortable.group;\n sortable.index = index;\n }\n });\n manager2.actions.setDropTarget(source.id).then(()=>manager2.collisionObserver.enable());\n });\n });\n }),\n manager.monitor.addEventListener(\"dragend\", (event, manager2)=>{\n if (!event.canceled) return;\n const { dragOperation } = manager2;\n const { source } = dragOperation;\n if (!isSortable(source)) return;\n if (source.sortable.initialIndex === source.sortable.index && source.sortable.initialGroup === source.sortable.group) return;\n queueMicrotask(()=>{\n const instances = getSortableInstances();\n const initialGroupInstances = instances.get(source.sortable.initialGroup);\n if (!initialGroupInstances) return;\n manager2.renderer.rendering.then(()=>{\n for (const [group, sortableInstances] of instances.entries()){\n const entries = Array.from(sortableInstances).entries();\n for (const [index, sortable] of entries)if (sortable.index !== index || sortable.group !== group) return;\n }\n const initialGroup = sortable_sort(initialGroupInstances);\n const sourceElement = source.sortable.element;\n const target = initialGroup[source.sortable.initialIndex];\n const targetElement = null == target ? void 0 : target.element;\n if (!target || !targetElement || !sourceElement) return;\n reorder(sourceElement, target.index, targetElement, source.index);\n signals_core_o(()=>{\n for (const [_, sortableInstances] of instances.entries()){\n const entries = Array.from(sortableInstances).values();\n for (const sortable of entries){\n sortable.index = sortable.initialIndex;\n sortable.group = sortable.initialGroup;\n }\n }\n });\n });\n });\n })\n ];\n this.destroy = ()=>{\n for (const unsubscribeListener of unsubscribe)unsubscribeListener();\n };\n }\n};\nfunction reorder(sourceElement, sourceIndex, targetElement, targetIndex) {\n const position = targetIndex < sourceIndex ? \"afterend\" : \"beforebegin\";\n targetElement.insertAdjacentElement(position, sourceElement);\n}\nfunction sortByIndex(a, b) {\n return a.index - b.index;\n}\nfunction sortable_sort(instances) {\n return Array.from(instances).sort(sortByIndex);\n}\nvar defaultPlugins = [\n SortableKeyboardPlugin,\n OptimisticSortingPlugin\n];\nvar defaultSortableTransition = {\n duration: 250,\n easing: \"cubic-bezier(0.25, 1, 0.5, 1)\",\n idle: false\n};\nvar store = new WeakStore();\nvar _group_dec, _index_dec, sortable_init, _index, _previousGroup, _previousIndex, _group, sortable_element;\n_index_dec = [\n reactive\n], _group_dec = [\n reactive\n];\nvar Sortable2 = class {\n constructor(_a, manager){\n sortable_privateAdd(this, _index, sortable_runInitializers(sortable_init, 8, this)), sortable_runInitializers(sortable_init, 11, this);\n sortable_privateAdd(this, _previousGroup);\n sortable_privateAdd(this, _previousIndex);\n sortable_privateAdd(this, _group, sortable_runInitializers(sortable_init, 12, this)), sortable_runInitializers(sortable_init, 15, this);\n sortable_privateAdd(this, sortable_element);\n this.register = ()=>{\n signals_core_o(()=>{\n var _a, _b;\n null == (_a = this.manager) || _a.registry.register(this.droppable);\n null == (_b = this.manager) || _b.registry.register(this.draggable);\n });\n return ()=>this.unregister();\n };\n this.unregister = ()=>{\n signals_core_o(()=>{\n var _a, _b;\n null == (_a = this.manager) || _a.registry.unregister(this.droppable);\n null == (_b = this.manager) || _b.registry.unregister(this.draggable);\n });\n };\n this.destroy = ()=>{\n signals_core_o(()=>{\n this.droppable.destroy();\n this.draggable.destroy();\n });\n };\n var _b = _a, { effects: inputEffects = ()=>[], group, index, sensors, type, transition = defaultSortableTransition, plugins = defaultPlugins } = _b, input = sortable_objRest(_b, [\n \"effects\",\n \"group\",\n \"index\",\n \"sensors\",\n \"type\",\n \"transition\",\n \"plugins\"\n ]);\n this.droppable = new SortableDroppable(input, manager, this);\n this.draggable = new SortableDraggable(sortable_spreadProps(sortable_spreadValues({}, input), {\n effects: ()=>[\n ()=>{\n var _a2, _b2, _c;\n const status = null == (_a2 = this.manager) ? void 0 : _a2.dragOperation.status;\n if ((null == status ? void 0 : status.initializing) && this.id === (null == (_c = null == (_b2 = this.manager) ? void 0 : _b2.dragOperation.source) ? void 0 : _c.id)) store.clear(this.manager);\n if (null == status ? void 0 : status.dragging) store.set(this.manager, this.id, signals_core_h(()=>({\n initialIndex: this.index,\n initialGroup: this.group\n })));\n },\n ()=>{\n const { index: index2, group: group2, manager: _ } = this;\n const previousIndex = sortable_privateGet(this, _previousIndex);\n const previousGroup = sortable_privateGet(this, _previousGroup);\n if (index2 !== previousIndex || group2 !== previousGroup) {\n sortable_privateSet(this, _previousIndex, index2);\n sortable_privateSet(this, _previousGroup, group2);\n this.animate();\n }\n },\n ()=>{\n const { target } = this;\n const { feedback, isDragSource } = this.draggable;\n if (\"move\" == feedback && isDragSource) this.droppable.disabled = !target;\n },\n ()=>{\n const { manager: manager2 } = this;\n for (const plugin of plugins)null == manager2 || manager2.registry.register(plugin);\n },\n ...inputEffects()\n ],\n type,\n sensors\n }), manager, this);\n sortable_privateSet(this, sortable_element, input.element);\n this.manager = manager;\n this.index = index;\n sortable_privateSet(this, _previousIndex, index);\n this.group = group;\n sortable_privateSet(this, _previousGroup, group);\n this.type = type;\n this.transition = transition;\n }\n get initialIndex() {\n var _a, _b;\n return null != (_b = null == (_a = store.get(this.manager, this.id)) ? void 0 : _a.initialIndex) ? _b : this.index;\n }\n get initialGroup() {\n var _a, _b;\n return null != (_b = null == (_a = store.get(this.manager, this.id)) ? void 0 : _a.initialGroup) ? _b : this.group;\n }\n animate() {\n signals_core_h(()=>{\n const { manager, transition } = this;\n const { shape } = this.droppable;\n if (!manager) return;\n const { idle } = manager.dragOperation.status;\n if (!shape || !transition || idle && !transition.idle) return;\n manager.renderer.rendering.then(()=>{\n const { element } = this;\n if (!element) return;\n const updatedShape = this.refreshShape();\n if (!updatedShape) return;\n const delta = {\n x: shape.boundingRectangle.left - updatedShape.boundingRectangle.left,\n y: shape.boundingRectangle.top - updatedShape.boundingRectangle.top\n };\n const { translate } = getComputedStyles(element);\n const currentTranslate = computeTranslate(element, translate, false);\n const finalTranslate = computeTranslate(element, translate);\n if (delta.x || delta.y) animateTransform({\n element,\n keyframes: {\n translate: [\n `${currentTranslate.x + delta.x}px ${currentTranslate.y + delta.y}px ${currentTranslate.z}`,\n `${finalTranslate.x}px ${finalTranslate.y}px ${finalTranslate.z}`\n ]\n },\n options: transition\n }).then(()=>{\n if (!manager.dragOperation.status.dragging) this.droppable.shape = void 0;\n });\n });\n });\n }\n get manager() {\n return this.draggable.manager;\n }\n set manager(manager) {\n signals_core_o(()=>{\n this.draggable.manager = manager;\n this.droppable.manager = manager;\n });\n }\n set element(element) {\n signals_core_o(()=>{\n const previousElement = sortable_privateGet(this, sortable_element);\n const droppableElement = this.droppable.element;\n const draggableElement = this.draggable.element;\n if (!droppableElement || droppableElement === previousElement) this.droppable.element = element;\n if (!draggableElement || draggableElement === previousElement) this.draggable.element = element;\n sortable_privateSet(this, sortable_element, element);\n });\n }\n get element() {\n var _a, _b;\n const element = sortable_privateGet(this, sortable_element);\n if (!element) return;\n return null != (_b = null != (_a = ProxiedElements.get(element)) ? _a : element) ? _b : this.droppable.element;\n }\n set target(target) {\n this.droppable.element = target;\n }\n get target() {\n return this.droppable.element;\n }\n set source(source) {\n this.draggable.element = source;\n }\n get source() {\n return this.draggable.element;\n }\n get disabled() {\n return this.draggable.disabled && this.droppable.disabled;\n }\n set feedback(value) {\n this.draggable.feedback = value;\n }\n set disabled(value) {\n signals_core_o(()=>{\n this.droppable.disabled = value;\n this.draggable.disabled = value;\n });\n }\n set data(data) {\n signals_core_o(()=>{\n this.droppable.data = data;\n this.draggable.data = data;\n });\n }\n set handle(handle) {\n this.draggable.handle = handle;\n }\n set id(id) {\n signals_core_o(()=>{\n this.droppable.id = id;\n this.draggable.id = id;\n });\n }\n get id() {\n return this.droppable.id;\n }\n set sensors(value) {\n this.draggable.sensors = value;\n }\n set modifiers(value) {\n this.draggable.modifiers = value;\n }\n set collisionPriority(value) {\n this.droppable.collisionPriority = value;\n }\n set collisionDetector(value) {\n this.droppable.collisionDetector = null != value ? value : defaultCollisionDetection;\n }\n set alignment(value) {\n this.draggable.alignment = value;\n }\n get alignment() {\n return this.draggable.alignment;\n }\n set type(type) {\n signals_core_o(()=>{\n this.droppable.type = type;\n this.draggable.type = type;\n });\n }\n get type() {\n return this.draggable.type;\n }\n set accept(value) {\n this.droppable.accept = value;\n }\n get accept() {\n return this.droppable.accept;\n }\n get isDropTarget() {\n return this.droppable.isDropTarget;\n }\n get isDragSource() {\n return this.draggable.isDragSource;\n }\n get isDragging() {\n return this.draggable.isDragging;\n }\n get isDropping() {\n return this.draggable.isDropping;\n }\n get status() {\n return this.draggable.status;\n }\n refreshShape() {\n return this.droppable.refreshShape();\n }\n accepts(draggable) {\n return this.droppable.accepts(draggable);\n }\n};\nsortable_init = sortable_decoratorStart();\n_index = new WeakMap();\n_previousGroup = new WeakMap();\n_previousIndex = new WeakMap();\n_group = new WeakMap();\nsortable_element = new WeakMap();\nsortable_decorateElement(sortable_init, 4, \"index\", _index_dec, Sortable2, _index);\nsortable_decorateElement(sortable_init, 4, \"group\", _group_dec, Sortable2, _group);\nsortable_decoratorMetadata(sortable_init, Sortable2);\nvar SortableDraggable = class extends dom_Draggable {\n constructor(input, manager, sortable){\n super(input, manager);\n this.sortable = sortable;\n }\n get index() {\n return this.sortable.index;\n }\n};\nvar SortableDroppable = class extends dom_Droppable {\n constructor(input, manager, sortable){\n super(input, manager);\n this.sortable = sortable;\n }\n};\nvar react_sortable_defProp = Object.defineProperty;\nvar react_sortable_defProps = Object.defineProperties;\nvar react_sortable_getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar react_sortable_getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar react_sortable_hasOwnProp = Object.prototype.hasOwnProperty;\nvar react_sortable_propIsEnum = Object.prototype.propertyIsEnumerable;\nvar react_sortable_defNormalProp = (obj, key, value)=>key in obj ? react_sortable_defProp(obj, key, {\n enumerable: true,\n configurable: true,\n writable: true,\n value\n }) : obj[key] = value;\nvar react_sortable_spreadValues = (a, b)=>{\n for(var prop in b || (b = {}))if (react_sortable_hasOwnProp.call(b, prop)) react_sortable_defNormalProp(a, prop, b[prop]);\n if (react_sortable_getOwnPropSymbols) {\n for (var prop of react_sortable_getOwnPropSymbols(b))if (react_sortable_propIsEnum.call(b, prop)) react_sortable_defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar react_sortable_spreadProps = (a, b)=>react_sortable_defProps(a, react_sortable_getOwnPropDescs(b));\nfunction useSortable(input) {\n const { accept, collisionDetector, collisionPriority, id, data, element, handle, index, group, disabled, feedback, modifiers, sensors, target, type } = input;\n const transition = react_sortable_spreadValues(react_sortable_spreadValues({}, defaultSortableTransition), input.transition);\n const sortable = useInstance((manager)=>new Sortable2(react_sortable_spreadProps(react_sortable_spreadValues({}, input), {\n transition,\n register: false,\n handle: utilities_currentValue(handle),\n element: utilities_currentValue(element),\n target: utilities_currentValue(target),\n feedback\n }), manager));\n const trackedSortable = hooks_useDeepSignal(sortable, sortable_shouldUpdateSynchronously);\n hooks_useOnValueChange(id, ()=>sortable.id = id);\n useIsomorphicLayoutEffect(()=>{\n signals_core_o(()=>{\n sortable.group = group;\n sortable.index = index;\n });\n }, [\n sortable,\n group,\n index\n ]);\n hooks_useOnValueChange(type, ()=>sortable.type = type);\n hooks_useOnValueChange(accept, ()=>sortable.accept = accept, void 0, dist_deepEqual);\n hooks_useOnValueChange(data, ()=>data && (sortable.data = data));\n hooks_useOnValueChange(index, ()=>{\n var _a;\n if ((null == (_a = sortable.manager) ? void 0 : _a.dragOperation.status.idle) && (null == transition ? void 0 : transition.idle)) sortable.refreshShape();\n }, useImmediateEffect);\n hooks_useOnElementChange(handle, (handle2)=>sortable.handle = handle2);\n hooks_useOnElementChange(element, (element2)=>sortable.element = element2);\n hooks_useOnElementChange(target, (target2)=>sortable.target = target2);\n hooks_useOnValueChange(disabled, ()=>sortable.disabled = true === disabled);\n hooks_useOnValueChange(sensors, ()=>sortable.sensors = sensors);\n hooks_useOnValueChange(collisionDetector, ()=>sortable.collisionDetector = collisionDetector);\n hooks_useOnValueChange(collisionPriority, ()=>sortable.collisionPriority = collisionPriority);\n hooks_useOnValueChange(feedback, ()=>sortable.feedback = null != feedback ? feedback : \"default\");\n hooks_useOnValueChange(transition, ()=>sortable.transition = transition, void 0, dist_deepEqual);\n hooks_useOnValueChange(modifiers, ()=>sortable.modifiers = modifiers, void 0, dist_deepEqual);\n hooks_useOnValueChange(input.alignment, ()=>sortable.alignment = input.alignment);\n return {\n sortable: trackedSortable,\n get isDragging () {\n return trackedSortable.isDragging;\n },\n get isDropping () {\n return trackedSortable.isDropping;\n },\n get isDragSource () {\n return trackedSortable.isDragSource;\n },\n get isDropTarget () {\n return trackedSortable.isDropTarget;\n },\n handleRef: (0, __WEBPACK_EXTERNAL_MODULE_react__.useCallback)((element2)=>{\n sortable.handle = null != element2 ? element2 : void 0;\n }, [\n sortable\n ]),\n ref: (0, __WEBPACK_EXTERNAL_MODULE_react__.useCallback)((element2)=>{\n var _a, _b;\n if (!element2 && (null == (_a = sortable.element) ? void 0 : _a.isConnected) && !(null == (_b = sortable.manager) ? void 0 : _b.dragOperation.status.idle)) return;\n sortable.element = null != element2 ? element2 : void 0;\n }, [\n sortable\n ]),\n sourceRef: (0, __WEBPACK_EXTERNAL_MODULE_react__.useCallback)((element2)=>{\n var _a, _b;\n if (!element2 && (null == (_a = sortable.source) ? void 0 : _a.isConnected) && !(null == (_b = sortable.manager) ? void 0 : _b.dragOperation.status.idle)) return;\n sortable.source = null != element2 ? element2 : void 0;\n }, [\n sortable\n ]),\n targetRef: (0, __WEBPACK_EXTERNAL_MODULE_react__.useCallback)((element2)=>{\n var _a, _b;\n if (!element2 && (null == (_a = sortable.target) ? void 0 : _a.isConnected) && !(null == (_b = sortable.manager) ? void 0 : _b.dragOperation.status.idle)) return;\n sortable.target = null != element2 ? element2 : void 0;\n }, [\n sortable\n ])\n };\n}\nfunction sortable_shouldUpdateSynchronously(key, oldValue, newValue) {\n if (\"isDragSource\" === key && !newValue && oldValue) return true;\n return false;\n}\nfunction partition(array, test, pass = [], fail = []) {\n for(let i = 0, len = array.length; i < len; i++)(test(array[i], i) ? pass : fail).push(array[i]);\n return [\n pass,\n fail\n ];\n}\nfunction itemsChanged(currentItems, newItems, identityProperty) {\n if (currentItems.length !== newItems.length) return true;\n if (void 0 === identityProperty) return !currentItems.every((item)=>newItems.includes(item));\n return currentItems.some((currentItem)=>-1 === newItems.findIndex((newItem)=>newItem[identityProperty] === currentItem[identityProperty]));\n}\nfunction itemsOrOrderChanged(currentItems, newItems, identityProperty) {\n if (currentItems.length !== newItems.length) return true;\n if (void 0 === identityProperty) return currentItems.some((item, index)=>newItems[index] !== item);\n return currentItems.some((currentItem, index)=>newItems[index][identityProperty] !== currentItem[identityProperty]);\n}\nconst moveItemDeprecated = (items, item, moveTo)=>{\n const fromIndex = items.indexOf(item);\n if (fromIndex === moveTo) return items;\n const newItems = items.slice();\n if (-1 === fromIndex) throw Error(\"moveItem, item to be moved not found\");\n newItems.splice(fromIndex, 1);\n if (-1 === moveTo) newItems.push(item);\n else {\n const offset = moveTo > fromIndex ? 0 : 0;\n newItems.splice(moveTo + offset, 0, item);\n }\n return newItems;\n};\nconst moveItem = (items, fromIndex, toIndex)=>{\n if (fromIndex === toIndex) return items;\n {\n const newItems = items.slice();\n const [item] = newItems.splice(fromIndex, 1);\n if (-1 === toIndex) return newItems.concat(item);\n {\n const offset = toIndex > fromIndex ? 0 : 0;\n newItems.splice(toIndex + offset, 0, item);\n return newItems;\n }\n }\n};\nconst getAddedItems = (values, newValues)=>{\n const isNew = (v)=>!values?.includes(v);\n if (void 0 === values) return newValues;\n if (newValues.some(isNew)) return newValues.filter(isNew);\n return [];\n};\nconst getMissingItems = (sourceItems, items, identity)=>items.filter((i)=>-1 === sourceItems.findIndex((s)=>identity(s) === i));\nfunction boxContainsPoint(rect, x1, y) {\n if (rect) return x1 >= rect.left && x1 < rect.right && y >= rect.top && y < rect.bottom;\n}\nfunction getCenteredBox({ right, left, top, bottom }, pctSize) {\n const pctOffset = (1 - pctSize) / 2;\n const w = (right - left) * pctOffset;\n const h = (bottom - top) * pctOffset;\n return {\n left: left + w,\n top: top + h,\n right: right - w,\n bottom: bottom - h\n };\n}\nfunction pointPositionWithinRect(x1, y, rect, borderZone = 30) {\n const width = rect.right - rect.left;\n const height = rect.bottom - rect.top;\n const posX = x1 - rect.left;\n const posY = y - rect.top;\n let closeToTheEdge = 0;\n if (posX < borderZone) closeToTheEdge += 8;\n if (posX > width - borderZone) closeToTheEdge += 2;\n if (posY < borderZone) closeToTheEdge += 1;\n if (posY > height - borderZone) closeToTheEdge += 4;\n return {\n pctX: posX / width,\n pctY: posY / height,\n closeToTheEdge\n };\n}\nconst isGridLayoutSplitDirection = (position)=>\"centre\" !== position && \"header\" !== position;\nfunction getPositionWithinBox(x1, y, rect, pctX, pctY) {\n const centerBox = getCenteredBox(rect, 0.2);\n if (boxContainsPoint(centerBox, x1, y)) return \"centre\";\n {\n const quadrant = `${pctY < 0.5 ? \"north\" : \"south\"}${pctX < 0.5 ? \"west\" : \"east\"}`;\n switch(quadrant){\n case \"northwest\":\n return pctX > pctY ? \"north\" : \"west\";\n case \"northeast\":\n return 1 - pctX > pctY ? \"north\" : \"east\";\n case \"southeast\":\n return pctX > pctY ? \"east\" : \"south\";\n case \"southwest\":\n return 1 - pctX > pctY ? \"west\" : \"south\";\n default:\n throw Error(\"getPositionWithinBox failed top compute position\");\n }\n }\n}\nclass Clock {\n #millisSinceEpoch = 0;\n #showCurrentTime = false;\n constructor(props){\n const today = new Date();\n const offset = today.getTimezoneOffset();\n if (props) {\n const dateProvided = \"number\" == typeof props.year && \"number\" == typeof props.month && \"number\" == typeof props.day;\n const year = props.year ?? today.getFullYear();\n const month = void 0 !== props.month ? props.month - 1 : today.getMonth();\n const day = props.day ?? today.getDay();\n const hours = void 0 !== props.hours ? 0 === offset ? props.hours : props.hours + 1 : dateProvided ? offset ? 1 : 0 : today.getUTCHours();\n const minutes = props.minutes ?? (dateProvided ? 0 : today.getMinutes());\n const seconds = props.seconds ?? (dateProvided ? 0 : today.getSeconds());\n const ms = props.milliseconds ?? (dateProvided ? 0 : today.getMilliseconds());\n const date = new Date(year, month, day, hours, minutes, seconds, ms);\n this.#millisSinceEpoch = date.getTime();\n } else this.#millisSinceEpoch = today.getTime();\n }\n goBack(value, units = \"ms\") {\n const multiplier = \"ms\" === units ? 1 : \"seconds\" === units ? 1000 : 60000;\n this.#millisSinceEpoch -= value * multiplier;\n return this;\n }\n advance(value, units = \"ms\") {\n const multiplier = \"ms\" === units ? 1 : \"seconds\" === units ? 1000 : 60000;\n this.#millisSinceEpoch += value * multiplier;\n return this;\n }\n set showCurrentTime(value) {\n this.#showCurrentTime = value;\n }\n toString() {\n return new Date(this.now).toISOString();\n }\n get now() {\n return this.#showCurrentTime ? new Date().getTime() : this.#millisSinceEpoch;\n }\n get date() {\n return this.#showCurrentTime ? new Date() : new Date(this.#millisSinceEpoch);\n }\n}\nconst createEl = (elementType, className, textContent)=>{\n const el = document.createElement(elementType);\n if (className) el.className = className;\n if (textContent) el.textContent = textContent;\n return el;\n};\nconst getFocusableElement = (el, tabIndex)=>{\n if (el) {\n if (el.hasAttribute(\"tabindex\")) {\n const rootTabIndex = parseInt(el.getAttribute(\"tabindex\"));\n if (!isNaN(rootTabIndex) && (void 0 === tabIndex || rootTabIndex === tabIndex)) return el;\n }\n const focusableEl = \"number\" == typeof tabIndex ? el.querySelector(`[tabindex=\"${tabIndex}\"]`) : el.querySelector(\"[tabindex]\");\n if (focusableEl) return focusableEl;\n }\n};\nconst getElementDataIndex = (el)=>{\n if (el) {\n const index = parseInt(el.dataset.index || \"\");\n if (!isNaN(index)) return index;\n }\n return -1;\n};\nfunction queryClosest(el, cssQueryString, throwIfNotFound) {\n if (el) {\n const result = el.closest(cssQueryString);\n if (result) return result;\n }\n if (!throwIfNotFound) return null;\n throw Error(`no element found to match '${cssQueryString}'`);\n}\nconst getClosest = (el, dataProperty)=>queryClosest(el, `[data-${dataProperty}]`);\nconst getClosestIndexItem = (el)=>getClosest(el, \"index\");\nfunction getElementByDataIndex(container, index, throwIfNotFound = false) {\n if (null == container && throwIfNotFound) throw Error(\"html-utils getElementByDataIndex, container is null\");\n const element = container?.querySelector(`[data-index=\"${index}\"]`);\n if (element) return element;\n if (!throwIfNotFound) return;\n throw Error(\"html-utils getElementByDataIndex, Item not found with data-index='${index}'\");\n}\nconst focusFirstFocusableElement = (el, tabIndex)=>{\n requestAnimationFrame(()=>{\n const focusableElement = getFocusableElement(el, tabIndex);\n if (focusableElement) focusableElement.focus();\n });\n};\nconst isSelectableElement = (el)=>{\n const item = el?.closest(\"[data-index]\");\n if (!item || item.ariaDisabled || \"false\" === item.dataset.selectable || item.querySelector('[data-selectable=\"false\"],[aria-disabled=\"true\"]')) return false;\n return true;\n};\nconst isInputElement = (el)=>{\n if (null === el) return false;\n return \"INPUT\" === el.tagName;\n};\nconst isDateInput = (el)=>isInputElement(el) && el.classList.contains(\"saltDateInput-input\");\nconst hasOpenOptionList = (el)=>{\n if (null !== el) return \"true\" === el.ariaExpanded;\n};\nlet html_utils_size;\nfunction getScrollbarSize() {\n if (void 0 === html_utils_size) {\n let outer = document.createElement(\"div\");\n outer.className = \"scrollable-content\";\n outer.style.width = \"50px\";\n outer.style.height = \"50px\";\n outer.style.overflowY = \"scroll\";\n outer.style.position = \"absolute\";\n outer.style.top = \"-200px\";\n outer.style.left = \"-200px\";\n const inner = document.createElement(\"div\");\n inner.style.height = \"100px\";\n inner.style.width = \"100%\";\n outer.appendChild(inner);\n document.body.appendChild(outer);\n const outerWidth = outer.offsetWidth;\n const innerWidth = inner.offsetWidth;\n document.body.removeChild(outer);\n html_utils_size = outerWidth - innerWidth;\n outer = null;\n }\n return html_utils_size;\n}\nconst dispatchMouseEvent = (el, type)=>{\n const evt = new MouseEvent(type, {\n view: window,\n bubbles: true,\n cancelable: true\n });\n el.dispatchEvent(evt);\n};\nconst dispatchKeyboardEvent = (el, type, key)=>{\n const evt = new KeyboardEvent(type, {\n key,\n view: window,\n bubbles: true,\n cancelable: true\n });\n el.dispatchEvent(evt);\n};\nconst dispatchCustomEvent = (el, type)=>{\n const evt = new Event(type, {\n bubbles: true,\n cancelable: true\n });\n el.dispatchEvent(evt);\n};\nconst SORT_ASC = \"asc\";\nconst NO_HEADINGS = [];\nconst DEFAULT_COL_WIDTH = 100;\nconst DEFAULT_MAX_WIDTH = 250;\nconst DEFAULT_MIN_WIDTH = 50;\nconst AggregationType = {\n Average: 2,\n Count: 3,\n Distinct: 6,\n Sum: 1,\n High: 4,\n Low: 5\n};\nfunction mapSortCriteria(sortCriteria, columnMap, metadataOffset = 0) {\n return sortCriteria.map((s)=>{\n if (\"string\" == typeof s) return [\n columnMap[s] + metadataOffset,\n \"asc\"\n ];\n if (Array.isArray(s)) {\n const [columnName, sortDir] = s;\n return [\n columnMap[columnName] + metadataOffset,\n sortDir || SORT_ASC\n ];\n }\n throw Error(\"columnUtils.mapSortCriteria invalid input\");\n });\n}\nconst numericTypes = [\n \"int\",\n \"long\",\n \"double\"\n];\nconst getDefaultAlignment = (serverDataType)=>void 0 === serverDataType ? \"left\" : numericTypes.includes(serverDataType) ? \"right\" : \"left\";\nconst getRuntimeColumnWidth = (col, runtimeColumns)=>{\n const runtimeColumn = runtimeColumns.find(({ name })=>name === col.name);\n if (runtimeColumn) return runtimeColumn.width;\n return DEFAULT_COL_WIDTH;\n};\nconst applyRuntimeColumnWidthsToConfig = (tableConfig, columns)=>({\n ...tableConfig,\n columns: columns.map((column)=>({\n ...column,\n width: column.width ?? getRuntimeColumnWidth(column, columns)\n })),\n columnLayout: \"manual\"\n });\nconst isValidColumnAlignment = (v)=>\"left\" === v || \"right\" === v;\nconst isValidPinLocation = (v)=>isValidColumnAlignment(v) || \"floating\" === v || \"\" === v;\nconst VUU_COLUMN_DATA_TYPES = [\n \"long\",\n \"double\",\n \"int\",\n \"string\",\n \"char\",\n \"boolean\",\n \"scaleddecimal2\",\n \"scaleddecimal4\",\n \"scaleddecimal6\",\n \"scaleddecimal8\",\n \"epochtimestamp\"\n];\nconst isVuuColumnDataType = (value)=>VUU_COLUMN_DATA_TYPES.includes(value);\nconst fromServerDataType = (serverDataType)=>{\n switch(serverDataType){\n case \"double\":\n case \"int\":\n case \"long\":\n return \"number\";\n case \"boolean\":\n return \"boolean\";\n default:\n return \"string\";\n }\n};\nconst isTimestampColumn = ({ serverDataType })=>\"epochtimestamp\" === serverDataType;\nconst isNumericColumn = ({ serverDataType, type })=>{\n if (\"int\" === serverDataType || \"long\" === serverDataType || \"double\" === serverDataType) return true;\n if (\"string\" == typeof type) return \"number\" === type;\n if (\"string\" == typeof type?.name) return type?.name === \"number\";\n return false;\n};\nconst isDateTimeDataType = (column)=>(isTypeDescriptor(column.type) ? column.type.name : column.type) === \"date/time\";\nconst isTimeDataType = (column)=>(isTypeDescriptor(column.type) ? column.type.name : column.type) === \"time\";\nconst isDateTimeDataValue = (column, serverDataType)=>\"epochtimestamp\" === serverDataType || isTimestampColumn(column) || isDateTimeDataType(column);\nconst isTimeDataValue = (column)=>(isTypeDescriptor(column?.type) ? column.type.name : column?.type) === \"time\";\nconst isPinned = (column)=>\"string\" == typeof column.pin;\nconst hasHeadings = (column)=>Array.isArray(column.heading) && column.heading.length > 0;\nconst isResizing = (column)=>column.resizing;\nconst isTextColumn = ({ serverDataType })=>void 0 !== serverDataType && (\"char\" === serverDataType || \"string\" === serverDataType);\nconst toColumnDescriptor = (name, serverDataType)=>({\n name,\n serverDataType\n });\nconst isTypeDescriptor = (type)=>void 0 !== type && \"string\" != typeof type;\nconst EMPTY_COLUMN_MAP = {};\nconst isColumnTypeRenderer = (renderer)=>void 0 !== renderer?.name;\nconst hasCustomRenderer = (type)=>isTypeDescriptor(type) && isColumnTypeRenderer(type.renderer);\nconst isLookupRenderer = (renderer)=>void 0 !== renderer?.name && \"lookup\" in renderer;\nconst isValueListRenderer = (renderer)=>void 0 !== renderer?.name && Array.isArray(renderer.values);\nconst hasValidationRules = (type)=>isTypeDescriptor(type) && Array.isArray(type.rules) && type.rules.length > 0;\nconst isMappedValueTypeRenderer = (renderer)=>void 0 !== renderer && void 0 !== renderer?.map;\nfunction buildColumnMap(columns) {\n const start = metadataKeys.count;\n if (columns) return columns.reduce((map, column, i)=>{\n if (\"string\" == typeof column) map[column] = start + i;\n else map[column.name] = start + i;\n return map;\n }, {});\n return EMPTY_COLUMN_MAP;\n}\nfunction projectUpdates(updates) {\n const results = [];\n const metadataOffset = metadataKeys.count - 2;\n for(let i = 0; i < updates.length; i += 3){\n results[i] = updates[i] + metadataOffset;\n results[i + 1] = updates[i + 1];\n results[i + 2] = updates[i + 2];\n }\n return results;\n}\nconst KEY = 6;\nconst metadataKeys = {\n IDX: 0,\n RENDER_IDX: 1,\n IS_LEAF: 2,\n IS_EXPANDED: 3,\n DEPTH: 4,\n COUNT: 5,\n KEY,\n SELECTED: 7,\n TIMESTAMP: 8,\n IS_NEW: 9,\n count: 10,\n PARENT_IDX: \"parent_idx\",\n IDX_POINTER: \"idx_pointer\",\n FILTER_COUNT: \"filter_count\",\n NEXT_FILTER_IDX: \"next_filter_idx\"\n};\nconst insertColumn = (columns, column)=>{\n const { originalIdx } = column;\n if (\"number\" == typeof originalIdx) for(let i = 0; i < columns.length; i++){\n const { originalIdx: colIdx = -1 } = columns[i];\n if (colIdx > originalIdx) {\n columns.splice(i, 0, column);\n return columns;\n }\n }\n columns.push(column);\n return columns;\n};\nconst flattenColumnGroup = (columns)=>{\n if (!columns[0]?.isGroup) return columns;\n {\n const [groupColumn, ...nonGroupedColumns] = columns;\n groupColumn.columns.forEach((groupColumn)=>{\n insertColumn(nonGroupedColumns, groupColumn);\n });\n return nonGroupedColumns;\n }\n};\nfunction extractGroupColumn({ availableWidth, columns, groupBy, confirmed = true }) {\n if (groupBy && groupBy.length > 0) {\n const flattenedColumns = flattenColumnGroup(columns);\n const [groupedColumns, rest] = flattenedColumns.reduce((result, column, i)=>{\n const [g, r] = result;\n if (groupBy.includes(column.name)) g.push({\n ...column,\n originalIdx: i\n });\n else r.push(column);\n return result;\n }, [\n [],\n []\n ]);\n if (groupedColumns.length !== groupBy.length) throw Error(`extractGroupColumn: no column definition found for all groupBy cols ${JSON.stringify(groupBy)} `);\n const groupOnly = 0 === rest.length;\n const groupCount = groupBy.length;\n const groupCols = groupBy.map((name, idx)=>{\n const column = groupedColumns.find((col)=>col.name === name);\n return {\n ...column,\n groupLevel: groupCount - idx\n };\n });\n const width = groupOnly ? availableWidth : Math.min(availableWidth, groupCols.map((c)=>c.width).reduce((a, b)=>a + b) + 100);\n const groupCol = {\n ariaColIndex: 1,\n columns: groupCols,\n heading: [\n \"group-col\"\n ],\n isGroup: true,\n groupConfirmed: confirmed,\n name: \"group-col\",\n width\n };\n const withAdjustedAriaIndex = [];\n let colIndex = 2;\n for (const column of rest){\n withAdjustedAriaIndex.push({\n ...column,\n ariaColIndex: column.hidden ? -1 : colIndex\n });\n if (!column.hidden) colIndex += 1;\n }\n return [\n groupCol,\n withAdjustedAriaIndex\n ];\n }\n return [\n null,\n flattenColumnGroup(columns)\n ];\n}\nconst isGroupColumn = (column)=>true === column.isGroup;\nconst checkConfirmationPending = (previousConfig)=>{\n if (previousConfig) {\n const [column] = previousConfig.columns;\n if (void 0 !== column && isGroupColumn(column)) return column.groupConfirmed;\n }\n};\nconst isJsonAttribute = (value)=>\"string\" == typeof value && (value.endsWith(\"{\") || value.endsWith(\"[\"));\nconst isJsonGroup = (column, dataRow)=>column.type?.name === \"json\" && isJsonAttribute(dataRow[column.name]);\nconst isJsonColumn = (column)=>column.type?.name === \"json\";\nconst sortPinnedColumns = (columns, selectionBookendWidth = 0)=>{\n const leftPinnedColumns = [];\n const rightPinnedColumns = [];\n const restColumns = [];\n let pinnedWidthLeft = selectionBookendWidth;\n for (const column of columns)switch(column.pin){\n case \"left\":\n leftPinnedColumns.push({\n ...column,\n pinnedWidth: 0,\n pinnedOffset: pinnedWidthLeft\n });\n pinnedWidthLeft += column.width;\n break;\n case \"right\":\n rightPinnedColumns.unshift(column);\n break;\n default:\n restColumns.push(column);\n }\n if (leftPinnedColumns.length) leftPinnedColumns.push({\n ...leftPinnedColumns.pop(),\n pinnedWidth: pinnedWidthLeft\n });\n let allColumns = leftPinnedColumns.length ? leftPinnedColumns.concat(restColumns) : restColumns;\n if (rightPinnedColumns.length) {\n const measuredRightPinnedColumns = [];\n let pinnedWidthRight = selectionBookendWidth;\n for (const column of rightPinnedColumns){\n measuredRightPinnedColumns.unshift({\n ...column,\n pinnedOffset: pinnedWidthRight\n });\n pinnedWidthRight += column.width;\n }\n measuredRightPinnedColumns[rightPinnedColumns.length - 1].pinnedWidth = pinnedWidthRight;\n allColumns = allColumns.concat(measuredRightPinnedColumns);\n }\n if (leftPinnedColumns.length || rightPinnedColumns.length) {\n for(let i = 0; i < allColumns.length; i++)if (allColumns[i].ariaColIndex !== i + 1) allColumns[i] = {\n ...allColumns[i],\n ariaColIndex: i + 1\n };\n }\n return allColumns;\n};\nconst measurePinnedColumns = (columns, selectionEndSize)=>{\n let pinnedWidthLeft = 0;\n let pinnedWidthRight = 0;\n let unpinnedWidth = 0;\n for (const column of columns){\n const { hidden, pin, width } = column;\n const visibleWidth = hidden ? 0 : width;\n if (\"left\" === pin) pinnedWidthLeft += visibleWidth;\n else if (\"right\" === pin) pinnedWidthRight += visibleWidth;\n else unpinnedWidth += visibleWidth;\n }\n return {\n pinnedWidthLeft: pinnedWidthLeft + selectionEndSize,\n pinnedWidthRight: pinnedWidthRight + selectionEndSize,\n unpinnedWidth\n };\n};\nconst getTableHeadings = (columns)=>{\n if (columns.some(hasHeadings)) {\n const maxHeadingDepth = columns.reduce((max, { heading })=>Math.max(max, heading?.length ?? 0), 0);\n let heading;\n const tableHeadings = [];\n let tableHeadingsRow;\n for(let level = 0; level < maxHeadingDepth; level++){\n tableHeadingsRow = [];\n columns.forEach(({ heading: columnHeading = NO_HEADINGS, width })=>{\n const label = columnHeading[level] ?? \"\";\n if (heading && heading.label === label) heading.width += width;\n else {\n heading = {\n label,\n width\n };\n tableHeadingsRow.push(heading);\n }\n });\n tableHeadings.push(tableHeadingsRow);\n }\n return tableHeadings;\n }\n return NO_HEADINGS;\n};\nconst getColumnStyle = ({ pin, pinnedOffset = 0, pinnedWidth = 0, width })=>{\n if (pinnedWidth && \"left\" === pin) return {\n left: pinnedOffset,\n width,\n \"--pin-width\": `${pinnedWidth - 3}px`\n };\n if (\"left\" === pin) return {\n left: pinnedOffset,\n width\n };\n if (pinnedWidth && \"right\" === pin) return {\n right: pinnedOffset,\n width,\n \"--pin-width\": `${pinnedWidth - 5}px`\n };\n else if (\"right\" === pin) return {\n right: pinnedOffset,\n width\n };\n else return {\n width\n };\n};\nconst getPinnedWidthFromElement = (cell)=>{\n const cellStyle = getComputedStyle(cell);\n return parseInt(cellStyle.getPropertyValue(\"--pin-width\"));\n};\nconst getAllCellsInColumn = (container, colIndex)=>{\n const byColIndex = `[aria-colindex='${colIndex}']`;\n return Array.from(container?.querySelectorAll(`.vuuTableCell${byColIndex},.vuuTableHeaderCell${byColIndex},.vuuTableGroupHeaderCell${byColIndex}`) ?? []);\n};\nconst getAriaRowIndex = (rowElement)=>{\n const rowIndex = rowElement?.ariaRowIndex;\n if (null != rowIndex) {\n const index = parseInt(rowIndex);\n if (!isNaN(index)) return index;\n }\n return -1;\n};\nconst getAriaColIndex = (cellElement)=>{\n const colIndex = cellElement?.ariaColIndex;\n if (null != colIndex) {\n const index = parseInt(colIndex);\n if (!isNaN(index)) return index;\n }\n return -1;\n};\nconst getPinDetails = (cell, className)=>{\n if (cell.classList.contains(\"vuuEndPin\")) return {\n cell,\n pinnedWidth: getPinnedWidthFromElement(cell)\n };\n {\n const endPin = cell.parentElement?.querySelector(`.${className}.vuuEndPin`);\n if (endPin) {\n let pinnedCells;\n if (\"vuuPinLeft\" === className) {\n const container = queryClosest(cell, \".vuuTable-table\", true);\n const startIndex = getAriaColIndex(cell);\n const endIndex = getAriaColIndex(endPin);\n pinnedCells = [];\n for(let colIndex = startIndex + 1; colIndex <= endIndex; colIndex++)pinnedCells = pinnedCells?.concat(getAllCellsInColumn(container, colIndex));\n }\n console.log({\n pinnedCells\n });\n return {\n cell: endPin,\n pinnedCells,\n pinnedWidth: getPinnedWidthFromElement(endPin)\n };\n }\n throw Error(\"[column-utils] getPinDetailsFromElement, no endPin on multi column pin\");\n }\n};\nconst getPinStateFromElement = (cell)=>{\n if (cell.classList.contains(\"vuuPinLeft\")) return getPinDetails(cell, \"vuuPinLeft\");\n if (cell.classList.contains(\"vuuPinRight\")) return getPinDetails(cell, \"vuuPinRight\");\n};\nconst setAggregations = (aggregations, column, aggType)=>aggregations.filter((agg)=>agg.column !== column.name).concat({\n column: column.name,\n aggType\n });\nconst applyGroupByToColumns = (props)=>{\n if (props.groupBy.length) {\n const [groupColumn, nonGroupedColumns] = extractGroupColumn(props);\n if (groupColumn) return [\n groupColumn\n ].concat(nonGroupedColumns);\n } else if (props.columns[0]?.isGroup) return flattenColumnGroup(props.columns);\n return props.columns;\n};\nconst applySortToColumns = (columns, sort)=>columns.map((column)=>{\n const sorted = getSortType(column, sort);\n if (void 0 !== sorted) return {\n ...column,\n sorted\n };\n if (column.sorted) return {\n ...column,\n sorted: void 0\n };\n return column;\n });\nconst removeSort = (columns)=>columns.map((col)=>col.sorted ? {\n ...col,\n sorted: void 0\n } : col);\nconst existingSort = (columns)=>columns.some((col)=>col.sorted);\nconst getSortType = (column, { sortDefs })=>{\n const sortDef = sortDefs.find((sortCol)=>sortCol.column === column.name);\n if (sortDef) return sortDefs.length > 1 ? (sortDefs.indexOf(sortDef) + 1) * (\"A\" === sortDef.sortType ? 1 : -1) : sortDef.sortType;\n};\nconst getColumnName = (name)=>{\n const pos = name.indexOf(\":\");\n if (-1 === pos) return name;\n return name.slice(0, pos);\n};\nconst getColumnLabel = (column)=>{\n if (column.label) return column.label;\n if (!isCalculatedColumn(column.name)) return column.name;\n {\n const { name } = getCalculatedColumnDetails(column);\n return name ?? column.name;\n }\n};\nconst findColumn = (columns, columnName)=>{\n const column = columns.find((col)=>col.name === columnName);\n if (column) return column;\n {\n const groupColumn = columns.find((col)=>col.isGroup);\n if (groupColumn) return findColumn(groupColumn.columns, columnName);\n }\n};\nfunction updateColumn(columns, column, options) {\n const targetColumn = \"string\" == typeof column ? columns.find((col)=>col.name === column) : column;\n if (targetColumn) {\n const replacementColumn = options ? {\n ...targetColumn,\n ...options\n } : targetColumn;\n return columns.map((col)=>col.name === replacementColumn.name ? replacementColumn : col);\n }\n throw Error(\"column-utils.replaceColun, column not found\");\n}\nconst toDataSourceColumns = (column)=>column.name;\nconst dataSourceRowToDataRowDto = (row, columnMap)=>Object.entries(columnMap).reduce((map, [colName, key])=>{\n map[colName] = row[key];\n return map;\n }, {});\nconst isDataLoading = (columns)=>isGroupColumn(columns[0]) && false === columns[0].groupConfirmed;\nconst getColumnsInViewport = (columns, vpStart, vpEnd)=>{\n const visibleColumns = [];\n let preSpan = 0;\n let rightPinnedOnly = false;\n for(let columnOffset = 0, i = 0; i < columns.length; i++){\n const column = columns[i];\n if (!column.hidden) {\n if (\"right\" === column.pin) visibleColumns.push(column);\n else if (rightPinnedOnly) continue;\n else if (columnOffset + column.width < vpStart) {\n if (\"left\" === column.pin) visibleColumns.push(column);\n else if (columnOffset + column.width + columns[i + 1]?.width > vpStart) visibleColumns.push(column);\n else preSpan += column.width;\n } else if (columnOffset > vpEnd) rightPinnedOnly = true;\n else visibleColumns.push(column);\n columnOffset += column.width;\n }\n }\n return [\n visibleColumns,\n preSpan\n ];\n};\nconst isNotHidden = (column)=>true !== column.hidden;\nconst visibleColumnAtIndex = (columns, index)=>{\n if (columns.every(isNotHidden)) return columns[index];\n return columns.filter(isNotHidden).at(index);\n};\nconst getGroupIcon = (columns, dataRow)=>{\n const { depth, isLeaf } = dataRow;\n if (isLeaf || depth > columns.length) return;\n if (0 === depth) return;\n {\n const { getIcon } = columns[depth - 1];\n return getIcon?.(dataRow);\n }\n};\nconst getGroupValue = (columns, dataRow)=>{\n const { depth, isLeaf } = dataRow;\n if (isLeaf || depth > columns.length) return null;\n if (0 === depth) return \"$root\";\n {\n const { name, valueFormatter } = columns[depth - 1];\n const value = valueFormatter(dataRow[name]);\n return value;\n }\n};\nconst getDefaultColumnType = (serverDataType)=>{\n switch(serverDataType){\n case \"int\":\n case \"long\":\n case \"double\":\n return \"number\";\n case \"scaleddecimal2\":\n case \"scaleddecimal4\":\n case \"scaleddecimal6\":\n case \"scaleddecimal8\":\n return \"scaleddecimal\";\n case \"boolean\":\n return \"boolean\";\n case \"epochtimestamp\":\n return \"date/time\";\n default:\n return \"string\";\n }\n};\nconst updateColumnFormatting = (column, formatting)=>{\n const { serverDataType, type = getDefaultColumnType(serverDataType) } = column;\n if (isTypeDescriptor(type)) return {\n ...column,\n type: {\n ...type,\n formatting\n }\n };\n return {\n ...column,\n type: {\n name: type,\n formatting\n }\n };\n};\nfunction updateColumnType(column, type) {\n return isTypeDescriptor(column.type) ? {\n ...column,\n type: {\n ...column.type,\n name: type\n }\n } : {\n ...column,\n type\n };\n}\nconst updateColumnRenderProps = (column, renderer)=>{\n const { serverDataType, type = getDefaultColumnType(serverDataType) } = column;\n if (isTypeDescriptor(type)) return {\n ...column,\n type: {\n ...type,\n renderer\n }\n };\n return {\n ...column,\n type: {\n name: type,\n renderer\n }\n };\n};\nconst NO_TYPE_SETTINGS = {};\nconst getTypeFormattingFromColumn = (column)=>{\n if (isTypeDescriptor(column.type)) return column.type.formatting ?? NO_TYPE_SETTINGS;\n return NO_TYPE_SETTINGS;\n};\nconst assertAllColumnsAreIncludedInSubscription = (columns, columnNames)=>{\n const unsubscribedColumns = [];\n for (const column of columns)if (\"client\" !== column.source && !columnNames?.includes(column.name)) unsubscribedColumns.push(column.name);\n if (unsubscribedColumns.length > 0) throw Error(`[column-utils] assertAllColumnsAreIncludedInSubscription columns not included in subscription: ${unsubscribedColumns.join(\", \")}`);\n};\nconst subscribedOnly = (columnNames)=>(column)=>\"client\" === column.source || columnNames?.includes(column.name);\nconst addColumnToSubscribedColumns = (subscribedColumns, availableColumns, columnName)=>{\n const byColName = (n = columnName)=>(column)=>column.name === n;\n if (-1 !== subscribedColumns.findIndex(byColName())) throw Error(`[column-utils], addColumnToSubscribedColumns column ${columnName} is already subscribed`);\n const indexOfAvailableColumn = availableColumns.findIndex(byColName());\n if (-1 === indexOfAvailableColumn) throw Error(`[column-utils] addColumnToSubscribedColumns column ${columnName} is not available`);\n const newColumn = {\n ...availableColumns[indexOfAvailableColumn]\n };\n return subscribedColumns.concat(newColumn);\n};\nfunction getServerDataType(column, throwIfUndefined = false) {\n if (isCalculatedColumn(column.name)) {\n const { serverDataType } = getCalculatedColumnDetails(column);\n if (isVuuColumnDataType(serverDataType)) return serverDataType;\n if (throwIfUndefined) throw Error(`[column-utils] getServerDataType, calculated column does not have valid type ${column.name}`);\n } else if (isVuuColumnDataType(column.serverDataType)) return column.serverDataType;\n else if (throwIfUndefined) throw Error(`[column-utils] getServerDataType, columns does not have valid type ${column.serverDataType}`);\n}\nconst CalculatedColumnPattern = /.*:.*:.*/;\nconst isCalculatedColumn = (columnName)=>void 0 !== columnName && CalculatedColumnPattern.test(columnName);\nconst getCalculatedColumnDetails = (column)=>{\n const columnName = \"string\" == typeof column ? column : column.name;\n if (isCalculatedColumn(columnName)) {\n const [name, serverDataType, expression] = columnName.split(/:=?/);\n if (serverDataType && !isVuuColumnDataType(serverDataType)) throw Error(`column-utils, getCalculatedColumnDetails ${serverDataType} is not valid type for column ${columnName}`);\n return {\n name: name ?? \"\",\n expression: expression ?? \"\",\n serverDataType: isVuuColumnDataType(serverDataType) ? serverDataType : void 0\n };\n }\n throw Error(\"column.name is nor a calculated column\");\n};\nconst setCalculatedColumnName = (column, name)=>{\n const [, type, expression] = column.name.split(\":\");\n return {\n ...column,\n name: `${name}:${type}:${expression}`\n };\n};\nconst setCalculatedColumnType = (column, serverDataType)=>{\n const [name, , expression] = column.name.split(\":\");\n return {\n ...column,\n name: `${name}:${serverDataType}:${expression}`,\n serverDataType\n };\n};\nconst setCalculatedColumnExpression = (column, expression)=>{\n const [name, type] = column.name.split(\":\");\n return {\n ...column,\n name: `${name}:${type}:=${expression}`\n };\n};\nconst moveColumnTo = (columns, column, newIndex)=>{\n const index = columns.findIndex((col)=>col.name === column.name);\n return moveItem(columns, index, newIndex);\n};\nfunction replaceColumn(columns, column) {\n return columns.map((col)=>col.name === column.name ? column : col);\n}\nconst vuuTimestampColumns = [\n \"vuuCreatedTimestamp\",\n \"vuuUpdatedTimestamp\"\n];\nconst notVuuTimestamps = (column)=>!vuuTimestampColumns.includes(column.name);\nconst applyDefaultColumnConfig = ({ columns: columnsProp, table }, getDefaultColumnConfig, includeVuuTimestampColumns = false)=>{\n if (\"function\" != typeof getDefaultColumnConfig) return columnsProp;\n {\n const columns = includeVuuTimestampColumns ? columnsProp : columnsProp.filter(notVuuTimestamps);\n return columns.map((column)=>{\n const config = getDefaultColumnConfig(table.table, column.name);\n if (config) return {\n ...column,\n ...config\n };\n return column;\n });\n }\n};\nconst measureColumns = (columns, defaultMaxWidth, defaultMinWidth)=>columns.reduce((aggregated, column)=>{\n if (true !== column.hidden) {\n aggregated.totalMinWidth += column.minWidth ?? defaultMinWidth;\n aggregated.totalMaxWidth += column.maxWidth ?? defaultMaxWidth;\n aggregated.totalWidth += column.width;\n aggregated.flexCount += column.flex ?? 0;\n }\n return aggregated;\n }, {\n totalMinWidth: 0,\n totalMaxWidth: 0,\n totalWidth: 0,\n flexCount: 0\n });\nfunction applyWidthToColumns(columns, { availableWidth = 0, columnLayout = \"static\", defaultWidth = DEFAULT_COL_WIDTH, defaultMinWidth = DEFAULT_MIN_WIDTH, defaultMaxWidth = DEFAULT_MAX_WIDTH }) {\n if (\"fit\" === columnLayout) {\n const { totalMinWidth, totalMaxWidth, totalWidth, flexCount } = measureColumns(columns, defaultMaxWidth, defaultMinWidth);\n if (totalMaxWidth < availableWidth) return assignMaxWidthToAll(columns, defaultMaxWidth);\n if (totalMinWidth > availableWidth) ;\n else if (totalWidth > availableWidth) return shrinkColumnsToFitAvailableSpace(columns, availableWidth, totalWidth, defaultMinWidth, defaultWidth, flexCount);\n else if (totalWidth < availableWidth) return stretchColumnsToFillAvailableSpace(columns, availableWidth, totalWidth, defaultMaxWidth, defaultWidth);\n }\n return columns;\n}\nconst assignMaxWidthToAll = (columns, defaultMaxWidth)=>columns.map((column)=>{\n const { maxWidth = defaultMaxWidth } = column;\n if (column.width === maxWidth) return column;\n return {\n ...column,\n width: maxWidth\n };\n });\nconst shrinkColumnsToFitAvailableSpace = (columns, availableWidth, totalWidth, defaultMinWidth, defaultWidth, flexCount)=>{\n const excessWidth = totalWidth - availableWidth;\n const inFlexMode = flexCount > 0;\n let excessWidthPerColumn = excessWidth / (flexCount || columns.length);\n let columnsNotYetAtMinWidth = columns.length;\n let unassignedExcess = 0;\n let newColumns = columns.map((column)=>{\n const { minWidth = defaultMinWidth, width = defaultWidth, flex = 0 } = column;\n if (inFlexMode && 0 === flex) return column;\n const adjustedWidth = width - excessWidthPerColumn;\n if (!(adjustedWidth < minWidth)) return {\n ...column,\n width: adjustedWidth\n };\n columnsNotYetAtMinWidth -= 1;\n unassignedExcess += minWidth - adjustedWidth;\n return {\n ...column,\n width: minWidth\n };\n });\n if (0 === unassignedExcess) return newColumns;\n excessWidthPerColumn = unassignedExcess / columnsNotYetAtMinWidth;\n newColumns = newColumns.map((column)=>{\n const adjustedWidth = column.width - excessWidthPerColumn;\n if (column.width !== column.minWidth) return {\n ...column,\n width: adjustedWidth\n };\n return column;\n });\n return newColumns;\n};\nconst hasFlex = ({ flex })=>\"number\" == typeof flex;\nconst stretchColumnsToFillAvailableSpace = (columns, availableWidth, totalWidth, defaultMaxWidth, defaultWidth)=>{\n let freeSpaceToBeFilled = availableWidth - totalWidth;\n let adjustedColumns = columns;\n const canGrow = ({ width = defaultWidth, maxWidth = defaultMaxWidth })=>width < maxWidth;\n while(freeSpaceToBeFilled > 0){\n const flexCols = adjustedColumns.filter((col)=>hasFlex(col) && canGrow(col));\n const columnsNotYetAtMaxWidth = flexCols.length || adjustedColumns.filter(canGrow).length;\n const additionalWidthPerColumn = Math.ceil(freeSpaceToBeFilled / columnsNotYetAtMaxWidth);\n adjustedColumns = columns.map((column)=>{\n const { maxWidth = defaultMaxWidth, width = defaultWidth, flex = 0 } = column;\n if (flexCols.length > 0 && 0 === flex) return column;\n const adjustmentAmount = Math.min(additionalWidthPerColumn, freeSpaceToBeFilled);\n const adjustedWidth = width + adjustmentAmount;\n if (adjustedWidth > maxWidth) {\n freeSpaceToBeFilled -= adjustedWidth - maxWidth;\n return {\n ...column,\n width: maxWidth\n };\n }\n freeSpaceToBeFilled -= adjustmentAmount;\n return {\n ...column,\n width: adjustedWidth\n };\n });\n }\n return adjustedColumns;\n};\nconst dataAndColumnUnchanged = (p, p1)=>p.column === p1.column && p.column.valueFormatter(p.dataRow[p.column.name]) === p1.column.valueFormatter(p1.dataRow[p1.column.name]);\nconst dataColumnAndKeyUnchanged = (p, p1)=>p.column === p1.column && p.dataRow.key === p1.dataRow.key && p.column.valueFormatter(p.dataRow[p.column.name]) === p1.column.valueFormatter(p1.dataRow[p1.column.name]);\nconst toColumnName = (column)=>column.name;\nconst isStringColumn = (column)=>\"string\" === column.serverDataType;\nconst reorderColumnItems = (columnItems, orderedNames)=>{\n const columns = [];\n let previousName = \"\";\n for (const name of orderedNames)if (previousName !== name) {\n const columnItem = columnItems.find((c)=>c.name === name);\n if (columnItem) columns.push(columnItem);\n previousName = name;\n }\n return columns;\n};\nconst columnByAriaIndex = (columns, ariaColIndex)=>{\n const column = columns[ariaColIndex - 1];\n if (column && column.ariaColIndex === ariaColIndex) return column;\n if (column && column.ariaColIndex < ariaColIndex) {\n if (columns[ariaColIndex]?.ariaColIndex === ariaColIndex) return columns[ariaColIndex];\n }\n throw Error(`no column with aria-colIndex ${ariaColIndex}`);\n};\nconst MEASURES = {\n horizontal: {\n positionProp: \"left\",\n sizeProp: \"width\"\n },\n vertical: {\n positionProp: \"top\",\n sizeProp: \"height\"\n }\n};\nconst containersSet = new Set();\nconst viewsSet = new Set();\nconst layoutComponentsMap = new Map();\nconst cellRenderersMap = new Map();\nconst columnHeaderRenderersMap = new Map();\nconst configEditorsMap = new Map();\nconst cellConfigPanelsMap = new Map();\nconst editRuleValidatorsMap = new Map();\nconst optionsMap = new Map();\nconst rowClassGeneratorsMap = new Map();\nconst isTypeCompatible = (rendererType, serverDataType)=>{\n if (void 0 === rendererType || \"private\" === rendererType) return true;\n if (!Array.isArray(rendererType)) return rendererType === serverDataType;\n if (\"json\" === serverDataType) return false;\n return rendererType.includes(serverDataType);\n};\nconst isContainer = (componentType)=>containersSet.has(componentType);\nconst isView = (componentType)=>viewsSet.has(componentType);\nconst isLayoutComponent = (componentType)=>isContainer(componentType) || isView(componentType);\nconst isCellRenderer = (type, component)=>void 0 !== component && \"cell-renderer\" === type;\nconst isColumnHeaderContentRenderer = (type, component)=>\"column-header-content-renderer\" === type;\nconst isColumnHeaderLabelRenderer = (type, component)=>\"column-header-label-renderer\" === type;\nconst isCellConfigPanel = (type, component)=>\"cell-config-panel\" === type;\nconst isEditRuleValidator = (type, component)=>\"data-edit-validator\" === type;\nconst isRowClassGenerator = (type, component)=>\"row-class-generator\" === type;\nfunction registerComponent(componentName, component, componentType, options) {\n if (\"container\" === componentType || \"view\" === componentType || \"component\" === componentType) {\n layoutComponentsMap.set(componentName, component);\n if (\"container\" === componentType) containersSet.add(componentName);\n else if (\"view\" === componentType) viewsSet.add(componentName);\n } else if (isCellRenderer(componentType, component)) cellRenderersMap.set(componentName, component);\n else if (isColumnHeaderContentRenderer(componentType, component)) columnHeaderRenderersMap.set(componentName, component);\n else if (isColumnHeaderLabelRenderer(componentType, component)) columnHeaderRenderersMap.set(componentName, component);\n else if (isCellConfigPanel(componentType, component)) cellConfigPanelsMap.set(componentName, component);\n else if (isEditRuleValidator(componentType, component)) editRuleValidatorsMap.set(componentName, component);\n else if (isRowClassGenerator(componentType, component)) rowClassGeneratorsMap.set(componentName, component);\n if (options) optionsMap.set(componentName, options);\n}\nconst registerConfigurationEditor = (componentName, configurationEditor)=>{\n configEditorsMap.set(componentName, configurationEditor);\n};\nconst getRegisteredCellRenderers = (cellRendererDataType)=>{\n const rendererNames = Array.from(cellRenderersMap.keys());\n const allRenderers = rendererNames.map((name)=>({\n name,\n ...optionsMap.get(name)\n })).filter(({ userCanAssign })=>false !== userCanAssign);\n if (cellRendererDataType) return allRenderers.filter((renderer)=>isTypeCompatible(renderer.serverDataType, cellRendererDataType));\n return allRenderers;\n};\nconst getLayoutComponent = (componentName)=>{\n const layoutComponent = layoutComponentsMap.get(componentName);\n if (layoutComponent) return layoutComponent;\n throw Error(`layout component ${componentName} not found in ComponentRegistry`);\n};\nconst getCellRendererOptions = (renderName)=>optionsMap.get(renderName);\nfunction getCellRenderer(column) {\n return dataCellRenderer(column);\n}\nfunction getColumnHeaderContentRenderer(column) {\n if (column.colHeaderContentRenderer) return columnHeaderRenderersMap.get(column.colHeaderContentRenderer);\n}\nfunction getColumnHeaderLabelRenderer(column) {\n if (column.colHeaderLabelRenderer) return columnHeaderRenderersMap.get(column.colHeaderLabelRenderer);\n}\nconst getRowClassNameGenerator = (generatorId)=>rowClassGeneratorsMap.get(generatorId);\nfunction getConfigurationEditor(configEditor = \"\") {\n return configEditorsMap.get(configEditor);\n}\nfunction getCellConfigPanelRenderer(name) {\n return cellConfigPanelsMap.get(name);\n}\nfunction getEditRuleValidator(name) {\n return editRuleValidatorsMap.get(name);\n}\nfunction dataCellRenderer(column) {\n if (\"boolean\" === column.serverDataType && !hasCustomRenderer(column.type)) return cellRenderersMap.get(\"checkbox-cell\");\n if (column.editable && !hasCustomRenderer(column.type)) return cellRenderersMap.get(\"input-cell\");\n if (isTypeDescriptor(column.type) && isColumnTypeRenderer(column.type.renderer)) return cellRenderersMap.get(column.type.renderer?.name);\n else if (\"boolean\" === column.serverDataType) return cellRenderersMap.get(\"checkbox-cell\");\n}\nconst getCookieValue = (name)=>{\n if (globalThis.document?.cookie !== void 0) return globalThis.document.cookie.split(\"; \").find((row)=>row.startsWith(`${name}=`))?.split(\"=\")[1];\n};\nfunction setCookieValue(name, value, days) {\n let expires = \"\";\n if (\"number\" == typeof days) {\n const date = new Date();\n date.setTime(date.getTime() + 86400000 * days);\n expires = \"; expires=\" + date.toUTCString();\n }\n const encodedName = encodeURIComponent(name);\n const encodedValue = encodeURIComponent(value);\n document.cookie = `${encodedName}=${encodedValue}${expires};`;\n}\nconst importCSS = async (path)=>{\n const container = new CSSStyleSheet();\n return fetch(path).then((x1)=>x1.text()).then((x1)=>container.replace(x1));\n};\nconst EditButtons = ({ editSession, onCancel, onSave })=>{\n const [editState, setEditState] = (0, __WEBPACK_EXTERNAL_MODULE_react__.useState)(\"clean\");\n (0, __WEBPACK_EXTERNAL_MODULE_react__.useMemo)(()=>{\n editSession?.on(\"editState\", setEditState);\n }, [\n editSession\n ]);\n return /*#__PURE__*/ React.createElement(React.Fragment, null, /*#__PURE__*/ React.createElement(__WEBPACK_EXTERNAL_MODULE__salt_ds_core__.Button, {\n disabled: \"clean\" === editState,\n onClick: onSave,\n sentiment: \"accented\"\n }, \"Save\"), /*#__PURE__*/ React.createElement(__WEBPACK_EXTERNAL_MODULE__salt_ds_core__.Button, {\n onClick: onCancel\n }, \"Cancel\"));\n};\nconst DataEditingContext = /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react__.createContext)(void 0);\nconst DataEditingProvider = ({ children, editSession })=>/*#__PURE__*/ React.createElement(DataEditingContext.Provider, {\n value: editSession\n }, children);\nfunction useEditSession(throwIfUnavailable = false) {\n const editSession = (0, __WEBPACK_EXTERNAL_MODULE_react__.useContext)(DataEditingContext);\n if (void 0 !== editSession) return editSession;\n if (throwIfUnavailable) throw Error(\"[useEditSession] no DataEditingContext in scope. You need to enclose editable component(s) with DataEditingProvider\");\n}\nfunction isArrayOfListeners(listeners) {\n return Array.isArray(listeners);\n}\nfunction isOnlyListener(listeners) {\n return !Array.isArray(listeners);\n}\nclass EventEmitter {\n #events = new Map();\n addListener(event, listener) {\n const listeners = this.#events.get(event);\n if (listeners) {\n if (isArrayOfListeners(listeners)) listeners.push(listener);\n else if (isOnlyListener(listeners)) this.#events.set(event, [\n listeners,\n listener\n ]);\n } else this.#events.set(event, listener);\n }\n removeListener(event, listener) {\n if (!this.#events.has(event)) return;\n const listenerOrListeners = this.#events.get(event);\n let position = -1;\n if (listenerOrListeners === listener) this.#events.delete(event);\n else if (Array.isArray(listenerOrListeners)) {\n for(let i = listenerOrListeners.length; i-- > 0;)if (listenerOrListeners[i] === listener) {\n position = i;\n break;\n }\n if (position < 0) return;\n if (1 === listenerOrListeners.length) {\n listenerOrListeners.length = 0;\n this.#events.delete(event);\n } else listenerOrListeners.splice(position, 1);\n }\n }\n removeAllListeners(event) {\n if (event && this.#events.has(event)) this.#events.delete(event);\n else if (void 0 === event) this.#events.clear();\n }\n emit(event, ...args) {\n if (this.#events) {\n const handler = this.#events.get(event);\n if (handler) this.invokeHandler(handler, args);\n }\n }\n once(event, listener) {\n const handler = (...args)=>{\n this.removeListener(event, handler);\n listener(...args);\n };\n this.on(event, handler);\n }\n on(event, listener) {\n this.addListener(event, listener);\n }\n hasListener(event, listener) {\n const listeners = this.#events.get(event);\n if (Array.isArray(listeners)) return listeners.includes(listener);\n return listeners === listener;\n }\n invokeHandler(handler, args) {\n if (isArrayOfListeners(handler)) handler.slice().forEach((listener)=>this.invokeHandler(listener, args));\n else switch(args.length){\n case 0:\n handler();\n break;\n case 1:\n handler(args[0]);\n break;\n case 2:\n handler(args[0], args[1]);\n break;\n default:\n handler.call(null, ...args);\n }\n }\n}\nconst MENU_RPC_TYPES = [\n \"VIEW_PORT_MENUS_SELECT_RPC\",\n \"VIEW_PORT_MENU_TABLE_RPC\",\n \"VIEW_PORT_MENU_ROW_RPC\",\n \"VIEW_PORT_MENU_CELL_RPC\"\n];\nconst INVALID_SESSION = \"Invalid session\";\nconst SESSION_LIMIT_EXCEEDED = \"User session limit exceeded\";\nconst INVALID_TOKEN = \"Invalid token\";\nconst TOKEN_EXPIRED = \"Token has expired\";\nconst InvalidLoginMessages = [\n INVALID_SESSION,\n SESSION_LIMIT_EXCEEDED,\n INVALID_TOKEN,\n TOKEN_EXPIRED\n];\nconst isLoginErrorMessage = (message)=>\"string\" == typeof message && InvalidLoginMessages.includes(message);\nconst isSelectRequest = (message)=>message && \"object\" == typeof message && \"type\" in message && (\"SELECT_ROW\" === message.type || \"DESELECT_ROW\" === message.type || \"SELECT_ROW_RANGE\" === message.type || \"SELECT_ALL\" === message.type || \"DESELECT_ALL\" === message.type);\nconst isSelectSuccessWithRowCount = (response)=>[\n \"SELECT_ROW_SUCCESS\",\n \"DESELECT_ROW_SUCCESS\",\n \"SELECT_ROW_RANGE_SUCCESS\",\n \"SELECT_ALL_SUCCESS\",\n \"DESELECT_ALL_SUCCESS\"\n ].includes(response.type ?? \"\") && \"number\" == typeof response.selectedRowCount;\nconst isRpcServiceRequest = (message)=>\"RPC_REQUEST\" === message.type;\nconst hasViewPortContext = (message)=>\"VIEWPORT_CONTEXT\" === message.context.type;\nconst isVuuMenuRpcRequest = (message)=>MENU_RPC_TYPES.includes(message[\"type\"]);\nconst isLoginResponse = (message)=>null !== message && \"object\" == typeof message && \"type\" in message && (\"LOGIN_SUCCESS\" === message.type || \"LOGIN_FAIL\" === message.type);\nconst isRpcSuccess = (rpcResult)=>rpcResult?.type === \"SUCCESS_RESULT\";\nconst isRpcError = (rpcResult)=>rpcResult?.type === \"ERROR_RESULT\";\nconst isRequestResponse = (message)=>\"requestId\" in message;\nconst isOpenSessionTableDialogMessage = (rpcResponse)=>\"VIEW_PORT_MENU_RESP\" === rpcResponse.type && isOpenDialogAction(rpcResponse.action) && \"tableSchema\" in rpcResponse.action;\nconst isOpenDialogAction = (action)=>void 0 !== action && \"OPEN_DIALOG_ACTION\" === action.type;\nconst isTypeaheadRequest = (request)=>isRpcServiceRequest(request) && (\"getUniqueFieldValues\" === request.rpcName || \"getUniqueFieldValuesStartingWith\" === request.rpcName);\nconst isCreateVpSuccess = (response)=>\"CREATE_VP_SUCCESS\" === response.type;\nconst isSessionTable = (table)=>{\n if (null !== table && \"object\" == typeof table && \"table\" in table && \"module\" in table) return table.table.startsWith(\"session\");\n return false;\n};\nfunction isActionMessage(rpcResponse) {\n return \"VIEW_PORT_MENU_RESP\" === rpcResponse.type;\n}\nfunction isSessionTableActionMessage(rpcResponse) {\n return isActionMessage(rpcResponse) && isOpenDialogAction(rpcResponse.action) && isSessionTable(rpcResponse.action.table) && rpcResponse.action?.renderComponent === \"inline-form\";\n}\nfunction isCustomComponentActionMessage(rpcResponse) {\n return isActionMessage(rpcResponse) && isOpenDialogAction(rpcResponse.action) && isSessionTable(rpcResponse.action.table) && \"string\" == typeof rpcResponse.action.renderComponent && isView(rpcResponse.action.renderComponent);\n}\nconst protocol_message_utils_numericTypes = [\n \"int\",\n \"long\",\n \"double\",\n \"scaleddecimal2\",\n \"scaleddecimal4\",\n \"scaleddecimal6\",\n \"scaleddecimal8\"\n];\nfunction isNumericType(dataType) {\n return protocol_message_utils_numericTypes.includes(dataType);\n}\nclass EditSession extends EventEmitter {\n #active = false;\n #rowEdits = new Map();\n #editCount = 0;\n #dataSource;\n #inEditMode = false;\n get active() {\n return this.#active;\n }\n set active(isActive) {\n this.#active = isActive;\n }\n get editCount() {\n return this.#editCount;\n }\n set editCount(val) {\n if (val !== this.#editCount) {\n const oldCount = this.#editCount;\n this.#editCount = val;\n if (0 === val) this.emit(\"editState\", \"clean\");\n else if (0 === oldCount) this.emit(\"editState\", \"dirty\");\n }\n }\n set dataSource(ds) {\n this.#dataSource = ds;\n }\n clear() {\n this.#rowEdits.clear();\n this.#editCount = 0;\n }\n async enterEditMode() {\n this.#inEditMode = true;\n const rpcResponse = await this.#dataSource?.beginEditSession?.();\n console.log({\n rpcResponse\n });\n if (isRpcSuccess(rpcResponse)) {\n const { table: sessionTable } = rpcResponse.data;\n return sessionTable;\n }\n console.log(\"fail\");\n }\n get inEditMode() {\n return this.#inEditMode;\n }\n get editState() {\n return 0 === this.editCount ? \"clean\" : \"dirty\";\n }\n async cancelChanges() {\n const rpcResponse = await this.#dataSource?.rpcRequest?.({\n type: \"RPC_REQUEST\",\n rpcName: \"endEditSession\",\n params: {}\n });\n this.clear();\n return rpcResponse;\n }\n async saveChanges() {\n const rpcResponse = await this.#dataSource?.rpcRequest?.({\n type: \"RPC_REQUEST\",\n rpcName: \"endEditSession\",\n params: {\n save: true\n }\n });\n this.clear();\n return rpcResponse;\n }\n edit(key, columnName, originalValue, newValue) {\n const rowEditDetails = this.#rowEdits.get(key);\n if (rowEditDetails) {\n const { cellEdits } = rowEditDetails;\n const cellEdit = cellEdits.get(columnName);\n if (cellEdit) {\n if (newValue === cellEdit.originalValue) {\n if (1 === cellEdits.size) this.#rowEdits.delete(key);\n else cellEdits.delete(columnName);\n this.editCount = this.#editCount - 1;\n } else cellEdit.editedValue = newValue;\n } else {\n cellEdits.set(columnName, {\n originalValue,\n editedValue: newValue\n });\n this.editCount = this.#editCount + 1;\n }\n } else {\n this.#rowEdits.set(key, {\n cellEdits: new Map([\n [\n columnName,\n {\n originalValue,\n editedValue: newValue\n }\n ]\n ])\n });\n this.editCount = this.#editCount + 1;\n }\n }\n async commit(key, columnName, typedValue) {\n const rowEditDetails = this.#rowEdits.get(key);\n if (!rowEditDetails) return {\n errorMessage: \"CHANGE_REVERTED\",\n type: \"ERROR_RESULT\"\n };\n {\n const { cellEdits } = rowEditDetails;\n const cellEditValues = cellEdits.get(columnName);\n if (cellEditValues) {\n const rpcResponse = await this.#dataSource?.rpcRequest?.({\n type: \"RPC_REQUEST\",\n rpcName: \"editCell\",\n params: {\n column: columnName,\n data: typedValue,\n key\n }\n });\n return rpcResponse;\n }\n }\n }\n}\nconst DataContext_getServerAPI = ()=>{\n throw Error(\"no DataProvider has been installed\");\n};\nclass NullDataSourceConstructor {\n constructor(_){\n throw Error(\"no DataProvider has been installed\");\n }\n}\nconst DataContext = /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react__.createContext)({\n isLocalData: false,\n getServerAPI: DataContext_getServerAPI,\n VuuDataSource: NullDataSourceConstructor\n});\nconst DataProvider = ({ children, getServerAPI, isLocalData = true, VuuDataSource })=>/*#__PURE__*/ React.createElement(DataContext.Provider, {\n value: {\n isLocalData,\n VuuDataSource,\n getServerAPI\n }\n }, children);\nconst useData = ()=>(0, __WEBPACK_EXTERNAL_MODULE_react__.useContext)(DataContext);\nconst useLayoutEffectSkipFirst = (func, deps)=>{\n const goodToGo = (0, __WEBPACK_EXTERNAL_MODULE_react__.useRef)(false);\n (0, __WEBPACK_EXTERNAL_MODULE_react__.useLayoutEffect)(()=>{\n if (goodToGo.current) func();\n else goodToGo.current = true;\n }, deps);\n};\nconst useEditableTable = ({ columns, dataSource: dataSourceProp, isEditMode, onCancel, onSave, table })=>{\n const { VuuDataSource } = useData();\n const [sessionDataSource, setSessionDataSource] = (0, __WEBPACK_EXTERNAL_MODULE_react__.useState)(void 0);\n const clearSessionDataSource = (0, __WEBPACK_EXTERNAL_MODULE_react__.useCallback)(()=>{\n setSessionDataSource((dataSource)=>{\n dataSource?.unsubscribe();\n });\n }, []);\n useLayoutEffectSkipFirst(()=>{\n console.warn(\"[useEditableTable] columns and or table changed\");\n }, [\n columns,\n table\n ]);\n const dataSource = (0, __WEBPACK_EXTERNAL_MODULE_react__.useMemo)(()=>{\n if (dataSourceProp) return dataSourceProp;\n if (table) return new VuuDataSource({\n columns,\n table\n });\n throw Error(\"useEditableTable unable to provide DataSource, neither dataSource nor table available as props\");\n }, [\n VuuDataSource,\n columns,\n dataSourceProp,\n table\n ]);\n const editSession = (0, __WEBPACK_EXTERNAL_MODULE_react__.useMemo)(()=>new EditSession(), []);\n (0, __WEBPACK_EXTERNAL_MODULE_react__.useMemo)(()=>{\n if (dataSource) editSession.dataSource = dataSource;\n }, [\n dataSource,\n editSession\n ]);\n const handleCancel = (0, __WEBPACK_EXTERNAL_MODULE_react__.useCallback)(()=>{\n editSession.cancelChanges();\n onCancel();\n clearSessionDataSource();\n dataSource.resume?.();\n }, [\n clearSessionDataSource,\n dataSource,\n editSession,\n onCancel\n ]);\n const handleSave = (0, __WEBPACK_EXTERNAL_MODULE_react__.useCallback)(async ()=>{\n dataSource.resume?.();\n const response = await editSession.saveChanges();\n if (isRpcSuccess(response)) {\n onSave();\n clearSessionDataSource();\n }\n }, [\n clearSessionDataSource,\n dataSource,\n editSession,\n onSave\n ]);\n (0, __WEBPACK_EXTERNAL_MODULE_react__.useMemo)(async ()=>{\n if (isEditMode) {\n const sessionTable = await editSession.enterEditMode();\n if (sessionTable && dataSource.tableSchema) {\n const sessionDataSource = new VuuDataSource({\n columns: dataSource.columns,\n table: sessionTable,\n viewport: sessionTable.table\n });\n setSessionDataSource(sessionDataSource);\n editSession.dataSource = sessionDataSource;\n }\n }\n }, [\n VuuDataSource,\n dataSource,\n editSession,\n isEditMode\n ]);\n return {\n dataSource: sessionDataSource ?? dataSource,\n editSession,\n onCancel: handleCancel,\n onSave: handleSave\n };\n};\nconst UP1 = \"up1\";\nconst UP2 = \"up2\";\nconst DOWN1 = \"down1\";\nconst DOWN2 = \"down2\";\nconst decimalPattern = /^-?[0-9]*\\.[0-9]+$/;\nconst stringIsValidInt = (val)=>parseInt(val, 10).toString() === val;\nconst stringIsValidDecimal = (val)=>stringIsValidInt(val) || decimalPattern.test(val);\nconst stringIsValidNumber = (val)=>stringIsValidInt(val) || stringIsValidDecimal(val);\nconst numericTypeOfStringValue = (val)=>stringIsValidInt(val) ? \"int\" : stringIsValidDecimal(val) ? \"double\" : \"NaN\";\nconst isValidNumber = (n)=>\"number\" == typeof n && isFinite(n);\nconst EMPTY = {};\nconst shallowEquals = (o1 = EMPTY, o2 = EMPTY)=>{\n const props1 = Object.keys(o1);\n const props2 = Object.keys(o2);\n return props1.length === props2.length && props1.every((key)=>o1[key] === o2[key]);\n};\nfunction getMovingValueDirection(newValue, direction, prevValue, decimalPlaces) {\n if (void 0 === newValue) return \"\";\n if (!isFinite(newValue) || void 0 === prevValue || void 0 === direction) return \"\";\n {\n let diff = newValue - prevValue;\n if (diff) {\n if (\"number\" == typeof decimalPlaces) diff = +newValue.toFixed(decimalPlaces) - +prevValue.toFixed(decimalPlaces);\n }\n if (!diff) return \"\";\n if (\"\" === direction) {\n if (diff < 0) return DOWN1;\n return UP1;\n }\n if (diff > 0) {\n if (direction === DOWN1 || direction === DOWN2 || direction === UP2) return UP1;\n return UP2;\n } else if (direction === UP1 || direction === UP2 || direction === DOWN2) return DOWN1;\n else return DOWN2;\n }\n}\nfunction asInteger(index, defaultValue) {\n if (\"number\" == typeof index) return index;\n {\n const numIdx = parseInt(index ?? \"\");\n if (!isNaN(numIdx)) return numIdx;\n if (\"number\" == typeof defaultValue) return defaultValue;\n throw Error(`parseIndex invalid value ${index}`);\n }\n}\nconst dataDescriptorTypeToVuuRowDataItemType = ({ serverDataType = \"string\" })=>{\n switch(serverDataType){\n case \"double\":\n case \"int\":\n case \"long\":\n return \"number\";\n case \"boolean\":\n return \"boolean\";\n default:\n return \"string\";\n }\n};\nconst uuid = (size = 21)=>{\n let id = '';\n const bytes = crypto.getRandomValues(new Uint8Array(size));\n while(size--){\n const byte = 63 & bytes[size];\n if (byte < 36) id += byte.toString(36);\n else if (byte < 62) id += (byte - 26).toString(36).toUpperCase();\n else if (byte < 63) id += '_';\n else id += '-';\n }\n return id;\n};\nconst NoFilter = {\n filter: \"\"\n};\nconst NoSort = {\n sortDefs: []\n};\nconst vanillaConfig = {\n aggregations: [],\n columns: [],\n filterSpec: NoFilter,\n groupBy: [],\n sort: NoSort\n};\nconst stripVisualLink = (configWithVisualLink)=>{\n if (!configWithVisualLink.visualLink) return configWithVisualLink;\n {\n const { visualLink, ...config } = configWithVisualLink;\n return config;\n }\n};\nconst equivalentAggregations = ({ aggregations: agg1 }, { aggregations: agg2 })=>void 0 === agg1 && agg2?.length === 0 || void 0 === agg2 && agg1?.length === 0;\nconst equivalentColumns = ({ columns: cols1 }, { columns: cols2 })=>void 0 === cols1 && cols2?.length === 0 || void 0 === cols2 && cols1?.length === 0;\nconst equivalentFilter = ({ filterSpec: f1 }, { filterSpec: f2 })=>void 0 === f1 && f2?.filter === \"\" || void 0 === f2 && f1?.filter === \"\";\nconst equivalentGroupBy = ({ groupBy: val1 }, { groupBy: val2 })=>void 0 === val1 && val2?.length === 0 || void 0 === val2 && val1?.length === 0;\nconst equivalentSort = ({ sort: s1 }, { sort: s2 })=>void 0 === s1 && s2?.sortDefs.length === 0 || void 0 === s2 && s1?.sortDefs.length === 0;\nconst exactlyTheSame = (a, b)=>{\n if (a === b) return true;\n if (void 0 === a && void 0 === b) return true;\n return false;\n};\nconst isAggregationsChanged = (config, newConfig)=>{\n const { aggregations: agg1 } = config;\n const { aggregations: agg2 } = newConfig;\n if (exactlyTheSame(agg1, agg2) || equivalentAggregations(config, newConfig)) return false;\n if (void 0 === agg1 || void 0 === agg2) return true;\n if (agg1.length !== agg2.length) return true;\n return agg1.some(({ column, aggType }, i)=>column !== agg2[i].column || aggType !== agg2[i].aggType);\n};\nconst isColumnsChanged = (config, newConfig)=>{\n const { columns: cols1 } = config;\n const { columns: cols2 } = newConfig;\n if (exactlyTheSame(cols1, cols2) || equivalentColumns(config, newConfig)) return false;\n if (void 0 === cols1 || void 0 === cols2) return true;\n if (cols1?.length !== cols2?.length) return true;\n return cols1.some((column, i)=>column !== cols2?.[i]);\n};\nconst isBaseFilterChanged = (c1, c2)=>{\n if (equivalentFilter(c1, c2)) return false;\n return c1.baseFilterSpec?.filter !== c2.baseFilterSpec?.filter;\n};\nconst isFilterChanged = (c1, c2)=>{\n if (equivalentFilter(c1, c2)) return false;\n return c1.filterSpec?.filter !== c2.filterSpec?.filter;\n};\nconst isGroupByChanged = (config, newConfig)=>{\n const { groupBy: g1 } = config;\n const { groupBy: g2 } = newConfig;\n if (exactlyTheSame(g1, g2) || equivalentGroupBy(config, newConfig)) return false;\n if (void 0 === g1 || void 0 === g2) return true;\n if (g1?.length !== g2?.length) return true;\n return g1.some((column, i)=>column !== g2?.[i]);\n};\nconst isSortChanged = (config, newConfig)=>{\n const { sort: s1 } = config;\n const { sort: s2 } = newConfig;\n if (exactlyTheSame(s1, s2) || equivalentSort(config, newConfig)) return false;\n if (void 0 === s1 || void 0 === s2) return true;\n if (s1?.sortDefs.length !== s2?.sortDefs.length) return true;\n return s1.sortDefs.some(({ column, sortType }, i)=>column !== s2.sortDefs[i].column || sortType !== s2.sortDefs[i].sortType);\n};\nconst isVisualLinkChanged = ({ visualLink: v1 }, { visualLink: v2 })=>{\n if (exactlyTheSame(v1, v2)) return false;\n if (void 0 === v1 || void 0 === v2) return true;\n return v1.label !== v2.label || v2.parentVpId !== v2.parentVpId;\n};\nconst NO_CONFIG_CHANGES = {\n aggregationsChanged: false,\n baseFilterChanged: false,\n columnsChanged: false,\n filterChanged: false,\n groupByChanged: false,\n noChanges: true,\n sortChanged: false,\n visualLinkChanged: false\n};\nconst isConfigChanged = (config, newConfig)=>{\n if (exactlyTheSame(config, newConfig)) return NO_CONFIG_CHANGES;\n if (void 0 === config && void 0 == newConfig) return NO_CONFIG_CHANGES;\n if (void 0 === config) return isConfigChanged({}, newConfig);\n if (void 0 === newConfig) return isConfigChanged(config, {});\n const aggregationsChanged = isAggregationsChanged(config, newConfig);\n const baseFilterChanged = isBaseFilterChanged(config, newConfig);\n const columnsChanged = isColumnsChanged(config, newConfig);\n const filterChanged = isFilterChanged(config, newConfig);\n const groupByChanged = isGroupByChanged(config, newConfig);\n const sortChanged = isSortChanged(config, newConfig);\n const visualLinkChanged = isVisualLinkChanged(config, newConfig);\n const noChanges = !(aggregationsChanged || baseFilterChanged || columnsChanged || filterChanged || groupByChanged || sortChanged || visualLinkChanged);\n return {\n aggregationsChanged,\n baseFilterChanged,\n columnsChanged,\n filterChanged,\n groupByChanged,\n noChanges,\n sortChanged,\n visualLinkChanged\n };\n};\nconst hasGroupBy = (config)=>void 0 !== config && void 0 !== config.groupBy && config.groupBy.length > 0;\nconst hasBaseFilter = (config)=>config?.baseFilterSpec !== void 0 && config.baseFilterSpec.filter.length > 0;\nconst hasFilter = (config)=>config?.filterSpec !== void 0 && config.filterSpec.filter.length > 0;\nconst hasSort = (config)=>config?.sort !== void 0 && Array.isArray(config.sort?.sortDefs) && config.sort.sortDefs.length > 0;\nconst isTypeaheadSuggestionProvider = (source)=>\"function\" == typeof source[\"getTypeaheadSuggestions\"];\nconst isTableSchemaMessage = (message)=>\"TABLE_META_RESP\" === message.type;\nconst isConnectionQualityMetrics = (msg)=>\"connection-metrics\" === msg.type;\nconst messageHasResult = (msg)=>void 0 !== msg.result;\nconst isVisualLinkMessage = (msg)=>msg.type.endsWith(\"_VISUAL_LINK\");\nconst isViewportMessage = (msg)=>\"viewport\" in msg;\nconst messageHasDataRows = (message)=>\"viewport-update\" === message.type && Array.isArray(message.rows);\nconst messageHasSize = (message)=>\"viewport-update\" === message.type && \"number\" == typeof message.size;\nconst withConfigDefaults = (config)=>{\n if (config.aggregations && config.baseFilterSpec && config.columns && config.filterSpec && config.groupBy && config.sort) return config;\n {\n const { aggregations = [], baseFilterSpec: baseFilter = {\n filter: \"\"\n }, columns = [], filterSpec: filter = {\n filter: \"\"\n }, groupBy = [], sort = {\n sortDefs: []\n }, visualLink } = config;\n return {\n aggregations,\n baseFilterSpec: baseFilter,\n columns,\n filterSpec: filter,\n groupBy,\n sort,\n visualLink\n };\n }\n};\nconst dataSourceRowToEntity = (row, columnMap)=>Object.entries(columnMap).reduce((entity, [name, index])=>({\n ...entity,\n [name]: row[index]\n }), {});\nclass RangeImpl {\n from;\n to;\n #baseFrom;\n #renderBufferSize;\n #baseTo;\n constructor(from, to, renderBufferSize = 0){\n this.from = from;\n this.to = to;\n this.#renderBufferSize = 0;\n this.#baseFrom = from;\n this.#baseTo = to;\n this.#renderBufferSize = renderBufferSize;\n }\n get reset() {\n return new RangeImpl(0, this.#baseTo - this.#baseFrom, this.#renderBufferSize);\n }\n get withBuffer() {\n return getFullRange(this, this.#renderBufferSize);\n }\n equals(range) {\n return range.from === this.#baseFrom && range.to === this.#baseTo;\n }\n toJson() {\n return {\n from: this.from,\n to: this.to,\n baseFrom: this.#baseFrom,\n baseTo: this.#baseTo,\n renderBufferSize: this.#renderBufferSize\n };\n }\n}\nconst Range = (from, to, renderBufferSize)=>new RangeImpl(from, to, renderBufferSize);\nconst NULL_RANGE = Range(0, 0);\nfunction getFullRange({ from, to }, bufferSize = 0, totalRowCount = Number.MAX_SAFE_INTEGER) {\n if (0 === from && 0 === to) return {\n from,\n to\n };\n if (0 === bufferSize) {\n if (totalRowCount < from) return {\n from: 0,\n to: 0\n };\n return {\n from,\n to: Math.min(to, totalRowCount)\n };\n }\n if (0 === from) return {\n from,\n to: Math.min(to + bufferSize, totalRowCount)\n };\n else {\n const shortfallBefore = from - bufferSize < 0;\n const shortfallAfter = totalRowCount - (to + bufferSize) < 0;\n if (shortfallBefore && shortfallAfter) return {\n from: 0,\n to: totalRowCount\n };\n if (shortfallBefore) return {\n from: 0,\n to: to + bufferSize\n };\n else if (shortfallAfter) return {\n from: Math.max(0, from - bufferSize),\n to: totalRowCount\n };\n else return {\n from: from - bufferSize,\n to: to + bufferSize\n };\n }\n}\nconst withinRange = (value, { from, to })=>value >= from && value < to;\nconst rangeNewItems = ({ from: from1, to: to1 }, newRange)=>{\n const { from: from2, to: to2 } = newRange;\n const noOverlap = from2 >= to1 || to2 <= from1;\n const newFullySubsumesOld = from2 < from1 && to2 > to1;\n return noOverlap || newFullySubsumesOld ? newRange : to2 > to1 ? {\n from: to1,\n to: to2\n } : {\n from: from2,\n to: from1\n };\n};\nclass WindowRange {\n from;\n to;\n constructor(from, to){\n this.from = from;\n this.to = to;\n }\n isWithin(index) {\n return withinRange(index, this);\n }\n overlap(from, to) {\n return from >= this.to || to < this.from ? [\n 0,\n 0\n ] : [\n Math.max(from, this.from),\n Math.min(to, this.to)\n ];\n }\n copy() {\n return new WindowRange(this.from, this.to);\n }\n}\nconst scaledDecimals = (fraction, decimals)=>{\n if (fraction.length > decimals) return fraction.slice(0, decimals);\n if (fraction.length === decimals) return fraction;\n return fraction.padEnd(decimals, \"0\");\n};\nclass ScaledDecimal {\n value;\n decimals;\n constructor(value, decimals = 6){\n this.value = value;\n this.decimals = decimals;\n console.log(`create a scaled decimal ${value} (${decimals} decimals)`);\n }\n get asLong() {\n if (\"\" === this.value) return \"\";\n {\n const [integral, fraction = \"0\"] = this.value.split(\".\");\n return `${integral}${scaledDecimals(fraction, this.decimals)}`;\n }\n }\n toJSON() {\n return this.value;\n }\n toString() {\n return this.value;\n }\n}\nconst ScaledDecimal2 = (value)=>new ScaledDecimal(value, 2);\nconst ScaledDecimal4 = (value)=>new ScaledDecimal(value, 4);\nconst ScaledDecimal6 = (value)=>new ScaledDecimal(value, 6);\nconst ScaledDecimal8 = (value)=>new ScaledDecimal(value, 8);\nconst singleValueFilterOps = new Set([\n \"=\",\n \"!=\",\n \">\",\n \">=\",\n \"<\",\n \"<=\",\n \"contains\",\n \"starts\",\n \"ends\"\n]);\nconst isBetweenOperator = (op)=>\"between\" === op || \"between-inclusive\" === op;\nconst isValidFilterClauseOp = (op)=>\"in\" === op || singleValueFilterOps.has(op);\nconst isNamedFilter = (f)=>void 0 !== f && void 0 !== f.name;\nconst isSingleValueFilter = (f)=>void 0 !== f && singleValueFilterOps.has(f.op);\nconst isScaledDecimalFilterClause = (f)=>f.value instanceof ScaledDecimal;\nconst isSerializableFilter = (f)=>isSingleValueFilter(f) && \"asQuery\" in f && \"function\" == typeof f[\"asQuery\"];\nconst isFilter = (f)=>\"object\" == typeof f && null !== f && (isFilterClause(f) || isMultiClauseFilter(f));\nconst isFilterClause = (f)=>void 0 !== f && (isSingleValueFilter(f) || isMultiValueFilter(f));\nconst isMultiValueFilter = (f)=>void 0 !== f && \"in\" === f.op;\nconst isInFilter = (f)=>\"in\" === f.op;\nconst isAndFilter = (f)=>f?.op === \"and\";\nconst isBetweenFilter = (f)=>isAndFilter(f) && 2 === f.filters.length && f.filters[0].column === f.filters[1].column && (\">\" === f.filters[0].op && \"<\" === f.filters[1].op || \">=\" === f.filters[0].op && \"<=\" === f.filters[1].op);\nconst isOrFilter = (f)=>f?.op === \"or\";\nconst isCompleteFilter = (filter)=>isSingleValueFilter(filter) && void 0 !== filter.column && void 0 !== filter.op && void 0 !== filter.value;\nfunction isMultiClauseFilter(f) {\n return void 0 !== f && (\"and\" === f.op || \"or\" === f.op);\n}\nconst isExtendedFilter = (f)=>\"object\" == typeof f.extendedOptions;\nconst applyFilterToColumns = (columns, { filterStruct })=>columns.map((column)=>{\n const filter = extractFilterForColumn(filterStruct, column.name);\n if (void 0 !== filter) return {\n ...column,\n filter\n };\n if (column.filter) return {\n ...column,\n filter: void 0\n };\n return column;\n });\nconst isFilteredColumn = (column)=>void 0 !== column.filter;\nconst stripFilterFromColumns = (columns)=>columns.map((col)=>{\n const { filter, ...rest } = col;\n return filter ? rest : col;\n });\nconst extractFilterForColumn = (filter, columnName)=>{\n if (isMultiClauseFilter(filter)) return collectFiltersForColumn(filter, columnName);\n if (isFilterClause(filter)) return filter.column === columnName ? filter : void 0;\n};\nconst collectFiltersForColumn = (filter, columnName)=>{\n const { filters, op } = filter;\n const results = [];\n filters.forEach((filter)=>{\n const ffc = extractFilterForColumn(filter, columnName);\n if (ffc) results.push(ffc);\n });\n if (0 === results.length) return;\n if (1 === results.length) return results[0];\n return {\n op,\n filters: results\n };\n};\nconst stringifyBoolean = (value)=>\"boolean\" == typeof value ? \"${filter.value}\" : value;\nconst getColumnValueFromFilter = (column, operator, filter)=>{\n if (isSingleValueFilter(filter)) {\n if (filter.column === column.name) {\n if (!operator.startsWith(\"between\")) return stringifyBoolean(filter.value);\n if (\"=\" === filter.op) return [\n `${filter.value}`,\n \"\"\n ];\n if (\"<\" === filter.op) return [\n \"\",\n `${filter.value}`\n ];\n }\n } else if (isBetweenFilter(filter)) {\n if (filter.filters[0].column === column.name) {\n const [{ value: v1 }, { value: v2 }] = filter.filters;\n return [\n `${v1}`,\n `${v2}`\n ];\n }\n } else if (isAndFilter(filter)) {\n const filterForColumn = filter.filters.find((f)=>isBetweenFilter(f) ? f.filters[0].column === column.name : f.column === column.name);\n if (isSingleValueFilter(filterForColumn)) return stringifyBoolean(filterForColumn.value);\n if (operator.startsWith(\"between\") && isBetweenFilter(filterForColumn)) {\n const [{ value: v1 }, { value: v2 }] = filterForColumn.filters;\n return [\n `${v1}`,\n `${v2}`\n ];\n }\n }\n if (!operator.startsWith(\"between\")) return \"\";\n if (\"time\" === column.type) return [\n \"00:00:00\",\n \"23:59:59\"\n ];\n return [\n \"\",\n \"\"\n ];\n};\nconst betweenFiltersAreEqual = (f1, f2)=>{\n const [from1, to1] = f1.filters;\n const [from2, to2] = f2.filters;\n return filtersAreEqual(from1, from2) && filtersAreEqual(to1, to2);\n};\nconst singleValueFilterClausesAreEqual = (f1, f2)=>f1.column === f2.column && f1.op === f2.op && f1.value === f2.value;\nconst findEqualFilter = (filters)=>(filter)=>{\n if (isBetweenFilter(filter)) {\n const target = filters.find((f)=>isBetweenFilter(f) && betweenFiltersAreEqual(f, filter));\n return void 0 !== target;\n }\n {\n const target = filters.find((f)=>f.column === filter.column);\n if (target) return target.op === filter.op && target.value === filter.value;\n }\n return false;\n };\nconst filtersAreEqual = (f1, f2)=>{\n if (null == f1 && null == f2) return true;\n if (null == f1 || null == f2) ;\n else if (isSingleValueFilter(f1) && isSingleValueFilter(f2)) return singleValueFilterClausesAreEqual(f1, f2);\n else if (isBetweenFilter(f1) && isBetweenFilter(f2)) return betweenFiltersAreEqual(f1, f2);\n else if (isAndFilter(f1) && isAndFilter(f2)) {\n if (f1.filters.length === f2.filters.length) return f1.filters.every(findEqualFilter(f2.filters));\n }\n return false;\n};\nconst filterValue = (value)=>\"string\" == typeof value ? `\"${value}\"` : value instanceof ScaledDecimal ? value.toString() : value;\nconst quotedStrings = (value)=>\"string\" == typeof value ? `\"${value}\"` : value;\nconst removeOuterMostParentheses = (s)=>s.replace(/^\\((.*)\\)$/, \"$1\");\nconst filterAsQuery = (f, opts)=>removeOuterMostParentheses(filterAsQueryCore(f, opts));\nconst filterAsQueryCore = (f, opts)=>{\n if (isMultiClauseFilter(f)) {\n const multiClauseFilter = f.filters.map((filter)=>filterAsQueryCore(filter, opts)).join(` ${f.op} `);\n return `(${multiClauseFilter})`;\n }\n if (isMultiValueFilter(f)) return `${f.column} ${f.op} [${f.values.map(quotedStrings).join(\",\")}]`;\n return singleValueFilterAsQuery(f, opts);\n};\nfunction singleValueFilterAsQuery(f, opts) {\n if (isSerializableFilter(f)) return f.asQuery();\n {\n const column = opts?.columnsByName?.[f.column];\n if (column && isDateTimeDataValue(column)) return dateFilterAsQuery(f);\n return defaultSingleValueFilterAsQuery(f);\n }\n}\nconst ONE_DAY_IN_MILLIS = 86400000;\nfunction dateFilterAsQuery(f) {\n switch(f.op){\n case \"=\":\n {\n const filters = [\n {\n op: \">=\",\n column: f.column,\n value: f.value\n },\n {\n op: \"<\",\n column: f.column,\n value: f.value + ONE_DAY_IN_MILLIS\n }\n ];\n return filterAsQueryCore({\n op: \"and\",\n filters\n });\n }\n case \"!=\":\n {\n const filters = [\n {\n op: \"<\",\n column: f.column,\n value: f.value\n },\n {\n op: \">=\",\n column: f.column,\n value: f.value + ONE_DAY_IN_MILLIS\n }\n ];\n return filterAsQueryCore({\n op: \"or\",\n filters\n });\n }\n default:\n return defaultSingleValueFilterAsQuery(f);\n }\n}\nconst defaultSingleValueFilterAsQuery = (f)=>`${f.column} ${f.op} ${filterValue(f.value)}`;\nconst defaultSuspenseProps = {\n escalateToDisable: true\n};\nclass BaseDataSource extends EventEmitter {\n viewport;\n _clientCallback;\n _configWithVisualLink = vanillaConfig;\n _impendingConfigWithVisualLink = void 0;\n _range = Range(0, 0);\n _size = 0;\n _title;\n _defaultSuspenseProps;\n #freezeTimestamp = void 0;\n #pageCount = 0;\n awaitingConfirmationOfConfigChanges = false;\n constructor({ aggregations, baseFilterSpec, columns, filterSpec, groupBy, sort, suspenseProps = defaultSuspenseProps, title, viewport }){\n super();\n this._configWithVisualLink = {\n ...this._configWithVisualLink,\n aggregations: aggregations || this._configWithVisualLink.aggregations,\n baseFilterSpec: baseFilterSpec || this._configWithVisualLink.baseFilterSpec,\n columns: columns || this._configWithVisualLink.columns,\n filterSpec: filterSpec || this._configWithVisualLink.filterSpec,\n groupBy: groupBy || this._configWithVisualLink.groupBy,\n sort: sort || this._configWithVisualLink.sort\n };\n this._defaultSuspenseProps = suspenseProps;\n this._title = title;\n this.viewport = viewport ?? \"\";\n }\n subscribe({ baseFilterSpec, columns, aggregations, range, sort, groupBy, filterSpec, viewport = this.viewport || (this.viewport = uuid()) }, callback) {\n console.log(`[BaseDataSource] subscribe to ${this.viewport}`);\n this._clientCallback = callback;\n this.viewport = viewport;\n if (aggregations || baseFilterSpec || columns || filterSpec || groupBy || sort) this._configWithVisualLink = {\n ...this._configWithVisualLink,\n aggregations: aggregations || this._configWithVisualLink.aggregations,\n baseFilterSpec: baseFilterSpec || this._configWithVisualLink.baseFilterSpec,\n columns: columns || this._configWithVisualLink.columns,\n filterSpec: filterSpec || this._configWithVisualLink.filterSpec,\n groupBy: groupBy || this._configWithVisualLink.groupBy,\n sort: sort || this._configWithVisualLink.sort\n };\n if (range) {\n this._range = range;\n this.emit(\"range\", range);\n }\n }\n get aggregations() {\n return this._configWithVisualLink.aggregations;\n }\n set aggregations(aggregations) {\n this.config = {\n ...this._configWithVisualLink,\n aggregations\n };\n this.emit(\"config\", this._configWithVisualLink, this.range);\n }\n get baseFilter() {\n return this._configWithVisualLink.baseFilterSpec;\n }\n set baseFilter(baseFilter) {\n this.config = {\n ...this._configWithVisualLink,\n baseFilterSpec: baseFilter\n };\n }\n get columns() {\n return this._configWithVisualLink.columns;\n }\n set columns(columns) {\n this.config = {\n ...this._configWithVisualLink,\n columns\n };\n }\n get filter() {\n return this._configWithVisualLink.filterSpec;\n }\n set filter(filter) {\n this.config = {\n ...this._configWithVisualLink,\n filterSpec: filter\n };\n }\n setFilter(filter) {\n const dataSourceFilter = {\n filter: filterAsQuery(filter),\n filterStruct: filter\n };\n this.filter = dataSourceFilter;\n }\n clearFilter() {\n this.filter = {\n filter: \"\"\n };\n }\n get isAwaitingConfirmationOfConfigChange() {\n return void 0 !== this._impendingConfigWithVisualLink;\n }\n confirmConfigChange() {\n if (this._impendingConfigWithVisualLink) {\n this._configWithVisualLink = this._impendingConfigWithVisualLink;\n this._impendingConfigWithVisualLink = void 0;\n this.emit(\"config\", this._configWithVisualLink, this.range, true);\n } else throw Error(\"[BaseDataSource], unexpected call to confirmConfigChange, no changes pending\");\n }\n get config() {\n return stripVisualLink(this._impendingConfigWithVisualLink ?? this._configWithVisualLink);\n }\n set config(config) {\n const confirmed = !!this.awaitingConfirmationOfConfigChanges || void 0;\n this.awaitingConfirmationOfConfigChanges = false;\n const configChanges = this.applyConfig(config);\n if (configChanges) requestAnimationFrame(()=>{\n this.emit(\"config\", this._configWithVisualLink, this.range, confirmed, configChanges);\n });\n }\n get impendingConfig() {\n return this._impendingConfigWithVisualLink;\n }\n set impendingConfig(config) {\n if (config) {\n this.awaitingConfirmationOfConfigChanges = true;\n const configChanges = this.applyConfig(config);\n if (configChanges) this.emit(\"config\", this.config, this.range, false, configChanges);\n } else throw Error(\"[BaseDataSource] ''unsetting impendingConfig is not currently supported\");\n }\n get pageCount() {\n return this.#pageCount;\n }\n set pageCount(pageCount) {\n if (pageCount !== this.#pageCount) {\n this.#pageCount = pageCount;\n this.emit(\"page-count\", pageCount);\n }\n }\n get range() {\n return this._range;\n }\n set range(range) {\n if (range.from !== this._range.from || range.to !== this._range.to) {\n this._range = range;\n this.pageCount = Math.ceil(this._size / (range.to - range.from));\n this.rangeRequest(range.withBuffer);\n requestAnimationFrame(()=>{\n this.emit(\"range\", range);\n });\n }\n }\n get size() {\n return this._size;\n }\n set size(size) {\n this._size = size;\n if (0 !== this.range.to) {\n const pageCount = Math.ceil(size / (this.range.to - this.range.from));\n this.pageCount = pageCount;\n }\n }\n get sort() {\n return this._configWithVisualLink.sort;\n }\n set sort(sort) {\n this.config = {\n ...this._configWithVisualLink,\n sort\n };\n this.emit(\"config\", this._configWithVisualLink, this.range);\n }\n get title() {\n return this._title ?? \"\";\n }\n set title(title) {\n this._title = title;\n this.emit(\"title-changed\", this.viewport ?? \"\", title);\n }\n applyConfig(config, preserveExistingConfigAttributes = false) {\n const { noChanges, ...otherChanges } = isConfigChanged(this._configWithVisualLink, config);\n if (true !== noChanges) {\n if (config) {\n const newConfig = config?.filterSpec?.filter && config?.filterSpec.filterStruct === void 0 ? {\n ...config,\n filterSpec: {\n filter: config.filterSpec.filter,\n filterStruct: (0, __WEBPACK_EXTERNAL_MODULE__vuu_ui_vuu_filter_parser__.parseFilter)(config.filterSpec.filter)\n }\n } : config;\n if (preserveExistingConfigAttributes) {\n if (this.awaitingConfirmationOfConfigChanges) this._impendingConfigWithVisualLink = {\n ...this._configWithVisualLink,\n ...config\n };\n else {\n this._impendingConfigWithVisualLink = void 0;\n this._configWithVisualLink = {\n ...this._configWithVisualLink,\n ...config\n };\n }\n } else if (this.awaitingConfirmationOfConfigChanges) this._impendingConfigWithVisualLink = withConfigDefaults(newConfig);\n else {\n this._impendingConfigWithVisualLink = void 0;\n this._configWithVisualLink = withConfigDefaults(newConfig);\n }\n return otherChanges;\n }\n }\n }\n freeze() {\n if (this.isFrozen) throw Error(\"[BaseDataSource] cannot freeze, dataSource is already frozen\");\n this.#freezeTimestamp = new Date().getTime();\n this.emit(\"freeze\", true, this.#freezeTimestamp);\n }\n unfreeze() {\n if (this.isFrozen) {\n const freezeTimestamp = this.#freezeTimestamp;\n this.#freezeTimestamp = void 0;\n this.emit(\"freeze\", false, freezeTimestamp);\n } else throw Error(\"[BaseDataSource] cannot freeze, dataSource is already frozen\");\n }\n get freezeTimestamp() {\n return this.#freezeTimestamp;\n }\n get isFrozen() {\n return \"number\" == typeof this.#freezeTimestamp;\n }\n}\nconst isVisualLinksAction = (action)=>\"vuu-links\" === action.type;\nconst isVisualLinkCreatedAction = (action)=>\"vuu-link-created\" === action.type;\nconst isVisualLinkRemovedAction = (action)=>\"vuu-link-removed\" === action.type;\nconst isViewportMenusAction = (action)=>\"vuu-menu\" === action.type;\nconst isVuuFeatureAction = (action)=>isViewportMenusAction(action) || isVisualLinksAction(action);\nconst combineFilters = ({ baseFilterSpec, filterSpec, ...config })=>{\n if (void 0 === baseFilterSpec || \"\" === baseFilterSpec.filter) {\n if (filterSpec.filterStruct || \"\" === filterSpec.filter) return {\n ...config,\n filterSpec\n };\n return {\n ...config,\n filterSpec: {\n filter: filterSpec.filter,\n filterStruct: (0, __WEBPACK_EXTERNAL_MODULE__vuu_ui_vuu_filter_parser__.parseFilter)(filterSpec.filter)\n }\n };\n }\n {\n const baseFilterQuery = baseFilterSpec.filter;\n const combinedFilter = filterSpec.filter.length > 0 && baseFilterQuery.length > 0 ? `${filterSpec.filter} and ${baseFilterQuery}` : filterSpec.filter || baseFilterQuery;\n const newConfig = {\n ...config,\n filterSpec: {\n filter: combinedFilter,\n filterStruct: combinedFilter.length > 0 ? (0, __WEBPACK_EXTERNAL_MODULE__vuu_ui_vuu_filter_parser__.parseFilter)(combinedFilter) : void 0\n }\n };\n return newConfig;\n }\n};\nfunction toCalendarDate(d) {\n return new __WEBPACK_EXTERNAL_MODULE__internationalized_date__.CalendarDate(d.getFullYear(), d.getMonth() + 1, d.getDate());\n}\nconst zeroTime = \"00:00:00\";\nconst zeroTimeUnit = \"00\";\nfunction incrementTimeUnitValue(unit, value) {\n const num = parseInt(value);\n if (\"hours\" === unit && num < 23) return `${num + 1}`.padStart(2, \"0\").slice(-2);\n if (\"hours\" === unit && 23 === num) return \"00\";\n if (num < 59) return `${num + 1}`.padStart(2, \"0\").slice(-2);\n else if (59 === num) return \"00\";\n return value;\n}\nfunction decrementTimeUnitValue(unit, value) {\n const num = parseInt(value);\n if (\"hours\" === unit && num > 0) return `${num - 1}`.padStart(2, \"0\").slice(-2);\n if (\"hours\" === unit && 0 === num) return \"23\";\n if (num > 0) return `${num - 1}`.padStart(2, \"0\").slice(-2);\n else if (0 === num) return \"59\";\n return value;\n}\nfunction updateTimeString(timeString, unit, value) {\n const newTimeString = \"hours\" === unit ? value.concat(timeString.slice(2)) : \"minutes\" === unit ? timeString.slice(0, 3).concat(value).concat(timeString.slice(5)) : timeString.slice(0, 6).concat(value);\n if (isValidTimeString(newTimeString)) return newTimeString;\n throw Error(`[date-utils] udateTimeSting invalid result ${newTimeString}`);\n}\nconst validTimePattern = /(?:[0-1][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]/;\nconst isValidTimeString = (value)=>\"string\" == typeof value && validTimePattern.test(value);\nfunction asTimeString(value, allowUndefined = false) {\n if (void 0 === value) {\n if (allowUndefined) return value;\n throw Error(\"[date-utils] asTimeString, value cannot be undefined\");\n }\n if (isValidTimeString(value)) return value;\n if (\"number\" == typeof value) return Time.millisToTimeString(value);\n else if (\"string\" == typeof value) {\n const valueAsInt = parseInt(value);\n if (!isNaN(valueAsInt)) return Time.millisToTimeString(valueAsInt);\n } else throw Error(`[date-utils] asTimeString, value ${value} is not valid TimeString`);\n}\nconst padZero = (val)=>`${val}`.padStart(2, \"0\");\nclass TimeImpl {\n #hours;\n #minutes;\n #seconds;\n constructor(timeString){\n const [hours, minutes, seconds] = timeString.split(\":\");\n this.#hours = parseInt(hours);\n this.#minutes = parseInt(minutes);\n this.#seconds = parseInt(seconds);\n }\n get hours() {\n return this.#hours;\n }\n get minutes() {\n return this.#minutes;\n }\n get seconds() {\n return this.#seconds;\n }\n asDate(date) {\n const dt = void 0 === date ? new Date() : \"string\" == typeof date ? new Date(date) : date;\n dt.setHours(this.#hours);\n dt.setMinutes(this.#minutes);\n dt.setSeconds(this.seconds);\n dt.setMilliseconds(0);\n return dt;\n }\n toString() {\n return Time.toString(this.#hours, this.#minutes, this.#seconds);\n }\n}\nconst Time = (timeString)=>new TimeImpl(timeString);\nTime.millisToTimeString = (timestamp)=>new Date(timestamp).toTimeString().slice(0, 8);\nTime.toString = (hours, minutes, seconds)=>`${padZero(hours)}:${padZero(minutes)}:${padZero(seconds)}`;\nTime.isDateInMillis = (dtInMillis)=>{\n const n = \"number\" == typeof dtInMillis ? dtInMillis : Number(dtInMillis);\n if (!Number.isFinite(n) || !Number.isInteger(n)) return false;\n return new Date(n).getTime() === n;\n};\nconst supportedDatePatterns = [\n \"yyyy-mm-dd\",\n \"dd.mm.yyyy\",\n \"dd/mm/yyyy\",\n \"dd MMM yyyy\",\n \"dd MMMM yyyy\",\n \"mm/dd/yyyy\",\n \"MMM dd, yyyy\",\n \"MMMM dd, yyyy\"\n];\nconst supportedTimePatterns = [\n \"hh:mm:ss\",\n \"hh:mm:ss a\",\n \"hh:mm:ss.ms\"\n];\nconst supportedDateTimePatterns = {\n date: supportedDatePatterns,\n time: supportedTimePatterns\n};\nconst dateTimeLabelByType = {\n date: \"Date\",\n time: \"Time\"\n};\nconst isDatePattern = (pattern)=>supportedDatePatterns.includes(pattern);\nconst isTimePattern = (pattern)=>supportedTimePatterns.includes(pattern);\nconst isDateTimePattern = (pattern)=>isDatePattern(pattern?.date) || isTimePattern(pattern?.time);\nconst defaultPatternsByType = {\n time: \"hh:mm:ss\",\n date: \"dd.mm.yyyy\"\n};\nconst fallbackDateTimePattern = {\n date: defaultPatternsByType[\"date\"],\n time: defaultPatternsByType[\"time\"]\n};\nfunction dateTimePattern(type) {\n if (isTypeDescriptor(type)) {\n if (type.formatting && isDateTimePattern(type.formatting.pattern)) return type.formatting.pattern;\n }\n return fallbackDateTimePattern;\n}\nconst baseTimeFormatOptions = {\n hour: \"2-digit\",\n minute: \"2-digit\",\n second: \"2-digit\"\n};\nconst formatConfigByTimePatterns = {\n \"hh:mm:ss\": {\n locale: \"en-GB\",\n options: {\n ...baseTimeFormatOptions,\n hour12: false\n }\n },\n \"hh:mm:ss a\": {\n locale: \"en-GB\",\n options: {\n ...baseTimeFormatOptions,\n hour12: true\n }\n },\n \"hh:mm:ss.ms\": {\n locale: \"en-GB\",\n options: {\n ...baseTimeFormatOptions,\n hour12: false,\n fractionalSecondDigits: 3\n }\n }\n};\nconst baseDateFormatOptions = {\n day: \"2-digit\",\n month: \"2-digit\",\n year: \"numeric\"\n};\nconst formatConfigByDatePatterns = {\n \"dd.mm.yyyy\": {\n locale: \"de-De\",\n options: {\n ...baseDateFormatOptions\n }\n },\n \"dd/mm/yyyy\": {\n locale: \"en-GB\",\n options: {\n ...baseDateFormatOptions\n }\n },\n \"dd MMM yyyy\": {\n locale: \"en-GB\",\n options: {\n ...baseDateFormatOptions,\n month: \"short\"\n }\n },\n \"dd MMMM yyyy\": {\n locale: \"en-GB\",\n options: {\n ...baseDateFormatOptions,\n month: \"long\"\n }\n },\n \"mm/dd/yyyy\": {\n locale: \"en-US\",\n options: {\n ...baseDateFormatOptions\n }\n },\n \"MMM dd, yyyy\": {\n locale: \"en-US\",\n options: {\n ...baseDateFormatOptions,\n month: \"short\"\n }\n },\n \"MMMM dd, yyyy\": {\n locale: \"en-US\",\n options: {\n ...baseDateFormatOptions,\n month: \"long\"\n }\n }\n};\nconst dateFormatterISO = {\n format: (date)=>new Date(+date - 60000 * date.getTimezoneOffset()).toISOString().replace(/T.*/, \"\")\n};\nfunction getDateFormatter({ locale, options }) {\n return new __WEBPACK_EXTERNAL_MODULE__internationalized_date__.DateFormatter(locale, options);\n}\nfunction getDateAndTimeFormatters({ date, time }) {\n const out = [];\n if (\"yyyy-mm-dd\" === date) out.push(dateFormatterISO);\n else if (date) out.push(getDateFormatter(formatConfigByDatePatterns[date]));\n if (time) out.push(getDateFormatter(formatConfigByTimePatterns[time]));\n return out;\n}\nfunction formatDate(pattern) {\n const formatters = getDateAndTimeFormatters(pattern);\n return (d)=>formatters.map((f)=>f.format(d)).join(\" \");\n}\nconst logLevels = [\n \"error\",\n \"warn\",\n \"info\",\n \"debug\"\n];\nconst isValidLogLevel = (value)=>\"string\" == typeof value && logLevels.includes(value);\nconst DEFAULT_LOG_LEVEL = \"error\";\nconst NO_OP = ()=>void 0;\nconst DEFAULT_DEBUG_LEVEL = \"production\" === process.env.NODE_ENV ? \"error\" : \"info\";\nconst { loggingLevel = DEFAULT_DEBUG_LEVEL } = getLoggingSettings();\nconst logger = (category)=>{\n const debugEnabled = \"debug\" === loggingLevel;\n const infoEnabled = debugEnabled || \"info\" === loggingLevel;\n const warnEnabled = infoEnabled || \"warn\" === loggingLevel;\n const errorEnabled = warnEnabled || \"error\" === loggingLevel;\n const info = infoEnabled ? (message)=>console.info(`${Date.now()} [${category}] ${message}`) : NO_OP;\n const warn = warnEnabled ? (message)=>console.warn(`[${category}] ${message}`) : NO_OP;\n const debug = debugEnabled ? (message)=>console.debug(`${Date.now()} [${category}] ${message}`) : NO_OP;\n const error = errorEnabled ? (message)=>console.error(`[${category}] ${message}`) : NO_OP;\n if (\"production\" === process.env.NODE_ENV) return {\n errorEnabled,\n error\n };\n return {\n debugEnabled,\n infoEnabled,\n warnEnabled,\n errorEnabled,\n info,\n warn,\n debug,\n error\n };\n};\nfunction getLoggingSettings() {\n if (\"undefined\" != typeof loggingSettings) return loggingSettings;\n return {\n loggingLevel: getLoggingLevelFromCookie()\n };\n}\nfunction getLoggingLevelFromCookie() {\n const value = getCookieValue(\"vuu-logging-level\");\n if (isValidLogLevel(value)) return value;\n return DEFAULT_LOG_LEVEL;\n}\nconst getLoggingConfigForWorker = ()=>`const loggingSettings = { loggingLevel: \"${getLoggingLevelFromCookie()}\"};`;\nconst logUnhandledMessage = (message, context = \"[logUnhandledStruct]\")=>{\n console.log(`${context} ${JSON.stringify(message)}`);\n};\nconst { debug: debug_utils_debug, debugEnabled: debug_utils_debugEnabled } = logger(\"range-monitor\");\nclass RangeMonitor {\n source;\n range;\n timestamp;\n constructor(source){\n this.source = source;\n this.range = {\n from: 0,\n to: 0\n };\n this.timestamp = 0;\n }\n isSet() {\n return 0 !== this.timestamp;\n }\n set({ from, to }) {\n const { timestamp } = this;\n this.range.from = from;\n this.range.to = to;\n this.timestamp = performance.now();\n if (!timestamp) return 0;\n debug_utils_debugEnabled && debug_utils_debug(`<${this.source}> [${from}-${to}], ${(this.timestamp - timestamp).toFixed(0)} ms elapsed`);\n }\n}\nconst lastWord = (text)=>{\n const trimmedText = text.trim();\n const pos = trimmedText.lastIndexOf(\" \");\n if (-1 === pos) return trimmedText;\n return trimmedText.slice(pos + 1);\n};\nconst capitalize = (text)=>0 === text.length ? \"\" : text[0].toUpperCase() + text.slice(1);\nconst regexp_worfify = /(?<!(^|[A-Z]))(?=[A-Z])|(?<!^)(?=[A-Z][a-z])/;\nconst wordify = (text)=>{\n const [firstWord, ...rest] = text.split(regexp_worfify);\n return `${capitalize(firstWord)} ${rest.join(\" \")}`;\n};\nconst env = process.env.NODE_ENV;\nconst isStaticFeature = (feature)=>null !== feature && \"object\" == typeof feature && \"type\" in feature;\nconst isStaticFeatures = (features)=>Array.isArray(features) && features.every(isStaticFeature);\nfunction featureFromJson({ type }) {\n const componentType = type.match(/^[a-z]/) ? type : getLayoutComponent(type);\n if (void 0 === componentType) throw Error(`layoutUtils unable to create feature component from JSON, unknown type ${type}`);\n return __WEBPACK_EXTERNAL_MODULE_react__[\"default\"].createElement(componentType);\n}\nconst isCustomFeature = (feature)=>\"vuu-features\" === feature.leftNavLocation;\nconst isWildcardSchema = (vuuTables)=>\"*\" === vuuTables;\nconst isVuuTables = (vuuTables)=>Array.isArray(vuuTables);\nconst hasFilterTableFeatureProps = (props)=>\"object\" == typeof props.ComponentProps && null !== props.ComponentProps && \"tableSchema\" in props.ComponentProps;\nconst isSameTable = (t1, t2)=>{\n t1.module === t2.module && (t1.table, t2.table);\n};\nconst byModule = (schema1, schema2)=>{\n const m1 = schema1.table.module.toLowerCase();\n const m2 = schema2.table.module.toLowerCase();\n if (m1 < m2) return -1;\n if (m1 > m2) return 1;\n if (schema1.table.table < schema2.table.table) return -1;\n else if (schema1.table.table > schema2.table.table) return 1;\n else return 0;\n};\nconst getFilterTableFeatures = (schemas, getFeaturePath)=>schemas.sort(byModule).map((schema)=>({\n ...getFeaturePath({\n env,\n fileName: \"FilterTable\"\n }),\n ComponentProps: {\n tableSchema: schema\n },\n ViewProps: {\n allowRename: true\n },\n title: `${schema.table.module} ${schema.table.table}`\n }));\nconst assertComponentRegistered = (componentName, component)=>{\n if (\"function\" != typeof component) console.warn(`${componentName} module not loaded, will be unabale to deserialize from layout JSON`);\n};\nconst assertComponentsRegistered = (componentList)=>{\n for (const { componentName, component } of componentList)assertComponentRegistered(componentName, component);\n};\nconst getCustomAndTableFeatures = (dynamicFeatures, tableSchemas)=>{\n const [customFeatureConfig, tableFeaturesConfig] = partition(dynamicFeatures, isCustomFeature);\n const customFeatures = [];\n const tableFeatures = [];\n for (const { featureProps = {}, viewProps, ...feature } of tableFeaturesConfig){\n const { vuuTables } = featureProps;\n if (isWildcardSchema(vuuTables)) {\n if (tableSchemas) for (const tableSchema of tableSchemas)tableFeatures.push({\n ...feature,\n ComponentProps: {\n tableSchema\n },\n title: `${tableSchema.table.module} ${wordify(tableSchema.table.table)}`,\n ViewProps: {\n ...viewProps,\n allowRename: true\n }\n });\n }\n }\n for (const { featureProps = {}, viewProps, ...feature } of customFeatureConfig){\n const { vuuTables } = featureProps;\n if (isVuuTables(vuuTables)) {\n if (tableSchemas) customFeatures.push({\n ...feature,\n ComponentProps: vuuTables.reduce((map, vuuTable)=>{\n map[`${vuuTable.table}Schema`] = tableSchemas.find((tableSchema)=>isSameTable(vuuTable, tableSchema.table));\n return map;\n }, {}),\n ViewProps: viewProps\n });\n } else customFeatures.push(feature);\n }\n return {\n dynamicFeatures: customFeatures,\n tableFeatures: tableFeatures\n };\n};\nclass DataValidationError extends Error {\n actualType;\n expectedType;\n constructor(message, expectedType, actualType){\n super(message);\n this.actualType = actualType;\n this.expectedType = expectedType;\n }\n}\nconst getFieldName = (target)=>{\n const saltFormField = queryClosest(target, \"[data-field]\");\n const fieldName = saltFormField?.dataset.field;\n if (fieldName) return fieldName;\n throw Error(\"named form field not found\");\n};\nconst isNumber = (type, value)=>\"number\" === type;\nconst isValidRange = ([val1, val2])=>{\n if (isValidTimeString(val1) && isValidTimeString(val2)) return val2 > val1;\n return true;\n};\nfunction getTypedRange([value1, value2], dataType, options) {\n return [\n getTypedValue(value1, dataType, false, options),\n getTypedValue(value2, dataType, false, options)\n ];\n}\nconst getActualType = (value)=>{\n if (\"boolean\" == typeof value) return \"boolean\";\n if (\"number\" == typeof value) return \"number\";\n typeof value;\n return \"string\";\n};\nfunction getTypedValue(value, type, throwIfInvalid = false, options) {\n switch(type){\n case \"int\":\n case \"long\":\n if (stringIsValidInt(value)) return parseInt(value, 10);\n if (isValidTimeString(value)) return value;\n else if (!throwIfInvalid) return;\n else throw Error(`value ${value} is not a valid ${type}`);\n case \"scaleddecimal2\":\n return ScaledDecimal2(value);\n case \"scaleddecimal4\":\n return ScaledDecimal4(value);\n case \"scaleddecimal6\":\n return ScaledDecimal6(value);\n case \"scaleddecimal8\":\n return ScaledDecimal8(value);\n case \"double\":\n case \"number\":\n if (stringIsValidDecimal(value)) return parseFloat(value);\n if (!throwIfInvalid) return;\n else throw new DataValidationError(`value ${value} is not a valid ${type}`, \"decimal\", getActualType(value));\n case \"boolean\":\n return \"true\" === value || false;\n case \"time\":\n if (isValidTimeString(value)) {\n if (options?.type === \"TimeString\") return value;\n return +Time(value).asDate();\n }\n if (value.length > 0 && Time.isDateInMillis(value)) return Number(value);\n else if (!throwIfInvalid) return;\n else throw Error(`value ${value} is not a valid ${type}`);\n default:\n return value;\n }\n}\nconst PUNCTUATION_STR = String.fromCharCode(8200);\nconst DIGIT_STR = String.fromCharCode(8199);\nconst DECIMALS_AUTO = -1;\nconst MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER.toString();\nconst MAX_INTEGER_DIGITS = MAX_SAFE_INTEGER.length;\nconst exceedsMaxSafeInteger = (value)=>value.length > MAX_INTEGER_DIGITS || value.length === MAX_INTEGER_DIGITS && value > MAX_SAFE_INTEGER;\nconst Space = {\n DIGIT: DIGIT_STR,\n TWO_DIGITS: DIGIT_STR + DIGIT_STR,\n THREE_DIGITS: DIGIT_STR + DIGIT_STR + DIGIT_STR,\n FULL_PADDING: [\n null,\n PUNCTUATION_STR + DIGIT_STR,\n PUNCTUATION_STR + DIGIT_STR + DIGIT_STR,\n PUNCTUATION_STR + DIGIT_STR + DIGIT_STR + DIGIT_STR,\n PUNCTUATION_STR + DIGIT_STR + DIGIT_STR + DIGIT_STR + DIGIT_STR\n ]\n};\nconst Zero = {\n DIGIT: \"0\",\n TWO_DIGITS: \"00\",\n THREE_DIGITS: \"000\",\n FULL_PADDING: [\n null,\n \"0\",\n \"00\",\n \"000\",\n \"0000\"\n ]\n};\nfunction padLeft(value, maxLength = 6) {\n return (LEADING_FILL + value).slice(-maxLength);\n}\nconst LEADING_FILL = DIGIT_STR + DIGIT_STR + DIGIT_STR + DIGIT_STR + DIGIT_STR + DIGIT_STR + DIGIT_STR + DIGIT_STR + DIGIT_STR;\nconst Align = {\n Right: \"right\",\n Center: \"center\",\n Left: \"left\"\n};\nfunction pad(n, dp, Pad) {\n let len = n.length;\n const diff = dp - len;\n if (diff > 0) {\n if (1 === diff) n += Pad.DIGIT;\n else if (2 === diff) n += Pad.TWO_DIGITS;\n else if (3 === diff) n += Pad.THREE_DIGITS;\n } else {\n if (diff < 0) {\n n = n.slice(0, dp);\n len = dp;\n }\n if (Pad === Space && \"0\" === n.charAt(len - 1)) {\n n = n.replace(/0+$/, \"\");\n return pad(n, dp, Pad);\n }\n }\n return n;\n}\nfunction roundDecimal(value, align = Align.Right, decimals = 4, zeroPad, alignOnDecimals, useLocaleString = true, roundingRule = \"round\") {\n if (void 0 === value || \"number\" != typeof value || isNaN(value)) return \"\";\n let integral;\n let fraction;\n let Pad;\n const [part1, part2 = \"\"] = value.toString().split(\".\");\n const actualDecimals = part2.length;\n integral = \"-0\" === part1 ? \"-0\" : useLocaleString ? parseFloat(part1).toLocaleString() : parseFloat(part1).toString();\n if (align === Align.Left && alignOnDecimals) integral = padLeft(integral);\n fraction = decimals === DECIMALS_AUTO || actualDecimals === decimals ? part2 : actualDecimals > decimals ? \"round\" === roundingRule ? parseFloat(\"0.\" + part2).toFixed(decimals).slice(2) : part2.slice(0, decimals) : (Pad = zeroPad ? Zero : alignOnDecimals && align !== Align.Left ? Space : null) ? 0 === actualDecimals ? Pad.FULL_PADDING[decimals] ?? \"\" : pad(part2, decimals, Pad) : part2;\n return integral + (fraction ? \".\" + fraction : \"\");\n}\nfunction roundScaledDecimal(value, align = Align.Right, decimals = 4, zeroPad, alignOnDecimals, useLocaleString = true, roundingRule = \"round\") {\n let integral;\n let fraction;\n let Pad;\n if (\"\" === value) return \"\";\n const [part1, part2 = \"\"] = value.split(\".\");\n const actualDecimals = part2.length;\n integral = \"\" === part1 ? \"0\" : \"-0\" === part1 ? \"-0\" : useLocaleString ? exceedsMaxSafeInteger(value) ? BigInt(part1).toLocaleString() : parseFloat(part1).toLocaleString() : part1;\n if (align === Align.Left && alignOnDecimals) integral = padLeft(integral);\n fraction = decimals === DECIMALS_AUTO || actualDecimals === decimals ? part2 : actualDecimals > decimals ? \"round\" === roundingRule ? parseFloat(\"0.\" + part2).toFixed(decimals).slice(2) : part2.slice(0, decimals) : (Pad = zeroPad ? Zero : alignOnDecimals && align !== Align.Left ? Space : null) ? 0 === actualDecimals ? Pad.FULL_PADDING[decimals] ?? \"\" : pad(part2, decimals, Pad) : part2;\n return integral + (fraction ? \".\" + fraction : \"\");\n}\nconst DEFAULT_NUMERIC_FORMAT = {};\nconst defaultValueFormatter = (value)=>null == value ? \"\" : \"string\" == typeof value ? value : value.toString();\nconst dateFormatter = (column)=>{\n const pattern = dateTimePattern(column.type);\n const formatter = formatDate(pattern);\n return (value)=>{\n if (\"number\" == typeof value && 0 !== value) return formatter(new Date(value));\n return \"\";\n };\n};\nconst numericFormatter = ({ align = \"right\", serverDataType, type })=>{\n if (void 0 === type || \"string\" == typeof type) return defaultValueFormatter;\n {\n const { alignOnDecimals = false, decimals, roundingRule, useLocaleString, zeroPad = false } = type.formatting ?? DEFAULT_NUMERIC_FORMAT;\n return (value)=>{\n if (serverDataType?.startsWith(\"scaleddecimal\")) {\n if (\"string\" == typeof value) return roundScaledDecimal(value, align, decimals, zeroPad, alignOnDecimals, useLocaleString, roundingRule);\n throw Error(`[formatting-utils] numericFormatter, invalid data for ${serverDataType}: '${value}'`);\n }\n if (\"string\" == typeof value && (value.startsWith(\"Σ\") || value.startsWith(\"[\"))) return value;\n const number = \"number\" == typeof value ? value : \"string\" == typeof value ? parseFloat(value) : void 0;\n return roundDecimal(number, align, decimals, zeroPad, alignOnDecimals, useLocaleString, roundingRule);\n };\n }\n};\nconst mapFormatter = (map)=>(value)=>map[value] ?? \"\";\nconst NumericTypes = [\n \"decimal\",\n \"number\"\n];\nconst getValueFormatter = (column, serverDataType = column.serverDataType)=>{\n if (isDateTimeDataValue(column, serverDataType) || isTimeDataValue(column)) return dateFormatter(column);\n const { type } = column;\n if (isTypeDescriptor(type) && isMappedValueTypeRenderer(type?.renderer)) return mapFormatter(type.renderer.map);\n if (isNumericType(serverDataType) || isTypeDescriptor(type) && NumericTypes.includes(type.name)) return numericFormatter(column);\n if (\"string\" === serverDataType || \"char\" === serverDataType) return (value)=>value;\n return defaultValueFormatter;\n};\nconst lowerCase = (str)=>str.toLowerCase();\nconst getUniqueId = ()=>`hw-${Math.round(1e5 * Math.random())}`;\nfunction addGroupColumn(groupBy, column) {\n if (groupBy.length > 0) return groupBy.concat(column.name);\n return [\n column.name\n ];\n}\nconst removeGroupColumn = (groupBy, column)=>groupBy.filter((colName)=>colName !== column.name);\nconst getGroupStatus = (columnName, groupBy)=>{\n if (void 0 === groupBy || 0 === groupBy.length) return \"no-groupby\";\n {\n const indexPos = groupBy.indexOf(columnName);\n if (-1 === indexPos) return 1 === groupBy.length ? \"single-groupby-other-column\" : \"multi-groupby-other-columns\";\n return 1 === groupBy.length ? \"single-groupby\" : \"single-groupby-other-column\";\n }\n};\nconst isCharacterKey = (key)=>1 === key.length;\nconst isQuoteKey = (evt)=>'\"' === evt.key || \"'\" === evt.key;\nfunction invariant(condition, message) {\n if (!condition) {\n const error = new Error(message);\n error.name = \"Invariant Violation\";\n error.framesToPop = 1;\n throw error;\n }\n}\nconst isPlainObject = (obj)=>\"[object Object]\" === Object.prototype.toString.call(obj);\nfunction itemToString(item) {\n if (\"string\" == typeof item) return item;\n if (!isPlainObject(item)) return String(item);\n if (Object.prototype.hasOwnProperty.call(item, \"label\")) return String(item.label);\n console.warn(\"itemToString: you've likely forgotten to set the label prop on the item object.\\nYou can also provide your own `itemToString` implementation.\");\n return \"\";\n}\nconst { COUNT } = metadataKeys;\nconst isJsonData = (value)=>\"object\" == typeof value && null !== value;\nconst vuuRowDataItemTypes = [\n \"boolean\",\n \"number\",\n \"string\"\n];\nconst isVuuRowDataItem = (value)=>vuuRowDataItemTypes.includes(typeof value);\nconst getCellValue = (attribute, attributeValue)=>{\n if (Array.isArray(attributeValue)) return {\n attribute: `${attribute}[`,\n attributeValue: \"\",\n isLeaf: false\n };\n if (isJsonData(attributeValue)) return {\n attribute: `${attribute}{`,\n attributeValue: \"\",\n isLeaf: false\n };\n if (void 0 === attributeValue) return {\n attribute,\n attributeValue: \"undefined\",\n isLeaf: true\n };\n else if (isVuuRowDataItem(attributeValue)) return {\n attribute,\n attributeValue,\n isLeaf: true\n };\n else throw Error(`unsupported type ${typeof attributeValue} in JSON`);\n};\nconst jsonColumnType = {\n name: \"json\",\n renderer: {\n name: \"json\"\n }\n};\nconst jsonToDataSourceRows = (json)=>{\n const cols = [];\n cols.push({\n className: \"vuuJsonCell\",\n name: \"Level 1\",\n type: jsonColumnType\n }, {\n className: \"vuuJsonCell\",\n name: \"Level 2\",\n type: jsonColumnType\n });\n const rows = [];\n addChildValues(rows, json, cols);\n return [\n cols,\n rows\n ];\n};\nconst addChildValues = (rows, json, cols, index = {\n value: 0\n}, keyBase = \"$root\", depth = 0)=>{\n let leafCount = 0;\n let rowCount = 0;\n if (depth === cols.length - 1) cols.push({\n className: \"vuuJsonCell\",\n name: `Level ${cols.length + 1}`,\n hidden: true,\n type: jsonColumnType\n });\n const columnEntries = Object.entries(json);\n for(let i = 0; i < columnEntries.length; i++, index.value += 1){\n const [key, value] = columnEntries[i];\n const { attribute, attributeValue, isLeaf } = getCellValue(key, value);\n const blanks = Array(depth).fill(\"\");\n const fullKey = `${keyBase}|${key}`;\n const ts = 0;\n const isNew = false;\n const row = [\n index.value,\n index.value,\n isLeaf,\n false,\n depth,\n 0,\n fullKey,\n 0,\n ts,\n isNew,\n ...blanks,\n attribute,\n attributeValue\n ];\n rows.push(row);\n rowCount += 1;\n if (isJsonData(value)) {\n const [nestedLeafCount, nestedRowCount] = addChildValues(rows, value, cols, {\n value: index.value + 1\n }, fullKey, depth + 1);\n row[COUNT] = nestedLeafCount;\n leafCount += nestedLeafCount;\n rowCount += nestedRowCount;\n index.value += nestedRowCount;\n } else leafCount += 1;\n }\n return [\n leafCount,\n rowCount\n ];\n};\nconst ArrowUp = \"ArrowUp\";\nconst ArrowDown = \"ArrowDown\";\nconst ArrowLeft = \"ArrowLeft\";\nconst ArrowRight = \"ArrowRight\";\nconst Enter = \"Enter\";\nconst Escape = \"Escape\";\nconst Home = \"Home\";\nconst End = \"End\";\nconst PageUp = \"PageUp\";\nconst PageDown = \"PageDown\";\nconst keyboard_utils_Space = \" \";\nconst Tab = \"Tab\";\nconst isArrowKey = (key)=>\"ArrowUp\" === key || \"ArrowDown\" === key || \"ArrowLeft\" === key || \"ArrowRight\" === key;\nconst keyset_EMPTY = [];\nclass KeySet {\n keys = new Map();\n nextKeyValue = 0;\n range;\n constructor(range){\n this.range = range;\n this.init(range);\n }\n next(free = keyset_EMPTY) {\n if (free.length > 0) return free.shift();\n return this.nextKeyValue++;\n }\n init({ from, to }) {\n this.keys.clear();\n this.nextKeyValue = 0;\n for(let rowIndex = from; rowIndex < to; rowIndex++){\n const nextKeyValue = this.next();\n this.keys.set(rowIndex, nextKeyValue);\n }\n return true;\n }\n reset(range) {\n const { from, to } = range;\n const newSize = to - from;\n const currentSize = this.range.to - this.range.from;\n this.range = range;\n if (currentSize > newSize) return this.init(range);\n const freeKeys = [];\n this.keys.forEach((keyValue, rowIndex)=>{\n if (rowIndex < from || rowIndex >= to) {\n freeKeys.push(keyValue);\n this.keys.delete(rowIndex);\n }\n });\n for(let rowIndex = from; rowIndex < to; rowIndex++)if (!this.keys.has(rowIndex)) {\n const nextKeyValue = this.next(freeKeys);\n this.keys.set(rowIndex, nextKeyValue);\n }\n return false;\n }\n keyFor(rowIndex) {\n const key = this.keys.get(rowIndex);\n if (void 0 === key) {\n console.log(`key not found\n keys: ${this.toDebugString()}\n `);\n throw Error(`KeySet, no key found for rowIndex ${rowIndex}`);\n }\n return key;\n }\n toDebugString() {\n return `${this.keys.size} keys\n${Array.from(this.keys.entries()).sort(([key1], [key2])=>key1 - key2).map(([k, v])=>`${k}=>${v}`).join(\",\")}]\\n`;\n }\n}\nconst getSelectedOption = (values, selectedValue)=>{\n if (void 0 === selectedValue) return;\n return values.find((option)=>option.value === selectedValue);\n};\nconst getLocalEntity = (key, deleteOnRead = false)=>{\n const data = localStorage.getItem(key);\n if (data) {\n if (deleteOnRead) localStorage.removeItem(key);\n return JSON.parse(data);\n }\n};\nconst clearLocalEntity = (key)=>{\n const doomedItem = localStorage.getItem(key);\n if (!doomedItem) return false;\n localStorage.removeItem(key);\n return true;\n};\nconst getAllLocalEntity = (url)=>Object.entries(localStorage).filter(([key])=>key.includes(url)).map(([, value])=>JSON.parse(value));\nconst saveLocalEntity = (key, data)=>{\n try {\n localStorage.setItem(key, JSON.stringify(data));\n return data;\n } catch {\n return;\n }\n};\nconst isModule = (entity)=>void 0 !== entity && \"function\" != typeof entity;\nfunction perf_utils_debounce(callback, timeInterval) {\n let timeout;\n return (...args)=>{\n clearTimeout(timeout);\n timeout = window.setTimeout(()=>callback(...args), timeInterval);\n };\n}\nfunction perf_utils_throttle(callback, limit) {\n let wait = false;\n let lastArgs;\n function checkLastArgs() {\n if (void 0 == lastArgs) wait = false;\n else {\n callback(...lastArgs);\n lastArgs = void 0;\n setTimeout(checkLastArgs, limit);\n }\n }\n return (...args)=>{\n if (wait) lastArgs = args;\n else {\n callback(...args);\n wait = true;\n setTimeout(checkLastArgs, limit);\n }\n };\n}\nclass DeferredPromise {\n #promise;\n #resolve = ()=>console.log(\"resolve was not set\");\n #reject = ()=>console.log(\"reject was not set\");\n #resolved = false;\n constructor(){\n this.#promise = new Promise((resolve, reject)=>{\n this.#resolve = resolve;\n this.#reject = reject;\n });\n }\n get promise() {\n return this.#promise;\n }\n get isResolved() {\n return this.#resolved;\n }\n resolve(value) {\n this.#resolved = true;\n return this.#resolve(value);\n }\n get reject() {\n return this.#reject;\n }\n}\nconst EMPTY_ARRAY = [];\nconst asReactElements = (children)=>{\n const isArray = Array.isArray(children);\n const count = isArray ? children.length : __WEBPACK_EXTERNAL_MODULE_react__.Children.count(children);\n if (isArray && children.every(__WEBPACK_EXTERNAL_MODULE_react__.isValidElement)) return children;\n if (1 === count && !isArray && (0, __WEBPACK_EXTERNAL_MODULE_react__.isValidElement)(children)) return [\n children\n ];\n if (count > 1) return children;\n else return EMPTY_ARRAY;\n};\nconst useIsMounted = (id = \"\")=>{\n const isMountedRef = (0, __WEBPACK_EXTERNAL_MODULE_react__.useRef)(false);\n (0, __WEBPACK_EXTERNAL_MODULE_react__.useEffect)(()=>{\n console.log(`is MOUNTED ${id}`);\n isMountedRef.current = true;\n return ()=>{\n console.log(`is UNMOUNTED ${id}`);\n isMountedRef.current = false;\n };\n }, [\n id\n ]);\n return isMountedRef;\n};\nconst isSimpleStateValue = (arg)=>\"function\" != typeof arg;\nconst createSyntheticEvent = (event)=>{\n let isDefaultPrevented = false;\n let isPropagationStopped = false;\n const preventDefault = ()=>{\n isDefaultPrevented = true;\n event.preventDefault();\n };\n const stopPropagation = ()=>{\n isPropagationStopped = true;\n event.stopPropagation();\n };\n return {\n nativeEvent: event,\n currentTarget: event.currentTarget,\n target: event.target,\n bubbles: event.bubbles,\n cancelable: event.cancelable,\n defaultPrevented: event.defaultPrevented,\n eventPhase: event.eventPhase,\n isTrusted: event.isTrusted,\n preventDefault,\n isDefaultPrevented: ()=>isDefaultPrevented,\n stopPropagation,\n isPropagationStopped: ()=>isPropagationStopped,\n persist: ()=>void 0,\n timeStamp: event.timeStamp,\n type: event.type\n };\n};\nconst useStableReference = (value)=>{\n const referenceToProp = (0, __WEBPACK_EXTERNAL_MODULE_react__.useRef)(value);\n (0, __WEBPACK_EXTERNAL_MODULE_react__.useMemo)(()=>referenceToProp.current = value, [\n value\n ]);\n return referenceToProp;\n};\nconst { IS_LEAF, KEY: row_utils_KEY, IDX, SELECTED } = metadataKeys;\nconst actualRowPositioning = (rowHeight)=>[\n (dataRow)=>dataRow.index * rowHeight,\n (position)=>Math.floor(position / rowHeight),\n false\n ];\nconst virtualRowPositioning = (rowHeight, virtualisedExtent, pctScrollTop)=>[\n (dataRow, offset = 0)=>{\n const rowOffset = pctScrollTop.current * virtualisedExtent;\n return (dataRow.index - offset) * rowHeight - rowOffset;\n },\n (position)=>{\n const rowOffset = pctScrollTop.current * virtualisedExtent;\n return Math.round((position + rowOffset) / rowHeight);\n },\n true\n ];\nconst asDataSourceRowObject = (row, columnMap)=>{\n const { [IS_LEAF]: isLeaf, [row_utils_KEY]: key, [IDX]: index } = row;\n const rowObject = {\n key,\n index,\n isGroupRow: !isLeaf,\n isSelected: 0 !== row[SELECTED],\n data: {}\n };\n for (const [colName, colIdx] of Object.entries(columnMap))rowObject.data[colName] = row[colIdx];\n return rowObject;\n};\nconst vuuRowToDataSourceRow = ({ rowIndex, rowKey, sel: isSelected = 0, ts, data }, keys)=>[\n rowIndex,\n keys.keyFor(rowIndex),\n true,\n false,\n 0,\n 0,\n rowKey,\n isSelected,\n ts,\n false\n ].concat(data);\nconst deselectItem = (selectionModel, rowKey, rangeSelect, preserveExistingSelection = false)=>({\n preserveExistingSelection,\n rowKey,\n type: \"DESELECT_ROW\"\n });\nconst selectItem = (selectionModel, rowKey, rangeSelect, preserveExistingSelection = false, activeRowKey)=>{\n const singleSelect = \"single\" === selectionModel || \"single-no-deselect\" === selectionModel;\n const actsLikeSingleSelect = singleSelect || void 0 === activeRowKey;\n if (\"none\" === selectionModel) return;\n if (actsLikeSingleSelect) {\n const preserveSelection = !singleSelect && preserveExistingSelection;\n return {\n preserveExistingSelection: preserveSelection,\n rowKey,\n type: \"SELECT_ROW\"\n };\n }\n if (rangeSelect) return {\n preserveExistingSelection,\n fromRowKey: rowKey,\n toRowKey: activeRowKey,\n type: \"SELECT_ROW_RANGE\"\n };\n};\nconst VuuShellLocation = {\n ContextPanel: \"context-panel\",\n MultiWorkspaceContainer: \"vuu-multi-workspace-container\",\n SidePanel: \"vuu-side-panel\",\n SideToolbar: \"vuu-side-toolbar\",\n Workspace: \"vuu-workspace\",\n WorkspaceContainer: \"vuu-workspace-container\"\n};\nconst cycleSortType = (sortType)=>\"A\" === sortType ? \"D\" : \"D\" === sortType ? void 0 : \"A\";\nconst NO_SORT = {\n sortDefs: []\n};\nconst toggleOrApplySort = ({ sortDefs }, { name: column }, extendSort = false, sortType)=>{\n if (extendSort) {\n const existingDef = sortDefs.find((sortDef)=>sortDef.column === column);\n if (existingDef) return {\n sortDefs: sortDefs.map((sortDef)=>sortDef.column === column ? {\n column,\n sortType: \"A\" === sortDef.sortType ? \"D\" : \"A\"\n } : sortDef)\n };\n return {\n sortDefs: sortDefs.concat({\n column,\n sortType: sortType ?? \"A\"\n })\n };\n }\n const newSortType = \"string\" == typeof sortType ? sortType : 1 === sortDefs.length && sortDefs[0].column === column ? cycleSortType(sortDefs[0].sortType) : \"A\";\n return newSortType ? {\n sortDefs: [\n {\n column,\n sortType: newSortType\n }\n ]\n } : NO_SORT;\n};\nconst setSortColumn = ({ sortDefs }, column, sortType)=>{\n if (void 0 === sortType) {\n const columnSort = sortDefs.find((item)=>item.column === column.name);\n if (columnSort) return {\n sortDefs: [\n {\n column: column.name,\n sortType: \"A\" === columnSort.sortType ? \"D\" : \"A\"\n }\n ]\n };\n }\n return {\n sortDefs: [\n {\n column: column.name,\n sortType: sortType ?? \"A\"\n }\n ]\n };\n};\nconst addSortColumn = ({ sortDefs }, column, sortType = \"A\")=>{\n const sortEntry = {\n column: column.name,\n sortType\n };\n if (sortDefs.length > 0) return {\n sortDefs: sortDefs.concat(sortEntry)\n };\n return {\n sortDefs: [\n sortEntry\n ]\n };\n};\nconst getSortStatus = (columnName, vuuSort)=>{\n if (void 0 === vuuSort || 0 === vuuSort.sortDefs.length) return \"no-sort\";\n {\n const sortDef = vuuSort.sortDefs.find((sd)=>sd.column === columnName);\n if (!sortDef) return \"sort-other-column\";\n if (1 === vuuSort.sortDefs.length) return \"A\" === sortDef.sortType ? \"single-sort-asc\" : \"single-sort-desc\";\n return \"A\" === sortDef.sortType ? \"multi-sort-includes-column-asc\" : \"multi-sort-includes-column-desc\";\n }\n};\nconst getVuuTable = (schemaTable)=>{\n if (!schemaTable.session) return schemaTable;\n {\n const { module, session } = schemaTable;\n return {\n module,\n table: session\n };\n }\n};\nconst DEFAULT_DENSITY = \"medium\";\nconst DEFAULT_THEME = \"salt-theme\";\nconst DEFAULT_THEME_MODE = \"light\";\nconst ThemeContext = /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react__.createContext)({\n density: \"high\",\n theme: \"vuu\",\n themeMode: \"light\"\n});\nconst DEFAULT_THEME_ATTRIBUTES = [\n \"vuu\",\n \"salt-density-high\",\n \"light\"\n];\nconst useThemeAttributes = (themeAttributes)=>{\n const context = (0, __WEBPACK_EXTERNAL_MODULE_react__.useContext)(ThemeContext);\n if (themeAttributes) return [\n themeAttributes.themeClass,\n themeAttributes.densityClass,\n themeAttributes.dataMode\n ];\n if (context) return [\n `${context.theme}-theme`,\n `salt-density-${context.density}`,\n context.themeMode\n ];\n return DEFAULT_THEME_ATTRIBUTES;\n};\nconst createThemedChildren = (children, theme, themeMode, density)=>{\n if (/*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react__.isValidElement)(children)) return /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react__.cloneElement)(children, {\n className: (0, __WEBPACK_EXTERNAL_MODULE_clsx__[\"default\"])(children.props?.className, `${theme}-theme`, `salt-density-${density}`),\n \"data-mode\": themeMode\n });\n console.warn(`\\nThemeProvider can only apply CSS classes for theming to a single nested child element of the ThemeProvider.\n Wrap elements with a single container`);\n return children;\n};\nconst ThemeProvider = ({ applyThemeClasses = false, children, theme: themeProp, themeMode: themeModeProp, density: densityProp })=>{\n const { density: inheritedDensity, themeMode: inheritedThemeMode, theme: inheritedTheme } = (0, __WEBPACK_EXTERNAL_MODULE_react__.useContext)(ThemeContext);\n const density = densityProp ?? inheritedDensity ?? DEFAULT_DENSITY;\n const themeMode = themeModeProp ?? inheritedThemeMode ?? DEFAULT_THEME_MODE;\n const theme = themeProp ?? inheritedTheme ?? DEFAULT_THEME;\n const themedChildren = applyThemeClasses ? createThemedChildren(children, theme, themeMode, density) : children;\n return /*#__PURE__*/ __WEBPACK_EXTERNAL_MODULE_react__[\"default\"].createElement(ThemeContext.Provider, {\n value: {\n themeMode,\n density,\n theme\n }\n }, themedChildren);\n};\nThemeProvider.displayName = \"ThemeProvider\";\nconst { COUNT: tree_utils_COUNT, DEPTH, IDX: tree_utils_IDX, KEY: tree_utils_KEY } = metadataKeys;\nconst tree_utils_timestamp = 0;\nconst tree_utils_isNew = false;\nconst treeToDataSourceRows = (treeSourceNodes, iconProvider)=>{\n const columns = [];\n columns.push({\n hidden: true,\n name: \"nodeData\",\n type: \"json\"\n }, {\n getIcon: iconProvider?.getIcon,\n name: \"Level 1\",\n type: \"string\"\n }, {\n getIcon: iconProvider?.getIcon,\n name: \"Level 2\",\n type: \"string\"\n });\n const rows = [];\n tree_utils_addChildValues(rows, treeSourceNodes, columns, iconProvider);\n return [\n columns,\n rows\n ];\n};\nconst tree_utils_addChildValues = (rows, treeSourceNodes, cols, iconProvider, index = {\n value: 0\n}, keyBase = \"$root\", depth = 1)=>{\n let leafCount = 0;\n let rowCount = 0;\n if (depth === cols.length - 1) cols.push({\n getIcon: iconProvider?.getIcon,\n name: `Level ${cols.length}`,\n type: \"string\"\n });\n for(let i = 0; i < treeSourceNodes.length; i++, index.value += 1){\n const { childNodes, icon, label, nodeData } = treeSourceNodes[i];\n const blanks = Array(depth - 1).fill(\"\");\n const fullKey = `${keyBase}|${label}`;\n const row = [\n index.value,\n index.value,\n false,\n false,\n depth,\n 0,\n fullKey,\n 0,\n tree_utils_timestamp,\n tree_utils_isNew,\n nodeData,\n ...blanks,\n label\n ];\n if (icon) iconProvider?.setIcon(fullKey, icon);\n rows.push(row);\n rowCount += 1;\n if (childNodes && childNodes.length > 0) {\n const [nestedLeafCount, nestedRowCount] = tree_utils_addChildValues(rows, childNodes, cols, iconProvider, {\n value: index.value + 1\n }, fullKey, depth + 1);\n row[tree_utils_COUNT] = nestedLeafCount;\n leafCount += nestedLeafCount;\n rowCount += nestedRowCount;\n index.value += nestedRowCount;\n } else leafCount += 1;\n }\n return [\n leafCount,\n rowCount\n ];\n};\nconst lastPathSegment = (path, separator = \"/\")=>{\n const root = path.endsWith(separator) ? path.slice(0, -1) : path;\n return root.slice(root.lastIndexOf(separator) + 1);\n};\nconst dropLastPathSegment = (path, separator = \"/\")=>path.slice(0, path.lastIndexOf(separator));\nconst getParentRow = (rows, row)=>{\n const { [tree_utils_IDX]: idx, [DEPTH]: depth } = row;\n for(let i = idx - 1; i >= 0; i--){\n const nextRow = rows[i];\n if (nextRow[DEPTH] === depth - 1) return nextRow;\n }\n};\nconst rowsAreSiblings = (key1, key2)=>dropLastPathSegment(key1, \"|\") === dropLastPathSegment(key2, \"|\");\nconst missingAncestor = (row, previousRow)=>{\n if (previousRow) {\n const prevKey = previousRow[tree_utils_KEY];\n const key = row[tree_utils_KEY];\n if (key.startsWith(prevKey)) ;\n else if (!rowsAreSiblings(prevKey, key)) return true;\n } else if (row[DEPTH] > 1) return true;\n return false;\n};\nfunction isNotNullOrUndefined(value) {\n return null != value;\n}\nconst isObject = (o)=>\"object\" == typeof o && null !== o;\nconst elementImplementsJSONSerialization = (element)=>\"function\" == typeof element.type.toJSON;\nconst NO_DATA_MATCH = [\n \"No matching data\"\n];\nfunction getUrlParameter(paramName, defaultValue) {\n const url = new URL(document.location.href);\n const parameter = url.searchParams.get(paramName);\n if (parameter) return parameter;\n const hashParams = url.hash;\n const regex = new RegExp(`${paramName}=([a-zA-Z]*)`);\n const result = regex.exec(hashParams);\n if (result) return result[1];\n return defaultValue;\n}\nconst hasUrlParameter = (paramName)=>new URL(document.location.href).searchParams.has(paramName);\nlet vuuComponentIdCount = 0;\nconst useId = (id)=>(0, __WEBPACK_EXTERNAL_MODULE_react__.useMemo)(()=>id ?? `vuu-${++vuuComponentIdCount}`, [\n id\n ]);\nconst WidthHeight = [\n \"height\",\n \"width\"\n];\nconst WidthOnly = [\n \"width\"\n];\nconst observedMap = new Map();\nconst getTargetSize = (element, size, dimension)=>{\n switch(dimension){\n case \"height\":\n return size.height;\n case \"clientHeight\":\n return Math.floor(element.clientHeight);\n case \"clientWidth\":\n return Math.floor(element.clientWidth);\n case \"contentHeight\":\n return size.contentHeight;\n case \"contentWidth\":\n return size.contentWidth;\n case \"scrollHeight\":\n return Math.ceil(Math.floor(element.scrollHeight));\n case \"scrollWidth\":\n return Math.ceil(Math.floor(element.scrollWidth));\n case \"width\":\n return size.width;\n default:\n return 0;\n }\n};\nconst useResizeObserver_resizeObserver = new ResizeObserver((entries)=>{\n for (const entry of entries){\n const { target, borderBoxSize, contentBoxSize } = entry;\n const observedTarget = observedMap.get(target);\n if (observedTarget) {\n const [{ blockSize: height, inlineSize: width }] = borderBoxSize;\n const [{ blockSize: contentHeight, inlineSize: contentWidth }] = contentBoxSize;\n const { onResize, measurements } = observedTarget;\n let sizeChanged = false;\n for (const [dimension, size] of Object.entries(measurements)){\n const newSize = getTargetSize(target, {\n height,\n width,\n contentHeight,\n contentWidth\n }, dimension);\n if (newSize !== size) {\n sizeChanged = true;\n measurements[dimension] = newSize;\n }\n }\n if (sizeChanged) onResize && onResize(measurements);\n }\n }\n});\nfunction useResizeObserver(ref, dimensions, onResize, reportInitialSize = false) {\n const dimensionsRef = (0, __WEBPACK_EXTERNAL_MODULE_react__.useRef)(dimensions);\n const measure = (0, __WEBPACK_EXTERNAL_MODULE_react__.useCallback)((target)=>{\n const { width, height } = target.getBoundingClientRect();\n const { clientWidth: contentWidth, clientHeight: contentHeight } = target;\n const flooredHeight = Math.floor(height);\n const flooredWidth = Math.floor(width);\n return dimensionsRef.current.reduce((map, dim)=>{\n map[dim] = getTargetSize(target, {\n width: flooredWidth,\n height: flooredHeight,\n contentHeight,\n contentWidth\n }, dim);\n return map;\n }, {});\n }, []);\n (0, __WEBPACK_EXTERNAL_MODULE_react__.useEffect)(()=>{\n const target = ref.current;\n async function registerObserver() {\n observedMap.set(target, {\n measurements: {}\n });\n const observedTarget = observedMap.get(target);\n if (observedTarget) {\n const measurements = measure(target);\n observedTarget.measurements = measurements;\n useResizeObserver_resizeObserver.observe(target);\n if (reportInitialSize) onResize(measurements);\n } else console.log(\"%cuseResizeObserver an target expected to be under observation wa snot found. This warrants investigation\", \"font-weight:bold; color:red;\");\n }\n if (target) {\n if (observedMap.has(target)) console.log(\"useResizeObserver attemping to observe same element twice\", {\n target\n });\n registerObserver();\n }\n return ()=>{\n if (target && observedMap.has(target)) {\n useResizeObserver_resizeObserver.unobserve(target);\n observedMap.delete(target);\n }\n };\n }, [\n measure,\n ref\n ]);\n (0, __WEBPACK_EXTERNAL_MODULE_react__.useEffect)(()=>{\n const target = ref.current;\n const record = observedMap.get(target);\n if (record) {\n if (dimensionsRef.current !== dimensions) {\n dimensionsRef.current = dimensions;\n const measurements = measure(target);\n record.measurements = measurements;\n }\n record.onResize = onResize;\n }\n }, [\n dimensions,\n measure,\n ref,\n onResize\n ]);\n}\nconst useStateRef_isSimpleStateValue = (arg)=>\"function\" != typeof arg;\nconst useStateRef = (initialValue)=>{\n const [value, _setValue] = (0, __WEBPACK_EXTERNAL_MODULE_react__.useState)(initialValue);\n const ref = (0, __WEBPACK_EXTERNAL_MODULE_react__.useRef)(value);\n const setValue = (0, __WEBPACK_EXTERNAL_MODULE_react__.useCallback)((arg)=>{\n if (useStateRef_isSimpleStateValue(arg)) {\n ref.current = arg;\n _setValue(arg);\n } else {\n const { current: prev } = ref;\n ref.current = arg(prev);\n _setValue(ref.current);\n }\n }, []);\n return [\n ref,\n setValue\n ];\n};\nconst DataSourceContext = /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react__.createContext)({\n dataSource: void 0\n});\nconst DataSourceProvider = ({ children, dataSource })=>/*#__PURE__*/ React.createElement(DataSourceContext.Provider, {\n value: {\n dataSource\n }\n }, children);\nfunction useDataSource(throwIfNoDataSource = false) {\n const { dataSource } = (0, __WEBPACK_EXTERNAL_MODULE_react__.useContext)(DataSourceContext);\n if (dataSource) return dataSource;\n if (throwIfNoDataSource) throw Error(\"[DataSOurceProvider] useDataSource,no DataSourceProvider has been declared \");\n console.warn(\"[DataSourceProvider] useDataSource: no DataSourceProvider has been declared\");\n}\nconst WorkspaceContext = /*#__PURE__*/ __WEBPACK_EXTERNAL_MODULE_react__[\"default\"].createContext({\n getApplicationSettings: ()=>void 0,\n layoutMetadata: [],\n saveLayout: ()=>void 0,\n saveApplicationLayout: ()=>void 0,\n saveApplicationSettings: ()=>void 0,\n loadLayoutById: ()=>void 0\n});\nconst usePlaceholderJSON = ()=>{\n const { layoutPlaceholderJSON } = (0, __WEBPACK_EXTERNAL_MODULE_react__.useContext)(WorkspaceContext);\n return layoutPlaceholderJSON;\n};\nconst defaultProps = {};\nclass PageVisibilityObserver extends EventEmitter {\n #inactiveTimeoutMs;\n #inactivityTimer;\n #hidden;\n visibilityChangeHandler = ()=>{\n this.hidden = document.hidden;\n };\n constructor({ inactiveTimeout = 0, onHidden, onInactiveTimeout, onVisibilityChange, onVisible } = defaultProps){\n super();\n this.#hidden = document.hidden;\n this.#inactiveTimeoutMs = 1000 * inactiveTimeout;\n if (onInactiveTimeout) this.on(\"inactive-timeout\", onInactiveTimeout);\n if (onHidden) this.on(\"hidden\", onHidden);\n if (onVisible) this.on(\"visible\", onVisible);\n if (onVisibilityChange) this.on(\"visibilityChange\", onVisibilityChange);\n document.addEventListener(\"visibilitychange\", this.visibilityChangeHandler);\n }\n clear() {\n document.removeEventListener(\"visibilitychange\", this.visibilityChangeHandler);\n }\n set hidden(hidden) {\n if (hidden !== this.#hidden) {\n this.#hidden = hidden;\n if (document.hidden) {\n this.emit(\"hidden\");\n if (this.#inactiveTimeoutMs) this.#inactivityTimer = setTimeout(()=>{\n this.emit(\"inactive-timeout\");\n }, this.#inactiveTimeoutMs);\n } else {\n this.emit(\"visible\");\n if (this.#inactivityTimer) {\n clearTimeout(this.#inactivityTimer);\n this.#inactivityTimer = void 0;\n }\n }\n this.emit(\"visibilityChange\", hidden);\n }\n }\n}\nconst defaultConfig = {};\nconst ShellContext = (0, __WEBPACK_EXTERNAL_MODULE_react__.createContext)(defaultConfig);\nconst useShellContext = ()=>(0, __WEBPACK_EXTERNAL_MODULE_react__.useContext)(ShellContext);\nconst checkCssToken = (tokenName)=>new Promise((resolve)=>{\n requestAnimationFrame(()=>{\n const saltSpacing100 = getComputedStyle(document.documentElement).getPropertyValue(tokenName);\n resolve(\"\" !== saltSpacing100);\n });\n });\nconst ThemeLoadChecker = ({ children, cssToken = \"--salt-spacing-100\", theme })=>{\n const [ready, setReady] = (0, __WEBPACK_EXTERNAL_MODULE_react__.useState)(false);\n (0, __WEBPACK_EXTERNAL_MODULE_react__.useMemo)(async ()=>{\n let ready = await checkCssToken(cssToken);\n while(!ready)ready = await checkCssToken(cssToken);\n setReady(true);\n }, [\n cssToken\n ]);\n if (\"no-theme\" === theme) return children;\n if (false === ready) return null;\n return children;\n};\nexport { AggregationType, ArrowDown, ArrowLeft, ArrowRight, ArrowUp, BaseDataSource, Clock, DEFAULT_DENSITY, DEFAULT_THEME, DEFAULT_THEME_MODE, DOWN1, DOWN2, DataContext, DataEditingProvider, DataProvider, DataSourceProvider, DataValidationError, DeferredPromise, DragDropProvider, DragOverlay, EditButtons, EditSession, End, Enter, Escape, EventEmitter, Home, INVALID_SESSION, INVALID_TOKEN, KeySet, KeyboardSensor, MEASURES, NO_CONFIG_CHANGES, NO_DATA_MATCH, NULL_RANGE, NoFilter, NoSort, ONE_DAY_IN_MILLIS, PageDown, PageUp, PageVisibilityObserver, PointerSensor, Range, RangeMonitor, RestrictToHorizontalAxis, SESSION_LIMIT_EXCEEDED, ScaledDecimal, ScaledDecimal2, ScaledDecimal4, ScaledDecimal6, ScaledDecimal8, ShellContext, keyboard_utils_Space as Space, TOKEN_EXPIRED, Tab, ThemeContext, ThemeLoadChecker, ThemeProvider, Time, UP1, UP2, VuuShellLocation, WidthHeight, WidthOnly, WindowRange, WorkspaceContext, actualRowPositioning, addColumnToSubscribedColumns, addGroupColumn, addSortColumn, applyDefaultColumnConfig, applyFilterToColumns, applyGroupByToColumns, applyRuntimeColumnWidthsToConfig, applySortToColumns, applyWidthToColumns, asDataSourceRowObject, asInteger, asReactElements, asTimeString, assertAllColumnsAreIncludedInSubscription, assertComponentRegistered, assertComponentsRegistered, boxContainsPoint, buildColumnMap, byModule, checkConfirmationPending, clearLocalEntity, columnByAriaIndex, combineFilters, createEl, createSyntheticEvent, dataAndColumnUnchanged, dataColumnAndKeyUnchanged, dataDescriptorTypeToVuuRowDataItemType, dataSourceRowToDataRowDto, dataSourceRowToEntity, dateFilterAsQuery, dateTimeLabelByType, dateTimePattern, perf_utils_debounce as debounce, decrementTimeUnitValue, defaultPatternsByType, defaultSuspenseProps, defaultValueFormatter, deselectItem, dispatchCustomEvent, dispatchKeyboardEvent, dispatchMouseEvent, dropLastPathSegment, elementImplementsJSONSerialization, env, exceedsMaxSafeInteger, existingSort, extractFilterForColumn, extractGroupColumn, fallbackDateTimePattern, featureFromJson, filterAsQuery, filtersAreEqual, findColumn, flattenColumnGroup, focusFirstFocusableElement, formatDate, fromServerDataType, getAddedItems, getAllCellsInColumn, getAllLocalEntity, getAriaColIndex, getAriaRowIndex, getCalculatedColumnDetails, getCellConfigPanelRenderer, getCellRenderer, getCellRendererOptions, getCenteredBox, getClosest, getClosestIndexItem, getColumnHeaderContentRenderer, getColumnHeaderLabelRenderer, getColumnLabel, getColumnName, getColumnStyle, getColumnValueFromFilter, getColumnsInViewport, getConfigurationEditor, getCookieValue, getCustomAndTableFeatures, getDateFormatter, getDefaultAlignment, getDefaultColumnType, getEditRuleValidator, getElementByDataIndex, getElementDataIndex, getFieldName, getFilterTableFeatures, getFocusableElement, getFullRange, getGroupIcon, getGroupStatus, getGroupValue, getLayoutComponent, getLocalEntity, getLoggingConfigForWorker, getMissingItems, getMovingValueDirection, getParentRow, getPinStateFromElement, getPositionWithinBox, getRegisteredCellRenderers, getRowClassNameGenerator, getRuntimeColumnWidth, getScrollbarSize, getSelectedOption, getServerDataType, getSortStatus, getTableHeadings, getTypeFormattingFromColumn, getTypedRange, getTypedValue, getUniqueId, getUrlParameter, getValueFormatter, getVuuTable, hasBaseFilter, hasCustomRenderer, hasFilter, hasFilterTableFeatureProps, hasGroupBy, hasHeadings, hasOpenOptionList, hasSort, hasUrlParameter, hasValidationRules, hasViewPortContext, importCSS, incrementTimeUnitValue, invariant, isActionMessage, isAndFilter, isArrowKey, isBaseFilterChanged, isBetweenFilter, isBetweenOperator, isCalculatedColumn, isCharacterKey, isColumnTypeRenderer, isCompleteFilter, isConfigChanged, isConnectionQualityMetrics, isContainer, isCreateVpSuccess, isCustomComponentActionMessage, isCustomFeature, isDataLoading, isDateInput, isDatePattern, isDateTimeDataType, isDateTimeDataValue, isExtendedFilter, isFilter, isFilterChanged, isFilterClause, isFilteredColumn, isGridLayoutSplitDirection, isGroupByChanged, isGroupColumn, isInFilter, isInputElement, isJsonAttribute, isJsonColumn, isJsonGroup, isLayoutComponent, isLoginErrorMessage, isLoginResponse, isLookupRenderer, isMappedValueTypeRenderer, isModule, isMultiClauseFilter, isMultiValueFilter, isNamedFilter, isNotHidden, isNotNullOrUndefined, isNumber, isNumericColumn, isNumericType, isObject, isOpenDialogAction, isOpenSessionTableDialogMessage, isOrFilter, isPinned, isQuoteKey, isRequestResponse, isResizing, isRpcError, isRpcServiceRequest, isRpcSuccess, isSameTable, isScaledDecimalFilterClause, isSelectRequest, isSelectSuccessWithRowCount, isSelectableElement, isSerializableFilter, isSessionTable, isSessionTableActionMessage, isSimpleStateValue, isSingleValueFilter, isStaticFeatures, isStringColumn, isTableSchemaMessage, isTextColumn, isTimeDataType, isTimeDataValue, isTimePattern, isTimestampColumn, isTypeDescriptor, isTypeaheadRequest, isTypeaheadSuggestionProvider, isValidColumnAlignment, isValidFilterClauseOp, isValidNumber, isValidPinLocation, isValidRange, isValidTimeString, isValueListRenderer, isView, isViewportMenusAction, isViewportMessage, isVisualLinkCreatedAction, isVisualLinkMessage, isVisualLinkRemovedAction, isVisualLinksAction, isVuuColumnDataType, isVuuFeatureAction, isVuuMenuRpcRequest, isVuuTables, isWildcardSchema, itemToString, itemsChanged, itemsOrOrderChanged, jsonToDataSourceRows, lastPathSegment, lastWord, logUnhandledMessage, logger, lowerCase, mapSortCriteria, measurePinnedColumns, messageHasDataRows, messageHasResult, messageHasSize, metadataKeys, missingAncestor, moveColumnTo, moveItem, moveItemDeprecated, numericFormatter, numericTypeOfStringValue, partition, pointPositionWithinRect, projectUpdates, queryClosest, rangeNewItems, registerComponent, registerConfigurationEditor, removeGroupColumn, removeSort, reorderColumnItems, replaceColumn, roundDecimal, roundScaledDecimal, saveLocalEntity, selectItem, setAggregations, setCalculatedColumnExpression, setCalculatedColumnName, setCalculatedColumnType, setCookieValue, setSortColumn, shallowEquals, sortPinnedColumns, stringIsValidDecimal, stringIsValidInt, stringIsValidNumber, stripFilterFromColumns, stripVisualLink, subscribedOnly, supportedDateTimePatterns, perf_utils_throttle as throttle, toCalendarDate, toColumnDescriptor, toColumnName, toDataSourceColumns, toggleOrApplySort, treeToDataSourceRows, updateColumn, updateColumnFormatting, updateColumnRenderProps, updateColumnType, updateTimeString, useData, useDataSource, useEditSession, useEditableTable, useId, useInstance, useIsMounted, useLayoutEffectSkipFirst, usePlaceholderJSON, useResizeObserver, useShellContext, useSortable, useStableReference, useStateRef, useThemeAttributes, uuid, vanillaConfig, virtualRowPositioning, visibleColumnAtIndex, vuuRowToDataSourceRow, withConfigDefaults, withinRange, wordify, zeroTime, zeroTimeUnit };\n"],"names":[],"mappings":"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"}
|