@vuu-ui/vuu-data-local 0.11.3 → 0.12.0
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.
|
@@ -84,12 +84,9 @@ function aggregateCount(groupMap, columnMap, aggregations, targetData, groupIndi
|
|
|
84
84
|
}
|
|
85
85
|
}
|
|
86
86
|
}
|
|
87
|
-
console.log("!!!! targetData", targetData);
|
|
88
|
-
console.log("!!!! counts", counts);
|
|
89
87
|
return counts;
|
|
90
88
|
}
|
|
91
89
|
function getAggColumn(columnMap, aggregations) {
|
|
92
|
-
console.log("!!!! aggregation length", aggregations.length);
|
|
93
90
|
const columnName = aggregations[aggregations.length - 1].column;
|
|
94
91
|
const columnNumber = columnMap[columnName];
|
|
95
92
|
return columnNumber;
|
|
@@ -113,7 +110,6 @@ function aggregateSum(groupMap, leafData, columnMap, aggregations, targetData, g
|
|
|
113
110
|
}
|
|
114
111
|
}
|
|
115
112
|
for (const key in groupMap) {
|
|
116
|
-
console.log(key);
|
|
117
113
|
const sum = Number(sumRecursive(groupMap[key], leafData, aggColumn));
|
|
118
114
|
sums[key] = sum;
|
|
119
115
|
}
|
|
@@ -124,8 +120,6 @@ function aggregateSum(groupMap, leafData, columnMap, aggregations, targetData, g
|
|
|
124
120
|
}
|
|
125
121
|
}
|
|
126
122
|
}
|
|
127
|
-
console.log("!!!! targetData", targetData);
|
|
128
|
-
console.log("!!!! sums", sums);
|
|
129
123
|
return sums;
|
|
130
124
|
}
|
|
131
125
|
function aggregateAverage(groupMap, leafData, columnMap, aggregations, targetData, groupIndices) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aggregate-utils.js","sources":["../../src/array-data-source/aggregate-utils.ts"],"sourcesContent":["import type { DataSourceRow } from \"@vuu-ui/vuu-data-types\";\nimport type { VuuAggregation, VuuGroupBy } from \"@vuu-ui/vuu-protocol-types\";\nimport type { ColumnMap } from \"@vuu-ui/vuu-utils\";\nimport type { GroupMap, KeyList } from \"./group-utils\";\n\nexport const count = (arr: unknown[]) => arr.length;\n\nexport const aggregateData = (\n aggregations: VuuAggregation[],\n targetData: readonly DataSourceRow[],\n groupBy: VuuGroupBy,\n leafData: readonly DataSourceRow[],\n columnMap: ColumnMap,\n groupMap: GroupMap,\n) => {\n const aggType = aggregations[aggregations.length - 1].aggType;\n const groupIndices = groupBy.map<number>((column) => columnMap[column]);\n\n switch (aggType) {\n case 1:\n return aggregateSum(\n groupMap,\n leafData,\n columnMap,\n aggregations,\n targetData,\n groupIndices,\n );\n case 2:\n return aggregateAverage(\n groupMap,\n leafData,\n columnMap,\n aggregations,\n targetData,\n groupIndices,\n );\n case 3:\n return aggregateCount(\n groupMap,\n columnMap,\n aggregations,\n targetData,\n groupIndices,\n );\n case 4:\n return aggregateHigh(\n groupMap,\n leafData,\n columnMap,\n aggregations,\n targetData,\n groupIndices,\n );\n case 5:\n return aggregateLow(\n groupMap,\n leafData,\n columnMap,\n aggregations,\n targetData,\n groupIndices,\n );\n case 6:\n return aggregateDistinct(\n groupMap,\n leafData,\n columnMap,\n aggregations,\n targetData,\n groupIndices,\n );\n }\n};\n\nfunction aggregateCount(\n groupMap: GroupMap,\n columnMap: ColumnMap,\n aggregations: VuuAggregation[],\n targetData: readonly DataSourceRow[],\n groupIndices: number[],\n): { [key: string]: number } {\n const counts: { [key: string]: number } = {};\n const aggColumn = getAggColumn(columnMap, aggregations);\n\n function countRecursive(map: GroupMap | KeyList) {\n if (Array.isArray(map)) {\n return map.length;\n } else {\n let count = 0;\n for (const key in map) {\n count += 1 + countRecursive(map[key]);\n }\n return count;\n }\n }\n\n for (const key in groupMap) {\n const count = countRecursive(groupMap[key]);\n counts[key] = count;\n }\n\n for (let index = 0; index < targetData.length; index++) {\n for (const key in counts) {\n if (targetData[index][groupIndices[0]] === key) {\n targetData[index][aggColumn] = counts[key];\n }\n }\n }\n\n console.log(\"!!!! targetData\", targetData);\n console.log(\"!!!! counts\", counts);\n return counts;\n}\n\nfunction getAggColumn(columnMap: ColumnMap, aggregations: VuuAggregation[]) {\n console.log(\"!!!! aggregation length\", aggregations.length);\n const columnName = aggregations[aggregations.length - 1].column;\n const columnNumber = columnMap[columnName];\n return columnNumber;\n}\n\nfunction aggregateSum(\n groupMap: GroupMap,\n leafData: readonly DataSourceRow[],\n columnMap: ColumnMap,\n aggregations: VuuAggregation[],\n targetData: readonly DataSourceRow[],\n groupIndices: number[],\n): { [key: string]: number } {\n const sums: { [key: string]: number } = {};\n const aggColumn = getAggColumn(columnMap, aggregations);\n\n function sumRecursive(\n map: GroupMap | KeyList,\n leafData: readonly DataSourceRow[],\n aggColumn: number,\n ) {\n if (Array.isArray(map)) {\n let sum = 0;\n for (const key of map) {\n sum += Number(leafData[key][aggColumn]);\n }\n return sum;\n } else {\n let sum = 0;\n for (const key in map) {\n sum += sumRecursive(map[key], leafData, aggColumn);\n }\n return sum;\n }\n }\n\n for (const key in groupMap) {\n console.log(key);\n const sum = Number(sumRecursive(groupMap[key], leafData, aggColumn));\n sums[key] = sum;\n }\n\n for (let index = 0; index < targetData.length; index++) {\n for (const key in sums) {\n if (targetData[index][groupIndices[0]] === key) {\n targetData[index][aggColumn] = sums[key];\n }\n }\n }\n\n console.log(\"!!!! targetData\", targetData);\n console.log(\"!!!! sums\", sums);\n return sums;\n}\n\nfunction aggregateAverage(\n groupMap: GroupMap,\n leafData: readonly DataSourceRow[],\n columnMap: ColumnMap,\n aggregations: VuuAggregation[],\n targetData: readonly DataSourceRow[],\n groupIndices: number[],\n): { [key: string]: number } {\n const averages: { [key: string]: number } = {};\n const aggColumn = getAggColumn(columnMap, aggregations);\n\n const count = aggregateCount(\n groupMap,\n columnMap,\n aggregations,\n targetData,\n groupIndices,\n );\n const sum = aggregateSum(\n groupMap,\n leafData,\n columnMap,\n aggregations,\n targetData,\n groupIndices,\n );\n\n for (const key in count) {\n let average = 0;\n average = sum[key] / count[key];\n averages[key] = average;\n }\n\n for (let index = 0; index < targetData.length; index++) {\n for (const key in averages) {\n if (targetData[index][groupIndices[0]] === key) {\n targetData[index][aggColumn] = averages[key];\n }\n }\n }\n\n console.log(\"!!!! targetData\", targetData);\n console.log(\"!!!! averages\", averages);\n return averages;\n}\n\nfunction getLeafColumnData(\n map: GroupMap | KeyList,\n leafData: readonly DataSourceRow[],\n aggColumn: number,\n): number[] {\n const data: number[] = [];\n\n if (Array.isArray(map)) {\n for (const key of map) {\n data.push(leafData[key][aggColumn] as number);\n }\n } else {\n for (const key in map) {\n data.push(...getLeafColumnData(map[key], leafData, aggColumn));\n }\n }\n\n return data;\n}\n\nfunction aggregateDistinct(\n groupMap: GroupMap,\n leafData: readonly DataSourceRow[],\n columnMap: ColumnMap,\n aggregations: VuuAggregation[],\n targetData: readonly DataSourceRow[],\n groupIndices: number[],\n): { [key: string]: number } {\n const distincts: { [key: string]: number } = {};\n const aggColumn = getAggColumn(columnMap, aggregations);\n\n for (const key in groupMap) {\n const leafColumnData = getLeafColumnData(\n groupMap[key],\n leafData,\n aggColumn,\n );\n const distinct = [...new Set(leafColumnData)];\n\n distincts[key] = distinct.length;\n }\n\n for (let index = 0; index < targetData.length; index++) {\n for (const key in distincts) {\n if (targetData[index][groupIndices[0]] === key) {\n targetData[index][aggColumn] = distincts[key];\n }\n }\n }\n\n return distincts;\n}\n\nfunction aggregateHigh(\n groupMap: GroupMap,\n leafData: readonly DataSourceRow[],\n columnMap: ColumnMap,\n aggregations: VuuAggregation[],\n targetData: readonly DataSourceRow[],\n groupIndices: number[],\n): { [key: string]: number } {\n const highs: { [key: string]: number } = {};\n const aggColumn = getAggColumn(columnMap, aggregations);\n\n for (const key in groupMap) {\n const leafColumnData = getLeafColumnData(\n groupMap[key],\n leafData,\n aggColumn,\n );\n const maxNumber = Math.max(...leafColumnData);\n\n highs[key] = maxNumber;\n }\n for (let index = 0; index < targetData.length; index++) {\n for (const key in highs) {\n if (targetData[index][groupIndices[0]] === key) {\n targetData[index][aggColumn] = highs[key];\n }\n }\n }\n\n return highs;\n}\n\nfunction aggregateLow(\n groupMap: GroupMap,\n leafData: readonly DataSourceRow[],\n columnMap: ColumnMap,\n aggregations: VuuAggregation[],\n targetData: readonly DataSourceRow[],\n groupIndices: number[],\n): { [key: string]: number } {\n const mins: { [key: string]: number } = {};\n const aggColumn = getAggColumn(columnMap, aggregations);\n\n for (const key in groupMap) {\n const leafColumnData = getLeafColumnData(\n groupMap[key],\n leafData,\n aggColumn,\n );\n const minNumber = Math.min(...leafColumnData);\n mins[key] = minNumber;\n }\n\n for (let index = 0; index < targetData.length; index++) {\n for (const key in mins) {\n if (targetData[index][groupIndices[0]] === key) {\n targetData[index][aggColumn] = mins[key];\n }\n }\n }\n\n return mins;\n}\n"],"names":["count","leafData","aggColumn"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"aggregate-utils.js","sources":["../../src/array-data-source/aggregate-utils.ts"],"sourcesContent":["import type { DataSourceRow } from \"@vuu-ui/vuu-data-types\";\nimport type { VuuAggregation, VuuGroupBy } from \"@vuu-ui/vuu-protocol-types\";\nimport type { ColumnMap } from \"@vuu-ui/vuu-utils\";\nimport type { GroupMap, KeyList } from \"./group-utils\";\n\nexport const count = (arr: unknown[]) => arr.length;\n\nexport const aggregateData = (\n aggregations: VuuAggregation[],\n targetData: readonly DataSourceRow[],\n groupBy: VuuGroupBy,\n leafData: readonly DataSourceRow[],\n columnMap: ColumnMap,\n groupMap: GroupMap,\n) => {\n const aggType = aggregations[aggregations.length - 1].aggType;\n const groupIndices = groupBy.map<number>((column) => columnMap[column]);\n\n switch (aggType) {\n case 1:\n return aggregateSum(\n groupMap,\n leafData,\n columnMap,\n aggregations,\n targetData,\n groupIndices,\n );\n case 2:\n return aggregateAverage(\n groupMap,\n leafData,\n columnMap,\n aggregations,\n targetData,\n groupIndices,\n );\n case 3:\n return aggregateCount(\n groupMap,\n columnMap,\n aggregations,\n targetData,\n groupIndices,\n );\n case 4:\n return aggregateHigh(\n groupMap,\n leafData,\n columnMap,\n aggregations,\n targetData,\n groupIndices,\n );\n case 5:\n return aggregateLow(\n groupMap,\n leafData,\n columnMap,\n aggregations,\n targetData,\n groupIndices,\n );\n case 6:\n return aggregateDistinct(\n groupMap,\n leafData,\n columnMap,\n aggregations,\n targetData,\n groupIndices,\n );\n }\n};\n\nfunction aggregateCount(\n groupMap: GroupMap,\n columnMap: ColumnMap,\n aggregations: VuuAggregation[],\n targetData: readonly DataSourceRow[],\n groupIndices: number[],\n): { [key: string]: number } {\n const counts: { [key: string]: number } = {};\n const aggColumn = getAggColumn(columnMap, aggregations);\n\n function countRecursive(map: GroupMap | KeyList) {\n if (Array.isArray(map)) {\n return map.length;\n } else {\n let count = 0;\n for (const key in map) {\n count += 1 + countRecursive(map[key]);\n }\n return count;\n }\n }\n\n for (const key in groupMap) {\n const count = countRecursive(groupMap[key]);\n counts[key] = count;\n }\n\n for (let index = 0; index < targetData.length; index++) {\n for (const key in counts) {\n if (targetData[index][groupIndices[0]] === key) {\n targetData[index][aggColumn] = counts[key];\n }\n }\n }\n\n return counts;\n}\n\nfunction getAggColumn(columnMap: ColumnMap, aggregations: VuuAggregation[]) {\n const columnName = aggregations[aggregations.length - 1].column;\n const columnNumber = columnMap[columnName];\n return columnNumber;\n}\n\nfunction aggregateSum(\n groupMap: GroupMap,\n leafData: readonly DataSourceRow[],\n columnMap: ColumnMap,\n aggregations: VuuAggregation[],\n targetData: readonly DataSourceRow[],\n groupIndices: number[],\n): { [key: string]: number } {\n const sums: { [key: string]: number } = {};\n const aggColumn = getAggColumn(columnMap, aggregations);\n\n function sumRecursive(\n map: GroupMap | KeyList,\n leafData: readonly DataSourceRow[],\n aggColumn: number,\n ) {\n if (Array.isArray(map)) {\n let sum = 0;\n for (const key of map) {\n sum += Number(leafData[key][aggColumn]);\n }\n return sum;\n } else {\n let sum = 0;\n for (const key in map) {\n sum += sumRecursive(map[key], leafData, aggColumn);\n }\n return sum;\n }\n }\n\n for (const key in groupMap) {\n const sum = Number(sumRecursive(groupMap[key], leafData, aggColumn));\n sums[key] = sum;\n }\n\n for (let index = 0; index < targetData.length; index++) {\n for (const key in sums) {\n if (targetData[index][groupIndices[0]] === key) {\n targetData[index][aggColumn] = sums[key];\n }\n }\n }\n\n return sums;\n}\n\nfunction aggregateAverage(\n groupMap: GroupMap,\n leafData: readonly DataSourceRow[],\n columnMap: ColumnMap,\n aggregations: VuuAggregation[],\n targetData: readonly DataSourceRow[],\n groupIndices: number[],\n): { [key: string]: number } {\n const averages: { [key: string]: number } = {};\n const aggColumn = getAggColumn(columnMap, aggregations);\n\n const count = aggregateCount(\n groupMap,\n columnMap,\n aggregations,\n targetData,\n groupIndices,\n );\n const sum = aggregateSum(\n groupMap,\n leafData,\n columnMap,\n aggregations,\n targetData,\n groupIndices,\n );\n\n for (const key in count) {\n let average = 0;\n average = sum[key] / count[key];\n averages[key] = average;\n }\n\n for (let index = 0; index < targetData.length; index++) {\n for (const key in averages) {\n if (targetData[index][groupIndices[0]] === key) {\n targetData[index][aggColumn] = averages[key];\n }\n }\n }\n\n console.log(\"!!!! targetData\", targetData);\n console.log(\"!!!! averages\", averages);\n return averages;\n}\n\nfunction getLeafColumnData(\n map: GroupMap | KeyList,\n leafData: readonly DataSourceRow[],\n aggColumn: number,\n): number[] {\n const data: number[] = [];\n\n if (Array.isArray(map)) {\n for (const key of map) {\n data.push(leafData[key][aggColumn] as number);\n }\n } else {\n for (const key in map) {\n data.push(...getLeafColumnData(map[key], leafData, aggColumn));\n }\n }\n\n return data;\n}\n\nfunction aggregateDistinct(\n groupMap: GroupMap,\n leafData: readonly DataSourceRow[],\n columnMap: ColumnMap,\n aggregations: VuuAggregation[],\n targetData: readonly DataSourceRow[],\n groupIndices: number[],\n): { [key: string]: number } {\n const distincts: { [key: string]: number } = {};\n const aggColumn = getAggColumn(columnMap, aggregations);\n\n for (const key in groupMap) {\n const leafColumnData = getLeafColumnData(\n groupMap[key],\n leafData,\n aggColumn,\n );\n const distinct = [...new Set(leafColumnData)];\n\n distincts[key] = distinct.length;\n }\n\n for (let index = 0; index < targetData.length; index++) {\n for (const key in distincts) {\n if (targetData[index][groupIndices[0]] === key) {\n targetData[index][aggColumn] = distincts[key];\n }\n }\n }\n\n return distincts;\n}\n\nfunction aggregateHigh(\n groupMap: GroupMap,\n leafData: readonly DataSourceRow[],\n columnMap: ColumnMap,\n aggregations: VuuAggregation[],\n targetData: readonly DataSourceRow[],\n groupIndices: number[],\n): { [key: string]: number } {\n const highs: { [key: string]: number } = {};\n const aggColumn = getAggColumn(columnMap, aggregations);\n\n for (const key in groupMap) {\n const leafColumnData = getLeafColumnData(\n groupMap[key],\n leafData,\n aggColumn,\n );\n const maxNumber = Math.max(...leafColumnData);\n\n highs[key] = maxNumber;\n }\n for (let index = 0; index < targetData.length; index++) {\n for (const key in highs) {\n if (targetData[index][groupIndices[0]] === key) {\n targetData[index][aggColumn] = highs[key];\n }\n }\n }\n\n return highs;\n}\n\nfunction aggregateLow(\n groupMap: GroupMap,\n leafData: readonly DataSourceRow[],\n columnMap: ColumnMap,\n aggregations: VuuAggregation[],\n targetData: readonly DataSourceRow[],\n groupIndices: number[],\n): { [key: string]: number } {\n const mins: { [key: string]: number } = {};\n const aggColumn = getAggColumn(columnMap, aggregations);\n\n for (const key in groupMap) {\n const leafColumnData = getLeafColumnData(\n groupMap[key],\n leafData,\n aggColumn,\n );\n const minNumber = Math.min(...leafColumnData);\n mins[key] = minNumber;\n }\n\n for (let index = 0; index < targetData.length; index++) {\n for (const key in mins) {\n if (targetData[index][groupIndices[0]] === key) {\n targetData[index][aggColumn] = mins[key];\n }\n }\n }\n\n return mins;\n}\n"],"names":["count","leafData","aggColumn"],"mappings":"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"}
|
|
@@ -82,12 +82,9 @@ function aggregateCount(groupMap, columnMap, aggregations, targetData, groupIndi
|
|
|
82
82
|
}
|
|
83
83
|
}
|
|
84
84
|
}
|
|
85
|
-
console.log("!!!! targetData", targetData);
|
|
86
|
-
console.log("!!!! counts", counts);
|
|
87
85
|
return counts;
|
|
88
86
|
}
|
|
89
87
|
function getAggColumn(columnMap, aggregations) {
|
|
90
|
-
console.log("!!!! aggregation length", aggregations.length);
|
|
91
88
|
const columnName = aggregations[aggregations.length - 1].column;
|
|
92
89
|
const columnNumber = columnMap[columnName];
|
|
93
90
|
return columnNumber;
|
|
@@ -111,7 +108,6 @@ function aggregateSum(groupMap, leafData, columnMap, aggregations, targetData, g
|
|
|
111
108
|
}
|
|
112
109
|
}
|
|
113
110
|
for (const key in groupMap) {
|
|
114
|
-
console.log(key);
|
|
115
111
|
const sum = Number(sumRecursive(groupMap[key], leafData, aggColumn));
|
|
116
112
|
sums[key] = sum;
|
|
117
113
|
}
|
|
@@ -122,8 +118,6 @@ function aggregateSum(groupMap, leafData, columnMap, aggregations, targetData, g
|
|
|
122
118
|
}
|
|
123
119
|
}
|
|
124
120
|
}
|
|
125
|
-
console.log("!!!! targetData", targetData);
|
|
126
|
-
console.log("!!!! sums", sums);
|
|
127
121
|
return sums;
|
|
128
122
|
}
|
|
129
123
|
function aggregateAverage(groupMap, leafData, columnMap, aggregations, targetData, groupIndices) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aggregate-utils.js","sources":["../../src/array-data-source/aggregate-utils.ts"],"sourcesContent":["import type { DataSourceRow } from \"@vuu-ui/vuu-data-types\";\nimport type { VuuAggregation, VuuGroupBy } from \"@vuu-ui/vuu-protocol-types\";\nimport type { ColumnMap } from \"@vuu-ui/vuu-utils\";\nimport type { GroupMap, KeyList } from \"./group-utils\";\n\nexport const count = (arr: unknown[]) => arr.length;\n\nexport const aggregateData = (\n aggregations: VuuAggregation[],\n targetData: readonly DataSourceRow[],\n groupBy: VuuGroupBy,\n leafData: readonly DataSourceRow[],\n columnMap: ColumnMap,\n groupMap: GroupMap,\n) => {\n const aggType = aggregations[aggregations.length - 1].aggType;\n const groupIndices = groupBy.map<number>((column) => columnMap[column]);\n\n switch (aggType) {\n case 1:\n return aggregateSum(\n groupMap,\n leafData,\n columnMap,\n aggregations,\n targetData,\n groupIndices,\n );\n case 2:\n return aggregateAverage(\n groupMap,\n leafData,\n columnMap,\n aggregations,\n targetData,\n groupIndices,\n );\n case 3:\n return aggregateCount(\n groupMap,\n columnMap,\n aggregations,\n targetData,\n groupIndices,\n );\n case 4:\n return aggregateHigh(\n groupMap,\n leafData,\n columnMap,\n aggregations,\n targetData,\n groupIndices,\n );\n case 5:\n return aggregateLow(\n groupMap,\n leafData,\n columnMap,\n aggregations,\n targetData,\n groupIndices,\n );\n case 6:\n return aggregateDistinct(\n groupMap,\n leafData,\n columnMap,\n aggregations,\n targetData,\n groupIndices,\n );\n }\n};\n\nfunction aggregateCount(\n groupMap: GroupMap,\n columnMap: ColumnMap,\n aggregations: VuuAggregation[],\n targetData: readonly DataSourceRow[],\n groupIndices: number[],\n): { [key: string]: number } {\n const counts: { [key: string]: number } = {};\n const aggColumn = getAggColumn(columnMap, aggregations);\n\n function countRecursive(map: GroupMap | KeyList) {\n if (Array.isArray(map)) {\n return map.length;\n } else {\n let count = 0;\n for (const key in map) {\n count += 1 + countRecursive(map[key]);\n }\n return count;\n }\n }\n\n for (const key in groupMap) {\n const count = countRecursive(groupMap[key]);\n counts[key] = count;\n }\n\n for (let index = 0; index < targetData.length; index++) {\n for (const key in counts) {\n if (targetData[index][groupIndices[0]] === key) {\n targetData[index][aggColumn] = counts[key];\n }\n }\n }\n\n console.log(\"!!!! targetData\", targetData);\n console.log(\"!!!! counts\", counts);\n return counts;\n}\n\nfunction getAggColumn(columnMap: ColumnMap, aggregations: VuuAggregation[]) {\n console.log(\"!!!! aggregation length\", aggregations.length);\n const columnName = aggregations[aggregations.length - 1].column;\n const columnNumber = columnMap[columnName];\n return columnNumber;\n}\n\nfunction aggregateSum(\n groupMap: GroupMap,\n leafData: readonly DataSourceRow[],\n columnMap: ColumnMap,\n aggregations: VuuAggregation[],\n targetData: readonly DataSourceRow[],\n groupIndices: number[],\n): { [key: string]: number } {\n const sums: { [key: string]: number } = {};\n const aggColumn = getAggColumn(columnMap, aggregations);\n\n function sumRecursive(\n map: GroupMap | KeyList,\n leafData: readonly DataSourceRow[],\n aggColumn: number,\n ) {\n if (Array.isArray(map)) {\n let sum = 0;\n for (const key of map) {\n sum += Number(leafData[key][aggColumn]);\n }\n return sum;\n } else {\n let sum = 0;\n for (const key in map) {\n sum += sumRecursive(map[key], leafData, aggColumn);\n }\n return sum;\n }\n }\n\n for (const key in groupMap) {\n console.log(key);\n const sum = Number(sumRecursive(groupMap[key], leafData, aggColumn));\n sums[key] = sum;\n }\n\n for (let index = 0; index < targetData.length; index++) {\n for (const key in sums) {\n if (targetData[index][groupIndices[0]] === key) {\n targetData[index][aggColumn] = sums[key];\n }\n }\n }\n\n console.log(\"!!!! targetData\", targetData);\n console.log(\"!!!! sums\", sums);\n return sums;\n}\n\nfunction aggregateAverage(\n groupMap: GroupMap,\n leafData: readonly DataSourceRow[],\n columnMap: ColumnMap,\n aggregations: VuuAggregation[],\n targetData: readonly DataSourceRow[],\n groupIndices: number[],\n): { [key: string]: number } {\n const averages: { [key: string]: number } = {};\n const aggColumn = getAggColumn(columnMap, aggregations);\n\n const count = aggregateCount(\n groupMap,\n columnMap,\n aggregations,\n targetData,\n groupIndices,\n );\n const sum = aggregateSum(\n groupMap,\n leafData,\n columnMap,\n aggregations,\n targetData,\n groupIndices,\n );\n\n for (const key in count) {\n let average = 0;\n average = sum[key] / count[key];\n averages[key] = average;\n }\n\n for (let index = 0; index < targetData.length; index++) {\n for (const key in averages) {\n if (targetData[index][groupIndices[0]] === key) {\n targetData[index][aggColumn] = averages[key];\n }\n }\n }\n\n console.log(\"!!!! targetData\", targetData);\n console.log(\"!!!! averages\", averages);\n return averages;\n}\n\nfunction getLeafColumnData(\n map: GroupMap | KeyList,\n leafData: readonly DataSourceRow[],\n aggColumn: number,\n): number[] {\n const data: number[] = [];\n\n if (Array.isArray(map)) {\n for (const key of map) {\n data.push(leafData[key][aggColumn] as number);\n }\n } else {\n for (const key in map) {\n data.push(...getLeafColumnData(map[key], leafData, aggColumn));\n }\n }\n\n return data;\n}\n\nfunction aggregateDistinct(\n groupMap: GroupMap,\n leafData: readonly DataSourceRow[],\n columnMap: ColumnMap,\n aggregations: VuuAggregation[],\n targetData: readonly DataSourceRow[],\n groupIndices: number[],\n): { [key: string]: number } {\n const distincts: { [key: string]: number } = {};\n const aggColumn = getAggColumn(columnMap, aggregations);\n\n for (const key in groupMap) {\n const leafColumnData = getLeafColumnData(\n groupMap[key],\n leafData,\n aggColumn,\n );\n const distinct = [...new Set(leafColumnData)];\n\n distincts[key] = distinct.length;\n }\n\n for (let index = 0; index < targetData.length; index++) {\n for (const key in distincts) {\n if (targetData[index][groupIndices[0]] === key) {\n targetData[index][aggColumn] = distincts[key];\n }\n }\n }\n\n return distincts;\n}\n\nfunction aggregateHigh(\n groupMap: GroupMap,\n leafData: readonly DataSourceRow[],\n columnMap: ColumnMap,\n aggregations: VuuAggregation[],\n targetData: readonly DataSourceRow[],\n groupIndices: number[],\n): { [key: string]: number } {\n const highs: { [key: string]: number } = {};\n const aggColumn = getAggColumn(columnMap, aggregations);\n\n for (const key in groupMap) {\n const leafColumnData = getLeafColumnData(\n groupMap[key],\n leafData,\n aggColumn,\n );\n const maxNumber = Math.max(...leafColumnData);\n\n highs[key] = maxNumber;\n }\n for (let index = 0; index < targetData.length; index++) {\n for (const key in highs) {\n if (targetData[index][groupIndices[0]] === key) {\n targetData[index][aggColumn] = highs[key];\n }\n }\n }\n\n return highs;\n}\n\nfunction aggregateLow(\n groupMap: GroupMap,\n leafData: readonly DataSourceRow[],\n columnMap: ColumnMap,\n aggregations: VuuAggregation[],\n targetData: readonly DataSourceRow[],\n groupIndices: number[],\n): { [key: string]: number } {\n const mins: { [key: string]: number } = {};\n const aggColumn = getAggColumn(columnMap, aggregations);\n\n for (const key in groupMap) {\n const leafColumnData = getLeafColumnData(\n groupMap[key],\n leafData,\n aggColumn,\n );\n const minNumber = Math.min(...leafColumnData);\n mins[key] = minNumber;\n }\n\n for (let index = 0; index < targetData.length; index++) {\n for (const key in mins) {\n if (targetData[index][groupIndices[0]] === key) {\n targetData[index][aggColumn] = mins[key];\n }\n }\n }\n\n return mins;\n}\n"],"names":["count","leafData","aggColumn"],"mappings":"AAOO,MAAM,gBAAgB,CAC3B,YAAA,EACA,YACA,OACA,EAAA,QAAA,EACA,WACA,QACG,KAAA;AACH,EAAA,MAAM,OAAU,GAAA,YAAA,CAAa,YAAa,CAAA,MAAA,GAAS,CAAC,CAAE,CAAA,OAAA;AACtD,EAAA,MAAM,eAAe,OAAQ,CAAA,GAAA,CAAY,CAAC,MAAW,KAAA,SAAA,CAAU,MAAM,CAAC,CAAA;AAEtE,EAAA,QAAQ,OAAS;AAAA,IACf,KAAK,CAAA;AACH,MAAO,OAAA,YAAA;AAAA,QACL,QAAA;AAAA,QACA,QAAA;AAAA,QACA,SAAA;AAAA,QACA,YAAA;AAAA,QACA,UAAA;AAAA,QACA;AAAA,OACF;AAAA,IACF,KAAK,CAAA;AACH,MAAO,OAAA,gBAAA;AAAA,QACL,QAAA;AAAA,QACA,QAAA;AAAA,QACA,SAAA;AAAA,QACA,YAAA;AAAA,QACA,UAAA;AAAA,QACA;AAAA,OACF;AAAA,IACF,KAAK,CAAA;AACH,MAAO,OAAA,cAAA;AAAA,QACL,QAAA;AAAA,QACA,SAAA;AAAA,QACA,YAAA;AAAA,QACA,UAAA;AAAA,QACA;AAAA,OACF;AAAA,IACF,KAAK,CAAA;AACH,MAAO,OAAA,aAAA;AAAA,QACL,QAAA;AAAA,QACA,QAAA;AAAA,QACA,SAAA;AAAA,QACA,YAAA;AAAA,QACA,UAAA;AAAA,QACA;AAAA,OACF;AAAA,IACF,KAAK,CAAA;AACH,MAAO,OAAA,YAAA;AAAA,QACL,QAAA;AAAA,QACA,QAAA;AAAA,QACA,SAAA;AAAA,QACA,YAAA;AAAA,QACA,UAAA;AAAA,QACA;AAAA,OACF;AAAA,IACF,KAAK,CAAA;AACH,MAAO,OAAA,iBAAA;AAAA,QACL,QAAA;AAAA,QACA,QAAA;AAAA,QACA,SAAA;AAAA,QACA,YAAA;AAAA,QACA,UAAA;AAAA,QACA;AAAA,OACF;AAAA;AAEN;AAEA,SAAS,cACP,CAAA,QAAA,EACA,SACA,EAAA,YAAA,EACA,YACA,YAC2B,EAAA;AAC3B,EAAA,MAAM,SAAoC,EAAC;AAC3C,EAAM,MAAA,SAAA,GAAY,YAAa,CAAA,SAAA,EAAW,YAAY,CAAA;AAEtD,EAAA,SAAS,eAAe,GAAyB,EAAA;AAC/C,IAAI,IAAA,KAAA,CAAM,OAAQ,CAAA,GAAG,CAAG,EAAA;AACtB,MAAA,OAAO,GAAI,CAAA,MAAA;AAAA,KACN,MAAA;AACL,MAAA,IAAIA,MAAQ,GAAA,CAAA;AACZ,MAAA,KAAA,MAAW,OAAO,GAAK,EAAA;AACrB,QAAAA,MAAS,IAAA,CAAA,GAAI,cAAe,CAAA,GAAA,CAAI,GAAG,CAAC,CAAA;AAAA;AAEtC,MAAOA,OAAAA,MAAAA;AAAA;AACT;AAGF,EAAA,KAAA,MAAW,OAAO,QAAU,EAAA;AAC1B,IAAA,MAAMA,MAAQ,GAAA,cAAA,CAAe,QAAS,CAAA,GAAG,CAAC,CAAA;AAC1C,IAAA,MAAA,CAAO,GAAG,CAAIA,GAAAA,MAAAA;AAAA;AAGhB,EAAA,KAAA,IAAS,KAAQ,GAAA,CAAA,EAAG,KAAQ,GAAA,UAAA,CAAW,QAAQ,KAAS,EAAA,EAAA;AACtD,IAAA,KAAA,MAAW,OAAO,MAAQ,EAAA;AACxB,MAAA,IAAI,WAAW,KAAK,CAAA,CAAE,aAAa,CAAC,CAAC,MAAM,GAAK,EAAA;AAC9C,QAAA,UAAA,CAAW,KAAK,CAAA,CAAE,SAAS,CAAA,GAAI,OAAO,GAAG,CAAA;AAAA;AAC3C;AACF;AAGF,EAAQ,OAAA,CAAA,GAAA,CAAI,mBAAmB,UAAU,CAAA;AACzC,EAAQ,OAAA,CAAA,GAAA,CAAI,eAAe,MAAM,CAAA;AACjC,EAAO,OAAA,MAAA;AACT;AAEA,SAAS,YAAA,CAAa,WAAsB,YAAgC,EAAA;AAC1E,EAAQ,OAAA,CAAA,GAAA,CAAI,yBAA2B,EAAA,YAAA,CAAa,MAAM,CAAA;AAC1D,EAAA,MAAM,UAAa,GAAA,YAAA,CAAa,YAAa,CAAA,MAAA,GAAS,CAAC,CAAE,CAAA,MAAA;AACzD,EAAM,MAAA,YAAA,GAAe,UAAU,UAAU,CAAA;AACzC,EAAO,OAAA,YAAA;AACT;AAEA,SAAS,aACP,QACA,EAAA,QAAA,EACA,SACA,EAAA,YAAA,EACA,YACA,YAC2B,EAAA;AAC3B,EAAA,MAAM,OAAkC,EAAC;AACzC,EAAM,MAAA,SAAA,GAAY,YAAa,CAAA,SAAA,EAAW,YAAY,CAAA;AAEtD,EAAS,SAAA,YAAA,CACP,GACAC,EAAAA,SAAAA,EACAC,UACA,EAAA;AACA,IAAI,IAAA,KAAA,CAAM,OAAQ,CAAA,GAAG,CAAG,EAAA;AACtB,MAAA,IAAI,GAAM,GAAA,CAAA;AACV,MAAA,KAAA,MAAW,OAAO,GAAK,EAAA;AACrB,QAAA,GAAA,IAAO,MAAOD,CAAAA,SAAAA,CAAS,GAAG,CAAA,CAAEC,UAAS,CAAC,CAAA;AAAA;AAExC,MAAO,OAAA,GAAA;AAAA,KACF,MAAA;AACL,MAAA,IAAI,GAAM,GAAA,CAAA;AACV,MAAA,KAAA,MAAW,OAAO,GAAK,EAAA;AACrB,QAAA,GAAA,IAAO,YAAa,CAAA,GAAA,CAAI,GAAG,CAAA,EAAGD,WAAUC,UAAS,CAAA;AAAA;AAEnD,MAAO,OAAA,GAAA;AAAA;AACT;AAGF,EAAA,KAAA,MAAW,OAAO,QAAU,EAAA;AAC1B,IAAA,OAAA,CAAQ,IAAI,GAAG,CAAA;AACf,IAAM,MAAA,GAAA,GAAM,OAAO,YAAa,CAAA,QAAA,CAAS,GAAG,CAAG,EAAA,QAAA,EAAU,SAAS,CAAC,CAAA;AACnE,IAAA,IAAA,CAAK,GAAG,CAAI,GAAA,GAAA;AAAA;AAGd,EAAA,KAAA,IAAS,KAAQ,GAAA,CAAA,EAAG,KAAQ,GAAA,UAAA,CAAW,QAAQ,KAAS,EAAA,EAAA;AACtD,IAAA,KAAA,MAAW,OAAO,IAAM,EAAA;AACtB,MAAA,IAAI,WAAW,KAAK,CAAA,CAAE,aAAa,CAAC,CAAC,MAAM,GAAK,EAAA;AAC9C,QAAA,UAAA,CAAW,KAAK,CAAA,CAAE,SAAS,CAAA,GAAI,KAAK,GAAG,CAAA;AAAA;AACzC;AACF;AAGF,EAAQ,OAAA,CAAA,GAAA,CAAI,mBAAmB,UAAU,CAAA;AACzC,EAAQ,OAAA,CAAA,GAAA,CAAI,aAAa,IAAI,CAAA;AAC7B,EAAO,OAAA,IAAA;AACT;AAEA,SAAS,iBACP,QACA,EAAA,QAAA,EACA,SACA,EAAA,YAAA,EACA,YACA,YAC2B,EAAA;AAC3B,EAAA,MAAM,WAAsC,EAAC;AAC7C,EAAM,MAAA,SAAA,GAAY,YAAa,CAAA,SAAA,EAAW,YAAY,CAAA;AAEtD,EAAA,MAAMF,MAAQ,GAAA,cAAA;AAAA,IACZ,QAAA;AAAA,IACA,SAAA;AAAA,IACA,YAAA;AAAA,IACA,UAAA;AAAA,IACA;AAAA,GACF;AACA,EAAA,MAAM,GAAM,GAAA,YAAA;AAAA,IACV,QAAA;AAAA,IACA,QAAA;AAAA,IACA,SAAA;AAAA,IACA,YAAA;AAAA,IACA,UAAA;AAAA,IACA;AAAA,GACF;AAEA,EAAA,KAAA,MAAW,OAAOA,MAAO,EAAA;AACvB,IAAA,IAAI,OAAU,GAAA,CAAA;AACd,IAAA,OAAA,GAAU,GAAI,CAAA,GAAG,CAAIA,GAAAA,MAAAA,CAAM,GAAG,CAAA;AAC9B,IAAA,QAAA,CAAS,GAAG,CAAI,GAAA,OAAA;AAAA;AAGlB,EAAA,KAAA,IAAS,KAAQ,GAAA,CAAA,EAAG,KAAQ,GAAA,UAAA,CAAW,QAAQ,KAAS,EAAA,EAAA;AACtD,IAAA,KAAA,MAAW,OAAO,QAAU,EAAA;AAC1B,MAAA,IAAI,WAAW,KAAK,CAAA,CAAE,aAAa,CAAC,CAAC,MAAM,GAAK,EAAA;AAC9C,QAAA,UAAA,CAAW,KAAK,CAAA,CAAE,SAAS,CAAA,GAAI,SAAS,GAAG,CAAA;AAAA;AAC7C;AACF;AAGF,EAAQ,OAAA,CAAA,GAAA,CAAI,mBAAmB,UAAU,CAAA;AACzC,EAAQ,OAAA,CAAA,GAAA,CAAI,iBAAiB,QAAQ,CAAA;AACrC,EAAO,OAAA,QAAA;AACT;AAEA,SAAS,iBAAA,CACP,GACA,EAAA,QAAA,EACA,SACU,EAAA;AACV,EAAA,MAAM,OAAiB,EAAC;AAExB,EAAI,IAAA,KAAA,CAAM,OAAQ,CAAA,GAAG,CAAG,EAAA;AACtB,IAAA,KAAA,MAAW,OAAO,GAAK,EAAA;AACrB,MAAA,IAAA,CAAK,IAAK,CAAA,QAAA,CAAS,GAAG,CAAA,CAAE,SAAS,CAAW,CAAA;AAAA;AAC9C,GACK,MAAA;AACL,IAAA,KAAA,MAAW,OAAO,GAAK,EAAA;AACrB,MAAK,IAAA,CAAA,IAAA,CAAK,GAAG,iBAAkB,CAAA,GAAA,CAAI,GAAG,CAAG,EAAA,QAAA,EAAU,SAAS,CAAC,CAAA;AAAA;AAC/D;AAGF,EAAO,OAAA,IAAA;AACT;AAEA,SAAS,kBACP,QACA,EAAA,QAAA,EACA,SACA,EAAA,YAAA,EACA,YACA,YAC2B,EAAA;AAC3B,EAAA,MAAM,YAAuC,EAAC;AAC9C,EAAM,MAAA,SAAA,GAAY,YAAa,CAAA,SAAA,EAAW,YAAY,CAAA;AAEtD,EAAA,KAAA,MAAW,OAAO,QAAU,EAAA;AAC1B,IAAA,MAAM,cAAiB,GAAA,iBAAA;AAAA,MACrB,SAAS,GAAG,CAAA;AAAA,MACZ,QAAA;AAAA,MACA;AAAA,KACF;AACA,IAAA,MAAM,WAAW,CAAC,GAAG,IAAI,GAAA,CAAI,cAAc,CAAC,CAAA;AAE5C,IAAU,SAAA,CAAA,GAAG,IAAI,QAAS,CAAA,MAAA;AAAA;AAG5B,EAAA,KAAA,IAAS,KAAQ,GAAA,CAAA,EAAG,KAAQ,GAAA,UAAA,CAAW,QAAQ,KAAS,EAAA,EAAA;AACtD,IAAA,KAAA,MAAW,OAAO,SAAW,EAAA;AAC3B,MAAA,IAAI,WAAW,KAAK,CAAA,CAAE,aAAa,CAAC,CAAC,MAAM,GAAK,EAAA;AAC9C,QAAA,UAAA,CAAW,KAAK,CAAA,CAAE,SAAS,CAAA,GAAI,UAAU,GAAG,CAAA;AAAA;AAC9C;AACF;AAGF,EAAO,OAAA,SAAA;AACT;AAEA,SAAS,cACP,QACA,EAAA,QAAA,EACA,SACA,EAAA,YAAA,EACA,YACA,YAC2B,EAAA;AAC3B,EAAA,MAAM,QAAmC,EAAC;AAC1C,EAAM,MAAA,SAAA,GAAY,YAAa,CAAA,SAAA,EAAW,YAAY,CAAA;AAEtD,EAAA,KAAA,MAAW,OAAO,QAAU,EAAA;AAC1B,IAAA,MAAM,cAAiB,GAAA,iBAAA;AAAA,MACrB,SAAS,GAAG,CAAA;AAAA,MACZ,QAAA;AAAA,MACA;AAAA,KACF;AACA,IAAA,MAAM,SAAY,GAAA,IAAA,CAAK,GAAI,CAAA,GAAG,cAAc,CAAA;AAE5C,IAAA,KAAA,CAAM,GAAG,CAAI,GAAA,SAAA;AAAA;AAEf,EAAA,KAAA,IAAS,KAAQ,GAAA,CAAA,EAAG,KAAQ,GAAA,UAAA,CAAW,QAAQ,KAAS,EAAA,EAAA;AACtD,IAAA,KAAA,MAAW,OAAO,KAAO,EAAA;AACvB,MAAA,IAAI,WAAW,KAAK,CAAA,CAAE,aAAa,CAAC,CAAC,MAAM,GAAK,EAAA;AAC9C,QAAA,UAAA,CAAW,KAAK,CAAA,CAAE,SAAS,CAAA,GAAI,MAAM,GAAG,CAAA;AAAA;AAC1C;AACF;AAGF,EAAO,OAAA,KAAA;AACT;AAEA,SAAS,aACP,QACA,EAAA,QAAA,EACA,SACA,EAAA,YAAA,EACA,YACA,YAC2B,EAAA;AAC3B,EAAA,MAAM,OAAkC,EAAC;AACzC,EAAM,MAAA,SAAA,GAAY,YAAa,CAAA,SAAA,EAAW,YAAY,CAAA;AAEtD,EAAA,KAAA,MAAW,OAAO,QAAU,EAAA;AAC1B,IAAA,MAAM,cAAiB,GAAA,iBAAA;AAAA,MACrB,SAAS,GAAG,CAAA;AAAA,MACZ,QAAA;AAAA,MACA;AAAA,KACF;AACA,IAAA,MAAM,SAAY,GAAA,IAAA,CAAK,GAAI,CAAA,GAAG,cAAc,CAAA;AAC5C,IAAA,IAAA,CAAK,GAAG,CAAI,GAAA,SAAA;AAAA;AAGd,EAAA,KAAA,IAAS,KAAQ,GAAA,CAAA,EAAG,KAAQ,GAAA,UAAA,CAAW,QAAQ,KAAS,EAAA,EAAA;AACtD,IAAA,KAAA,MAAW,OAAO,IAAM,EAAA;AACtB,MAAA,IAAI,WAAW,KAAK,CAAA,CAAE,aAAa,CAAC,CAAC,MAAM,GAAK,EAAA;AAC9C,QAAA,UAAA,CAAW,KAAK,CAAA,CAAE,SAAS,CAAA,GAAI,KAAK,GAAG,CAAA;AAAA;AACzC;AACF;AAGF,EAAO,OAAA,IAAA;AACT;;;;"}
|
|
1
|
+
{"version":3,"file":"aggregate-utils.js","sources":["../../src/array-data-source/aggregate-utils.ts"],"sourcesContent":["import type { DataSourceRow } from \"@vuu-ui/vuu-data-types\";\nimport type { VuuAggregation, VuuGroupBy } from \"@vuu-ui/vuu-protocol-types\";\nimport type { ColumnMap } from \"@vuu-ui/vuu-utils\";\nimport type { GroupMap, KeyList } from \"./group-utils\";\n\nexport const count = (arr: unknown[]) => arr.length;\n\nexport const aggregateData = (\n aggregations: VuuAggregation[],\n targetData: readonly DataSourceRow[],\n groupBy: VuuGroupBy,\n leafData: readonly DataSourceRow[],\n columnMap: ColumnMap,\n groupMap: GroupMap,\n) => {\n const aggType = aggregations[aggregations.length - 1].aggType;\n const groupIndices = groupBy.map<number>((column) => columnMap[column]);\n\n switch (aggType) {\n case 1:\n return aggregateSum(\n groupMap,\n leafData,\n columnMap,\n aggregations,\n targetData,\n groupIndices,\n );\n case 2:\n return aggregateAverage(\n groupMap,\n leafData,\n columnMap,\n aggregations,\n targetData,\n groupIndices,\n );\n case 3:\n return aggregateCount(\n groupMap,\n columnMap,\n aggregations,\n targetData,\n groupIndices,\n );\n case 4:\n return aggregateHigh(\n groupMap,\n leafData,\n columnMap,\n aggregations,\n targetData,\n groupIndices,\n );\n case 5:\n return aggregateLow(\n groupMap,\n leafData,\n columnMap,\n aggregations,\n targetData,\n groupIndices,\n );\n case 6:\n return aggregateDistinct(\n groupMap,\n leafData,\n columnMap,\n aggregations,\n targetData,\n groupIndices,\n );\n }\n};\n\nfunction aggregateCount(\n groupMap: GroupMap,\n columnMap: ColumnMap,\n aggregations: VuuAggregation[],\n targetData: readonly DataSourceRow[],\n groupIndices: number[],\n): { [key: string]: number } {\n const counts: { [key: string]: number } = {};\n const aggColumn = getAggColumn(columnMap, aggregations);\n\n function countRecursive(map: GroupMap | KeyList) {\n if (Array.isArray(map)) {\n return map.length;\n } else {\n let count = 0;\n for (const key in map) {\n count += 1 + countRecursive(map[key]);\n }\n return count;\n }\n }\n\n for (const key in groupMap) {\n const count = countRecursive(groupMap[key]);\n counts[key] = count;\n }\n\n for (let index = 0; index < targetData.length; index++) {\n for (const key in counts) {\n if (targetData[index][groupIndices[0]] === key) {\n targetData[index][aggColumn] = counts[key];\n }\n }\n }\n\n return counts;\n}\n\nfunction getAggColumn(columnMap: ColumnMap, aggregations: VuuAggregation[]) {\n const columnName = aggregations[aggregations.length - 1].column;\n const columnNumber = columnMap[columnName];\n return columnNumber;\n}\n\nfunction aggregateSum(\n groupMap: GroupMap,\n leafData: readonly DataSourceRow[],\n columnMap: ColumnMap,\n aggregations: VuuAggregation[],\n targetData: readonly DataSourceRow[],\n groupIndices: number[],\n): { [key: string]: number } {\n const sums: { [key: string]: number } = {};\n const aggColumn = getAggColumn(columnMap, aggregations);\n\n function sumRecursive(\n map: GroupMap | KeyList,\n leafData: readonly DataSourceRow[],\n aggColumn: number,\n ) {\n if (Array.isArray(map)) {\n let sum = 0;\n for (const key of map) {\n sum += Number(leafData[key][aggColumn]);\n }\n return sum;\n } else {\n let sum = 0;\n for (const key in map) {\n sum += sumRecursive(map[key], leafData, aggColumn);\n }\n return sum;\n }\n }\n\n for (const key in groupMap) {\n const sum = Number(sumRecursive(groupMap[key], leafData, aggColumn));\n sums[key] = sum;\n }\n\n for (let index = 0; index < targetData.length; index++) {\n for (const key in sums) {\n if (targetData[index][groupIndices[0]] === key) {\n targetData[index][aggColumn] = sums[key];\n }\n }\n }\n\n return sums;\n}\n\nfunction aggregateAverage(\n groupMap: GroupMap,\n leafData: readonly DataSourceRow[],\n columnMap: ColumnMap,\n aggregations: VuuAggregation[],\n targetData: readonly DataSourceRow[],\n groupIndices: number[],\n): { [key: string]: number } {\n const averages: { [key: string]: number } = {};\n const aggColumn = getAggColumn(columnMap, aggregations);\n\n const count = aggregateCount(\n groupMap,\n columnMap,\n aggregations,\n targetData,\n groupIndices,\n );\n const sum = aggregateSum(\n groupMap,\n leafData,\n columnMap,\n aggregations,\n targetData,\n groupIndices,\n );\n\n for (const key in count) {\n let average = 0;\n average = sum[key] / count[key];\n averages[key] = average;\n }\n\n for (let index = 0; index < targetData.length; index++) {\n for (const key in averages) {\n if (targetData[index][groupIndices[0]] === key) {\n targetData[index][aggColumn] = averages[key];\n }\n }\n }\n\n console.log(\"!!!! targetData\", targetData);\n console.log(\"!!!! averages\", averages);\n return averages;\n}\n\nfunction getLeafColumnData(\n map: GroupMap | KeyList,\n leafData: readonly DataSourceRow[],\n aggColumn: number,\n): number[] {\n const data: number[] = [];\n\n if (Array.isArray(map)) {\n for (const key of map) {\n data.push(leafData[key][aggColumn] as number);\n }\n } else {\n for (const key in map) {\n data.push(...getLeafColumnData(map[key], leafData, aggColumn));\n }\n }\n\n return data;\n}\n\nfunction aggregateDistinct(\n groupMap: GroupMap,\n leafData: readonly DataSourceRow[],\n columnMap: ColumnMap,\n aggregations: VuuAggregation[],\n targetData: readonly DataSourceRow[],\n groupIndices: number[],\n): { [key: string]: number } {\n const distincts: { [key: string]: number } = {};\n const aggColumn = getAggColumn(columnMap, aggregations);\n\n for (const key in groupMap) {\n const leafColumnData = getLeafColumnData(\n groupMap[key],\n leafData,\n aggColumn,\n );\n const distinct = [...new Set(leafColumnData)];\n\n distincts[key] = distinct.length;\n }\n\n for (let index = 0; index < targetData.length; index++) {\n for (const key in distincts) {\n if (targetData[index][groupIndices[0]] === key) {\n targetData[index][aggColumn] = distincts[key];\n }\n }\n }\n\n return distincts;\n}\n\nfunction aggregateHigh(\n groupMap: GroupMap,\n leafData: readonly DataSourceRow[],\n columnMap: ColumnMap,\n aggregations: VuuAggregation[],\n targetData: readonly DataSourceRow[],\n groupIndices: number[],\n): { [key: string]: number } {\n const highs: { [key: string]: number } = {};\n const aggColumn = getAggColumn(columnMap, aggregations);\n\n for (const key in groupMap) {\n const leafColumnData = getLeafColumnData(\n groupMap[key],\n leafData,\n aggColumn,\n );\n const maxNumber = Math.max(...leafColumnData);\n\n highs[key] = maxNumber;\n }\n for (let index = 0; index < targetData.length; index++) {\n for (const key in highs) {\n if (targetData[index][groupIndices[0]] === key) {\n targetData[index][aggColumn] = highs[key];\n }\n }\n }\n\n return highs;\n}\n\nfunction aggregateLow(\n groupMap: GroupMap,\n leafData: readonly DataSourceRow[],\n columnMap: ColumnMap,\n aggregations: VuuAggregation[],\n targetData: readonly DataSourceRow[],\n groupIndices: number[],\n): { [key: string]: number } {\n const mins: { [key: string]: number } = {};\n const aggColumn = getAggColumn(columnMap, aggregations);\n\n for (const key in groupMap) {\n const leafColumnData = getLeafColumnData(\n groupMap[key],\n leafData,\n aggColumn,\n );\n const minNumber = Math.min(...leafColumnData);\n mins[key] = minNumber;\n }\n\n for (let index = 0; index < targetData.length; index++) {\n for (const key in mins) {\n if (targetData[index][groupIndices[0]] === key) {\n targetData[index][aggColumn] = mins[key];\n }\n }\n }\n\n return mins;\n}\n"],"names":["count","leafData","aggColumn"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "0.
|
|
2
|
+
"version": "0.12.0",
|
|
3
3
|
"author": "heswell",
|
|
4
4
|
"license": "Apache-2.0",
|
|
5
5
|
"devDependencies": {
|
|
6
|
-
"@vuu-ui/vuu-data-types": "0.
|
|
7
|
-
"@vuu-ui/vuu-table-types": "0.
|
|
8
|
-
"@vuu-ui/vuu-filter-types": "0.
|
|
9
|
-
"@vuu-ui/vuu-protocol-types": "0.
|
|
6
|
+
"@vuu-ui/vuu-data-types": "0.12.0",
|
|
7
|
+
"@vuu-ui/vuu-table-types": "0.12.0",
|
|
8
|
+
"@vuu-ui/vuu-filter-types": "0.12.0",
|
|
9
|
+
"@vuu-ui/vuu-protocol-types": "0.12.0"
|
|
10
10
|
},
|
|
11
11
|
"dependencies": {
|
|
12
|
-
"@vuu-ui/vuu-filter-parser": "0.
|
|
13
|
-
"@vuu-ui/vuu-utils": "0.
|
|
12
|
+
"@vuu-ui/vuu-filter-parser": "0.12.0",
|
|
13
|
+
"@vuu-ui/vuu-utils": "0.12.0"
|
|
14
14
|
},
|
|
15
15
|
"sideEffects": false,
|
|
16
16
|
"files": [
|