@contrail/data-grouping
Advanced tools
Comparing version 1.0.28 to 1.0.29
import { DataGroup, DataGroupStructure, DataGroupingProperty } from '../interfaces'; | ||
export declare class DataGroupGenerator { | ||
static getDistinctValues(data: any, rootIndex: any, slugIndex?: any, rootAltIndex?: any, slugAltIndex?: any, groupMultiSelectInSeparateFrame?: boolean, sortKey?: string): any[]; | ||
static getDistinctValues(data: any, rootIndex: any, slugIndex?: any, rootAltIndex?: any, slugAltIndex?: any, groupMultiSelectInSeparateFrame?: boolean, sortKey?: string, options?: any): any[]; | ||
static buildChildDataGroups(data: any, parentGroup: DataGroup, groupingProperties: Array<DataGroupingProperty>, leafNodeDataCount: any, currentDepth: any, groupMultiSelectInSeparateFrame?: boolean): void; | ||
@@ -5,0 +5,0 @@ static buildDataGroupStructure(data: Array<any>, groupingProperties: Array<DataGroupingProperty>, leafNodeDataCount: number, groupMultiSelectInSeparateFrame?: boolean): DataGroupStructure; |
@@ -7,3 +7,3 @@ "use strict"; | ||
class DataGroupGenerator { | ||
static getDistinctValues(data, rootIndex, slugIndex = null, rootAltIndex = null, slugAltIndex = null, groupMultiSelectInSeparateFrame = false, sortKey = 'asc') { | ||
static getDistinctValues(data, rootIndex, slugIndex = null, rootAltIndex = null, slugAltIndex = null, groupMultiSelectInSeparateFrame = false, sortKey = 'asc', options = null) { | ||
const map = new Map(); | ||
@@ -49,7 +49,18 @@ const sortingArray = []; | ||
let val2 = v2 && typeof v2 === 'object' ? v2.name : v2; | ||
console.log('OPTIONS', options); | ||
if (sortKey === 'asc') { | ||
return val1 > val2 ? 1 : -1; | ||
if (options) { | ||
return options.indexOf(val1) - options.indexOf(val2); | ||
} | ||
else { | ||
return val1 > val2 ? 1 : -1; | ||
} | ||
} | ||
else if (sortKey === 'desc') { | ||
return val1 < val2 ? 1 : -1; | ||
if (options) { | ||
return options.indexOf(val2) - options.indexOf(val1); | ||
} | ||
else { | ||
return val1 < val2 ? 1 : -1; | ||
} | ||
} | ||
@@ -63,2 +74,3 @@ else { | ||
static buildChildDataGroups(data, parentGroup, groupingProperties, leafNodeDataCount, currentDepth, groupMultiSelectInSeparateFrame = false) { | ||
var _a; | ||
const groupingProperty = groupingProperties[currentDepth]; | ||
@@ -70,3 +82,5 @@ const rootIndex = groupingProperty.typeRootSlug; | ||
const sort = groupingProperty.sort || 'asc'; | ||
let distinctValues = this.getDistinctValues(data, rootIndex, slugIndex, rootAltIndex, slugAltIndex, groupMultiSelectInSeparateFrame, sort); | ||
const options = ((_a = groupingProperty.propertyDefinition) === null || _a === void 0 ? void 0 : _a.options) || null; | ||
console.log('GROUPING PROPERTIES', groupingProperty); | ||
let distinctValues = this.getDistinctValues(data, rootIndex, slugIndex, rootAltIndex, slugAltIndex, groupMultiSelectInSeparateFrame, sort, options); | ||
for (let val of distinctValues) { | ||
@@ -73,0 +87,0 @@ const groupData = data.filter((obj) => { |
{ | ||
"name": "@contrail/data-grouping", | ||
"version": "1.0.28", | ||
"version": "1.0.29", | ||
"description": "Utilities and interfaces for grouping data into hierarchial data structures based on properties.", | ||
@@ -5,0 +5,0 @@ "main": "lib/index.js", |
New author
Supply chain riskA new npm collaborator published a version of the package for the first time. New collaborators are usually benign additions to a project, but do indicate a change to the security surface area of a package.
Found 1 instance in 1 package
11670
234
0