@one-paragon/angular-utilities 2.6.0 → 2.6.2
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.
|
@@ -4549,15 +4549,17 @@ const supportsGroupBy = typeof Object.groupBy === 'function';
|
|
|
4549
4549
|
function getGroupedData(data, groupByDatas, metaData) {
|
|
4550
4550
|
return tbGroupBy(data, groupByDatas, 1, metaData);
|
|
4551
4551
|
}
|
|
4552
|
-
let tbGroupBy = (data, groupByDatas, level = 1, metaData,
|
|
4552
|
+
let tbGroupBy = (data, groupByDatas, level = 1, metaData, parent) => {
|
|
4553
4553
|
const currentGroupData = groupByDatas[0];
|
|
4554
|
-
const groupedDataArr = groupData(currentGroupData, data, level, metaData,
|
|
4554
|
+
const groupedDataArr = groupData(currentGroupData, data, level, metaData, parent);
|
|
4555
4555
|
const remainingGroupByDatas = groupByDatas.slice(1);
|
|
4556
4556
|
const hasChildrenGroups = !!remainingGroupByDatas.length;
|
|
4557
4557
|
if (hasChildrenGroups) {
|
|
4558
|
+
//update the group with children groups and related data
|
|
4558
4559
|
//group the children by iterating over each group and grouping it by the next keys
|
|
4559
4560
|
const groupOfGroups = groupedDataArr.map((group) => {
|
|
4560
4561
|
const children = group.children;
|
|
4562
|
+
const groups = tbGroupBy(children, remainingGroupByDatas, level + 1, metaData, group);
|
|
4561
4563
|
const groupGroup = {
|
|
4562
4564
|
groupName: group.groupName,
|
|
4563
4565
|
groupHeaderDisplay: group.groupHeaderDisplay,
|
|
@@ -4568,7 +4570,8 @@ let tbGroupBy = (data, groupByDatas, level = 1, metaData, parentGroupName) => {
|
|
|
4568
4570
|
padding: group.padding,
|
|
4569
4571
|
level: group.level,
|
|
4570
4572
|
length: group.length,
|
|
4571
|
-
groups
|
|
4573
|
+
groups,
|
|
4574
|
+
parent: group.parent,
|
|
4572
4575
|
[initIndexSymbol]: group[initIndexSymbol],
|
|
4573
4576
|
custom: false
|
|
4574
4577
|
};
|
|
@@ -4578,14 +4581,14 @@ let tbGroupBy = (data, groupByDatas, level = 1, metaData, parentGroupName) => {
|
|
|
4578
4581
|
}
|
|
4579
4582
|
return groupedDataArr;
|
|
4580
4583
|
};
|
|
4581
|
-
function groupData(groupByData, groupData, level = 1, metaData,
|
|
4584
|
+
function groupData(groupByData, groupData, level = 1, metaData, parent) {
|
|
4582
4585
|
const groupByKey = groupByData.key;
|
|
4583
4586
|
const meta = metaData[groupByKey];
|
|
4584
4587
|
const metaGroupGroupBy = meta && (meta.groupByLogic?.groupBy === 'use map' ? meta.map : meta.groupByLogic?.groupBy);
|
|
4585
4588
|
const getter = metaGroupGroupBy || getFactory(groupByKey);
|
|
4586
4589
|
const groupedDataDict = supportsGroupBy ? Object.groupBy(groupData, d => getter(d) ?? null) : groupBy(groupData, groupByKey);
|
|
4587
4590
|
let groupedDataArr = Object.entries(groupedDataDict).map(([name, groupData], index) => {
|
|
4588
|
-
const uniqueName =
|
|
4591
|
+
const uniqueName = parent?.groupName ? `${parent.groupName}-${name}` : name;
|
|
4589
4592
|
return {
|
|
4590
4593
|
isGroupHeader: true,
|
|
4591
4594
|
groupHeaderDisplay: name,
|
|
@@ -4598,6 +4601,7 @@ function groupData(groupByData, groupData, level = 1, metaData, parentGroupName)
|
|
|
4598
4601
|
uniqueName,
|
|
4599
4602
|
level,
|
|
4600
4603
|
custom: false,
|
|
4604
|
+
parent,
|
|
4601
4605
|
[initIndexSymbol]: index,
|
|
4602
4606
|
};
|
|
4603
4607
|
});
|