@svgrid/grid 2.2.26 → 2.2.28

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.
Files changed (36) hide show
  1. package/README.md +79 -25
  2. package/dist/GridMenus.svelte +10 -4
  3. package/dist/SvColorInput.svelte +1 -1
  4. package/dist/SvContextMenu.svelte +4 -4
  5. package/dist/SvDrawer.svelte +4 -0
  6. package/dist/SvGrid.css +4 -0
  7. package/dist/SvPhoneInput.svelte +3 -1
  8. package/dist/a11y/dismissable.d.ts +11 -0
  9. package/dist/a11y/dismissable.js +21 -0
  10. package/dist/ai.js +3 -3
  11. package/dist/cdn/GridMenus-BbzEvTYO.js +421 -0
  12. package/dist/cdn/GridMenus-E220X2kM.js +417 -0
  13. package/dist/cdn/{SvDateTimePicker-CYC7gRER.js → SvDateTimePicker-B8GopjhC.js} +449 -442
  14. package/dist/cdn/{SvDateTimePicker-DtQKd4Ns.js → SvDateTimePicker-DB0aIEk8.js} +112 -105
  15. package/dist/cdn/{src-bYfr_7aR.js → src-BxNEslEo.js} +8089 -8089
  16. package/dist/cdn/{src-DysW9qbk.js → src-C4yKQZ5t.js} +5741 -5741
  17. package/dist/cdn/svgrid.js +8 -8
  18. package/dist/cdn/svgrid.svelte-external.js +8 -8
  19. package/dist/index.d.ts +1 -1
  20. package/dist/index.js +1 -1
  21. package/package.json +21 -4
  22. package/src/GridMenus.svelte +10 -4
  23. package/src/SvColorInput.svelte +1 -1
  24. package/src/SvContextMenu.svelte +4 -4
  25. package/src/SvDrawer.svelte +4 -0
  26. package/src/SvDrawer.test.ts +18 -1
  27. package/src/SvGrid.css +4 -0
  28. package/src/SvNavPane.test.ts +15 -4
  29. package/src/SvPhoneInput.svelte +3 -1
  30. package/src/a11y/dismissable.test.ts +25 -1
  31. package/src/a11y/dismissable.ts +20 -0
  32. package/src/ai.ts +3 -3
  33. package/src/index.ts +1 -0
  34. package/src/svgrid.filter-menu-scroll.test.ts +102 -0
  35. package/dist/cdn/GridMenus-GfCAHgkZ.js +0 -420
  36. package/dist/cdn/GridMenus-GiVNSeDU.js +0 -416
@@ -1,5 +1,5 @@
1
1
  import { afterEach, describe, expect, it } from 'vitest'
2
- import { createDismissableLayer, dismissableDepth } from './dismissable'
2
+ import { createDismissableLayer, dismissableDepth, onScrollOutside } from './dismissable'
3
3
 
4
4
  function panel(): HTMLElement {
5
5
  const el = document.createElement('div')
@@ -77,6 +77,30 @@ describe('createDismissableLayer', () => {
77
77
  expect(dismissableDepth()).toBe(0)
78
78
  })
79
79
 
80
+ it('close-on-scroll ignores scrolling inside the panel', () => {
81
+ const el = panel()
82
+ const list = document.createElement('div') // e.g. the filter menu's facet list
83
+ el.appendChild(list)
84
+ let closed = 0
85
+ const off = onScrollOutside(() => el, () => closed++)
86
+
87
+ // Inner scroll containers don't bubble, so this only reaches the capture
88
+ // listener - it must NOT close the menu the user is scrolling.
89
+ list.dispatchEvent(new Event('scroll'))
90
+ el.dispatchEvent(new Event('scroll'))
91
+ expect(closed).toBe(0)
92
+
93
+ // A scroll anywhere else moves the anchor, so the panel closes.
94
+ document.body.dispatchEvent(new Event('scroll'))
95
+ expect(closed).toBe(1)
96
+ document.dispatchEvent(new Event('scroll'))
97
+ expect(closed).toBe(2)
98
+
99
+ off()
100
+ document.body.dispatchEvent(new Event('scroll'))
101
+ expect(closed).toBe(2)
102
+ })
103
+
80
104
  it('respects closeOnEscape / closeOnOutside flags', () => {
81
105
  const el = panel()
82
106
  let count = 0
@@ -92,3 +92,23 @@ export function createDismissableLayer(options: DismissableOptions): Dismissable
92
92
  export function dismissableDepth(): number {
93
93
  return stack.length
94
94
  }
95
+
96
+ /**
97
+ * Close-on-scroll for popovers that are position:fixed and anchored by a
98
+ * one-time measurement taken when they open. Scrolling an ancestor slides the
99
+ * anchor out from under them, so they have to close - but scrolling INSIDE
100
+ * them (a long menu, a facet list) must not, which is what a bare capture-phase
101
+ * window listener gets wrong: inner scroll containers don't bubble, so the
102
+ * capture listener sees them and dismisses the panel the user is scrolling.
103
+ *
104
+ * Returns the unsubscribe function.
105
+ */
106
+ export function onScrollOutside(element: () => DismissTarget, onOutside: () => void): () => void {
107
+ if (typeof window === 'undefined') return () => {}
108
+ const handler = (event: Event) => {
109
+ if (containsTarget(element(), event.target as Node)) return
110
+ onOutside()
111
+ }
112
+ window.addEventListener('scroll', handler, true)
113
+ return () => window.removeEventListener('scroll', handler, true)
114
+ }
package/src/ai.ts CHANGED
@@ -90,7 +90,7 @@ export function hasAIProvider(): boolean {
90
90
  class NoProviderError extends Error {
91
91
  constructor() {
92
92
  super(
93
- '@svgrid/enterprise/ai: no AI provider registered. Call setAIProvider(fn) ' +
93
+ '@svgrid/grid ai: no AI provider registered. Call setAIProvider(fn) ' +
94
94
  'with an adapter that talks to OpenAI / Anthropic / your proxy.',
95
95
  )
96
96
  this.name = 'NoProviderError'
@@ -100,7 +100,7 @@ class NoProviderError extends Error {
100
100
  class BadJsonError extends Error {
101
101
  constructor(raw: string) {
102
102
  super(
103
- '@svgrid/enterprise/ai: provider returned non-JSON for a json-format request. ' +
103
+ '@svgrid/grid ai: provider returned non-JSON for a json-format request. ' +
104
104
  `First 200 chars: ${raw.slice(0, 200)}`,
105
105
  )
106
106
  this.name = 'BadJsonError'
@@ -324,7 +324,7 @@ export async function aiSmartFill<
324
324
  opts: AISmartFillOptions,
325
325
  ): Promise<AISmartFillResult<TValue>> {
326
326
  if (opts.examples.length === 0) {
327
- throw new Error('@svgrid/enterprise/ai: aiSmartFill requires at least one example.')
327
+ throw new Error('@svgrid/grid ai: aiSmartFill requires at least one example.')
328
328
  }
329
329
  const data = api.getData()
330
330
  const targets =
package/src/index.ts CHANGED
@@ -194,6 +194,7 @@ export { lockScroll, scrollLockDepth } from './a11y/scroll-lock'
194
194
  export {
195
195
  createDismissableLayer,
196
196
  dismissableDepth,
197
+ onScrollOutside,
197
198
  type DismissableLayer,
198
199
  type DismissableOptions,
199
200
  } from './a11y/dismissable'
@@ -0,0 +1,102 @@
1
+ /**
2
+ * Filter menu + scroll. The funnel popover is position:fixed and anchored by a
3
+ * one-time measurement, so a scroll of the page/grid has to close it - but
4
+ * scrolling the popover's OWN body or its facet list must not, or the value
5
+ * list is unusable (reported on the 03-excel-filters demo).
6
+ */
7
+ import { describe, expect, it, vi } from 'vitest'
8
+ import { mount, unmount } from 'svelte'
9
+ import SvGrid from './SvGrid.svelte'
10
+ import {
11
+ columnFilteringFeature,
12
+ createCoreRowModel,
13
+ createFilteredRowModel,
14
+ createSortedRowModel,
15
+ rowSortingFeature,
16
+ sortFns,
17
+ tableFeatures,
18
+ } from './index'
19
+ import type { ColumnDef, SvGridApi } from './index'
20
+
21
+ type Row = { id: number; name: string; team: string }
22
+ const features = tableFeatures({ rowSortingFeature, columnFilteringFeature })
23
+ const rows: Row[] = Array.from({ length: 12 }, (_, i) => ({
24
+ id: i + 1,
25
+ name: `Person ${i + 1}`,
26
+ team: ['A', 'B', 'C'][i % 3]!,
27
+ }))
28
+ const cols: ColumnDef<typeof features, Row>[] = [
29
+ { field: 'name', header: 'Name', width: 200, editorType: 'text' },
30
+ { field: 'team', header: 'Team', width: 160, editorType: 'text' },
31
+ ]
32
+ const tick = () => new Promise<void>((r) => setTimeout(r))
33
+
34
+ function mountGrid() {
35
+ return new Promise<{ target: HTMLElement; destroy: () => void }>((res, rej) => {
36
+ const target = document.createElement('div')
37
+ document.body.appendChild(target)
38
+ const app = mount(SvGrid, {
39
+ target,
40
+ props: {
41
+ data: rows,
42
+ columns: cols,
43
+ features,
44
+ _rowModels: {
45
+ coreRowModel: createCoreRowModel(),
46
+ filteredRowModel: createFilteredRowModel(),
47
+ sortedRowModel: createSortedRowModel(sortFns),
48
+ },
49
+ rowHeight: 32,
50
+ containerHeight: 400,
51
+ virtualization: false,
52
+ filterMode: 'menu',
53
+ showColumnFilters: true,
54
+ onApiReady(_api: SvGridApi<typeof features, Row>) {
55
+ res({ target, destroy: () => { unmount(app); target.remove() } })
56
+ },
57
+ } as any,
58
+ })
59
+ queueMicrotask(() => { if (!target.querySelector('[role="grid"]')) rej(new Error('no grid')) })
60
+ })
61
+ }
62
+
63
+ async function openFilterMenu(target: HTMLElement) {
64
+ const btn = target.querySelector('.sv-grid-col-filter-btn') as HTMLButtonElement
65
+ expect(btn).not.toBeNull()
66
+ btn.click()
67
+ // GridMenus is a lazy chunk; poll until the popover mounts.
68
+ await vi.waitFor(() => expect(target.querySelector('.sv-grid-filter-menu')).not.toBeNull())
69
+ return target.querySelector('.sv-grid-filter-menu') as HTMLElement
70
+ }
71
+
72
+ describe('SvGrid filter menu scrolling', () => {
73
+ it('stays open while its own body / facet list is scrolled', async () => {
74
+ const { target, destroy } = await mountGrid()
75
+ await tick()
76
+ const menu = await openFilterMenu(target)
77
+
78
+ menu.dispatchEvent(new Event('scroll'))
79
+ await tick()
80
+ expect(target.querySelector('.sv-grid-filter-menu')).not.toBeNull()
81
+
82
+ const facets = menu.querySelector('.sv-grid-facet-list')
83
+ expect(facets).not.toBeNull()
84
+ facets!.dispatchEvent(new Event('scroll'))
85
+ await tick()
86
+ expect(target.querySelector('.sv-grid-filter-menu')).not.toBeNull()
87
+
88
+ destroy()
89
+ })
90
+
91
+ it('still closes when something outside it scrolls', async () => {
92
+ const { target, destroy } = await mountGrid()
93
+ await tick()
94
+ await openFilterMenu(target)
95
+
96
+ const viewport = target.querySelector('.sv-grid-viewport') ?? target
97
+ viewport.dispatchEvent(new Event('scroll'))
98
+ await vi.waitFor(() => expect(target.querySelector('.sv-grid-filter-menu')).toBeNull())
99
+
100
+ destroy()
101
+ })
102
+ })
@@ -1,420 +0,0 @@
1
- import { eo as e, to as t } from "./src-bYfr_7aR.js";
2
- import * as n from "svelte/internal/client";
3
- import "svelte/internal/disclose-version";
4
- //#region src/GridMenus.svelte
5
- var r = n.from_html("<option> </option>"), i = n.from_html("<option></option>"), a = n.from_html("<datalist></datalist>"), o = n.from_html("<input class=\"sv-grid-menu-condition-value\" placeholder=\"To\"/>"), s = n.from_html("<option> </option>"), c = n.from_html("<input class=\"sv-grid-menu-condition-value\" placeholder=\"To\"/>"), l = n.from_html("<input class=\"sv-grid-menu-condition-value\"/> <!>", 1), u = n.from_html("<div class=\"sv-grid-menu-join\" role=\"radiogroup\" aria-label=\"Combine conditions\"><button type=\"button\">AND</button> <button type=\"button\">OR</button> <button type=\"button\" class=\"sv-grid-menu-join-x\" title=\"Remove second condition\" aria-label=\"Remove second condition\">×</button></div> <select class=\"sv-grid-menu-operator-select\" aria-label=\"Second filter condition\"></select> <!>", 1), d = n.from_html("<button type=\"button\" class=\"sv-grid-menu-add-cond\">+ Add condition</button>"), f = n.from_html("<input class=\"sv-grid-menu-condition-value\"/> <!> <!> <!>", 1), p = n.from_html("<label class=\"sv-grid-facet\"><input type=\"checkbox\"/> <span class=\"sv-grid-facet-label\"> </span></label>"), m = n.from_html("<div class=\"sv-grid-facet-empty\">No values</div>"), h = n.from_html("<div class=\"sv-grid-facet-note\"> </div>"), g = n.from_html("<div class=\"sv-grid-menu-filter\"><div class=\"sv-grid-menu-filter-head\"><span class=\"sv-grid-header-icon\"><!></span> Filter\n condition</div> <select class=\"sv-grid-menu-operator-select\" aria-label=\"Filter condition\"></select> <!> <div class=\"sv-grid-menu-sep\"></div> <div class=\"sv-grid-menu-filter-head\">Values</div> <input class=\"sv-grid-menu-search\" placeholder=\"Search values...\"/> <label class=\"sv-grid-facet sv-grid-facet-all\"><input type=\"checkbox\"/> <span class=\"sv-grid-facet-label\">(Select all)</span></label> <div class=\"sv-grid-facet-list\"></div> <!> <div class=\"sv-grid-menu-actions\"><button type=\"button\" class=\"sv-grid-menu-btn\">Clear filter</button> <button type=\"button\" class=\"sv-grid-menu-btn sv-grid-menu-btn-primary\">Done</button></div></div>"), _ = n.from_html("<div role=\"tooltip\"> </div>"), v = n.from_html("<div class=\"sv-grid-menu-backdrop\" role=\"presentation\"></div>"), y = n.from_html("<button type=\"button\" role=\"tab\">Filter</button>"), b = n.from_html("<div class=\"sv-grid-menu-tabs\" role=\"tablist\"><button type=\"button\" role=\"tab\">General</button> <!> <button type=\"button\" role=\"tab\">Columns</button></div>"), x = n.from_html("<label class=\"sv-grid-facet\"><input type=\"checkbox\"/> <span class=\"sv-grid-facet-label\"> </span></label>"), S = n.from_html("<div class=\"sv-grid-menu-filter-head\">Visible columns</div> <div class=\"sv-grid-facet-list\"></div>", 1), C = n.from_html("<button type=\"button\" class=\"sv-grid-menu-item\" role=\"menuitem\"><span class=\"sv-grid-header-icon\"><!></span> Sort\n ascending</button> <button type=\"button\" class=\"sv-grid-menu-item\" role=\"menuitem\"><span class=\"sv-grid-header-icon\"><!></span> Sort\n descending</button> <button type=\"button\" class=\"sv-grid-menu-item\" role=\"menuitem\"><span class=\"sv-grid-header-icon\"><!></span> Remove sort</button>", 1), w = n.from_html("<div class=\"sv-grid-menu-sep\"></div> <button type=\"button\" class=\"sv-grid-menu-item\" role=\"menuitem\"><span class=\"sv-grid-header-icon\"><!></span> Pin to left</button> <button type=\"button\" class=\"sv-grid-menu-item\" role=\"menuitem\"><span class=\"sv-grid-header-icon\"><!></span> Pin to right</button> <button type=\"button\" class=\"sv-grid-menu-item\" role=\"menuitem\"><span class=\"sv-grid-header-icon\"><!></span> Unpin column</button>", 1), T = n.from_html("<div class=\"sv-grid-menu-sep\"></div> <button type=\"button\" class=\"sv-grid-menu-item\" role=\"menuitem\"><span class=\"sv-grid-header-icon\"><!></span> Group\n by this column</button> <button type=\"button\" class=\"sv-grid-menu-item\" role=\"menuitem\"><span class=\"sv-grid-header-icon\"><!></span> Remove grouping</button>", 1), E = n.from_html("<button type=\"button\" role=\"menuitem\" aria-haspopup=\"menu\"><span class=\"sv-grid-header-icon\"><!></span> Choose columns <span class=\"sv-grid-header-icon sv-grid-menu-item-chevron\"><!></span></button>"), D = n.from_html("<!> <!> <div class=\"sv-grid-menu-sep\"></div> <button type=\"button\" class=\"sv-grid-menu-item\" role=\"menuitem\"><span class=\"sv-grid-header-icon\"><!></span> Autosize\n this column</button> <button type=\"button\" class=\"sv-grid-menu-item\" role=\"menuitem\"><span class=\"sv-grid-header-icon\"><!></span> Autosize\n all columns</button> <!> <div class=\"sv-grid-menu-sep\"></div> <!> <button type=\"button\" class=\"sv-grid-menu-item\" role=\"menuitem\"><span class=\"sv-grid-header-icon\"><!></span> Reset columns</button>", 1), O = n.from_html("<div class=\"sv-grid-menu sv-grid-column-menu\" role=\"menu\"><!> <!></div>"), ee = n.from_html("<div class=\"sv-grid-menu sv-grid-filter-menu\" role=\"menu\"><!></div>"), k = n.from_html("<label class=\"sv-grid-facet\"><input type=\"checkbox\"/> <span class=\"sv-grid-facet-label\"> </span></label>"), A = n.from_html("<div class=\"sv-grid-menu sv-grid-choose-columns-menu\" role=\"menu\"><div class=\"sv-grid-menu-filter-head\">Visible columns</div> <div class=\"sv-grid-facet-list\"></div></div>"), j = n.from_html("<button type=\"button\" class=\"sv-grid-menu-item\" role=\"menuitemradio\"><span class=\"sv-grid-header-icon\"><!></span> </button>"), M = n.from_html("<div class=\"sv-grid-menu sv-grid-operator-menu\" role=\"menu\"></div>"), N = n.from_html("<button type=\"button\" class=\"sv-grid-menu-item sv-grid-in-suggest-item\" role=\"option\"><span class=\"sv-grid-in-suggest-check\" aria-hidden=\"true\"> </span> <span class=\"sv-grid-in-suggest-label\"> </span></button>"), te = n.from_html("<div class=\"sv-grid-facet-empty\">No values</div>"), ne = n.from_html("<div class=\"sv-grid-menu sv-grid-in-suggest\" role=\"listbox\" aria-multiselectable=\"true\" aria-label=\"Filter values\"></div>"), P = n.from_html("<div class=\"sv-grid-menu-sep\"></div>"), re = n.from_html("<button type=\"button\" class=\"sv-grid-menu-item\" role=\"menuitem\"> </button>"), ie = n.from_html("<div class=\"sv-grid-menu-backdrop\" role=\"presentation\"></div> <div class=\"sv-grid-menu sv-grid-context-menu\" role=\"menu\"></div>", 1), ae = n.from_html("<div class=\"sv-grid-menu-backdrop\" role=\"presentation\"></div> <div class=\"sv-grid-menu sv-grid-comment-editor\" role=\"dialog\" aria-label=\"Edit comment\"><textarea class=\"sv-grid-comment-textarea\" rows=\"3\" placeholder=\"Add a comment…\"></textarea> <div class=\"sv-grid-comment-actions\"><button type=\"button\" class=\"sv-grid-comment-remove\">Remove</button> <span class=\"sv-grid-comment-spacer\"></span> <button type=\"button\" class=\"sv-grid-comment-cancel\">Cancel</button> <button type=\"button\" class=\"sv-grid-comment-save\">Save</button></div></div>", 1), oe = n.from_html("<!> <!> <!> <!> <!> <!> <!> <!> <!>", 1);
6
- function se(se, F) {
7
- n.push(F, !0);
8
- let ce = (e, _ = n.noop) => {
9
- let v = n.derived(() => n.get(q).find((e) => e.id === _())), y = n.derived(() => n.get(Se)(n.get(v))), b = n.derived(() => n.get(L)[_()]?.operator ?? n.get(J)(n.get(v))), x = n.derived(() => t(n.get(v)?.columnDef.editorType ?? "text"));
10
- var S = g(), C = n.child(S), w = n.child(C), T = n.child(w);
11
- n.snippet(T, () => F.icon, () => "filter"), n.reset(w), n.next(), n.reset(C);
12
- var E = n.sibling(C, 2);
13
- n.each(E, 21, () => n.get(y), (e) => e.value, (e, t) => {
14
- var i = r(), a = n.child(i, !0);
15
- n.reset(i);
16
- var o = {};
17
- n.template_effect((e) => {
18
- n.set_text(a, e), o !== (o = n.get(t).value) && (i.value = (i.__value = n.get(t).value) ?? "");
19
- }, [() => n.get(Y)(n.get(t), n.get(v))]), n.append(e, i);
20
- }), n.reset(E);
21
- var D;
22
- n.init_select(E);
23
- var O = n.sibling(E, 2), ee = (e) => {
24
- let t = n.derived(() => n.get(b) === "in" || n.get(b) === "notIn"), r = n.derived(() => n.get(L)[_()]);
25
- var p = f(), m = n.first_child(p);
26
- n.remove_input_defaults(m);
27
- var h = n.sibling(m, 2), g = (e) => {
28
- var t = a();
29
- n.each(t, 20, () => n.get(Oe)(_()).slice(0, 200), (e) => e, (e, t) => {
30
- var r = i(), a = {};
31
- n.template_effect(() => {
32
- a !== (a = t) && (r.value = (r.__value = t) ?? "");
33
- }), n.append(e, r);
34
- }), n.reset(t), n.template_effect(() => n.set_attribute(t, "id", `sv-in-list-${_()}`)), n.append(e, t);
35
- };
36
- n.if(h, (e) => {
37
- n.get(t) && e(g);
38
- });
39
- var S = n.sibling(h, 2), C = (e) => {
40
- var t = o();
41
- n.remove_input_defaults(t), n.template_effect(() => {
42
- n.set_attribute(t, "type", n.get(x)), n.set_value(t, n.get(L)[_()]?.valueTo ?? "");
43
- }), n.delegated("input", t, (e) => n.get(xe)(_(), e.currentTarget.value)), n.append(e, t);
44
- };
45
- n.if(S, (e) => {
46
- n.get(b) === "between" && e(C);
47
- });
48
- var w = n.sibling(S, 2), T = (e) => {
49
- let t = n.derived(() => n.get(r).operator2 ?? n.get(J)(n.get(v)));
50
- var i = u(), a = n.first_child(i), o = n.child(a);
51
- let d;
52
- var f = n.sibling(o, 2);
53
- let p;
54
- var m = n.sibling(f, 2);
55
- n.reset(a);
56
- var h = n.sibling(a, 2);
57
- n.each(h, 21, () => n.get(y), (e) => e.value, (e, t) => {
58
- var r = s(), i = n.child(r, !0);
59
- n.reset(r);
60
- var a = {};
61
- n.template_effect((e) => {
62
- n.set_text(i, e), a !== (a = n.get(t).value) && (r.value = (r.__value = n.get(t).value) ?? "");
63
- }, [() => n.get(Y)(n.get(t), n.get(v))]), n.append(e, r);
64
- }), n.reset(h);
65
- var g;
66
- n.init_select(h);
67
- var b = n.sibling(h, 2), S = (e) => {
68
- var i = l(), a = n.first_child(i);
69
- n.remove_input_defaults(a);
70
- var o = n.sibling(a, 2), s = (e) => {
71
- var t = c();
72
- n.remove_input_defaults(t), n.template_effect(() => {
73
- n.set_attribute(t, "type", n.get(x)), n.set_value(t, n.get(r).valueTo2 ?? "");
74
- }), n.delegated("input", t, (e) => X(_(), { valueTo2: e.currentTarget.value })), n.append(e, t);
75
- };
76
- n.if(o, (e) => {
77
- n.get(t) === "between" && e(s);
78
- }), n.template_effect(() => {
79
- n.set_attribute(a, "type", n.get(x)), n.set_value(a, n.get(r).value2 ?? ""), n.set_attribute(a, "placeholder", n.get(t) === "between" ? "From" : "Filter value...");
80
- }), n.delegated("input", a, (e) => X(_(), { value2: e.currentTarget.value })), n.append(e, i);
81
- };
82
- n.if(b, (e) => {
83
- n.get(t) !== "isBlank" && e(S);
84
- }), n.template_effect(() => {
85
- d = n.set_class(o, 1, "", null, d, { "is-on": (n.get(r).join ?? "AND") === "AND" }), p = n.set_class(f, 1, "", null, p, { "is-on": n.get(r).join === "OR" }), g !== (g = n.get(t)) && (h.value = (h.__value = n.get(t)) ?? "", n.select_option(h, n.get(t)));
86
- }), n.delegated("click", o, () => X(_(), { join: "AND" })), n.delegated("click", f, () => X(_(), { join: "OR" })), n.delegated("click", m, () => X(_(), {
87
- operator2: void 0,
88
- value2: void 0,
89
- valueTo2: void 0,
90
- join: void 0
91
- })), n.delegated("change", h, (e) => X(_(), { operator2: e.currentTarget.value })), n.append(e, i);
92
- }, E = (e) => {
93
- var t = d();
94
- n.delegated("click", t, () => X(_(), {
95
- operator2: n.get(J)(n.get(v)),
96
- value2: "",
97
- join: "AND"
98
- })), n.append(e, t);
99
- };
100
- n.if(w, (e) => {
101
- n.get(r)?.operator2 ? e(T) : e(E, -1);
102
- }), n.template_effect(() => {
103
- n.set_attribute(m, "type", n.get(b) === "regex" ? "text" : n.get(x)), n.set_attribute(m, "list", n.get(t) ? `sv-in-list-${_()}` : void 0), n.set_value(m, n.get(L)[_()]?.value ?? ""), n.set_attribute(m, "placeholder", n.get(b) === "between" ? "From" : n.get(t) ? "value, value..." : n.get(b) === "regex" ? "Pattern..." : "Filter value...");
104
- }), n.delegated("input", m, (e) => n.get(be)(_(), e.currentTarget.value)), n.append(e, p);
105
- };
106
- n.if(O, (e) => {
107
- n.get(b) !== "isBlank" && n.get(b) !== "isNotBlank" && e(ee);
108
- });
109
- var k = n.sibling(O, 6);
110
- n.remove_input_defaults(k);
111
- var A = n.sibling(k, 2), j = n.child(A);
112
- n.remove_input_defaults(j), n.next(2), n.reset(A);
113
- var M = n.sibling(A, 2);
114
- n.each(M, 20, () => n.get(Q), (e) => e, (e, t) => {
115
- var r = p(), i = n.child(r);
116
- n.remove_input_defaults(i);
117
- var a = n.sibling(i, 2), o = n.child(a, !0);
118
- n.reset(a), n.reset(r), n.template_effect((e) => {
119
- n.set_checked(i, e), n.set_text(o, t === "" ? "(Blanks)" : t);
120
- }, [() => n.get(ze)(_(), t)]), n.delegated("change", i, () => n.get(Be)(_(), t)), n.append(e, r);
121
- }, (e) => {
122
- var t = m();
123
- n.append(e, t);
124
- }), n.reset(M);
125
- var N = n.sibling(M, 2), te = (e) => {
126
- var t = h(), r = n.child(t);
127
- n.reset(t), n.template_effect(() => n.set_text(r, `Showing ${n.get(Q).length ?? ""} of ${n.get(Re).length ?? ""}`)), n.append(e, t);
128
- };
129
- n.if(N, (e) => {
130
- n.get(Re).length > n.get(Q).length && e(te);
131
- });
132
- var ne = n.sibling(N, 2), P = n.child(ne), re = n.sibling(P, 2);
133
- n.reset(ne), n.reset(S), n.template_effect((e, t) => {
134
- D !== (D = n.get(b)) && (E.value = (E.__value = n.get(b)) ?? "", n.select_option(E, n.get(b))), n.set_checked(j, e), P.disabled = t;
135
- }, [() => n.get(Ve)(_()), () => !n.get(ke)(_())]), n.delegated("change", E, (e) => n.get(ye)(_(), e.currentTarget.value)), n.bind_value(k, () => I().columnMenuSearch, (e) => I().columnMenuSearch = e), n.delegated("change", j, () => n.get(He)(_())), n.delegated("click", P, () => n.get(Ue)(_())), n.delegated("click", re, function(...e) {
136
- n.get(Z)?.apply(this, e);
137
- }), n.append(e, S);
138
- }, I = n.prop(F, "ctrl", 7), le = n.derived(() => I().groupingControlsEnabled), L = n.derived(() => I().filterMenuValues), R = n.derived(() => I().tooltip);
139
- n.derived(() => I().showTooltipFor);
140
- let z = n.derived(() => I().columnMenuFor), B = n.derived(() => I().columnMenuPos), V = n.derived(() => I().filterMenuFor), H = n.derived(() => I().filterMenuPos), U = n.derived(() => I().operatorMenuFor), ue = n.derived(() => I().operatorMenuPos), W = n.derived(() => I().chooseColumnsPos), G = n.derived(() => I().showColumnFiltersEffective), K = n.derived(() => I().props.columnMenuTabs === !0), de = n.derived(() => I().grid), q = n.derived(() => I().allColumns), fe = n.derived(() => I().isColumnPinned), pe = n.derived(() => I().pinColumnLeft), me = n.derived(() => I().pinColumnRight), he = n.derived(() => I().unpinColumn), ge = n.derived(() => I().sortDirectionByColumn), _e = n.derived(() => I().groupingColumns), ve = n.derived(() => I().columnVirtualizationEnabled), ye = n.derived(() => I().updateFilterOperator), be = n.derived(() => I().updateFilterMenuValue), xe = n.derived(() => I().updateFilterMenuValueTo), Se = n.derived(() => I().operatorsForColumn), J = n.derived(() => I().defaultOperatorFor), Y = n.derived(() => I().operatorLabelFor), Ce = n.derived(() => I().filterRowValues), we = n.derived(() => I().inSuggestFor), Te = n.derived(() => I().inSuggestPos), Ee = n.derived(() => I().inSuggestValues), De = n.derived(() => I().toggleFilterToken), Oe = n.derived(() => I().facetValuesForColumn);
141
- function X(e, t) {
142
- let r = n.get(q).find((t) => t.id === e), i = I().filterMenuValues[e] ?? {
143
- operator: n.get(J)(r),
144
- value: ""
145
- };
146
- I().filterMenuValues = {
147
- ...I().filterMenuValues,
148
- [e]: {
149
- ...i,
150
- ...t
151
- }
152
- };
153
- }
154
- let ke = n.derived(() => I().isColumnFiltered), Z = n.derived(() => I().closeMenus);
155
- n.user_effect(() => {
156
- if (!(n.get(z) || n.get(V) || n.get(U) || n.get(W))) return;
157
- let e = () => n.get(Z)();
158
- return window.addEventListener("scroll", e, !0), window.addEventListener("resize", e), () => {
159
- window.removeEventListener("scroll", e, !0), window.removeEventListener("resize", e);
160
- };
161
- });
162
- let Ae = n.derived(() => I().autosizeColumn), je = n.derived(() => I().autosizeAllColumns), Me = n.derived(() => I().resetColumns), Ne = n.derived(() => I().openChooseColumns), Pe = n.derived(() => I().sortColumnFromMenu), Fe = n.derived(() => I().clearColumnSort), Ie = n.derived(() => I().groupByColumnFromMenu), Le = n.derived(() => I().clearGroupingFromMenu), Re = n.derived(() => I().columnMenuFacetValues), Q = n.derived(() => I().columnMenuVisibleFacets), ze = n.derived(() => I().isFacetChecked), Be = n.derived(() => I().toggleFacetValue), Ve = n.derived(() => I().isAllFacetsChecked), He = n.derived(() => I().toggleAllFacets), Ue = n.derived(() => I().clearColumnFilter), We = n.derived(() => I().contextMenuFor), Ge = n.derived(() => I().contextMenuPos), Ke = n.derived(() => I().contextMenuItems), $ = n.derived(() => I().closeContextMenu), qe = n.derived(() => I().commentEditFor), Je = n.derived(() => I().saveComment), Ye = n.derived(() => I().removeComment), Xe = n.derived(() => I().closeCommentEditor);
163
- var Ze = oe(), Qe = n.first_child(Ze), $e = (e) => {
164
- var t = _();
165
- let r;
166
- var i = n.child(t, !0);
167
- n.reset(t), n.template_effect(() => {
168
- r = n.set_class(t, 1, "sv-grid-tooltip", null, r, { "sv-grid-tooltip-above": !n.get(R).below }), n.set_style(t, `left: ${n.get(R).x}px; top: ${n.get(R).y}px; ${n.get(R).below ? "" : "transform: translateY(-100%);"}`), n.set_text(i, n.get(R).text);
169
- }), n.append(e, t);
170
- };
171
- n.if(Qe, (e) => {
172
- n.get(R) && e($e);
173
- });
174
- var et = n.sibling(Qe, 2), tt = (e) => {
175
- var t = v();
176
- n.delegated("click", t, function(...e) {
177
- n.get(Z)?.apply(this, e);
178
- }), n.append(e, t);
179
- };
180
- n.if(et, (e) => {
181
- (n.get(z) || n.get(V) || n.get(U) || n.get(W)) && e(tt);
182
- });
183
- var nt = n.sibling(et, 2), rt = (e) => {
184
- let t = n.derived(() => n.get(z)), r = n.derived(() => n.get(q).find((e) => e.id === n.get(t))), i = n.derived(() => n.get(r)?.getCanSort?.() ?? !1), a = n.derived(() => n.get(r)?.columnDef.field != null && n.get(r)?.columnDef.filterable !== !1), o = n.derived(() => I().columnMenuTab);
185
- var s = O(), c = n.child(s), l = (e) => {
186
- var t = b(), r = n.child(t);
187
- let i;
188
- var s = n.sibling(r, 2), c = (e) => {
189
- var t = y();
190
- let r;
191
- n.template_effect(() => {
192
- r = n.set_class(t, 1, "sv-grid-menu-tab", null, r, { "is-active": n.get(o) === "filter" }), n.set_attribute(t, "aria-selected", n.get(o) === "filter");
193
- }), n.delegated("click", t, () => I().columnMenuTab = "filter"), n.append(e, t);
194
- };
195
- n.if(s, (e) => {
196
- n.get(a) && n.get(G) && e(c);
197
- });
198
- var l = n.sibling(s, 2);
199
- let u;
200
- n.reset(t), n.template_effect(() => {
201
- i = n.set_class(r, 1, "sv-grid-menu-tab", null, i, { "is-active": n.get(o) === "general" }), n.set_attribute(r, "aria-selected", n.get(o) === "general"), u = n.set_class(l, 1, "sv-grid-menu-tab", null, u, { "is-active": n.get(o) === "columns" }), n.set_attribute(l, "aria-selected", n.get(o) === "columns");
202
- }), n.delegated("click", r, () => I().columnMenuTab = "general"), n.delegated("click", l, () => I().columnMenuTab = "columns"), n.append(e, t);
203
- };
204
- n.if(c, (e) => {
205
- n.get(K) && e(l);
206
- });
207
- var u = n.sibling(c, 2), d = (e) => {
208
- ce(e, () => n.get(t));
209
- }, f = (e) => {
210
- var t = S(), r = n.sibling(n.first_child(t), 2);
211
- n.each(r, 21, () => n.get(de).getAllColumns(), (e) => e.id, (e, t) => {
212
- var r = x(), i = n.child(r);
213
- n.remove_input_defaults(i);
214
- var a = n.sibling(i, 2), o = n.child(a, !0);
215
- n.reset(a), n.reset(r), n.template_effect(() => {
216
- n.set_checked(i, !I().hiddenColumns[n.get(t).id]), n.set_text(o, typeof n.get(t).columnDef.header == "string" ? n.get(t).columnDef.header : n.get(t).id);
217
- }), n.delegated("change", i, (e) => {
218
- if (e.currentTarget.checked) {
219
- let e = { ...I().hiddenColumns };
220
- delete e[n.get(t).id], I().hiddenColumns = e;
221
- } else I().hiddenColumns = {
222
- ...I().hiddenColumns,
223
- [n.get(t).id]: !0
224
- };
225
- }), n.append(e, r);
226
- }), n.reset(r), n.append(e, t);
227
- }, p = (e) => {
228
- var r = D(), a = n.first_child(r), o = (e) => {
229
- var r = C(), i = n.first_child(r), a = n.child(i), o = n.child(a);
230
- n.snippet(o, () => F.icon, () => "sort-asc"), n.reset(a), n.next(), n.reset(i);
231
- var s = n.sibling(i, 2), c = n.child(s), l = n.child(c);
232
- n.snippet(l, () => F.icon, () => "sort-desc"), n.reset(c), n.next(), n.reset(s);
233
- var u = n.sibling(s, 2), d = n.child(u), f = n.child(d);
234
- n.snippet(f, () => F.icon, () => "x"), n.reset(d), n.next(), n.reset(u), n.template_effect(() => u.disabled = !n.get(ge)[n.get(t)]), n.delegated("click", i, () => n.get(Pe)(n.get(t), !1)), n.delegated("click", s, () => n.get(Pe)(n.get(t), !0)), n.delegated("click", u, () => n.get(Fe)(n.get(t))), n.append(e, r);
235
- };
236
- n.if(a, (e) => {
237
- n.get(i) && e(o);
238
- });
239
- var s = n.sibling(a, 2), c = (e) => {
240
- let r = n.derived(() => n.get(fe)(n.get(t)));
241
- var i = w(), a = n.sibling(n.first_child(i), 2), o = n.child(a), s = n.child(o);
242
- n.snippet(s, () => F.icon, () => "op-startsWith"), n.reset(o), n.next(), n.reset(a);
243
- var c = n.sibling(a, 2), l = n.child(c), u = n.child(l);
244
- n.snippet(u, () => F.icon, () => "op-greaterThan"), n.reset(l), n.next(), n.reset(c);
245
- var d = n.sibling(c, 2), f = n.child(d), p = n.child(f);
246
- n.snippet(p, () => F.icon, () => "x"), n.reset(f), n.next(), n.reset(d), n.template_effect(() => {
247
- a.disabled = n.get(r) === "left", c.disabled = n.get(r) === "right", d.disabled = !n.get(r);
248
- }), n.delegated("click", a, () => n.get(pe)(n.get(t))), n.delegated("click", c, () => n.get(me)(n.get(t))), n.delegated("click", d, () => n.get(he)(n.get(t))), n.append(e, i);
249
- };
250
- n.if(s, (e) => {
251
- n.get(ve) || e(c);
252
- });
253
- var l = n.sibling(s, 4), u = n.child(l), d = n.child(u);
254
- n.snippet(d, () => F.icon, () => "autosize"), n.reset(u), n.next(), n.reset(l);
255
- var f = n.sibling(l, 2), p = n.child(f), m = n.child(p);
256
- n.snippet(m, () => F.icon, () => "autosize"), n.reset(p), n.next(), n.reset(f);
257
- var h = n.sibling(f, 2), g = (e) => {
258
- var r = T(), i = n.sibling(n.first_child(r), 2), a = n.child(i), o = n.child(a);
259
- n.snippet(o, () => F.icon, () => "group"), n.reset(a), n.next(), n.reset(i);
260
- var s = n.sibling(i, 2), c = n.child(s), l = n.child(c);
261
- n.snippet(l, () => F.icon, () => "x"), n.reset(c), n.next(), n.reset(s), n.template_effect((e, t) => {
262
- i.disabled = e, s.disabled = t;
263
- }, [() => n.get(_e).includes(n.get(t)), () => !n.get(_e).includes(n.get(t))]), n.delegated("click", i, () => n.get(Ie)(n.get(t))), n.delegated("click", s, () => n.get(Le)(n.get(t))), n.append(e, r);
264
- };
265
- n.if(h, (e) => {
266
- n.get(le) && e(g);
267
- });
268
- var _ = n.sibling(h, 4), v = (e) => {
269
- var t = E();
270
- let r;
271
- var i = n.child(t), a = n.child(i);
272
- n.snippet(a, () => F.icon, () => "columns"), n.reset(i);
273
- var o = n.sibling(i, 2), s = n.child(o);
274
- n.snippet(s, () => F.icon, () => "chevron-down"), n.reset(o), n.reset(t), n.template_effect(() => {
275
- r = n.set_class(t, 1, "sv-grid-menu-item", null, r, { "is-open": n.get(W) !== null }), n.set_attribute(t, "aria-expanded", n.get(W) !== null);
276
- }), n.delegated("click", t, (e) => n.get(Ne)(e)), n.append(e, t);
277
- };
278
- n.if(_, (e) => {
279
- n.get(K) || e(v);
280
- });
281
- var y = n.sibling(_, 2), b = n.child(y), x = n.child(b);
282
- n.snippet(x, () => F.icon, () => "reset"), n.reset(b), n.next(), n.reset(y), n.delegated("click", l, () => {
283
- n.get(Ae)(n.get(t)), n.get(Z)();
284
- }), n.delegated("click", f, () => {
285
- n.get(je)(), n.get(Z)();
286
- }), n.delegated("click", y, () => {
287
- n.get(Me)(), n.get(Z)();
288
- }), n.append(e, r);
289
- };
290
- n.if(u, (e) => {
291
- n.get(K) && n.get(o) === "filter" && n.get(a) && n.get(G) ? e(d) : n.get(K) && n.get(o) === "columns" ? e(f, 1) : e(p, -1);
292
- }), n.reset(s), n.template_effect(() => n.set_style(s, `left: ${n.get(B).x}px; top: ${n.get(B).y}px; max-height: calc(100vh - ${n.get(B).y}px - 12px);`)), n.append(e, s);
293
- };
294
- n.if(nt, (e) => {
295
- n.get(z) && e(rt);
296
- });
297
- var it = n.sibling(nt, 2), at = (e) => {
298
- var t = ee();
299
- ce(n.child(t), () => n.get(V)), n.reset(t), n.template_effect(() => n.set_style(t, `left: ${n.get(H).x}px; top: ${n.get(H).y}px; max-height: calc(100vh - ${n.get(H).y}px - 12px);`)), n.append(e, t);
300
- };
301
- n.if(it, (e) => {
302
- n.get(V) && n.get(G) && e(at);
303
- });
304
- var ot = n.sibling(it, 2), st = (e) => {
305
- let t = n.derived(() => n.get(de).getAllColumns());
306
- var r = A(), i = n.sibling(n.child(r), 2);
307
- n.each(i, 21, () => n.get(t), (e) => e.id, (e, t) => {
308
- var r = k(), i = n.child(r);
309
- n.remove_input_defaults(i);
310
- var a = n.sibling(i, 2), o = n.child(a, !0);
311
- n.reset(a), n.reset(r), n.template_effect(() => {
312
- n.set_checked(i, !I().hiddenColumns[n.get(t).id]), n.set_text(o, typeof n.get(t).columnDef.header == "string" ? n.get(t).columnDef.header : n.get(t).id);
313
- }), n.delegated("change", i, (e) => {
314
- if (e.currentTarget.checked) {
315
- let e = { ...I().hiddenColumns };
316
- delete e[n.get(t).id], I().hiddenColumns = e;
317
- } else I().hiddenColumns = {
318
- ...I().hiddenColumns,
319
- [n.get(t).id]: !0
320
- };
321
- }), n.append(e, r);
322
- }), n.reset(i), n.reset(r), n.template_effect(() => n.set_style(r, `left: ${n.get(W).x}px; top: ${n.get(W).y}px;`)), n.append(e, r);
323
- };
324
- n.if(ot, (e) => {
325
- n.get(W) && e(st);
326
- });
327
- var ct = n.sibling(ot, 2), lt = (e) => {
328
- let t = n.derived(() => n.get(U)), r = n.derived(() => n.get(q).find((e) => e.id === n.get(t))), i = n.derived(() => n.get(Se)(n.get(r))), a = n.derived(() => n.get(L)[n.get(t)]?.operator ?? n.get(J)(n.get(r)));
329
- var o = M();
330
- n.each(o, 21, () => n.get(i), (e) => e.value, (e, i) => {
331
- var o = j(), s = n.child(o), c = n.child(s);
332
- n.snippet(c, () => F.icon, () => n.get(i).iconName), n.reset(s);
333
- var l = n.sibling(s);
334
- n.reset(o), n.template_effect((e) => {
335
- n.set_attribute(o, "aria-checked", n.get(a) === n.get(i).value), n.set_text(l, ` ${e ?? ""}`);
336
- }, [() => n.get(Y)(n.get(i), n.get(r))]), n.delegated("click", o, () => {
337
- n.get(ye)(n.get(t), n.get(i).value), n.get(Z)();
338
- }), n.append(e, o);
339
- }), n.reset(o), n.template_effect(() => n.set_style(o, `left: ${n.get(ue).x}px; top: ${n.get(ue).y}px;`)), n.append(e, o);
340
- };
341
- n.if(ct, (e) => {
342
- n.get(U) && e(lt);
343
- });
344
- var ut = n.sibling(ct, 2), dt = (t) => {
345
- let r = n.derived(() => n.get(we)), i = n.derived(() => new Set(e(n.get(Ce)[n.get(r)] ?? "")));
346
- var a = ne();
347
- n.each(a, 20, () => n.get(Ee), (e) => e, (e, t) => {
348
- let a = n.derived(() => n.get(i).has(t));
349
- var o = N(), s = n.child(o), c = n.child(s, !0);
350
- n.reset(s);
351
- var l = n.sibling(s, 2), u = n.child(l, !0);
352
- n.reset(l), n.reset(o), n.template_effect(() => {
353
- n.set_attribute(o, "aria-selected", n.get(a)), n.set_text(c, n.get(a) ? "✓" : ""), n.set_text(u, t === "" ? "(Blanks)" : t);
354
- }), n.delegated("mousedown", o, (e) => {
355
- e.preventDefault(), n.get(De)(n.get(r), t);
356
- }), n.append(e, o);
357
- }, (e) => {
358
- var t = te();
359
- n.append(e, t);
360
- }), n.reset(a), n.template_effect(() => n.set_style(a, `left: ${n.get(Te).x}px; top: ${n.get(Te).y}px;`)), n.append(t, a);
361
- };
362
- n.if(ut, (e) => {
363
- n.get(we) && e(dt);
364
- });
365
- var ft = n.sibling(ut, 2), pt = (e) => {
366
- var t = ie(), r = n.first_child(t), i = n.sibling(r, 2);
367
- n.each(i, 21, () => n.get(Ke)(), (e) => e.key, (e, t) => {
368
- var r = n.comment(), i = n.first_child(r), a = (e) => {
369
- var t = P();
370
- n.append(e, t);
371
- }, o = (e) => {
372
- var r = re(), i = n.child(r, !0);
373
- n.reset(r), n.template_effect(() => {
374
- r.disabled = n.get(t).disabled, n.set_text(i, n.get(t).label);
375
- }), n.delegated("click", r, () => {
376
- n.get(t).run?.(), n.get($)();
377
- }), n.append(e, r);
378
- };
379
- n.if(i, (e) => {
380
- n.get(t).separator ? e(a) : e(o, -1);
381
- }), n.append(e, r);
382
- }), n.reset(i), n.template_effect(() => n.set_style(i, `left: ${n.get(Ge).x}px; top: ${n.get(Ge).y}px;`)), n.delegated("contextmenu", r, (e) => {
383
- e.preventDefault(), n.get($)();
384
- }), n.delegated("click", r, function(...e) {
385
- n.get($)?.apply(this, e);
386
- }), n.append(e, t);
387
- };
388
- n.if(ft, (e) => {
389
- n.get(We) && e(pt);
390
- });
391
- var mt = n.sibling(ft, 2), ht = (e) => {
392
- var t = ae(), r = n.first_child(t), i = n.sibling(r, 2), a = n.child(i);
393
- n.remove_textarea_child(a), n.autofocus(a, !0);
394
- var o = n.sibling(a, 2), s = n.child(o), c = n.sibling(s, 4), l = n.sibling(c, 2);
395
- n.reset(o), n.reset(i), n.template_effect(() => n.set_style(i, `left: ${n.get(qe).x}px; top: ${n.get(qe).y}px;`)), n.delegated("click", r, function(...e) {
396
- n.get(Xe)?.apply(this, e);
397
- }), n.delegated("keydown", a, (e) => {
398
- e.stopPropagation(), e.key === "Escape" && (e.preventDefault(), n.get(Xe)()), e.key === "Enter" && (e.ctrlKey || e.metaKey) && (e.preventDefault(), n.get(Je)());
399
- }), n.bind_value(a, () => I().commentDraft, (e) => I().commentDraft = e), n.delegated("click", s, function(...e) {
400
- n.get(Ye)?.apply(this, e);
401
- }), n.delegated("click", c, function(...e) {
402
- n.get(Xe)?.apply(this, e);
403
- }), n.delegated("click", l, function(...e) {
404
- n.get(Je)?.apply(this, e);
405
- }), n.append(e, t);
406
- };
407
- n.if(mt, (e) => {
408
- n.get(qe) && e(ht);
409
- }), n.append(se, Ze), n.pop();
410
- }
411
- n.delegate([
412
- "change",
413
- "input",
414
- "click",
415
- "mousedown",
416
- "contextmenu",
417
- "keydown"
418
- ]);
419
- //#endregion
420
- export { se as default };