@revolist/revogrid 4.9.41 → 4.10.1
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-08ca04f4.js} +129 -58
- package/dist/cjs/column.drag.plugin-08ca04f4.js.map +1 -0
- package/dist/cjs/column.service-2670e6e7.js +1286 -0
- package/dist/cjs/column.service-2670e6e7.js.map +1 -0
- package/dist/cjs/{edit.utils-179c0800.js → edit.utils-4a790cf8.js} +2 -2
- package/dist/cjs/{edit.utils-179c0800.js.map → edit.utils-4a790cf8.js.map} +1 -1
- package/dist/cjs/{header-cell-renderer-d879d95e.js → header-cell-renderer-db089f54.js} +2 -2
- package/dist/cjs/{header-cell-renderer-d879d95e.js.map → header-cell-renderer-db089f54.js.map} +1 -1
- package/dist/cjs/{column.service-26c61ed6.js → index-91e92bea.js} +455 -1235
- package/dist/cjs/index-91e92bea.js.map +1 -0
- package/dist/cjs/index.cjs.js +21 -20
- package/dist/cjs/index.cjs.js.map +1 -1
- package/dist/cjs/{key.utils-f49d7bee.js → key.utils-e65c24e6.js} +2 -2
- package/dist/cjs/{key.utils-f49d7bee.js.map → key.utils-e65c24e6.js.map} +1 -1
- package/dist/cjs/revo-grid.cjs.entry.js +47 -56
- package/dist/cjs/revo-grid.cjs.entry.js.map +1 -1
- package/dist/cjs/revogr-attribution_7.cjs.entry.js +11 -11
- package/dist/cjs/revogr-attribution_7.cjs.entry.js.map +1 -1
- package/dist/cjs/revogr-clipboard_3.cjs.entry.js +5 -4
- package/dist/cjs/revogr-clipboard_3.cjs.entry.js.map +1 -1
- package/dist/cjs/revogr-data_4.cjs.entry.js +41 -18
- package/dist/cjs/revogr-data_4.cjs.entry.js.map +1 -1
- package/dist/cjs/{row-header-utils-c37f76e4.js → row-header-utils-dc3d3185.js} +5 -6
- package/dist/cjs/row-header-utils-dc3d3185.js.map +1 -0
- package/dist/cjs/{text-editor-b756d6b3.js → text-editor-a32a3993.js} +3 -3
- package/dist/cjs/{text-editor-b756d6b3.js.map → text-editor-a32a3993.js.map} +1 -1
- package/dist/cjs/{throttle-a57f51f9.js → throttle-da92b75d.js} +2 -2
- package/dist/cjs/{throttle-a57f51f9.js.map → throttle-da92b75d.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/order/revogr-order-editor.js +4 -2
- package/dist/collection/components/order/revogr-order-editor.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-b7bba0da.js} +118 -47
- package/dist/esm/column.drag.plugin-b7bba0da.js.map +1 -0
- package/dist/esm/column.service-9b0603f4.js +1249 -0
- package/dist/esm/column.service-9b0603f4.js.map +1 -0
- package/dist/esm/{debounce-72878ced.js → debounce-7b511afc.js} +2 -2
- package/dist/esm/{debounce-72878ced.js.map → debounce-7b511afc.js.map} +1 -1
- package/dist/esm/{edit.utils-6fc686b9.js → edit.utils-abcd0152.js} +2 -2
- package/dist/esm/{edit.utils-6fc686b9.js.map → edit.utils-abcd0152.js.map} +1 -1
- package/dist/esm/{header-cell-renderer-32d2ed96.js → header-cell-renderer-fce020c3.js} +2 -2
- package/dist/esm/{header-cell-renderer-32d2ed96.js.map → header-cell-renderer-fce020c3.js.map} +1 -1
- package/dist/esm/{column.service-751345b2.js → index-b1e05212.js} +414 -1195
- package/dist/esm/index-b1e05212.js.map +1 -0
- package/dist/esm/index.js +9 -8
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/{key.utils-17273f42.js → key.utils-ea9aec31.js} +2 -2
- package/dist/esm/{key.utils-17273f42.js.map → key.utils-ea9aec31.js.map} +1 -1
- package/dist/esm/revo-grid.entry.js +27 -36
- package/dist/esm/revo-grid.entry.js.map +1 -1
- package/dist/esm/revogr-attribution_7.entry.js +7 -7
- package/dist/esm/revogr-clipboard_3.entry.js +6 -5
- package/dist/esm/revogr-clipboard_3.entry.js.map +1 -1
- package/dist/esm/revogr-data_4.entry.js +37 -14
- package/dist/esm/revogr-data_4.entry.js.map +1 -1
- package/dist/esm/revogr-filter-panel.entry.js +1 -1
- package/dist/esm/{row-header-utils-3dfbb81f.js → row-header-utils-7af8fcbf.js} +2 -3
- package/dist/esm/row-header-utils-7af8fcbf.js.map +1 -0
- package/dist/esm/{text-editor-901c3eb8.js → text-editor-fb3f24fe.js} +3 -3
- package/dist/esm/{text-editor-901c3eb8.js.map → text-editor-fb3f24fe.js.map} +1 -1
- package/dist/esm/{throttle-138d69c3.js → throttle-1f5772ef.js} +3 -3
- package/dist/esm/{throttle-138d69c3.js.map → throttle-1f5772ef.js.map} +1 -1
- package/dist/revo-grid/column.drag.plugin-b7bba0da.js +5 -0
- package/dist/revo-grid/column.drag.plugin-b7bba0da.js.map +1 -0
- package/dist/revo-grid/column.service-9b0603f4.js +5 -0
- package/dist/revo-grid/column.service-9b0603f4.js.map +1 -0
- package/dist/revo-grid/{debounce-72878ced.js → debounce-7b511afc.js} +2 -2
- package/dist/revo-grid/{edit.utils-6fc686b9.js → edit.utils-abcd0152.js} +2 -2
- package/dist/revo-grid/{header-cell-renderer-32d2ed96.js → header-cell-renderer-fce020c3.js} +2 -2
- package/dist/revo-grid/index-b1e05212.js +5 -0
- package/dist/revo-grid/index-b1e05212.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-ea9aec31.js +5 -0
- package/dist/revo-grid/{key.utils-17273f42.js.map → key.utils-ea9aec31.js.map} +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/revogr-attribution_7.entry.js +1 -1
- package/dist/revo-grid/revogr-clipboard_3.entry.js +1 -1
- package/dist/revo-grid/revogr-clipboard_3.entry.js.map +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/revogr-filter-panel.entry.js +1 -1
- package/dist/revo-grid/row-header-utils-7af8fcbf.js +5 -0
- package/dist/revo-grid/{row-header-utils-3dfbb81f.js.map → row-header-utils-7af8fcbf.js.map} +1 -1
- package/dist/revo-grid/text-editor-fb3f24fe.js +5 -0
- package/dist/revo-grid/{throttle-138d69c3.js → throttle-1f5772ef.js} +2 -2
- package/dist/types/components/data/revogr-data.d.ts +6 -2
- package/dist/types/components/order/revogr-order-editor.d.ts +1 -0
- package/dist/types/components/revoGrid/revo-grid.d.ts +2 -6
- package/dist/types/components/scroll/revogr-viewport-scroll.d.ts +1 -1
- package/dist/types/components.d.ts +9 -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 +194 -116
- package/hydrate/index.mjs +194 -116
- package/package.json +1 -1
- package/standalone/column.service.js +1 -1
- package/standalone/data.store.js +24 -10
- package/standalone/data.store.js.map +1 -1
- package/standalone/dimension.helpers.js +3 -6
- 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 +134 -73
- 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-header2.js +1 -1
- package/standalone/revogr-order-editor2.js +2 -0
- package/standalone/revogr-order-editor2.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 +0 -513
- package/dist/cjs/index-3ab26ab9.js.map +0 -1
- package/dist/cjs/row-header-utils-c37f76e4.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 +0 -476
- package/dist/esm/index-1dcad6ef.js.map +0 -1
- package/dist/esm/row-header-utils-3dfbb81f.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/column.service-751345b2.js +0 -5
- package/dist/revo-grid/column.service-751345b2.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/key.utils-17273f42.js +0 -5
- package/dist/revo-grid/row-header-utils-3dfbb81f.js +0 -5
- package/dist/revo-grid/text-editor-901c3eb8.js +0 -5
- package/standalone/identity.js +0 -26
- package/standalone/identity.js.map +0 -1
- /package/dist/revo-grid/{debounce-72878ced.js.map → debounce-7b511afc.js.map} +0 -0
- /package/dist/revo-grid/{edit.utils-6fc686b9.js.map → edit.utils-abcd0152.js.map} +0 -0
- /package/dist/revo-grid/{header-cell-renderer-32d2ed96.js.map → header-cell-renderer-fce020c3.js.map} +0 -0
- /package/dist/revo-grid/{text-editor-901c3eb8.js.map → text-editor-fb3f24fe.js.map} +0 -0
- /package/dist/revo-grid/{throttle-138d69c3.js.map → throttle-1f5772ef.js.map} +0 -0
package/hydrate/index.js
CHANGED
|
@@ -3299,29 +3299,6 @@ class FilterPanel {
|
|
|
3299
3299
|
}; }
|
|
3300
3300
|
}
|
|
3301
3301
|
|
|
3302
|
-
const MIN_COL_SIZE = 30;
|
|
3303
|
-
const RESIZE_INTERVAL = 40;
|
|
3304
|
-
const DATA_COL = 'data-rgCol';
|
|
3305
|
-
const DATA_ROW = 'data-rgRow';
|
|
3306
|
-
const DISABLED_CLASS = 'disabled';
|
|
3307
|
-
const CELL_CLASS = 'rgCell';
|
|
3308
|
-
const ROW_HEADER_TYPE = 'rowHeaders';
|
|
3309
|
-
const HEADER_CLASS = 'rgHeaderCell';
|
|
3310
|
-
const HEADER_SORTABLE_CLASS = 'sortable';
|
|
3311
|
-
const HEADER_ROW_CLASS = 'header-rgRow';
|
|
3312
|
-
const HEADER_ACTUAL_ROW_CLASS = 'actual-rgRow';
|
|
3313
|
-
const DRAG_ICON_CLASS = 'revo-drag-icon';
|
|
3314
|
-
const DRAGGABLE_CLASS = 'revo-draggable';
|
|
3315
|
-
const FOCUS_CLASS = 'focused-cell';
|
|
3316
|
-
const SELECTION_BORDER_CLASS = 'selection-border-range';
|
|
3317
|
-
const MOBILE_CLASS = 'mobile-handler';
|
|
3318
|
-
const TMP_SELECTION_BG_CLASS = 'temp-bg-range';
|
|
3319
|
-
const CELL_HANDLER_CLASS = 'autofill-handle';
|
|
3320
|
-
const EDIT_INPUT_WR = 'edit-input-wrapper';
|
|
3321
|
-
const DRAGG_TEXT = 'Draggable item';
|
|
3322
|
-
const GRID_INTERNALS = '__rvgr';
|
|
3323
|
-
const ROW_FOCUSED_CLASS = 'focused-rgRow';
|
|
3324
|
-
|
|
3325
3302
|
/**
|
|
3326
3303
|
* Proxy plugin for data source.
|
|
3327
3304
|
* This plugin is used to sort the data source.
|
|
@@ -6314,18 +6291,13 @@ const createStore = (defaultState, shouldUpdate) => {
|
|
|
6314
6291
|
const trimmedPlugin$1 = (store) => ({
|
|
6315
6292
|
set(k, newVal) {
|
|
6316
6293
|
switch (k) {
|
|
6317
|
-
case 'trimmed':
|
|
6294
|
+
case 'trimmed': {
|
|
6318
6295
|
const proxy = store.get('proxyItems');
|
|
6319
6296
|
const trimmed = gatherTrimmedItems(newVal);
|
|
6320
|
-
const newItems = proxy.
|
|
6321
|
-
// check if present in new trimmed remove from items (filter)
|
|
6322
|
-
if (!trimmed[v]) {
|
|
6323
|
-
result.push(v);
|
|
6324
|
-
}
|
|
6325
|
-
return result;
|
|
6326
|
-
}, []);
|
|
6297
|
+
const newItems = proxy.filter(v => !trimmed[v]);
|
|
6327
6298
|
store.set('items', newItems);
|
|
6328
6299
|
break;
|
|
6300
|
+
}
|
|
6329
6301
|
}
|
|
6330
6302
|
},
|
|
6331
6303
|
});
|
|
@@ -6801,10 +6773,8 @@ function calculateDimensionData(originItemSize, newSizes = {}) {
|
|
|
6801
6773
|
const positionIndexes = [];
|
|
6802
6774
|
const positionIndexToItem = {};
|
|
6803
6775
|
const indexToItem = {};
|
|
6804
|
-
// combine all new sizes
|
|
6805
|
-
const sizes = Object.assign({}, newSizes);
|
|
6806
6776
|
// prepare order sorted new sizes and calculate changed real size
|
|
6807
|
-
const newIndexes = Object.keys(
|
|
6777
|
+
const newIndexes = Object.keys(newSizes).map(Number).sort((a, b) => a - b);
|
|
6808
6778
|
// fill new coordinates based on what is changed
|
|
6809
6779
|
newIndexes.reduce((previous, itemIndex, i) => {
|
|
6810
6780
|
const newItem = {
|
|
@@ -6820,7 +6790,7 @@ function calculateDimensionData(originItemSize, newSizes = {}) {
|
|
|
6820
6790
|
else {
|
|
6821
6791
|
newItem.start = itemIndex * originItemSize;
|
|
6822
6792
|
}
|
|
6823
|
-
newItem.end = newItem.start +
|
|
6793
|
+
newItem.end = newItem.start + newSizes[itemIndex];
|
|
6824
6794
|
positionIndexes.push(newItem.start);
|
|
6825
6795
|
indexToItem[itemIndex] = positionIndexToItem[i] = newItem;
|
|
6826
6796
|
return newItem;
|
|
@@ -6830,7 +6800,6 @@ function calculateDimensionData(originItemSize, newSizes = {}) {
|
|
|
6830
6800
|
positionIndexes: [...positionIndexes],
|
|
6831
6801
|
positionIndexToItem: Object.assign({}, positionIndexToItem),
|
|
6832
6802
|
indexToItem,
|
|
6833
|
-
sizes,
|
|
6834
6803
|
};
|
|
6835
6804
|
}
|
|
6836
6805
|
/**
|
|
@@ -6891,37 +6860,6 @@ function getItemByIndex(dimension, index) {
|
|
|
6891
6860
|
return item;
|
|
6892
6861
|
}
|
|
6893
6862
|
|
|
6894
|
-
/**
|
|
6895
|
-
* Storing pre-calculated
|
|
6896
|
-
* Dimension information and sizes
|
|
6897
|
-
*/
|
|
6898
|
-
const trimmedPlugin = (store) => {
|
|
6899
|
-
let trimmedSize = {};
|
|
6900
|
-
const setTrimmed = (sizes, trimmed) => {
|
|
6901
|
-
const newSize = Object.assign({}, sizes);
|
|
6902
|
-
trimmedSize = {};
|
|
6903
|
-
for (const [index, v] of Object.entries(trimmed)) {
|
|
6904
|
-
const i = index;
|
|
6905
|
-
if (v && newSize[i]) {
|
|
6906
|
-
trimmedSize[i] = newSize[i];
|
|
6907
|
-
delete newSize[i];
|
|
6908
|
-
}
|
|
6909
|
-
}
|
|
6910
|
-
store.setDimensionSize(newSize);
|
|
6911
|
-
};
|
|
6912
|
-
return {
|
|
6913
|
-
set(key, val) {
|
|
6914
|
-
switch (key) {
|
|
6915
|
-
case 'trimmed':
|
|
6916
|
-
const trim = val;
|
|
6917
|
-
const sizes = store.store.get('sizes');
|
|
6918
|
-
// recover trimmed, apply new trim
|
|
6919
|
-
setTrimmed(Object.assign(Object.assign({}, sizes), trimmedSize), trim);
|
|
6920
|
-
break;
|
|
6921
|
-
}
|
|
6922
|
-
},
|
|
6923
|
-
};
|
|
6924
|
-
};
|
|
6925
6863
|
/**
|
|
6926
6864
|
* Plugin which recalculates realSize on changes of sizes, originItemSize and count
|
|
6927
6865
|
*/
|
|
@@ -6937,7 +6875,7 @@ const recalculateRealSizePlugin = (storeService) => {
|
|
|
6937
6875
|
switch (k) {
|
|
6938
6876
|
case 'count':
|
|
6939
6877
|
case 'sizes':
|
|
6940
|
-
case 'originItemSize':
|
|
6878
|
+
case 'originItemSize': {
|
|
6941
6879
|
// recalculate realSize
|
|
6942
6880
|
let realSize = 0;
|
|
6943
6881
|
const count = storeService.store.get('count');
|
|
@@ -6948,19 +6886,81 @@ const recalculateRealSizePlugin = (storeService) => {
|
|
|
6948
6886
|
}
|
|
6949
6887
|
storeService.setStore({ realSize });
|
|
6950
6888
|
break;
|
|
6889
|
+
}
|
|
6951
6890
|
}
|
|
6952
6891
|
},
|
|
6953
6892
|
};
|
|
6954
6893
|
};
|
|
6894
|
+
|
|
6895
|
+
/**
|
|
6896
|
+
* Plugin for trimming
|
|
6897
|
+
*
|
|
6898
|
+
* 1.a. Retrieves the previous sizes value. Saves the resulting trimmed data as a new sizes value.
|
|
6899
|
+
* 1.b. Stores a reference to the trimmed data to prevent further changes.
|
|
6900
|
+
* 2. Removes multiple and shifts the data based on the trimmed value.
|
|
6901
|
+
*/
|
|
6902
|
+
const trimmedPlugin = (storeService) => {
|
|
6903
|
+
let trimmingObject = null;
|
|
6904
|
+
let trimmedPreviousSizes = null;
|
|
6905
|
+
return {
|
|
6906
|
+
set(key, val) {
|
|
6907
|
+
switch (key) {
|
|
6908
|
+
case 'sizes': {
|
|
6909
|
+
// prevent changes after trimming
|
|
6910
|
+
if (trimmingObject && trimmingObject === val) {
|
|
6911
|
+
trimmingObject = null;
|
|
6912
|
+
return;
|
|
6913
|
+
}
|
|
6914
|
+
trimmedPreviousSizes = null;
|
|
6915
|
+
break;
|
|
6916
|
+
}
|
|
6917
|
+
case 'trimmed': {
|
|
6918
|
+
const trim = val;
|
|
6919
|
+
if (!trimmedPreviousSizes) {
|
|
6920
|
+
trimmedPreviousSizes = storeService.store.get('sizes');
|
|
6921
|
+
}
|
|
6922
|
+
trimmingObject = removeMultipleAndShift(trimmedPreviousSizes, trim || {});
|
|
6923
|
+
// save a reference to the trimmed object to prevent changes after trimming
|
|
6924
|
+
storeService.setSizes(trimmingObject);
|
|
6925
|
+
break;
|
|
6926
|
+
}
|
|
6927
|
+
}
|
|
6928
|
+
},
|
|
6929
|
+
};
|
|
6930
|
+
};
|
|
6931
|
+
function removeMultipleAndShift(items, toRemove) {
|
|
6932
|
+
const newItems = {};
|
|
6933
|
+
const sortedIndexes = Object.keys(items || {})
|
|
6934
|
+
.map(Number)
|
|
6935
|
+
.sort((a, b) => a - b);
|
|
6936
|
+
const lastIndex = sortedIndexes[sortedIndexes.length - 1];
|
|
6937
|
+
let shift = 0;
|
|
6938
|
+
for (let i = 0; i <= lastIndex; i++) {
|
|
6939
|
+
if (toRemove[i] !== undefined) {
|
|
6940
|
+
shift++;
|
|
6941
|
+
// skip already removed
|
|
6942
|
+
if (items[i] !== undefined) {
|
|
6943
|
+
continue;
|
|
6944
|
+
}
|
|
6945
|
+
}
|
|
6946
|
+
if (items[i] !== undefined) {
|
|
6947
|
+
newItems[i - shift] = items[i];
|
|
6948
|
+
}
|
|
6949
|
+
}
|
|
6950
|
+
return newItems;
|
|
6951
|
+
}
|
|
6952
|
+
|
|
6953
|
+
/**
|
|
6954
|
+
* Storing pre-calculated
|
|
6955
|
+
* Dimension information and sizes
|
|
6956
|
+
*/
|
|
6955
6957
|
function initialBase() {
|
|
6956
6958
|
return {
|
|
6957
6959
|
indexes: [],
|
|
6958
6960
|
count: 0,
|
|
6959
|
-
//
|
|
6960
|
-
trimmed:
|
|
6961
|
-
//
|
|
6962
|
-
// same as indexes but for sizes and positions
|
|
6963
|
-
// item index to size
|
|
6961
|
+
// hidden items
|
|
6962
|
+
trimmed: null,
|
|
6963
|
+
// virtual item index to size
|
|
6964
6964
|
sizes: {},
|
|
6965
6965
|
// order in indexes[] to coordinate
|
|
6966
6966
|
positionIndexToItem: {},
|
|
@@ -6980,8 +6980,14 @@ class DimensionStore {
|
|
|
6980
6980
|
constructor(type) {
|
|
6981
6981
|
this.type = type;
|
|
6982
6982
|
this.store = createStore(initialState$1());
|
|
6983
|
-
this.store.use(trimmedPlugin(
|
|
6984
|
-
|
|
6983
|
+
this.store.use(trimmedPlugin({
|
|
6984
|
+
store: this.store,
|
|
6985
|
+
setSizes: this.setDimensionSize.bind(this),
|
|
6986
|
+
}));
|
|
6987
|
+
this.store.use(recalculateRealSizePlugin({
|
|
6988
|
+
store: this.store,
|
|
6989
|
+
setStore: this.setStore.bind(this),
|
|
6990
|
+
}));
|
|
6985
6991
|
}
|
|
6986
6992
|
getCurrentState() {
|
|
6987
6993
|
const state = initialState$1();
|
|
@@ -7006,9 +7012,40 @@ class DimensionStore {
|
|
|
7006
7012
|
* Generates new indexes based on sizes
|
|
7007
7013
|
* @param sizes - sizes to set
|
|
7008
7014
|
*/
|
|
7009
|
-
setDimensionSize(sizes) {
|
|
7015
|
+
setDimensionSize(sizes = {}) {
|
|
7010
7016
|
const dimensionData = calculateDimensionData(this.store.get('originItemSize'), sizes);
|
|
7011
|
-
setStore(this.store, dimensionData);
|
|
7017
|
+
setStore(this.store, Object.assign(Object.assign({}, dimensionData), { sizes }));
|
|
7018
|
+
}
|
|
7019
|
+
updateSizesPositionByIndexes(newItemsOrder, prevItemsOrder = []) {
|
|
7020
|
+
// Move custom sizes to new order
|
|
7021
|
+
const customSizes = Object.assign({}, this.store.get('sizes'));
|
|
7022
|
+
if (!Object.keys(customSizes).length) {
|
|
7023
|
+
return;
|
|
7024
|
+
}
|
|
7025
|
+
// Step 1: Create a map of original indices, but allow duplicates by storing arrays of indices
|
|
7026
|
+
const originalIndices = {};
|
|
7027
|
+
prevItemsOrder.forEach((physIndex, virtIndex) => {
|
|
7028
|
+
if (!originalIndices[physIndex]) {
|
|
7029
|
+
originalIndices[physIndex] = [];
|
|
7030
|
+
}
|
|
7031
|
+
originalIndices[physIndex].push(virtIndex); // Store all indices for each value
|
|
7032
|
+
});
|
|
7033
|
+
// Step 2: Create new sizes based on new item order
|
|
7034
|
+
const newSizes = {};
|
|
7035
|
+
newItemsOrder.forEach((physIndex, virtIndex) => {
|
|
7036
|
+
const indices = originalIndices[physIndex]; // Get all original indices for this value
|
|
7037
|
+
if (indices && indices.length > 0) {
|
|
7038
|
+
const originalIndex = indices.shift(); // Get the first available original index
|
|
7039
|
+
if (originalIndex !== undefined && originalIndex !== virtIndex && customSizes[originalIndex]) {
|
|
7040
|
+
newSizes[virtIndex] = customSizes[originalIndex];
|
|
7041
|
+
delete customSizes[originalIndex];
|
|
7042
|
+
}
|
|
7043
|
+
}
|
|
7044
|
+
});
|
|
7045
|
+
// Step 3: Set new sizes if there are changes
|
|
7046
|
+
if (Object.keys(newSizes).length) {
|
|
7047
|
+
this.setDimensionSize(Object.assign(Object.assign({}, customSizes), newSizes));
|
|
7048
|
+
}
|
|
7012
7049
|
}
|
|
7013
7050
|
}
|
|
7014
7051
|
|
|
@@ -7843,6 +7880,29 @@ function isRowType(type) {
|
|
|
7843
7880
|
return rowTypes.indexOf(type) > -1;
|
|
7844
7881
|
}
|
|
7845
7882
|
|
|
7883
|
+
const MIN_COL_SIZE = 30;
|
|
7884
|
+
const RESIZE_INTERVAL = 40;
|
|
7885
|
+
const DATA_COL = 'data-rgCol';
|
|
7886
|
+
const DATA_ROW = 'data-rgRow';
|
|
7887
|
+
const DISABLED_CLASS = 'disabled';
|
|
7888
|
+
const CELL_CLASS = 'rgCell';
|
|
7889
|
+
const ROW_HEADER_TYPE = 'rowHeaders';
|
|
7890
|
+
const HEADER_CLASS = 'rgHeaderCell';
|
|
7891
|
+
const HEADER_SORTABLE_CLASS = 'sortable';
|
|
7892
|
+
const HEADER_ROW_CLASS = 'header-rgRow';
|
|
7893
|
+
const HEADER_ACTUAL_ROW_CLASS = 'actual-rgRow';
|
|
7894
|
+
const DRAG_ICON_CLASS = 'revo-drag-icon';
|
|
7895
|
+
const DRAGGABLE_CLASS = 'revo-draggable';
|
|
7896
|
+
const FOCUS_CLASS = 'focused-cell';
|
|
7897
|
+
const SELECTION_BORDER_CLASS = 'selection-border-range';
|
|
7898
|
+
const MOBILE_CLASS = 'mobile-handler';
|
|
7899
|
+
const TMP_SELECTION_BG_CLASS = 'temp-bg-range';
|
|
7900
|
+
const CELL_HANDLER_CLASS = 'autofill-handle';
|
|
7901
|
+
const EDIT_INPUT_WR = 'edit-input-wrapper';
|
|
7902
|
+
const DRAGG_TEXT = 'Draggable item';
|
|
7903
|
+
const GRID_INTERNALS = '__rvgr';
|
|
7904
|
+
const ROW_FOCUSED_CLASS = 'focused-rgRow';
|
|
7905
|
+
|
|
7846
7906
|
class RowOrderService {
|
|
7847
7907
|
constructor(config) {
|
|
7848
7908
|
this.config = config;
|
|
@@ -7953,6 +8013,7 @@ class OrderEditor {
|
|
|
7953
8013
|
pos,
|
|
7954
8014
|
event: e.originalEvent,
|
|
7955
8015
|
rowType: this.rowType,
|
|
8016
|
+
model: getSourceItem(this.dataStore, pos.itemIndex),
|
|
7956
8017
|
});
|
|
7957
8018
|
if (dragStartEvent.defaultPrevented) {
|
|
7958
8019
|
return;
|
|
@@ -10476,11 +10537,13 @@ class DimensionProvider {
|
|
|
10476
10537
|
* @param columns - new columns data
|
|
10477
10538
|
* @param disableVirtualX - disable virtual data for X axis
|
|
10478
10539
|
*/
|
|
10479
|
-
applyNewColumns(columns, disableVirtualX) {
|
|
10540
|
+
applyNewColumns(columns, disableVirtualX, keepOld = false) {
|
|
10480
10541
|
// Apply new columns to dimension provider
|
|
10481
10542
|
for (let type of columnTypes) {
|
|
10482
|
-
|
|
10483
|
-
|
|
10543
|
+
if (!keepOld) {
|
|
10544
|
+
// Clear existing data in the dimension provider
|
|
10545
|
+
this.stores[type].drop();
|
|
10546
|
+
}
|
|
10484
10547
|
// Get the new columns for the current type
|
|
10485
10548
|
const items = columns[type];
|
|
10486
10549
|
// Determine if virtual data should be disabled for the current type
|
|
@@ -10551,25 +10614,8 @@ class DimensionProvider {
|
|
|
10551
10614
|
}
|
|
10552
10615
|
updateSizesPositionByNewDataIndexes(type, newItemsOrder, prevItemsOrder = []) {
|
|
10553
10616
|
// Move custom sizes to new order
|
|
10554
|
-
|
|
10555
|
-
|
|
10556
|
-
if (Object.keys(customSizes).length) {
|
|
10557
|
-
const originalIndices = new Map();
|
|
10558
|
-
prevItemsOrder.forEach((value, index) => {
|
|
10559
|
-
originalIndices.set(value, index);
|
|
10560
|
-
});
|
|
10561
|
-
const newSizes = {};
|
|
10562
|
-
newItemsOrder.forEach((value, newIndex) => {
|
|
10563
|
-
const originalIndex = originalIndices.get(value);
|
|
10564
|
-
if (originalIndex !== newIndex && customSizes[originalIndex]) {
|
|
10565
|
-
newSizes[newIndex] = customSizes[originalIndex];
|
|
10566
|
-
delete customSizes[originalIndex];
|
|
10567
|
-
}
|
|
10568
|
-
});
|
|
10569
|
-
if (Object.keys(newSizes).length) {
|
|
10570
|
-
this.setCustomSizes(type, Object.assign(Object.assign({}, customSizes), newSizes));
|
|
10571
|
-
}
|
|
10572
|
-
}
|
|
10617
|
+
this.stores[type].updateSizesPositionByIndexes(newItemsOrder, prevItemsOrder);
|
|
10618
|
+
this.updateViewport(type, true);
|
|
10573
10619
|
}
|
|
10574
10620
|
}
|
|
10575
10621
|
|
|
@@ -11146,6 +11192,9 @@ class FilterPlugin extends BasePlugin {
|
|
|
11146
11192
|
}
|
|
11147
11193
|
});
|
|
11148
11194
|
}
|
|
11195
|
+
if (Object.keys(this.multiFilterItems).length === 0) {
|
|
11196
|
+
return;
|
|
11197
|
+
}
|
|
11149
11198
|
await this.runFiltering(this.multiFilterItems);
|
|
11150
11199
|
};
|
|
11151
11200
|
this.addEventListener('headerclick', (e) => this.headerclick(e));
|
|
@@ -11684,9 +11733,8 @@ class SortingPlugin extends BasePlugin {
|
|
|
11684
11733
|
if (beforeApplyEvent.defaultPrevented) {
|
|
11685
11734
|
return;
|
|
11686
11735
|
}
|
|
11687
|
-
|
|
11688
|
-
|
|
11689
|
-
if (additive && this.sorting) {
|
|
11736
|
+
const cmp = this.getComparer(beforeApplyEvent.detail.column, beforeApplyEvent.detail.order);
|
|
11737
|
+
if (beforeApplyEvent.detail.additive && this.sorting) {
|
|
11690
11738
|
const sorting = {};
|
|
11691
11739
|
const sortingFunc = {};
|
|
11692
11740
|
this.sorting = Object.assign(Object.assign({}, this.sorting), sorting);
|
|
@@ -11750,11 +11798,15 @@ class SortingPlugin extends BasePlugin {
|
|
|
11750
11798
|
// row indexes
|
|
11751
11799
|
const proxyItems = storeService.store.get('proxyItems');
|
|
11752
11800
|
const newItemsOrder = this.sortIndexByItems([...proxyItems], source, sortingFunc);
|
|
11753
|
-
|
|
11801
|
+
// take row indexes before trim applied and proxy items
|
|
11802
|
+
const prevItems = storeService.store.get('items');
|
|
11754
11803
|
storeService.setData({
|
|
11755
11804
|
proxyItems: newItemsOrder,
|
|
11756
11805
|
source: [...source],
|
|
11757
11806
|
});
|
|
11807
|
+
// take currently visible row indexes
|
|
11808
|
+
const newItems = storeService.store.get('items');
|
|
11809
|
+
this.providers.dimension.updateSizesPositionByNewDataIndexes(type, newItems, prevItems);
|
|
11758
11810
|
}
|
|
11759
11811
|
}
|
|
11760
11812
|
this.emit('aftersortingapply');
|
|
@@ -14128,7 +14180,7 @@ class RevoGridComponent {
|
|
|
14128
14180
|
// Column format change will trigger column structure update
|
|
14129
14181
|
this.columnChanged(this.columns);
|
|
14130
14182
|
}
|
|
14131
|
-
columnChanged(newVal = []) {
|
|
14183
|
+
columnChanged(newVal = [], _prevVal = undefined, __watchName = 'columns', init = false) {
|
|
14132
14184
|
if (!this.dimensionProvider || !this.columnProvider) {
|
|
14133
14185
|
return;
|
|
14134
14186
|
}
|
|
@@ -14137,7 +14189,7 @@ class RevoGridComponent {
|
|
|
14137
14189
|
if (beforeSetEvent.defaultPrevented) {
|
|
14138
14190
|
return;
|
|
14139
14191
|
}
|
|
14140
|
-
this.dimensionProvider.applyNewColumns(beforeSetEvent.detail.columns, this.disableVirtualX);
|
|
14192
|
+
this.dimensionProvider.applyNewColumns(beforeSetEvent.detail.columns, this.disableVirtualX, init);
|
|
14141
14193
|
const beforeApplyEvent = this.beforecolumnapplied.emit(columnGather);
|
|
14142
14194
|
if (beforeApplyEvent.defaultPrevented) {
|
|
14143
14195
|
return;
|
|
@@ -14426,7 +14478,7 @@ class RevoGridComponent {
|
|
|
14426
14478
|
// set data
|
|
14427
14479
|
this.applyStretch(this.stretch);
|
|
14428
14480
|
this.themeChanged(this.theme, undefined, undefined, true);
|
|
14429
|
-
this.columnChanged(this.columns);
|
|
14481
|
+
this.columnChanged(this.columns, undefined, undefined, true);
|
|
14430
14482
|
this.dataSourceChanged(this.source, undefined, 'source');
|
|
14431
14483
|
this.dataSourceChanged(this.pinnedTopSource, undefined, 'pinnedTopSource');
|
|
14432
14484
|
this.dataSourceChanged(this.pinnedBottomSource, undefined, 'pinnedBottomSource');
|
|
@@ -14434,7 +14486,10 @@ class RevoGridComponent {
|
|
|
14434
14486
|
this.trimmedRowsChanged(this.trimmedRows);
|
|
14435
14487
|
}
|
|
14436
14488
|
this.rowDefChanged(this.rowDefinitions);
|
|
14437
|
-
|
|
14489
|
+
// init grouping
|
|
14490
|
+
if (this.grouping && Object.keys(this.grouping).length > 0) {
|
|
14491
|
+
this.groupingChanged(this.grouping);
|
|
14492
|
+
}
|
|
14438
14493
|
// init scrolling service
|
|
14439
14494
|
this.scrollingService = new GridScrollingService((e) => {
|
|
14440
14495
|
var _a;
|
|
@@ -14807,6 +14862,7 @@ class RevogrData {
|
|
|
14807
14862
|
this.beforerowrender = createEvent(this, "beforerowrender", 7);
|
|
14808
14863
|
this.afterrender = createEvent(this, "afterrender", 7);
|
|
14809
14864
|
this.beforeCellRender = createEvent(this, "beforecellrender", 7);
|
|
14865
|
+
this.beforeDataRender = createEvent(this, "beforedatarender", 7);
|
|
14810
14866
|
this.dragStartCell = createEvent(this, "dragstartcell", 7);
|
|
14811
14867
|
/**
|
|
14812
14868
|
* Rendered rows - virtual index vs vnode
|
|
@@ -14872,7 +14928,11 @@ class RevogrData {
|
|
|
14872
14928
|
(_b = this.rangeUnsubscribe) === null || _b === void 0 ? void 0 : _b.call(this);
|
|
14873
14929
|
}
|
|
14874
14930
|
async componentWillRender() {
|
|
14875
|
-
|
|
14931
|
+
this.beforeDataRender.emit({
|
|
14932
|
+
rowType: this.type,
|
|
14933
|
+
colType: this.colType,
|
|
14934
|
+
});
|
|
14935
|
+
return Promise.all(this.jobsBeforeRender.map(p => typeof p === 'function' ? p() : p));
|
|
14876
14936
|
}
|
|
14877
14937
|
componentDidRender() {
|
|
14878
14938
|
this.afterrender.emit({ type: this.type });
|
|
@@ -16215,7 +16275,8 @@ class RevogrViewportScroll {
|
|
|
16215
16275
|
this.scrollchange.emit({ type, hasScroll });
|
|
16216
16276
|
}
|
|
16217
16277
|
disconnectedCallback() {
|
|
16218
|
-
|
|
16278
|
+
var _a;
|
|
16279
|
+
(_a = this.resizeService) === null || _a === void 0 ? void 0 : _a.destroy();
|
|
16219
16280
|
}
|
|
16220
16281
|
async componentDidRender() {
|
|
16221
16282
|
var _a, _b, _c, _d;
|
|
@@ -16243,7 +16304,7 @@ class RevogrViewportScroll {
|
|
|
16243
16304
|
this.setScrollVisibility('rgCol', this.horizontalScroll.clientWidth, this.contentWidth);
|
|
16244
16305
|
}
|
|
16245
16306
|
render() {
|
|
16246
|
-
return (hAsync(Host, { key: '
|
|
16307
|
+
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 })))));
|
|
16247
16308
|
}
|
|
16248
16309
|
/**
|
|
16249
16310
|
* Extra layer for scroll event monitoring, where MouseWheel event is not passing
|
|
@@ -16286,11 +16347,18 @@ class RevogrViewportScroll {
|
|
|
16286
16347
|
* @param e
|
|
16287
16348
|
*/
|
|
16288
16349
|
onVerticalMouseWheel(type, delta, e) {
|
|
16289
|
-
var _a, _b, _c, _d;
|
|
16290
|
-
(_a =
|
|
16291
|
-
const
|
|
16350
|
+
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
16351
|
+
const scrollTop = (_b = (_a = this.verticalScroll) === null || _a === void 0 ? void 0 : _a.scrollTop) !== null && _b !== void 0 ? _b : 0;
|
|
16352
|
+
const clientHeight = (_d = (_c = this.verticalScroll) === null || _c === void 0 ? void 0 : _c.clientHeight) !== null && _d !== void 0 ? _d : 0;
|
|
16353
|
+
const scrollHeight = (_f = (_e = this.verticalScroll) === null || _e === void 0 ? void 0 : _e.scrollHeight) !== null && _f !== void 0 ? _f : 0;
|
|
16354
|
+
// Detect if the user has reached the bottom
|
|
16355
|
+
const atBottom = (scrollTop + clientHeight >= scrollHeight) && e.deltaY > 0;
|
|
16356
|
+
const atTop = scrollTop === 0 && e.deltaY < 0;
|
|
16357
|
+
if (!atBottom && !atTop) {
|
|
16358
|
+
(_g = e.preventDefault) === null || _g === void 0 ? void 0 : _g.call(e);
|
|
16359
|
+
}
|
|
16292
16360
|
const pos = scrollTop + e[delta];
|
|
16293
|
-
(
|
|
16361
|
+
(_h = this.localScrollService) === null || _h === void 0 ? void 0 : _h.scroll(pos, type, undefined, e[delta]);
|
|
16294
16362
|
this.localScrollTimer.latestScrollUpdate(type);
|
|
16295
16363
|
}
|
|
16296
16364
|
/**
|
|
@@ -16301,8 +16369,18 @@ class RevogrViewportScroll {
|
|
|
16301
16369
|
*/
|
|
16302
16370
|
onHorizontalMouseWheel(type, delta, e) {
|
|
16303
16371
|
var _a, _b;
|
|
16304
|
-
(
|
|
16305
|
-
|
|
16372
|
+
if (!e.deltaX) {
|
|
16373
|
+
return;
|
|
16374
|
+
}
|
|
16375
|
+
const { scrollLeft, scrollWidth, clientWidth } = this.horizontalScroll;
|
|
16376
|
+
// Detect if the user has reached the right end
|
|
16377
|
+
const atRight = (scrollLeft + clientWidth >= scrollWidth) && e.deltaX > 0;
|
|
16378
|
+
// Detect if the user has reached the left end
|
|
16379
|
+
const atLeft = scrollLeft === 0 && e.deltaX < 0;
|
|
16380
|
+
if (!atRight && !atLeft) {
|
|
16381
|
+
(_a = e.preventDefault) === null || _a === void 0 ? void 0 : _a.call(e);
|
|
16382
|
+
}
|
|
16383
|
+
const pos = scrollLeft + e[delta];
|
|
16306
16384
|
(_b = this.localScrollService) === null || _b === void 0 ? void 0 : _b.scroll(pos, type, undefined, e[delta]);
|
|
16307
16385
|
this.localScrollTimer.latestScrollUpdate(type);
|
|
16308
16386
|
}
|