@svgrid/enterprise 2.6.0 → 2.6.2

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 (52) hide show
  1. package/dist/ExpressionEditorHarness.svelte +47 -0
  2. package/dist/ExpressionEditorHarness.svelte.d.ts +15 -0
  3. package/dist/SvAdvancedFilter.svelte +208 -0
  4. package/dist/SvAdvancedFilter.svelte.d.ts +37 -0
  5. package/dist/SvExpressionEditor.svelte +255 -124
  6. package/dist/SvGridEditPanel.svelte +1157 -1012
  7. package/dist/SvGridEditPanel.svelte.d.ts +2 -0
  8. package/dist/advanced-filter/expr-columns-from-grid.d.ts +30 -0
  9. package/dist/advanced-filter/expr-columns-from-grid.js +44 -0
  10. package/dist/advanced-filter-enable.d.ts +5 -0
  11. package/dist/advanced-filter-enable.js +35 -0
  12. package/dist/cdn/svgrid-enterprise.svelte-external.js +7663 -6482
  13. package/dist/designer/assets/GridMenus-Bjr19Tz_.js +7 -0
  14. package/dist/designer/assets/{SvListBox-BVzVfCG3.js → SvListBox-BB8rt4aP.js} +1 -1
  15. package/dist/designer/assets/index-BfzoL904.css +1 -0
  16. package/dist/designer/assets/{index-BF0UH638.js → index-xjfKckuH.js} +139 -139
  17. package/dist/designer/assets/{js-scroller.svelte-tHanKJx0.js → js-scroller.svelte-CGkUUXwV.js} +2 -2
  18. package/dist/designer/assets/src-BT3LjWJL.css +1 -0
  19. package/dist/designer/assets/src-DDhAK0WP.js +2893 -0
  20. package/dist/designer/index.html +6 -6
  21. package/dist/expressions/builder-tree.d.ts +62 -0
  22. package/dist/expressions/builder-tree.js +133 -0
  23. package/dist/expressions/compile.d.ts +14 -0
  24. package/dist/expressions/compile.js +286 -0
  25. package/dist/expressions/expression-columns.d.ts +1 -11
  26. package/dist/expressions/expression-columns.js +40 -11
  27. package/dist/index.d.ts +7 -3
  28. package/dist/index.js +7 -3
  29. package/dist/install.js +2 -0
  30. package/dist/node/studio.js +743 -25
  31. package/dist/schema.d.ts +39 -0
  32. package/dist/schema.js +9 -0
  33. package/dist/sources/rest.js +25 -0
  34. package/dist/sources/supabase.js +49 -3
  35. package/dist/studio/emit-project.js +85 -11
  36. package/dist/studio/index.d.ts +2 -2
  37. package/dist/studio/index.js +5 -2
  38. package/dist/studio/project.d.ts +124 -3
  39. package/dist/studio/project.js +393 -4
  40. package/dist/studio/ui-components.generated.js +213 -0
  41. package/dist/sveltekit/in-memory.js +96 -3
  42. package/dist/sveltekit/query-plan.d.ts +32 -1
  43. package/dist/sveltekit/query-plan.js +88 -1
  44. package/dist/sveltekit/sql.d.ts +20 -0
  45. package/dist/sveltekit/sql.js +26 -0
  46. package/dist/version.d.ts +1 -1
  47. package/dist/version.js +1 -1
  48. package/package.json +3 -3
  49. package/dist/designer/assets/GridMenus-CW-rnHS9.js +0 -7
  50. package/dist/designer/assets/index-oYok52zd.css +0 -1
  51. package/dist/designer/assets/src-BPJruwB9.js +0 -2873
  52. package/dist/designer/assets/src-D-O2F805.css +0 -1
@@ -44,5 +44,25 @@ export type SqlPlan = {
44
44
  params: unknown[];
45
45
  limit: number;
46
46
  offset: number;
47
+ /**
48
+ * SELECT list for a GROUPED request: the group column plus one aliased
49
+ * aggregate per requested column, e.g.
50
+ * `"region", SUM("amount") AS "amount"`.
51
+ *
52
+ * Empty string for a flat/leaf query - select your own columns then.
53
+ * The aggregate is aliased back to the SOURCE column name because that is
54
+ * where the grid reads it from on the group row.
55
+ */
56
+ select: string;
57
+ /** GROUP BY body without the keyword, e.g. `"region"`. Empty when flat. */
58
+ groupBy: string;
59
+ /** GROUP BY body with the leading `GROUP BY ` keyword, or `''`. */
60
+ groupByText: string;
61
+ /**
62
+ * COUNT expression for the total, which differs between the two modes:
63
+ * grouped requests need the number of DISTINCT groups, not of rows, or the
64
+ * grid's scrollbar and paging will be sized from the wrong number.
65
+ */
66
+ countText: string;
47
67
  };
48
68
  export declare function planToSql(plan: QueryPlan, dialect?: SqlDialect): SqlPlan;
@@ -33,6 +33,28 @@ export function planToSql(plan, dialect = {}) {
33
33
  }
34
34
  const where = clauses.join(' AND ');
35
35
  const orderBy = plan.orderBy.map((o) => `${id(o.field)} ${o.desc ? 'DESC' : 'ASC'}`).join(', ');
36
+ // ---- Grouping ----------------------------------------------------------
37
+ // `plan.groupBy` is a single column: the grid asks one level at a time and
38
+ // sends the chosen path as ordinary predicates, so there is never a
39
+ // multi-column GROUP BY to emit here.
40
+ const groupBy = plan.groupBy ? id(plan.groupBy) : '';
41
+ let select = '';
42
+ if (plan.groupBy) {
43
+ const parts = [id(plan.groupBy)];
44
+ for (const agg of plan.aggregations ?? []) {
45
+ // COUNT(*) rather than COUNT(col) so the tally counts rows in the group
46
+ // rather than non-null values of one column.
47
+ const expr = agg.fn === 'count' ? 'COUNT(*)' : `${agg.fn.toUpperCase()}(${id(agg.field)})`;
48
+ // Aliased back to the source column name: that is the key the grid reads
49
+ // the aggregate from on the group row.
50
+ parts.push(`${expr} AS ${id(agg.field)}`);
51
+ }
52
+ select = parts.join(', ');
53
+ }
54
+ // A grouped total is the number of distinct keys, not of underlying rows.
55
+ const countText = plan.groupBy
56
+ ? `COUNT(DISTINCT ${id(plan.groupBy)})`
57
+ : 'COUNT(*)';
36
58
  return {
37
59
  where,
38
60
  whereText: where ? `WHERE ${where}` : '',
@@ -41,6 +63,10 @@ export function planToSql(plan, dialect = {}) {
41
63
  params,
42
64
  limit: plan.limit,
43
65
  offset: plan.offset,
66
+ select,
67
+ groupBy,
68
+ groupByText: groupBy ? `GROUP BY ${groupBy}` : '',
69
+ countText,
44
70
  };
45
71
  }
46
72
  function predicateSql(pred, ctx) {
package/dist/version.d.ts CHANGED
@@ -10,4 +10,4 @@
10
10
  *
11
11
  * `version.test.ts` asserts this matches `package.json`, so the two cannot drift.
12
12
  */
13
- export declare const SVGRID_VERSION = "2.6.0";
13
+ export declare const SVGRID_VERSION = "2.6.2";
package/dist/version.js CHANGED
@@ -10,4 +10,4 @@
10
10
  *
11
11
  * `version.test.ts` asserts this matches `package.json`, so the two cannot drift.
12
12
  */
13
- export const SVGRID_VERSION = '2.6.0';
13
+ export const SVGRID_VERSION = '2.6.2';
package/package.json CHANGED
@@ -4,7 +4,7 @@
4
4
  "type": "commercial",
5
5
  "url": "https://svgrid.com/pricing"
6
6
  },
7
- "version": "2.6.0",
7
+ "version": "2.6.2",
8
8
  "description": "Enterprise feature pack for SvGrid: Excel (xlsx), PDF, CSV, TSV and HTML export, Excel/CSV/JSON import, pivot tables with a drag-and-drop designer, paginated print, Kanban board and scheduler views. Requires a paid license key.",
9
9
  "license": "SEE LICENSE IN LICENSE",
10
10
  "author": "jQWidgets <sales@jqwidgets.com>",
@@ -65,7 +65,7 @@
65
65
  "jszip": "^3.10.0",
66
66
  "pdfmake": "^0.2.0",
67
67
  "svelte": "^5.0.0",
68
- "@svgrid/grid": "^2.5.0"
68
+ "@svgrid/grid": "^2.6.4"
69
69
  },
70
70
  "peerDependenciesMeta": {
71
71
  "jszip": {
@@ -83,7 +83,7 @@
83
83
  "svelte": "^5.55.5",
84
84
  "typescript": "6.0.3",
85
85
  "vite": "^8.2.1",
86
- "@svgrid/grid": "^2.5.0"
86
+ "@svgrid/grid": "^2.6.4"
87
87
  },
88
88
  "repository": {
89
89
  "type": "git",
@@ -1,7 +0,0 @@
1
- import{$ as e,D as t,H as n,I as r,K as i,L as a,M as o,P as s,R as c,U as l,W as u,X as d,Z as f,_t as p,at as m,b as h,bt as g,c as _,dt as v,et as y,f as b,g as x,it as S,k as C,m as w,mt as T,p as E,pt as D,r as O,rt as k,v as ee,vt as A,x as j,y as M}from"./disclose-version-CIm4S9xS.js";import{O as N,h as P,m as F}from"./js-scroller.svelte-tHanKJx0.js";import{n as te}from"./dismissable-2EZKoens.js";import{t as I}from"./SvListBox-BVzVfCG3.js";var ne=c(`<option> </option>`),re=c(`<input class="sv-grid-menu-condition-value" placeholder="To"/>`),ie=c(`<option> </option>`),ae=c(`<input class="sv-grid-menu-condition-value" placeholder="To"/>`),oe=c(`<input class="sv-grid-menu-condition-value"/> <!>`,1),se=c(`<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),ce=c(`<button type="button" class="sv-grid-menu-add-cond">+ Add condition</button>`),le=c(`<input class="sv-grid-menu-condition-value"/> <!> <!>`,1),ue=c(`<div class="sv-grid-facet-empty">No values</div>`),de=c(`<div class="sv-grid-facet-note"> </div>`),fe=c(`<div class="sv-grid-menu-filter"><div class="sv-grid-menu-filter-head"><span class="sv-grid-header-icon"><!></span> Filter
2
- 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-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>`),pe=c(`<div role="tooltip"> </div>`),me=c(`<div class="sv-grid-menu-backdrop" role="presentation"></div>`),L=c(`<button type="button" role="tab">Filter</button>`),R=c(`<div class="sv-grid-menu-tabs" role="tablist"><button type="button" role="tab">General</button> <!> <button type="button" role="tab">Columns</button></div>`),z=c(`<div class="sv-grid-menu-filter-head">Visible columns</div> <!>`,1),he=c(`<button type="button" class="sv-grid-menu-item" role="menuitem"><span class="sv-grid-header-icon"><!></span> Sort
3
- ascending</button> <button type="button" class="sv-grid-menu-item" role="menuitem"><span class="sv-grid-header-icon"><!></span> Sort
4
- descending</button> <button type="button" class="sv-grid-menu-item" role="menuitem"><span class="sv-grid-header-icon"><!></span> Remove sort</button>`,1),ge=c(`<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),_e=c(`<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
5
- 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),B=c(`<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>`),ve=c(`<!> <!> <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
6
- this column</button> <button type="button" class="sv-grid-menu-item" role="menuitem"><span class="sv-grid-header-icon"><!></span> Autosize
7
- 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),ye=c(`<div class="sv-grid-menu sv-grid-column-menu" role="menu"><!> <!></div>`),V=c(`<div class="sv-grid-menu sv-grid-filter-menu" role="menu"><!></div>`),be=c(`<div class="sv-grid-menu sv-grid-choose-columns-menu" role="menu"><div class="sv-grid-menu-filter-head">Visible columns</div> <!></div>`),xe=c(`<button type="button" class="sv-grid-menu-item" role="menuitemradio"><span class="sv-grid-header-icon"><!></span> </button>`),Se=c(`<div class="sv-grid-menu sv-grid-operator-menu" role="menu"></div>`),Ce=c(`<div class="sv-grid-facet-empty">No values</div>`),we=c(`<div class="sv-grid-menu sv-grid-in-suggest"><!></div>`),Te=c(`<div class="sv-grid-menu-sep"></div>`),Ee=c(`<button type="button" class="sv-grid-menu-item" role="menuitem"> </button>`),De=c(`<div class="sv-grid-menu-backdrop" role="presentation"></div> <div class="sv-grid-menu sv-grid-context-menu" role="menu"></div>`,1),Oe=c(`<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),ke=c(`<!> <!> <!> <!> <!> <!> <!> <!> <!>`,1);function Ae(n,c){T(c,!0);let Ae=(e,n=g)=>{let a=v(()=>i(X).find(e=>e.id===n())),f=v(()=>i(qe)(i(a))),h=v(()=>i(U)[n()]?.operator??i(Z)(i(a))),y=v(()=>N(i(a)?.columnDef.editorType??`text`));var T=fe(),D=k(T),O=k(D),P=k(O);t(P,()=>c.icon,()=>`filter`),A(O),p(),A(D);var F=m(D,2);C(F,21,()=>i(f),e=>e.value,(e,t)=>{var n=ne(),o=k(n,!0);A(n);var c={};d(e=>{s(o,e),c!==(c=i(t).value)&&(n.value=(n.__value=i(t).value)??``)},[()=>i(Je)(i(t),i(a))]),r(e,n)}),A(F);var te;ee(F);var pe=m(F,2),me=e=>{let t=v(()=>i(h)===`in`||i(h)===`notIn`),c=v(()=>i(U)[n()]);var p=le(),g=S(p);b(g);var _=m(g,2),w=e=>{var t=re();b(t),d(()=>{E(t,`type`,i(y)),x(t,i(U)[n()]?.valueTo??``)}),l(`input`,t,e=>i(Ke)(n(),e.currentTarget.value)),r(e,t)};o(_,e=>{i(h)===`between`&&e(w)});var T=m(_,2),D=e=>{let t=v(()=>i(c).operator2??i(Z)(i(a)));var u=se(),p=S(u),h=k(p);let g;var _=m(h,2);let w;var T=m(_,2);A(p);var D=m(p,2);C(D,21,()=>i(f),e=>e.value,(e,t)=>{var n=ie(),o=k(n,!0);A(n);var c={};d(e=>{s(o,e),c!==(c=i(t).value)&&(n.value=(n.__value=i(t).value)??``)},[()=>i(Je)(i(t),i(a))]),r(e,n)}),A(D);var O;ee(D);var N=m(D,2),P=e=>{var a=oe(),s=S(a);b(s);var u=m(s,2),f=e=>{var t=ae();b(t),d(()=>{E(t,`type`,i(y)),x(t,i(c).valueTo2??``)}),l(`input`,t,e=>Q(n(),{valueTo2:e.currentTarget.value})),r(e,t)};o(u,e=>{i(t)===`between`&&e(f)}),d(()=>{E(s,`type`,i(y)),x(s,i(c).value2??``),E(s,`placeholder`,i(t)===`between`?`From`:`Filter value...`)}),l(`input`,s,e=>Q(n(),{value2:e.currentTarget.value})),r(e,a)};o(N,e=>{i(t)!==`isBlank`&&e(P)}),d(()=>{g=j(h,1,``,null,g,{"is-on":(i(c).join??`AND`)===`AND`}),w=j(_,1,``,null,w,{"is-on":i(c).join===`OR`}),O!==(O=i(t))&&(D.value=(D.__value=i(t))??``,M(D,i(t)))}),l(`click`,h,()=>Q(n(),{join:`AND`})),l(`click`,_,()=>Q(n(),{join:`OR`})),l(`click`,T,()=>Q(n(),{operator2:void 0,value2:void 0,valueTo2:void 0,join:void 0})),l(`change`,D,e=>Q(n(),{operator2:e.currentTarget.value})),r(e,u)},O=e=>{var t=ce();l(`click`,t,()=>Q(n(),{operator2:i(Z)(i(a)),value2:``,join:`AND`})),r(e,t)};o(T,e=>{i(c)?.operator2?e(D):e(O,-1)}),d(()=>{E(g,`type`,i(h)===`regex`?`text`:i(y)),x(g,i(U)[n()]?.value??``),E(g,`placeholder`,i(h)===`between`?`From`:i(t)?`value, value...`:i(h)===`regex`?`Pattern...`:`Filter value...`)}),u(`focus`,g,function(...e){(i(t)?e=>yt(e.currentTarget,n()):void 0)?.apply(this,e)}),u(`blur`,g,function(...e){(i(t)?()=>i(ht)():void 0)?.apply(this,e)}),l(`input`,g,e=>{let r=e.currentTarget;i(Ge)(n(),r.value),i(t)&&bt(r,n())}),r(e,p)};o(pe,e=>{i(h)!==`isBlank`&&i(h)!==`isNotBlank`&&e(me)});var L=m(pe,6);b(L);var R=m(L,2),z=k(R);b(z),p(2),A(R);var he=m(R,2),ge=e=>{{let t=v(()=>i(lt).length>vt);I(e,{block:!0,checkbox:!0,multiple:!0,get virtual(){return i(t)},rows:7,rowHeight:24,size:`sm`,ariaLabel:`Filter values`,get options(){return i(lt)},get value(){return i(ut)},onChange:e=>i(dt)(n(),e)})}},_e=e=>{var t=ue();r(e,t)};o(he,e=>{i(lt).length?e(ge):e(_e,-1)});var B=m(he,2),ve=e=>{var t=de(),n=k(t);A(t),d(()=>s(n,`Showing ${i(ct).length??``} of ${i(st).length??``}`)),r(e,t)};o(B,e=>{i(st).length>i(ct).length&&e(ve)});var ye=m(B,2),V=k(ye),be=m(V,2);A(ye),A(T),d((e,t)=>{te!==(te=i(h))&&(F.value=(F.__value=i(h))??``,M(F,i(h))),w(z,e),V.disabled=t},[()=>i(gt)(n()),()=>!i(Qe)(n())]),l(`change`,F,e=>i(We)(n(),e.currentTarget.value)),_(L,()=>H().columnMenuSearch,e=>H().columnMenuSearch=e),l(`change`,z,()=>i(_t)(n())),l(`click`,V,()=>i(wt)(n())),l(`click`,be,function(...e){i($)?.apply(this,e)}),r(e,T)},H=O(c,`ctrl`,7),je=v(()=>H().groupingControlsEnabled),U=v(()=>H().filterMenuValues),W=v(()=>H().tooltip),G=v(()=>H().columnMenuFor),Me=v(()=>H().columnMenuPos),K=v(()=>H().filterMenuFor),Ne=v(()=>H().filterMenuPos),q=v(()=>H().operatorMenuFor),Pe=v(()=>H().operatorMenuPos),J=v(()=>H().chooseColumnsPos),Fe=v(()=>H().showColumnFiltersEffective),Y=v(()=>H().props.columnMenuTabs===!0),Ie=v(()=>H().grid),X=v(()=>H().allColumns),Le=v(()=>H().isColumnPinned),Re=v(()=>H().pinColumnLeft),ze=v(()=>H().pinColumnRight),Be=v(()=>H().unpinColumn),Ve=v(()=>H().sortDirectionByColumn),He=v(()=>H().groupingColumns),Ue=v(()=>H().columnVirtualizationEnabled),We=v(()=>H().updateFilterOperator),Ge=v(()=>H().updateFilterMenuValue),Ke=v(()=>H().updateFilterMenuValueTo),qe=v(()=>H().operatorsForColumn),Z=v(()=>H().defaultOperatorFor),Je=v(()=>H().operatorLabelFor),Ye=v(()=>H().filterRowValues),Xe=v(()=>H().inSuggestFor),Ze=v(()=>H().inSuggestPos);function Q(e,t){let n=i(X).find(t=>t.id===e),r=H().filterMenuValues[e]??{operator:i(Z)(n),value:``};H().filterMenuValues={...H().filterMenuValues,[e]:{...r,...t}}}let Qe=v(()=>H().isColumnFiltered),$=v(()=>H().closeMenus);f(()=>{if(!(i(G)||i(K)||i(q)||i(J)))return;let e=()=>i($)(),t=te(()=>Array.from(document.querySelectorAll(`.sv-grid-menu`)),e);return window.addEventListener(`resize`,e),()=>{t(),window.removeEventListener(`resize`,e)}});let $e=v(()=>H().autosizeColumn),et=v(()=>H().autosizeAllColumns),tt=v(()=>H().resetColumns),nt=v(()=>H().openChooseColumns),rt=v(()=>H().sortColumnFromMenu),it=v(()=>H().clearColumnSort),at=v(()=>H().groupByColumnFromMenu),ot=v(()=>H().clearGroupingFromMenu),st=v(()=>H().columnMenuFacetValues),ct=v(()=>H().columnMenuVisibleFacets),lt=v(()=>H().columnMenuFacetOptions),ut=v(()=>H().columnMenuSelectedFacets),dt=v(()=>H().setFacetSelection),ft=v(()=>H().setFilterTokens),pt=v(()=>H().inSuggestOptions),mt=v(()=>H().openInSuggest),ht=v(()=>H().closeInSuggest),gt=v(()=>H().isAllFacetsChecked),_t=v(()=>H().toggleAllFacets),vt=40;function yt(e,t){i(mt)(e,t),H().inSuggestQuery=P(e.value)}function bt(e,t){H().inSuggestQuery=P(e.value),H().inSuggestFor!==t&&i(mt)(e,t)}function xt(e){return e.map(e=>({value:e.id,label:typeof e.columnDef.header==`string`?e.columnDef.header:e.id}))}function St(e){let t=new Set;for(let n of e)H().hiddenColumns[n.id]||t.add(n.id);return t}function Ct(e,t){let n={...H().hiddenColumns};for(let r of e)t.has(r.id)?delete n[r.id]:n[r.id]=!0;H().hiddenColumns=n}let wt=v(()=>H().clearColumnFilter),Tt=v(()=>H().contextMenuFor),Et=v(()=>H().contextMenuPos),Dt=v(()=>H().contextMenuItems),Ot=v(()=>H().closeContextMenu),kt=v(()=>H().commentEditFor),At=v(()=>H().saveComment),jt=v(()=>H().removeComment),Mt=v(()=>H().closeCommentEditor);var Nt=ke(),Pt=S(Nt),Ft=e=>{var t=pe();let n;var a=k(t,!0);A(t),d(()=>{n=j(t,1,`sv-grid-tooltip`,null,n,{"sv-grid-tooltip-above":!i(W).below}),h(t,`left: ${i(W).x}px; top: ${i(W).y}px; ${i(W).below?``:`transform: translateY(-100%);`}`),s(a,i(W).text)}),r(e,t)};o(Pt,e=>{i(W)&&e(Ft)});var It=m(Pt,2),Lt=e=>{var t=me();l(`click`,t,function(...e){i($)?.apply(this,e)}),r(e,t)};o(It,e=>{(i(G)||i(K)||i(q)||i(J))&&e(Lt)});var Rt=m(It,2),zt=e=>{let n=v(()=>i(G)),a=v(()=>i(X).find(e=>e.id===i(n))),s=v(()=>i(a)?.getCanSort?.()??!1),u=v(()=>i(a)?.columnDef.field!=null&&i(a)?.columnDef.filterable!==!1),f=v(()=>H().columnMenuTab);var g=ye(),_=k(g),y=e=>{var t=R(),n=k(t);let a;var s=m(n,2),c=e=>{var t=L();let n;d(()=>{n=j(t,1,`sv-grid-menu-tab`,null,n,{"is-active":i(f)===`filter`}),E(t,`aria-selected`,i(f)===`filter`)}),l(`click`,t,()=>H().columnMenuTab=`filter`),r(e,t)};o(s,e=>{i(u)&&i(Fe)&&e(c)});var p=m(s,2);let h;A(t),d(()=>{a=j(n,1,`sv-grid-menu-tab`,null,a,{"is-active":i(f)===`general`}),E(n,`aria-selected`,i(f)===`general`),h=j(p,1,`sv-grid-menu-tab`,null,h,{"is-active":i(f)===`columns`}),E(p,`aria-selected`,i(f)===`columns`)}),l(`click`,n,()=>H().columnMenuTab=`general`),l(`click`,p,()=>H().columnMenuTab=`columns`),r(e,t)};o(_,e=>{i(Y)&&e(y)});var b=m(_,2),x=e=>{Ae(e,()=>i(n))},C=e=>{let t=v(()=>i(Ie).getAllColumns());var n=z(),a=m(S(n),2);{let e=v(()=>i(t).length>40),n=v(()=>xt(i(t))),r=v(()=>St(i(t)));I(a,{block:!0,checkbox:!0,multiple:!0,get virtual(){return i(e)},rows:9,rowHeight:24,size:`sm`,ariaLabel:`Visible columns`,get options(){return i(n)},get value(){return i(r)},onChange:e=>Ct(i(t),e)})}r(e,n)},w=e=>{var a=ve(),u=S(a),f=e=>{var a=he(),o=S(a),s=k(o),u=k(s);t(u,()=>c.icon,()=>`sort-asc`),A(s),p(),A(o);var f=m(o,2),h=k(f),g=k(h);t(g,()=>c.icon,()=>`sort-desc`),A(h),p(),A(f);var _=m(f,2),v=k(_),y=k(v);t(y,()=>c.icon,()=>`x`),A(v),p(),A(_),d(()=>_.disabled=!i(Ve)[i(n)]),l(`click`,o,()=>i(rt)(i(n),!1)),l(`click`,f,()=>i(rt)(i(n),!0)),l(`click`,_,()=>i(it)(i(n))),r(e,a)};o(u,e=>{i(s)&&e(f)});var h=m(u,2),g=e=>{let a=v(()=>i(Le)(i(n)));var o=ge(),s=m(S(o),2),u=k(s),f=k(u);t(f,()=>c.icon,()=>`op-startsWith`),A(u),p(),A(s);var h=m(s,2),g=k(h),_=k(g);t(_,()=>c.icon,()=>`op-greaterThan`),A(g),p(),A(h);var y=m(h,2),b=k(y),x=k(b);t(x,()=>c.icon,()=>`x`),A(b),p(),A(y),d(()=>{s.disabled=i(a)===`left`,h.disabled=i(a)===`right`,y.disabled=!i(a)}),l(`click`,s,()=>i(Re)(i(n))),l(`click`,h,()=>i(ze)(i(n))),l(`click`,y,()=>i(Be)(i(n))),r(e,o)};o(h,e=>{i(Ue)||e(g)});var _=m(h,4),y=k(_),b=k(y);t(b,()=>c.icon,()=>`autosize`),A(y),p(),A(_);var x=m(_,2),C=k(x),w=k(C);t(w,()=>c.icon,()=>`autosize`),A(C),p(),A(x);var T=m(x,2),D=e=>{var a=_e(),o=m(S(a),2),s=k(o),u=k(s);t(u,()=>c.icon,()=>`group`),A(s),p(),A(o);var f=m(o,2),h=k(f),g=k(h);t(g,()=>c.icon,()=>`x`),A(h),p(),A(f),d((e,t)=>{o.disabled=e,f.disabled=t},[()=>i(He).includes(i(n)),()=>!i(He).includes(i(n))]),l(`click`,o,()=>i(at)(i(n))),l(`click`,f,()=>i(ot)(i(n))),r(e,a)};o(T,e=>{i(je)&&e(D)});var O=m(T,4),ee=e=>{var n=B();let a;var o=k(n),s=k(o);t(s,()=>c.icon,()=>`columns`),A(o);var u=m(o,2),f=k(u);t(f,()=>c.icon,()=>`chevron-down`),A(u),A(n),d(()=>{a=j(n,1,`sv-grid-menu-item`,null,a,{"is-open":i(J)!==null}),E(n,`aria-expanded`,i(J)!==null)}),l(`click`,n,e=>i(nt)(e)),r(e,n)};o(O,e=>{i(Y)||e(ee)});var M=m(O,2),N=k(M),P=k(N);t(P,()=>c.icon,()=>`reset`),A(N),p(),A(M),l(`click`,_,()=>{i($e)(i(n)),i($)()}),l(`click`,x,()=>{i(et)(),i($)()}),l(`click`,M,()=>{i(tt)(),i($)()}),r(e,a)};o(b,e=>{i(Y)&&i(f)===`filter`&&i(u)&&i(Fe)?e(x):i(Y)&&i(f)===`columns`?e(C,1):e(w,-1)}),A(g),d(()=>h(g,`left: ${i(Me).x}px; top: ${i(Me).y}px; max-height: calc(100vh - ${i(Me).y}px - 12px);`)),r(e,g)};o(Rt,e=>{i(G)&&e(zt)});var Bt=m(Rt,2),Vt=e=>{var t=V(),n=k(t);Ae(n,()=>i(K)),A(t),d(()=>h(t,`left: ${i(Ne).x}px; top: ${i(Ne).y}px; max-height: calc(100vh - ${i(Ne).y}px - 12px);`)),r(e,t)};o(Bt,e=>{i(K)&&i(Fe)&&e(Vt)});var Ht=m(Bt,2),Ut=e=>{let t=v(()=>i(Ie).getAllColumns());var n=be(),a=m(k(n),2);{let e=v(()=>i(t).length>40),n=v(()=>xt(i(t))),r=v(()=>St(i(t)));I(a,{block:!0,checkbox:!0,multiple:!0,get virtual(){return i(e)},rows:11,rowHeight:24,size:`sm`,ariaLabel:`Visible columns`,get options(){return i(n)},get value(){return i(r)},onChange:e=>Ct(i(t),e)})}A(n),d(()=>h(n,`left: ${i(J).x}px; top: ${i(J).y}px;`)),r(e,n)};o(Ht,e=>{i(J)&&e(Ut)});var Wt=m(Ht,2),Gt=e=>{let n=v(()=>i(q)),a=v(()=>i(X).find(e=>e.id===i(n))),o=v(()=>i(qe)(i(a))),u=v(()=>i(U)[i(n)]?.operator??i(Z)(i(a)));var f=Se();C(f,21,()=>i(o),e=>e.value,(e,o)=>{var f=xe(),p=k(f),h=k(p);t(h,()=>c.icon,()=>i(o).iconName),A(p);var g=m(p);A(f),d(e=>{E(f,`aria-checked`,i(u)===i(o).value),s(g,` ${e??``}`)},[()=>i(Je)(i(o),i(a))]),l(`click`,f,()=>{i(We)(i(n),i(o).value),i($)()}),r(e,f)}),A(f),d(()=>h(f,`left: ${i(Pe).x}px; top: ${i(Pe).y}px;`)),r(e,f)};o(Wt,e=>{i(q)&&e(Gt)});var Kt=m(Wt,2),qt=e=>{let t=v(()=>i(Xe)),n=v(()=>new Set(F(i(Ye)[i(t)]??``)));var a=we(),s=k(a),c=e=>{{let r=v(()=>i(pt).length>40);I(e,{block:!0,checkbox:!0,multiple:!0,get virtual(){return i(r)},rows:8,rowHeight:26,size:`sm`,ariaLabel:`Filter values`,get options(){return i(pt)},get value(){return i(n)},onChange:e=>{let n=new Set(e),r=P(i(Ye)[i(t)]??``);r&&n.delete(r),i(ft)(i(t),[...n]),H().inSuggestQuery=``}})}},u=e=>{var t=Ce();r(e,t)};o(s,e=>{i(pt).length?e(c):e(u,-1)}),A(a),d(()=>h(a,`left: ${i(Ze).x}px; top: ${i(Ze).y}px;`)),l(`mousedown`,a,e=>e.preventDefault()),r(e,a)};o(Kt,e=>{i(Xe)&&e(qt)});var Jt=m(Kt,2),Yt=e=>{var t=De(),n=S(t),c=m(n,2);C(c,21,()=>i(Dt)(),e=>e.key,(e,t)=>{var n=a(),c=S(n),u=e=>{var t=Te();r(e,t)},f=e=>{var n=Ee(),a=k(n,!0);A(n),d(()=>{n.disabled=i(t).disabled,s(a,i(t).label)}),l(`click`,n,()=>{i(t).run?.(),i(Ot)()}),r(e,n)};o(c,e=>{i(t).separator?e(u):e(f,-1)}),r(e,n)}),A(c),d(()=>h(c,`left: ${i(Et).x}px; top: ${i(Et).y}px;`)),l(`contextmenu`,n,e=>{e.preventDefault(),i(Ot)()}),l(`click`,n,function(...e){i(Ot)?.apply(this,e)}),r(e,t)};o(Jt,e=>{i(Tt)&&e(Yt)});var Xt=m(Jt,2),Zt=t=>{var n=Oe(),a=S(n),o=m(a,2),s=k(o);y(s),e(s,!0);var c=m(s,2),u=k(c),f=m(u,4),p=m(f,2);A(c),A(o),d(()=>h(o,`left: ${i(kt).x}px; top: ${i(kt).y}px;`)),l(`click`,a,function(...e){i(Mt)?.apply(this,e)}),l(`keydown`,s,e=>{e.stopPropagation(),e.key===`Escape`&&(e.preventDefault(),i(Mt)()),e.key===`Enter`&&(e.ctrlKey||e.metaKey)&&(e.preventDefault(),i(At)())}),_(s,()=>H().commentDraft,e=>H().commentDraft=e),l(`click`,u,function(...e){i(jt)?.apply(this,e)}),l(`click`,f,function(...e){i(Mt)?.apply(this,e)}),l(`click`,p,function(...e){i(At)?.apply(this,e)}),r(t,n)};o(Xt,e=>{i(kt)&&e(Zt)}),r(n,Nt),D()}n([`change`,`input`,`click`,`mousedown`,`contextmenu`,`keydown`]);export{Ae as default};