@svgrid/enterprise 2.2.1 → 2.3.1

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 (126) hide show
  1. package/README.md +95 -81
  2. package/dist/cdn/svgrid-enterprise.svelte-external.js +26642 -11252
  3. package/dist/designer/assets/GridMenus-BtWVk9Ab.js +7 -0
  4. package/dist/designer/assets/SvGridChartPanel-DWlBO2SD.js +10 -0
  5. package/dist/designer/assets/SvGridChartView-8c8Mb4j8.js +1 -0
  6. package/dist/designer/assets/SvGridChartView-DX9HfkBR.css +1 -0
  7. package/dist/designer/assets/index-DsDgp9Xq.js +78758 -0
  8. package/dist/designer/assets/index-tTY_Dx4P.css +1 -0
  9. package/dist/designer/assets/jszip.min-fkJdmAmj.js +2 -0
  10. package/dist/designer/assets/pdfmake-DeCsnyl9.js +242 -0
  11. package/dist/designer/assets/smart.export-BZlSCE8T.js +35 -0
  12. package/dist/designer/assets/vfs_fonts-eX2NpmfX.js +1 -0
  13. package/dist/designer/index.html +13 -0
  14. package/dist/node/studio.js +15304 -2708
  15. package/package.json +35 -11
  16. package/src/SvAlertRuleEditor.svelte +294 -0
  17. package/src/SvAlertsManager.svelte +210 -0
  18. package/src/SvAlertsPanel.svelte +129 -0
  19. package/src/SvBoard.svelte +3 -1
  20. package/src/SvExpressionEditor.svelte +341 -0
  21. package/src/SvGridAlerts.dom.test.ts +113 -0
  22. package/src/SvGridAlerts.svelte +265 -0
  23. package/src/SvGridBoard.svelte +2358 -0
  24. package/src/SvGridEditPanel.svelte +849 -794
  25. package/src/SvGridScheduler.svelte +5358 -4410
  26. package/src/SvPivotDesigner.svelte +3 -3
  27. package/src/SvRecordDetail.svelte +6 -2
  28. package/src/SvSchedule.svelte +3 -1
  29. package/src/{ai-export-pdf.test.ts → ai-export-pdf.dom.test.ts} +77 -74
  30. package/src/{ai-export-xlsx.test.ts → ai-export-xlsx.dom.test.ts} +90 -87
  31. package/src/{ai-export.test.ts → ai-export.dom.test.ts} +114 -110
  32. package/src/alerts/alert-engine-attach.ts +165 -0
  33. package/src/alerts/alert-engine.test.ts +135 -0
  34. package/src/alerts/alert-engine.ts +260 -0
  35. package/src/alerts/alert-formats.test.ts +87 -0
  36. package/src/alerts/alert-formats.ts +77 -0
  37. package/src/alerts/alert-observer.test.ts +189 -0
  38. package/src/alerts/alert-observer.ts +208 -0
  39. package/src/alerts/alert-scheduler.ts +96 -0
  40. package/src/alerts/alert-storage.test.ts +54 -0
  41. package/src/alerts/alert-storage.ts +116 -0
  42. package/src/alerts/alert-store.svelte.ts +80 -0
  43. package/src/alerts/alert-types.ts +94 -0
  44. package/src/alerts.ts +28 -0
  45. package/src/board.dom.test.ts +941 -0
  46. package/src/board.ts +36 -0
  47. package/src/export-ooxml.ts +4 -0
  48. package/src/export-xls.ts +3 -0
  49. package/src/export.ts +6 -0
  50. package/src/expressions/evaluate.test.ts +111 -0
  51. package/src/expressions/evaluate.ts +237 -0
  52. package/src/expressions/expression-columns.ts +133 -0
  53. package/src/expressions/expression-types.ts +84 -0
  54. package/src/expressions/parse.test.ts +106 -0
  55. package/src/expressions/parse.ts +610 -0
  56. package/src/import.test.ts +1 -1
  57. package/src/import.ts +3 -1
  58. package/src/index.ts +192 -46
  59. package/src/install.ts +12 -2
  60. package/src/pivot-enable.ts +44 -0
  61. package/src/pivot.test.ts +0 -1
  62. package/src/scheduler-assignments.test.ts +97 -0
  63. package/src/scheduler-assignments.ts +134 -0
  64. package/src/scheduler-axis.test.ts +108 -0
  65. package/src/scheduler-axis.ts +238 -0
  66. package/src/scheduler-booking.test.ts +57 -0
  67. package/src/scheduler-booking.ts +63 -0
  68. package/src/scheduler-config.ts +179 -0
  69. package/src/scheduler-dependencies.test.ts +155 -0
  70. package/src/scheduler-dependencies.ts +223 -0
  71. package/src/scheduler-freebusy.test.ts +41 -0
  72. package/src/scheduler-freebusy.ts +36 -0
  73. package/src/scheduler-heatmap.test.ts +39 -0
  74. package/src/scheduler-heatmap.ts +55 -0
  75. package/src/scheduler-resource-tree.test.ts +84 -0
  76. package/src/scheduler-resource-tree.ts +107 -0
  77. package/src/scheduler-slots.test.ts +53 -0
  78. package/src/scheduler-slots.ts +94 -0
  79. package/src/scheduler-summary.test.ts +47 -0
  80. package/src/scheduler-summary.ts +81 -0
  81. package/src/schema-designer.ts +1 -1
  82. package/src/sources/index.ts +1 -1
  83. package/src/sources/introspect-supabase.test.ts +13 -1
  84. package/src/sources/introspect-supabase.ts +20 -0
  85. package/src/studio/copilot-core.test.ts +45 -0
  86. package/src/studio/copilot-core.ts +65 -0
  87. package/src/studio/deploy-cli.test.ts +56 -0
  88. package/src/studio/deploy-cli.ts +100 -0
  89. package/src/studio/emit-project.test.ts +800 -24
  90. package/src/studio/emit-project.ts +1307 -135
  91. package/src/studio/emit-schema.test.ts +17 -0
  92. package/src/studio/emit-schema.ts +182 -41
  93. package/src/studio/index.ts +59 -1
  94. package/src/studio/init-flow.test.ts +239 -0
  95. package/src/studio/init-flow.ts +358 -0
  96. package/src/studio/introspect-openapi.test.ts +84 -0
  97. package/src/studio/introspect-openapi.ts +252 -0
  98. package/src/studio/project.test.ts +57 -1
  99. package/src/studio/project.ts +302 -8
  100. package/src/studio/samples/crm.ts +282 -258
  101. package/src/studio/samples/datasets.test.ts +84 -0
  102. package/src/studio/samples/datasets.ts +340 -0
  103. package/src/studio/samples/fleet.ts +213 -186
  104. package/src/studio/samples/insurance.ts +223 -195
  105. package/src/studio/samples/inventory.ts +213 -182
  106. package/src/studio/samples/live-data.test.ts +99 -98
  107. package/src/studio/samples/live-data.ts +8 -10
  108. package/src/studio/samples/projects.ts +212 -190
  109. package/src/studio/samples/samples.test.ts +268 -216
  110. package/src/studio/samples/shared.ts +22 -145
  111. package/src/studio/samples/starter.ts +251 -0
  112. package/src/studio/samples/support.ts +209 -184
  113. package/src/studio/screen-suites.test.ts +226 -0
  114. package/src/studio/screen-suites.ts +445 -0
  115. package/src/studio/ui-components-surface.test.ts +185 -0
  116. package/src/studio/ui-components.generated.ts +7154 -0
  117. package/src/studio/ui-components.ts +273 -3
  118. package/src/sveltekit/index.ts +1 -0
  119. package/src/sveltekit/sql-source.test.ts +13 -0
  120. package/src/sveltekit/sql-source.ts +12 -7
  121. package/src/sveltekit/transport-scope.test.ts +125 -0
  122. package/src/sveltekit/transport.ts +76 -2
  123. package/src/upgrade-prompt.ts +2 -2
  124. package/src/watermark.ts +2 -2
  125. package/src/ai.test.ts +0 -522
  126. package/src/ai.ts +0 -1388
@@ -0,0 +1,7 @@
1
+ import{B as e,C as t,D as n,E as r,F as i,G as a,H as o,I as s,J as c,K as l,L as u,M as d,N as f,O as p,P as m,R as h,T as g,V as _,X as v,Y as y,_ as b,a as x,b as S,c as C,g as w,h as T,k as E,l as D,m as O,o as k,p as A,q as j,s as M,u as N,v as ee,w as P,x as F,y as te,z as ne}from"./index-DsDgp9Xq.js";var re=E(`<option> </option>`),ie=E(`<input class="sv-grid-menu-condition-value" placeholder="To"/>`),ae=E(`<option> </option>`),oe=E(`<input class="sv-grid-menu-condition-value" placeholder="To"/>`),se=E(`<input class="sv-grid-menu-condition-value"/> <!>`,1),ce=E(`<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),le=E(`<button type="button" class="sv-grid-menu-add-cond">+ Add condition</button>`),ue=E(`<input class="sv-grid-menu-condition-value"/> <!> <!>`,1),de=E(`<div class="sv-grid-facet-empty">No values</div>`),fe=E(`<div class="sv-grid-facet-note"> </div>`),pe=E(`<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>`),me=E(`<div role="tooltip"> </div>`),I=E(`<div class="sv-grid-menu-backdrop" role="presentation"></div>`),L=E(`<button type="button" role="tab">Filter</button>`),R=E(`<div class="sv-grid-menu-tabs" role="tablist"><button type="button" role="tab">General</button> <!> <button type="button" role="tab">Columns</button></div>`),he=E(`<div class="sv-grid-menu-filter-head">Visible columns</div> <!>`,1),ge=E(`<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),_e=E(`<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),ve=E(`<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),ye=E(`<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>`),be=E(`<!> <!> <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),z=E(`<div class="sv-grid-menu sv-grid-column-menu" role="menu"><!> <!></div>`),xe=E(`<div class="sv-grid-menu sv-grid-filter-menu" role="menu"><!></div>`),Se=E(`<div class="sv-grid-menu sv-grid-choose-columns-menu" role="menu"><div class="sv-grid-menu-filter-head">Visible columns</div> <!></div>`),Ce=E(`<button type="button" class="sv-grid-menu-item" role="menuitemradio"><span class="sv-grid-header-icon"><!></span> </button>`),we=E(`<div class="sv-grid-menu sv-grid-operator-menu" role="menu"></div>`),Te=E(`<div class="sv-grid-facet-empty">No values</div>`),Ee=E(`<div class="sv-grid-menu sv-grid-in-suggest"><!></div>`),De=E(`<div class="sv-grid-menu-sep"></div>`),Oe=E(`<button type="button" class="sv-grid-menu-item" role="menuitem"> </button>`),ke=E(`<div class="sv-grid-menu-backdrop" role="presentation"></div> <div class="sv-grid-menu sv-grid-context-menu" role="menu"></div>`,1),Ae=E(`<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),je=E(`<!> <!> <!> <!> <!> <!> <!> <!> <!>`,1);function Me(d,E){j(E,!0);let Me=(l,u=v)=>{let d=a(()=>i(Y).find(e=>e.id===u())),p=a(()=>i(Je)(i(d))),h=a(()=>i(V)[u()]?.operator??i(X)(i(d))),S=a(()=>D(i(d)?.columnDef.editorType??`text`));var C=pe(),k=e(C),j=e(k);t(e(j),()=>E.icon,()=>`filter`),y(j),c(),y(k);var M=o(k,2);P(M,21,()=>i(p),e=>e.value,(t,a)=>{var o=re(),c=e(o,!0);y(o);var l={};s(e=>{r(c,e),l!==(l=i(a).value)&&(o.value=(o.__value=i(a).value)??``)},[()=>i(Ye)(i(a),i(d))]),n(t,o)}),y(M);var N;ee(M);var ne=o(M,2),me=t=>{let c=a(()=>i(h)===`in`||i(h)===`notIn`),l=a(()=>i(V)[u()]);var v=ue(),x=_(v);O(x);var C=o(x,2),w=e=>{var t=ie();O(t),s(()=>{T(t,`type`,i(S)),b(t,i(V)[u()]?.valueTo??``)}),f(`input`,t,e=>i(qe)(u(),e.currentTarget.value)),n(e,t)};g(C,e=>{i(h)===`between`&&e(w)});var E=o(C,2),D=t=>{let c=a(()=>i(l).operator2??i(X)(i(d)));var m=ce(),h=_(m),v=e(h);let x;var C=o(v,2);let w;var E=o(C,2);y(h);var D=o(h,2);P(D,21,()=>i(p),e=>e.value,(t,a)=>{var o=ae(),c=e(o,!0);y(o);var l={};s(e=>{r(c,e),l!==(l=i(a).value)&&(o.value=(o.__value=i(a).value)??``)},[()=>i(Ye)(i(a),i(d))]),n(t,o)}),y(D);var k;ee(D);var A=o(D,2),j=e=>{var t=se(),r=_(t);O(r);var a=o(r,2),d=e=>{var t=oe();O(t),s(()=>{T(t,`type`,i(S)),b(t,i(l).valueTo2??``)}),f(`input`,t,e=>Z(u(),{valueTo2:e.currentTarget.value})),n(e,t)};g(a,e=>{i(c)===`between`&&e(d)}),s(()=>{T(r,`type`,i(S)),b(r,i(l).value2??``),T(r,`placeholder`,i(c)===`between`?`From`:`Filter value...`)}),f(`input`,r,e=>Z(u(),{value2:e.currentTarget.value})),n(e,t)};g(A,e=>{i(c)!==`isBlank`&&e(j)}),s(()=>{x=F(v,1,``,null,x,{"is-on":(i(l).join??`AND`)===`AND`}),w=F(C,1,``,null,w,{"is-on":i(l).join===`OR`}),k!==(k=i(c))&&(D.value=(D.__value=i(c))??``,te(D,i(c)))}),f(`click`,v,()=>Z(u(),{join:`AND`})),f(`click`,C,()=>Z(u(),{join:`OR`})),f(`click`,E,()=>Z(u(),{operator2:void 0,value2:void 0,valueTo2:void 0,join:void 0})),f(`change`,D,e=>Z(u(),{operator2:e.currentTarget.value})),n(t,m)},k=e=>{var t=le();f(`click`,t,()=>Z(u(),{operator2:i(X)(i(d)),value2:``,join:`AND`})),n(e,t)};g(E,e=>{i(l)?.operator2?e(D):e(k,-1)}),s(()=>{T(x,`type`,i(h)===`regex`?`text`:i(S)),b(x,i(V)[u()]?.value??``),T(x,`placeholder`,i(h)===`between`?`From`:i(c)?`value, value...`:i(h)===`regex`?`Pattern...`:`Filter value...`)}),m(`focus`,x,function(...e){(i(c)?e=>bt(e.currentTarget,u()):void 0)?.apply(this,e)}),m(`blur`,x,function(...e){(i(c)?()=>i(gt)():void 0)?.apply(this,e)}),f(`input`,x,e=>{let t=e.currentTarget;i(Ke)(u(),t.value),i(c)&&xt(t,u())}),n(t,v)};g(ne,e=>{i(h)!==`isBlank`&&i(h)!==`isNotBlank`&&e(me)});var I=o(ne,6);O(I);var L=o(I,2),R=e(L);O(R),c(2),y(L);var he=o(L,2),ge=e=>{{let t=a(()=>i(ut).length>yt);x(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(ut)},get value(){return i(dt)},onChange:e=>i(ft)(u(),e)})}},_e=e=>{n(e,de())};g(he,e=>{i(ut).length?e(ge):e(_e,-1)});var ve=o(he,2),ye=t=>{var a=fe(),o=e(a);y(a),s(()=>r(o,`Showing ${i(lt).length??``} of ${i(ct).length??``}`)),n(t,a)};g(ve,e=>{i(ct).length>i(lt).length&&e(ye)});var be=o(ve,2),z=e(be),xe=o(z,2);y(be),y(C),s((e,t)=>{N!==(N=i(h))&&(M.value=(M.__value=i(h))??``,te(M,i(h))),w(R,e),z.disabled=t},[()=>i(_t)(u()),()=>!i($e)(u())]),f(`change`,M,e=>i(Ge)(u(),e.currentTarget.value)),A(I,()=>B().columnMenuSearch,e=>B().columnMenuSearch=e),f(`change`,R,()=>i(vt)(u())),f(`click`,z,()=>i(Tt)(u())),f(`click`,xe,function(...e){i(Q)?.apply(this,e)}),n(l,C)},B=N(E,`ctrl`,7),Ne=a(()=>B().groupingControlsEnabled),V=a(()=>B().filterMenuValues),H=a(()=>B().tooltip),U=a(()=>B().columnMenuFor),Pe=a(()=>B().columnMenuPos),W=a(()=>B().filterMenuFor),Fe=a(()=>B().filterMenuPos),G=a(()=>B().operatorMenuFor),Ie=a(()=>B().operatorMenuPos),K=a(()=>B().chooseColumnsPos),q=a(()=>B().showColumnFiltersEffective),J=a(()=>B().props.columnMenuTabs===!0),Le=a(()=>B().grid),Y=a(()=>B().allColumns),Re=a(()=>B().isColumnPinned),ze=a(()=>B().pinColumnLeft),Be=a(()=>B().pinColumnRight),Ve=a(()=>B().unpinColumn),He=a(()=>B().sortDirectionByColumn),Ue=a(()=>B().groupingColumns),We=a(()=>B().columnVirtualizationEnabled),Ge=a(()=>B().updateFilterOperator),Ke=a(()=>B().updateFilterMenuValue),qe=a(()=>B().updateFilterMenuValueTo),Je=a(()=>B().operatorsForColumn),X=a(()=>B().defaultOperatorFor),Ye=a(()=>B().operatorLabelFor),Xe=a(()=>B().filterRowValues),Ze=a(()=>B().inSuggestFor),Qe=a(()=>B().inSuggestPos);function Z(e,t){let n=i(Y).find(t=>t.id===e),r=B().filterMenuValues[e]??{operator:i(X)(n),value:``};B().filterMenuValues={...B().filterMenuValues,[e]:{...r,...t}}}let $e=a(()=>B().isColumnFiltered),Q=a(()=>B().closeMenus);u(()=>{if(!(i(U)||i(W)||i(G)||i(K)))return;let e=()=>i(Q)(),t=k(()=>Array.from(document.querySelectorAll(`.sv-grid-menu`)),e);return window.addEventListener(`resize`,e),()=>{t(),window.removeEventListener(`resize`,e)}});let et=a(()=>B().autosizeColumn),tt=a(()=>B().autosizeAllColumns),nt=a(()=>B().resetColumns),rt=a(()=>B().openChooseColumns),it=a(()=>B().sortColumnFromMenu),at=a(()=>B().clearColumnSort),ot=a(()=>B().groupByColumnFromMenu),st=a(()=>B().clearGroupingFromMenu),ct=a(()=>B().columnMenuFacetValues),lt=a(()=>B().columnMenuVisibleFacets),ut=a(()=>B().columnMenuFacetOptions),dt=a(()=>B().columnMenuSelectedFacets),ft=a(()=>B().setFacetSelection),pt=a(()=>B().setFilterTokens),mt=a(()=>B().inSuggestOptions),ht=a(()=>B().openInSuggest),gt=a(()=>B().closeInSuggest),_t=a(()=>B().isAllFacetsChecked),vt=a(()=>B().toggleAllFacets),yt=40;function bt(e,t){i(ht)(e,t),B().inSuggestQuery=C(e.value)}function xt(e,t){B().inSuggestQuery=C(e.value),B().inSuggestFor!==t&&i(ht)(e,t)}function St(e){return e.map(e=>({value:e.id,label:typeof e.columnDef.header==`string`?e.columnDef.header:e.id}))}function Ct(e){let t=new Set;for(let n of e)B().hiddenColumns[n.id]||t.add(n.id);return t}function wt(e,t){let n={...B().hiddenColumns};for(let r of e)t.has(r.id)?delete n[r.id]:n[r.id]=!0;B().hiddenColumns=n}let Tt=a(()=>B().clearColumnFilter),Et=a(()=>B().contextMenuFor),Dt=a(()=>B().contextMenuPos),Ot=a(()=>B().contextMenuItems),kt=a(()=>B().closeContextMenu),$=a(()=>B().commentEditFor),At=a(()=>B().saveComment),jt=a(()=>B().removeComment),Mt=a(()=>B().closeCommentEditor);var Nt=je(),Pt=_(Nt),Ft=t=>{var a=me();let o;var c=e(a,!0);y(a),s(()=>{o=F(a,1,`sv-grid-tooltip`,null,o,{"sv-grid-tooltip-above":!i(H).below}),S(a,`left: ${i(H).x}px; top: ${i(H).y}px; ${i(H).below?``:`transform: translateY(-100%);`}`),r(c,i(H).text)}),n(t,a)};g(Pt,e=>{i(H)&&e(Ft)});var It=o(Pt,2),Lt=e=>{var t=I();f(`click`,t,function(...e){i(Q)?.apply(this,e)}),n(e,t)};g(It,e=>{(i(U)||i(W)||i(G)||i(K))&&e(Lt)});var Rt=o(It,2),zt=r=>{let l=a(()=>i(U)),u=a(()=>i(Y).find(e=>e.id===i(l))),d=a(()=>i(u)?.getCanSort?.()??!1),p=a(()=>i(u)?.columnDef.field!=null&&i(u)?.columnDef.filterable!==!1),m=a(()=>B().columnMenuTab);var h=z(),v=e(h),b=t=>{var r=R(),a=e(r);let c;var l=o(a,2),u=e=>{var t=L();let r;s(()=>{r=F(t,1,`sv-grid-menu-tab`,null,r,{"is-active":i(m)===`filter`}),T(t,`aria-selected`,i(m)===`filter`)}),f(`click`,t,()=>B().columnMenuTab=`filter`),n(e,t)};g(l,e=>{i(p)&&i(q)&&e(u)});var d=o(l,2);let h;y(r),s(()=>{c=F(a,1,`sv-grid-menu-tab`,null,c,{"is-active":i(m)===`general`}),T(a,`aria-selected`,i(m)===`general`),h=F(d,1,`sv-grid-menu-tab`,null,h,{"is-active":i(m)===`columns`}),T(d,`aria-selected`,i(m)===`columns`)}),f(`click`,a,()=>B().columnMenuTab=`general`),f(`click`,d,()=>B().columnMenuTab=`columns`),n(t,r)};g(v,e=>{i(J)&&e(b)});var C=o(v,2),w=e=>{Me(e,()=>i(l))},D=e=>{let t=a(()=>i(Le).getAllColumns());var r=he(),s=o(_(r),2);{let e=a(()=>i(t).length>40),n=a(()=>St(i(t))),r=a(()=>Ct(i(t)));x(s,{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=>wt(i(t),e)})}n(e,r)},O=r=>{var u=be(),p=_(u),m=r=>{var a=ge(),u=_(a),d=e(u);t(e(d),()=>E.icon,()=>`sort-asc`),y(d),c(),y(u);var p=o(u,2),m=e(p);t(e(m),()=>E.icon,()=>`sort-desc`),y(m),c(),y(p);var h=o(p,2),g=e(h);t(e(g),()=>E.icon,()=>`x`),y(g),c(),y(h),s(()=>h.disabled=!i(He)[i(l)]),f(`click`,u,()=>i(it)(i(l),!1)),f(`click`,p,()=>i(it)(i(l),!0)),f(`click`,h,()=>i(at)(i(l))),n(r,a)};g(p,e=>{i(d)&&e(m)});var h=o(p,2),v=r=>{let u=a(()=>i(Re)(i(l)));var d=_e(),p=o(_(d),2),m=e(p);t(e(m),()=>E.icon,()=>`op-startsWith`),y(m),c(),y(p);var h=o(p,2),g=e(h);t(e(g),()=>E.icon,()=>`op-greaterThan`),y(g),c(),y(h);var v=o(h,2),b=e(v);t(e(b),()=>E.icon,()=>`x`),y(b),c(),y(v),s(()=>{p.disabled=i(u)===`left`,h.disabled=i(u)===`right`,v.disabled=!i(u)}),f(`click`,p,()=>i(ze)(i(l))),f(`click`,h,()=>i(Be)(i(l))),f(`click`,v,()=>i(Ve)(i(l))),n(r,d)};g(h,e=>{i(We)||e(v)});var b=o(h,4),x=e(b);t(e(x),()=>E.icon,()=>`autosize`),y(x),c(),y(b);var S=o(b,2),C=e(S);t(e(C),()=>E.icon,()=>`autosize`),y(C),c(),y(S);var w=o(S,2),D=r=>{var a=ve(),u=o(_(a),2),d=e(u);t(e(d),()=>E.icon,()=>`group`),y(d),c(),y(u);var p=o(u,2),m=e(p);t(e(m),()=>E.icon,()=>`x`),y(m),c(),y(p),s((e,t)=>{u.disabled=e,p.disabled=t},[()=>i(Ue).includes(i(l)),()=>!i(Ue).includes(i(l))]),f(`click`,u,()=>i(ot)(i(l))),f(`click`,p,()=>i(st)(i(l))),n(r,a)};g(w,e=>{i(Ne)&&e(D)});var O=o(w,4),k=r=>{var a=ye();let c;var l=e(a);t(e(l),()=>E.icon,()=>`columns`),y(l);var u=o(l,2);t(e(u),()=>E.icon,()=>`chevron-down`),y(u),y(a),s(()=>{c=F(a,1,`sv-grid-menu-item`,null,c,{"is-open":i(K)!==null}),T(a,`aria-expanded`,i(K)!==null)}),f(`click`,a,e=>i(rt)(e)),n(r,a)};g(O,e=>{i(J)||e(k)});var A=o(O,2),j=e(A);t(e(j),()=>E.icon,()=>`reset`),y(j),c(),y(A),f(`click`,b,()=>{i(et)(i(l)),i(Q)()}),f(`click`,S,()=>{i(tt)(),i(Q)()}),f(`click`,A,()=>{i(nt)(),i(Q)()}),n(r,u)};g(C,e=>{i(J)&&i(m)===`filter`&&i(p)&&i(q)?e(w):i(J)&&i(m)===`columns`?e(D,1):e(O,-1)}),y(h),s(()=>S(h,`left: ${i(Pe).x}px; top: ${i(Pe).y}px; max-height: calc(100vh - ${i(Pe).y}px - 12px);`)),n(r,h)};g(Rt,e=>{i(U)&&e(zt)});var Bt=o(Rt,2),Vt=t=>{var r=xe();Me(e(r),()=>i(W)),y(r),s(()=>S(r,`left: ${i(Fe).x}px; top: ${i(Fe).y}px; max-height: calc(100vh - ${i(Fe).y}px - 12px);`)),n(t,r)};g(Bt,e=>{i(W)&&i(q)&&e(Vt)});var Ht=o(Bt,2),Ut=t=>{let r=a(()=>i(Le).getAllColumns());var c=Se(),l=o(e(c),2);{let e=a(()=>i(r).length>40),t=a(()=>St(i(r))),n=a(()=>Ct(i(r)));x(l,{block:!0,checkbox:!0,multiple:!0,get virtual(){return i(e)},rows:11,rowHeight:24,size:`sm`,ariaLabel:`Visible columns`,get options(){return i(t)},get value(){return i(n)},onChange:e=>wt(i(r),e)})}y(c),s(()=>S(c,`left: ${i(K).x}px; top: ${i(K).y}px;`)),n(t,c)};g(Ht,e=>{i(K)&&e(Ut)});var Wt=o(Ht,2),Gt=c=>{let l=a(()=>i(G)),u=a(()=>i(Y).find(e=>e.id===i(l))),d=a(()=>i(Je)(i(u))),p=a(()=>i(V)[i(l)]?.operator??i(X)(i(u)));var m=we();P(m,21,()=>i(d),e=>e.value,(a,c)=>{var d=Ce(),m=e(d);t(e(m),()=>E.icon,()=>i(c).iconName),y(m);var h=o(m);y(d),s(e=>{T(d,`aria-checked`,i(p)===i(c).value),r(h,` ${e??``}`)},[()=>i(Ye)(i(c),i(u))]),f(`click`,d,()=>{i(Ge)(i(l),i(c).value),i(Q)()}),n(a,d)}),y(m),s(()=>S(m,`left: ${i(Ie).x}px; top: ${i(Ie).y}px;`)),n(c,m)};g(Wt,e=>{i(G)&&e(Gt)});var Kt=o(Wt,2),qt=t=>{let r=a(()=>i(Ze)),o=a(()=>new Set(M(i(Xe)[i(r)]??``)));var c=Ee(),l=e(c),u=e=>{{let t=a(()=>i(mt).length>40);x(e,{block:!0,checkbox:!0,multiple:!0,get virtual(){return i(t)},rows:8,rowHeight:26,size:`sm`,ariaLabel:`Filter values`,get options(){return i(mt)},get value(){return i(o)},onChange:e=>{let t=new Set(e),n=C(i(Xe)[i(r)]??``);n&&t.delete(n),i(pt)(i(r),[...t]),B().inSuggestQuery=``}})}},d=e=>{n(e,Te())};g(l,e=>{i(mt).length?e(u):e(d,-1)}),y(c),s(()=>S(c,`left: ${i(Qe).x}px; top: ${i(Qe).y}px;`)),f(`mousedown`,c,e=>e.preventDefault()),n(t,c)};g(Kt,e=>{i(Ze)&&e(qt)});var Jt=o(Kt,2),Yt=t=>{var a=ke(),c=_(a),l=o(c,2);P(l,21,()=>i(Ot)(),e=>e.key,(t,a)=>{var o=p(),c=_(o),l=e=>{n(e,De())},u=t=>{var o=Oe(),c=e(o,!0);y(o),s(()=>{o.disabled=i(a).disabled,r(c,i(a).label)}),f(`click`,o,()=>{i(a).run?.(),i(kt)()}),n(t,o)};g(c,e=>{i(a).separator?e(l):e(u,-1)}),n(t,o)}),y(l),s(()=>S(l,`left: ${i(Dt).x}px; top: ${i(Dt).y}px;`)),f(`contextmenu`,c,e=>{e.preventDefault(),i(kt)()}),f(`click`,c,function(...e){i(kt)?.apply(this,e)}),n(t,a)};g(Jt,e=>{i(Et)&&e(Yt)});var Xt=o(Jt,2),Zt=t=>{var r=Ae(),a=_(r),c=o(a,2),l=e(c);ne(l),h(l,!0);var u=o(l,2),d=e(u),p=o(d,4),m=o(p,2);y(u),y(c),s(()=>S(c,`left: ${i($).x}px; top: ${i($).y}px;`)),f(`click`,a,function(...e){i(Mt)?.apply(this,e)}),f(`keydown`,l,e=>{e.stopPropagation(),e.key===`Escape`&&(e.preventDefault(),i(Mt)()),e.key===`Enter`&&(e.ctrlKey||e.metaKey)&&(e.preventDefault(),i(At)())}),A(l,()=>B().commentDraft,e=>B().commentDraft=e),f(`click`,d,function(...e){i(jt)?.apply(this,e)}),f(`click`,p,function(...e){i(Mt)?.apply(this,e)}),f(`click`,m,function(...e){i(At)?.apply(this,e)}),n(t,r)};g(Xt,e=>{i($)&&e(Zt)}),n(d,Nt),l()}d([`change`,`input`,`click`,`mousedown`,`contextmenu`,`keydown`]);export{Me as default};
@@ -0,0 +1,10 @@
1
+ import{A as e,B as t,D as n,E as r,F as i,G as a,H as o,I as s,J as c,K as l,L as u,M as d,N as f,P as p,S as m,T as h,U as g,V as ee,W as _,Y as v,b as te,d as y,f as b,g as x,h as S,i as C,j as w,k as T,m as E,n as ne,p as D,q as O,t as re,u as ie,v as k,w as A,x as j,y as M}from"./index-DsDgp9Xq.js";function N(e){return e instanceof SVGSVGElement?e:e.querySelector(`svg.sv-grid-chart-svg`)??e.querySelector(`svg`)}function P(e,t,n){return getComputedStyle(e).getPropertyValue(t).trim()||n}function F(e,t={}){let n=N(e);if(!n)throw Error(`chartToSvgString: no <svg> found`);let r=P(n,`--sg-fg`,`#0f172a`),i=P(n,`--sg-muted`,`#64748b`),a=P(n,`--sg-border`,`#e2e8f0`),o=t.background??P(n,`--sg-bg`,`#ffffff`),s=n.viewBox.baseVal,c=s&&s.width?s.width:n.clientWidth||520,l=s&&s.height?s.height:n.clientHeight||300,u=n.cloneNode(!0);u.setAttribute(`width`,String(c)),u.setAttribute(`height`,String(l)),u.setAttribute(`xmlns`,`http://www.w3.org/2000/svg`);let d=[`fill`,`fill-opacity`,`stroke`,`stroke-width`,`stroke-opacity`,`stroke-dasharray`,`stroke-linecap`,`stroke-linejoin`,`opacity`,`font-size`,`font-family`,`font-weight`,`text-anchor`],f=n.querySelectorAll(`*`),p=u.querySelectorAll(`*`);for(let e=0;e<f.length;e+=1){let t=p[e];if(!t||!t.style)continue;let n=getComputedStyle(f[e]);for(let e of d){let r=n.getPropertyValue(e);r&&r!==`normal`&&t.style.setProperty(e,r)}}u.querySelectorAll(`.sv-grid-chart-hit`).forEach(e=>e.remove());let m=document.createElementNS(`http://www.w3.org/2000/svg`,`style`);m.textContent=`
2
+ .sv-grid-chart-axis { fill: ${i}; font-size: 10px; font-family: sans-serif; }
3
+ .sv-grid-chart-gridline { stroke: ${a}; stroke-width: 1; opacity: 0.6; }
4
+ .sv-grid-chart-gridline.is-zero { stroke: ${i}; opacity: 0.9; }
5
+ .sv-grid-chart-datalabel { fill: ${r}; font-size: 9.5px; font-weight: 600; font-family: sans-serif; }
6
+ .sv-grid-chart-datalabel.on-bar { fill: #fff; }
7
+ .sv-grid-chart-donut-total { fill: ${r}; font-size: 16px; font-weight: 800; font-family: sans-serif; }
8
+ .sv-grid-chart-donut-label { fill: ${i}; font-size: 10px; font-family: sans-serif; }
9
+ `,u.insertBefore(m,u.firstChild);let h=document.createElementNS(`http://www.w3.org/2000/svg`,`rect`);return h.setAttribute(`x`,`0`),h.setAttribute(`y`,`0`),h.setAttribute(`width`,String(c)),h.setAttribute(`height`,String(l)),h.setAttribute(`fill`,o),u.insertBefore(h,m.nextSibling),new XMLSerializer().serializeToString(u)}function I(e,t){let n=document.createElement(`a`);n.href=e,n.download=t,document.body.appendChild(n),n.click(),n.remove()}function ae(e,t=`chart.svg`,n={}){let r=F(e,n),i=URL.createObjectURL(new Blob([r],{type:`image/svg+xml`}));I(i,t),setTimeout(()=>URL.revokeObjectURL(i),1e3)}function oe(e,t={}){let n=F(e,t),r=t.scale??2,i=N(e),a=i.viewBox.baseVal,o=(a&&a.width?a.width:i.clientWidth||520)*r,s=(a&&a.height?a.height:i.clientHeight||300)*r;return new Promise((e,t)=>{let r=URL.createObjectURL(new Blob([n],{type:`image/svg+xml`})),i=new Image;i.onload=()=>{let n=document.createElement(`canvas`);n.width=Math.round(o),n.height=Math.round(s);let a=n.getContext(`2d`);if(!a){URL.revokeObjectURL(r),t(Error(`canvas 2d context unavailable`));return}a.drawImage(i,0,0,n.width,n.height),URL.revokeObjectURL(r),n.toBlob(n=>n?e(n):t(Error(`toBlob failed`)),`image/png`)},i.onerror=()=>{URL.revokeObjectURL(r),t(Error(`failed to rasterize chart SVG`))},i.src=r})}async function se(e,t=`chart.png`,n={}){let r=await oe(e,n),i=URL.createObjectURL(r);I(i,t),setTimeout(()=>URL.revokeObjectURL(i),1e3)}var L=e=>{let t=e==null?``:String(e);return/[",\n]/.test(t)?`"${t.replace(/"/g,`""`)}"`:t};function R(e){let t=e.categories??[],n=e.series??[];return!t.length||!n.length?``:[[`Category`,...n.map(e=>e.label)].map(L).join(`,`),...t.map((e,t)=>[e,...n.map(e=>e.values[t]??``)].map(L).join(`,`))].join(`
10
+ `)}function ce(e,t=`chart.csv`){let n=R(e);if(!n)return!1;let r=URL.createObjectURL(new Blob([n],{type:`text/csv;charset=utf-8`}));return I(r,t),setTimeout(()=>URL.revokeObjectURL(r),1e3),!0}var le=T(`<div role="separator" aria-label="Resize chart panel"></div>`),ue=T(`<button type="button" class="sv-grid-chart-btn">Clear filter</button>`),de=e(`<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.4" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><polyline points="20 6 9 17 4 12"></polyline></svg>`),fe=e(`<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"></path><polyline points="7 10 12 15 17 10"></polyline><line x1="12" y1="15" x2="12" y2="3"></line></svg>`),pe=T(`<div class="sv-grid-chart-export-menu" role="menu"><button type="button" role="menuitem">PNG image</button> <button type="button" role="menuitem">SVG vector</button> <button type="button" role="menuitem">CSV data</button> <button type="button" role="menuitem">Copy to clipboard</button></div>`),me=T(`<button type="button" aria-label="Chart with AI" title="Chart with AI"><svg width="13" height="13" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"><path d="M12 2l1.9 4.6L18.5 8.5 13.9 10.4 12 15l-1.9-4.6L5.5 8.5l4.6-1.9L12 2zm6 11l1 2.4 2.4 1-2.4 1L18 21l-1-2.6-2.4-1 2.4-1L18 13zM6 14l.8 2 2 .8-2 .8L6 20l-.8-2.4-2-.8 2-.8L6 14z"></path></svg> AI</button>`),he=T(`<button type="button" class="sv-grid-chart-icon-btn" aria-label="Add chart" title="Add chart"><svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><line x1="12" y1="5" x2="12" y2="19"></line><line x1="5" y1="12" x2="19" y2="12"></line></svg></button>`),ge=e(`<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M8 3v3a2 2 0 0 1-2 2H3"></path><path d="M21 8h-3a2 2 0 0 1-2-2V3"></path><path d="M3 16h3a2 2 0 0 1 2 2v3"></path><path d="M16 21v-3a2 2 0 0 1 2-2h3"></path></svg>`),_e=e(`<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M8 3H5a2 2 0 0 0-2 2v3"></path><path d="M21 8V5a2 2 0 0 0-2-2h-3"></path><path d="M3 16v3a2 2 0 0 0 2 2h3"></path><path d="M16 21h3a2 2 0 0 0 2-2v-3"></path></svg>`),ve=T(`<button type="button" class="sv-grid-chart-icon-btn"><!></button> <button type="button" class="sv-grid-chart-icon-btn" aria-label="Dock chart" title="Dock"><svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><rect x="3" y="3" width="18" height="18" rx="2"></rect><line x1="15" y1="3" x2="15" y2="21"></line></svg></button>`,1),ye=T(`<button type="button" class="sv-grid-chart-icon-btn" aria-label="Pop out chart" title="Pop out"><svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M15 3h6v6"></path><path d="M10 14 21 3"></path><path d="M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"></path></svg></button>`),be=T(`<div><button type="button" class="sv-grid-chart-tab-label" role="tab"> </button> <button type="button" class="sv-grid-chart-tab-x" title="Remove">&times;</button></div>`),xe=T(`<div class="sv-grid-chart-tabs" role="tablist" aria-label="Charts"></div>`),Se=T(`<p class="sv-grid-chart-ai-msg is-error"> </p>`),Ce=T(`<p class="sv-grid-chart-ai-msg"> </p>`),we=T(`<div class="sv-grid-chart-ai"><form class="sv-grid-chart-ai-row"><input class="sv-grid-chart-ai-input" type="text" placeholder="Describe a chart, e.g. revenue by region stacked by product"/> <button type="submit" class="sv-grid-chart-btn"> </button></form> <!></div>`),Te=T(`<option> </option>`),Ee=T(`<option> </option>`),De=T(`<option> </option>`),Oe=T(`<label class="sv-grid-chart-ctl"><span class="sv-grid-chart-ctl-lbl">Split by</span> <select><option>(none)</option><!></select></label>`),ke=T(`<option> </option>`),Ae=T(`<option> </option>`),je=T(`<option> </option>`),Me=T(`<label class="sv-grid-chart-toggle"><input type="checkbox"/> Stacked</label>`),Ne=T(`<label class="sv-grid-chart-toggle" title="Logarithmic value axis - flattens wide-range data"><input type="checkbox"/> Log scale</label>`),Pe=T(`<label class="sv-grid-chart-toggle" title="Space points by actual date - real time ticks and proportional gaps"><input type="checkbox"/> Date axis</label>`),Fe=T(`<label class="sv-grid-chart-ctl"><span class="sv-grid-chart-ctl-lbl">Type</span> <select></select></label> <label class="sv-grid-chart-ctl"><span class="sv-grid-chart-ctl-lbl">Group by</span> <select></select></label> <!> <label class="sv-grid-chart-ctl"><span class="sv-grid-chart-ctl-lbl">Value</span> <select></select></label> <label class="sv-grid-chart-ctl"><span class="sv-grid-chart-ctl-lbl">Aggregate</span> <select></select></label> <label class="sv-grid-chart-ctl"><span class="sv-grid-chart-ctl-lbl">Format</span> <select></select></label> <!> <label class="sv-grid-chart-toggle"><input type="checkbox"/> Labels</label> <!> <!>`,1),Ie=T(`<p class="sv-grid-chart-empty"><!></p>`),Le=T(`<div class="sv-grid-chart-float-resizer" role="separator" aria-label="Resize chart window"></div>`),Re=T(`<section aria-label="Chart"><!> <header class="sv-grid-chart-panel-head"><div><svg class="sv-grid-chart-title-icon" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><line x1="12" y1="20" x2="12" y2="10"></line><line x1="18" y1="20" x2="18" y2="4"></line><line x1="6" y1="20" x2="6" y2="16"></line></svg> <span class="sv-grid-chart-title">Chart</span> <div class="sv-grid-chart-actions"><!> <div class="sv-grid-chart-export"><button type="button" class="sv-grid-chart-icon-btn" aria-label="Export chart" title="Export"><!></button> <!></div> <!> <!> <!> <button type="button" class="sv-grid-chart-close" aria-label="Close chart">&times;</button></div></div> <!> <!> <div class="sv-grid-chart-controls"><!></div></header> <div class="sv-grid-chart-panel-body"><!></div> <!></section>`);function z(e,d){O(d,!0);let T=ie(d,`ctrl`,7),N=a(()=>T().chartingConfig),P=a(()=>T().chartCfg),F=a(()=>T().chartIsCustom),I=a(()=>i(N)?.position??`bottom`),L=a(()=>i(N)?.crossFilter!==!1),R=a(()=>T().chartSpec),z=a(()=>T().chartableColumns),B=a(()=>T().chartSize??(i(I)===`right`?i(N)?.width??340:i(N)?.height??260)),V=a(()=>T().chartFloating),H=a(()=>T().chartMaximized),U=a(()=>T().chartFloatRect),ze=_(null);function Be(){let e=i(ze)?.offsetParent;return{w:e?.clientWidth??800,h:e?.clientHeight??520}}function Ve(){if(!T().chartFloatRect){let{w:e,h:t}=Be(),n=Math.min(600,Math.max(360,e-80)),r=Math.min(430,Math.max(260,t-90));T().chartFloatRect={x:Math.round((e-n)/2),y:Math.round((t-r)/2),w:n,h:r}}T().chartFloating=!0}function He(){T().chartFloating=!1,T().chartMaximized=!1}let Ue=()=>T().chartMaximized=!T().chartMaximized;function We(e){if(!i(V)||i(H)||e.target?.closest(`button`))return;let t=T().chartFloatRect;if(!t)return;e.preventDefault();let n=e.clientX,r=e.clientY,{w:a,h:o}=Be(),s=e=>{let i=Math.max(0,Math.min(a-t.w,t.x+e.clientX-n)),s=Math.max(0,Math.min(o-t.h,t.y+e.clientY-r));T().chartFloatRect={x:i,y:s,w:t.w,h:t.h}},c=()=>{window.removeEventListener(`pointermove`,s),window.removeEventListener(`pointerup`,c)};window.addEventListener(`pointermove`,s),window.addEventListener(`pointerup`,c)}function Ge(e){let t=T().chartFloatRect;if(!t)return;e.preventDefault(),e.stopPropagation();let n=e.clientX,r=e.clientY;e.target.setPointerCapture?.(e.pointerId);let i=e=>{T().chartFloatRect={x:t.x,y:t.y,w:Math.max(300,t.w+e.clientX-n),h:Math.max(220,t.h+e.clientY-r)}},a=()=>{window.removeEventListener(`pointermove`,i),window.removeEventListener(`pointerup`,a)};window.addEventListener(`pointermove`,i),window.addEventListener(`pointerup`,a)}let Ke=a(()=>i(V)?i(H)?`left:12px; top:12px; right:12px; bottom:12px; width:auto; height:auto;`:i(U)?`left:${i(U).x}px; top:${i(U).y}px; width:${i(U).w}px; height:${i(U).h}px;`:``:i(I)===`right`?`width:${i(B)}px`:`height:${i(B)}px`),qe=_(0),Je=_(0),Ye=a(()=>i(R)?i(R).type===`pie`?i(R).categories.length:i(R).series.length:0),Xe=a(()=>(i(Ye)>1?36:0)+(i(P)?.export===!0?30:0)),Ze=a(()=>i(qe)>24?i(qe)-8:void 0),Qe=a(()=>i(Je)>24?Math.max(120,i(Je)-8-i(Xe)):void 0),$e=[{value:`bar`,label:`Bar`},{value:`line`,label:`Line`},{value:`area`,label:`Area`},{value:`pie`,label:`Pie`}],et=[{value:`sum`,label:`Sum`},{value:`avg`,label:`Average`},{value:`count`,label:`Count`}],tt=[{value:`number`,label:`Number`},{value:`currency`,label:`Currency`},{value:`percent`,label:`Percent`}];function nt(e){i(L)&&e.category!=null&&T().applyChartCrossFilter(String(e.category))}let rt=_(null),W=_(!1),it=_(!1),at=()=>i(rt)?.querySelector(`svg`)??null,ot=a(()=>!!(i(R)&&i(R).categories?.length&&i(R).series?.length));function st(){let e=at();e&&se(e,`chart.png`),g(W,!1)}function ct(){let e=at();e&&ae(e,`chart.svg`),g(W,!1)}function lt(){i(R)&&ce(i(R),`chart.csv`),g(W,!1)}async function ut(){let e=at();if(g(W,!1),!(!e||typeof ClipboardItem>`u`||!navigator.clipboard?.write))try{let t=await oe(e);await navigator.clipboard.write([new ClipboardItem({"image/png":t})]),g(it,!0),setTimeout(()=>g(it,!1),1400)}catch{}}u(()=>{if(!i(W))return;let e=e=>{e.target?.closest(`.sv-grid-chart-export`)||g(W,!1)};return window.addEventListener(`pointerdown`,e),()=>window.removeEventListener(`pointerdown`,e)});let dt=a(()=>!!T().chartAiHandler),G=_(!1),K=_(``),q=_(!1),J=_(``),Y=_(``);async function ft(){let e=T().chartAiHandler,t=i(K).trim();if(!(!e||!t||i(q))){g(q,!0),g(J,``),g(Y,``);try{let n=await e(t);n?(T().applyChartConfig(n),g(Y,typeof n.rationale==`string`?n.rationale:``,!0)):g(J,`Couldn't build a chart from that request.`)}catch(e){g(J,e instanceof Error?e.message:`Something went wrong.`,!0)}finally{g(q,!1)}}}let pt=_(!1);function mt(e){e.preventDefault(),g(pt,!0);let t=i(I)===`right`?e.clientX:e.clientY,n=i(B);e.target.setPointerCapture?.(e.pointerId);let r=e=>{let r=i(I)===`right`?t-e.clientX:t-e.clientY;T().chartSize=Math.max(160,Math.min(720,n+r))},a=()=>{g(pt,!1),window.removeEventListener(`pointermove`,r),window.removeEventListener(`pointerup`,a)};window.addEventListener(`pointermove`,r),window.addEventListener(`pointerup`,a)}var X=Re();let ht;var gt=t(X),_t=e=>{var t=le();let r;s(()=>{r=j(t,1,`sv-grid-chart-resizer`,null,r,{"is-dragging":i(pt)}),S(t,`aria-orientation`,i(I)===`right`?`vertical`:`horizontal`)}),f(`pointerdown`,t,mt),n(e,t)};h(gt,e=>{i(V)||e(_t)});var vt=o(gt,2),Z=t(vt);let yt;var bt=o(t(Z),4),xt=t(bt),St=e=>{var t=ue();f(`click`,t,()=>T().clearChartCrossFilter()),n(e,t)};h(xt,e=>{i(L)&&!i(F)&&e(St)});var Ct=o(xt,2),Q=t(Ct),wt=t(Q),Tt=e=>{n(e,de())},Et=e=>{n(e,fe())};h(wt,e=>{i(it)?e(Tt):e(Et,-1)}),v(Q);var Dt=o(Q,2),Ot=e=>{var r=pe(),a=t(r),c=o(a,2),l=o(c,2),u=o(l,2);v(r),s(()=>l.disabled=!i(ot)),f(`click`,a,st),f(`click`,c,ct),f(`click`,l,lt),f(`click`,u,ut),n(e,r)};h(Dt,e=>{i(W)&&e(Ot)}),v(Ct);var kt=o(Ct,2),At=e=>{var t=me();let r;s(()=>{r=j(t,1,`sv-grid-chart-btn sv-grid-chart-ai-btn`,null,r,{"is-active":i(G)}),S(t,`aria-expanded`,i(G))}),f(`click`,t,()=>g(G,!i(G))),n(e,t)};h(kt,e=>{i(dt)&&!i(F)&&e(At)});var jt=o(kt,2),Mt=e=>{var t=he();f(`click`,t,()=>T().addChart()),n(e,t)};h(jt,e=>{i(F)||e(Mt)});var Nt=o(jt,2),Pt=e=>{var r=ve(),a=ee(r),c=t(a),l=e=>{n(e,ge())},u=e=>{n(e,_e())};h(c,e=>{i(H)?e(l):e(u,-1)}),v(a);var d=o(a,2);s(()=>{S(a,`aria-label`,i(H)?`Restore`:`Maximize`),S(a,`title`,i(H)?`Restore`:`Maximize`)}),f(`click`,a,Ue),f(`click`,d,He),n(e,r)},Ft=e=>{var t=ye();f(`click`,t,Ve),n(e,t)};h(Nt,e=>{i(V)?e(Pt):e(Ft,-1)});var It=o(Nt,2);v(bt),v(Z);var Lt=o(Z,2),Rt=e=>{var a=xe();A(a,23,()=>T().charts,e=>e.id,(e,a,c)=>{var l=be();let u;var d=t(l),p=t(d,!0);v(d);var m=o(d,2);v(l),s(()=>{u=j(l,1,`sv-grid-chart-tab`,null,u,{"is-active":i(c)===T().activeChartIndex}),S(d,`aria-selected`,i(c)===T().activeChartIndex),r(p,i(a).title),S(m,`aria-label`,`Remove ${i(a).title}`)}),f(`click`,d,()=>T().activeChartIndex=i(c)),f(`click`,m,()=>T().removeChart(i(c))),n(e,l)}),v(a),n(e,a)};h(Lt,e=>{!i(F)&&T().charts.length>1&&e(Rt)});var zt=o(Lt,2),Bt=e=>{var a=we(),c=t(a),l=t(c);E(l);var u=o(l,2),d=t(u,!0);v(u),v(c);var f=o(c,2),m=e=>{var a=Se(),o=t(a,!0);v(a),s(()=>r(o,i(J))),n(e,a)},ee=e=>{var a=Ce(),o=t(a,!0);v(a),s(()=>r(o,i(Y))),n(e,a)};h(f,e=>{i(J)?e(m):i(Y)&&e(ee,1)}),v(a),s(e=>{l.disabled=i(q),u.disabled=e,r(d,i(q)?`Thinking...`:`Chart it`)},[()=>i(q)||!i(K).trim()]),p(`submit`,c,e=>{e.preventDefault(),ft()}),D(l,()=>i(K),e=>g(K,e)),n(e,a)};h(zt,e=>{i(dt)&&i(G)&&!i(F)&&e(Bt)});var Vt=o(zt,2),Ht=t(Vt),Ut=e=>{var a=Fe(),l=ee(a),u=o(t(l),2);A(u,21,()=>$e,e=>e.value,(e,a)=>{var o=Te(),c=t(o,!0);v(o);var l={};s(()=>{r(c,i(a).label),l!==(l=i(a).value)&&(o.value=(o.__value=i(a).value)??``)}),n(e,o)}),v(u);var d;k(u),v(l);var p=o(l,2),m=o(t(p),2);A(m,21,()=>i(z).dims,e=>e.id,(e,a)=>{var o=Ee(),c=t(o,!0);v(o);var l={};s(()=>{r(c,i(a).label),l!==(l=i(a).id)&&(o.value=(o.__value=i(a).id)??``)}),n(e,o)}),v(m);var g;k(m),v(p);var _=o(p,2),te=e=>{var a=Oe(),c=o(t(a),2),l=t(c);l.value=l.__value=``,A(o(l),17,()=>i(z).dims,e=>e.id,(e,a)=>{var o=De(),c=t(o,!0);v(o);var l={};s(()=>{r(c,i(a).label),l!==(l=i(a).id)&&(o.value=(o.__value=i(a).id)??``)}),n(e,o)}),v(c);var u;k(c),v(a),s(()=>{u!==(u=T().chartSeriesId??``)&&(c.value=(c.__value=T().chartSeriesId??``)??``,M(c,T().chartSeriesId??``))}),f(`change`,c,e=>T().chartSeriesId=e.currentTarget.value||null),n(e,a)};h(_,e=>{i(z).dims.length>1&&e(te)});var y=o(_,2),b=o(t(y),2);A(b,21,()=>i(z).measures,e=>e.id,(e,a)=>{var o=ke(),c=t(o,!0);v(o);var l={};s(()=>{r(c,i(a).label),l!==(l=i(a).id)&&(o.value=(o.__value=i(a).id)??``)}),n(e,o)}),v(b);var S;k(b),v(y);var C=o(y,2),w=o(t(C),2);A(w,21,()=>et,e=>e.value,(e,a)=>{var o=Ae(),c=t(o,!0);v(o);var l={};s(()=>{r(c,i(a).label),l!==(l=i(a).value)&&(o.value=(o.__value=i(a).value)??``)}),n(e,o)}),v(w);var ne;k(w),v(C);var D=o(C,2),O=o(t(D),2);A(O,21,()=>tt,e=>e.value,(e,a)=>{var o=je(),c=t(o,!0);v(o);var l={};s(()=>{r(c,i(a).label),l!==(l=i(a).value)&&(o.value=(o.__value=i(a).value)??``)}),n(e,o)}),v(O);var re;k(O),v(D);var ie=o(D,2),j=e=>{var r=Me(),i=t(r);E(i),c(),v(r),s(()=>x(i,T().chartStacked)),f(`change`,i,e=>T().chartStacked=e.currentTarget.checked),n(e,r)};h(ie,e=>{T().chartType!==`pie`&&e(j)});var N=o(ie,2),P=t(N);E(P),c(),v(N);var F=o(N,2),I=e=>{var r=Ne(),i=t(r);E(i),c(),v(r),s(()=>x(i,T().chartLogScale)),f(`change`,i,e=>T().chartLogScale=e.currentTarget.checked),n(e,r)};h(F,e=>{T().chartType!==`pie`&&e(I)});var ae=o(F,2),oe=e=>{var r=Pe(),i=t(r);E(i),c(),v(r),s(()=>x(i,T().chartTimeAxis)),f(`change`,i,e=>T().chartTimeAxis=e.currentTarget.checked),n(e,r)};h(ae,e=>{T().chartDimensionIsDate&&T().chartType!==`pie`&&e(oe)}),s(()=>{d!==(d=T().chartType)&&(u.value=(u.__value=T().chartType)??``,M(u,T().chartType)),g!==(g=T().chartDimensionId??``)&&(m.value=(m.__value=T().chartDimensionId??``)??``,M(m,T().chartDimensionId??``)),S!==(S=T().chartMeasureId??``)&&(b.value=(b.__value=T().chartMeasureId??``)??``,M(b,T().chartMeasureId??``)),ne!==(ne=T().chartReduce)&&(w.value=(w.__value=T().chartReduce)??``,M(w,T().chartReduce)),re!==(re=T().chartValueFormat)&&(O.value=(O.__value=T().chartValueFormat)??``,M(O,T().chartValueFormat)),x(P,T().chartDataLabels)}),f(`change`,u,e=>T().chartType=e.currentTarget.value),f(`change`,m,e=>T().chartDimensionId=e.currentTarget.value||null),f(`change`,b,e=>T().chartMeasureId=e.currentTarget.value||null),f(`change`,w,e=>T().chartReduce=e.currentTarget.value),f(`change`,O,e=>T().chartValueFormat=e.currentTarget.value),f(`change`,P,e=>T().chartDataLabels=e.currentTarget.checked),n(e,a)};h(Ht,e=>{i(F)||e(Ut)}),v(Vt),v(vt);var $=o(vt,2),Wt=t($),Gt=e=>{{let t=a(()=>i(P)?.zoom===!0),n=a(()=>i(P)?.brush===!0),r=a(()=>i(P)?.export===!0?!0:void 0);ne(e,{get spec(){return i(R)},get width(){return i(Ze)},get height(){return i(Qe)},onSelect:nt,interactive:!0,legend:!0,get dataLabels(){return T().chartDataLabels},get zoomable(){return i(t)},get brush(){return i(n)},get toolbar(){return i(r)}})}},Kt=e=>{var r=Ie(),a=t(r),o=e=>{n(e,w(`Charting needs at least one text column (to group by) and one numeric column (to measure).`))},s=e=>{n(e,w(`No data to chart.`))};h(a,e=>{!i(z).dims.length||!i(z).measures.length?e(o):e(s,-1)}),v(r),n(e,r)};h(Wt,e=>{i(R)&&(i(R).series.length||i(F))?e(Gt):e(Kt,-1)}),v($),y($,e=>g(rt,e),()=>i(rt));var qt=o($,2),Jt=e=>{var t=Le();f(`pointerdown`,t,Ge),n(e,t)};h(qt,e=>{i(V)&&!i(H)&&e(Jt)}),v(X),y(X,e=>g(ze,e),()=>i(ze)),s(()=>{ht=j(X,1,`sv-grid-chart-panel`,null,ht,{"is-right":i(I)===`right`&&!i(V),"is-bottom":i(I)===`bottom`&&!i(V),"is-floating":i(V),"is-maximized":i(V)&&i(H)}),te(X,i(Ke)),yt=j(Z,1,`sv-grid-chart-drawer-title`,null,yt,{"is-drag-handle":i(V)&&!i(H)}),S(Q,`aria-expanded`,i(W))}),f(`pointerdown`,Z,We),f(`click`,Q,()=>g(W,!i(W))),f(`click`,It,()=>T().chartPanelOpen=!1),b($,`clientWidth`,e=>g(qe,e)),b($,`clientHeight`,e=>g(Je,e)),m(3,X,()=>C,()=>({x:!i(V)&&i(I)===`right`?i(B):0,y:!i(V)&&i(I)===`bottom`?i(B):0,duration:180,easing:re})),n(e,X),l()}d([`pointerdown`,`click`,`change`]);export{z as default};
@@ -0,0 +1 @@
1
+ import{B as e,D as t,F as n,G as r,K as i,T as a,U as o,W as s,Y as c,f as l,k as u,n as d,q as f,r as p}from"./index-DsDgp9Xq.js";var m=u(`<div class="sv-grid-chart-view svelte-9kj36o"><!></div>`);function h(u,h){f(h,!0);let g=s(0),_=s(0),v=r(()=>{let e=p(h.data??[],{type:h.chart.type??`bar`,category:h.chart.category,value:h.chart.value,series:h.chart.series,reduce:h.chart.reduce,stacked:h.chart.stacked,stacked100:h.chart.stacked100,sort:h.chart.sort,topN:h.chart.topN,palette:h.chart.palette});return h.chart.valueFormat&&(e.valueFormat=h.chart.valueFormat),e});var y=m(),b=e(y),x=e=>{{let t=r(()=>h.chart.legend??!0),i=r(()=>h.chart.dataLabels??!1);d(e,{get spec(){return n(v)},get width(){return n(g)},get height(){return n(_)},get legend(){return n(t)},get dataLabels(){return n(i)}})}};a(b,e=>{n(g)>0&&n(_)>0&&e(x)}),c(y),l(y,`clientWidth`,e=>o(g,e)),l(y,`clientHeight`,e=>o(_,e)),t(u,y),i()}export{h as default};
@@ -0,0 +1 @@
1
+ .sv-grid-chart-view.svelte-9kj36o{box-sizing:border-box;width:100%;height:100%;min-height:0}