@revolist/revogrid 4.9.41 → 4.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/{column.drag.plugin-fcd892ec.js → column.drag.plugin-7098477f.js} +117 -46
- package/dist/cjs/column.drag.plugin-7098477f.js.map +1 -0
- package/dist/cjs/{column.service-26c61ed6.js → column.service-f1d5d924.js} +5 -10
- package/dist/cjs/column.service-f1d5d924.js.map +1 -0
- package/dist/cjs/{edit.utils-179c0800.js → edit.utils-75fa1cab.js} +2 -2
- package/dist/cjs/{edit.utils-179c0800.js.map → edit.utils-75fa1cab.js.map} +1 -1
- package/dist/cjs/{header-cell-renderer-d879d95e.js → header-cell-renderer-aaaad4c8.js} +2 -2
- package/dist/cjs/{header-cell-renderer-d879d95e.js.map → header-cell-renderer-aaaad4c8.js.map} +1 -1
- package/dist/cjs/{index-3ab26ab9.js → index-aecb871a.js} +3 -6
- package/dist/cjs/index-aecb871a.js.map +1 -0
- package/dist/cjs/index.cjs.js +8 -7
- package/dist/cjs/index.cjs.js.map +1 -1
- package/dist/cjs/{key.utils-f49d7bee.js → key.utils-8f1105f3.js} +2 -2
- package/dist/cjs/{key.utils-f49d7bee.js.map → key.utils-8f1105f3.js.map} +1 -1
- package/dist/cjs/revo-grid.cjs.entry.js +26 -35
- package/dist/cjs/revo-grid.cjs.entry.js.map +1 -1
- package/dist/cjs/revogr-attribution_7.cjs.entry.js +6 -6
- package/dist/cjs/revogr-clipboard_3.cjs.entry.js +4 -4
- package/dist/cjs/revogr-data_4.cjs.entry.js +36 -13
- package/dist/cjs/revogr-data_4.cjs.entry.js.map +1 -1
- package/dist/cjs/{row-header-utils-c37f76e4.js → row-header-utils-208e4026.js} +3 -3
- package/dist/cjs/{row-header-utils-c37f76e4.js.map → row-header-utils-208e4026.js.map} +1 -1
- package/dist/cjs/{text-editor-b756d6b3.js → text-editor-b64a080e.js} +3 -3
- package/dist/cjs/{text-editor-b756d6b3.js.map → text-editor-b64a080e.js.map} +1 -1
- package/dist/cjs/{throttle-a57f51f9.js → throttle-3b362440.js} +2 -2
- package/dist/cjs/{throttle-a57f51f9.js.map → throttle-3b362440.js.map} +1 -1
- package/dist/collection/components/data/revogr-data.js +28 -3
- package/dist/collection/components/data/revogr-data.js.map +1 -1
- package/dist/collection/components/revoGrid/revo-grid.js +7 -4
- package/dist/collection/components/revoGrid/revo-grid.js.map +1 -1
- package/dist/collection/components/scroll/revogr-viewport-scroll.js +26 -8
- package/dist/collection/components/scroll/revogr-viewport-scroll.js.map +1 -1
- package/dist/collection/plugins/filter/filter.plugin.js +3 -0
- package/dist/collection/plugins/filter/filter.plugin.js.map +1 -1
- package/dist/collection/plugins/sorting/sorting.plugin.js +7 -4
- package/dist/collection/plugins/sorting/sorting.plugin.js.map +1 -1
- package/dist/collection/services/dimension.provider.js +7 -22
- package/dist/collection/services/dimension.provider.js.map +1 -1
- package/dist/collection/store/dataSource/trimmed.plugin.js +3 -8
- package/dist/collection/store/dataSource/trimmed.plugin.js.map +1 -1
- package/dist/collection/store/dimension/dimension.helpers.js +2 -5
- package/dist/collection/store/dimension/dimension.helpers.js.map +1 -1
- package/dist/collection/store/dimension/dimension.recalculate.plugin.js +35 -0
- package/dist/collection/store/dimension/dimension.recalculate.plugin.js.map +1 -0
- package/dist/collection/store/dimension/dimension.store.js +46 -66
- package/dist/collection/store/dimension/dimension.store.js.map +1 -1
- package/dist/collection/store/dimension/dimension.trim.plugin.js +61 -0
- package/dist/collection/store/dimension/dimension.trim.plugin.js.map +1 -0
- package/dist/collection/types/events.js +1 -0
- package/dist/collection/types/events.js.map +1 -1
- package/dist/collection/types/interfaces.js.map +1 -1
- package/dist/esm/{column.drag.plugin-3cc77986.js → column.drag.plugin-813698d2.js} +117 -46
- package/dist/esm/column.drag.plugin-813698d2.js.map +1 -0
- package/dist/esm/{column.service-751345b2.js → column.service-aa142672.js} +5 -10
- package/dist/esm/column.service-aa142672.js.map +1 -0
- package/dist/esm/{edit.utils-6fc686b9.js → edit.utils-cd6a3224.js} +2 -2
- package/dist/esm/{edit.utils-6fc686b9.js.map → edit.utils-cd6a3224.js.map} +1 -1
- package/dist/esm/{header-cell-renderer-32d2ed96.js → header-cell-renderer-5939221a.js} +2 -2
- package/dist/esm/{header-cell-renderer-32d2ed96.js.map → header-cell-renderer-5939221a.js.map} +1 -1
- package/dist/esm/{index-1dcad6ef.js → index-dbd1c020.js} +3 -6
- package/dist/esm/index-dbd1c020.js.map +1 -0
- package/dist/esm/index.js +8 -7
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/{key.utils-17273f42.js → key.utils-5ff2ec82.js} +2 -2
- package/dist/esm/{key.utils-17273f42.js.map → key.utils-5ff2ec82.js.map} +1 -1
- package/dist/esm/revo-grid.entry.js +26 -35
- package/dist/esm/revo-grid.entry.js.map +1 -1
- package/dist/esm/revogr-attribution_7.entry.js +6 -6
- package/dist/esm/revogr-clipboard_3.entry.js +4 -4
- package/dist/esm/revogr-data_4.entry.js +36 -13
- package/dist/esm/revogr-data_4.entry.js.map +1 -1
- package/dist/esm/{row-header-utils-3dfbb81f.js → row-header-utils-5511678e.js} +3 -3
- package/dist/esm/{row-header-utils-3dfbb81f.js.map → row-header-utils-5511678e.js.map} +1 -1
- package/dist/esm/{text-editor-901c3eb8.js → text-editor-81767dcb.js} +3 -3
- package/dist/esm/{text-editor-901c3eb8.js.map → text-editor-81767dcb.js.map} +1 -1
- package/dist/esm/{throttle-138d69c3.js → throttle-4eff5b3c.js} +2 -2
- package/dist/esm/{throttle-138d69c3.js.map → throttle-4eff5b3c.js.map} +1 -1
- package/dist/revo-grid/column.drag.plugin-813698d2.js +5 -0
- package/dist/revo-grid/column.drag.plugin-813698d2.js.map +1 -0
- package/dist/revo-grid/{column.service-751345b2.js → column.service-aa142672.js} +2 -2
- package/dist/revo-grid/{column.service-751345b2.js.map → column.service-aa142672.js.map} +1 -1
- package/dist/revo-grid/{edit.utils-6fc686b9.js → edit.utils-cd6a3224.js} +2 -2
- package/dist/revo-grid/{header-cell-renderer-32d2ed96.js → header-cell-renderer-5939221a.js} +2 -2
- package/dist/revo-grid/index-dbd1c020.js +5 -0
- package/dist/revo-grid/index-dbd1c020.js.map +1 -0
- package/dist/revo-grid/index.esm.js +1 -1
- package/dist/revo-grid/index.esm.js.map +1 -1
- package/dist/revo-grid/{key.utils-17273f42.js → key.utils-5ff2ec82.js} +2 -2
- 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/revogr-attribution_7.entry.js +1 -1
- package/dist/revo-grid/revogr-clipboard_3.entry.js +1 -1
- package/dist/revo-grid/revogr-data_4.entry.js +1 -1
- package/dist/revo-grid/revogr-data_4.entry.js.map +1 -1
- package/dist/revo-grid/{row-header-utils-3dfbb81f.js → row-header-utils-5511678e.js} +2 -2
- package/dist/revo-grid/{text-editor-901c3eb8.js → text-editor-81767dcb.js} +2 -2
- package/dist/revo-grid/{throttle-138d69c3.js → throttle-4eff5b3c.js} +2 -2
- package/dist/types/components/data/revogr-data.d.ts +6 -2
- package/dist/types/components/revoGrid/revo-grid.d.ts +1 -1
- package/dist/types/components/scroll/revogr-viewport-scroll.d.ts +1 -1
- package/dist/types/components.d.ts +7 -2
- package/dist/types/services/dimension.provider.d.ts +1 -1
- package/dist/types/store/dimension/dimension.helpers.d.ts +0 -3
- package/dist/types/store/dimension/dimension.recalculate.plugin.d.ts +9 -0
- package/dist/types/store/dimension/dimension.store.d.ts +2 -1
- package/dist/types/store/dimension/dimension.trim.plugin.d.ts +13 -0
- package/dist/types/types/events.d.ts +1 -1
- package/dist/types/types/interfaces.d.ts +6 -1
- package/hydrate/index.js +170 -93
- package/hydrate/index.mjs +170 -93
- package/package.json +1 -1
- package/standalone/data.store.js +3 -8
- package/standalone/data.store.js.map +1 -1
- package/standalone/dimension.helpers.js +2 -5
- package/standalone/dimension.helpers.js.map +1 -1
- package/standalone/index.js +1 -0
- package/standalone/index.js.map +1 -1
- package/standalone/revo-grid.js +133 -71
- package/standalone/revo-grid.js.map +1 -1
- package/standalone/revogr-data2.js +6 -1
- package/standalone/revogr-data2.js.map +1 -1
- package/standalone/revogr-viewport-scroll2.js +26 -8
- package/standalone/revogr-viewport-scroll2.js.map +1 -1
- package/dist/cjs/column.drag.plugin-fcd892ec.js.map +0 -1
- package/dist/cjs/column.service-26c61ed6.js.map +0 -1
- package/dist/cjs/index-3ab26ab9.js.map +0 -1
- package/dist/esm/column.drag.plugin-3cc77986.js.map +0 -1
- package/dist/esm/column.service-751345b2.js.map +0 -1
- package/dist/esm/index-1dcad6ef.js.map +0 -1
- package/dist/revo-grid/column.drag.plugin-3cc77986.js +0 -5
- package/dist/revo-grid/column.drag.plugin-3cc77986.js.map +0 -1
- package/dist/revo-grid/index-1dcad6ef.js +0 -5
- package/dist/revo-grid/index-1dcad6ef.js.map +0 -1
- /package/dist/revo-grid/{edit.utils-6fc686b9.js.map → edit.utils-cd6a3224.js.map} +0 -0
- /package/dist/revo-grid/{header-cell-renderer-32d2ed96.js.map → header-cell-renderer-5939221a.js.map} +0 -0
- /package/dist/revo-grid/{key.utils-17273f42.js.map → key.utils-5ff2ec82.js.map} +0 -0
- /package/dist/revo-grid/{row-header-utils-3dfbb81f.js.map → row-header-utils-5511678e.js.map} +0 -0
- /package/dist/revo-grid/{text-editor-901c3eb8.js.map → text-editor-81767dcb.js.map} +0 -0
- /package/dist/revo-grid/{throttle-138d69c3.js.map → throttle-4eff5b3c.js.map} +0 -0
package/hydrate/index.mjs
CHANGED
|
@@ -6310,18 +6310,13 @@ const createStore = (defaultState, shouldUpdate) => {
|
|
|
6310
6310
|
const trimmedPlugin$1 = (store) => ({
|
|
6311
6311
|
set(k, newVal) {
|
|
6312
6312
|
switch (k) {
|
|
6313
|
-
case 'trimmed':
|
|
6313
|
+
case 'trimmed': {
|
|
6314
6314
|
const proxy = store.get('proxyItems');
|
|
6315
6315
|
const trimmed = gatherTrimmedItems(newVal);
|
|
6316
|
-
const newItems = proxy.
|
|
6317
|
-
// check if present in new trimmed remove from items (filter)
|
|
6318
|
-
if (!trimmed[v]) {
|
|
6319
|
-
result.push(v);
|
|
6320
|
-
}
|
|
6321
|
-
return result;
|
|
6322
|
-
}, []);
|
|
6316
|
+
const newItems = proxy.filter(v => !trimmed[v]);
|
|
6323
6317
|
store.set('items', newItems);
|
|
6324
6318
|
break;
|
|
6319
|
+
}
|
|
6325
6320
|
}
|
|
6326
6321
|
},
|
|
6327
6322
|
});
|
|
@@ -6797,10 +6792,8 @@ function calculateDimensionData(originItemSize, newSizes = {}) {
|
|
|
6797
6792
|
const positionIndexes = [];
|
|
6798
6793
|
const positionIndexToItem = {};
|
|
6799
6794
|
const indexToItem = {};
|
|
6800
|
-
// combine all new sizes
|
|
6801
|
-
const sizes = Object.assign({}, newSizes);
|
|
6802
6795
|
// prepare order sorted new sizes and calculate changed real size
|
|
6803
|
-
const newIndexes = Object.keys(
|
|
6796
|
+
const newIndexes = Object.keys(newSizes).map(Number).sort((a, b) => a - b);
|
|
6804
6797
|
// fill new coordinates based on what is changed
|
|
6805
6798
|
newIndexes.reduce((previous, itemIndex, i) => {
|
|
6806
6799
|
const newItem = {
|
|
@@ -6816,7 +6809,7 @@ function calculateDimensionData(originItemSize, newSizes = {}) {
|
|
|
6816
6809
|
else {
|
|
6817
6810
|
newItem.start = itemIndex * originItemSize;
|
|
6818
6811
|
}
|
|
6819
|
-
newItem.end = newItem.start +
|
|
6812
|
+
newItem.end = newItem.start + newSizes[itemIndex];
|
|
6820
6813
|
positionIndexes.push(newItem.start);
|
|
6821
6814
|
indexToItem[itemIndex] = positionIndexToItem[i] = newItem;
|
|
6822
6815
|
return newItem;
|
|
@@ -6826,7 +6819,6 @@ function calculateDimensionData(originItemSize, newSizes = {}) {
|
|
|
6826
6819
|
positionIndexes: [...positionIndexes],
|
|
6827
6820
|
positionIndexToItem: Object.assign({}, positionIndexToItem),
|
|
6828
6821
|
indexToItem,
|
|
6829
|
-
sizes,
|
|
6830
6822
|
};
|
|
6831
6823
|
}
|
|
6832
6824
|
/**
|
|
@@ -6887,37 +6879,6 @@ function getItemByIndex(dimension, index) {
|
|
|
6887
6879
|
return item;
|
|
6888
6880
|
}
|
|
6889
6881
|
|
|
6890
|
-
/**
|
|
6891
|
-
* Storing pre-calculated
|
|
6892
|
-
* Dimension information and sizes
|
|
6893
|
-
*/
|
|
6894
|
-
const trimmedPlugin = (store) => {
|
|
6895
|
-
let trimmedSize = {};
|
|
6896
|
-
const setTrimmed = (sizes, trimmed) => {
|
|
6897
|
-
const newSize = Object.assign({}, sizes);
|
|
6898
|
-
trimmedSize = {};
|
|
6899
|
-
for (const [index, v] of Object.entries(trimmed)) {
|
|
6900
|
-
const i = index;
|
|
6901
|
-
if (v && newSize[i]) {
|
|
6902
|
-
trimmedSize[i] = newSize[i];
|
|
6903
|
-
delete newSize[i];
|
|
6904
|
-
}
|
|
6905
|
-
}
|
|
6906
|
-
store.setDimensionSize(newSize);
|
|
6907
|
-
};
|
|
6908
|
-
return {
|
|
6909
|
-
set(key, val) {
|
|
6910
|
-
switch (key) {
|
|
6911
|
-
case 'trimmed':
|
|
6912
|
-
const trim = val;
|
|
6913
|
-
const sizes = store.store.get('sizes');
|
|
6914
|
-
// recover trimmed, apply new trim
|
|
6915
|
-
setTrimmed(Object.assign(Object.assign({}, sizes), trimmedSize), trim);
|
|
6916
|
-
break;
|
|
6917
|
-
}
|
|
6918
|
-
},
|
|
6919
|
-
};
|
|
6920
|
-
};
|
|
6921
6882
|
/**
|
|
6922
6883
|
* Plugin which recalculates realSize on changes of sizes, originItemSize and count
|
|
6923
6884
|
*/
|
|
@@ -6933,7 +6894,7 @@ const recalculateRealSizePlugin = (storeService) => {
|
|
|
6933
6894
|
switch (k) {
|
|
6934
6895
|
case 'count':
|
|
6935
6896
|
case 'sizes':
|
|
6936
|
-
case 'originItemSize':
|
|
6897
|
+
case 'originItemSize': {
|
|
6937
6898
|
// recalculate realSize
|
|
6938
6899
|
let realSize = 0;
|
|
6939
6900
|
const count = storeService.store.get('count');
|
|
@@ -6944,19 +6905,81 @@ const recalculateRealSizePlugin = (storeService) => {
|
|
|
6944
6905
|
}
|
|
6945
6906
|
storeService.setStore({ realSize });
|
|
6946
6907
|
break;
|
|
6908
|
+
}
|
|
6947
6909
|
}
|
|
6948
6910
|
},
|
|
6949
6911
|
};
|
|
6950
6912
|
};
|
|
6913
|
+
|
|
6914
|
+
/**
|
|
6915
|
+
* Plugin for trimming
|
|
6916
|
+
*
|
|
6917
|
+
* 1.a. Retrieves the previous sizes value. Saves the resulting trimmed data as a new sizes value.
|
|
6918
|
+
* 1.b. Stores a reference to the trimmed data to prevent further changes.
|
|
6919
|
+
* 2. Removes multiple and shifts the data based on the trimmed value.
|
|
6920
|
+
*/
|
|
6921
|
+
const trimmedPlugin = (storeService) => {
|
|
6922
|
+
let trimmingObject = null;
|
|
6923
|
+
let trimmedPreviousSizes = null;
|
|
6924
|
+
return {
|
|
6925
|
+
set(key, val) {
|
|
6926
|
+
switch (key) {
|
|
6927
|
+
case 'sizes': {
|
|
6928
|
+
// prevent changes after trimming
|
|
6929
|
+
if (trimmingObject && trimmingObject === val) {
|
|
6930
|
+
trimmingObject = null;
|
|
6931
|
+
return;
|
|
6932
|
+
}
|
|
6933
|
+
trimmedPreviousSizes = null;
|
|
6934
|
+
break;
|
|
6935
|
+
}
|
|
6936
|
+
case 'trimmed': {
|
|
6937
|
+
const trim = val;
|
|
6938
|
+
if (!trimmedPreviousSizes) {
|
|
6939
|
+
trimmedPreviousSizes = storeService.store.get('sizes');
|
|
6940
|
+
}
|
|
6941
|
+
trimmingObject = removeMultipleAndShift(trimmedPreviousSizes, trim || {});
|
|
6942
|
+
// save a reference to the trimmed object to prevent changes after trimming
|
|
6943
|
+
storeService.setSizes(trimmingObject);
|
|
6944
|
+
break;
|
|
6945
|
+
}
|
|
6946
|
+
}
|
|
6947
|
+
},
|
|
6948
|
+
};
|
|
6949
|
+
};
|
|
6950
|
+
function removeMultipleAndShift(items, toRemove) {
|
|
6951
|
+
const newItems = {};
|
|
6952
|
+
const sortedIndexes = Object.keys(items || {})
|
|
6953
|
+
.map(Number)
|
|
6954
|
+
.sort((a, b) => a - b);
|
|
6955
|
+
const lastIndex = sortedIndexes[sortedIndexes.length - 1];
|
|
6956
|
+
let shift = 0;
|
|
6957
|
+
for (let i = 0; i <= lastIndex; i++) {
|
|
6958
|
+
if (toRemove[i] !== undefined) {
|
|
6959
|
+
shift++;
|
|
6960
|
+
// skip already removed
|
|
6961
|
+
if (items[i] !== undefined) {
|
|
6962
|
+
continue;
|
|
6963
|
+
}
|
|
6964
|
+
}
|
|
6965
|
+
if (items[i] !== undefined) {
|
|
6966
|
+
newItems[i - shift] = items[i];
|
|
6967
|
+
}
|
|
6968
|
+
}
|
|
6969
|
+
return newItems;
|
|
6970
|
+
}
|
|
6971
|
+
|
|
6972
|
+
/**
|
|
6973
|
+
* Storing pre-calculated
|
|
6974
|
+
* Dimension information and sizes
|
|
6975
|
+
*/
|
|
6951
6976
|
function initialBase() {
|
|
6952
6977
|
return {
|
|
6953
6978
|
indexes: [],
|
|
6954
6979
|
count: 0,
|
|
6955
|
-
//
|
|
6956
|
-
trimmed:
|
|
6957
|
-
//
|
|
6958
|
-
// same as indexes but for sizes and positions
|
|
6959
|
-
// item index to size
|
|
6980
|
+
// hidden items
|
|
6981
|
+
trimmed: null,
|
|
6982
|
+
// virtual item index to size
|
|
6960
6983
|
sizes: {},
|
|
6961
6984
|
// order in indexes[] to coordinate
|
|
6962
6985
|
positionIndexToItem: {},
|
|
@@ -6976,8 +6999,14 @@ class DimensionStore {
|
|
|
6976
6999
|
constructor(type) {
|
|
6977
7000
|
this.type = type;
|
|
6978
7001
|
this.store = createStore(initialState$1());
|
|
6979
|
-
this.store.use(trimmedPlugin(
|
|
6980
|
-
|
|
7002
|
+
this.store.use(trimmedPlugin({
|
|
7003
|
+
store: this.store,
|
|
7004
|
+
setSizes: this.setDimensionSize.bind(this),
|
|
7005
|
+
}));
|
|
7006
|
+
this.store.use(recalculateRealSizePlugin({
|
|
7007
|
+
store: this.store,
|
|
7008
|
+
setStore: this.setStore.bind(this),
|
|
7009
|
+
}));
|
|
6981
7010
|
}
|
|
6982
7011
|
getCurrentState() {
|
|
6983
7012
|
const state = initialState$1();
|
|
@@ -7002,9 +7031,40 @@ class DimensionStore {
|
|
|
7002
7031
|
* Generates new indexes based on sizes
|
|
7003
7032
|
* @param sizes - sizes to set
|
|
7004
7033
|
*/
|
|
7005
|
-
setDimensionSize(sizes) {
|
|
7034
|
+
setDimensionSize(sizes = {}) {
|
|
7006
7035
|
const dimensionData = calculateDimensionData(this.store.get('originItemSize'), sizes);
|
|
7007
|
-
setStore(this.store, dimensionData);
|
|
7036
|
+
setStore(this.store, Object.assign(Object.assign({}, dimensionData), { sizes }));
|
|
7037
|
+
}
|
|
7038
|
+
updateSizesPositionByIndexes(newItemsOrder, prevItemsOrder = []) {
|
|
7039
|
+
// Move custom sizes to new order
|
|
7040
|
+
const customSizes = Object.assign({}, this.store.get('sizes'));
|
|
7041
|
+
if (!Object.keys(customSizes).length) {
|
|
7042
|
+
return;
|
|
7043
|
+
}
|
|
7044
|
+
// Step 1: Create a map of original indices, but allow duplicates by storing arrays of indices
|
|
7045
|
+
const originalIndices = {};
|
|
7046
|
+
prevItemsOrder.forEach((physIndex, virtIndex) => {
|
|
7047
|
+
if (!originalIndices[physIndex]) {
|
|
7048
|
+
originalIndices[physIndex] = [];
|
|
7049
|
+
}
|
|
7050
|
+
originalIndices[physIndex].push(virtIndex); // Store all indices for each value
|
|
7051
|
+
});
|
|
7052
|
+
// Step 2: Create new sizes based on new item order
|
|
7053
|
+
const newSizes = {};
|
|
7054
|
+
newItemsOrder.forEach((physIndex, virtIndex) => {
|
|
7055
|
+
const indices = originalIndices[physIndex]; // Get all original indices for this value
|
|
7056
|
+
if (indices && indices.length > 0) {
|
|
7057
|
+
const originalIndex = indices.shift(); // Get the first available original index
|
|
7058
|
+
if (originalIndex !== undefined && originalIndex !== virtIndex && customSizes[originalIndex]) {
|
|
7059
|
+
newSizes[virtIndex] = customSizes[originalIndex];
|
|
7060
|
+
delete customSizes[originalIndex];
|
|
7061
|
+
}
|
|
7062
|
+
}
|
|
7063
|
+
});
|
|
7064
|
+
// Step 3: Set new sizes if there are changes
|
|
7065
|
+
if (Object.keys(newSizes).length) {
|
|
7066
|
+
this.setDimensionSize(Object.assign(Object.assign({}, customSizes), newSizes));
|
|
7067
|
+
}
|
|
7008
7068
|
}
|
|
7009
7069
|
}
|
|
7010
7070
|
|
|
@@ -10472,11 +10532,13 @@ class DimensionProvider {
|
|
|
10472
10532
|
* @param columns - new columns data
|
|
10473
10533
|
* @param disableVirtualX - disable virtual data for X axis
|
|
10474
10534
|
*/
|
|
10475
|
-
applyNewColumns(columns, disableVirtualX) {
|
|
10535
|
+
applyNewColumns(columns, disableVirtualX, keepOld = false) {
|
|
10476
10536
|
// Apply new columns to dimension provider
|
|
10477
10537
|
for (let type of columnTypes) {
|
|
10478
|
-
|
|
10479
|
-
|
|
10538
|
+
if (!keepOld) {
|
|
10539
|
+
// Clear existing data in the dimension provider
|
|
10540
|
+
this.stores[type].drop();
|
|
10541
|
+
}
|
|
10480
10542
|
// Get the new columns for the current type
|
|
10481
10543
|
const items = columns[type];
|
|
10482
10544
|
// Determine if virtual data should be disabled for the current type
|
|
@@ -10547,25 +10609,8 @@ class DimensionProvider {
|
|
|
10547
10609
|
}
|
|
10548
10610
|
updateSizesPositionByNewDataIndexes(type, newItemsOrder, prevItemsOrder = []) {
|
|
10549
10611
|
// Move custom sizes to new order
|
|
10550
|
-
|
|
10551
|
-
|
|
10552
|
-
if (Object.keys(customSizes).length) {
|
|
10553
|
-
const originalIndices = new Map();
|
|
10554
|
-
prevItemsOrder.forEach((value, index) => {
|
|
10555
|
-
originalIndices.set(value, index);
|
|
10556
|
-
});
|
|
10557
|
-
const newSizes = {};
|
|
10558
|
-
newItemsOrder.forEach((value, newIndex) => {
|
|
10559
|
-
const originalIndex = originalIndices.get(value);
|
|
10560
|
-
if (originalIndex !== newIndex && customSizes[originalIndex]) {
|
|
10561
|
-
newSizes[newIndex] = customSizes[originalIndex];
|
|
10562
|
-
delete customSizes[originalIndex];
|
|
10563
|
-
}
|
|
10564
|
-
});
|
|
10565
|
-
if (Object.keys(newSizes).length) {
|
|
10566
|
-
this.setCustomSizes(type, Object.assign(Object.assign({}, customSizes), newSizes));
|
|
10567
|
-
}
|
|
10568
|
-
}
|
|
10612
|
+
this.stores[type].updateSizesPositionByIndexes(newItemsOrder, prevItemsOrder);
|
|
10613
|
+
this.updateViewport(type, true);
|
|
10569
10614
|
}
|
|
10570
10615
|
}
|
|
10571
10616
|
|
|
@@ -11142,6 +11187,9 @@ class FilterPlugin extends BasePlugin {
|
|
|
11142
11187
|
}
|
|
11143
11188
|
});
|
|
11144
11189
|
}
|
|
11190
|
+
if (Object.keys(this.multiFilterItems).length === 0) {
|
|
11191
|
+
return;
|
|
11192
|
+
}
|
|
11145
11193
|
await this.runFiltering(this.multiFilterItems);
|
|
11146
11194
|
};
|
|
11147
11195
|
this.addEventListener('headerclick', (e) => this.headerclick(e));
|
|
@@ -11680,9 +11728,8 @@ class SortingPlugin extends BasePlugin {
|
|
|
11680
11728
|
if (beforeApplyEvent.defaultPrevented) {
|
|
11681
11729
|
return;
|
|
11682
11730
|
}
|
|
11683
|
-
|
|
11684
|
-
|
|
11685
|
-
if (additive && this.sorting) {
|
|
11731
|
+
const cmp = this.getComparer(beforeApplyEvent.detail.column, beforeApplyEvent.detail.order);
|
|
11732
|
+
if (beforeApplyEvent.detail.additive && this.sorting) {
|
|
11686
11733
|
const sorting = {};
|
|
11687
11734
|
const sortingFunc = {};
|
|
11688
11735
|
this.sorting = Object.assign(Object.assign({}, this.sorting), sorting);
|
|
@@ -11746,11 +11793,15 @@ class SortingPlugin extends BasePlugin {
|
|
|
11746
11793
|
// row indexes
|
|
11747
11794
|
const proxyItems = storeService.store.get('proxyItems');
|
|
11748
11795
|
const newItemsOrder = this.sortIndexByItems([...proxyItems], source, sortingFunc);
|
|
11749
|
-
|
|
11796
|
+
// take row indexes before trim applied and proxy items
|
|
11797
|
+
const prevItems = storeService.store.get('items');
|
|
11750
11798
|
storeService.setData({
|
|
11751
11799
|
proxyItems: newItemsOrder,
|
|
11752
11800
|
source: [...source],
|
|
11753
11801
|
});
|
|
11802
|
+
// take currently visible row indexes
|
|
11803
|
+
const newItems = storeService.store.get('items');
|
|
11804
|
+
this.providers.dimension.updateSizesPositionByNewDataIndexes(type, newItems, prevItems);
|
|
11754
11805
|
}
|
|
11755
11806
|
}
|
|
11756
11807
|
this.emit('aftersortingapply');
|
|
@@ -14124,7 +14175,7 @@ class RevoGridComponent {
|
|
|
14124
14175
|
// Column format change will trigger column structure update
|
|
14125
14176
|
this.columnChanged(this.columns);
|
|
14126
14177
|
}
|
|
14127
|
-
columnChanged(newVal = []) {
|
|
14178
|
+
columnChanged(newVal = [], _prevVal = undefined, __watchName = 'columns', init = false) {
|
|
14128
14179
|
if (!this.dimensionProvider || !this.columnProvider) {
|
|
14129
14180
|
return;
|
|
14130
14181
|
}
|
|
@@ -14133,7 +14184,7 @@ class RevoGridComponent {
|
|
|
14133
14184
|
if (beforeSetEvent.defaultPrevented) {
|
|
14134
14185
|
return;
|
|
14135
14186
|
}
|
|
14136
|
-
this.dimensionProvider.applyNewColumns(beforeSetEvent.detail.columns, this.disableVirtualX);
|
|
14187
|
+
this.dimensionProvider.applyNewColumns(beforeSetEvent.detail.columns, this.disableVirtualX, init);
|
|
14137
14188
|
const beforeApplyEvent = this.beforecolumnapplied.emit(columnGather);
|
|
14138
14189
|
if (beforeApplyEvent.defaultPrevented) {
|
|
14139
14190
|
return;
|
|
@@ -14422,7 +14473,7 @@ class RevoGridComponent {
|
|
|
14422
14473
|
// set data
|
|
14423
14474
|
this.applyStretch(this.stretch);
|
|
14424
14475
|
this.themeChanged(this.theme, undefined, undefined, true);
|
|
14425
|
-
this.columnChanged(this.columns);
|
|
14476
|
+
this.columnChanged(this.columns, undefined, undefined, true);
|
|
14426
14477
|
this.dataSourceChanged(this.source, undefined, 'source');
|
|
14427
14478
|
this.dataSourceChanged(this.pinnedTopSource, undefined, 'pinnedTopSource');
|
|
14428
14479
|
this.dataSourceChanged(this.pinnedBottomSource, undefined, 'pinnedBottomSource');
|
|
@@ -14430,7 +14481,10 @@ class RevoGridComponent {
|
|
|
14430
14481
|
this.trimmedRowsChanged(this.trimmedRows);
|
|
14431
14482
|
}
|
|
14432
14483
|
this.rowDefChanged(this.rowDefinitions);
|
|
14433
|
-
|
|
14484
|
+
// init grouping
|
|
14485
|
+
if (this.grouping && Object.keys(this.grouping).length > 0) {
|
|
14486
|
+
this.groupingChanged(this.grouping);
|
|
14487
|
+
}
|
|
14434
14488
|
// init scrolling service
|
|
14435
14489
|
this.scrollingService = new GridScrollingService((e) => {
|
|
14436
14490
|
var _a;
|
|
@@ -14803,6 +14857,7 @@ class RevogrData {
|
|
|
14803
14857
|
this.beforerowrender = createEvent(this, "beforerowrender", 7);
|
|
14804
14858
|
this.afterrender = createEvent(this, "afterrender", 7);
|
|
14805
14859
|
this.beforeCellRender = createEvent(this, "beforecellrender", 7);
|
|
14860
|
+
this.beforeDataRender = createEvent(this, "beforedatarender", 7);
|
|
14806
14861
|
this.dragStartCell = createEvent(this, "dragstartcell", 7);
|
|
14807
14862
|
/**
|
|
14808
14863
|
* Rendered rows - virtual index vs vnode
|
|
@@ -14868,7 +14923,11 @@ class RevogrData {
|
|
|
14868
14923
|
(_b = this.rangeUnsubscribe) === null || _b === void 0 ? void 0 : _b.call(this);
|
|
14869
14924
|
}
|
|
14870
14925
|
async componentWillRender() {
|
|
14871
|
-
|
|
14926
|
+
this.beforeDataRender.emit({
|
|
14927
|
+
rowType: this.type,
|
|
14928
|
+
colType: this.colType,
|
|
14929
|
+
});
|
|
14930
|
+
return Promise.all(this.jobsBeforeRender.map(p => typeof p === 'function' ? p() : p));
|
|
14872
14931
|
}
|
|
14873
14932
|
componentDidRender() {
|
|
14874
14933
|
this.afterrender.emit({ type: this.type });
|
|
@@ -16211,7 +16270,8 @@ class RevogrViewportScroll {
|
|
|
16211
16270
|
this.scrollchange.emit({ type, hasScroll });
|
|
16212
16271
|
}
|
|
16213
16272
|
disconnectedCallback() {
|
|
16214
|
-
|
|
16273
|
+
var _a;
|
|
16274
|
+
(_a = this.resizeService) === null || _a === void 0 ? void 0 : _a.destroy();
|
|
16215
16275
|
}
|
|
16216
16276
|
async componentDidRender() {
|
|
16217
16277
|
var _a, _b, _c, _d;
|
|
@@ -16239,7 +16299,7 @@ class RevogrViewportScroll {
|
|
|
16239
16299
|
this.setScrollVisibility('rgCol', this.horizontalScroll.clientWidth, this.contentWidth);
|
|
16240
16300
|
}
|
|
16241
16301
|
render() {
|
|
16242
|
-
return (hAsync(Host, { key: '
|
|
16302
|
+
return (hAsync(Host, { key: '2bd41b077bb8baff6405cf6d071b48f22928879c', onWheel: this.horizontalMouseWheel, onScroll: (e) => this.applyScroll('rgCol', e) }, hAsync("div", { key: '84367a3fc244706e2d027f8c9e59ea3a6f8fc984', class: "inner-content-table", style: { width: `${this.contentWidth}px` } }, hAsync("div", { key: 'cbb8a1fa15139f07f9061f81e79218d00c14b8e6', class: "header-wrapper", ref: e => (this.header = e) }, hAsync("slot", { key: '521618b45cf787bcc160532d01e9e1fcdd06823b', name: HEADER_SLOT })), hAsync("div", { key: '2b381270fe97e949fb876603be364cc647ebc2d5', class: "vertical-inner", ref: el => (this.verticalScroll = el), onWheel: this.verticalMouseWheel, onScroll: (e) => this.applyScroll('rgRow', e) }, hAsync("div", { key: 'a0a13d79b5d329132421571fdf2ab7b2e36e440e', class: "content-wrapper", style: { height: `${this.contentHeight}px` } }, hAsync("slot", { key: '10279a0876aa194959da09309f914e6ce39b94fd', name: CONTENT_SLOT }))), hAsync("div", { key: '619446ea77a713a8e157ff0f1a9afd0e5dfa356f', class: "footer-wrapper", ref: e => (this.footer = e) }, hAsync("slot", { key: '43966ad2fde89f09c606173abf837672d8d4f822', name: FOOTER_SLOT })))));
|
|
16243
16303
|
}
|
|
16244
16304
|
/**
|
|
16245
16305
|
* Extra layer for scroll event monitoring, where MouseWheel event is not passing
|
|
@@ -16282,11 +16342,18 @@ class RevogrViewportScroll {
|
|
|
16282
16342
|
* @param e
|
|
16283
16343
|
*/
|
|
16284
16344
|
onVerticalMouseWheel(type, delta, e) {
|
|
16285
|
-
var _a, _b, _c, _d;
|
|
16286
|
-
(_a =
|
|
16287
|
-
const
|
|
16345
|
+
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
16346
|
+
const scrollTop = (_b = (_a = this.verticalScroll) === null || _a === void 0 ? void 0 : _a.scrollTop) !== null && _b !== void 0 ? _b : 0;
|
|
16347
|
+
const clientHeight = (_d = (_c = this.verticalScroll) === null || _c === void 0 ? void 0 : _c.clientHeight) !== null && _d !== void 0 ? _d : 0;
|
|
16348
|
+
const scrollHeight = (_f = (_e = this.verticalScroll) === null || _e === void 0 ? void 0 : _e.scrollHeight) !== null && _f !== void 0 ? _f : 0;
|
|
16349
|
+
// Detect if the user has reached the bottom
|
|
16350
|
+
const atBottom = (scrollTop + clientHeight >= scrollHeight) && e.deltaY > 0;
|
|
16351
|
+
const atTop = scrollTop === 0 && e.deltaY < 0;
|
|
16352
|
+
if (!atBottom && !atTop) {
|
|
16353
|
+
(_g = e.preventDefault) === null || _g === void 0 ? void 0 : _g.call(e);
|
|
16354
|
+
}
|
|
16288
16355
|
const pos = scrollTop + e[delta];
|
|
16289
|
-
(
|
|
16356
|
+
(_h = this.localScrollService) === null || _h === void 0 ? void 0 : _h.scroll(pos, type, undefined, e[delta]);
|
|
16290
16357
|
this.localScrollTimer.latestScrollUpdate(type);
|
|
16291
16358
|
}
|
|
16292
16359
|
/**
|
|
@@ -16297,8 +16364,18 @@ class RevogrViewportScroll {
|
|
|
16297
16364
|
*/
|
|
16298
16365
|
onHorizontalMouseWheel(type, delta, e) {
|
|
16299
16366
|
var _a, _b;
|
|
16300
|
-
(
|
|
16301
|
-
|
|
16367
|
+
if (!e.deltaX) {
|
|
16368
|
+
return;
|
|
16369
|
+
}
|
|
16370
|
+
const { scrollLeft, scrollWidth, clientWidth } = this.horizontalScroll;
|
|
16371
|
+
// Detect if the user has reached the right end
|
|
16372
|
+
const atRight = (scrollLeft + clientWidth >= scrollWidth) && e.deltaX > 0;
|
|
16373
|
+
// Detect if the user has reached the left end
|
|
16374
|
+
const atLeft = scrollLeft === 0 && e.deltaX < 0;
|
|
16375
|
+
if (!atRight && !atLeft) {
|
|
16376
|
+
(_a = e.preventDefault) === null || _a === void 0 ? void 0 : _a.call(e);
|
|
16377
|
+
}
|
|
16378
|
+
const pos = scrollLeft + e[delta];
|
|
16302
16379
|
(_b = this.localScrollService) === null || _b === void 0 ? void 0 : _b.scroll(pos, type, undefined, e[delta]);
|
|
16303
16380
|
this.localScrollTimer.latestScrollUpdate(type);
|
|
16304
16381
|
}
|
package/package.json
CHANGED
package/standalone/data.store.js
CHANGED
|
@@ -2977,18 +2977,13 @@ const createStore = (defaultState, shouldUpdate) => {
|
|
|
2977
2977
|
const trimmedPlugin = (store) => ({
|
|
2978
2978
|
set(k, newVal) {
|
|
2979
2979
|
switch (k) {
|
|
2980
|
-
case 'trimmed':
|
|
2980
|
+
case 'trimmed': {
|
|
2981
2981
|
const proxy = store.get('proxyItems');
|
|
2982
2982
|
const trimmed = gatherTrimmedItems(newVal);
|
|
2983
|
-
const newItems = proxy.
|
|
2984
|
-
// check if present in new trimmed remove from items (filter)
|
|
2985
|
-
if (!trimmed[v]) {
|
|
2986
|
-
result.push(v);
|
|
2987
|
-
}
|
|
2988
|
-
return result;
|
|
2989
|
-
}, []);
|
|
2983
|
+
const newItems = proxy.filter(v => !trimmed[v]);
|
|
2990
2984
|
store.set('items', newItems);
|
|
2991
2985
|
break;
|
|
2986
|
+
}
|
|
2992
2987
|
}
|
|
2993
2988
|
},
|
|
2994
2989
|
});
|