@svgrid/grid 3.0.4 → 4.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (71) hide show
  1. package/README.md +3 -3
  2. package/dist/SvGrid.controller.svelte.d.ts +12 -2
  3. package/dist/SvGrid.controller.svelte.js +191 -8
  4. package/dist/SvGrid.css +73 -0
  5. package/dist/SvGrid.svelte +82 -3
  6. package/dist/SvGrid.types.d.ts +105 -3
  7. package/dist/build-api.js +11 -6
  8. package/dist/cdn/{GridMenus-7kbpnnBW.js → GridMenus-CLI93jke.js} +26 -26
  9. package/dist/cdn/{GridMenus-BL7ZgQvU.js → GridMenus-CwooL3QA.js} +26 -26
  10. package/dist/cdn/server-block-cache-CGoWz-87.js +237 -0
  11. package/dist/cdn/{src-BKhZ6eXd.js → src-B6HXdfHY.js} +4099 -4140
  12. package/dist/cdn/{src-V1uu8iE9.js → src-C6Iowdvs.js} +4052 -4093
  13. package/dist/cdn/svgrid.js +27 -26
  14. package/dist/cdn/svgrid.svelte-external.js +27 -26
  15. package/dist/cdn/validate-CchXzyrX.js +76 -0
  16. package/dist/core.js +36 -13
  17. package/dist/editing.js +10 -0
  18. package/dist/grid-icons.d.ts +2 -2
  19. package/dist/grid-icons.js +2 -2
  20. package/dist/grid-messages.d.ts +2 -0
  21. package/dist/grid-messages.js +2 -0
  22. package/dist/index.d.ts +3 -4
  23. package/dist/index.js +2 -3
  24. package/dist/row-model.d.ts +133 -0
  25. package/dist/row-model.js +16 -0
  26. package/dist/selection.d.ts +2 -1
  27. package/dist/selection.js +30 -2
  28. package/dist/server-block-cache.d.ts +214 -0
  29. package/dist/server-block-cache.js +531 -0
  30. package/dist/server-data-source.d.ts +240 -6
  31. package/dist/server-data-source.js +220 -20
  32. package/dist/server.d.ts +13 -0
  33. package/dist/server.js +13 -0
  34. package/dist/validate.d.ts +2 -0
  35. package/dist/validate.js +8 -3
  36. package/package.json +6 -1
  37. package/src/SvGrid.controller.svelte.ts +190 -8
  38. package/src/SvGrid.css +73 -0
  39. package/src/SvGrid.svelte +82 -3
  40. package/src/SvGrid.types.ts +105 -3
  41. package/src/build-api.ts +11 -4
  42. package/src/core.rowmodel-cache.test.ts +51 -0
  43. package/src/core.ts +33 -12
  44. package/src/editing.ts +8 -0
  45. package/src/grid-icons.ts +2 -2
  46. package/src/grid-messages.ts +5 -0
  47. package/src/icon-seam.test.ts +2 -4
  48. package/src/index.ts +19 -10
  49. package/src/row-model.ts +146 -0
  50. package/src/selection.test.ts +3 -0
  51. package/src/selection.ts +32 -2
  52. package/src/server-block-cache.test.ts +645 -0
  53. package/src/server-block-cache.ts +677 -0
  54. package/src/server-data-source.infinite.test.ts +343 -0
  55. package/src/server-data-source.ts +450 -27
  56. package/src/server.ts +47 -0
  57. package/src/svgrid.row-model-prop.svelte.test.ts +352 -0
  58. package/src/svgrid.row-model-seam.svelte.test.ts +289 -0
  59. package/src/validate.test.ts +10 -0
  60. package/src/validate.ts +10 -3
  61. package/dist/SvGroupCell.svelte +0 -141
  62. package/dist/SvGroupCell.svelte.d.ts +0 -49
  63. package/dist/SvRowGroupPanel.svelte +0 -186
  64. package/dist/SvRowGroupPanel.svelte.d.ts +0 -25
  65. package/dist/cdn/validate-_CDJzgIo.js +0 -75
  66. package/dist/server-group-model.d.ts +0 -98
  67. package/dist/server-group-model.js +0 -263
  68. package/src/SvGroupCell.svelte +0 -141
  69. package/src/SvRowGroupPanel.svelte +0 -186
  70. package/src/server-group-model.test.ts +0 -294
  71. package/src/server-group-model.ts +0 -370
@@ -1,4 +1,5 @@
1
1
  import type { Snippet } from "svelte";
2
+ import type { GridRowModel } from "./row-model.js";
2
3
  import type { CellEditorType, ColumnDef, RowData, SvGridApi, TableFeatures } from "./index.js";
3
4
  import type { ConditionalFormat } from "./conditional-formatting.js";
4
5
  import type { GroupDisplayType } from "./group-display.js";
@@ -1075,7 +1076,13 @@ export type SchedulerConfig<TFeatures extends TableFeatures = TableFeatures, TDa
1075
1076
  searchPlaceholder?: string;
1076
1077
  };
1077
1078
  export type Props<TFeatures extends TableFeatures = TableFeatures, TData extends RowData = RowData> = {
1078
- data: ReadonlyArray<TData>;
1079
+ /**
1080
+ * The rows to render.
1081
+ *
1082
+ * Optional only because `rowModel` can supply them instead; a grid with
1083
+ * neither renders empty. When both are present `data` wins.
1084
+ */
1085
+ data?: ReadonlyArray<TData>;
1079
1086
  columns: Array<ColumnDef<TFeatures, TData>>;
1080
1087
  /**
1081
1088
  * Kanban board mode. When set, the grid renders its rows as cards in
@@ -2078,6 +2085,99 @@ export type Props<TFeatures extends TableFeatures = TableFeatures, TData extends
2078
2085
  scrollHeight: number;
2079
2086
  clientHeight: number;
2080
2087
  }) => void;
2088
+ /**
2089
+ * Fires when the range of rows on screen changes, with the first and last
2090
+ * row INDEX (not pixels). Coalesced to one call per frame, so it is cheap
2091
+ * to wire to something that fetches.
2092
+ *
2093
+ * This is the hook a block-loading data source needs and
2094
+ * `onScrollBottomReached` cannot give it: "the user is looking at rows
2095
+ * 4,000-4,020" answers which block to fetch and which to keep, while
2096
+ * "they hit the bottom" only ever means "append more". Both are free; use
2097
+ * this one with `createServerDataSource({ mode: 'infinite' })`, or let
2098
+ * `rowModel` wire it for you.
2099
+ *
2100
+ * Reports `0, data.length - 1` when virtualization is off, since every row
2101
+ * really is rendered.
2102
+ */
2103
+ onVisibleRangeChange?: (range: {
2104
+ startIndex: number;
2105
+ endIndex: number;
2106
+ }) => void;
2107
+ /**
2108
+ * Marks a row as one whose data has not arrived: `"loading"` draws a
2109
+ * shimmer in every cell, `"failed"` draws a full-width "could not load"
2110
+ * row with a Retry button, and `null` (the default for every row) renders
2111
+ * normally.
2112
+ *
2113
+ * Placeholder rows are inert - not selectable, not editable, and skipped
2114
+ * by cell navigation - because there is nothing there to act on yet.
2115
+ *
2116
+ * `createServerDataSource` in `infinite` mode fills the gaps with rows this
2117
+ * recognises, so the usual wiring is `rowPlaceholder={rowPlaceholderState}`
2118
+ * (or nothing at all, via `rowModel`).
2119
+ */
2120
+ rowPlaceholder?: (row: TData, rowIndex: number) => "loading" | "failed" | null;
2121
+ /** Called by the Retry button on a `"failed"` placeholder row. */
2122
+ onRetryRow?: (row: TData, rowIndex: number) => void;
2123
+ /**
2124
+ * Hand selection over to an external model.
2125
+ *
2126
+ * The grid normally tracks selection as a record of the row ids it has
2127
+ * seen, which is right until the rows it has seen are a window onto a
2128
+ * million on a server: "select all" then means 20 ticked checkboxes rather
2129
+ * than a million, and the header checkbox cannot honestly say `all`. A
2130
+ * model that stores the RULE ("everything except these three") can answer
2131
+ * both, so when this is set the header checkbox, the row checkboxes and
2132
+ * `api.selectAllRows()` all route through it instead.
2133
+ *
2134
+ * `@svgrid/enterprise` ships one for the server-side row model; this is the
2135
+ * seam it plugs into.
2136
+ */
2137
+ /**
2138
+ * Drive the grid from a row model instead of wiring a dozen props.
2139
+ *
2140
+ * `createServerDataSource` returns one, and so does the Enterprise
2141
+ * server-side row model, so server-backed grids become:
2142
+ *
2143
+ * ```svelte
2144
+ * <SvGrid rowModel={ctl} {columns} />
2145
+ * ```
2146
+ *
2147
+ * The model supplies `data`, `loading`, `getRowId`, the external sort
2148
+ * and filter wiring, the visible range, placeholder rows, group
2149
+ * accessors, selection and paging - each one only if it implements that
2150
+ * part. A prop written explicitly on the grid always wins, so you can
2151
+ * adopt it and still override one piece.
2152
+ */
2153
+ rowModel?: GridRowModel<TData>;
2154
+ /**
2155
+ * Columns that REPLACE `columns` while set. The server-side row model
2156
+ * supplies them in pivot mode - one column per pivoted value, grouped
2157
+ * under a header per pivot key - and clears them when pivot mode ends,
2158
+ * so `columns` stays the app's own list. Rarely set by hand.
2159
+ */
2160
+ pivotResultColumns?: Array<ColumnDef<TFeatures, TData>> | null;
2161
+ rowSelectionModel?: {
2162
+ isSelected: (rowId: string, row: TData) => boolean;
2163
+ /** Whether the header checkbox shows empty, indeterminate, or ticked. */
2164
+ headerState: () => "none" | "some" | "all";
2165
+ toggle: (rowId: string, row: TData, next: boolean) => void;
2166
+ /** The header checkbox: select or clear everything, loaded or not. */
2167
+ toggleAll: (next: boolean) => void;
2168
+ /**
2169
+ * How many rows the rule selects, counting the ones the grid never
2170
+ * loaded; `null` when it cannot say. The selection bar shows this
2171
+ * instead of counting ticked rows on screen.
2172
+ */
2173
+ selectedCount?: () => number | null;
2174
+ /**
2175
+ * Apply one patch to every selected row, loaded or not. When present,
2176
+ * the bulk-edit drawer sends its edits here instead of writing the
2177
+ * loaded cells. Resolves with how many rows changed.
2178
+ */
2179
+ bulkUpdate?: (patch: Record<string, unknown>) => Promise<number>;
2180
+ };
2081
2181
  /**
2082
2182
  * Marks a row as an expandable "detail row". When this returns true the
2083
2183
  * grid renders that row as a SINGLE full-width cell (colspan across every
@@ -2101,8 +2201,10 @@ export type Props<TFeatures extends TableFeatures = TableFeatures, TData extends
2101
2201
  * Server-side group / tree keyboard + accessibility, built into the grid. When
2102
2202
  * set, the grid uses the treegrid role and marks matching rows with
2103
2203
  * `aria-level` / `aria-expanded`, and ArrowRight / ArrowLeft expand / collapse
2104
- * the focused group row (no app-level key handling). Pair with `serverGroupRows`
2105
- * + `SvGroupCell` for the visual expander. Every accessor receives the row data.
2204
+ * the focused group row (no app-level key handling). Pair with
2205
+ * `serverGroupRows` + `SvGroupCell` from `@svgrid/enterprise` for the visual
2206
+ * expander, or drive it from your own tree state. Every accessor receives the
2207
+ * row data.
2106
2208
  */
2107
2209
  serverGroup?: {
2108
2210
  /** Whether a row is an expandable group / branch. */
package/dist/build-api.js CHANGED
@@ -691,11 +691,10 @@ export function createGridApi(ctx) {
691
691
  });
692
692
  },
693
693
  selectAllRows() {
694
- const next = {};
695
- for (const row of ctx.allRows)
696
- if (!isGroupRow(row))
697
- next[row.id] = true;
698
- ctx.grid.setRowSelection(() => next);
694
+ // One implementation of "select everything", shared with the header
695
+ // checkbox, so it knows about an external selection model and about
696
+ // rows whose data has not arrived.
697
+ ctx.setSelectAllRows(true);
699
698
  },
700
699
  toggleRowSelected(id) {
701
700
  ctx.toggleRowSelectionById(id);
@@ -703,7 +702,13 @@ export function createGridApi(ctx) {
703
702
  // ---- Pagination
704
703
  getPageInfo() {
705
704
  const { pageIndex, pageSize } = ctx.paginationState;
706
- const total = ctx.allRowsBeforePagination.length;
705
+ // Under external pagination the grid holds ONE page, so counting the
706
+ // rows in hand would report a 95-row table as a 20-row one. The
707
+ // consumer tells us the real total through rowCount, which is what
708
+ // the footer has always shown.
709
+ const total = ctx.externalPaginationEnabled
710
+ ? (ctx.props.rowCount ?? ctx.allRowsBeforePagination.length)
711
+ : ctx.allRowsBeforePagination.length;
707
712
  const pageCount = Math.max(1, Math.ceil(total / Math.max(1, pageSize)));
708
713
  return { pageIndex, pageSize, pageCount, total };
709
714
  },
@@ -1,4 +1,4 @@
1
- import { $a as e, Vn as t, eo as n } from "./src-V1uu8iE9.js";
1
+ import { Ln as e, Xa as t, Ya as n } from "./src-C6Iowdvs.js";
2
2
  import { D as r, E as i, F as a, G as o, H as s, I as c, L as l, N as u, Q as d, R as f, U as p, V as m, X as h, Y as g, Z as _, _ as v, at as y, b, d as x, et as S, f as C, ft as w, g as ee, h as T, it as E, j as D, k as O, lt as k, m as te, mt as ne, nt as A, o as re, pt as j, st as M, t as ie, tt as N, u as P, ut as ae, v as F, w as oe } from "./disclose-version-Dr7rEVv-.js";
3
3
  import { S as se, _ as ce, j as le, k as ue } from "./editor-registry-BhgE3S84.js";
4
4
  import { r as I } from "./dismissable-DAHetSNk.js";
@@ -6,7 +6,7 @@ import { r as I } from "./dismissable-DAHetSNk.js";
6
6
  var de = l("<option> </option>"), fe = l("<input class=\"sv-grid-menu-condition-value\" placeholder=\"To\"/>"), pe = l("<input class=\"sv-grid-menu-condition-value\"/> <!>", 1), me = l("<option> </option>"), he = l("<input class=\"sv-grid-menu-condition-value\" placeholder=\"To\"/>"), ge = l("<input class=\"sv-grid-menu-condition-value\"/> <!>", 1), _e = l("<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), ve = l("<button type=\"button\" class=\"sv-grid-menu-add-cond\">+ Add condition</button>"), ye = l("<!> <!>", 1), be = l("<span class=\"sv-grid-menu-head-note\">and the condition above</span>"), xe = l("<span class=\"sv-grid-menu-head-note\"> </span>"), Se = l("<div class=\"sv-grid-facet-empty\">No values</div>"), Ce = l("<div class=\"sv-grid-facet-note\"> </div>"), we = l("<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> <span class=\"sv-grid-menu-search-wrap\"><!> <input class=\"sv-grid-menu-search\" placeholder=\"Search values...\"/></span> <label class=\"sv-grid-facet sv-grid-facet-all\"><input type=\"checkbox\"/> <span class=\"sv-grid-facet-label\"> </span></label> <!> <!> <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>"), Te = l("<div role=\"tooltip\"> </div>"), Ee = l("<div class=\"sv-grid-menu-backdrop\" role=\"presentation\"></div>"), De = l("<button type=\"button\" role=\"tab\">Filter</button>"), L = l("<div class=\"sv-grid-menu-tabs\" role=\"tablist\"><button type=\"button\" role=\"tab\">General</button> <!> <button type=\"button\" role=\"tab\">Columns</button></div>"), Oe = l("<div class=\"sv-grid-menu-filter-head\">Visible columns</div> <!>", 1), ke = l("<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), Ae = l("<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), R = l("<button type=\"button\" class=\"sv-grid-menu-item\" role=\"menuitem\"><span class=\"sv-grid-header-icon\"><!></span> Autosize\n this column</button>"), je = l("<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), Me = l("<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>"), z = l("<!> <!> <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 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), B = l("<div class=\"sv-grid-menu sv-grid-column-menu\" role=\"menu\"><!> <!></div>"), Ne = l("<div class=\"sv-grid-menu sv-grid-filter-menu\" role=\"menu\" tabindex=\"-1\"><!></div>"), Pe = l("<div class=\"sv-grid-menu sv-grid-choose-columns-menu\" role=\"menu\"><div class=\"sv-grid-menu-filter-head\">Visible columns</div> <!></div>"), Fe = l("<button type=\"button\" class=\"sv-grid-menu-item\" role=\"menuitemradio\"><span class=\"sv-grid-header-icon\"><!></span> </button>"), Ie = l("<div class=\"sv-grid-menu sv-grid-operator-menu\" role=\"menu\"></div>"), Le = l("<div class=\"sv-grid-facet-empty\">No values</div>"), Re = l("<div class=\"sv-grid-menu sv-grid-in-suggest\"><!></div>"), ze = l("<div class=\"sv-grid-menu-sep\"></div>"), Be = f("<path></path>"), V = f("<svg class=\"sv-grid-menu-icon-own\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\" stroke-linecap=\"round\" stroke-linejoin=\"round\" focusable=\"false\"></svg>"), Ve = l("<span class=\"sv-grid-menu-icon\" aria-hidden=\"true\"><!></span>"), He = l("<button type=\"button\" class=\"sv-grid-menu-item\" role=\"menuitem\"><!><span class=\"sv-grid-menu-label\"> </span></button>"), Ue = l("<div class=\"sv-grid-menu-backdrop\" role=\"presentation\"></div> <div class=\"sv-grid-menu sv-grid-context-menu\" role=\"menu\"></div>", 1), We = l("<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), Ge = l("<!> <!> <!> <!> <!> <!> <!> <!> <!>", 1);
7
7
  function H(l, f) {
8
8
  ae(f, !0);
9
- let m = (e, n = ne) => {
9
+ let m = (t, n = ne) => {
10
10
  let r = M(() => o(Y).find((e) => e.id === n())), l = M(() => o(lt)(o(r))), d = M(() => o(U)[n()]?.operator ?? o(X)(o(r))), m = M(() => se(o(r)?.columnDef.editorType ?? "text")), h = M(() => le(o(r)?.columnDef.editorType) && o(d) !== "isBlank" && o(d) !== "isNotBlank" && o(d) !== "regex" && o(d) !== "in" && o(d) !== "notIn"), _ = M(() => o(wt).length !== o(Ct).length), v = M(() => o(d) === "isBlank" || o(d) === "isNotBlank" || (o(U)[n()]?.value ?? "").trim().length > 0), y = M(() => o(Mt).size), b = M(() => o(Ct).length);
11
11
  var E = we(), k = S(E), ie = S(k), ae = S(ie);
12
12
  D(ae, () => f.icon, () => "filter"), j(ie), w(), j(k);
@@ -176,10 +176,10 @@ function H(l, f) {
176
176
  P(B);
177
177
  var Ne = A(B, 2), Pe = S(Ne, !0);
178
178
  j(Ne), j(z);
179
- var Fe = A(z, 2), Ie = (e) => {
179
+ var Fe = A(z, 2), Ie = (t) => {
180
180
  {
181
181
  let r = M(() => o(jt).length > Bt);
182
- t(e, {
182
+ e(t, {
183
183
  block: !0,
184
184
  checkbox: !0,
185
185
  multiple: !0,
@@ -220,7 +220,7 @@ function H(l, f) {
220
220
  Te !== (Te = o(d)) && (I.value = (I.__value = o(d)) ?? "", ee(I, o(d))), C(B, e), u(Pe, o(_) ? "(Select all results)" : "(Select all)"), V.disabled = t;
221
221
  }, [() => o(Rt)(n()), () => !o(mt)(n())]), s("change", I, (e) => o(ot)(n(), e.currentTarget.value)), re(Me, () => H().columnMenuSearch, (e) => H().columnMenuSearch = e), s("change", B, () => o(zt)(n())), s("click", V, () => o(Kt)(n())), s("click", Ve, function(...e) {
222
222
  o(Q)?.apply(this, e);
223
- }), a(e, E);
223
+ }), a(t, E);
224
224
  }, H = ie(f, "ctrl", 7), Ke = M(() => H().groupingControlsEnabled), U = M(() => H().filterMenuValues), W = M(() => H().tooltip), G = M(() => H().columnMenuFor), K = M(() => H().columnMenuPos), q = M(() => H().filterMenuFor), qe = M(() => H().filterMenuPos), Je = M(() => H().operatorMenuFor), Ye = M(() => H().operatorMenuPos), J = M(() => H().chooseColumnsPos), Xe = M(() => H().showColumnFiltersEffective), Ze = M(() => H().props.columnMenuTabs === !0), Qe = M(() => H().grid), Y = M(() => H().allColumns), $e = M(() => H().isColumnPinned), et = M(() => H().pinColumnLeft), tt = M(() => H().pinColumnRight), nt = M(() => H().unpinColumn), rt = M(() => H().sortDirectionByColumn), it = M(() => H().groupingColumns), at = M(() => H().columnVirtualizationEnabled), ot = M(() => H().updateFilterOperator), st = M(() => H().updateFilterMenuValue), ct = M(() => H().updateFilterMenuValueTo), lt = M(() => H().operatorsForColumn), X = M(() => H().defaultOperatorFor), ut = M(() => H().operatorLabelFor), dt = M(() => H().filterRowValues), ft = M(() => H().inSuggestFor), pt = M(() => H().inSuggestPos);
225
225
  function Z(e, t) {
226
226
  let n = o(Y).find((t) => t.id === e), r = H().filterMenuValues[e] ?? {
@@ -279,11 +279,11 @@ function H(l, f) {
279
279
  t?.closest(".sv-listbox") || t?.tagName === "BUTTON" || (e.preventDefault(), o(Q)());
280
280
  }
281
281
  let jt = M(() => H().columnMenuFacetOptions), Mt = M(() => H().columnMenuSelectedFacets), Nt = M(() => H().setFacetSelection), Pt = M(() => H().setFilterTokens), Ft = M(() => H().inSuggestOptions), It = M(() => H().openInSuggest), Lt = M(() => H().closeInSuggest), Rt = M(() => H().isAllFacetsChecked), zt = M(() => H().toggleAllFacets), Bt = 40;
282
- function Vt(e, t) {
283
- o(It)(e, t), H().inSuggestQuery = n(e.value);
282
+ function Vt(e, n) {
283
+ o(It)(e, n), H().inSuggestQuery = t(e.value);
284
284
  }
285
- function Ht(e, t) {
286
- H().inSuggestQuery = n(e.value), H().inSuggestFor !== t && o(It)(e, t);
285
+ function Ht(e, n) {
286
+ H().inSuggestQuery = t(e.value), H().inSuggestFor !== n && o(It)(e, n);
287
287
  }
288
288
  function Ut(e) {
289
289
  return e.map((e) => ({
@@ -322,7 +322,7 @@ function H(l, f) {
322
322
  O(rn, (e) => {
323
323
  (o(G) || o(q) || o(Je) || o(J)) && e(an);
324
324
  });
325
- var on = A(rn, 2), sn = (e) => {
325
+ var on = A(rn, 2), sn = (t) => {
326
326
  let n = M(() => o(G)), r = M(() => o(Y).find((e) => e.id === o(n))), i = M(() => o(r)?.getCanSort?.() ?? !1), c = M(() => o(r)?.columnDef.field != null && o(r)?.columnDef.filterable !== !1), l = M(() => H().columnMenuTab);
327
327
  var u = B(), d = S(u), p = (e) => {
328
328
  var t = L(), n = S(t);
@@ -348,17 +348,17 @@ function H(l, f) {
348
348
  });
349
349
  var h = A(d, 2), _ = (e) => {
350
350
  m(e, () => o(n));
351
- }, y = (e) => {
351
+ }, y = (t) => {
352
352
  let n = M(() => o(Qe).getAllColumns());
353
353
  var r = Oe(), i = A(N(r), 2);
354
354
  {
355
- let e = M(() => o(n).length > 40), r = M(() => Ut(o(n))), a = M(() => Wt(o(n)));
356
- t(i, {
355
+ let t = M(() => o(n).length > 40), r = M(() => Ut(o(n))), a = M(() => Wt(o(n)));
356
+ e(i, {
357
357
  block: !0,
358
358
  checkbox: !0,
359
359
  multiple: !0,
360
360
  get virtual() {
361
- return o(e);
361
+ return o(t);
362
362
  },
363
363
  rows: 9,
364
364
  rowHeight: 24,
@@ -373,7 +373,7 @@ function H(l, f) {
373
373
  onChange: (e) => Gt(o(n), e)
374
374
  });
375
375
  }
376
- a(e, r);
376
+ a(t, r);
377
377
  }, b = (e) => {
378
378
  var t = z(), r = N(t), c = (e) => {
379
379
  var t = ke(), r = N(t), i = S(r), c = S(i);
@@ -446,7 +446,7 @@ function H(l, f) {
446
446
  o(Ze) && o(l) === "filter" && o(c) && o(Xe) ? e(_) : o(Ze) && o(l) === "columns" ? e(y, 1) : e(b, -1);
447
447
  }), j(u), g(() => {
448
448
  x(u, "data-svgrid-menu", H().gridDomId), v(u, `left: ${o(K).x}px; top: ${o(K).y}px; max-height: calc(100vh - ${o(K).y}px - 12px);`);
449
- }), a(e, u);
449
+ }), a(t, u);
450
450
  };
451
451
  O(on, (e) => {
452
452
  o(G) && e(sn);
@@ -460,17 +460,17 @@ function H(l, f) {
460
460
  O(cn, (e) => {
461
461
  o(q) && o(Xe) && e(ln);
462
462
  });
463
- var un = A(cn, 2), dn = (e) => {
463
+ var un = A(cn, 2), dn = (t) => {
464
464
  let n = M(() => o(Qe).getAllColumns());
465
465
  var r = Pe(), i = A(S(r), 2);
466
466
  {
467
- let e = M(() => o(n).length > 40), r = M(() => Ut(o(n))), a = M(() => Wt(o(n)));
468
- t(i, {
467
+ let t = M(() => o(n).length > 40), r = M(() => Ut(o(n))), a = M(() => Wt(o(n)));
468
+ e(i, {
469
469
  block: !0,
470
470
  checkbox: !0,
471
471
  multiple: !0,
472
472
  get virtual() {
473
- return o(e);
473
+ return o(t);
474
474
  },
475
475
  rows: 11,
476
476
  rowHeight: 24,
@@ -487,7 +487,7 @@ function H(l, f) {
487
487
  }
488
488
  j(r), g(() => {
489
489
  x(r, "data-svgrid-menu", H().gridDomId), v(r, `left: ${o(J).x}px; top: ${o(J).y}px;`);
490
- }), a(e, r);
490
+ }), a(t, r);
491
491
  };
492
492
  O(un, (e) => {
493
493
  o(J) && e(dn);
@@ -512,11 +512,11 @@ function H(l, f) {
512
512
  o(Je) && e(pn);
513
513
  });
514
514
  var mn = A(fn, 2), hn = (r) => {
515
- let i = M(() => o(ft)), c = M(() => new Set(e(o(dt)[o(i)] ?? "")));
516
- var l = Re(), u = S(l), d = (e) => {
515
+ let i = M(() => o(ft)), c = M(() => new Set(n(o(dt)[o(i)] ?? "")));
516
+ var l = Re(), u = S(l), d = (n) => {
517
517
  {
518
518
  let r = M(() => o(Ft).length > 40);
519
- t(e, {
519
+ e(n, {
520
520
  block: !0,
521
521
  checkbox: !0,
522
522
  multiple: !0,
@@ -534,8 +534,8 @@ function H(l, f) {
534
534
  return o(c);
535
535
  },
536
536
  onChange: (e) => {
537
- let t = new Set(e), r = n(o(dt)[o(i)] ?? "");
538
- r && t.delete(r), o(Pt)(o(i), [...t]), H().inSuggestQuery = "";
537
+ let n = new Set(e), r = t(o(dt)[o(i)] ?? "");
538
+ r && n.delete(r), o(Pt)(o(i), [...n]), H().inSuggestQuery = "";
539
539
  }
540
540
  });
541
541
  }
@@ -1,4 +1,4 @@
1
- import { $a as e, Vn as t, eo as n } from "./src-BKhZ6eXd.js";
1
+ import { Ln as e, Xa as t, Ya as n } from "./src-B6HXdfHY.js";
2
2
  import { S as r, _ as i, j as a, k as o } from "./editor-registry-BhgE3S84.js";
3
3
  import { r as s } from "./dismissable-DAHetSNk.js";
4
4
  import * as c from "svelte/internal/client";
@@ -7,7 +7,7 @@ import "svelte/internal/disclose-version";
7
7
  var l = c.from_html("<option> </option>"), u = c.from_html("<input class=\"sv-grid-menu-condition-value\" placeholder=\"To\"/>"), d = c.from_html("<input class=\"sv-grid-menu-condition-value\"/> <!>", 1), f = c.from_html("<option> </option>"), p = c.from_html("<input class=\"sv-grid-menu-condition-value\" placeholder=\"To\"/>"), m = c.from_html("<input class=\"sv-grid-menu-condition-value\"/> <!>", 1), ee = c.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), h = c.from_html("<button type=\"button\" class=\"sv-grid-menu-add-cond\">+ Add condition</button>"), g = c.from_html("<!> <!>", 1), _ = c.from_html("<span class=\"sv-grid-menu-head-note\">and the condition above</span>"), v = c.from_html("<span class=\"sv-grid-menu-head-note\"> </span>"), y = c.from_html("<div class=\"sv-grid-facet-empty\">No values</div>"), b = c.from_html("<div class=\"sv-grid-facet-note\"> </div>"), te = c.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> <span class=\"sv-grid-menu-search-wrap\"><!> <input class=\"sv-grid-menu-search\" placeholder=\"Search values...\"/></span> <label class=\"sv-grid-facet sv-grid-facet-all\"><input type=\"checkbox\"/> <span class=\"sv-grid-facet-label\"> </span></label> <!> <!> <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>"), ne = c.from_html("<div role=\"tooltip\"> </div>"), x = c.from_html("<div class=\"sv-grid-menu-backdrop\" role=\"presentation\"></div>"), S = c.from_html("<button type=\"button\" role=\"tab\">Filter</button>"), re = c.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>"), ie = c.from_html("<div class=\"sv-grid-menu-filter-head\">Visible columns</div> <!>", 1), ae = c.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), oe = c.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), se = c.from_html("<button type=\"button\" class=\"sv-grid-menu-item\" role=\"menuitem\"><span class=\"sv-grid-header-icon\"><!></span> Autosize\n this column</button>"), C = c.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), w = c.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>"), ce = c.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 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), le = c.from_html("<div class=\"sv-grid-menu sv-grid-column-menu\" role=\"menu\"><!> <!></div>"), T = c.from_html("<div class=\"sv-grid-menu sv-grid-filter-menu\" role=\"menu\" tabindex=\"-1\"><!></div>"), ue = c.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>"), E = c.from_html("<button type=\"button\" class=\"sv-grid-menu-item\" role=\"menuitemradio\"><span class=\"sv-grid-header-icon\"><!></span> </button>"), de = c.from_html("<div class=\"sv-grid-menu sv-grid-operator-menu\" role=\"menu\"></div>"), D = c.from_html("<div class=\"sv-grid-facet-empty\">No values</div>"), fe = c.from_html("<div class=\"sv-grid-menu sv-grid-in-suggest\"><!></div>"), pe = c.from_html("<div class=\"sv-grid-menu-sep\"></div>"), me = c.from_svg("<path></path>"), O = c.from_svg("<svg class=\"sv-grid-menu-icon-own\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\" stroke-linecap=\"round\" stroke-linejoin=\"round\" focusable=\"false\"></svg>"), he = c.from_html("<span class=\"sv-grid-menu-icon\" aria-hidden=\"true\"><!></span>"), ge = c.from_html("<button type=\"button\" class=\"sv-grid-menu-item\" role=\"menuitem\"><!><span class=\"sv-grid-menu-label\"> </span></button>"), k = c.from_html("<div class=\"sv-grid-menu-backdrop\" role=\"presentation\"></div> <div class=\"sv-grid-menu sv-grid-context-menu\" role=\"menu\"></div>", 1), A = c.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), j = c.from_html("<!> <!> <!> <!> <!> <!> <!> <!> <!>", 1);
8
8
  function _e(_e, M) {
9
9
  c.push(M, !0);
10
- let N = (e, n = c.noop) => {
10
+ let N = (t, n = c.noop) => {
11
11
  let s = c.derived(() => c.get(W).find((e) => e.id === n())), ne = c.derived(() => c.get(Me)(c.get(s))), x = c.derived(() => c.get(F)[n()]?.operator ?? c.get(G)(c.get(s))), S = c.derived(() => r(c.get(s)?.columnDef.editorType ?? "text")), re = c.derived(() => a(c.get(s)?.columnDef.editorType) && c.get(x) !== "isBlank" && c.get(x) !== "isNotBlank" && c.get(x) !== "regex" && c.get(x) !== "in" && c.get(x) !== "notIn"), ie = c.derived(() => c.get(Ke).length !== c.get(J).length), ae = c.derived(() => c.get(x) === "isBlank" || c.get(x) === "isNotBlank" || (c.get(F)[n()]?.value ?? "").trim().length > 0), oe = c.derived(() => c.get(Qe).size), se = c.derived(() => c.get(J).length);
12
12
  var C = te(), w = c.child(C), ce = c.child(w), le = c.child(ce);
13
13
  c.snippet(le, () => M.icon, () => "filter"), c.reset(ce), c.next(), c.reset(w);
@@ -177,10 +177,10 @@ function _e(_e, M) {
177
177
  c.remove_input_defaults(A);
178
178
  var j = c.sibling(A, 2), _e = c.child(j, !0);
179
179
  c.reset(j), c.reset(k);
180
- var N = c.sibling(k, 2), ve = (e) => {
180
+ var N = c.sibling(k, 2), ve = (t) => {
181
181
  {
182
182
  let r = c.derived(() => c.get(Ze).length > at);
183
- t(e, {
183
+ e(t, {
184
184
  block: !0,
185
185
  checkbox: !0,
186
186
  multiple: !0,
@@ -221,7 +221,7 @@ function _e(_e, M) {
221
221
  ue !== (ue = c.get(x)) && (T.value = (T.__value = c.get(x)) ?? "", c.select_option(T, c.get(x))), c.set_checked(A, e), c.set_text(_e, c.get(ie) ? "(Select all results)" : "(Select all)"), B.disabled = t;
222
222
  }, [() => c.get(rt)(n()), () => !c.get(Le)(n())]), c.delegated("change", T, (e) => c.get(ke)(n(), e.currentTarget.value)), c.bind_value(ge, () => P().columnMenuSearch, (e) => P().columnMenuSearch = e), c.delegated("change", A, () => c.get(it)(n())), c.delegated("click", B, () => c.get(dt)(n())), c.delegated("click", V, function(...e) {
223
223
  c.get(q)?.apply(this, e);
224
- }), c.append(e, C);
224
+ }), c.append(t, C);
225
225
  }, P = c.prop(M, "ctrl", 7), ve = c.derived(() => P().groupingControlsEnabled), F = c.derived(() => P().filterMenuValues), I = c.derived(() => P().tooltip), L = c.derived(() => P().columnMenuFor), R = c.derived(() => P().columnMenuPos), z = c.derived(() => P().filterMenuFor), B = c.derived(() => P().filterMenuPos), V = c.derived(() => P().operatorMenuFor), ye = c.derived(() => P().operatorMenuPos), H = c.derived(() => P().chooseColumnsPos), be = c.derived(() => P().showColumnFiltersEffective), U = c.derived(() => P().props.columnMenuTabs === !0), xe = c.derived(() => P().grid), W = c.derived(() => P().allColumns), Se = c.derived(() => P().isColumnPinned), Ce = c.derived(() => P().pinColumnLeft), we = c.derived(() => P().pinColumnRight), Te = c.derived(() => P().unpinColumn), Ee = c.derived(() => P().sortDirectionByColumn), De = c.derived(() => P().groupingColumns), Oe = c.derived(() => P().columnVirtualizationEnabled), ke = c.derived(() => P().updateFilterOperator), Ae = c.derived(() => P().updateFilterMenuValue), je = c.derived(() => P().updateFilterMenuValueTo), Me = c.derived(() => P().operatorsForColumn), G = c.derived(() => P().defaultOperatorFor), Ne = c.derived(() => P().operatorLabelFor), Pe = c.derived(() => P().filterRowValues), Fe = c.derived(() => P().inSuggestFor), Ie = c.derived(() => P().inSuggestPos);
226
226
  function K(e, t) {
227
227
  let n = c.get(W).find((t) => t.id === e), r = P().filterMenuValues[e] ?? {
@@ -280,11 +280,11 @@ function _e(_e, M) {
280
280
  t?.closest(".sv-listbox") || t?.tagName === "BUTTON" || (e.preventDefault(), c.get(q)());
281
281
  }
282
282
  let Ze = c.derived(() => P().columnMenuFacetOptions), Qe = c.derived(() => P().columnMenuSelectedFacets), $e = c.derived(() => P().setFacetSelection), et = c.derived(() => P().setFilterTokens), Z = c.derived(() => P().inSuggestOptions), tt = c.derived(() => P().openInSuggest), nt = c.derived(() => P().closeInSuggest), rt = c.derived(() => P().isAllFacetsChecked), it = c.derived(() => P().toggleAllFacets), at = 40;
283
- function ot(e, t) {
284
- c.get(tt)(e, t), P().inSuggestQuery = n(e.value);
283
+ function ot(e, n) {
284
+ c.get(tt)(e, n), P().inSuggestQuery = t(e.value);
285
285
  }
286
- function st(e, t) {
287
- P().inSuggestQuery = n(e.value), P().inSuggestFor !== t && c.get(tt)(e, t);
286
+ function st(e, n) {
287
+ P().inSuggestQuery = t(e.value), P().inSuggestFor !== n && c.get(tt)(e, n);
288
288
  }
289
289
  function ct(e) {
290
290
  return e.map((e) => ({
@@ -323,7 +323,7 @@ function _e(_e, M) {
323
323
  c.if(xt, (e) => {
324
324
  (c.get(L) || c.get(z) || c.get(V) || c.get(H)) && e(St);
325
325
  });
326
- var Ct = c.sibling(xt, 2), wt = (e) => {
326
+ var Ct = c.sibling(xt, 2), wt = (t) => {
327
327
  let n = c.derived(() => c.get(L)), r = c.derived(() => c.get(W).find((e) => e.id === c.get(n))), i = c.derived(() => c.get(r)?.getCanSort?.() ?? !1), a = c.derived(() => c.get(r)?.columnDef.field != null && c.get(r)?.columnDef.filterable !== !1), o = c.derived(() => P().columnMenuTab);
328
328
  var s = le(), l = c.child(s), u = (e) => {
329
329
  var t = re(), n = c.child(t);
@@ -349,17 +349,17 @@ function _e(_e, M) {
349
349
  });
350
350
  var d = c.sibling(l, 2), f = (e) => {
351
351
  N(e, () => c.get(n));
352
- }, p = (e) => {
352
+ }, p = (t) => {
353
353
  let n = c.derived(() => c.get(xe).getAllColumns());
354
354
  var r = ie(), i = c.sibling(c.first_child(r), 2);
355
355
  {
356
- let e = c.derived(() => c.get(n).length > 40), r = c.derived(() => ct(c.get(n))), a = c.derived(() => lt(c.get(n)));
357
- t(i, {
356
+ let t = c.derived(() => c.get(n).length > 40), r = c.derived(() => ct(c.get(n))), a = c.derived(() => lt(c.get(n)));
357
+ e(i, {
358
358
  block: !0,
359
359
  checkbox: !0,
360
360
  multiple: !0,
361
361
  get virtual() {
362
- return c.get(e);
362
+ return c.get(t);
363
363
  },
364
364
  rows: 9,
365
365
  rowHeight: 24,
@@ -374,7 +374,7 @@ function _e(_e, M) {
374
374
  onChange: (e) => ut(c.get(n), e)
375
375
  });
376
376
  }
377
- c.append(e, r);
377
+ c.append(t, r);
378
378
  }, m = (e) => {
379
379
  var t = ce(), r = c.first_child(t), a = (e) => {
380
380
  var t = ae(), r = c.first_child(t), i = c.child(r), a = c.child(i);
@@ -447,7 +447,7 @@ function _e(_e, M) {
447
447
  c.get(U) && c.get(o) === "filter" && c.get(a) && c.get(be) ? e(f) : c.get(U) && c.get(o) === "columns" ? e(p, 1) : e(m, -1);
448
448
  }), c.reset(s), c.template_effect(() => {
449
449
  c.set_attribute(s, "data-svgrid-menu", P().gridDomId), c.set_style(s, `left: ${c.get(R).x}px; top: ${c.get(R).y}px; max-height: calc(100vh - ${c.get(R).y}px - 12px);`);
450
- }), c.append(e, s);
450
+ }), c.append(t, s);
451
451
  };
452
452
  c.if(Ct, (e) => {
453
453
  c.get(L) && e(wt);
@@ -461,17 +461,17 @@ function _e(_e, M) {
461
461
  c.if(Tt, (e) => {
462
462
  c.get(z) && c.get(be) && e(Et);
463
463
  });
464
- var Dt = c.sibling(Tt, 2), Ot = (e) => {
464
+ var Dt = c.sibling(Tt, 2), Ot = (t) => {
465
465
  let n = c.derived(() => c.get(xe).getAllColumns());
466
466
  var r = ue(), i = c.sibling(c.child(r), 2);
467
467
  {
468
- let e = c.derived(() => c.get(n).length > 40), r = c.derived(() => ct(c.get(n))), a = c.derived(() => lt(c.get(n)));
469
- t(i, {
468
+ let t = c.derived(() => c.get(n).length > 40), r = c.derived(() => ct(c.get(n))), a = c.derived(() => lt(c.get(n)));
469
+ e(i, {
470
470
  block: !0,
471
471
  checkbox: !0,
472
472
  multiple: !0,
473
473
  get virtual() {
474
- return c.get(e);
474
+ return c.get(t);
475
475
  },
476
476
  rows: 11,
477
477
  rowHeight: 24,
@@ -488,7 +488,7 @@ function _e(_e, M) {
488
488
  }
489
489
  c.reset(r), c.template_effect(() => {
490
490
  c.set_attribute(r, "data-svgrid-menu", P().gridDomId), c.set_style(r, `left: ${c.get(H).x}px; top: ${c.get(H).y}px;`);
491
- }), c.append(e, r);
491
+ }), c.append(t, r);
492
492
  };
493
493
  c.if(Dt, (e) => {
494
494
  c.get(H) && e(Ot);
@@ -513,11 +513,11 @@ function _e(_e, M) {
513
513
  c.get(V) && e(At);
514
514
  });
515
515
  var jt = c.sibling(kt, 2), Mt = (r) => {
516
- let i = c.derived(() => c.get(Fe)), a = c.derived(() => new Set(e(c.get(Pe)[c.get(i)] ?? "")));
517
- var o = fe(), s = c.child(o), l = (e) => {
516
+ let i = c.derived(() => c.get(Fe)), a = c.derived(() => new Set(n(c.get(Pe)[c.get(i)] ?? "")));
517
+ var o = fe(), s = c.child(o), l = (n) => {
518
518
  {
519
519
  let r = c.derived(() => c.get(Z).length > 40);
520
- t(e, {
520
+ e(n, {
521
521
  block: !0,
522
522
  checkbox: !0,
523
523
  multiple: !0,
@@ -535,8 +535,8 @@ function _e(_e, M) {
535
535
  return c.get(a);
536
536
  },
537
537
  onChange: (e) => {
538
- let t = new Set(e), r = n(c.get(Pe)[c.get(i)] ?? "");
539
- r && t.delete(r), c.get(et)(c.get(i), [...t]), P().inSuggestQuery = "";
538
+ let n = new Set(e), r = t(c.get(Pe)[c.get(i)] ?? "");
539
+ r && n.delete(r), c.get(et)(c.get(i), [...n]), P().inSuggestQuery = "";
540
540
  }
541
541
  });
542
542
  }