@svgrid/grid-wc 3.0.1 → 3.0.3

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 (104) hide show
  1. package/README.md +24 -1
  2. package/dist/GridMenus-DMkf7UMn.js +1086 -0
  3. package/dist/SvChartMenu-DkSyLWYH.js +413 -0
  4. package/dist/SvDateRangeInput-BrYTQEMM.js +197 -0
  5. package/dist/SvDateTimePicker-Czin1Ead.js +766 -0
  6. package/dist/SvField-Bmzp3ObZ.js +147 -0
  7. package/dist/SvGridCellEditor-DhXEIlyE.js +560 -0
  8. package/dist/SvGridChart-BMdCbrqb.js +3702 -0
  9. package/dist/SvGridChartBuilder-Chp_MD1B.js +1166 -0
  10. package/dist/SvGridChartPanel-BIV2O2Lp.js +1743 -0
  11. package/dist/SvGridChartView-DyhkumD-.js +45 -0
  12. package/dist/SvGridDropdown-BwPpGwLz.js +257 -0
  13. package/dist/angular/fesm2022/svgrid-grid-wc-angular.mjs +212 -7
  14. package/dist/angular/fesm2022/svgrid-grid-wc-angular.mjs.map +1 -1
  15. package/dist/angular/types/svgrid-grid-wc-angular.d.ts +92 -2
  16. package/dist/{cell-formatting-Eypm-id0.js → cell-formatting-CBfgahv1.js} +1 -1
  17. package/dist/chart/SvChartMenu-DslxOgPN.js +590 -0
  18. package/dist/chart/chart-export-BHGuh_kZ.js +127 -0
  19. package/dist/chart/chart-export-pdf-BjkkIEkE.js +104 -0
  20. package/dist/chart/chart-summary-6Xu2JoNC.js +137 -0
  21. package/dist/chart/chart-trend-7fxtAqEl.js +56 -0
  22. package/dist/chart/chart-validate-CD6ptiwg.js +180 -0
  23. package/dist/chart/client-BuB0wIgc.js +2757 -0
  24. package/dist/chart/sv-chart-element.d.ts +98 -0
  25. package/dist/chart/sv-chart-element.js +7282 -0
  26. package/dist/chart-D_LKA1fr.js +4398 -0
  27. package/dist/chart-export-pdf-9OCvhzr0.js +104 -0
  28. package/dist/chart-summary-v3Lhe8YD.js +137 -0
  29. package/dist/chart-validate-CD6ptiwg.js +180 -0
  30. package/dist/{shadow/client-DjwUji8D.js → client-DEF0GRjE.js} +1 -1
  31. package/dist/{shadow/column-resize-DvCRUrN3.js → column-resize-DUPgynvc.js} +3 -3
  32. package/dist/date-format-DMTwV8NC.js +1128 -0
  33. package/dist/{shadow/dismissable-DvhBKm3q.js → dismissable-CQ6XFXsk.js} +5 -1
  34. package/dist/{export-format-uGayRKWM.js → export-format-CAi1mp-1.js} +1 -1
  35. package/dist/focus-trap-Dbb2tJxb.js +65 -0
  36. package/dist/list-option-DrRyivWp.js +82 -0
  37. package/dist/react/chart.d.ts +99 -0
  38. package/dist/react/chart.js +49 -0
  39. package/dist/react/index.d.ts +72 -0
  40. package/dist/react/index.js +8 -1
  41. package/dist/row-resize-limG_N1z.js +111 -0
  42. package/dist/shadow/GridMenus-DMkf7UMn.js +1086 -0
  43. package/dist/shadow/SvChartMenu-DkSyLWYH.js +413 -0
  44. package/dist/shadow/SvDateRangeInput-BrYTQEMM.js +197 -0
  45. package/dist/shadow/SvDateTimePicker-Czin1Ead.js +766 -0
  46. package/dist/shadow/SvField-Bmzp3ObZ.js +147 -0
  47. package/dist/shadow/SvGridCellEditor-DhXEIlyE.js +560 -0
  48. package/dist/shadow/SvGridChart-BMdCbrqb.js +3702 -0
  49. package/dist/shadow/SvGridChartBuilder-Chp_MD1B.js +1166 -0
  50. package/dist/shadow/SvGridChartPanel-BIV2O2Lp.js +1743 -0
  51. package/dist/shadow/SvGridChartView-DyhkumD-.js +45 -0
  52. package/dist/shadow/SvGridDropdown-BwPpGwLz.js +257 -0
  53. package/dist/shadow/{cell-formatting-Eypm-id0.js → cell-formatting-CBfgahv1.js} +1 -1
  54. package/dist/shadow/chart-D_LKA1fr.js +4398 -0
  55. package/dist/shadow/chart-export-pdf-9OCvhzr0.js +104 -0
  56. package/dist/shadow/chart-summary-v3Lhe8YD.js +137 -0
  57. package/dist/shadow/chart-validate-CD6ptiwg.js +180 -0
  58. package/dist/{client-DjwUji8D.js → shadow/client-DEF0GRjE.js} +1 -1
  59. package/dist/{column-resize-DvCRUrN3.js → shadow/column-resize-DUPgynvc.js} +3 -3
  60. package/dist/shadow/date-format-DMTwV8NC.js +1128 -0
  61. package/dist/{dismissable-DvhBKm3q.js → shadow/dismissable-CQ6XFXsk.js} +5 -1
  62. package/dist/shadow/{export-format-DhdZREP1.js → export-format-mnW_rVBZ.js} +1 -1
  63. package/dist/shadow/focus-trap-Dbb2tJxb.js +65 -0
  64. package/dist/shadow/list-option-DrRyivWp.js +82 -0
  65. package/dist/shadow/row-resize-limG_N1z.js +111 -0
  66. package/dist/shadow/sv-grid-shadow-element.d.ts +41 -0
  67. package/dist/shadow/sv-grid-shadow-element.js +5905 -3986
  68. package/dist/shadow/{svelte-virtualizer.svelte-DZ9UcyfT.js → svelte-virtualizer.svelte-CnGhFGDc.js} +37 -34
  69. package/dist/shadow/validate-BqDthkNr.js +88 -0
  70. package/dist/sv-grid-element.d.ts +41 -0
  71. package/dist/sv-grid-element.js +5874 -3985
  72. package/dist/{svelte-virtualizer.svelte-DZ9UcyfT.js → svelte-virtualizer.svelte-CnGhFGDc.js} +37 -34
  73. package/dist/validate-BqDthkNr.js +88 -0
  74. package/dist/vue/chart.d.ts +64 -0
  75. package/dist/vue/chart.js +41 -0
  76. package/dist/vue/index.d.ts +26 -2
  77. package/dist/vue/index.js +1 -22
  78. package/package.json +18 -5
  79. package/dist/GridMenus-YwTw9Upd.js +0 -1123
  80. package/dist/SvDateRangeInput-CrxeppBV.js +0 -196
  81. package/dist/SvDateTimePicker-xAO-Pb4S.js +0 -765
  82. package/dist/SvField-CE345DyF.js +0 -146
  83. package/dist/SvGridCellEditor-D7SyHtff.js +0 -550
  84. package/dist/SvGridChart-CMaVmlso.js +0 -1477
  85. package/dist/SvGridChartPanel-Pc_IW0eA.js +0 -833
  86. package/dist/SvGridChartView-DLhhzmFy.js +0 -52
  87. package/dist/SvGridDropdown-DUncHqM-.js +0 -256
  88. package/dist/chart-GRBAgN1M.js +0 -1658
  89. package/dist/date-format-D_oQ5Yw0.js +0 -1127
  90. package/dist/row-resize-D-8s3cqT.js +0 -94
  91. package/dist/shadow/GridMenus-YwTw9Upd.js +0 -1123
  92. package/dist/shadow/SvDateRangeInput-CrxeppBV.js +0 -196
  93. package/dist/shadow/SvDateTimePicker-xAO-Pb4S.js +0 -765
  94. package/dist/shadow/SvField-CE345DyF.js +0 -146
  95. package/dist/shadow/SvGridCellEditor-D7SyHtff.js +0 -550
  96. package/dist/shadow/SvGridChart-CMaVmlso.js +0 -1477
  97. package/dist/shadow/SvGridChartPanel-Pc_IW0eA.js +0 -833
  98. package/dist/shadow/SvGridChartView-DLhhzmFy.js +0 -52
  99. package/dist/shadow/SvGridDropdown-DUncHqM-.js +0 -256
  100. package/dist/shadow/chart-GRBAgN1M.js +0 -1658
  101. package/dist/shadow/date-format-D_oQ5Yw0.js +0 -1127
  102. package/dist/shadow/row-resize-D-8s3cqT.js +0 -94
  103. package/dist/shadow/validate-CgmAtX1A.js +0 -75
  104. package/dist/validate-CgmAtX1A.js +0 -75
@@ -1,4 +1,4 @@
1
- import { R as e, X as t, Z as n } from "./client-DjwUji8D.js";
1
+ import { Q as e, R as t, Z as n } from "./client-DEF0GRjE.js";
2
2
  //#region ../grid/dist/sv-grid-scrollbar.js
3
3
  var r = 16, i = 280, a = 50, o = "http://www.w3.org/2000/svg";
4
4
  function s() {
@@ -343,44 +343,47 @@ function x(e, t) {
343
343
  if (e.totalSize !== t.totalSize || e.startIndex !== t.startIndex || e.endIndex !== t.endIndex || e.viewportHeight !== t.viewportHeight || e.items.length !== t.items.length) return !1;
344
344
  for (let n = 0; n < e.items.length; n += 1) {
345
345
  let r = e.items[n], i = t.items[n];
346
- if (r.index !== i.index || r.start !== i.start || r.size !== i.size) return !1;
346
+ if (r.index !== i.index || r.start !== i.start || r.size !== i.size || r.key !== i.key) return !1;
347
347
  }
348
348
  return !0;
349
349
  }
350
- function S(e, t, n) {
351
- let r = [];
352
- for (let i = e; i <= t; i += 1) {
353
- let t = i * n;
350
+ function S(e, t) {
351
+ return `virtual_slot_${e % t}`;
352
+ }
353
+ function C(e, t, n) {
354
+ let r = [], i = t - e + 1;
355
+ for (let a = e; a <= t; a += 1) {
356
+ let e = a * n;
354
357
  r.push({
355
- index: i,
356
- start: t,
358
+ index: a,
359
+ start: e,
357
360
  size: n,
358
- end: t + n,
359
- key: `virtual_slot_${i - e}`
361
+ end: e + n,
362
+ key: S(a, i)
360
363
  });
361
364
  }
362
365
  return r;
363
366
  }
364
- function C(e, t, n, r) {
367
+ function w(e, t, n, r) {
365
368
  if (e <= 0) return [];
366
- let i = Math.max(t, 1), a = Math.ceil(Math.max(n, 0) / i), o = Math.min(a + Math.max(r, 0), e - 1);
367
- return S(0, Math.max(o, 0), i);
369
+ let i = Math.max(t, 1), a = Math.ceil(Math.max(n, 0) / i);
370
+ return C(0, Math.max(Math.min(a + Math.max(r, 0), e - 1), 0), i);
368
371
  }
369
- function w(e, t, n) {
370
- let r = [];
371
- for (let i = e; i <= t; i += 1) {
372
- let t = n[i] ?? 0, a = n[i + 1] ?? t;
372
+ function T(e, t, n) {
373
+ let r = [], i = t - e + 1;
374
+ for (let a = e; a <= t; a += 1) {
375
+ let e = n[a] ?? 0, t = n[a + 1] ?? e;
373
376
  r.push({
374
- index: i,
375
- start: t,
376
- size: a - t,
377
- end: a,
378
- key: `virtual_slot_${i - e}`
377
+ index: a,
378
+ start: e,
379
+ size: t - e,
380
+ end: t,
381
+ key: S(a, i)
379
382
  });
380
383
  }
381
384
  return r;
382
385
  }
383
- function T(e, t) {
386
+ function E(e, t) {
384
387
  let n = Math.max(e.count, 0), r = Math.max(e.overscan ?? 6, 0), i = Math.max(e.viewportHeight, 0);
385
388
  if (typeof e.estimateSize == "function" && t) {
386
389
  let a = t[n] ?? 0, o = Math.max(a - i, 0), s = y(e.scrollOffset ?? 0, 0, o), c = 0, l = n;
@@ -395,7 +398,7 @@ function T(e, t) {
395
398
  }
396
399
  let f = Math.max(c - 1, u), p = n === 0 ? 0 : y(u - r, 0, n - 1), m = n === 0 ? -1 : y(f + r, 0, n - 1);
397
400
  return {
398
- items: m >= p ? w(p, m, t) : [],
401
+ items: m >= p ? T(p, m, t) : [],
399
402
  totalSize: a,
400
403
  startIndex: p,
401
404
  endIndex: m,
@@ -405,7 +408,7 @@ function T(e, t) {
405
408
  }
406
409
  let a = Math.max(typeof e.estimateSize == "number" ? e.estimateSize : 1, 1), o = n * a, s = Math.max(o - i, 0), c = y(e.scrollOffset ?? 0, 0, s), l = Math.floor(c / a), u = Math.ceil(i / a), d = Math.min(l + u, Math.max(n - 1, 0)), f = n === 0 ? 0 : y(l - r, 0, n - 1), p = n === 0 ? -1 : y(d + r, 0, n - 1);
407
410
  return {
408
- items: p >= f ? S(f, p, a) : [],
411
+ items: p >= f ? C(f, p, a) : [],
409
412
  totalSize: o,
410
413
  startIndex: f,
411
414
  endIndex: p,
@@ -413,7 +416,7 @@ function T(e, t) {
413
416
  viewportHeight: i
414
417
  };
415
418
  }
416
- function E(e) {
419
+ function D(e) {
417
420
  let t = e, n = null;
418
421
  function r() {
419
422
  if (typeof t.estimateSize != "function") return null;
@@ -421,19 +424,19 @@ function E(e) {
421
424
  if (n && n.fn === t.estimateSize && n.count === e) return n.offsets;
422
425
  let r = t.estimateSize, i = Array(e + 1);
423
426
  i[0] = 0;
424
- for (let t = 0; t < e; t += 1) i[t + 1] = i[t] + Math.max(r(t), 1);
427
+ for (let t = 0; t < e; t += 1) i[t + 1] = i[t] + Math.max(r(t), 0);
425
428
  return n = {
426
429
  fn: r,
427
430
  count: e,
428
431
  offsets: i
429
432
  }, i;
430
433
  }
431
- let i = T(t, r()), a = /* @__PURE__ */ new Set();
434
+ let i = E(t, r()), a = /* @__PURE__ */ new Set();
432
435
  function o() {
433
436
  a.forEach((e) => e());
434
437
  }
435
438
  function s() {
436
- let e = T(t, r());
439
+ let e = E(t, r());
437
440
  x(i, e) || (i = e, o());
438
441
  }
439
442
  return {
@@ -504,13 +507,13 @@ function E(e) {
504
507
  }
505
508
  //#endregion
506
509
  //#region ../grid/dist/virtualization/svelte-virtualizer.svelte.js
507
- function D(r) {
508
- let i = E(r), a = n(0);
510
+ function O(r) {
511
+ let i = D(r), a = e(0);
509
512
  return i.subscribe(() => {
510
- t(a, e(a) + 1);
513
+ n(a, t(a) + 1);
511
514
  }), {
512
515
  get version() {
513
- return e(a);
516
+ return t(a);
514
517
  },
515
518
  setOptions: i.setOptions,
516
519
  setScrollOffset: i.setScrollOffset,
@@ -524,4 +527,4 @@ function D(r) {
524
527
  };
525
528
  }
526
529
  //#endregion
527
- export { h as a, g as c, v as i, C as n, f as o, E as r, m as s, D as t };
530
+ export { h as a, g as c, v as i, w as n, f as o, D as r, m as s, O as t };
@@ -0,0 +1,88 @@
1
+ //#region ../grid/dist/server-block-cache.js
2
+ var e = Symbol.for("svgrid.rowPlaceholder");
3
+ Object.freeze({ [e]: "loading" }), Object.freeze({ [e]: "failed" });
4
+ function t(t) {
5
+ if (typeof t != "object" || !t) return null;
6
+ let n = t[e];
7
+ return n === "loading" || n === "failed" ? n : null;
8
+ }
9
+ //#endregion
10
+ //#region ../grid/dist/validate.js
11
+ var n = 10, r = "https://svgrid.com/docs/getting-started/3-data-and-columns/";
12
+ function i(e, t = []) {
13
+ for (let n of e) n.columns?.length ? i(n.columns, t) : t.push(n);
14
+ return t;
15
+ }
16
+ function a(e) {
17
+ let a = [], s = i(e.columns ?? []), c = [];
18
+ for (let r of e.data ?? []) {
19
+ if (c.length >= n) break;
20
+ t(r) || c.push(r);
21
+ }
22
+ if (c.length && !e.serverGroup) {
23
+ let e = /* @__PURE__ */ new Set();
24
+ for (let t of c) if (t && typeof t == "object") for (let n of Object.keys(t)) e.add(n);
25
+ for (let t of s) {
26
+ let n = t.field;
27
+ if (!n || t.fieldFn || e.has(n)) continue;
28
+ let i = o(n, [...e]);
29
+ a.push(`[svgrid] Column field "${n}" does not exist on your row data, so that column renders empty.${i ? ` Did you mean "${i}"?` : ""} Available keys: ${[...e].slice(0, 12).join(", ")}. See ${r}`);
30
+ }
31
+ }
32
+ let l = /* @__PURE__ */ new Map();
33
+ for (let e of s) {
34
+ let t = e.id ?? e.field;
35
+ t && l.set(t, (l.get(t) ?? 0) + 1);
36
+ }
37
+ for (let [e, t] of l) t > 1 && a.push(`[svgrid] ${t} columns share the id "${e}". Column state (sorting, filtering, pinning, width) is keyed by id, so they will act as one. Give each an explicit \`id\`. See ${r}`);
38
+ let u = e.pageable === void 0 && e.showPagination === void 0;
39
+ e.pageSize !== void 0 && u && a.push("[svgrid] `pageSize` is set but pagination was never turned on, so it has no effect and every row renders. Add `pageable` to switch the pager on."), !(e.sortable === !0 || e.features?.rowSortingFeature) && s.some((e) => e.sortable === !0) && a.push("[svgrid] A column sets `sortable: true`, but sorting is not enabled on the grid, so its header does nothing. Add `sortable` to <SvGrid> (it registers the sorting feature for you).");
40
+ let d = /* @__PURE__ */ new Set();
41
+ for (let e of s) {
42
+ let t = e.id ?? e.field;
43
+ t && d.add(t);
44
+ }
45
+ for (let t of e.groupBy ?? []) {
46
+ if (d.has(t)) continue;
47
+ let e = o(t, [...d]);
48
+ a.push(`[svgrid] \`groupBy\` refers to column "${t}", which does not exist, so that grouping level is ignored.${e ? ` Did you mean "${e}"?` : ""} Column ids: ${[...d].slice(0, 12).join(", ")}`);
49
+ }
50
+ let f = e.treeData?.column;
51
+ if (f && !d.has(f) && a.push(`[svgrid] \`treeData.column\` refers to column "${f}", which does not exist, so the expander falls back to the first visible column.`), c.length && e.treeData) {
52
+ let t = /* @__PURE__ */ new Set();
53
+ for (let e of c) if (e && typeof e == "object") for (let n of Object.keys(e)) t.add(n);
54
+ let n = e.treeData.parentField;
55
+ if (n && !t.has(n)) {
56
+ let e = o(n, [...t]);
57
+ a.push(`[svgrid] \`treeData.parentField\` is "${n}", which is not on your row data, so every row becomes a root and no hierarchy appears.${e ? ` Did you mean "${e}"?` : ""}`);
58
+ }
59
+ let r = e.treeData.idField;
60
+ r && !t.has(r) && a.push(`[svgrid] \`treeData.idField\` is "${r}", which is not on your row data, so parent lookups cannot match and the tree stays flat.`);
61
+ }
62
+ return e.gantt && e.treeData && a.push("[svgrid] `gantt` and `treeData` are both set. The Gantt builds its own work-breakdown tree from `gantt.parentField` and needs every descendant row, but `treeData` hides collapsed children from the view, so summary bars will under-report. Remove `treeData` and set `gantt.parentField` instead."), (e.initialColumnPinning?.left?.length ?? 0) + (e.initialColumnPinning?.right?.length ?? 0) > 0 && e.columnVirtualization !== !1 && a.push("[svgrid] `initialColumnPinning` is set while column virtualization is on (its default), so the pinned columns will not stick - the virtualizer recycles column nodes. Add `columnVirtualization={false}`."), e.externalPagination === !0 && e.rowCount === void 0 && a.push("[svgrid] `externalPagination` is on but `rowCount` is not set, so the pager cannot know how many pages exist. Pass the server total as `rowCount`."), e.externalSort === !0 && !e.onSortingChange && a.push("[svgrid] `externalSort` is on but there is no `onSortingChange` handler, so clicking a header changes nothing - the grid stopped sorting and nobody is listening. Add `onSortingChange` and re-fetch in your handler."), e.externalFilter === !0 && !e.onFiltersChange && a.push("[svgrid] `externalFilter` is on but there is no `onFiltersChange` handler, so filtering the grid changes nothing. Add `onFiltersChange` and re-fetch in your handler."), a;
63
+ }
64
+ function o(e, t) {
65
+ let n, r = Infinity;
66
+ for (let i of t) {
67
+ let t = s(e.toLowerCase(), i.toLowerCase());
68
+ t < r && (r = t, n = i);
69
+ }
70
+ let i = Math.min(3, Math.floor(e.length / 3) + 1);
71
+ return r <= i ? n : void 0;
72
+ }
73
+ function s(e, t) {
74
+ if (e === t) return 0;
75
+ let n = Array(t.length + 1);
76
+ for (let e = 0; e <= t.length; e++) n[e] = e;
77
+ for (let r = 1; r <= e.length; r++) {
78
+ let i = n[0];
79
+ n[0] = r;
80
+ for (let a = 1; a <= t.length; a++) {
81
+ let o = Math.min(n[a] + 1, n[a - 1] + 1, i + (e[r - 1] === t[a - 1] ? 0 : 1));
82
+ i = n[a], n[a] = o;
83
+ }
84
+ }
85
+ return n[t.length];
86
+ }
87
+ //#endregion
88
+ export { a as validateGridConfig };
@@ -0,0 +1,64 @@
1
+ import type { PropType } from 'vue';
2
+ import '@svgrid/grid-wc/chart';
3
+ export type SvChartProps = {
4
+ spec?: unknown;
5
+ legend?: string;
6
+ interactive?: boolean;
7
+ dataLabels?: boolean;
8
+ formatValue?: unknown;
9
+ tooltipFormat?: unknown;
10
+ tooltipMode?: "shared" | "single";
11
+ tooltipPosition?: "follow" | "top-left" | "top-right" | "bottom-left" | "bottom-right";
12
+ tooltipSticky?: boolean;
13
+ zoomable?: boolean;
14
+ zoom?: unknown;
15
+ rangePresets?: boolean;
16
+ syncGroup?: string;
17
+ contextMenu?: boolean;
18
+ animate?: boolean;
19
+ live?: boolean;
20
+ drillable?: boolean;
21
+ drillPath?: readonly unknown[];
22
+ selectable?: string;
23
+ selected?: readonly unknown[];
24
+ hoverHighlight?: boolean;
25
+ announce?: boolean;
26
+ describe?: boolean;
27
+ localeText?: unknown;
28
+ crosshairLabels?: boolean;
29
+ brush?: boolean;
30
+ brushHeight?: number;
31
+ toolbar?: boolean;
32
+ width?: number;
33
+ height?: number;
34
+ autosize?: boolean;
35
+ annotatable?: boolean;
36
+ drawable?: boolean;
37
+ };
38
+ /**
39
+ * SvChart as a Vue component. Props are forwarded as DOM PROPERTIES through
40
+ * the `.`-prefixed vnode key, Vue's own way of forcing a property assignment.
41
+ */
42
+ export declare const SvChart: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
43
+ [k: string]: {
44
+ type: PropType<unknown>;
45
+ required: boolean;
46
+ };
47
+ }>, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
48
+ [key: string]: any;
49
+ }>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("selectionchange" | "select" | "drill" | "zoom" | "hover" | "annotate" | "annotationremove" | "drawingschange")[], "selectionchange" | "select" | "drill" | "zoom" | "hover" | "annotate" | "annotationremove" | "drawingschange", import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
50
+ [k: string]: {
51
+ type: PropType<unknown>;
52
+ required: boolean;
53
+ };
54
+ }>> & Readonly<{
55
+ onSelectionchange?: ((...args: any[]) => any) | undefined;
56
+ onSelect?: ((...args: any[]) => any) | undefined;
57
+ onDrill?: ((...args: any[]) => any) | undefined;
58
+ onZoom?: ((...args: any[]) => any) | undefined;
59
+ onHover?: ((...args: any[]) => any) | undefined;
60
+ onAnnotate?: ((...args: any[]) => any) | undefined;
61
+ onAnnotationremove?: ((...args: any[]) => any) | undefined;
62
+ onDrawingschange?: ((...args: any[]) => any) | undefined;
63
+ }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
64
+ export default SvChart;
@@ -0,0 +1,41 @@
1
+ import { defineComponent as e, h as t, onMounted as n, ref as r } from "vue";
2
+ import "@svgrid/grid-wc/chart";
3
+ //#region src/vue/chart.ts
4
+ var i = /* @__PURE__ */ "spec.legend.interactive.dataLabels.formatValue.tooltipFormat.tooltipMode.tooltipPosition.tooltipSticky.zoomable.zoom.rangePresets.syncGroup.contextMenu.animate.live.drillable.drillPath.selectable.selected.hoverHighlight.announce.describe.localeText.crosshairLabels.brush.brushHeight.toolbar.width.height.autosize.annotatable.drawable".split("."), a = [
5
+ "select",
6
+ "drill",
7
+ "zoom",
8
+ "selectionchange",
9
+ "hover",
10
+ "annotate",
11
+ "annotationremove",
12
+ "drawingschange"
13
+ ], o = e({
14
+ name: "SvChart",
15
+ props: { ...Object.fromEntries(i.map((e) => [e, {
16
+ type: null,
17
+ required: !1
18
+ }])) },
19
+ emits: [...a],
20
+ setup(e, { emit: o, expose: s }) {
21
+ let c = r(null);
22
+ return n(() => {
23
+ let e = c.value;
24
+ if (e) for (let t of a) e.addEventListener(t, (e) => o(t, e.detail));
25
+ }), s({ get element() {
26
+ return c.value;
27
+ } }), () => {
28
+ let n = {
29
+ ref: c,
30
+ style: { display: "block" }
31
+ };
32
+ for (let t of i) {
33
+ let r = e[t];
34
+ r !== void 0 && (n["." + t] = r);
35
+ }
36
+ return t("sv-chart", n);
37
+ };
38
+ }
39
+ });
40
+ //#endregion
41
+ export { o as SvChart, o as default };
@@ -4,6 +4,7 @@ export type SvGridProps = {
4
4
  columns?: readonly unknown[];
5
5
  board?: unknown;
6
6
  scheduler?: unknown;
7
+ gantt?: unknown;
7
8
  chart?: unknown;
8
9
  pivot?: unknown;
9
10
  pivotMode?: boolean;
@@ -61,8 +62,13 @@ export type SvGridProps = {
61
62
  moveCells?: boolean;
62
63
  enableRowHover?: boolean;
63
64
  copyHeadersToClipboard?: boolean;
65
+ processCellForFill?: unknown;
64
66
  processCellForClipboard?: unknown;
67
+ includeCollapsedRows?: unknown;
68
+ clipboardHtml?: unknown;
69
+ processCellFromClipboard?: unknown;
65
70
  enableInlineEditing?: boolean;
71
+ editOnSecondClick?: boolean;
66
72
  fullRowEditing?: boolean;
67
73
  enableRowSummaries?: boolean;
68
74
  summary?: boolean;
@@ -86,10 +92,21 @@ export type SvGridProps = {
86
92
  editableComments?: boolean;
87
93
  conditionalFormats?: readonly unknown[];
88
94
  conditionalStatScope?: "filtered" | "visible" | "all";
95
+ rowPlaceholder?: unknown;
96
+ rowModel?: unknown;
97
+ pivotResultColumns?: readonly unknown[];
98
+ rowSelectionModel?: unknown;
89
99
  isDetailRow?: unknown;
100
+ detailRowHeight?: number;
101
+ showDetailToggle?: boolean;
102
+ isDetailOpen?: unknown;
103
+ hasDetail?: unknown;
90
104
  serverGroup?: unknown;
91
105
  serverFilterValues?: unknown;
92
106
  pinnedTopRows?: readonly unknown[];
107
+ frozenRows?: number;
108
+ stickyGroupRows?: boolean;
109
+ mergedCells?: readonly unknown[];
93
110
  pinnedBottomRows?: readonly unknown[];
94
111
  enableColumnReorder?: boolean;
95
112
  columnOrder?: readonly unknown[];
@@ -106,7 +123,7 @@ export type SvGridProps = {
106
123
  * Props are declared loosely (`null` type) and forwarded as DOM PROPERTIES
107
124
  * through the `.`-prefixed vnode key, which is Vue's own way of forcing a
108
125
  * property assignment - the same thing `:columns.prop` does in a template,
109
- * applied to all 98 of them so a consumer never has to think about it.
126
+ * applied to all 115 of them so a consumer never has to think about it.
110
127
  */
111
128
  export declare const SvGrid: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
112
129
  shadow: {
@@ -115,7 +132,7 @@ export declare const SvGrid: import("vue").DefineComponent<import("vue").Extract
115
132
  };
116
133
  }>, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
117
134
  [key: string]: any;
118
- }>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("pivotmodechange" | "expandedchange" | "paginationchange" | "apiready" | "rowselectionchange" | "cellselectionchange" | "sortingchange" | "advancedfilterchange" | "filterschange" | "notechange" | "cellvaluechange" | "activecellchange" | "cellclick" | "rowclick" | "celldoubleclick" | "rowdoubleclick" | "scrollbottomreached" | "columnorderchange" | "rowdragend" | "selectionchange")[], "pivotmodechange" | "expandedchange" | "paginationchange" | "apiready" | "rowselectionchange" | "cellselectionchange" | "sortingchange" | "advancedfilterchange" | "filterschange" | "notechange" | "cellvaluechange" | "activecellchange" | "cellclick" | "rowclick" | "celldoubleclick" | "rowdoubleclick" | "scrollbottomreached" | "columnorderchange" | "rowdragend" | "selectionchange", import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
135
+ }>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("pivotmodechange" | "expandedchange" | "paginationchange" | "columnresize" | "rowresize" | "pasteclipboard" | "apiready" | "rowselectionchange" | "cellselectionchange" | "sortingchange" | "advancedfilterchange" | "filterschange" | "notechange" | "cellvaluechange" | "activecellchange" | "cellclick" | "rowclick" | "celldoubleclick" | "rowdoubleclick" | "scrollbottomreached" | "visiblerangechange" | "retryrow" | "detailtoggle" | "columnorderchange" | "rowdragend" | "rowdrop" | "selectionchange")[], "pivotmodechange" | "expandedchange" | "paginationchange" | "columnresize" | "rowresize" | "pasteclipboard" | "apiready" | "rowselectionchange" | "cellselectionchange" | "sortingchange" | "advancedfilterchange" | "filterschange" | "notechange" | "cellvaluechange" | "activecellchange" | "cellclick" | "rowclick" | "celldoubleclick" | "rowdoubleclick" | "scrollbottomreached" | "visiblerangechange" | "retryrow" | "detailtoggle" | "columnorderchange" | "rowdragend" | "rowdrop" | "selectionchange", import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
119
136
  shadow: {
120
137
  type: BooleanConstructor;
121
138
  default: boolean;
@@ -125,6 +142,9 @@ export declare const SvGrid: import("vue").DefineComponent<import("vue").Extract
125
142
  onPivotmodechange?: ((...args: any[]) => any) | undefined;
126
143
  onExpandedchange?: ((...args: any[]) => any) | undefined;
127
144
  onPaginationchange?: ((...args: any[]) => any) | undefined;
145
+ onColumnresize?: ((...args: any[]) => any) | undefined;
146
+ onRowresize?: ((...args: any[]) => any) | undefined;
147
+ onPasteclipboard?: ((...args: any[]) => any) | undefined;
128
148
  onApiready?: ((...args: any[]) => any) | undefined;
129
149
  onRowselectionchange?: ((...args: any[]) => any) | undefined;
130
150
  onCellselectionchange?: ((...args: any[]) => any) | undefined;
@@ -139,8 +159,12 @@ export declare const SvGrid: import("vue").DefineComponent<import("vue").Extract
139
159
  onCelldoubleclick?: ((...args: any[]) => any) | undefined;
140
160
  onRowdoubleclick?: ((...args: any[]) => any) | undefined;
141
161
  onScrollbottomreached?: ((...args: any[]) => any) | undefined;
162
+ onVisiblerangechange?: ((...args: any[]) => any) | undefined;
163
+ onRetryrow?: ((...args: any[]) => any) | undefined;
164
+ onDetailtoggle?: ((...args: any[]) => any) | undefined;
142
165
  onColumnorderchange?: ((...args: any[]) => any) | undefined;
143
166
  onRowdragend?: ((...args: any[]) => any) | undefined;
167
+ onRowdrop?: ((...args: any[]) => any) | undefined;
144
168
  }>, {
145
169
  shadow: boolean;
146
170
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
package/dist/vue/index.js CHANGED
@@ -1,28 +1,7 @@
1
1
  import { defineComponent as e, h as t, onMounted as n, ref as r, watchEffect as i } from "vue";
2
2
  import "@svgrid/grid-wc";
3
3
  //#region src/vue/index.ts
4
- var a = /* @__PURE__ */ "data.columns.board.scheduler.chart.pivot.pivotMode.contextMenu.selectionBar.features.sortable.filterable.editable.treeData.groupable.groupBy.expanded.groupFooters.grandTotalRow.groupDisplayMode.autoGroupColumnHeader.autoGroupColumnWidth.pageable.loading.loadingOverlay.loadingSkeletonRows.error.emptyMessage.localization.showGlobalFilter.showColumnFilters.filterMode.showGroupingControls.showRowSelection.showPagination.pageSize.pageSizeOptions.paginationPosition.externalPagination.rowCount.pageIndex.virtualization.rowHeight.autoRowHeight.rowResize.headerHeight.overscan.containerHeight.columnVirtualization.columnOverscan.columnWidth.initialColumnPinning.fitColumns.columnResize.responsive.showFilterMenu.showFilterRow.enableCellSelection.moveCells.enableRowHover.copyHeadersToClipboard.processCellForClipboard.enableInlineEditing.fullRowEditing.enableRowSummaries.summary.statusBar.toolPanel.charting.columnMenuTabs.toolPanelDefaultOpen.toolPanelDefaultTab.selectionMode.showRowNumbers.zebraRows.rowNumberWidth.externalSort.initialSorting.initialAdvancedFilter.externalFilter.getRowId.rowClass.notes.editableComments.conditionalFormats.conditionalStatScope.isDetailRow.serverGroup.serverFilterValues.pinnedTopRows.pinnedBottomRows.enableColumnReorder.columnOrder.inferColumnTypes.rowDragManaged.rowDragGroup.alignedGridGroup.filterLocale".split("."), o = [
5
- "pivotmodechange",
6
- "expandedchange",
7
- "paginationchange",
8
- "apiready",
9
- "rowselectionchange",
10
- "cellselectionchange",
11
- "sortingchange",
12
- "advancedfilterchange",
13
- "filterschange",
14
- "notechange",
15
- "cellvaluechange",
16
- "activecellchange",
17
- "cellclick",
18
- "rowclick",
19
- "celldoubleclick",
20
- "rowdoubleclick",
21
- "scrollbottomreached",
22
- "columnorderchange",
23
- "rowdragend",
24
- "selectionchange"
25
- ], s = e({
4
+ var a = /* @__PURE__ */ "data.columns.board.scheduler.gantt.chart.pivot.pivotMode.contextMenu.selectionBar.features.sortable.filterable.editable.treeData.groupable.groupBy.expanded.groupFooters.grandTotalRow.groupDisplayMode.autoGroupColumnHeader.autoGroupColumnWidth.pageable.loading.loadingOverlay.loadingSkeletonRows.error.emptyMessage.localization.showGlobalFilter.showColumnFilters.filterMode.showGroupingControls.showRowSelection.showPagination.pageSize.pageSizeOptions.paginationPosition.externalPagination.rowCount.pageIndex.virtualization.rowHeight.autoRowHeight.rowResize.headerHeight.overscan.containerHeight.columnVirtualization.columnOverscan.columnWidth.initialColumnPinning.fitColumns.columnResize.responsive.showFilterMenu.showFilterRow.enableCellSelection.moveCells.enableRowHover.copyHeadersToClipboard.processCellForFill.processCellForClipboard.includeCollapsedRows.clipboardHtml.processCellFromClipboard.enableInlineEditing.editOnSecondClick.fullRowEditing.enableRowSummaries.summary.statusBar.toolPanel.charting.columnMenuTabs.toolPanelDefaultOpen.toolPanelDefaultTab.selectionMode.showRowNumbers.zebraRows.rowNumberWidth.externalSort.initialSorting.initialAdvancedFilter.externalFilter.getRowId.rowClass.notes.editableComments.conditionalFormats.conditionalStatScope.rowPlaceholder.rowModel.pivotResultColumns.rowSelectionModel.isDetailRow.detailRowHeight.showDetailToggle.isDetailOpen.hasDetail.serverGroup.serverFilterValues.pinnedTopRows.frozenRows.stickyGroupRows.mergedCells.pinnedBottomRows.enableColumnReorder.columnOrder.inferColumnTypes.rowDragManaged.rowDragGroup.alignedGridGroup.filterLocale".split("."), o = /* @__PURE__ */ "pivotmodechange.expandedchange.paginationchange.columnresize.rowresize.pasteclipboard.apiready.rowselectionchange.cellselectionchange.sortingchange.advancedfilterchange.filterschange.notechange.cellvaluechange.activecellchange.cellclick.rowclick.celldoubleclick.rowdoubleclick.scrollbottomreached.visiblerangechange.retryrow.detailtoggle.columnorderchange.rowdragend.rowdrop.selectionchange".split("."), s = e({
26
5
  name: "SvGrid",
27
6
  props: {
28
7
  ...Object.fromEntries(a.map((e) => [e, {
package/package.json CHANGED
@@ -4,8 +4,8 @@
4
4
  "type": "commercial",
5
5
  "url": "https://svgrid.com/pricing"
6
6
  },
7
- "version": "3.0.1",
8
- "description": "SvGrid as a framework-agnostic web component (<sv-grid> custom element, plus <sv-grid-shadow> for an open shadow root). Drop into React, Vue, Angular, or plain HTML - no build step required.",
7
+ "version": "3.0.3",
8
+ "description": "SvGrid as a framework-agnostic web component (<sv-grid> custom element, plus <sv-grid-shadow> for an open shadow root and <sv-chart> for the standalone chart). Drop into React, Vue, Angular, or plain HTML - no build step required.",
9
9
  "type": "module",
10
10
  "license": "MIT",
11
11
  "author": "jQWidgets Ltd",
@@ -63,12 +63,25 @@
63
63
  "types": "./dist/vue/index.d.ts",
64
64
  "import": "./dist/vue/index.js"
65
65
  },
66
+ "./chart": {
67
+ "types": "./dist/chart/sv-chart-element.d.ts",
68
+ "import": "./dist/chart/sv-chart-element.js"
69
+ },
70
+ "./react/chart": {
71
+ "types": "./dist/react/chart.d.ts",
72
+ "import": "./dist/react/chart.js"
73
+ },
74
+ "./vue/chart": {
75
+ "types": "./dist/vue/chart.d.ts",
76
+ "import": "./dist/vue/chart.js"
77
+ },
66
78
  "./angular": {
67
79
  "types": "./dist/angular/types/svgrid-grid-wc-angular.d.ts",
68
80
  "import": "./dist/angular/fesm2022/svgrid-grid-wc-angular.mjs"
69
81
  },
70
82
  "./dist/sv-grid-element.js": "./dist/sv-grid-element.js",
71
- "./dist/shadow/sv-grid-shadow-element.js": "./dist/shadow/sv-grid-shadow-element.js"
83
+ "./dist/shadow/sv-grid-shadow-element.js": "./dist/shadow/sv-grid-shadow-element.js",
84
+ "./dist/chart/sv-chart-element.js": "./dist/chart/sv-chart-element.js"
72
85
  },
73
86
  "unpkg": "./dist/sv-grid-element.js",
74
87
  "jsdelivr": "./dist/sv-grid-element.js",
@@ -99,8 +112,8 @@
99
112
  "vite": "^8.2.1",
100
113
  "vue": "^3.5.42",
101
114
  "vue-tsc": "^3.3.11",
102
- "@svgrid/enterprise": "^3.0.1",
103
- "@svgrid/grid": "^3.0.3"
115
+ "@svgrid/enterprise": "^3.0.3",
116
+ "@svgrid/grid": "^3.0.5"
104
117
  },
105
118
  "types": "./dist/sv-grid-element.d.ts",
106
119
  "peerDependencies": {