@toolbox-web/grid 1.9.0 → 1.9.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (65) hide show
  1. package/all.js +712 -692
  2. package/all.js.map +1 -1
  3. package/index.js +321 -300
  4. package/index.js.map +1 -1
  5. package/lib/core/grid.d.ts +9 -0
  6. package/lib/core/grid.d.ts.map +1 -1
  7. package/lib/core/plugin/base-plugin.d.ts +11 -0
  8. package/lib/core/plugin/base-plugin.d.ts.map +1 -1
  9. package/lib/plugins/clipboard/index.js +9 -0
  10. package/lib/plugins/clipboard/index.js.map +1 -1
  11. package/lib/plugins/column-virtualization/ColumnVirtualizationPlugin.d.ts +3 -0
  12. package/lib/plugins/column-virtualization/ColumnVirtualizationPlugin.d.ts.map +1 -1
  13. package/lib/plugins/column-virtualization/index.js +90 -57
  14. package/lib/plugins/column-virtualization/index.js.map +1 -1
  15. package/lib/plugins/context-menu/index.js +9 -0
  16. package/lib/plugins/context-menu/index.js.map +1 -1
  17. package/lib/plugins/editing/index.js +9 -0
  18. package/lib/plugins/editing/index.js.map +1 -1
  19. package/lib/plugins/export/index.js +38 -29
  20. package/lib/plugins/export/index.js.map +1 -1
  21. package/lib/plugins/filtering/index.js +14 -5
  22. package/lib/plugins/filtering/index.js.map +1 -1
  23. package/lib/plugins/grouping-columns/index.js +9 -0
  24. package/lib/plugins/grouping-columns/index.js.map +1 -1
  25. package/lib/plugins/grouping-rows/index.js +63 -54
  26. package/lib/plugins/grouping-rows/index.js.map +1 -1
  27. package/lib/plugins/master-detail/index.js +25 -16
  28. package/lib/plugins/master-detail/index.js.map +1 -1
  29. package/lib/plugins/multi-sort/index.js +13 -4
  30. package/lib/plugins/multi-sort/index.js.map +1 -1
  31. package/lib/plugins/pinned-columns/index.js +13 -4
  32. package/lib/plugins/pinned-columns/index.js.map +1 -1
  33. package/lib/plugins/pinned-rows/index.js +9 -0
  34. package/lib/plugins/pinned-rows/index.js.map +1 -1
  35. package/lib/plugins/pivot/index.js +13 -4
  36. package/lib/plugins/pivot/index.js.map +1 -1
  37. package/lib/plugins/print/index.js +9 -0
  38. package/lib/plugins/print/index.js.map +1 -1
  39. package/lib/plugins/reorder/index.js +13 -4
  40. package/lib/plugins/reorder/index.js.map +1 -1
  41. package/lib/plugins/responsive/index.js +42 -33
  42. package/lib/plugins/responsive/index.js.map +1 -1
  43. package/lib/plugins/row-reorder/index.js +10 -1
  44. package/lib/plugins/row-reorder/index.js.map +1 -1
  45. package/lib/plugins/selection/index.js +10 -1
  46. package/lib/plugins/selection/index.js.map +1 -1
  47. package/lib/plugins/server-side/index.js +29 -20
  48. package/lib/plugins/server-side/index.js.map +1 -1
  49. package/lib/plugins/tree/index.js +20 -11
  50. package/lib/plugins/tree/index.js.map +1 -1
  51. package/lib/plugins/undo-redo/index.js +15 -6
  52. package/lib/plugins/undo-redo/index.js.map +1 -1
  53. package/lib/plugins/visibility/index.js +9 -0
  54. package/lib/plugins/visibility/index.js.map +1 -1
  55. package/package.json +1 -1
  56. package/umd/grid.all.umd.js +14 -14
  57. package/umd/grid.all.umd.js.map +1 -1
  58. package/umd/grid.umd.js +14 -14
  59. package/umd/grid.umd.js.map +1 -1
  60. package/umd/plugins/column-virtualization.umd.js +1 -1
  61. package/umd/plugins/column-virtualization.umd.js.map +1 -1
  62. package/umd/plugins/row-reorder.umd.js +1 -1
  63. package/umd/plugins/row-reorder.umd.js.map +1 -1
  64. package/umd/plugins/selection.umd.js +1 -1
  65. package/umd/plugins/selection.umd.js.map +1 -1
@@ -208,10 +208,19 @@ class u {
208
208
  }
209
209
  /**
210
210
  * Request a re-render of the grid.
211
+ * Uses ROWS phase - does NOT trigger processColumns hooks.
211
212
  */
212
213
  requestRender() {
213
214
  this.grid?.requestRender?.();
214
215
  }
216
+ /**
217
+ * Request a columns re-render of the grid.
218
+ * Uses COLUMNS phase - triggers processColumns hooks.
219
+ * Use this when your plugin needs to reprocess column configuration.
220
+ */
221
+ requestColumnsRender() {
222
+ this.grid?.requestColumnsRender?.();
223
+ }
215
224
  /**
216
225
  * Request a re-render and restore focus styling afterward.
217
226
  * Use this when a plugin action (like expand/collapse) triggers a render
@@ -368,35 +377,35 @@ class u {
368
377
  }
369
378
  // #endregion
370
379
  }
371
- function l(i, e) {
372
- return Math.floor(i / e);
380
+ function l(s, e) {
381
+ return Math.floor(s / e);
373
382
  }
374
- function h(i, e) {
383
+ function h(s, e) {
375
384
  return {
376
- start: i * e,
377
- end: (i + 1) * e
385
+ start: s * e,
386
+ end: (s + 1) * e
378
387
  };
379
388
  }
380
- function g(i, e, t) {
381
- const o = l(i, t), r = l(e - 1, t), s = [];
389
+ function g(s, e, t) {
390
+ const o = l(s, t), r = l(e - 1, t), i = [];
382
391
  for (let n = o; n <= r; n++)
383
- s.push(n);
384
- return s;
392
+ i.push(n);
393
+ return i;
385
394
  }
386
- async function a(i, e, t, o) {
395
+ async function a(s, e, t, o) {
387
396
  const r = h(e, t);
388
- return i.getRows({
397
+ return s.getRows({
389
398
  startRow: r.start,
390
399
  endRow: r.end,
391
400
  sortModel: o.sortModel,
392
401
  filterModel: o.filterModel
393
402
  });
394
403
  }
395
- function f(i, e, t) {
396
- const o = l(i, e), r = t.get(o);
404
+ function f(s, e, t) {
405
+ const o = l(s, e), r = t.get(o);
397
406
  if (!r) return;
398
- const s = i % e;
399
- return r[s];
407
+ const i = s % e;
408
+ return r[i];
400
409
  }
401
410
  const R = 100;
402
411
  class m extends u {
@@ -431,14 +440,14 @@ class m extends u {
431
440
  loadRequiredBlocks() {
432
441
  if (!this.dataSource) return;
433
442
  const e = this.grid, t = this.config.cacheBlockSize ?? 100, o = { startRow: e._virtualization.start, endRow: e._virtualization.end }, r = g(o.startRow, o.endRow, t);
434
- for (const s of r)
435
- if (!(this.loadedBlocks.has(s) || this.loadingBlocks.has(s))) {
443
+ for (const i of r)
444
+ if (!(this.loadedBlocks.has(i) || this.loadingBlocks.has(i))) {
436
445
  if (this.loadingBlocks.size >= (this.config.maxConcurrentRequests ?? 2))
437
446
  break;
438
- this.loadingBlocks.add(s), a(this.dataSource, s, t, {}).then((n) => {
439
- this.loadedBlocks.set(s, n.rows), this.totalRowCount = n.totalRowCount, this.loadingBlocks.delete(s), this.requestRender(), this.loadRequiredBlocks();
447
+ this.loadingBlocks.add(i), a(this.dataSource, i, t, {}).then((n) => {
448
+ this.loadedBlocks.set(i, n.rows), this.totalRowCount = n.totalRowCount, this.loadingBlocks.delete(i), this.requestRender(), this.loadRequiredBlocks();
440
449
  }).catch(() => {
441
- this.loadingBlocks.delete(s);
450
+ this.loadingBlocks.delete(i);
442
451
  });
443
452
  }
444
453
  }