@revolist/revogrid 4.6.0-next.7 → 4.6.0-next.8

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 (33) hide show
  1. package/custom-element/revo-grid.js +139 -97
  2. package/custom-element/revo-grid.js.map +1 -1
  3. package/dist/cjs/loader.cjs.js +1 -1
  4. package/dist/cjs/revo-grid.cjs.entry.js +137 -97
  5. package/dist/cjs/revo-grid.cjs.entry.js.map +1 -1
  6. package/dist/cjs/revo-grid.cjs.js +1 -1
  7. package/dist/collection/components/revoGrid/revo-grid.d.ts +17 -5
  8. package/dist/collection/components/revoGrid/revo-grid.js +80 -17
  9. package/dist/collection/components/revoGrid/revo-grid.js.map +1 -1
  10. package/dist/collection/components/revoGrid/viewport.interfaces.js.map +1 -1
  11. package/dist/collection/components/revoGrid/viewport.service.d.ts +4 -9
  12. package/dist/collection/components/revoGrid/viewport.service.js +101 -86
  13. package/dist/collection/components/revoGrid/viewport.service.js.map +1 -1
  14. package/dist/collection/components.d.ts +39 -8
  15. package/dist/collection/plugins/groupingRow/grouping.row.plugin.js +7 -7
  16. package/dist/collection/plugins/groupingRow/grouping.row.plugin.js.map +1 -1
  17. package/dist/collection/services/data.provider.d.ts +1 -1
  18. package/dist/collection/services/data.provider.js +4 -2
  19. package/dist/collection/services/data.provider.js.map +1 -1
  20. package/dist/collection/services/dimension.provider.js.map +1 -1
  21. package/dist/esm/loader.js +1 -1
  22. package/dist/esm/revo-grid.entry.js +137 -97
  23. package/dist/esm/revo-grid.entry.js.map +1 -1
  24. package/dist/esm/revo-grid.js +1 -1
  25. package/dist/revo-grid/revo-grid.entry.js +1 -1
  26. package/dist/revo-grid/revo-grid.entry.js.map +1 -1
  27. package/dist/revo-grid/revo-grid.esm.js +1 -1
  28. package/dist/revo-grid/revo-grid.esm.js.map +1 -1
  29. package/dist/types/components/revoGrid/revo-grid.d.ts +17 -5
  30. package/dist/types/components/revoGrid/viewport.service.d.ts +4 -9
  31. package/dist/types/components.d.ts +39 -8
  32. package/dist/types/services/data.provider.d.ts +1 -1
  33. package/package.json +1 -1
@@ -546,10 +546,12 @@ class DataProvider {
546
546
  return sources;
547
547
  }, {});
548
548
  }
549
- setData(data, type = 'rgRow', grouping, silent = false) {
549
+ setData(data, type = 'rgRow', disableVirtualRows = false, grouping, silent = false) {
550
550
  // set rgRow data
551
551
  this.stores[type].updateData([...data], grouping, silent);
552
- this.dimensionProvider.setData(data.length, type, type !== 'rgRow');
552
+ // for pinned row no need virtual data
553
+ const noVirtual = type !== 'rgRow' || disableVirtualRows;
554
+ this.dimensionProvider.setData(data.length, type, noVirtual);
553
555
  return data;
554
556
  }
555
557
  getModel(virtualIndex, type = 'rgRow') {
@@ -2465,9 +2467,9 @@ class GroupingRowPlugin extends BasePlugin {
2465
2467
  * Group again
2466
2468
  * @param oldNewIndexMap - provides us mapping with new indexes vs old indexes
2467
2469
  */
2468
- const { sourceWithGroups, depth, trimmed, oldNewIndexMap, childrenByGroup } = gatherGrouping(source, ((_a = this.options) === null || _a === void 0 ? void 0 : _a.props) || [], Object.assign({ prevExpanded }, options));
2470
+ const { sourceWithGroups, depth, trimmed, oldNewIndexMap, childrenByGroup, } = gatherGrouping(source, ((_a = this.options) === null || _a === void 0 ? void 0 : _a.props) || [], Object.assign({ prevExpanded }, options));
2469
2471
  // setup source
2470
- this.providers.dataProvider.setData(sourceWithGroups, GROUPING_ROW_TYPE, { depth, customRenderer: options === null || options === void 0 ? void 0 : options.groupLabelTemplate }, true);
2472
+ this.providers.dataProvider.setData(sourceWithGroups, GROUPING_ROW_TYPE, this.revogrid.disableVirtualY, { depth, customRenderer: options === null || options === void 0 ? void 0 : options.groupLabelTemplate }, true);
2471
2473
  this.updateTrimmed(trimmed, childrenByGroup, oldNewIndexes, oldNewIndexMap);
2472
2474
  }
2473
2475
  /**
@@ -2482,7 +2484,7 @@ class GroupingRowPlugin extends BasePlugin {
2482
2484
  }
2483
2485
  const source = data.source.filter(s => !isGrouping(s));
2484
2486
  const expanded = this.revogrid.grouping || {};
2485
- const { sourceWithGroups, depth, trimmed, oldNewIndexMap, childrenByGroup } = gatherGrouping(source, ((_a = this.options) === null || _a === void 0 ? void 0 : _a.props) || [], Object.assign({}, (expanded || {})));
2487
+ const { sourceWithGroups, depth, trimmed, oldNewIndexMap, childrenByGroup, } = gatherGrouping(source, ((_a = this.options) === null || _a === void 0 ? void 0 : _a.props) || [], Object.assign({}, (expanded || {})));
2486
2488
  data.source = sourceWithGroups;
2487
2489
  this.providers.dataProvider.setGrouping({ depth });
2488
2490
  this.updateTrimmed(trimmed, childrenByGroup, oldNewIndexMap);
@@ -2531,7 +2533,7 @@ class GroupingRowPlugin extends BasePlugin {
2531
2533
  });
2532
2534
  // clear rows
2533
2535
  const { source, oldNewIndexes } = this.getSource(true);
2534
- this.providers.dataProvider.setData(source, GROUPING_ROW_TYPE, undefined, true);
2536
+ this.providers.dataProvider.setData(source, GROUPING_ROW_TYPE, this.revogrid.disableVirtualY, undefined, true);
2535
2537
  this.updateTrimmed(undefined, undefined, oldNewIndexes);
2536
2538
  }
2537
2539
  updateTrimmed(trimmedGroup = {}, _childrenByGroup = {}, firstLevelMap, secondLevelMap) {
@@ -2614,36 +2616,52 @@ const RevoViewPort = ({ viewports, dimensions, orderRef, nakedClick, registerEle
2614
2616
  ];
2615
2617
  };
2616
2618
 
2619
+ /** Collect Column data */
2620
+ function gatherColumnData(data) {
2621
+ const parent = data.uuid;
2622
+ const colDimension = data.dimensions[data.colType].store;
2623
+ const realWidth = colDimension.get('realSize');
2624
+ const prop = {
2625
+ contentWidth: realWidth,
2626
+ class: data.colType,
2627
+ [`${UUID}`]: data.uuid,
2628
+ contentHeight: data.contentHeight,
2629
+ key: data.colType,
2630
+ onResizeViewport: data.onResizeViewport,
2631
+ };
2632
+ // set viewport size to real size
2633
+ if (data.fixWidth) {
2634
+ prop.style = { minWidth: `${realWidth}px` };
2635
+ }
2636
+ const headerProp = {
2637
+ parent,
2638
+ colData: getVisibleSourceItem(data.colStore),
2639
+ dimensionCol: colDimension,
2640
+ groups: data.colStore.get('groups'),
2641
+ groupingDepth: data.colStore.get('groupingDepth'),
2642
+ resizeHandler: data.colType === 'colPinEnd' ? ['l'] : undefined,
2643
+ onHeaderresize: data.onHeaderresize,
2644
+ };
2645
+ return {
2646
+ prop,
2647
+ type: data.colType,
2648
+ position: data.position,
2649
+ headerProp,
2650
+ parent,
2651
+ viewportCol: data.viewports[data.colType].store,
2652
+ };
2653
+ }
2617
2654
  class ViewportService {
2618
- constructor(sv, contentHeight) {
2655
+ constructor(config, contentHeight) {
2619
2656
  var _a, _b;
2620
- this.sv = sv;
2621
- (_a = this.sv.selectionStoreConnector) === null || _a === void 0 ? void 0 : _a.beforeUpdate();
2622
- this.columns = this.getViewportColumnData(contentHeight);
2623
- (_b = this.sv.scrollingService) === null || _b === void 0 ? void 0 : _b.unregister();
2624
- }
2625
- onColumnResize(type, { detail }, store) {
2626
- var _a;
2627
- (_a = this.sv.dimensionProvider) === null || _a === void 0 ? void 0 : _a.setCustomSizes(type, detail, true);
2628
- const changedItems = lodash.reduce(detail || {}, (r, size, i) => {
2629
- const index = parseInt(i, 10);
2630
- const item = getSourceItem(store, index);
2631
- if (item) {
2632
- r[index] = Object.assign(Object.assign({}, item), { size });
2633
- }
2634
- return r;
2635
- }, {});
2636
- this.sv.resize(changedItems);
2637
- }
2638
- /**
2639
- * Transform data from stores and apply it to different components
2640
- * Handle columns
2641
- */
2642
- getViewportColumnData(contentHeight) {
2657
+ this.config = config;
2658
+ (_a = this.config.selectionStoreConnector) === null || _a === void 0 ? void 0 : _a.beforeUpdate();
2659
+ // ----------- Handle columns ----------- //
2660
+ // Transform data from stores and apply it to different components
2643
2661
  const columns = [];
2644
2662
  let x = 0; // we increase x only if column present
2645
2663
  columnTypes.forEach(val => {
2646
- const colStore = this.sv.columnProvider.stores[val].store;
2664
+ const colStore = config.columnProvider.stores[val].store;
2647
2665
  // only columns that have data show
2648
2666
  if (!colStore.get('items').length) {
2649
2667
  return;
@@ -2652,18 +2670,30 @@ class ViewportService {
2652
2670
  colType: val,
2653
2671
  position: { x, y: 1 },
2654
2672
  contentHeight,
2673
+ // only central column has dynamic width
2655
2674
  fixWidth: val !== 'rgCol',
2656
- uuid: `${this.sv.uuid}-${x}`,
2657
- viewports: this.sv.viewportProvider.stores,
2658
- dimensions: this.sv.dimensionProvider.stores,
2659
- rowStores: this.sv.dataProvider.stores,
2675
+ uuid: `${config.uuid}-${x}`,
2676
+ viewports: config.viewportProvider.stores,
2677
+ dimensions: config.dimensionProvider.stores,
2678
+ rowStores: config.dataProvider.stores,
2660
2679
  colStore,
2661
2680
  onHeaderresize: e => this.onColumnResize(val, e, colStore),
2662
2681
  };
2663
2682
  if (val === 'rgCol') {
2664
- column.onResizeViewport = (e) => { var _a; return (_a = this.sv.viewportProvider) === null || _a === void 0 ? void 0 : _a.setViewport(e.detail.dimension, { virtualSize: e.detail.size }); };
2683
+ column.onResizeViewport = (e) => {
2684
+ var _a;
2685
+ if (config.disableVirtualY && e.detail.dimension === 'rgRow') {
2686
+ return;
2687
+ }
2688
+ else if (config.disableVirtualX && e.detail.dimension === 'rgCol') {
2689
+ return;
2690
+ }
2691
+ (_a = config.viewportProvider) === null || _a === void 0 ? void 0 : _a.setViewport(e.detail.dimension, {
2692
+ virtualSize: e.detail.size,
2693
+ });
2694
+ };
2665
2695
  }
2666
- const colData = this.gatherColumnData(column);
2696
+ const colData = gatherColumnData(column);
2667
2697
  const columnSelectionStore = this.registerCol(colData.position.x, val);
2668
2698
  // render per each column data collections vertically
2669
2699
  const dataPorts = this.dataViewPort(column).reduce((r, rgRow) => {
@@ -2672,14 +2702,14 @@ class ViewportService {
2672
2702
  segmentSelection.setLastCell(rgRow.lastCell);
2673
2703
  // register selection store for Row
2674
2704
  const rowSelectionStore = this.registerRow(rgRow.position.y, rgRow.type);
2675
- const rowDef = Object.assign(Object.assign({}, rgRow), { rowSelectionStore, segmentSelectionStore: segmentSelection.store, ref: (e) => this.sv.selectionStoreConnector.registerSection(e), onSetRange: e => {
2705
+ const rowDef = Object.assign(Object.assign({}, rgRow), { rowSelectionStore, segmentSelectionStore: segmentSelection.store, ref: (e) => config.selectionStoreConnector.registerSection(e), onSetRange: e => {
2676
2706
  segmentSelection.setRangeArea(e.detail);
2677
2707
  }, onSetTempRange: e => {
2678
2708
  segmentSelection.setTempArea(e.detail);
2679
2709
  }, onFocusCell: e => {
2680
2710
  // todo: multi focus
2681
2711
  segmentSelection.clearFocus();
2682
- this.sv.selectionStoreConnector.focus(segmentSelection, e.detail);
2712
+ config.selectionStoreConnector.focus(segmentSelection, e.detail);
2683
2713
  } });
2684
2714
  r.push(rowDef);
2685
2715
  return r;
@@ -2688,52 +2718,34 @@ class ViewportService {
2688
2718
  dataPorts }));
2689
2719
  x++;
2690
2720
  });
2691
- return columns;
2721
+ this.columns = columns;
2722
+ // ----------- Handle columns end ----------- //
2723
+ (_b = this.config.scrollingService) === null || _b === void 0 ? void 0 : _b.unregister();
2724
+ }
2725
+ onColumnResize(type, { detail }, store) {
2726
+ var _a;
2727
+ (_a = this.config.dimensionProvider) === null || _a === void 0 ? void 0 : _a.setCustomSizes(type, detail, true);
2728
+ const changedItems = lodash.reduce(detail || {}, (r, size, i) => {
2729
+ const index = parseInt(i, 10);
2730
+ const item = getSourceItem(store, index);
2731
+ if (item) {
2732
+ r[index] = Object.assign(Object.assign({}, item), { size });
2733
+ }
2734
+ return r;
2735
+ }, {});
2736
+ this.config.resize(changedItems);
2692
2737
  }
2693
2738
  /** register selection store for Segment */
2694
2739
  registerSegment(position) {
2695
- return this.sv.selectionStoreConnector.register(position);
2740
+ return this.config.selectionStoreConnector.register(position);
2696
2741
  }
2697
2742
  /** register selection store for Row */
2698
2743
  registerRow(y, type) {
2699
- return this.sv.selectionStoreConnector.registerRow(y, type).store;
2744
+ return this.config.selectionStoreConnector.registerRow(y, type).store;
2700
2745
  }
2701
2746
  /** register selection store for Column */
2702
2747
  registerCol(x, type) {
2703
- return this.sv.selectionStoreConnector.registerColumn(x, type).store;
2704
- }
2705
- /** Collect Column data */
2706
- gatherColumnData(data) {
2707
- const parent = data.uuid;
2708
- const realSize = data.dimensions[data.colType].store.get('realSize');
2709
- const prop = {
2710
- contentWidth: realSize,
2711
- class: data.colType,
2712
- [`${UUID}`]: data.uuid,
2713
- contentHeight: data.contentHeight,
2714
- key: data.colType,
2715
- onResizeViewport: data.onResizeViewport,
2716
- };
2717
- if (data.fixWidth) {
2718
- prop.style = { minWidth: `${realSize}px` };
2719
- }
2720
- const headerProp = {
2721
- parent,
2722
- colData: getVisibleSourceItem(data.colStore),
2723
- dimensionCol: data.dimensions[data.colType].store,
2724
- groups: data.colStore.get('groups'),
2725
- groupingDepth: data.colStore.get('groupingDepth'),
2726
- resizeHandler: data.colType === 'colPinEnd' ? ['l'] : undefined,
2727
- onHeaderresize: data.onHeaderresize,
2728
- };
2729
- return {
2730
- prop,
2731
- type: data.colType,
2732
- position: data.position,
2733
- headerProp,
2734
- parent,
2735
- viewportCol: data.viewports[data.colType].store,
2736
- };
2748
+ return this.config.selectionStoreConnector.registerColumn(x, type).store;
2737
2749
  }
2738
2750
  /** Collect Row data */
2739
2751
  dataViewPort(data) {
@@ -2769,38 +2781,43 @@ class ViewportService {
2769
2781
  dataStore: data.rowStores[type].store,
2770
2782
  dimensionCol: data.dimensions[data.colType].store,
2771
2783
  dimensionRow: data.dimensions[type].store,
2772
- style: fixed ? { height: `${data.dimensions[type].store.get('realSize')}px` } : undefined,
2784
+ style: fixed
2785
+ ? { height: `${data.dimensions[type].store.get('realSize')}px` }
2786
+ : undefined,
2773
2787
  };
2774
2788
  }
2775
2789
  scrollToCell(cell) {
2776
2790
  for (let key in cell) {
2777
2791
  const coordinate = cell[key];
2778
- this.sv.scrollingService.scrollService({ dimension: key === 'x' ? 'rgCol' : 'rgRow', coordinate });
2792
+ this.config.scrollingService.scrollService({
2793
+ dimension: key === 'x' ? 'rgCol' : 'rgRow',
2794
+ coordinate,
2795
+ });
2779
2796
  }
2780
2797
  }
2781
2798
  /**
2782
2799
  * Clear current grid focus
2783
2800
  */
2784
2801
  clearFocused() {
2785
- this.sv.selectionStoreConnector.clearAll();
2802
+ this.config.selectionStoreConnector.clearAll();
2786
2803
  }
2787
2804
  clearEdit() {
2788
- this.sv.selectionStoreConnector.setEdit(false);
2805
+ this.config.selectionStoreConnector.setEdit(false);
2789
2806
  }
2790
2807
  /**
2791
2808
  * Collect focused element data
2792
2809
  */
2793
2810
  getFocused() {
2794
- const focused = this.sv.selectionStoreConnector.focusedStore;
2811
+ const focused = this.config.selectionStoreConnector.focusedStore;
2795
2812
  if (!focused) {
2796
2813
  return null;
2797
2814
  }
2798
2815
  // get column data
2799
- const colType = this.sv.selectionStoreConnector.storesXToType[focused.position.x];
2800
- const column = this.sv.columnProvider.getColumn(focused.cell.x, colType);
2816
+ const colType = this.config.selectionStoreConnector.storesXToType[focused.position.x];
2817
+ const column = this.config.columnProvider.getColumn(focused.cell.x, colType);
2801
2818
  // get row data
2802
- const rowType = this.sv.selectionStoreConnector.storesYToType[focused.position.y];
2803
- const model = this.sv.dataProvider.getModel(focused.cell.y, rowType);
2819
+ const rowType = this.config.selectionStoreConnector.storesYToType[focused.position.y];
2820
+ const model = this.config.dataProvider.getModel(focused.cell.y, rowType);
2804
2821
  return {
2805
2822
  column,
2806
2823
  model,
@@ -2810,7 +2827,7 @@ class ViewportService {
2810
2827
  };
2811
2828
  }
2812
2829
  getStoreCoordinateByType(colType, rowType) {
2813
- const stores = this.sv.selectionStoreConnector.storesByType;
2830
+ const stores = this.config.selectionStoreConnector.storesByType;
2814
2831
  const storeCoordinate = {
2815
2832
  x: stores[colType],
2816
2833
  y: stores[rowType],
@@ -2819,14 +2836,14 @@ class ViewportService {
2819
2836
  }
2820
2837
  setFocus(colType, rowType, start, end) {
2821
2838
  var _a;
2822
- (_a = this.sv.selectionStoreConnector) === null || _a === void 0 ? void 0 : _a.focusByCell(this.getStoreCoordinateByType(colType, rowType), start, end);
2839
+ (_a = this.config.selectionStoreConnector) === null || _a === void 0 ? void 0 : _a.focusByCell(this.getStoreCoordinateByType(colType, rowType), start, end);
2823
2840
  }
2824
2841
  getSelectedRange() {
2825
- return this.sv.selectionStoreConnector.selectedRange;
2842
+ return this.config.selectionStoreConnector.selectedRange;
2826
2843
  }
2827
2844
  setEdit(rowIndex, colIndex, colType, rowType) {
2828
2845
  var _a;
2829
- (_a = this.sv.selectionStoreConnector) === null || _a === void 0 ? void 0 : _a.setEditByCell(this.getStoreCoordinateByType(colType, rowType), { x: colIndex, y: rowIndex });
2846
+ (_a = this.config.selectionStoreConnector) === null || _a === void 0 ? void 0 : _a.setEditByCell(this.getStoreCoordinateByType(colType, rowType), { x: colIndex, y: rowIndex });
2830
2847
  }
2831
2848
  }
2832
2849
 
@@ -3360,6 +3377,8 @@ const RevoGridComponent = /*@__PURE__*/ proxyCustomElement(class RevoGridCompone
3360
3377
  this.grouping = undefined;
3361
3378
  this.stretch = true;
3362
3379
  this.additionalData = {};
3380
+ this.disableVirtualX = false;
3381
+ this.disableVirtualY = false;
3363
3382
  this.extraElements = [];
3364
3383
  }
3365
3384
  // --------------------------------------------------------------------------
@@ -3590,7 +3609,7 @@ const RevoGridComponent = /*@__PURE__*/ proxyCustomElement(class RevoGridCompone
3590
3609
  var _a;
3591
3610
  (_a = this.orderService) === null || _a === void 0 ? void 0 : _a.end();
3592
3611
  }
3593
- onRowDrag({ detail }) {
3612
+ onRowDrag({ detail, }) {
3594
3613
  var _a;
3595
3614
  (_a = this.orderService) === null || _a === void 0 ? void 0 : _a.move(detail);
3596
3615
  }
@@ -3662,7 +3681,9 @@ const RevoGridComponent = /*@__PURE__*/ proxyCustomElement(class RevoGridCompone
3662
3681
  this.beforecolumnsset.emit(columnGather);
3663
3682
  for (let type of columnTypes) {
3664
3683
  const items = columnGather.columns[type];
3665
- this.dimensionProvider.setNewColumns(type, items.length, ColumnDataProvider.getSizes(items), type !== 'rgCol');
3684
+ // for pinned col no need virtual data
3685
+ const noVirtual = type !== 'rgCol' || this.disableVirtualX;
3686
+ this.dimensionProvider.setNewColumns(type, items.length, ColumnDataProvider.getSizes(items), noVirtual);
3666
3687
  }
3667
3688
  this.beforecolumnapplied.emit(columnGather);
3668
3689
  const columns = this.columnProvider.setColumns(columnGather);
@@ -3671,9 +3692,16 @@ const RevoGridComponent = /*@__PURE__*/ proxyCustomElement(class RevoGridCompone
3671
3692
  order: this.columnProvider.order,
3672
3693
  });
3673
3694
  }
3695
+ disableVirtualXChanged(newVal = false, prevVal = false) {
3696
+ if (newVal === prevVal) {
3697
+ return;
3698
+ }
3699
+ this.columnChanged(this.columns);
3700
+ }
3674
3701
  rowSizeChanged(s) {
3702
+ // clear existing data
3675
3703
  this.dimensionProvider.setSettings({ originItemSize: s }, 'rgRow');
3676
- rowTypes.forEach((t) => {
3704
+ rowTypes.forEach(t => {
3677
3705
  this.dimensionProvider.clearSize(t, this.dataProvider.stores[t].store.get('source').length);
3678
3706
  this.dimensionProvider.setCustomSizes(t, {}, true);
3679
3707
  });
@@ -3707,7 +3735,7 @@ const RevoGridComponent = /*@__PURE__*/ proxyCustomElement(class RevoGridCompone
3707
3735
  source: newVal,
3708
3736
  });
3709
3737
  const newSource = [...beforesourceset.detail.source];
3710
- this.dataProvider.setData(newSource, type);
3738
+ this.dataProvider.setData(newSource, type, this.disableVirtualY);
3711
3739
  /** applied for source only for cross compatability between plugins */
3712
3740
  if (watchName === 'source') {
3713
3741
  this.aftersourceset.emit({
@@ -3720,10 +3748,16 @@ const RevoGridComponent = /*@__PURE__*/ proxyCustomElement(class RevoGridCompone
3720
3748
  source: newVal,
3721
3749
  });
3722
3750
  }
3751
+ disableVirtualYChanged(newVal = false, prevVal = false) {
3752
+ if (newVal === prevVal) {
3753
+ return;
3754
+ }
3755
+ this.dataSourceChanged(this.source, this.source, 'source');
3756
+ }
3723
3757
  rowDefChanged(after, before) {
3724
- const { detail: { vals: newVal, oldVals: oldVal } } = this.beforerowdefinition.emit({
3758
+ const { detail: { vals: newVal, oldVals: oldVal }, } = this.beforerowdefinition.emit({
3725
3759
  vals: after,
3726
- oldVals: before
3760
+ oldVals: before,
3727
3761
  });
3728
3762
  // apply new vals
3729
3763
  const newRows = rowDefinitionByType(newVal);
@@ -3816,7 +3850,9 @@ const RevoGridComponent = /*@__PURE__*/ proxyCustomElement(class RevoGridCompone
3816
3850
  dataProvider: this.dataProvider,
3817
3851
  columnProvider: this.columnProvider,
3818
3852
  dimensionProvider: this.dimensionProvider,
3819
- }, typeof this.autoSizeColumn === 'object' ? this.autoSizeColumn : undefined));
3853
+ }, typeof this.autoSizeColumn === 'object'
3854
+ ? this.autoSizeColumn
3855
+ : undefined));
3820
3856
  }
3821
3857
  if (this.filter) {
3822
3858
  this.internalPlugins.push(new FilterPlugin(this.element, this.uuid, typeof this.filter === 'object' ? this.filter : undefined));
@@ -3870,6 +3906,8 @@ const RevoGridComponent = /*@__PURE__*/ proxyCustomElement(class RevoGridCompone
3870
3906
  scrollingService: this.scrollingService,
3871
3907
  orderService: this.orderService,
3872
3908
  selectionStoreConnector: this.selectionStoreConnector,
3909
+ disableVirtualX: this.disableVirtualX,
3910
+ disableVirtualY: this.disableVirtualY,
3873
3911
  resize: c => this.aftercolumnresize.emit(c),
3874
3912
  }, contentHeight);
3875
3913
  const views = [];
@@ -3887,17 +3925,19 @@ const RevoGridComponent = /*@__PURE__*/ proxyCustomElement(class RevoGridCompone
3887
3925
  }, onCancelEdit: () => {
3888
3926
  this.selectionStoreConnector.setEdit(false);
3889
3927
  }, registerElement: (e, k) => this.scrollingService.registerElement(e, k), scrollSection: (details, k) => this.scrollingService.scrollService(details, k), scrollSectionSilent: (details, k) => this.scrollingService.scrollSilentService(details, k), focusTemplate: this.focusTemplate }));
3890
- return (h(Host, Object.assign({}, { [`${UUID}`]: this.uuid }), h(RevoViewPort, { viewports: this.viewportProvider.stores, dimensions: this.dimensionProvider.stores, orderRef: e => (this.orderService = e), registerElement: (e, k) => this.scrollingService.registerElement(e, k), nakedClick: () => this.viewport.clearEdit(), onScroll: details => this.scrollingService.scrollService(details) }, h("slot", { name: 'viewport' }), views), this.extraElements));
3928
+ return (h(Host, Object.assign({}, { [`${UUID}`]: this.uuid }), h(RevoViewPort, { viewports: this.viewportProvider.stores, dimensions: this.dimensionProvider.stores, orderRef: e => (this.orderService = e), registerElement: (e, k) => this.scrollingService.registerElement(e, k), nakedClick: () => this.viewport.clearEdit(), onScroll: details => this.scrollingService.scrollService(details) }, h("slot", { name: "viewport" }), views), this.extraElements));
3891
3929
  }
3892
3930
  get element() { return this; }
3893
3931
  static get watchers() { return {
3894
3932
  "columnTypes": ["columnTypesChanged"],
3895
3933
  "columns": ["columnChanged"],
3934
+ "disableVirtualX": ["disableVirtualXChanged"],
3896
3935
  "rowSize": ["rowSizeChanged"],
3897
3936
  "theme": ["themeChanged"],
3898
3937
  "source": ["dataSourceChanged"],
3899
3938
  "pinnedBottomSource": ["dataSourceChanged"],
3900
3939
  "pinnedTopSource": ["dataSourceChanged"],
3940
+ "disableVirtualY": ["disableVirtualYChanged"],
3901
3941
  "rowDefinitions": ["rowDefChanged"],
3902
3942
  "trimmedRows": ["trimmedRowsChanged"],
3903
3943
  "grouping": ["groupingChanged"],
@@ -3936,6 +3976,8 @@ const RevoGridComponent = /*@__PURE__*/ proxyCustomElement(class RevoGridCompone
3936
3976
  "grouping": [16],
3937
3977
  "stretch": [8],
3938
3978
  "additionalData": [8, "additional-data"],
3979
+ "disableVirtualX": [4, "disable-virtual-x"],
3980
+ "disableVirtualY": [4, "disable-virtual-y"],
3939
3981
  "extraElements": [32],
3940
3982
  "refresh": [64],
3941
3983
  "scrollToRow": [64],