@revolist/revogrid 4.21.2 → 4.21.4

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 (77) hide show
  1. package/dist/cjs/{cell-renderer-EyG5RkCf.js → cell-renderer-BLcxDHzP.js} +2 -2
  2. package/dist/cjs/{column.drag.plugin-DuMzh_Cm.js → column.drag.plugin-DfTAC5Qc.js} +4 -4
  3. package/dist/cjs/{column.service-BNgb1GSr.js → column.service-BmT2HOnj.js} +1 -1
  4. package/dist/cjs/{dimension.helpers-DLLC6uO6.js → dimension.helpers-BOxHtX5T.js} +13 -3
  5. package/dist/cjs/{edit.utils-BWpSdGmj.js → edit.utils-DnvQVP4H.js} +1 -1
  6. package/dist/cjs/{header-cell-renderer-BReLylCk.js → header-cell-renderer-7DgGThjq.js} +1 -1
  7. package/dist/cjs/index.cjs.js +9 -8
  8. package/dist/cjs/loader.cjs.js +1 -1
  9. package/dist/cjs/revo-grid.cjs.entry.js +45 -12
  10. package/dist/cjs/revo-grid.cjs.js +1 -1
  11. package/dist/cjs/revogr-attribution_7.cjs.entry.js +5 -5
  12. package/dist/cjs/revogr-clipboard_3.cjs.entry.js +5 -3
  13. package/dist/cjs/revogr-data_4.cjs.entry.js +8 -7
  14. package/dist/cjs/{text-editor-tI8PMl7r.js → text-editor-B9ibcdrl.js} +2 -2
  15. package/dist/cjs/{throttle-Rub9czPz.js → throttle-DkuCcmB0.js} +1 -1
  16. package/dist/cjs/{viewport.store-Bkhj0ZmO.js → viewport.store-DG-4bWqg.js} +1 -1
  17. package/dist/collection/components/clipboard/revogr-clipboard.js +6 -4
  18. package/dist/collection/components/revoGrid/revo-grid.js +64 -3
  19. package/dist/collection/components/revoGrid/viewport.scrolling.service.js +4 -3
  20. package/dist/collection/components/revoGrid/viewport.service.js +2 -0
  21. package/dist/collection/components/rowHeaders/revogr-row-headers.js +1 -1
  22. package/dist/collection/components/scroll/revogr-viewport-scroll.js +25 -4
  23. package/dist/collection/components/scrollable/revogr-scroll-virtual.js +1 -1
  24. package/dist/collection/services/data.provider.js +18 -2
  25. package/dist/collection/store/dataSource/data.store.js +14 -4
  26. package/dist/collection/types/events.js +1 -0
  27. package/dist/{revo-grid/cell-renderer-BDmepZJO.js → esm/cell-renderer-BNeaYjy6.js} +2 -2
  28. package/dist/esm/{column.drag.plugin-B98azH0j.js → column.drag.plugin-C9lvlTfl.js} +4 -4
  29. package/dist/esm/{column.service-BghHOZP8.js → column.service-8pPNyrKn.js} +1 -1
  30. package/dist/{revo-grid/dimension.helpers-C2F2Cuh8.js → esm/dimension.helpers-B-5OBYes.js} +13 -3
  31. package/dist/esm/{edit.utils-Cdhf8P7e.js → edit.utils-CQjRmx5n.js} +1 -1
  32. package/dist/{revo-grid/header-cell-renderer-DO0jvvbw.js → esm/header-cell-renderer-WkTbrmr7.js} +1 -1
  33. package/dist/esm/index.js +10 -9
  34. package/dist/esm/loader.js +1 -1
  35. package/dist/esm/revo-grid.entry.js +45 -12
  36. package/dist/esm/revo-grid.js +1 -1
  37. package/dist/esm/revogr-attribution_7.entry.js +5 -5
  38. package/dist/esm/revogr-clipboard_3.entry.js +5 -3
  39. package/dist/esm/revogr-data_4.entry.js +8 -7
  40. package/dist/{revo-grid/text-editor-BylR9oxh.js → esm/text-editor-DZSx2pWr.js} +2 -2
  41. package/dist/esm/{throttle-BEccmfmt.js → throttle-CYM0qC3v.js} +1 -1
  42. package/dist/{revo-grid/viewport.store-C3ajQgRm.js → esm/viewport.store-BGWR3XfI.js} +1 -1
  43. package/dist/{esm/cell-renderer-BDmepZJO.js → revo-grid/cell-renderer-BNeaYjy6.js} +2 -2
  44. package/dist/revo-grid/{column.drag.plugin-B98azH0j.js → column.drag.plugin-C9lvlTfl.js} +4 -4
  45. package/dist/revo-grid/{column.service-BghHOZP8.js → column.service-8pPNyrKn.js} +1 -1
  46. package/dist/{esm/dimension.helpers-C2F2Cuh8.js → revo-grid/dimension.helpers-B-5OBYes.js} +13 -3
  47. package/dist/revo-grid/{edit.utils-Cdhf8P7e.js → edit.utils-CQjRmx5n.js} +1 -1
  48. package/dist/{esm/header-cell-renderer-DO0jvvbw.js → revo-grid/header-cell-renderer-WkTbrmr7.js} +1 -1
  49. package/dist/revo-grid/index.esm.js +10 -9
  50. package/dist/revo-grid/revo-grid.entry.js +45 -12
  51. package/dist/revo-grid/revo-grid.esm.js +1 -1
  52. package/dist/revo-grid/revogr-attribution_7.entry.js +5 -5
  53. package/dist/revo-grid/revogr-clipboard_3.entry.js +5 -3
  54. package/dist/revo-grid/revogr-data_4.entry.js +8 -7
  55. package/dist/{esm/text-editor-BylR9oxh.js → revo-grid/text-editor-DZSx2pWr.js} +2 -2
  56. package/dist/revo-grid/{throttle-BEccmfmt.js → throttle-CYM0qC3v.js} +1 -1
  57. package/dist/{esm/viewport.store-C3ajQgRm.js → revo-grid/viewport.store-BGWR3XfI.js} +1 -1
  58. package/dist/types/components/clipboard/revogr-clipboard.d.ts +2 -0
  59. package/dist/types/components/revoGrid/revo-grid.d.ts +11 -0
  60. package/dist/types/components/revoGrid/viewport.scrolling.service.d.ts +3 -3
  61. package/dist/types/components/revoGrid/viewport.service.d.ts +1 -0
  62. package/dist/types/components/scroll/revogr-viewport-scroll.d.ts +1 -0
  63. package/dist/types/components.d.ts +33 -0
  64. package/dist/types/services/data.provider.d.ts +15 -1
  65. package/dist/types/store/dataSource/data.store.d.ts +3 -1
  66. package/dist/types/types/events.d.ts +1 -1
  67. package/dist/types/types/interfaces.d.ts +2 -2
  68. package/dist/types/types/viewport.interfaces.d.ts +7 -2
  69. package/hydrate/index.js +60 -12
  70. package/hydrate/index.mjs +60 -12
  71. package/package.json +1 -1
  72. package/readme.md +2 -0
  73. package/standalone/data.store.js +1 -1
  74. package/standalone/index.js +1 -1
  75. package/standalone/revo-grid.js +1 -1
  76. package/standalone/revogr-clipboard2.js +1 -1
  77. package/standalone/revogr-viewport-scroll2.js +1 -1
@@ -70,6 +70,10 @@ export class RevoGridComponent {
70
70
  this.readonly = false;
71
71
  /** When true, columns are resizable. */
72
72
  this.resize = false;
73
+ /**
74
+ * Prevents horizontal scroll state from being mirrored across viewport sections.
75
+ */
76
+ this.noHorizontalScrollTransfer = false;
73
77
  /** When true cell focus appear. */
74
78
  this.canFocus = true;
75
79
  /** When true enable clipboard. */
@@ -605,7 +609,13 @@ export class RevoGridComponent {
605
609
  if (!this.dimensionProvider || !this.columnProvider) {
606
610
  return;
607
611
  }
608
- const columnGather = getColumns(newVal, 0, this.columnTypes);
612
+ const beforeGatherEvent = this.beforecolumnsgather.emit({
613
+ columns: [...newVal],
614
+ });
615
+ if (beforeGatherEvent.defaultPrevented) {
616
+ return;
617
+ }
618
+ const columnGather = getColumns(beforeGatherEvent.detail.columns, 0, this.columnTypes);
609
619
  const beforeSetEvent = this.beforecolumnsset.emit(columnGather);
610
620
  if (beforeSetEvent.defaultPrevented) {
611
621
  return;
@@ -952,6 +962,7 @@ export class RevoGridComponent {
952
962
  scrollingService: this.scrollingService,
953
963
  orderService: this.orderService,
954
964
  selectionStoreConnector: this.selectionStoreConnector,
965
+ noHorizontalScrollTransfer: this.noHorizontalScrollTransfer,
955
966
  disableVirtualX: this.disableVirtualX,
956
967
  disableVirtualY: this.disableVirtualY,
957
968
  resize: c => this.aftercolumnresize.emit(c),
@@ -992,7 +1003,9 @@ export class RevoGridComponent {
992
1003
  dataViews.push(dataView);
993
1004
  });
994
1005
  // Add viewport scroll in the end
995
- viewPortHtml.push(h("revogr-viewport-scroll", Object.assign({}, view.prop, { ref: el => this.scrollingService.registerElement(el, `${view.prop.key}`), onScrollviewport: e => this.scrollingService.proxyScroll(e.detail, `${view.prop.key}`), onScrollviewportsilent: e => this.scrollingService.scrollSilentService(e.detail, `${view.prop.key}`) }), dataViews));
1006
+ viewPortHtml.push(h("revogr-viewport-scroll", Object.assign({}, view.prop, { ref: el => this.scrollingService.registerElement(el, `${view.prop.key}`), onScrollviewport: e => {
1007
+ this.scrollingService.proxyScroll(e.detail, `${view.prop.key}`, this.noHorizontalScrollTransfer && e.detail.dimension === 'rgCol');
1008
+ }, onScrollviewportsilent: e => this.scrollingService.scrollSilentService(e.detail, `${view.prop.key}`) }), dataViews));
996
1009
  }
997
1010
  viewportSections.push(viewPortHtml);
998
1011
  // #endregion
@@ -1173,6 +1186,26 @@ export class RevoGridComponent {
1173
1186
  "attribute": "resize",
1174
1187
  "defaultValue": "false"
1175
1188
  },
1189
+ "noHorizontalScrollTransfer": {
1190
+ "type": "boolean",
1191
+ "mutable": false,
1192
+ "complexType": {
1193
+ "original": "boolean",
1194
+ "resolved": "boolean",
1195
+ "references": {}
1196
+ },
1197
+ "required": false,
1198
+ "optional": false,
1199
+ "docs": {
1200
+ "tags": [],
1201
+ "text": "Prevents horizontal scroll state from being mirrored across viewport sections."
1202
+ },
1203
+ "getter": false,
1204
+ "setter": false,
1205
+ "reflect": false,
1206
+ "attribute": "no-horizontal-scroll-transfer",
1207
+ "defaultValue": "false"
1208
+ },
1176
1209
  "canFocus": {
1177
1210
  "type": "boolean",
1178
1211
  "mutable": false,
@@ -2344,6 +2377,34 @@ export class RevoGridComponent {
2344
2377
  }
2345
2378
  }
2346
2379
  }
2380
+ }, {
2381
+ "method": "beforecolumnsgather",
2382
+ "name": "beforecolumnsgather",
2383
+ "bubbles": true,
2384
+ "cancelable": true,
2385
+ "composed": true,
2386
+ "docs": {
2387
+ "tags": [],
2388
+ "text": "Emitted before user column definitions are gathered into the internal column collection.\nListeners can replace `detail.columns` to rewrite the raw column set before RevoGrid normalizes it."
2389
+ },
2390
+ "complexType": {
2391
+ "original": "{\n columns: (ColumnGrouping | ColumnRegular)[];\n }",
2392
+ "resolved": "{ columns: (ColumnRegular | ColumnGrouping<any>)[]; }",
2393
+ "references": {
2394
+ "ColumnGrouping": {
2395
+ "location": "import",
2396
+ "path": "@type",
2397
+ "id": "src/types/index.ts::ColumnGrouping",
2398
+ "referenceLocation": "ColumnGrouping"
2399
+ },
2400
+ "ColumnRegular": {
2401
+ "location": "import",
2402
+ "path": "@type",
2403
+ "id": "src/types/index.ts::ColumnRegular",
2404
+ "referenceLocation": "ColumnRegular"
2405
+ }
2406
+ }
2407
+ }
2347
2408
  }, {
2348
2409
  "method": "beforecolumnsset",
2349
2410
  "name": "beforecolumnsset",
@@ -2527,7 +2588,7 @@ export class RevoGridComponent {
2527
2588
  },
2528
2589
  "complexType": {
2529
2590
  "original": "ViewPortScrollEvent",
2530
- "resolved": "{ dimension: DimensionType; coordinate: number; delta?: number | undefined; outside?: boolean | undefined; }",
2591
+ "resolved": "D",
2531
2592
  "references": {
2532
2593
  "ViewPortScrollEvent": {
2533
2594
  "location": "import",
@@ -7,11 +7,11 @@ export default class GridScrollingService {
7
7
  this.setViewport = setViewport;
8
8
  this.elements = {};
9
9
  }
10
- async proxyScroll(e, key) {
10
+ async proxyScroll(e, key, skipEvent) {
11
11
  var _a;
12
12
  let newEventPromise;
13
13
  let event = e;
14
- for (let elKey in this.elements) {
14
+ for (let elKey in (skipEvent ? {} : this.elements)) {
15
15
  // skip
16
16
  if (e.dimension === 'rgCol' && elKey === 'headerRow') {
17
17
  continue;
@@ -37,7 +37,8 @@ export default class GridScrollingService {
37
37
  if (newEvent) {
38
38
  event = newEvent;
39
39
  }
40
- this.setViewport(event);
40
+ this.setViewport(skipEvent && this.isPinnedColumn(key)
41
+ ? Object.assign(Object.assign({}, event), { dimension: key }) : event);
41
42
  }
42
43
  /**
43
44
  * Silent scroll update for mobile devices when we have negative scroll top
@@ -13,6 +13,7 @@ function gatherColumnData(data) {
13
13
  contentHeight: data.contentHeight,
14
14
  key: data.colType,
15
15
  colType: data.colType,
16
+ noHorizontalScrollTransfer: data.noHorizontalScrollTransfer,
16
17
  onResizeviewport: data.onResizeviewport,
17
18
  // set viewport size to real size
18
19
  style: data.fixWidth ? { minWidth: `${realWidth}px` } : undefined,
@@ -57,6 +58,7 @@ export default class ViewportService {
57
58
  viewports: config.viewportProvider.stores,
58
59
  dimensions: config.dimensionProvider.stores,
59
60
  rowStores: config.dataProvider.stores,
61
+ noHorizontalScrollTransfer: config.noHorizontalScrollTransfer,
60
62
  colStore,
61
63
  onHeaderresize: e => this.onColumnResize(val, e, colStore),
62
64
  };
@@ -253,7 +253,7 @@ export class RevogrRowHeaders {
253
253
  },
254
254
  "complexType": {
255
255
  "original": "ViewPortScrollEvent",
256
- "resolved": "{ dimension: DimensionType; coordinate: number; delta?: number | undefined; outside?: boolean | undefined; }",
256
+ "resolved": "D",
257
257
  "references": {
258
258
  "ViewPortScrollEvent": {
259
259
  "location": "import",
@@ -22,6 +22,7 @@ export class RevogrViewportScroll {
22
22
  * Height of inner content
23
23
  */
24
24
  this.contentHeight = 0;
25
+ this.noHorizontalScrollTransfer = false;
25
26
  }
26
27
  async setScroll(e) {
27
28
  var _a;
@@ -206,7 +207,7 @@ export class RevogrViewportScroll {
206
207
  this.setScrollVisibility('rgCol', this.horizontalScroll.clientWidth, this.contentWidth);
207
208
  }
208
209
  render() {
209
- return (h(Host, { key: '2be96df29e23c7a681a45675567b5f168786cf92', onWheel: this.horizontalMouseWheel, onScroll: (e) => this.applyScroll('rgCol', e) }, h("div", { key: '49152054dc9c8bdbffc430aa4ee2cf8c2732e05c', class: "inner-content-table", style: { width: `${this.contentWidth}px` } }, h("div", { key: '6a2124ed6345021fbbfbd78607dc280918ef9bc5', class: "header-wrapper", ref: e => (this.header = e) }, h("slot", { key: '0a25f0620be889d87fbf81325ffb596919105f4d', name: HEADER_SLOT })), h("div", { key: '7c986664c70ebc6f6d996864e591e484d709c3a5', class: "vertical-inner", ref: el => (this.verticalScroll = el), onWheel: this.verticalMouseWheel, onScroll: (e) => this.applyScroll('rgRow', e) }, h("div", { key: 'bf810ecbb62b35334b24ab72292ae37866002cb9', class: "content-wrapper", style: { height: `${this.contentHeight}px` } }, h("slot", { key: '7d0bf53549eb60d9e6942b05fe1037131562ca2e', name: CONTENT_SLOT }))), h("div", { key: '78d8bdc545e220b324665b5331d902d887ea5e2b', class: "footer-wrapper", ref: e => (this.footer = e) }, h("slot", { key: '76d5b39a94ba27411ca0b58e49714b21e0e837bf', name: FOOTER_SLOT })))));
210
+ return (h(Host, { key: 'adc7378dba1794ca2ec263d52b09abefe50bcbfd', onWheel: this.horizontalMouseWheel, onScroll: (e) => this.applyScroll('rgCol', e) }, h("div", { key: '7b57a8a0ea44629fefcfe4d2cd77bf0f048d8e06', class: "inner-content-table", style: { width: `${this.contentWidth}px` } }, h("div", { key: 'cca3de158bc2a7f0651f578a281819be5698b257', class: "header-wrapper", ref: e => (this.header = e) }, h("slot", { key: '1d170147dabe034f2c35481a8e2fedd6de2b6aed', name: HEADER_SLOT })), h("div", { key: 'b6dd29a91bb1f380a83a035dfdb749ca669936f2', class: "vertical-inner", ref: el => (this.verticalScroll = el), onWheel: this.verticalMouseWheel, onScroll: (e) => this.applyScroll('rgRow', e) }, h("div", { key: '9bce27bf8ec4d3b679aa9a34eb6379a8c2d46cac', class: "content-wrapper", style: { height: `${this.contentHeight}px` } }, h("slot", { key: 'b44a082c9fbb948fd87bd235b4cd4356fd4a3536', name: CONTENT_SLOT }))), h("div", { key: '28c305ff6bc664f1d1bbb117e8b8565c8d4bb6b2', class: "footer-wrapper", ref: e => (this.footer = e) }, h("slot", { key: '96312fb7f18198fd1feb9dcc00c79cde74ba9c9f', name: FOOTER_SLOT })))));
210
211
  }
211
212
  /**
212
213
  * Extra layer for scroll event monitoring, where MouseWheel event is not passing
@@ -285,7 +286,7 @@ export class RevogrViewportScroll {
285
286
  const atRight = scrollLeft + clientWidth >= scrollWidth && e.deltaX > 0;
286
287
  // Detect if the user has reached the left end
287
288
  const atLeft = scrollLeft === 0 && e.deltaX < 0;
288
- if (!atRight && !atLeft) {
289
+ if (!atRight && !atLeft && !this.noHorizontalScrollTransfer) {
289
290
  (_a = e.preventDefault) === null || _a === void 0 ? void 0 : _a.call(e);
290
291
  }
291
292
  const pos = scrollLeft + e[delta];
@@ -389,6 +390,26 @@ export class RevogrViewportScroll {
389
390
  "setter": false,
390
391
  "reflect": false,
391
392
  "attribute": "col-type"
393
+ },
394
+ "noHorizontalScrollTransfer": {
395
+ "type": "boolean",
396
+ "mutable": false,
397
+ "complexType": {
398
+ "original": "boolean",
399
+ "resolved": "boolean",
400
+ "references": {}
401
+ },
402
+ "required": false,
403
+ "optional": false,
404
+ "docs": {
405
+ "tags": [],
406
+ "text": ""
407
+ },
408
+ "getter": false,
409
+ "setter": false,
410
+ "reflect": false,
411
+ "attribute": "no-horizontal-scroll-transfer",
412
+ "defaultValue": "false"
392
413
  }
393
414
  };
394
415
  }
@@ -405,7 +426,7 @@ export class RevogrViewportScroll {
405
426
  },
406
427
  "complexType": {
407
428
  "original": "ViewPortScrollEvent",
408
- "resolved": "{ dimension: DimensionType; coordinate: number; delta?: number | undefined; outside?: boolean | undefined; }",
429
+ "resolved": "D",
409
430
  "references": {
410
431
  "ViewPortScrollEvent": {
411
432
  "location": "import",
@@ -471,7 +492,7 @@ export class RevogrViewportScroll {
471
492
  },
472
493
  "complexType": {
473
494
  "original": "ViewPortScrollEvent",
474
- "resolved": "{ dimension: DimensionType; coordinate: number; delta?: number | undefined; outside?: boolean | undefined; }",
495
+ "resolved": "D",
475
496
  "references": {
476
497
  "ViewPortScrollEvent": {
477
498
  "location": "import",
@@ -224,7 +224,7 @@ export class RevogrScrollVirtual {
224
224
  },
225
225
  "complexType": {
226
226
  "original": "ViewPortScrollEvent",
227
- "resolved": "{ dimension: DimensionType; coordinate: number; delta?: number | undefined; outside?: boolean | undefined; }",
227
+ "resolved": "D",
228
228
  "references": {
229
229
  "ViewPortScrollEvent": {
230
230
  "location": "import",
@@ -16,9 +16,25 @@ export class DataProvider {
16
16
  return sources;
17
17
  }, {});
18
18
  }
19
- setData(data, type = 'rgRow', disableVirtualRows = false, grouping, silent = false) {
19
+ /**
20
+ * Replaces the data source for a row type and synchronizes the related dimension metadata.
21
+ *
22
+ * `rgRow` updates also refresh the virtual row model unless `disableVirtualRows` is set.
23
+ * Pinned row types skip virtual row recalculation because they are rendered directly.
24
+ *
25
+ * @param data Full source data assigned to the target row store.
26
+ * @param type Row collection to update. Defaults to the main body rows.
27
+ * @param disableVirtualRows Prevents recalculating virtual rows for the main row store.
28
+ * @param grouping Optional grouping metadata applied together with the new data set.
29
+ * @param silent Preserves the current trimmed state instead of resetting it during the update.
30
+ * @param preserveTrimmed Re-applies current trimmed indexes after a silent update.
31
+ * @returns The same `data` array that was provided to the method.
32
+ */
33
+ setData(data, type = 'rgRow', disableVirtualRows = false, grouping,
34
+ // if true, store will be updated without resetting trimmed state
35
+ silent = false, preserveTrimmed = false) {
20
36
  // set rgRow data
21
- this.stores[type].updateData([...data], grouping, silent);
37
+ this.stores[type].updateData([...data], grouping, silent, preserveTrimmed);
22
38
  // for pinned row no need virtual data
23
39
  const noVirtual = type !== 'rgRow' || disableVirtualRows;
24
40
  this.dimensionProvider.setData(data.length, type, noVirtual);
@@ -4,7 +4,7 @@
4
4
  import findIndex from "lodash/findIndex";
5
5
  import range from "lodash/range";
6
6
  import { createStore } from "@stencil/store";
7
- import { trimmedPlugin } from "./trimmed.plugin";
7
+ import { gatherTrimmedItems, trimmedPlugin } from "./trimmed.plugin";
8
8
  import { setStore } from "../../utils";
9
9
  import { proxyPlugin } from "./data.proxy";
10
10
  /**
@@ -24,8 +24,16 @@ export class DataStore {
24
24
  * full data source update
25
25
  * @param source - data column/rgRow source
26
26
  * @param grouping - grouping information if present
27
+ * @param silent - if true, store will be updated without resetting trimmed state
28
+ * @param preserveTrimmed - if true, current trimmed indexes will be re-applied to the new source, use with caution because physical indexes may change across full data refreshes
27
29
  */
28
- updateData(source, grouping, silent = false) {
30
+ updateData(source, grouping,
31
+ // if true, store will be updated without resetting trimmed state
32
+ silent = false,
33
+ // if true, current trimmed indexes will be re-applied to the new source
34
+ preserveTrimmed = false) {
35
+ const trimmed = this.store.get('trimmed');
36
+ const trimmedItems = silent && preserveTrimmed ? gatherTrimmedItems(trimmed) : null;
29
37
  // during full update we do drop trim
30
38
  if (!silent) {
31
39
  this.store.set('trimmed', {});
@@ -38,12 +46,14 @@ export class DataStore {
38
46
  source,
39
47
  proxyItems: [...items],
40
48
  });
41
- // update data items
42
- this.store.set('items', items);
49
+ // Explicit trim preservation is opt-in because physical indexes may change
50
+ // across full data refreshes.
51
+ this.store.set('items', trimmedItems ? items.filter(i => !trimmedItems[i]) : items);
43
52
  // apply grouping if present
44
53
  if (grouping) {
45
54
  setStore(this.store, {
46
55
  groupingDepth: grouping.depth,
56
+ // if groups are not provided, we will consider that there is only one group with all items
47
57
  groups: grouping.groups,
48
58
  groupingCustomRenderer: grouping.customRenderer,
49
59
  });
@@ -21,6 +21,7 @@ export const REVOGRID_EVENTS = new Map([
21
21
  ['beforeanysource', 'beforeanysource'],
22
22
  ['aftersourceset', 'aftersourceset'],
23
23
  ['afteranysource', 'afteranysource'],
24
+ ['beforecolumnsgather', 'beforecolumnsgather'],
24
25
  ['beforecolumnsset', 'beforecolumnsset'],
25
26
  ['beforecolumnapplied', 'beforecolumnapplied'],
26
27
  ['aftercolumnsset', 'aftercolumnsset'],
@@ -2,8 +2,8 @@
2
2
  * Built by Revolist OU ❤️
3
3
  */
4
4
  import { h, f as Build } from './index-Chp_81rd.js';
5
- import { y as DATA_ROW, G as DRAG_ICON_CLASS, I as DRAGGABLE_CLASS } from './dimension.helpers-C2F2Cuh8.js';
6
- import { l as GROUP_EXPAND_BTN, m as GROUP_EXPAND_EVENT, G as GROUP_DEPTH, h as GROUP_EXPANDED, P as PSEUDO_GROUP_ITEM, O as isRowDragService, B as getCellDataParsed } from './column.service-BghHOZP8.js';
5
+ import { y as DATA_ROW, G as DRAG_ICON_CLASS, I as DRAGGABLE_CLASS } from './dimension.helpers-B-5OBYes.js';
6
+ import { l as GROUP_EXPAND_BTN, m as GROUP_EXPAND_EVENT, G as GROUP_DEPTH, h as GROUP_EXPANDED, P as PSEUDO_GROUP_ITEM, O as isRowDragService, B as getCellDataParsed } from './column.service-8pPNyrKn.js';
7
7
 
8
8
  const SortingSign = ({ column }) => {
9
9
  var _a;
@@ -1,13 +1,13 @@
1
1
  /*!
2
2
  * Built by Revolist OU ❤️
3
3
  */
4
- import { J as reduce, g as getRange, K as baseEach, C as getColumnType, c as columnTypes, L as toInteger, u as isGrouping, t as getGroupingName, r as rowTypes, B as getCellDataParsed, A as getCellRaw, I as getColumnByProp, h as GROUP_EXPANDED, x as getParsedGroup, y as isSameGroup, G as GROUP_DEPTH, e as PSEUDO_GROUP_ITEM_VALUE, d as PSEUDO_GROUP_ITEM_ID, o as GROUPING_ROW_TYPE, p as getSource, f as PSEUDO_GROUP_COLUMN, s as gatherGrouping, m as GROUP_EXPAND_EVENT, v as isGroupingColumn, q as getExpanded, E as isColGrouping } from './column.service-BghHOZP8.js';
5
- import { W as createStore, w as setStore, i as calculateDimensionData, X as identity, Y as isArray, b as getSourceItem, o as getScrollbarSize, u as timeout, Z as baseProperty, _ as isArrayLike, $ as getTag, a0 as baseKeys, g as getPhysical, e as setItems, j as getItemByPosition } from './dimension.helpers-C2F2Cuh8.js';
6
- import { f as calculateRowHeaderSize } from './viewport.store-C3ajQgRm.js';
4
+ import { J as reduce, g as getRange, K as baseEach, C as getColumnType, c as columnTypes, L as toInteger, u as isGrouping, t as getGroupingName, r as rowTypes, B as getCellDataParsed, A as getCellRaw, I as getColumnByProp, h as GROUP_EXPANDED, x as getParsedGroup, y as isSameGroup, G as GROUP_DEPTH, e as PSEUDO_GROUP_ITEM_VALUE, d as PSEUDO_GROUP_ITEM_ID, o as GROUPING_ROW_TYPE, p as getSource, f as PSEUDO_GROUP_COLUMN, s as gatherGrouping, m as GROUP_EXPAND_EVENT, v as isGroupingColumn, q as getExpanded, E as isColGrouping } from './column.service-8pPNyrKn.js';
5
+ import { W as createStore, w as setStore, i as calculateDimensionData, X as identity, Y as isArray, b as getSourceItem, o as getScrollbarSize, u as timeout, Z as baseProperty, _ as isArrayLike, $ as getTag, a0 as baseKeys, g as getPhysical, e as setItems, j as getItemByPosition } from './dimension.helpers-B-5OBYes.js';
6
+ import { f as calculateRowHeaderSize } from './viewport.store-BGWR3XfI.js';
7
7
  import { h } from './index-Chp_81rd.js';
8
8
  import { b as FILTER_PROP, i as isFilterBtn } from './filter.button-C8XTWPU2.js';
9
9
  import { i as isObjectLike, b as baseGetTag, d as debounce } from './debounce-BfO9dz9v.js';
10
- import { O as ON_COLUMN_CLICK, d as dispatch } from './header-cell-renderer-DO0jvvbw.js';
10
+ import { O as ON_COLUMN_CLICK, d as dispatch } from './header-cell-renderer-WkTbrmr7.js';
11
11
 
12
12
  /**
13
13
  * Plugin which recalculates realSize on changes of sizes, originItemSize and count
@@ -1,7 +1,7 @@
1
1
  /*!
2
2
  * Built by Revolist OU ❤️
3
3
  */
4
- import { a5 as toFinite, a6 as keys, _ as isArrayLike, a4 as baseIteratee, Y as isArray, P as GRID_INTERNALS, a7 as isIterateeCall, a as getVisibleSourceItem, z as DISABLED_CLASS, C as CELL_CLASS, b as getSourceItem } from './dimension.helpers-C2F2Cuh8.js';
4
+ import { a5 as toFinite, a6 as keys, _ as isArrayLike, a4 as baseIteratee, Y as isArray, P as GRID_INTERNALS, a7 as isIterateeCall, a as getVisibleSourceItem, z as DISABLED_CLASS, C as CELL_CLASS, b as getSourceItem } from './dimension.helpers-B-5OBYes.js';
5
5
 
6
6
  /**
7
7
  * Converts `value` to an integer.
@@ -3270,8 +3270,16 @@ class DataStore {
3270
3270
  * full data source update
3271
3271
  * @param source - data column/rgRow source
3272
3272
  * @param grouping - grouping information if present
3273
+ * @param silent - if true, store will be updated without resetting trimmed state
3274
+ * @param preserveTrimmed - if true, current trimmed indexes will be re-applied to the new source, use with caution because physical indexes may change across full data refreshes
3273
3275
  */
3274
- updateData(source, grouping, silent = false) {
3276
+ updateData(source, grouping,
3277
+ // if true, store will be updated without resetting trimmed state
3278
+ silent = false,
3279
+ // if true, current trimmed indexes will be re-applied to the new source
3280
+ preserveTrimmed = false) {
3281
+ const trimmed = this.store.get('trimmed');
3282
+ const trimmedItems = silent && preserveTrimmed ? gatherTrimmedItems(trimmed) : null;
3275
3283
  // during full update we do drop trim
3276
3284
  if (!silent) {
3277
3285
  this.store.set('trimmed', {});
@@ -3284,12 +3292,14 @@ class DataStore {
3284
3292
  source,
3285
3293
  proxyItems: [...items],
3286
3294
  });
3287
- // update data items
3288
- this.store.set('items', items);
3295
+ // Explicit trim preservation is opt-in because physical indexes may change
3296
+ // across full data refreshes.
3297
+ this.store.set('items', trimmedItems ? items.filter(i => !trimmedItems[i]) : items);
3289
3298
  // apply grouping if present
3290
3299
  if (grouping) {
3291
3300
  setStore(this.store, {
3292
3301
  groupingDepth: grouping.depth,
3302
+ // if groups are not provided, we will consider that there is only one group with all items
3293
3303
  groups: grouping.groups,
3294
3304
  groupingCustomRenderer: grouping.customRenderer,
3295
3305
  });
@@ -1,7 +1,7 @@
1
1
  /*!
2
2
  * Built by Revolist OU ❤️
3
3
  */
4
- import { a1 as KeyCodesEnum, a2 as OsPlatform, U as codesLetter, V as keyValues, N as EDIT_INPUT_WR } from './dimension.helpers-C2F2Cuh8.js';
4
+ import { a1 as KeyCodesEnum, a2 as OsPlatform, U as codesLetter, V as keyValues, N as EDIT_INPUT_WR } from './dimension.helpers-B-5OBYes.js';
5
5
 
6
6
  function isMetaKey(code) {
7
7
  const keys = [
@@ -2,7 +2,7 @@
2
2
  * Built by Revolist OU ❤️
3
3
  */
4
4
  import { h } from './index-Chp_81rd.js';
5
- import { Q as doPropMerge } from './column.service-BghHOZP8.js';
5
+ import { Q as doPropMerge } from './column.service-8pPNyrKn.js';
6
6
 
7
7
  /**
8
8
  * Dispatches a custom event to a specified target element.
package/dist/esm/index.js CHANGED
@@ -1,16 +1,16 @@
1
1
  /*!
2
2
  * Built by Revolist OU ❤️
3
3
  */
4
- export { o as GROUPING_ROW_TYPE, j as GROUP_COLUMN_PROP, G as GROUP_DEPTH, h as GROUP_EXPANDED, l as GROUP_EXPAND_BTN, m as GROUP_EXPAND_EVENT, k as GROUP_ORIGINAL_INDEX, f as PSEUDO_GROUP_COLUMN, P as PSEUDO_GROUP_ITEM, d as PSEUDO_GROUP_ITEM_ID, e as PSEUDO_GROUP_ITEM_VALUE, c as columnTypes, a as cropCellToMax, H as gatherGroup, s as gatherGrouping, z as getCellData, B as getCellDataParsed, A as getCellRaw, I as getColumnByProp, D as getColumnSizes, C as getColumnType, F as getColumns, q as getExpanded, t as getGroupingName, x as getParsedGroup, g as getRange, p as getSource, E as isColGrouping, u as isGrouping, v as isGroupingColumn, b as isRangeSingleCell, i as isRowType, y as isSameGroup, w as measureEqualDepth, n as nextCell, r as rowTypes } from './column.service-BghHOZP8.js';
5
- import { B as BasePlugin } from './column.drag.plugin-B98azH0j.js';
6
- export { A as AutoSizeColumnPlugin, C as ColumnMovePlugin, D as DimensionStore, b as ExportCsv, E as ExportFilePlugin, c as FILTER_CONFIG_CHANGED_EVENT, F as FILTER_TRIMMED_TYPE, d as FILTE_PANEL, e as FilterPlugin, G as GroupingRowPlugin, S as SelectionStore, m as SortingPlugin, a as StretchColumn, n as defaultCellCompare, o as descCellCompare, j as doCollapse, k as doExpand, f as filterCoreFunctionsIndexedByType, h as filterNames, g as filterTypes, q as getComparer, l as getLeftRelative, p as getNextOrder, i as isStretchPlugin, s as sortIndexByItems } from './column.drag.plugin-B98azH0j.js';
7
- export { d as dispatch, a as dispatchByEvent } from './header-cell-renderer-DO0jvvbw.js';
8
- export { C as CellRenderer, G as GroupingRowRenderer, S as SortingSign, e as expandEvent, a as expandSvgIconVNode } from './cell-renderer-BDmepZJO.js';
9
- export { C as CELL_CLASS, L as CELL_HANDLER_CLASS, x as DATA_COL, y as DATA_ROW, z as DISABLED_CLASS, I as DRAGGABLE_CLASS, O as DRAGG_TEXT, G as DRAG_ICON_CLASS, D as DataStore, N as EDIT_INPUT_WR, J as FOCUS_CLASS, P as GRID_INTERNALS, F as HEADER_ACTUAL_ROW_CLASS, H as HEADER_CLASS, E as HEADER_ROW_CLASS, B as HEADER_SORTABLE_CLASS, M as MIN_COL_SIZE, K as MOBILE_CLASS, R as RESIZE_INTERVAL, Q as ROW_FOCUSED_CLASS, A as ROW_HEADER_TYPE, S as SELECTION_BORDER_CLASS, T as TMP_SELECTION_BG_CLASS, v as applyMixins, i as calculateDimensionData, U as codesLetter, l as findPositionInArray, h as gatherTrimmedItems, k as getItemByIndex, j as getItemByPosition, g as getPhysical, o as getScrollbarSize, b as getSourceItem, f as getSourceItemVirtualIndexByProp, c as getSourcePhysicalIndex, a as getVisibleSourceItem, V as keyValues, n as mergeSortedArray, p as proxyPlugin, m as pushSorted, r as range, q as scaleValue, e as setItems, d as setSourceByPhysicalIndex, s as setSourceByVirtualIndex, w as setStore, u as timeout, t as trimmedPlugin } from './dimension.helpers-C2F2Cuh8.js';
10
- export { T as TextEditor } from './text-editor-BylR9oxh.js';
11
- export { k as isAll, c as isClear, h as isCopy, a as isCtrlKey, b as isCtrlMetaKey, g as isCut, l as isEditInput, m as isEditorCtrConstructible, f as isEnterKeyValue, i as isMetaKey, j as isPaste, d as isTab, e as isTabKeyValue } from './edit.utils-Cdhf8P7e.js';
4
+ export { o as GROUPING_ROW_TYPE, j as GROUP_COLUMN_PROP, G as GROUP_DEPTH, h as GROUP_EXPANDED, l as GROUP_EXPAND_BTN, m as GROUP_EXPAND_EVENT, k as GROUP_ORIGINAL_INDEX, f as PSEUDO_GROUP_COLUMN, P as PSEUDO_GROUP_ITEM, d as PSEUDO_GROUP_ITEM_ID, e as PSEUDO_GROUP_ITEM_VALUE, c as columnTypes, a as cropCellToMax, H as gatherGroup, s as gatherGrouping, z as getCellData, B as getCellDataParsed, A as getCellRaw, I as getColumnByProp, D as getColumnSizes, C as getColumnType, F as getColumns, q as getExpanded, t as getGroupingName, x as getParsedGroup, g as getRange, p as getSource, E as isColGrouping, u as isGrouping, v as isGroupingColumn, b as isRangeSingleCell, i as isRowType, y as isSameGroup, w as measureEqualDepth, n as nextCell, r as rowTypes } from './column.service-8pPNyrKn.js';
5
+ import { B as BasePlugin } from './column.drag.plugin-C9lvlTfl.js';
6
+ export { A as AutoSizeColumnPlugin, C as ColumnMovePlugin, D as DimensionStore, b as ExportCsv, E as ExportFilePlugin, c as FILTER_CONFIG_CHANGED_EVENT, F as FILTER_TRIMMED_TYPE, d as FILTE_PANEL, e as FilterPlugin, G as GroupingRowPlugin, S as SelectionStore, m as SortingPlugin, a as StretchColumn, n as defaultCellCompare, o as descCellCompare, j as doCollapse, k as doExpand, f as filterCoreFunctionsIndexedByType, h as filterNames, g as filterTypes, q as getComparer, l as getLeftRelative, p as getNextOrder, i as isStretchPlugin, s as sortIndexByItems } from './column.drag.plugin-C9lvlTfl.js';
7
+ export { d as dispatch, a as dispatchByEvent } from './header-cell-renderer-WkTbrmr7.js';
8
+ export { C as CellRenderer, G as GroupingRowRenderer, S as SortingSign, e as expandEvent, a as expandSvgIconVNode } from './cell-renderer-BNeaYjy6.js';
9
+ export { C as CELL_CLASS, L as CELL_HANDLER_CLASS, x as DATA_COL, y as DATA_ROW, z as DISABLED_CLASS, I as DRAGGABLE_CLASS, O as DRAGG_TEXT, G as DRAG_ICON_CLASS, D as DataStore, N as EDIT_INPUT_WR, J as FOCUS_CLASS, P as GRID_INTERNALS, F as HEADER_ACTUAL_ROW_CLASS, H as HEADER_CLASS, E as HEADER_ROW_CLASS, B as HEADER_SORTABLE_CLASS, M as MIN_COL_SIZE, K as MOBILE_CLASS, R as RESIZE_INTERVAL, Q as ROW_FOCUSED_CLASS, A as ROW_HEADER_TYPE, S as SELECTION_BORDER_CLASS, T as TMP_SELECTION_BG_CLASS, v as applyMixins, i as calculateDimensionData, U as codesLetter, l as findPositionInArray, h as gatherTrimmedItems, k as getItemByIndex, j as getItemByPosition, g as getPhysical, o as getScrollbarSize, b as getSourceItem, f as getSourceItemVirtualIndexByProp, c as getSourcePhysicalIndex, a as getVisibleSourceItem, V as keyValues, n as mergeSortedArray, p as proxyPlugin, m as pushSorted, r as range, q as scaleValue, e as setItems, d as setSourceByPhysicalIndex, s as setSourceByVirtualIndex, w as setStore, u as timeout, t as trimmedPlugin } from './dimension.helpers-B-5OBYes.js';
10
+ export { T as TextEditor } from './text-editor-DZSx2pWr.js';
11
+ export { k as isAll, c as isClear, h as isCopy, a as isCtrlKey, b as isCtrlMetaKey, g as isCut, l as isEditInput, m as isEditorCtrConstructible, f as isEnterKeyValue, i as isMetaKey, j as isPaste, d as isTab, e as isTabKeyValue } from './edit.utils-CQjRmx5n.js';
12
12
  export { h } from './index-Chp_81rd.js';
13
- export { V as ViewportStore, a as addMissingItems, f as calculateRowHeaderSize, d as getFirstItem, b as getItems, e as getLastItem, g as getUpdatedItemsByPosition, i as isActiveRange, c as isActiveRangeOutsideLastItem, r as recombineByOffset, s as setItemSizes, u as updateMissingAndRange } from './viewport.store-C3ajQgRm.js';
13
+ export { V as ViewportStore, a as addMissingItems, f as calculateRowHeaderSize, d as getFirstItem, b as getItems, e as getLastItem, g as getUpdatedItemsByPosition, i as isActiveRange, c as isActiveRangeOutsideLastItem, r as recombineByOffset, s as setItemSizes, u as updateMissingAndRange } from './viewport.store-BGWR3XfI.js';
14
14
  export { A as AND_OR_BUTTON, e as AndOrButton, a as FILTER_BUTTON_ACTIVE, F as FILTER_BUTTON_CLASS, b as FILTER_PROP, c as FilterButton, T as TRASH_BUTTON, d as TrashButton, i as isFilterBtn } from './filter.button-C8XTWPU2.js';
15
15
  import './debounce-BfO9dz9v.js';
16
16
 
@@ -34,6 +34,7 @@ const REVOGRID_EVENTS = new Map([
34
34
  ['beforeanysource', 'beforeanysource'],
35
35
  ['aftersourceset', 'aftersourceset'],
36
36
  ['afteranysource', 'afteranysource'],
37
+ ['beforecolumnsgather', 'beforecolumnsgather'],
37
38
  ['beforecolumnsset', 'beforecolumnsset'],
38
39
  ['beforecolumnapplied', 'beforecolumnapplied'],
39
40
  ['aftercolumnsset', 'aftercolumnsset'],
@@ -9,7 +9,7 @@ import './theme.service-BmnDvr6P.js';
9
9
  const defineCustomElements = async (win, options) => {
10
10
  if (typeof window === 'undefined') return undefined;
11
11
  await globalScripts();
12
- return bootstrapLazy([["revo-grid",[[260,"revo-grid",{"rowHeaders":[4,"row-headers"],"frameSize":[2,"frame-size"],"rowSize":[2,"row-size"],"colSize":[2,"col-size"],"range":[4],"readonly":[4],"resize":[4],"canFocus":[4,"can-focus"],"useClipboard":[4,"use-clipboard"],"columns":[16],"source":[16],"pinnedTopSource":[16],"pinnedBottomSource":[16],"rowDefinitions":[16],"editors":[16],"applyOnClose":[4,"apply-on-close"],"plugins":[16],"columnTypes":[16],"theme":[1537],"rowClass":[513,"row-class"],"autoSizeColumn":[4,"auto-size-column"],"filter":[4],"sorting":[16],"focusTemplate":[16],"canMoveColumns":[4,"can-move-columns"],"trimmedRows":[16],"exporting":[4],"grouping":[16],"stretch":[8],"additionalData":[16],"disableVirtualX":[4,"disable-virtual-x"],"disableVirtualY":[4,"disable-virtual-y"],"hideAttribution":[4,"hide-attribution"],"jobsBeforeRender":[16],"registerVNode":[16],"accessible":[4],"rtl":[4],"canDrag":[4,"can-drag"],"refresh":[64],"setDataAt":[64],"scrollToRow":[64],"scrollToColumnIndex":[64],"scrollToColumnProp":[64],"updateColumns":[64],"addTrimmed":[64],"scrollToCoordinate":[64],"setCellEdit":[64],"setCellsFocus":[64],"getSource":[64],"getVisibleSource":[64],"getSourceStore":[64],"getColumnStore":[64],"updateColumnSorting":[64],"clearSorting":[64],"getColumns":[64],"clearFocus":[64],"getPlugins":[64],"getFocused":[64],"getContentSize":[64],"getSelectedRange":[64],"refreshExtraElements":[64],"getProviders":[64]},[[5,"touchstart","mousedownHandle"],[5,"mousedown","mousedownHandle"],[5,"touchend","mouseupHandle"],[5,"mouseup","mouseupHandle"],[0,"rowdragstartinit","onRowDragStarted"],[0,"rowdragendinit","onRowDragEnd"],[0,"roworderchange","onRowOrderChange"],[0,"rowdragmoveinit","onRowDrag"],[0,"rowdragmousemove","onRowMouseMove"],[0,"celleditapply","onCellEdit"],[0,"rangeeditapply","onRangeEdit"],[0,"selectionchangeinit","onRangeChanged"],[0,"rowdropinit","onRowDropped"],[0,"beforeheaderclick","onHeaderClick"],[0,"beforecellfocusinit","onCellFocus"]],{"columnTypes":[{"columnTypesChanged":0}],"columns":[{"columnChanged":0}],"disableVirtualX":[{"disableVirtualXChanged":0}],"rowSize":[{"rowSizeChanged":0}],"theme":[{"themeChanged":0}],"source":[{"dataSourceChanged":0}],"pinnedBottomSource":[{"dataSourceChanged":0}],"pinnedTopSource":[{"dataSourceChanged":0}],"disableVirtualY":[{"disableVirtualYChanged":0}],"rowDefinitions":[{"rowDefChanged":0}],"trimmedRows":[{"trimmedRowsChanged":0}],"grouping":[{"groupingChanged":0}],"stretch":[{"applyStretch":0}],"filter":[{"applyFilter":0}],"sorting":[{"applySorting":0}],"rowHeaders":[{"rowHeadersChange":0}],"registerVNode":[{"registerOutsideVNodes":0}],"additionalData":[{"additionalDataChanged":0}],"rtl":[{"rtlChanged":0}],"plugins":[{"pluginsChanged":0}]}]]],["revogr-filter-panel",[[260,"revogr-filter-panel",{"filterNames":[16],"filterEntities":[16],"filterCaptions":[16],"disableDynamicFiltering":[4,"disable-dynamic-filtering"],"closeOnOutsideClick":[4,"close-on-outside-click"],"isFilterIdSet":[32],"filterId":[32],"currentFilterId":[32],"currentFilterType":[32],"changes":[32],"filterItems":[32],"show":[64],"getChanges":[64]},[[5,"mousedown","onMouseDown"]]]]],["revogr-clipboard_3",[[0,"revogr-clipboard",{"readonly":[4],"doCopy":[64]},[[4,"paste","onPaste"],[4,"copy","copyStarted"],[4,"cut","cutStarted"]]],[0,"revogr-edit",{"editCell":[16],"column":[16],"editor":[16],"saveOnClose":[4,"save-on-close"],"additionalData":[8,"additional-data"],"cancelChanges":[64],"beforeDisconnect":[64]}],[0,"revogr-order-editor",{"parent":[16],"dimensionRow":[16],"dimensionCol":[16],"dataStore":[16],"rowType":[1,"row-type"],"dragStart":[64],"endOrder":[64],"clearOrder":[64]}]]],["revogr-data_4",[[260,"revogr-data",{"readonly":[4],"range":[4],"rowClass":[1,"row-class"],"additionalData":[8,"additional-data"],"rowSelectionStore":[16],"viewportRow":[16],"viewportCol":[16],"dimensionRow":[16],"colData":[16],"dataStore":[16],"type":[513],"colType":[513,"col-type"],"jobsBeforeRender":[16],"providers":[32],"updateCell":[64]},null,{"dataStore":[{"onDataStoreChange":0}],"colData":[{"onColDataChange":0}]}],[0,"revogr-header",{"viewportCol":[16],"dimensionCol":[16],"selectionStore":[16],"groups":[16],"groupingDepth":[2,"grouping-depth"],"readonly":[4],"canResize":[4,"can-resize"],"resizeHandler":[16],"colData":[16],"columnFilter":[4,"column-filter"],"type":[1],"additionalData":[8,"additional-data"]}],[260,"revogr-viewport-scroll",{"rowHeader":[4,"row-header"],"contentWidth":[2,"content-width"],"contentHeight":[2,"content-height"],"colType":[1,"col-type"],"setScroll":[64],"changeScroll":[64],"applyScroll":[64]},[[0,"mousewheel-vertical","mousewheelVertical"],[0,"mousewheel-horizontal","mousewheelHorizontal"],[0,"scroll-coordinate","scrollApply"]]],[0,"vnode-html",{"redraw":[16]}]]],["revogr-attribution_7",[[0,"revogr-row-headers",{"height":[2],"dataPorts":[16],"headerProp":[16],"rowClass":[1,"row-class"],"resize":[4],"rowHeaderColumn":[16],"additionalData":[8,"additional-data"],"jobsBeforeRender":[16]}],[260,"revogr-overlay-selection",{"readonly":[4],"range":[4],"canDrag":[4,"can-drag"],"useClipboard":[4,"use-clipboard"],"selectionStore":[16],"dimensionRow":[16],"dimensionCol":[16],"dataStore":[16],"colData":[16],"lastCell":[16],"editors":[16],"applyChangesOnClose":[4,"apply-changes-on-close"],"additionalData":[8,"additional-data"],"isMobileDevice":[4,"is-mobile-device"]},[[5,"touchmove","onMouseMove"],[5,"mousemove","onMouseMove"],[5,"touchend","onMouseUp"],[5,"mouseup","onMouseUp"],[5,"mouseleave","onMouseUp"],[0,"dragstartcell","onCellDrag"],[4,"keyup","onKeyUp"],[4,"keydown","onKeyDown"]],{"selectionStore":[{"selectionServiceSet":0}],"dimensionRow":[{"createAutoFillService":0}],"dimensionCol":[{"createAutoFillService":0}],"dataStore":[{"columnServiceSet":0}],"colData":[{"columnServiceSet":0}]}],[0,"revogr-attribution"],[260,"revogr-focus",{"colType":[1,"col-type"],"rowType":[1,"row-type"],"selectionStore":[16],"dimensionRow":[16],"dimensionCol":[16],"dataStore":[16],"colData":[16],"focusTemplate":[16]}],[0,"revogr-scroll-virtual",{"dimension":[1],"realSize":[2,"real-size"],"virtualSize":[2,"virtual-size"],"clientSize":[2,"client-size"],"setScroll":[64],"changeScroll":[64]}],[0,"revogr-temp-range",{"selectionStore":[16],"dimensionRow":[16],"dimensionCol":[16]}],[0,"revogr-extra",{"nodes":[16],"update":[32],"refresh":[64]}]]]], options);
12
+ return bootstrapLazy([["revo-grid",[[260,"revo-grid",{"rowHeaders":[4,"row-headers"],"frameSize":[2,"frame-size"],"rowSize":[2,"row-size"],"colSize":[2,"col-size"],"range":[4],"readonly":[4],"resize":[4],"noHorizontalScrollTransfer":[4,"no-horizontal-scroll-transfer"],"canFocus":[4,"can-focus"],"useClipboard":[4,"use-clipboard"],"columns":[16],"source":[16],"pinnedTopSource":[16],"pinnedBottomSource":[16],"rowDefinitions":[16],"editors":[16],"applyOnClose":[4,"apply-on-close"],"plugins":[16],"columnTypes":[16],"theme":[1537],"rowClass":[513,"row-class"],"autoSizeColumn":[4,"auto-size-column"],"filter":[4],"sorting":[16],"focusTemplate":[16],"canMoveColumns":[4,"can-move-columns"],"trimmedRows":[16],"exporting":[4],"grouping":[16],"stretch":[8],"additionalData":[16],"disableVirtualX":[4,"disable-virtual-x"],"disableVirtualY":[4,"disable-virtual-y"],"hideAttribution":[4,"hide-attribution"],"jobsBeforeRender":[16],"registerVNode":[16],"accessible":[4],"rtl":[4],"canDrag":[4,"can-drag"],"refresh":[64],"setDataAt":[64],"scrollToRow":[64],"scrollToColumnIndex":[64],"scrollToColumnProp":[64],"updateColumns":[64],"addTrimmed":[64],"scrollToCoordinate":[64],"setCellEdit":[64],"setCellsFocus":[64],"getSource":[64],"getVisibleSource":[64],"getSourceStore":[64],"getColumnStore":[64],"updateColumnSorting":[64],"clearSorting":[64],"getColumns":[64],"clearFocus":[64],"getPlugins":[64],"getFocused":[64],"getContentSize":[64],"getSelectedRange":[64],"refreshExtraElements":[64],"getProviders":[64]},[[5,"touchstart","mousedownHandle"],[5,"mousedown","mousedownHandle"],[5,"touchend","mouseupHandle"],[5,"mouseup","mouseupHandle"],[0,"rowdragstartinit","onRowDragStarted"],[0,"rowdragendinit","onRowDragEnd"],[0,"roworderchange","onRowOrderChange"],[0,"rowdragmoveinit","onRowDrag"],[0,"rowdragmousemove","onRowMouseMove"],[0,"celleditapply","onCellEdit"],[0,"rangeeditapply","onRangeEdit"],[0,"selectionchangeinit","onRangeChanged"],[0,"rowdropinit","onRowDropped"],[0,"beforeheaderclick","onHeaderClick"],[0,"beforecellfocusinit","onCellFocus"]],{"columnTypes":[{"columnTypesChanged":0}],"columns":[{"columnChanged":0}],"disableVirtualX":[{"disableVirtualXChanged":0}],"rowSize":[{"rowSizeChanged":0}],"theme":[{"themeChanged":0}],"source":[{"dataSourceChanged":0}],"pinnedBottomSource":[{"dataSourceChanged":0}],"pinnedTopSource":[{"dataSourceChanged":0}],"disableVirtualY":[{"disableVirtualYChanged":0}],"rowDefinitions":[{"rowDefChanged":0}],"trimmedRows":[{"trimmedRowsChanged":0}],"grouping":[{"groupingChanged":0}],"stretch":[{"applyStretch":0}],"filter":[{"applyFilter":0}],"sorting":[{"applySorting":0}],"rowHeaders":[{"rowHeadersChange":0}],"registerVNode":[{"registerOutsideVNodes":0}],"additionalData":[{"additionalDataChanged":0}],"rtl":[{"rtlChanged":0}],"plugins":[{"pluginsChanged":0}]}]]],["revogr-filter-panel",[[260,"revogr-filter-panel",{"filterNames":[16],"filterEntities":[16],"filterCaptions":[16],"disableDynamicFiltering":[4,"disable-dynamic-filtering"],"closeOnOutsideClick":[4,"close-on-outside-click"],"isFilterIdSet":[32],"filterId":[32],"currentFilterId":[32],"currentFilterType":[32],"changes":[32],"filterItems":[32],"show":[64],"getChanges":[64]},[[5,"mousedown","onMouseDown"]]]]],["revogr-clipboard_3",[[0,"revogr-clipboard",{"readonly":[4],"doCopy":[64]},[[4,"paste","onPaste"],[4,"copy","copyStarted"],[4,"cut","cutStarted"]]],[0,"revogr-edit",{"editCell":[16],"column":[16],"editor":[16],"saveOnClose":[4,"save-on-close"],"additionalData":[8,"additional-data"],"cancelChanges":[64],"beforeDisconnect":[64]}],[0,"revogr-order-editor",{"parent":[16],"dimensionRow":[16],"dimensionCol":[16],"dataStore":[16],"rowType":[1,"row-type"],"dragStart":[64],"endOrder":[64],"clearOrder":[64]}]]],["revogr-data_4",[[260,"revogr-data",{"readonly":[4],"range":[4],"rowClass":[1,"row-class"],"additionalData":[8,"additional-data"],"rowSelectionStore":[16],"viewportRow":[16],"viewportCol":[16],"dimensionRow":[16],"colData":[16],"dataStore":[16],"type":[513],"colType":[513,"col-type"],"jobsBeforeRender":[16],"providers":[32],"updateCell":[64]},null,{"dataStore":[{"onDataStoreChange":0}],"colData":[{"onColDataChange":0}]}],[0,"revogr-header",{"viewportCol":[16],"dimensionCol":[16],"selectionStore":[16],"groups":[16],"groupingDepth":[2,"grouping-depth"],"readonly":[4],"canResize":[4,"can-resize"],"resizeHandler":[16],"colData":[16],"columnFilter":[4,"column-filter"],"type":[1],"additionalData":[8,"additional-data"]}],[260,"revogr-viewport-scroll",{"rowHeader":[4,"row-header"],"contentWidth":[2,"content-width"],"contentHeight":[2,"content-height"],"colType":[1,"col-type"],"noHorizontalScrollTransfer":[4,"no-horizontal-scroll-transfer"],"setScroll":[64],"changeScroll":[64],"applyScroll":[64]},[[0,"mousewheel-vertical","mousewheelVertical"],[0,"mousewheel-horizontal","mousewheelHorizontal"],[0,"scroll-coordinate","scrollApply"]]],[0,"vnode-html",{"redraw":[16]}]]],["revogr-attribution_7",[[0,"revogr-row-headers",{"height":[2],"dataPorts":[16],"headerProp":[16],"rowClass":[1,"row-class"],"resize":[4],"rowHeaderColumn":[16],"additionalData":[8,"additional-data"],"jobsBeforeRender":[16]}],[260,"revogr-overlay-selection",{"readonly":[4],"range":[4],"canDrag":[4,"can-drag"],"useClipboard":[4,"use-clipboard"],"selectionStore":[16],"dimensionRow":[16],"dimensionCol":[16],"dataStore":[16],"colData":[16],"lastCell":[16],"editors":[16],"applyChangesOnClose":[4,"apply-changes-on-close"],"additionalData":[8,"additional-data"],"isMobileDevice":[4,"is-mobile-device"]},[[5,"touchmove","onMouseMove"],[5,"mousemove","onMouseMove"],[5,"touchend","onMouseUp"],[5,"mouseup","onMouseUp"],[5,"mouseleave","onMouseUp"],[0,"dragstartcell","onCellDrag"],[4,"keyup","onKeyUp"],[4,"keydown","onKeyDown"]],{"selectionStore":[{"selectionServiceSet":0}],"dimensionRow":[{"createAutoFillService":0}],"dimensionCol":[{"createAutoFillService":0}],"dataStore":[{"columnServiceSet":0}],"colData":[{"columnServiceSet":0}]}],[0,"revogr-attribution"],[260,"revogr-focus",{"colType":[1,"col-type"],"rowType":[1,"row-type"],"selectionStore":[16],"dimensionRow":[16],"dimensionCol":[16],"dataStore":[16],"colData":[16],"focusTemplate":[16]}],[0,"revogr-scroll-virtual",{"dimension":[1],"realSize":[2,"real-size"],"virtualSize":[2,"virtual-size"],"clientSize":[2,"client-size"],"setScroll":[64],"changeScroll":[64]}],[0,"revogr-temp-range",{"selectionStore":[16],"dimensionRow":[16],"dimensionCol":[16]}],[0,"revogr-extra",{"nodes":[16],"update":[32],"refresh":[64]}]]]], options);
13
13
  };
14
14
 
15
15
  export { defineCustomElements };