@revolist/revogrid 4.12.1 → 4.12.3
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/{app-globals-66b5e3d1.js → app-globals-f72a6199.js} +2 -2
- package/dist/cjs/{app-globals-66b5e3d1.js.map → app-globals-f72a6199.js.map} +1 -1
- package/dist/cjs/{column.drag.plugin-2c24c512.js → column.drag.plugin-c4e46169.js} +181 -187
- package/dist/cjs/column.drag.plugin-c4e46169.js.map +1 -0
- package/dist/cjs/{column.service-cb3d757e.js → column.service-4339fa5d.js} +73 -57
- package/dist/cjs/column.service-4339fa5d.js.map +1 -0
- package/dist/cjs/{dimension.helpers-4527475f.js → dimension.helpers-5b822a09.js} +3 -2
- package/dist/cjs/dimension.helpers-5b822a09.js.map +1 -0
- package/dist/cjs/{edit.utils-787a9e1d.js → edit.utils-32d4c9e4.js} +2 -2
- package/dist/cjs/{edit.utils-787a9e1d.js.map → edit.utils-32d4c9e4.js.map} +1 -1
- package/dist/cjs/{filter.button-48acc2db.js → filter.button-2708e602.js} +2 -2
- package/dist/cjs/{filter.button-48acc2db.js.map → filter.button-2708e602.js.map} +1 -1
- package/dist/cjs/{header-cell-renderer-9d81a1fe.js → header-cell-renderer-aa96a9bd.js} +3 -3
- package/dist/cjs/{header-cell-renderer-9d81a1fe.js.map → header-cell-renderer-aa96a9bd.js.map} +1 -1
- package/dist/cjs/{index-bdea2cb6.js → index-8006d065.js} +8 -1
- package/dist/cjs/index-8006d065.js.map +1 -0
- package/dist/cjs/index.cjs.js +15 -10
- package/dist/cjs/index.cjs.js.map +1 -1
- package/dist/cjs/{key.utils-fcd0dda2.js → key.utils-05f14738.js} +2 -2
- package/dist/cjs/{key.utils-fcd0dda2.js.map → key.utils-05f14738.js.map} +1 -1
- package/dist/cjs/loader.cjs.js +2 -2
- package/dist/cjs/revo-grid.cjs.entry.js +8 -8
- package/dist/cjs/revo-grid.cjs.entry.js.map +1 -1
- package/dist/cjs/revo-grid.cjs.js +2 -2
- package/dist/cjs/revogr-attribution_7.cjs.entry.js +7 -7
- package/dist/cjs/revogr-clipboard_3.cjs.entry.js +5 -5
- package/dist/cjs/revogr-data_4.cjs.entry.js +15 -51
- package/dist/cjs/revogr-data_4.cjs.entry.js.map +1 -1
- package/dist/cjs/revogr-filter-panel.cjs.entry.js +2 -2
- package/dist/cjs/sorting.sign-b22d3d68.js +72 -0
- package/dist/cjs/sorting.sign-b22d3d68.js.map +1 -0
- package/dist/cjs/{text-editor-9f64bd5e.js → text-editor-82f53111.js} +3 -3
- package/dist/cjs/{text-editor-9f64bd5e.js.map → text-editor-82f53111.js.map} +1 -1
- package/dist/cjs/{throttle-6a2a8510.js → throttle-08957661.js} +2 -2
- package/dist/cjs/{throttle-6a2a8510.js.map → throttle-08957661.js.map} +1 -1
- package/dist/cjs/{viewport.store-0c68c932.js → viewport.store-4dbfeaa3.js} +2 -2
- package/dist/cjs/{viewport.store-0c68c932.js.map → viewport.store-4dbfeaa3.js.map} +1 -1
- package/dist/collection/components/data/cell-renderer.js +1 -1
- package/dist/collection/components/data/cell-renderer.js.map +1 -1
- package/dist/collection/components/data/revogr-data.js +2 -1
- package/dist/collection/components/data/revogr-data.js.map +1 -1
- package/dist/collection/components/revoGrid/revo-grid.js +1 -1
- package/dist/collection/components/revoGrid/revo-grid.js.map +1 -1
- package/dist/collection/plugins/filter/filter.plugin.js +1 -5
- package/dist/collection/plugins/filter/filter.plugin.js.map +1 -1
- package/dist/collection/plugins/groupingRow/grouping.row.plugin.js +57 -57
- package/dist/collection/plugins/groupingRow/grouping.row.plugin.js.map +1 -1
- package/dist/collection/plugins/groupingRow/grouping.row.renderer.js +16 -6
- package/dist/collection/plugins/groupingRow/grouping.row.renderer.js.map +1 -1
- package/dist/collection/plugins/groupingRow/grouping.row.types.js.map +1 -1
- package/dist/collection/plugins/groupingRow/grouping.service.js +70 -54
- package/dist/collection/plugins/groupingRow/grouping.service.js.map +1 -1
- package/dist/collection/plugins/index.js +0 -1
- package/dist/collection/plugins/index.js.map +1 -1
- package/dist/collection/serve/data.js +5 -0
- package/dist/collection/store/dataSource/trimmed.plugin.js +1 -0
- package/dist/collection/store/dataSource/trimmed.plugin.js.map +1 -1
- package/dist/collection/types/interfaces.js.map +1 -1
- package/dist/esm/{app-globals-60fd3b54.js → app-globals-6b929fd8.js} +2 -2
- package/dist/esm/{app-globals-60fd3b54.js.map → app-globals-6b929fd8.js.map} +1 -1
- package/dist/esm/{column.drag.plugin-6a84d7b0.js → column.drag.plugin-94964d01.js} +180 -188
- package/dist/esm/column.drag.plugin-94964d01.js.map +1 -0
- package/dist/esm/{column.service-ff8f75de.js → column.service-c0d404a6.js} +74 -58
- package/dist/esm/column.service-c0d404a6.js.map +1 -0
- package/dist/esm/{dimension.helpers-a4dd4f76.js → dimension.helpers-5567e424.js} +3 -2
- package/dist/esm/dimension.helpers-5567e424.js.map +1 -0
- package/dist/esm/{edit.utils-dd8b5cd7.js → edit.utils-b59306be.js} +2 -2
- package/dist/esm/{edit.utils-dd8b5cd7.js.map → edit.utils-b59306be.js.map} +1 -1
- package/dist/esm/{filter.button-d9b783c1.js → filter.button-84396156.js} +2 -2
- package/dist/esm/{filter.button-d9b783c1.js.map → filter.button-84396156.js.map} +1 -1
- package/dist/esm/{header-cell-renderer-4508273a.js → header-cell-renderer-0f5bd4a9.js} +3 -3
- package/dist/esm/{header-cell-renderer-4508273a.js.map → header-cell-renderer-0f5bd4a9.js.map} +1 -1
- package/dist/esm/{index-b5695870.js → index-f6fae858.js} +8 -2
- package/dist/esm/index-f6fae858.js.map +1 -0
- package/dist/esm/index.js +11 -11
- package/dist/esm/{key.utils-38b263fb.js → key.utils-3632161b.js} +2 -2
- package/dist/esm/{key.utils-38b263fb.js.map → key.utils-3632161b.js.map} +1 -1
- package/dist/esm/loader.js +3 -3
- package/dist/esm/revo-grid.entry.js +8 -8
- package/dist/esm/revo-grid.entry.js.map +1 -1
- package/dist/esm/revo-grid.js +3 -3
- package/dist/esm/revogr-attribution_7.entry.js +7 -7
- package/dist/esm/revogr-clipboard_3.entry.js +5 -5
- package/dist/esm/revogr-data_4.entry.js +13 -49
- package/dist/esm/revogr-data_4.entry.js.map +1 -1
- package/dist/esm/revogr-filter-panel.entry.js +2 -2
- package/dist/esm/sorting.sign-a92ff239.js +65 -0
- package/dist/esm/sorting.sign-a92ff239.js.map +1 -0
- package/dist/esm/{text-editor-7fbbcea7.js → text-editor-e47e56c3.js} +3 -3
- package/dist/esm/{text-editor-7fbbcea7.js.map → text-editor-e47e56c3.js.map} +1 -1
- package/dist/esm/{throttle-61be638a.js → throttle-05489451.js} +2 -2
- package/dist/esm/{throttle-61be638a.js.map → throttle-05489451.js.map} +1 -1
- package/dist/esm/{viewport.store-e66c1a9b.js → viewport.store-c18a25a6.js} +2 -2
- package/dist/esm/{viewport.store-e66c1a9b.js.map → viewport.store-c18a25a6.js.map} +1 -1
- package/dist/revo-grid/app-globals-6b929fd8.js +5 -0
- package/dist/revo-grid/{column.drag.plugin-6a84d7b0.js → column.drag.plugin-94964d01.js} +2 -2
- package/dist/revo-grid/column.drag.plugin-94964d01.js.map +1 -0
- package/dist/revo-grid/column.service-c0d404a6.js +5 -0
- package/dist/revo-grid/column.service-c0d404a6.js.map +1 -0
- package/dist/revo-grid/{dimension.helpers-a4dd4f76.js → dimension.helpers-5567e424.js} +2 -2
- package/dist/revo-grid/{dimension.helpers-a4dd4f76.js.map → dimension.helpers-5567e424.js.map} +1 -1
- package/dist/revo-grid/edit.utils-b59306be.js +5 -0
- package/dist/revo-grid/{filter.button-d9b783c1.js → filter.button-84396156.js} +2 -2
- package/dist/revo-grid/{header-cell-renderer-4508273a.js → header-cell-renderer-0f5bd4a9.js} +2 -2
- package/dist/revo-grid/index-f6fae858.js +6 -0
- package/dist/revo-grid/index-f6fae858.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-3632161b.js +5 -0
- 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/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/revogr-filter-panel.entry.js +1 -1
- package/dist/revo-grid/sorting.sign-a92ff239.js +5 -0
- package/dist/revo-grid/sorting.sign-a92ff239.js.map +1 -0
- package/dist/revo-grid/text-editor-e47e56c3.js +5 -0
- package/dist/revo-grid/{throttle-61be638a.js → throttle-05489451.js} +2 -2
- package/dist/revo-grid/{viewport.store-e66c1a9b.js → viewport.store-c18a25a6.js} +2 -2
- package/dist/types/plugins/filter/filter.plugin.d.ts +2 -1
- package/dist/types/plugins/groupingRow/grouping.row.plugin.d.ts +7 -4
- package/dist/types/plugins/groupingRow/grouping.row.renderer.d.ts +6 -3
- package/dist/types/plugins/groupingRow/grouping.row.types.d.ts +6 -3
- package/dist/types/plugins/groupingRow/grouping.service.d.ts +0 -1
- package/dist/types/plugins/index.d.ts +0 -1
- package/dist/types/store/dataSource/trimmed.plugin.d.ts +3 -1
- package/dist/types/types/interfaces.d.ts +19 -0
- package/hydrate/index.js +187 -158
- package/hydrate/index.mjs +187 -158
- package/package.json +1 -1
- package/standalone/column.service.js +70 -54
- package/standalone/column.service.js.map +1 -1
- package/standalone/data.store.js +1 -0
- package/standalone/data.store.js.map +1 -1
- package/standalone/index.js +2 -1
- package/standalone/index.js.map +1 -1
- package/standalone/revo-grid.js +175 -183
- package/standalone/revo-grid.js.map +1 -1
- package/standalone/revogr-data2.js +18 -8
- package/standalone/revogr-data2.js.map +1 -1
- package/dist/cjs/column.drag.plugin-2c24c512.js.map +0 -1
- package/dist/cjs/column.service-cb3d757e.js.map +0 -1
- package/dist/cjs/dimension.helpers-4527475f.js.map +0 -1
- package/dist/cjs/index-bdea2cb6.js.map +0 -1
- package/dist/cjs/sorting.sign-83d75503.js +0 -15
- package/dist/cjs/sorting.sign-83d75503.js.map +0 -1
- package/dist/esm/column.drag.plugin-6a84d7b0.js.map +0 -1
- package/dist/esm/column.service-ff8f75de.js.map +0 -1
- package/dist/esm/dimension.helpers-a4dd4f76.js.map +0 -1
- package/dist/esm/index-b5695870.js.map +0 -1
- package/dist/esm/sorting.sign-e096163a.js +0 -13
- package/dist/esm/sorting.sign-e096163a.js.map +0 -1
- package/dist/revo-grid/app-globals-60fd3b54.js +0 -5
- package/dist/revo-grid/column.drag.plugin-6a84d7b0.js.map +0 -1
- package/dist/revo-grid/column.service-ff8f75de.js +0 -5
- package/dist/revo-grid/column.service-ff8f75de.js.map +0 -1
- package/dist/revo-grid/edit.utils-dd8b5cd7.js +0 -5
- package/dist/revo-grid/index-b5695870.js +0 -6
- package/dist/revo-grid/index-b5695870.js.map +0 -1
- package/dist/revo-grid/key.utils-38b263fb.js +0 -5
- package/dist/revo-grid/sorting.sign-e096163a.js +0 -5
- package/dist/revo-grid/sorting.sign-e096163a.js.map +0 -1
- package/dist/revo-grid/text-editor-7fbbcea7.js +0 -5
- /package/dist/revo-grid/{app-globals-60fd3b54.js.map → app-globals-6b929fd8.js.map} +0 -0
- /package/dist/revo-grid/{edit.utils-dd8b5cd7.js.map → edit.utils-b59306be.js.map} +0 -0
- /package/dist/revo-grid/{filter.button-d9b783c1.js.map → filter.button-84396156.js.map} +0 -0
- /package/dist/revo-grid/{header-cell-renderer-4508273a.js.map → header-cell-renderer-0f5bd4a9.js.map} +0 -0
- /package/dist/revo-grid/{key.utils-38b263fb.js.map → key.utils-3632161b.js.map} +0 -0
- /package/dist/revo-grid/{text-editor-7fbbcea7.js.map → text-editor-e47e56c3.js.map} +0 -0
- /package/dist/revo-grid/{throttle-61be638a.js.map → throttle-05489451.js.map} +0 -0
- /package/dist/revo-grid/{viewport.store-e66c1a9b.js.map → viewport.store-c18a25a6.js.map} +0 -0
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*/
|
|
4
4
|
'use strict';
|
|
5
5
|
|
|
6
|
-
require('./index-
|
|
6
|
+
require('./index-8006d065.js');
|
|
7
7
|
|
|
8
8
|
const globalFn = () => { };
|
|
9
9
|
|
|
@@ -11,4 +11,4 @@ const globalScripts = globalFn;
|
|
|
11
11
|
|
|
12
12
|
exports.globalScripts = globalScripts;
|
|
13
13
|
|
|
14
|
-
//# sourceMappingURL=app-globals-
|
|
14
|
+
//# sourceMappingURL=app-globals-f72a6199.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"file":"app-globals-
|
|
1
|
+
{"file":"app-globals-f72a6199.js","mappings":";;;;;;;;;AACY,MAAC,aAAa,GAAGA;;;;","names":["appGlobalScript"],"sources":["@stencil/core/internal/app-globals"],"sourcesContent":["import appGlobalScript from '/home/runner/work/revogrid/revogrid/src/global/global.ts';\nexport const globalScripts = appGlobalScript;\n"],"version":3}
|
|
@@ -3,13 +3,13 @@
|
|
|
3
3
|
*/
|
|
4
4
|
'use strict';
|
|
5
5
|
|
|
6
|
-
const column_service = require('./column.service-
|
|
7
|
-
const dimension_helpers = require('./dimension.helpers-
|
|
8
|
-
const viewport_store = require('./viewport.store-
|
|
9
|
-
const index = require('./index-
|
|
10
|
-
const filter_button = require('./filter.button-
|
|
6
|
+
const column_service = require('./column.service-4339fa5d.js');
|
|
7
|
+
const dimension_helpers = require('./dimension.helpers-5b822a09.js');
|
|
8
|
+
const viewport_store = require('./viewport.store-4dbfeaa3.js');
|
|
9
|
+
const index = require('./index-8006d065.js');
|
|
10
|
+
const filter_button = require('./filter.button-2708e602.js');
|
|
11
11
|
const debounce = require('./debounce-ec7a04b4.js');
|
|
12
|
-
const headerCellRenderer = require('./header-cell-renderer-
|
|
12
|
+
const headerCellRenderer = require('./header-cell-renderer-aa96a9bd.js');
|
|
13
13
|
|
|
14
14
|
/**
|
|
15
15
|
* Plugin which recalculates realSize on changes of sizes, originItemSize and count
|
|
@@ -1414,11 +1414,7 @@ class FilterPlugin extends BasePlugin {
|
|
|
1414
1414
|
if (defaultPrevented) {
|
|
1415
1415
|
return;
|
|
1416
1416
|
}
|
|
1417
|
-
|
|
1418
|
-
const isAddedEvent = await this.revogrid.addTrimmed(detail.itemsToFilter, FILTER_TRIMMED_TYPE);
|
|
1419
|
-
if (isAddedEvent.defaultPrevented) {
|
|
1420
|
-
return;
|
|
1421
|
-
}
|
|
1417
|
+
this.providers.data.setTrimmed({ [FILTER_TRIMMED_TYPE]: detail.itemsToFilter });
|
|
1422
1418
|
// applies the hasFilter to the columns to show filter icon
|
|
1423
1419
|
this.providers.column.updateColumns(columnsToUpdate);
|
|
1424
1420
|
this.emit('afterfilterapply', {
|
|
@@ -1544,125 +1540,6 @@ function allAndConditionsSatisfied(pendingResults) {
|
|
|
1544
1540
|
return !pendingResults.includes(true);
|
|
1545
1541
|
}
|
|
1546
1542
|
|
|
1547
|
-
// provide collapse data
|
|
1548
|
-
function doCollapse(pIndex, source) {
|
|
1549
|
-
const model = source[pIndex];
|
|
1550
|
-
const collapseValue = model[column_service.PSEUDO_GROUP_ITEM_VALUE];
|
|
1551
|
-
const trimmed = {};
|
|
1552
|
-
let i = pIndex + 1;
|
|
1553
|
-
const total = source.length;
|
|
1554
|
-
while (i < total) {
|
|
1555
|
-
const currentModel = source[i];
|
|
1556
|
-
if (column_service.isGrouping(currentModel)) {
|
|
1557
|
-
const currentValue = currentModel[column_service.PSEUDO_GROUP_ITEM_VALUE];
|
|
1558
|
-
if (!currentValue.length || !currentValue.startsWith(collapseValue + ',')) {
|
|
1559
|
-
break;
|
|
1560
|
-
}
|
|
1561
|
-
currentModel[column_service.GROUP_EXPANDED] = false;
|
|
1562
|
-
}
|
|
1563
|
-
trimmed[i++] = true;
|
|
1564
|
-
}
|
|
1565
|
-
model[column_service.GROUP_EXPANDED] = false;
|
|
1566
|
-
return { trimmed };
|
|
1567
|
-
}
|
|
1568
|
-
/**
|
|
1569
|
-
*
|
|
1570
|
-
* @param pIndex - physical index
|
|
1571
|
-
* @param vIndex - virtual index, need to update item collection
|
|
1572
|
-
* @param source - data source
|
|
1573
|
-
* @param rowItemsIndexes - rgRow indexes
|
|
1574
|
-
*/
|
|
1575
|
-
function doExpand(vIndex, source, rowItemsIndexes) {
|
|
1576
|
-
const physicalIndex = rowItemsIndexes[vIndex];
|
|
1577
|
-
const model = source[physicalIndex];
|
|
1578
|
-
const currentGroup = column_service.getParsedGroup(model[column_service.PSEUDO_GROUP_ITEM_ID]);
|
|
1579
|
-
const trimmed = {};
|
|
1580
|
-
// no group found
|
|
1581
|
-
if (!currentGroup) {
|
|
1582
|
-
return { trimmed };
|
|
1583
|
-
}
|
|
1584
|
-
const groupItems = [];
|
|
1585
|
-
model[column_service.GROUP_EXPANDED] = true;
|
|
1586
|
-
let i = physicalIndex + 1;
|
|
1587
|
-
const total = source.length;
|
|
1588
|
-
let groupLevelOnly = 0;
|
|
1589
|
-
// go through all rows
|
|
1590
|
-
while (i < total) {
|
|
1591
|
-
const currentModel = source[i];
|
|
1592
|
-
const isGroup = column_service.isGrouping(currentModel);
|
|
1593
|
-
// group found
|
|
1594
|
-
if (isGroup) {
|
|
1595
|
-
if (!column_service.isSameGroup(currentGroup, model, currentModel)) {
|
|
1596
|
-
break;
|
|
1597
|
-
}
|
|
1598
|
-
else if (!groupLevelOnly) {
|
|
1599
|
-
// if get group first it's group only level
|
|
1600
|
-
groupLevelOnly = currentModel[column_service.GROUP_DEPTH];
|
|
1601
|
-
}
|
|
1602
|
-
}
|
|
1603
|
-
// level 0 or same depth
|
|
1604
|
-
if (!groupLevelOnly || (isGroup && groupLevelOnly === currentModel[column_service.GROUP_DEPTH])) {
|
|
1605
|
-
trimmed[i] = false;
|
|
1606
|
-
groupItems.push(i);
|
|
1607
|
-
}
|
|
1608
|
-
i++;
|
|
1609
|
-
}
|
|
1610
|
-
const result = {
|
|
1611
|
-
trimmed,
|
|
1612
|
-
};
|
|
1613
|
-
if (groupItems.length) {
|
|
1614
|
-
const items = [...rowItemsIndexes];
|
|
1615
|
-
items.splice(vIndex + 1, 0, ...groupItems);
|
|
1616
|
-
result.items = items;
|
|
1617
|
-
}
|
|
1618
|
-
return result;
|
|
1619
|
-
}
|
|
1620
|
-
|
|
1621
|
-
const TRIMMED_GROUPING = 'grouping';
|
|
1622
|
-
/**
|
|
1623
|
-
* Prepare trimming updated indexes for grouping
|
|
1624
|
-
* @param initiallyTrimed
|
|
1625
|
-
* @param firstLevelMap
|
|
1626
|
-
* @param secondLevelMap
|
|
1627
|
-
*/
|
|
1628
|
-
function processDoubleConversionTrimmed(initiallyTrimed, firstLevelMap, secondLevelMap) {
|
|
1629
|
-
const trimemedOptionsToUpgrade = {};
|
|
1630
|
-
/**
|
|
1631
|
-
* go through all groups except grouping
|
|
1632
|
-
*/
|
|
1633
|
-
for (let type in initiallyTrimed) {
|
|
1634
|
-
if (type === TRIMMED_GROUPING) {
|
|
1635
|
-
continue;
|
|
1636
|
-
}
|
|
1637
|
-
const items = initiallyTrimed[type];
|
|
1638
|
-
const newItems = {};
|
|
1639
|
-
for (let initialIndex in items) {
|
|
1640
|
-
/**
|
|
1641
|
-
* if item exists we find it in collection
|
|
1642
|
-
* we support 2 level of conversions
|
|
1643
|
-
*/
|
|
1644
|
-
let newConversionIndex = firstLevelMap[initialIndex];
|
|
1645
|
-
if (secondLevelMap) {
|
|
1646
|
-
newConversionIndex = secondLevelMap[newConversionIndex];
|
|
1647
|
-
}
|
|
1648
|
-
/**
|
|
1649
|
-
* if item was trimmed previously
|
|
1650
|
-
* trimming makes sense to apply
|
|
1651
|
-
*/
|
|
1652
|
-
if (items[initialIndex]) {
|
|
1653
|
-
newItems[newConversionIndex] = true;
|
|
1654
|
-
/**
|
|
1655
|
-
* If changes present apply changes to new source
|
|
1656
|
-
*/
|
|
1657
|
-
if (newConversionIndex !== parseInt(initialIndex, 10)) {
|
|
1658
|
-
trimemedOptionsToUpgrade[type] = newItems;
|
|
1659
|
-
}
|
|
1660
|
-
}
|
|
1661
|
-
}
|
|
1662
|
-
}
|
|
1663
|
-
return trimemedOptionsToUpgrade;
|
|
1664
|
-
}
|
|
1665
|
-
|
|
1666
1543
|
/** `Object#toString` result references. */
|
|
1667
1544
|
var stringTag = '[object String]';
|
|
1668
1545
|
|
|
@@ -2077,6 +1954,125 @@ class SortingPlugin extends BasePlugin {
|
|
|
2077
1954
|
}
|
|
2078
1955
|
}
|
|
2079
1956
|
|
|
1957
|
+
// provide collapse data
|
|
1958
|
+
function doCollapse(pIndex, source) {
|
|
1959
|
+
const model = source[pIndex];
|
|
1960
|
+
const collapseValue = model[column_service.PSEUDO_GROUP_ITEM_VALUE];
|
|
1961
|
+
const trimmed = {};
|
|
1962
|
+
let i = pIndex + 1;
|
|
1963
|
+
const total = source.length;
|
|
1964
|
+
while (i < total) {
|
|
1965
|
+
const currentModel = source[i];
|
|
1966
|
+
if (column_service.isGrouping(currentModel)) {
|
|
1967
|
+
const currentValue = currentModel[column_service.PSEUDO_GROUP_ITEM_VALUE];
|
|
1968
|
+
if (!currentValue.length || !currentValue.startsWith(collapseValue + ',')) {
|
|
1969
|
+
break;
|
|
1970
|
+
}
|
|
1971
|
+
currentModel[column_service.GROUP_EXPANDED] = false;
|
|
1972
|
+
}
|
|
1973
|
+
trimmed[i++] = true;
|
|
1974
|
+
}
|
|
1975
|
+
model[column_service.GROUP_EXPANDED] = false;
|
|
1976
|
+
return { trimmed };
|
|
1977
|
+
}
|
|
1978
|
+
/**
|
|
1979
|
+
*
|
|
1980
|
+
* @param pIndex - physical index
|
|
1981
|
+
* @param vIndex - virtual index, need to update item collection
|
|
1982
|
+
* @param source - data source
|
|
1983
|
+
* @param rowItemsIndexes - rgRow indexes
|
|
1984
|
+
*/
|
|
1985
|
+
function doExpand(vIndex, source, rowItemsIndexes) {
|
|
1986
|
+
const physicalIndex = rowItemsIndexes[vIndex];
|
|
1987
|
+
const model = source[physicalIndex];
|
|
1988
|
+
const currentGroup = column_service.getParsedGroup(model[column_service.PSEUDO_GROUP_ITEM_ID]);
|
|
1989
|
+
const trimmed = {};
|
|
1990
|
+
// no group found
|
|
1991
|
+
if (!currentGroup) {
|
|
1992
|
+
return { trimmed };
|
|
1993
|
+
}
|
|
1994
|
+
const groupItems = [];
|
|
1995
|
+
model[column_service.GROUP_EXPANDED] = true;
|
|
1996
|
+
let i = physicalIndex + 1;
|
|
1997
|
+
const total = source.length;
|
|
1998
|
+
let groupLevelOnly = 0;
|
|
1999
|
+
// go through all rows
|
|
2000
|
+
while (i < total) {
|
|
2001
|
+
const currentModel = source[i];
|
|
2002
|
+
const isGroup = column_service.isGrouping(currentModel);
|
|
2003
|
+
// group found
|
|
2004
|
+
if (isGroup) {
|
|
2005
|
+
if (!column_service.isSameGroup(currentGroup, model, currentModel)) {
|
|
2006
|
+
break;
|
|
2007
|
+
}
|
|
2008
|
+
else if (!groupLevelOnly) {
|
|
2009
|
+
// if get group first it's group only level
|
|
2010
|
+
groupLevelOnly = currentModel[column_service.GROUP_DEPTH];
|
|
2011
|
+
}
|
|
2012
|
+
}
|
|
2013
|
+
// level 0 or same depth
|
|
2014
|
+
if (!groupLevelOnly || (isGroup && groupLevelOnly === currentModel[column_service.GROUP_DEPTH])) {
|
|
2015
|
+
trimmed[i] = false;
|
|
2016
|
+
groupItems.push(i);
|
|
2017
|
+
}
|
|
2018
|
+
i++;
|
|
2019
|
+
}
|
|
2020
|
+
const result = {
|
|
2021
|
+
trimmed,
|
|
2022
|
+
};
|
|
2023
|
+
if (groupItems.length) {
|
|
2024
|
+
const items = [...rowItemsIndexes];
|
|
2025
|
+
items.splice(vIndex + 1, 0, ...groupItems);
|
|
2026
|
+
result.items = items;
|
|
2027
|
+
}
|
|
2028
|
+
return result;
|
|
2029
|
+
}
|
|
2030
|
+
|
|
2031
|
+
const TRIMMED_GROUPING = 'grouping';
|
|
2032
|
+
/**
|
|
2033
|
+
* Prepare trimming updated indexes for grouping
|
|
2034
|
+
* @param initiallyTrimed
|
|
2035
|
+
* @param firstLevelMap
|
|
2036
|
+
* @param secondLevelMap
|
|
2037
|
+
*/
|
|
2038
|
+
function processDoubleConversionTrimmed(initiallyTrimed, firstLevelMap, secondLevelMap) {
|
|
2039
|
+
const trimemedOptionsToUpgrade = {};
|
|
2040
|
+
/**
|
|
2041
|
+
* go through all groups except grouping
|
|
2042
|
+
*/
|
|
2043
|
+
for (let type in initiallyTrimed) {
|
|
2044
|
+
if (type === TRIMMED_GROUPING) {
|
|
2045
|
+
continue;
|
|
2046
|
+
}
|
|
2047
|
+
const items = initiallyTrimed[type];
|
|
2048
|
+
const newItems = {};
|
|
2049
|
+
for (let initialIndex in items) {
|
|
2050
|
+
/**
|
|
2051
|
+
* if item exists we find it in collection
|
|
2052
|
+
* we support 2 level of conversions
|
|
2053
|
+
*/
|
|
2054
|
+
let newConversionIndex = firstLevelMap[initialIndex];
|
|
2055
|
+
if (secondLevelMap) {
|
|
2056
|
+
newConversionIndex = secondLevelMap[newConversionIndex];
|
|
2057
|
+
}
|
|
2058
|
+
/**
|
|
2059
|
+
* if item was trimmed previously
|
|
2060
|
+
* trimming makes sense to apply
|
|
2061
|
+
*/
|
|
2062
|
+
if (items[initialIndex]) {
|
|
2063
|
+
newItems[newConversionIndex] = true;
|
|
2064
|
+
/**
|
|
2065
|
+
* If changes present apply changes to new source
|
|
2066
|
+
*/
|
|
2067
|
+
if (newConversionIndex !== parseInt(initialIndex, 10)) {
|
|
2068
|
+
trimemedOptionsToUpgrade[type] = newItems;
|
|
2069
|
+
}
|
|
2070
|
+
}
|
|
2071
|
+
}
|
|
2072
|
+
}
|
|
2073
|
+
return trimemedOptionsToUpgrade;
|
|
2074
|
+
}
|
|
2075
|
+
|
|
2080
2076
|
class GroupingRowPlugin extends BasePlugin {
|
|
2081
2077
|
getStore(type = column_service.GROUPING_ROW_TYPE) {
|
|
2082
2078
|
return this.providers.data.stores[type].store;
|
|
@@ -2160,53 +2156,6 @@ class GroupingRowPlugin extends BasePlugin {
|
|
|
2160
2156
|
const sortingPlugin = this.providers.plugins.getByClass(SortingPlugin);
|
|
2161
2157
|
return !!(sortingPlugin === null || sortingPlugin === void 0 ? void 0 : sortingPlugin.sortingPromise);
|
|
2162
2158
|
}
|
|
2163
|
-
// subscribe to grid events to process them accordingly
|
|
2164
|
-
subscribe() {
|
|
2165
|
-
/** if grouping present and new data source arrived */
|
|
2166
|
-
this.addEventListener('beforesourceset', ({ detail }) => {
|
|
2167
|
-
var _a, _b, _c;
|
|
2168
|
-
if (!(((_b = (_a = this.options) === null || _a === void 0 ? void 0 : _a.props) === null || _b === void 0 ? void 0 : _b.length) && ((_c = detail === null || detail === void 0 ? void 0 : detail.source) === null || _c === void 0 ? void 0 : _c.length))) {
|
|
2169
|
-
return;
|
|
2170
|
-
}
|
|
2171
|
-
// if sorting is running don't apply grouping, wait for sorting, then it'll apply in @aftersortingapply
|
|
2172
|
-
if (this.isSortingRunning()) {
|
|
2173
|
-
return;
|
|
2174
|
-
}
|
|
2175
|
-
this.onDataSet(detail);
|
|
2176
|
-
});
|
|
2177
|
-
this.addEventListener('beforecolumnsset', ({ detail }) => {
|
|
2178
|
-
this.setColumns(detail);
|
|
2179
|
-
});
|
|
2180
|
-
/**
|
|
2181
|
-
* filter applied need to clear grouping and apply again
|
|
2182
|
-
* based on new results can be new grouping
|
|
2183
|
-
*/
|
|
2184
|
-
this.addEventListener('beforetrimmed', ({ detail: { trimmed, trimmedType } }) => this.beforeTrimmedApply(trimmed, trimmedType));
|
|
2185
|
-
/**
|
|
2186
|
-
* sorting applied need to clear grouping and apply again
|
|
2187
|
-
* based on new results whole grouping order will changed
|
|
2188
|
-
*/
|
|
2189
|
-
this.addEventListener('aftersortingapply', () => {
|
|
2190
|
-
var _a, _b;
|
|
2191
|
-
if (!((_b = (_a = this.options) === null || _a === void 0 ? void 0 : _a.props) === null || _b === void 0 ? void 0 : _b.length)) {
|
|
2192
|
-
return;
|
|
2193
|
-
}
|
|
2194
|
-
this.doSourceUpdate(Object.assign({}, this.options));
|
|
2195
|
-
});
|
|
2196
|
-
/**
|
|
2197
|
-
* Apply logic for focus inside of grouping
|
|
2198
|
-
* We can't focus on grouping rows, navigation only inside of groups for now
|
|
2199
|
-
*/
|
|
2200
|
-
this.addEventListener('beforecellfocus', e => this.onFocus(e));
|
|
2201
|
-
/**
|
|
2202
|
-
* Prevent rgRow drag outside the group
|
|
2203
|
-
*/
|
|
2204
|
-
this.addEventListener('roworderchanged', e => this.onDrag(e));
|
|
2205
|
-
/**
|
|
2206
|
-
* When grouping expand icon was clicked
|
|
2207
|
-
*/
|
|
2208
|
-
this.addEventListener('groupexpandclick', e => this.onExpand(e.detail));
|
|
2209
|
-
}
|
|
2210
2159
|
/**
|
|
2211
2160
|
* Starts global source update with group clearing and applying new one
|
|
2212
2161
|
* Initiated when need to reapply grouping
|
|
@@ -2223,11 +2172,11 @@ class GroupingRowPlugin extends BasePlugin {
|
|
|
2223
2172
|
* Group again
|
|
2224
2173
|
* @param oldNewIndexMap - provides us mapping with new indexes vs old indexes
|
|
2225
2174
|
*/
|
|
2226
|
-
const { sourceWithGroups, depth, trimmed, oldNewIndexMap,
|
|
2175
|
+
const { sourceWithGroups, depth, trimmed, oldNewIndexMap, } = column_service.gatherGrouping(source, ((_a = this.options) === null || _a === void 0 ? void 0 : _a.props) || [], expanded);
|
|
2227
2176
|
const customRenderer = options === null || options === void 0 ? void 0 : options.groupLabelTemplate;
|
|
2228
2177
|
// setup source
|
|
2229
2178
|
this.providers.data.setData(sourceWithGroups, column_service.GROUPING_ROW_TYPE, this.revogrid.disableVirtualY, { depth, customRenderer }, true);
|
|
2230
|
-
this.updateTrimmed(trimmed,
|
|
2179
|
+
this.updateTrimmed(trimmed, oldNewIndexes !== null && oldNewIndexes !== void 0 ? oldNewIndexes : {}, oldNewIndexMap);
|
|
2231
2180
|
}
|
|
2232
2181
|
/**
|
|
2233
2182
|
* Apply grouping on data set
|
|
@@ -2243,13 +2192,13 @@ class GroupingRowPlugin extends BasePlugin {
|
|
|
2243
2192
|
}
|
|
2244
2193
|
const source = data.source.filter(s => !column_service.isGrouping(s));
|
|
2245
2194
|
const options = Object.assign(Object.assign({}, (this.revogrid.grouping || {})), { prevExpanded: preservedExpanded });
|
|
2246
|
-
const { sourceWithGroups, depth, trimmed, oldNewIndexMap,
|
|
2195
|
+
const { sourceWithGroups, depth, trimmed, oldNewIndexMap, } = column_service.gatherGrouping(source, ((_b = this.options) === null || _b === void 0 ? void 0 : _b.props) || [], options);
|
|
2247
2196
|
data.source = sourceWithGroups;
|
|
2248
2197
|
this.providers.data.setGrouping({ depth });
|
|
2249
|
-
this.updateTrimmed(trimmed,
|
|
2198
|
+
this.updateTrimmed(trimmed, oldNewIndexMap);
|
|
2250
2199
|
}
|
|
2251
2200
|
/**
|
|
2252
|
-
*
|
|
2201
|
+
* External call to apply grouping. Called by revogrid when prop changed.
|
|
2253
2202
|
*/
|
|
2254
2203
|
setGrouping(options) {
|
|
2255
2204
|
var _a, _b;
|
|
@@ -2261,12 +2210,12 @@ class GroupingRowPlugin extends BasePlugin {
|
|
|
2261
2210
|
this.clearGrouping();
|
|
2262
2211
|
return;
|
|
2263
2212
|
}
|
|
2264
|
-
// props exist and source
|
|
2213
|
+
// props exist and source initd
|
|
2265
2214
|
const { source } = column_service.getSource(this.getStore().get('source'), this.getStore().get('proxyItems'));
|
|
2266
2215
|
if (source.length) {
|
|
2267
2216
|
this.doSourceUpdate(Object.assign({}, options));
|
|
2268
2217
|
}
|
|
2269
|
-
// props exist and columns
|
|
2218
|
+
// props exist and columns initd
|
|
2270
2219
|
for (let t of columnTypes) {
|
|
2271
2220
|
if (this.setColumnGrouping(this.providers.column.getColumns(t))) {
|
|
2272
2221
|
this.providers.column.refreshByType(t);
|
|
@@ -2274,7 +2223,50 @@ class GroupingRowPlugin extends BasePlugin {
|
|
|
2274
2223
|
}
|
|
2275
2224
|
}
|
|
2276
2225
|
// if has any grouping subscribe to events again
|
|
2277
|
-
|
|
2226
|
+
/** if grouping present and new data source arrived */
|
|
2227
|
+
this.addEventListener('beforesourceset', ({ detail }) => {
|
|
2228
|
+
var _a, _b, _c;
|
|
2229
|
+
if (!(((_b = (_a = this.options) === null || _a === void 0 ? void 0 : _a.props) === null || _b === void 0 ? void 0 : _b.length) && ((_c = detail === null || detail === void 0 ? void 0 : detail.source) === null || _c === void 0 ? void 0 : _c.length))) {
|
|
2230
|
+
return;
|
|
2231
|
+
}
|
|
2232
|
+
// if sorting is running don't apply grouping, wait for sorting, then it'll apply in @aftersortingapply
|
|
2233
|
+
if (this.isSortingRunning()) {
|
|
2234
|
+
return;
|
|
2235
|
+
}
|
|
2236
|
+
this.onDataSet(detail);
|
|
2237
|
+
});
|
|
2238
|
+
this.addEventListener('beforecolumnsset', ({ detail }) => {
|
|
2239
|
+
this.setColumns(detail);
|
|
2240
|
+
});
|
|
2241
|
+
/**
|
|
2242
|
+
* filter applied need to clear grouping and apply again
|
|
2243
|
+
* based on new results can be new grouping
|
|
2244
|
+
*/
|
|
2245
|
+
this.addEventListener('beforetrimmed', ({ detail: { trimmed, trimmedType } }) => this.beforeTrimmedApply(trimmed, trimmedType));
|
|
2246
|
+
/**
|
|
2247
|
+
* sorting applied need to clear grouping and apply again
|
|
2248
|
+
* based on new results whole grouping order will changed
|
|
2249
|
+
*/
|
|
2250
|
+
this.addEventListener('aftersortingapply', () => {
|
|
2251
|
+
var _a, _b;
|
|
2252
|
+
if (!((_b = (_a = this.options) === null || _a === void 0 ? void 0 : _a.props) === null || _b === void 0 ? void 0 : _b.length)) {
|
|
2253
|
+
return;
|
|
2254
|
+
}
|
|
2255
|
+
this.doSourceUpdate(Object.assign({}, this.options));
|
|
2256
|
+
});
|
|
2257
|
+
/**
|
|
2258
|
+
* Apply logic for focus inside of grouping
|
|
2259
|
+
* We can't focus on grouping rows, navigation only inside of groups for now
|
|
2260
|
+
*/
|
|
2261
|
+
this.addEventListener('beforecellfocus', e => this.onFocus(e));
|
|
2262
|
+
/**
|
|
2263
|
+
* Prevent rgRow drag outside the group
|
|
2264
|
+
*/
|
|
2265
|
+
this.addEventListener('roworderchanged', e => this.onDrag(e));
|
|
2266
|
+
/**
|
|
2267
|
+
* When grouping expand icon was clicked
|
|
2268
|
+
*/
|
|
2269
|
+
this.addEventListener('groupexpandclick', e => this.onExpand(e.detail));
|
|
2278
2270
|
}
|
|
2279
2271
|
// clear grouping
|
|
2280
2272
|
clearGrouping() {
|
|
@@ -2298,7 +2290,7 @@ class GroupingRowPlugin extends BasePlugin {
|
|
|
2298
2290
|
this.providers.data.setData(source, column_service.GROUPING_ROW_TYPE, this.revogrid.disableVirtualY, undefined, true);
|
|
2299
2291
|
this.updateTrimmed(undefined, undefined, oldNewIndexes);
|
|
2300
2292
|
}
|
|
2301
|
-
updateTrimmed(trimmedGroup = {},
|
|
2293
|
+
updateTrimmed(trimmedGroup = {}, firstLevelMap = {}, secondLevelMap) {
|
|
2302
2294
|
// map previously trimmed data
|
|
2303
2295
|
const trimemedOptionsToUpgrade = processDoubleConversionTrimmed(this.getStore().get('trimmed'), firstLevelMap, secondLevelMap);
|
|
2304
2296
|
for (let type in trimemedOptionsToUpgrade) {
|
|
@@ -2552,6 +2544,8 @@ exports.GroupingRowPlugin = GroupingRowPlugin;
|
|
|
2552
2544
|
exports.SortingPlugin = SortingPlugin;
|
|
2553
2545
|
exports.StretchColumn = StretchColumn;
|
|
2554
2546
|
exports.columnTypes = columnTypes;
|
|
2547
|
+
exports.doCollapse = doCollapse;
|
|
2548
|
+
exports.doExpand = doExpand;
|
|
2555
2549
|
exports.filterCoreFunctionsIndexedByType = filterCoreFunctionsIndexedByType;
|
|
2556
2550
|
exports.filterNames = filterNames;
|
|
2557
2551
|
exports.filterTypes = filterTypes;
|
|
@@ -2561,4 +2555,4 @@ exports.isRowType = isRowType;
|
|
|
2561
2555
|
exports.isStretchPlugin = isStretchPlugin;
|
|
2562
2556
|
exports.rowTypes = rowTypes;
|
|
2563
2557
|
|
|
2564
|
-
//# sourceMappingURL=column.drag.plugin-
|
|
2558
|
+
//# sourceMappingURL=column.drag.plugin-c4e46169.js.map
|