@contrail/data-grouping 1.0.34 → 1.0.35
Sign up to get free protection for your applications and to get access to all the features.
@@ -3,7 +3,7 @@ export declare class DataGroupGenerator {
|
|
3
3
|
static getDistinctValues(data: any, rootIndex: any, slugIndex?: any, rootAltIndex?: any, slugAltIndex?: any, groupMultiSelectInSeparateFrame?: boolean, sort?: {
|
4
4
|
sortKey: string;
|
5
5
|
options: any;
|
6
|
-
}): any[];
|
6
|
+
}, isDateProperty?: boolean): any[];
|
7
7
|
static buildChildDataGroups(data: any, parentGroup: DataGroup, groupingProperties: Array<DataGroupingProperty>, leafNodeDataCount: any, currentDepth: any, groupMultiSelectInSeparateFrame?: boolean): void;
|
8
8
|
static buildDataGroupStructure(data: Array<any>, groupingProperties: Array<DataGroupingProperty>, leafNodeDataCount: number, groupMultiSelectInSeparateFrame?: boolean): DataGroupStructure;
|
9
9
|
static createPartitionedGroupsFromData(parentGroup: DataGroup, data: Array<any>, leafNodeDataCount: number): Array<DataGroup>;
|
@@ -4,7 +4,7 @@ exports.DataGroupGenerator = void 0;
|
|
4
4
|
const util_1 = require("@contrail/util");
|
5
5
|
const types_1 = require("@contrail/types");
|
6
6
|
class DataGroupGenerator {
|
7
|
-
static getDistinctValues(data, rootIndex, slugIndex = null, rootAltIndex = null, slugAltIndex = null, groupMultiSelectInSeparateFrame = false, sort = { sortKey: 'asc', options: null }) {
|
7
|
+
static getDistinctValues(data, rootIndex, slugIndex = null, rootAltIndex = null, slugAltIndex = null, groupMultiSelectInSeparateFrame = false, sort = { sortKey: 'asc', options: null }, isDateProperty = false) {
|
8
8
|
const sortKey = (sort === null || sort === void 0 ? void 0 : sort.sortKey) || 'asc';
|
9
9
|
const options = (sort === null || sort === void 0 ? void 0 : sort.options) || null;
|
10
10
|
const map = new Map();
|
@@ -25,6 +25,11 @@ class DataGroupGenerator {
|
|
25
25
|
if (!value) {
|
26
26
|
return;
|
27
27
|
}
|
28
|
+
if (isDateProperty && value) {
|
29
|
+
const date = new Date(value);
|
30
|
+
value = date.toISOString().split('T')[0];
|
31
|
+
key = value;
|
32
|
+
}
|
28
33
|
if (key && value && typeof key === 'object') {
|
29
34
|
key = value.id || value.name || value;
|
30
35
|
}
|
@@ -65,16 +70,22 @@ class DataGroupGenerator {
|
|
65
70
|
static buildChildDataGroups(data, parentGroup, groupingProperties, leafNodeDataCount, currentDepth, groupMultiSelectInSeparateFrame = false) {
|
66
71
|
var _a, _b;
|
67
72
|
const groupingProperty = groupingProperties[currentDepth];
|
73
|
+
const isDateProperty = groupingProperty.propertyDefinition.propertyType === 'date';
|
68
74
|
const rootIndex = groupingProperty.typeRootSlug;
|
69
75
|
const slugIndex = groupingProperty.propertyDefinition.slug;
|
70
76
|
const rootAltIndex = util_1.StringUtil.convertToCamelCase(groupingProperty.typeRootSlug);
|
71
77
|
const slugAltIndex = groupingProperty.propertyDefinition.slug;
|
72
78
|
const sort = groupingProperty.sort || 'asc';
|
73
79
|
const options = ((_b = (_a = groupingProperty.propertyDefinition) === null || _a === void 0 ? void 0 : _a.options) === null || _b === void 0 ? void 0 : _b.map(x => x.value)) || null;
|
74
|
-
let distinctValues = this.getDistinctValues(data, rootIndex, slugIndex, rootAltIndex, slugAltIndex, groupMultiSelectInSeparateFrame, { sortKey: sort, options });
|
80
|
+
let distinctValues = this.getDistinctValues(data, rootIndex, slugIndex, rootAltIndex, slugAltIndex, groupMultiSelectInSeparateFrame, { sortKey: sort, options }, isDateProperty);
|
75
81
|
for (let val of distinctValues) {
|
76
82
|
const groupData = data.filter(obj => {
|
77
83
|
const objVal = util_1.ObjectUtil.getBySlugs(obj, rootIndex, slugIndex) || util_1.ObjectUtil.getBySlugs(obj, rootAltIndex, slugAltIndex);
|
84
|
+
if (isDateProperty) {
|
85
|
+
const objDate = new Date(objVal).toISOString().split('T')[0];
|
86
|
+
const valDate = new Date(val).toISOString().split('T')[0];
|
87
|
+
return objDate === valDate;
|
88
|
+
}
|
78
89
|
if (Array.isArray(val) && Array.isArray(objVal)) {
|
79
90
|
return val.sort().join() === objVal.sort().join();
|
80
91
|
}
|
package/package.json
CHANGED