@toolbox-web/grid 1.12.1 → 1.14.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (98) hide show
  1. package/all.js +1171 -943
  2. package/all.js.map +1 -1
  3. package/index.js +735 -737
  4. package/index.js.map +1 -1
  5. package/lib/core/grid.d.ts.map +1 -1
  6. package/lib/core/internal/row-animation.d.ts.map +1 -1
  7. package/lib/core/internal/sanitize.d.ts.map +1 -1
  8. package/lib/core/internal/validate-config.d.ts.map +1 -1
  9. package/lib/core/plugin/types.d.ts +1 -1
  10. package/lib/core/plugin/types.d.ts.map +1 -1
  11. package/lib/core/types.d.ts +48 -1
  12. package/lib/core/types.d.ts.map +1 -1
  13. package/lib/plugins/clipboard/ClipboardPlugin.d.ts +69 -8
  14. package/lib/plugins/clipboard/ClipboardPlugin.d.ts.map +1 -1
  15. package/lib/plugins/clipboard/index.d.ts +1 -1
  16. package/lib/plugins/clipboard/index.d.ts.map +1 -1
  17. package/lib/plugins/clipboard/index.js +257 -192
  18. package/lib/plugins/clipboard/index.js.map +1 -1
  19. package/lib/plugins/clipboard/types.d.ts +31 -0
  20. package/lib/plugins/clipboard/types.d.ts.map +1 -1
  21. package/lib/plugins/column-virtualization/index.js.map +1 -1
  22. package/lib/plugins/context-menu/ContextMenuPlugin.d.ts +8 -0
  23. package/lib/plugins/context-menu/ContextMenuPlugin.d.ts.map +1 -1
  24. package/lib/plugins/context-menu/index.js +75 -60
  25. package/lib/plugins/context-menu/index.js.map +1 -1
  26. package/lib/plugins/context-menu/types.d.ts +7 -0
  27. package/lib/plugins/context-menu/types.d.ts.map +1 -1
  28. package/lib/plugins/editing/EditingPlugin.d.ts.map +1 -1
  29. package/lib/plugins/editing/editors.d.ts +2 -2
  30. package/lib/plugins/editing/editors.d.ts.map +1 -1
  31. package/lib/plugins/editing/index.d.ts +1 -1
  32. package/lib/plugins/editing/index.d.ts.map +1 -1
  33. package/lib/plugins/editing/index.js +393 -337
  34. package/lib/plugins/editing/index.js.map +1 -1
  35. package/lib/plugins/editing/types.d.ts +50 -23
  36. package/lib/plugins/editing/types.d.ts.map +1 -1
  37. package/lib/plugins/export/ExportPlugin.d.ts.map +1 -1
  38. package/lib/plugins/export/index.js +75 -66
  39. package/lib/plugins/export/index.js.map +1 -1
  40. package/lib/plugins/filtering/index.d.ts +1 -1
  41. package/lib/plugins/filtering/index.d.ts.map +1 -1
  42. package/lib/plugins/filtering/index.js +9 -9
  43. package/lib/plugins/filtering/index.js.map +1 -1
  44. package/lib/plugins/grouping-columns/index.js.map +1 -1
  45. package/lib/plugins/grouping-rows/index.js.map +1 -1
  46. package/lib/plugins/master-detail/index.js +57 -56
  47. package/lib/plugins/master-detail/index.js.map +1 -1
  48. package/lib/plugins/multi-sort/index.js.map +1 -1
  49. package/lib/plugins/pinned-columns/index.js.map +1 -1
  50. package/lib/plugins/pinned-rows/PinnedRowsPlugin.d.ts +1 -0
  51. package/lib/plugins/pinned-rows/PinnedRowsPlugin.d.ts.map +1 -1
  52. package/lib/plugins/pinned-rows/index.js +118 -87
  53. package/lib/plugins/pinned-rows/index.js.map +1 -1
  54. package/lib/plugins/pinned-rows/pinned-rows.d.ts +2 -1
  55. package/lib/plugins/pinned-rows/pinned-rows.d.ts.map +1 -1
  56. package/lib/plugins/pinned-rows/types.d.ts +23 -2
  57. package/lib/plugins/pinned-rows/types.d.ts.map +1 -1
  58. package/lib/plugins/pivot/index.js.map +1 -1
  59. package/lib/plugins/print/index.js.map +1 -1
  60. package/lib/plugins/reorder/index.js.map +1 -1
  61. package/lib/plugins/responsive/index.js +40 -39
  62. package/lib/plugins/responsive/index.js.map +1 -1
  63. package/lib/plugins/row-reorder/index.js.map +1 -1
  64. package/lib/plugins/selection/SelectionPlugin.d.ts +51 -0
  65. package/lib/plugins/selection/SelectionPlugin.d.ts.map +1 -1
  66. package/lib/plugins/selection/index.js +347 -145
  67. package/lib/plugins/selection/index.js.map +1 -1
  68. package/lib/plugins/selection/types.d.ts +18 -0
  69. package/lib/plugins/selection/types.d.ts.map +1 -1
  70. package/lib/plugins/server-side/index.js.map +1 -1
  71. package/lib/plugins/shared/data-collection.d.ts +33 -0
  72. package/lib/plugins/shared/data-collection.d.ts.map +1 -0
  73. package/lib/plugins/tree/index.js.map +1 -1
  74. package/lib/plugins/undo-redo/index.js.map +1 -1
  75. package/lib/plugins/visibility/index.js.map +1 -1
  76. package/package.json +1 -1
  77. package/public.d.ts +2 -0
  78. package/public.d.ts.map +1 -1
  79. package/themes/dg-theme-bootstrap.css +192 -8
  80. package/themes/dg-theme-material.css +243 -0
  81. package/umd/grid.all.umd.js +42 -42
  82. package/umd/grid.all.umd.js.map +1 -1
  83. package/umd/grid.umd.js +19 -19
  84. package/umd/grid.umd.js.map +1 -1
  85. package/umd/plugins/clipboard.umd.js +5 -5
  86. package/umd/plugins/clipboard.umd.js.map +1 -1
  87. package/umd/plugins/context-menu.umd.js +1 -1
  88. package/umd/plugins/context-menu.umd.js.map +1 -1
  89. package/umd/plugins/editing.umd.js +1 -1
  90. package/umd/plugins/editing.umd.js.map +1 -1
  91. package/umd/plugins/export.umd.js +7 -7
  92. package/umd/plugins/export.umd.js.map +1 -1
  93. package/umd/plugins/filtering.umd.js +1 -1
  94. package/umd/plugins/filtering.umd.js.map +1 -1
  95. package/umd/plugins/pinned-rows.umd.js +1 -1
  96. package/umd/plugins/pinned-rows.umd.js.map +1 -1
  97. package/umd/plugins/selection.umd.js +2 -2
  98. package/umd/plugins/selection.umd.js.map +1 -1
@@ -1,4 +1,4 @@
1
- import { ColumnConfig } from '../../core/types';
1
+ import { ColumnEditorContext } from '../../core/types';
2
2
  /**
3
3
  * Event detail for cell value commit.
4
4
  *
@@ -108,6 +108,46 @@ export interface ChangedRowsResetDetail<TRow = unknown> {
108
108
  /** IDs of changed rows (likely empty). */
109
109
  ids: string[];
110
110
  }
111
+ /**
112
+ * Detail payload for the `edit-open` event.
113
+ *
114
+ * Fired when row editing begins (user clicks/double-clicks a row to edit).
115
+ * Only fires in `mode: 'row'` — never in `mode: 'grid'` where all rows
116
+ * are perpetually editable.
117
+ *
118
+ * @category Events
119
+ */
120
+ export interface EditOpenDetail<TRow = unknown> {
121
+ /** Index of the row entering edit mode. */
122
+ rowIndex: number;
123
+ /** Stable row identifier (from getRowId). */
124
+ rowId: string;
125
+ /** Row object reference. */
126
+ row: TRow;
127
+ }
128
+ /**
129
+ * Detail payload for the `edit-close` event.
130
+ *
131
+ * Fired when row editing ends, whether committed or reverted.
132
+ * Only fires in `mode: 'row'` — never in `mode: 'grid'` where all rows
133
+ * are perpetually editable.
134
+ *
135
+ * Unlike `row-commit` (which only fires on commit), `edit-close` fires for
136
+ * both commit and cancel/revert, making it suitable for cleanup tasks like
137
+ * closing overlays or resetting state.
138
+ *
139
+ * @category Events
140
+ */
141
+ export interface EditCloseDetail<TRow = unknown> {
142
+ /** Index of the row that left edit mode. */
143
+ rowIndex: number;
144
+ /** Stable row identifier (from getRowId). */
145
+ rowId: string;
146
+ /** Row object reference (current state). */
147
+ row: TRow;
148
+ /** Whether the edit was reverted (true) or committed (false). */
149
+ reverted: boolean;
150
+ }
111
151
  /**
112
152
  * When EditingPlugin is imported, these properties become available on column config.
113
153
  * This augments the core BaseColumnConfig interface.
@@ -205,6 +245,10 @@ declare module '../../core/types' {
205
245
  'row-commit': RowCommitDetail<TRow>;
206
246
  /** Fired when changed rows tracking is reset. */
207
247
  'changed-rows-reset': ChangedRowsResetDetail<TRow>;
248
+ /** Fired when a row enters edit mode (row mode only, not grid mode). */
249
+ 'edit-open': EditOpenDetail<TRow>;
250
+ /** Fired when a row leaves edit mode, whether committed or reverted (row mode only). */
251
+ 'edit-close': EditCloseDetail<TRow>;
208
252
  }
209
253
  }
210
254
  /**
@@ -273,29 +317,12 @@ export interface EditingConfig {
273
317
  }
274
318
  /**
275
319
  * Context passed to editor factory functions.
320
+ *
321
+ * Extends the public {@link ColumnEditorContext} with no additional properties.
322
+ * Kept as a separate type for backward compatibility with existing plugin code
323
+ * that imports `EditorContext` from the editing plugin.
276
324
  */
277
- export interface EditorContext<T = any, V = unknown> {
278
- /** The row data object */
279
- row: T;
280
- /** Stable row identifier (from getRowId) */
281
- rowId: string;
282
- /** Current cell value */
283
- value: V;
284
- /** Field name being edited */
285
- field: string;
286
- /** Column configuration */
287
- column: ColumnConfig<T>;
288
- /** Call to commit the new value */
289
- commit: (newValue: V) => void;
290
- /** Call to cancel editing */
291
- cancel: () => void;
292
- /**
293
- * Update other fields in this row.
294
- * Useful for editors that affect multiple fields (e.g., address lookup).
295
- * Changes will be committed with source: 'cascade'.
296
- */
297
- updateRow: (changes: Partial<T>) => void;
298
- }
325
+ export type EditorContext<T = any, V = unknown> = ColumnEditorContext<T, V>;
299
326
  /**
300
327
  * Configuration parameters for the built-in number editor.
301
328
  *
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../libs/grid/src/lib/plugins/editing/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../libs/grid/src/lib/plugins/editing/types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ExportPlugin.d.ts","sourceRoot":"","sources":["../../../../../../libs/grid/src/lib/plugins/export/ExportPlugin.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAI/D,OAAO,KAAK,EAAwB,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAO9F;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4EG;AACH,qBAAa,YAAa,SAAQ,cAAc,CAAC,YAAY,CAAC;IAC5D,gBAAgB;IAChB,QAAQ,CAAC,IAAI,YAAY;IAEzB,gBAAgB;IAChB,cAAuB,aAAa,IAAI,OAAO,CAAC,YAAY,CAAC,CAO5D;IAGD,OAAO,CAAC,eAAe,CAAS;IAChC,OAAO,CAAC,cAAc,CAA0D;IAKhF,OAAO,CAAC,aAAa;IAyFrB,OAAO,CAAC,iBAAiB;IAWzB;;;OAGG;IACH,SAAS,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,GAAG,IAAI;IAI/C;;;OAGG;IACH,WAAW,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,GAAG,IAAI;IAIjD;;;OAGG;IACH,UAAU,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,GAAG,IAAI;IAIhD;;;OAGG;IACH,WAAW,IAAI,OAAO;IAItB;;;OAGG;IACH,aAAa,IAAI;QAAE,MAAM,EAAE,YAAY,CAAC;QAAC,SAAS,EAAE,IAAI,CAAA;KAAE,GAAG,IAAI;CAIlE"}
1
+ {"version":3,"file":"ExportPlugin.d.ts","sourceRoot":"","sources":["../../../../../../libs/grid/src/lib/plugins/export/ExportPlugin.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAK/D,OAAO,KAAK,EAAwB,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAO9F;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4EG;AACH,qBAAa,YAAa,SAAQ,cAAc,CAAC,YAAY,CAAC;IAC5D,gBAAgB;IAChB,QAAQ,CAAC,IAAI,YAAY;IAEzB,gBAAgB;IAChB,cAAuB,aAAa,IAAI,OAAO,CAAC,YAAY,CAAC,CAO5D;IAGD,OAAO,CAAC,eAAe,CAAS;IAChC,OAAO,CAAC,cAAc,CAA0D;IAKhF,OAAO,CAAC,aAAa;IAoFrB,OAAO,CAAC,iBAAiB;IAWzB;;;OAGG;IACH,SAAS,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,GAAG,IAAI;IAI/C;;;OAGG;IACH,WAAW,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,GAAG,IAAI;IAIjD;;;OAGG;IACH,UAAU,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,GAAG,IAAI;IAIhD;;;OAGG;IACH,WAAW,IAAI,OAAO;IAItB;;;OAGG;IACH,aAAa,IAAI;QAAE,MAAM,EAAE,YAAY,CAAC;QAAC,SAAS,EAAE,IAAI,CAAA;KAAE,GAAG,IAAI;CAIlE"}
@@ -1,4 +1,4 @@
1
- const m = '<svg viewBox="0 0 16 16" width="12" height="12"><path fill="currentColor" d="M6 10.5a.5.5 0 0 1 .5-.5h3a.5.5 0 0 1 0 1h-3a.5.5 0 0 1-.5-.5zm-2-3a.5.5 0 0 1 .5-.5h7a.5.5 0 0 1 0 1h-7a.5.5 0 0 1-.5-.5zm-2-3a.5.5 0 0 1 .5-.5h11a.5.5 0 0 1 0 1h-11a.5.5 0 0 1-.5-.5z"/></svg>', w = {
1
+ const m = '<svg viewBox="0 0 16 16" width="12" height="12"><path fill="currentColor" d="M6 10.5a.5.5 0 0 1 .5-.5h3a.5.5 0 0 1 0 1h-3a.5.5 0 0 1-.5-.5zm-2-3a.5.5 0 0 1 .5-.5h7a.5.5 0 0 1 0 1h-7a.5.5 0 0 1-.5-.5zm-2-3a.5.5 0 0 1 .5-.5h11a.5.5 0 0 1 0 1h-11a.5.5 0 0 1-.5-.5z"/></svg>', x = {
2
2
  expand: "▶",
3
3
  collapse: "▼",
4
4
  sortAsc: "▲",
@@ -11,7 +11,7 @@ const m = '<svg viewBox="0 0 16 16" width="12" height="12"><path fill="currentCo
11
11
  filterActive: m,
12
12
  print: "🖨️"
13
13
  };
14
- class x {
14
+ class E {
15
15
  /**
16
16
  * Plugin dependencies - declare other plugins this one requires.
17
17
  *
@@ -301,7 +301,7 @@ class x {
301
301
  */
302
302
  get gridIcons() {
303
303
  const e = this.grid?.gridConfig?.icons ?? {};
304
- return { ...w, ...e };
304
+ return { ...x, ...e };
305
305
  }
306
306
  // #region Animation Helpers
307
307
  /**
@@ -377,45 +377,56 @@ class x {
377
377
  }
378
378
  // #endregion
379
379
  }
380
- function b(o, e = !0) {
381
- if (o == null) return "";
382
- if (o instanceof Date) return o.toISOString();
383
- if (typeof o == "object") return JSON.stringify(o);
384
- const t = String(o);
380
+ function v(s, e, t = !0) {
381
+ let n = s;
382
+ if (t && (n = n.filter((o) => !o.hidden && !o.field.startsWith("__") && o.meta?.utility !== !0)), e?.length) {
383
+ const o = new Set(e);
384
+ n = n.filter((c) => o.has(c.field));
385
+ }
386
+ return n;
387
+ }
388
+ function b(s, e) {
389
+ return e?.length ? [...e].sort((t, n) => t - n).map((t) => s[t]).filter((t) => t != null) : s;
390
+ }
391
+ function C(s, e = !0) {
392
+ if (s == null) return "";
393
+ if (s instanceof Date) return s.toISOString();
394
+ if (typeof s == "object") return JSON.stringify(s);
395
+ const t = String(s);
385
396
  return e && (t.includes(",") || t.includes('"') || t.includes(`
386
397
  `) || t.includes("\r")) ? `"${t.replace(/"/g, '""')}"` : t;
387
398
  }
388
- function E(o, e, t, n = {}) {
389
- const c = n.delimiter ?? ",", l = n.newline ?? `
399
+ function S(s, e, t, n = {}) {
400
+ const o = n.delimiter ?? ",", c = n.newline ?? `
390
401
  `, r = [], i = n.bom ? "\uFEFF" : "";
391
402
  if (t.includeHeaders !== !1) {
392
- const s = e.map((a) => {
393
- const d = a.header || a.field, u = t.processHeader ? t.processHeader(d, a.field) : d;
394
- return b(u);
403
+ const l = e.map((u) => {
404
+ const a = u.header || u.field, d = t.processHeader ? t.processHeader(a, u.field) : a;
405
+ return C(d);
395
406
  });
396
- r.push(s.join(c));
407
+ r.push(l.join(o));
397
408
  }
398
- for (const s of o) {
399
- const a = e.map((d) => {
400
- let u = s[d.field];
401
- return t.processCell && (u = t.processCell(u, d.field, s)), b(u);
409
+ for (const l of s) {
410
+ const u = e.map((a) => {
411
+ let d = l[a.field];
412
+ return t.processCell && (d = t.processCell(d, a.field, l)), C(d);
402
413
  });
403
- r.push(a.join(c));
414
+ r.push(u.join(o));
404
415
  }
405
- return i + r.join(l);
416
+ return i + r.join(c);
406
417
  }
407
- function h(o, e) {
408
- const t = URL.createObjectURL(o), n = document.createElement("a");
418
+ function h(s, e) {
419
+ const t = URL.createObjectURL(s), n = document.createElement("a");
409
420
  n.href = t, n.download = e, n.style.display = "none", document.body.appendChild(n), n.click(), document.body.removeChild(n), URL.revokeObjectURL(t);
410
421
  }
411
- function S(o, e) {
412
- const t = new Blob([o], { type: "text/csv;charset=utf-8;" });
422
+ function y(s, e) {
423
+ const t = new Blob([s], { type: "text/csv;charset=utf-8;" });
413
424
  h(t, e);
414
425
  }
415
- function C(o) {
416
- return o.replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;").replace(/"/g, "&quot;").replace(/'/g, "&apos;");
426
+ function w(s) {
427
+ return s.replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;").replace(/"/g, "&quot;").replace(/'/g, "&apos;");
417
428
  }
418
- function v(o, e, t) {
429
+ function R(s, e, t) {
419
430
  let n = `<?xml version="1.0" encoding="UTF-8"?>
420
431
  <?mso-application progid="Excel.Sheet"?>
421
432
  <Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet"
@@ -425,20 +436,20 @@ function v(o, e, t) {
425
436
  if (t.includeHeaders !== !1) {
426
437
  n += `
427
438
  <Row>`;
428
- for (const c of e) {
429
- const l = c.header || c.field, r = t.processHeader ? t.processHeader(l, c.field) : l;
430
- n += `<Cell><Data ss:Type="String">${C(r)}</Data></Cell>`;
439
+ for (const o of e) {
440
+ const c = o.header || o.field, r = t.processHeader ? t.processHeader(c, o.field) : c;
441
+ n += `<Cell><Data ss:Type="String">${w(r)}</Data></Cell>`;
431
442
  }
432
443
  n += "</Row>";
433
444
  }
434
- for (const c of o) {
445
+ for (const o of s) {
435
446
  n += `
436
447
  <Row>`;
437
- for (const l of e) {
438
- let r = c[l.field];
439
- t.processCell && (r = t.processCell(r, l.field, c));
440
- let i = "String", s = "";
441
- r == null ? s = "" : typeof r == "number" && !isNaN(r) ? (i = "Number", s = String(r)) : r instanceof Date ? (i = "DateTime", s = r.toISOString()) : s = C(String(r)), n += `<Cell><Data ss:Type="${i}">${s}</Data></Cell>`;
448
+ for (const c of e) {
449
+ let r = o[c.field];
450
+ t.processCell && (r = t.processCell(r, c.field, o));
451
+ let i = "String", l = "";
452
+ r == null ? l = "" : typeof r == "number" && !isNaN(r) ? (i = "Number", l = String(r)) : r instanceof Date ? (i = "DateTime", l = r.toISOString()) : l = w(String(r)), n += `<Cell><Data ss:Type="${i}">${l}</Data></Cell>`;
442
453
  }
443
454
  n += "</Row>";
444
455
  }
@@ -447,13 +458,13 @@ function v(o, e, t) {
447
458
  </Worksheet>
448
459
  </Workbook>`, n;
449
460
  }
450
- function y(o, e) {
451
- const t = e.endsWith(".xls") ? e : `${e}.xls`, n = new Blob([o], {
461
+ function I(s, e) {
462
+ const t = e.endsWith(".xls") ? e : `${e}.xls`, n = new Blob([s], {
452
463
  type: "application/vnd.ms-excel;charset=utf-8;"
453
464
  });
454
465
  h(n, t);
455
466
  }
456
- class R extends x {
467
+ class _ extends E {
457
468
  /** @internal */
458
469
  name = "export";
459
470
  /** @internal */
@@ -471,7 +482,7 @@ class R extends x {
471
482
  // #endregion
472
483
  // #region Private Methods
473
484
  performExport(e, t) {
474
- const n = this.config, c = {
485
+ const n = this.config, o = {
475
486
  format: e,
476
487
  fileName: t?.fileName ?? n.fileName ?? "export",
477
488
  includeHeaders: t?.includeHeaders ?? n.includeHeaders,
@@ -479,43 +490,41 @@ class R extends x {
479
490
  processHeader: t?.processHeader,
480
491
  columns: t?.columns,
481
492
  rowIndices: t?.rowIndices
482
- };
483
- let l = [...this.columns];
484
- if (n.onlyVisible && (l = l.filter((s) => !s.hidden && !s.field.startsWith("__"))), t?.columns) {
485
- const s = new Set(t.columns);
486
- l = l.filter((a) => s.has(a.field));
487
- }
488
- let r = [...this.rows];
489
- if (n.onlySelected) {
490
- const s = this.getSelectionState();
491
- s?.selected?.size && (r = [...s.selected].sort((d, u) => d - u).map((d) => this.rows[d]).filter(Boolean));
492
- }
493
- t?.rowIndices && (r = t.rowIndices.map((s) => this.rows[s]).filter(Boolean)), this.isExportingFlag = !0;
494
- let i = c.fileName;
493
+ }, c = v(this.columns, t?.columns, n.onlyVisible);
494
+ let r;
495
+ if (t?.rowIndices)
496
+ r = b(this.rows, t.rowIndices);
497
+ else if (n.onlySelected) {
498
+ const l = this.getSelectionState();
499
+ l?.selected?.size ? r = b(this.rows, [...l.selected]) : r = [...this.rows];
500
+ } else
501
+ r = [...this.rows];
502
+ this.isExportingFlag = !0;
503
+ let i = o.fileName;
495
504
  try {
496
505
  switch (e) {
497
506
  case "csv": {
498
- const s = E(r, l, c, { bom: !0 });
499
- i = i.endsWith(".csv") ? i : `${i}.csv`, S(s, i);
507
+ const l = S(r, c, o, { bom: !0 });
508
+ i = i.endsWith(".csv") ? i : `${i}.csv`, y(l, i);
500
509
  break;
501
510
  }
502
511
  case "excel": {
503
- const s = v(r, l, c);
504
- i = i.endsWith(".xls") ? i : `${i}.xls`, y(s, i);
512
+ const l = R(r, c, o);
513
+ i = i.endsWith(".xls") ? i : `${i}.xls`, I(l, i);
505
514
  break;
506
515
  }
507
516
  case "json": {
508
- const s = r.map((u) => {
517
+ const l = r.map((d) => {
509
518
  const p = {};
510
- for (const f of l) {
511
- let g = u[f.field];
512
- c.processCell && (g = c.processCell(g, f.field, u)), p[f.field] = g;
519
+ for (const f of c) {
520
+ let g = d[f.field];
521
+ o.processCell && (g = o.processCell(g, f.field, d)), p[f.field] = g;
513
522
  }
514
523
  return p;
515
- }), a = JSON.stringify(s, null, 2);
524
+ }), u = JSON.stringify(l, null, 2);
516
525
  i = i.endsWith(".json") ? i : `${i}.json`;
517
- const d = new Blob([a], { type: "application/json" });
518
- h(d, i);
526
+ const a = new Blob([u], { type: "application/json" });
527
+ h(a, i);
519
528
  break;
520
529
  }
521
530
  }
@@ -523,7 +532,7 @@ class R extends x {
523
532
  format: e,
524
533
  fileName: i,
525
534
  rowCount: r.length,
526
- columnCount: l.length
535
+ columnCount: c.length
527
536
  });
528
537
  } finally {
529
538
  this.isExportingFlag = !1;
@@ -576,6 +585,6 @@ class R extends x {
576
585
  // #endregion
577
586
  }
578
587
  export {
579
- R as ExportPlugin
588
+ _ as ExportPlugin
580
589
  };
581
590
  //# sourceMappingURL=index.js.map