@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.
- package/custom-element/revo-grid.js +139 -97
- package/custom-element/revo-grid.js.map +1 -1
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/revo-grid.cjs.entry.js +137 -97
- package/dist/cjs/revo-grid.cjs.entry.js.map +1 -1
- package/dist/cjs/revo-grid.cjs.js +1 -1
- package/dist/collection/components/revoGrid/revo-grid.d.ts +17 -5
- package/dist/collection/components/revoGrid/revo-grid.js +80 -17
- package/dist/collection/components/revoGrid/revo-grid.js.map +1 -1
- package/dist/collection/components/revoGrid/viewport.interfaces.js.map +1 -1
- package/dist/collection/components/revoGrid/viewport.service.d.ts +4 -9
- package/dist/collection/components/revoGrid/viewport.service.js +101 -86
- package/dist/collection/components/revoGrid/viewport.service.js.map +1 -1
- package/dist/collection/components.d.ts +39 -8
- package/dist/collection/plugins/groupingRow/grouping.row.plugin.js +7 -7
- package/dist/collection/plugins/groupingRow/grouping.row.plugin.js.map +1 -1
- package/dist/collection/services/data.provider.d.ts +1 -1
- package/dist/collection/services/data.provider.js +4 -2
- package/dist/collection/services/data.provider.js.map +1 -1
- package/dist/collection/services/dimension.provider.js.map +1 -1
- package/dist/esm/loader.js +1 -1
- package/dist/esm/revo-grid.entry.js +137 -97
- package/dist/esm/revo-grid.entry.js.map +1 -1
- package/dist/esm/revo-grid.js +1 -1
- package/dist/revo-grid/revo-grid.entry.js +1 -1
- package/dist/revo-grid/revo-grid.entry.js.map +1 -1
- package/dist/revo-grid/revo-grid.esm.js +1 -1
- package/dist/revo-grid/revo-grid.esm.js.map +1 -1
- package/dist/types/components/revoGrid/revo-grid.d.ts +17 -5
- package/dist/types/components/revoGrid/viewport.service.d.ts +4 -9
- package/dist/types/components.d.ts +39 -8
- package/dist/types/services/data.provider.d.ts +1 -1
- 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
|
-
|
|
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(
|
|
2655
|
+
constructor(config, contentHeight) {
|
|
2619
2656
|
var _a, _b;
|
|
2620
|
-
this.
|
|
2621
|
-
(_a = this.
|
|
2622
|
-
|
|
2623
|
-
|
|
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 =
|
|
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: `${
|
|
2657
|
-
viewports:
|
|
2658
|
-
dimensions:
|
|
2659
|
-
rowStores:
|
|
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) => {
|
|
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 =
|
|
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) =>
|
|
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
|
-
|
|
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
|
-
|
|
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.
|
|
2740
|
+
return this.config.selectionStoreConnector.register(position);
|
|
2696
2741
|
}
|
|
2697
2742
|
/** register selection store for Row */
|
|
2698
2743
|
registerRow(y, type) {
|
|
2699
|
-
return this.
|
|
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.
|
|
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
|
|
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.
|
|
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.
|
|
2802
|
+
this.config.selectionStoreConnector.clearAll();
|
|
2786
2803
|
}
|
|
2787
2804
|
clearEdit() {
|
|
2788
|
-
this.
|
|
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.
|
|
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.
|
|
2800
|
-
const column = this.
|
|
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.
|
|
2803
|
-
const model = this.
|
|
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.
|
|
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.
|
|
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.
|
|
2842
|
+
return this.config.selectionStoreConnector.selectedRange;
|
|
2826
2843
|
}
|
|
2827
2844
|
setEdit(rowIndex, colIndex, colType, rowType) {
|
|
2828
2845
|
var _a;
|
|
2829
|
-
(_a = this.
|
|
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
|
-
|
|
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(
|
|
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'
|
|
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:
|
|
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],
|