@hitachivantara/uikit-react-viz 5.11.1 → 5.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.
- package/dist/cjs/hooks/useData.cjs +10 -11
- package/dist/cjs/index.cjs +2 -0
- package/dist/cjs/utils/index.cjs +106 -7
- package/dist/esm/hooks/useData.js +11 -12
- package/dist/esm/hooks/useData.js.map +1 -1
- package/dist/esm/index.js +3 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/utils/index.js +106 -7
- package/dist/esm/utils/index.js.map +1 -1
- package/dist/types/index.d.ts +7 -1
- package/package.json +2 -2
|
@@ -23,6 +23,16 @@ const useData = ({
|
|
|
23
23
|
} else {
|
|
24
24
|
tableData = arquero.table(data);
|
|
25
25
|
}
|
|
26
|
+
if (filters) {
|
|
27
|
+
tableData = tableData.filter(
|
|
28
|
+
arquero.escape(
|
|
29
|
+
(row) => index.getHvArqueroCombinedFilters(
|
|
30
|
+
row,
|
|
31
|
+
Array.isArray(filters) ? filters : [filters]
|
|
32
|
+
)
|
|
33
|
+
)
|
|
34
|
+
);
|
|
35
|
+
}
|
|
26
36
|
const groupByFields = groupBy ? Array.isArray(groupBy) ? groupBy : [groupBy] : [];
|
|
27
37
|
const splitByFields = Array.isArray(splitBy) ? splitBy : splitBy != null ? [splitBy] : [];
|
|
28
38
|
const measuresFields = measures == null ? {} : typeof measures === "string" ? { [measures]: getAgFunc("sum", measures) } : Array.isArray(measures) ? measures.reduce((acc, value) => {
|
|
@@ -93,17 +103,6 @@ const useData = ({
|
|
|
93
103
|
{ after: groupByFields[groupByFields.length - 1] }
|
|
94
104
|
);
|
|
95
105
|
}
|
|
96
|
-
if (filters) {
|
|
97
|
-
const filtersArray = Array.isArray(filters) ? filters : [filters];
|
|
98
|
-
const combinedFilterFunction = (row) => {
|
|
99
|
-
return filtersArray.every((filter) => {
|
|
100
|
-
const { field, operation, value } = filter;
|
|
101
|
-
const filterFunction = index.getFilterFunction(operation, field, value);
|
|
102
|
-
return filterFunction(row);
|
|
103
|
-
});
|
|
104
|
-
};
|
|
105
|
-
tableData = tableData.filter(arquero.escape(combinedFilterFunction));
|
|
106
|
-
}
|
|
107
106
|
if (Object.keys(sortByFields).length > 0) {
|
|
108
107
|
tableData = tableData.orderby(
|
|
109
108
|
...Object.keys(sortByFields).filter((key) => allFields.includes(key)).map((key) => sortByFields[key] === "desc" ? arquero.desc(key) : key)
|
package/dist/cjs/index.cjs
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
3
|
const Provider = require("./providers/Provider.cjs");
|
|
4
|
+
const index = require("./utils/index.cjs");
|
|
4
5
|
const LineChart = require("./LineChart/LineChart.cjs");
|
|
5
6
|
const BarChart = require("./BarChart/BarChart.cjs");
|
|
6
7
|
const DonutChart = require("./DonutChart/DonutChart.cjs");
|
|
@@ -11,6 +12,7 @@ const Heatmap = require("./Heatmap/Heatmap.cjs");
|
|
|
11
12
|
const Boxplot = require("./Boxplot/Boxplot.cjs");
|
|
12
13
|
exports.HvVizContext = Provider.HvVizContext;
|
|
13
14
|
exports.HvVizProvider = Provider.HvVizProvider;
|
|
15
|
+
exports.getHvArqueroCombinedFilters = index.getHvArqueroCombinedFilters;
|
|
14
16
|
exports.HvLineChart = LineChart.HvLineChart;
|
|
15
17
|
exports.HvBarChart = BarChart.HvBarChart;
|
|
16
18
|
exports.HvDonutChart = DonutChart.HvDonutChart;
|
package/dist/cjs/utils/index.cjs
CHANGED
|
@@ -35,33 +35,132 @@ const getMeasure = (name, msr) => {
|
|
|
35
35
|
}) ?? measuresArray[0];
|
|
36
36
|
};
|
|
37
37
|
const getFilterFunction = (operation, field, value) => {
|
|
38
|
+
const valueArray = Array.isArray(value) ? value : [value];
|
|
39
|
+
if (valueArray.length === 0)
|
|
40
|
+
return () => true;
|
|
38
41
|
switch (operation) {
|
|
39
42
|
case "is": {
|
|
40
|
-
const valueArray = Array.isArray(value) ? value : [value];
|
|
41
43
|
return (row) => valueArray.includes(row[field]);
|
|
42
44
|
}
|
|
43
45
|
case "isNot": {
|
|
44
|
-
const valueArray = Array.isArray(value) ? value : [value];
|
|
45
46
|
return (row) => !valueArray.includes(row[field]);
|
|
46
47
|
}
|
|
47
48
|
case "contains":
|
|
48
|
-
return (row) =>
|
|
49
|
+
return (row) => {
|
|
50
|
+
let include = false;
|
|
51
|
+
for (const val of valueArray) {
|
|
52
|
+
if (row[field].includes(val)) {
|
|
53
|
+
include = true;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
return include;
|
|
57
|
+
};
|
|
58
|
+
case "notContains":
|
|
59
|
+
return (row) => {
|
|
60
|
+
let include = true;
|
|
61
|
+
for (const val of valueArray) {
|
|
62
|
+
if (row[field].includes(val)) {
|
|
63
|
+
include = false;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
return include;
|
|
67
|
+
};
|
|
49
68
|
case "greaterThan":
|
|
50
|
-
return (row) =>
|
|
69
|
+
return (row) => {
|
|
70
|
+
let include = false;
|
|
71
|
+
for (const val of valueArray) {
|
|
72
|
+
if (row[field] > val) {
|
|
73
|
+
include = true;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
return include;
|
|
77
|
+
};
|
|
51
78
|
case "greaterThanOrEqual":
|
|
52
|
-
return (row) =>
|
|
79
|
+
return (row) => {
|
|
80
|
+
let include = false;
|
|
81
|
+
for (const val of valueArray) {
|
|
82
|
+
if (row[field] >= val) {
|
|
83
|
+
include = true;
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
return include;
|
|
87
|
+
};
|
|
53
88
|
case "lessThan":
|
|
54
|
-
return (row) =>
|
|
89
|
+
return (row) => {
|
|
90
|
+
let include = false;
|
|
91
|
+
for (const val of valueArray) {
|
|
92
|
+
if (row[field] < val) {
|
|
93
|
+
include = true;
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
return include;
|
|
97
|
+
};
|
|
55
98
|
case "lessThanOrEqual":
|
|
56
|
-
return (row) =>
|
|
99
|
+
return (row) => {
|
|
100
|
+
let include = false;
|
|
101
|
+
for (const val of valueArray) {
|
|
102
|
+
if (row[field] <= val) {
|
|
103
|
+
include = true;
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
return include;
|
|
107
|
+
};
|
|
57
108
|
case "between":
|
|
58
109
|
return (row) => row[field] >= value[0] && row[field] <= value[1];
|
|
110
|
+
case "ends":
|
|
111
|
+
return (row) => {
|
|
112
|
+
let include = false;
|
|
113
|
+
for (const val of valueArray) {
|
|
114
|
+
if (String(row[field]).endsWith(String(val))) {
|
|
115
|
+
include = true;
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
return include;
|
|
119
|
+
};
|
|
120
|
+
case "notEnds":
|
|
121
|
+
return (row) => {
|
|
122
|
+
let include = true;
|
|
123
|
+
for (const val of valueArray) {
|
|
124
|
+
if (String(row[field]).endsWith(String(val))) {
|
|
125
|
+
include = false;
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
return include;
|
|
129
|
+
};
|
|
130
|
+
case "starts":
|
|
131
|
+
return (row) => {
|
|
132
|
+
let include = false;
|
|
133
|
+
for (const val of valueArray) {
|
|
134
|
+
if (String(row[field]).startsWith(String(val))) {
|
|
135
|
+
include = true;
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
return include;
|
|
139
|
+
};
|
|
140
|
+
case "notStarts":
|
|
141
|
+
return (row) => {
|
|
142
|
+
let include = true;
|
|
143
|
+
for (const val of valueArray) {
|
|
144
|
+
if (String(row[field]).startsWith(String(val))) {
|
|
145
|
+
include = false;
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
return include;
|
|
149
|
+
};
|
|
59
150
|
default:
|
|
60
151
|
throw new Error("Unsupported operation");
|
|
61
152
|
}
|
|
62
153
|
};
|
|
154
|
+
const getHvArqueroCombinedFilters = (row, filters) => {
|
|
155
|
+
return filters.every((filter) => {
|
|
156
|
+
const { field, operation, value } = filter;
|
|
157
|
+
const filterFunction = getFilterFunction(operation, field, value);
|
|
158
|
+
return filterFunction(row);
|
|
159
|
+
});
|
|
160
|
+
};
|
|
63
161
|
exports.getAxisType = getAxisType;
|
|
64
162
|
exports.getFilterFunction = getFilterFunction;
|
|
65
163
|
exports.getGroupKey = getGroupKey;
|
|
164
|
+
exports.getHvArqueroCombinedFilters = getHvArqueroCombinedFilters;
|
|
66
165
|
exports.getLegendIcon = getLegendIcon;
|
|
67
166
|
exports.getMeasure = getMeasure;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { useMemo } from "react";
|
|
2
2
|
import { internal, from, table, escape, desc, not } from "arquero";
|
|
3
|
-
import { getGroupKey,
|
|
3
|
+
import { getGroupKey, getHvArqueroCombinedFilters } from "../utils/index.js";
|
|
4
4
|
const getAgFunc = (func, field) => func === "count" ? "count()" : `${func}(d["${field}"])`;
|
|
5
5
|
const useData = ({
|
|
6
6
|
data,
|
|
@@ -21,6 +21,16 @@ const useData = ({
|
|
|
21
21
|
} else {
|
|
22
22
|
tableData = table(data);
|
|
23
23
|
}
|
|
24
|
+
if (filters) {
|
|
25
|
+
tableData = tableData.filter(
|
|
26
|
+
escape(
|
|
27
|
+
(row) => getHvArqueroCombinedFilters(
|
|
28
|
+
row,
|
|
29
|
+
Array.isArray(filters) ? filters : [filters]
|
|
30
|
+
)
|
|
31
|
+
)
|
|
32
|
+
);
|
|
33
|
+
}
|
|
24
34
|
const groupByFields = groupBy ? Array.isArray(groupBy) ? groupBy : [groupBy] : [];
|
|
25
35
|
const splitByFields = Array.isArray(splitBy) ? splitBy : splitBy != null ? [splitBy] : [];
|
|
26
36
|
const measuresFields = measures == null ? {} : typeof measures === "string" ? { [measures]: getAgFunc("sum", measures) } : Array.isArray(measures) ? measures.reduce((acc, value) => {
|
|
@@ -91,17 +101,6 @@ const useData = ({
|
|
|
91
101
|
{ after: groupByFields[groupByFields.length - 1] }
|
|
92
102
|
);
|
|
93
103
|
}
|
|
94
|
-
if (filters) {
|
|
95
|
-
const filtersArray = Array.isArray(filters) ? filters : [filters];
|
|
96
|
-
const combinedFilterFunction = (row) => {
|
|
97
|
-
return filtersArray.every((filter) => {
|
|
98
|
-
const { field, operation, value } = filter;
|
|
99
|
-
const filterFunction = getFilterFunction(operation, field, value);
|
|
100
|
-
return filterFunction(row);
|
|
101
|
-
});
|
|
102
|
-
};
|
|
103
|
-
tableData = tableData.filter(escape(combinedFilterFunction));
|
|
104
|
-
}
|
|
105
104
|
if (Object.keys(sortByFields).length > 0) {
|
|
106
105
|
tableData = tableData.orderby(
|
|
107
106
|
...Object.keys(sortByFields).filter((key) => allFields.includes(key)).map((key) => sortByFields[key] === "desc" ? desc(key) : key)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useData.js","sources":["../../../src/hooks/useData.tsx"],"sourcesContent":["import { useMemo } from \"react\";\nimport { desc, escape, from, internal, not, table } from \"arquero\";\nimport type ColumnTable from \"arquero/dist/types/table/column-table\";\nimport { Arrayable } from \"@hitachivantara/uikit-react-core\";\n\nimport {\n HvBarChartMeasures,\n HvChartAggregation,\n HvChartData,\n HvChartOrder,\n HvDonutChartMeasure,\n HvLineChartMeasures,\n HvScatterPlotMeasure,\n} from \"../types\";\nimport { HvAxisChartCommonProps, HvChartCommonProps } from \"../types/common\";\nimport {
|
|
1
|
+
{"version":3,"file":"useData.js","sources":["../../../src/hooks/useData.tsx"],"sourcesContent":["import { useMemo } from \"react\";\nimport { desc, escape, from, internal, not, table } from \"arquero\";\nimport type ColumnTable from \"arquero/dist/types/table/column-table\";\nimport { Arrayable } from \"@hitachivantara/uikit-react-core\";\n\nimport {\n HvBarChartMeasures,\n HvChartAggregation,\n HvChartData,\n HvChartOrder,\n HvDonutChartMeasure,\n HvLineChartMeasures,\n HvScatterPlotMeasure,\n} from \"../types\";\nimport { HvAxisChartCommonProps, HvChartCommonProps } from \"../types/common\";\nimport { getGroupKey, getHvArqueroCombinedFilters } from \"../utils\";\n\nconst getAgFunc = (func: HvChartAggregation, field: string) =>\n func === \"count\" ? \"count()\" : `${func}(d[\"${field}\"])`;\n\ninterface HvDataHookProps {\n data: HvChartData;\n groupBy: HvChartCommonProps[\"groupBy\"];\n measures:\n | Arrayable<HvLineChartMeasures | HvBarChartMeasures | HvScatterPlotMeasure>\n | HvDonutChartMeasure;\n splitBy?: HvAxisChartCommonProps[\"splitBy\"];\n sortBy?: HvChartCommonProps[\"sortBy\"];\n filters?: HvChartCommonProps[\"filters\"];\n delta?: string;\n}\n\nexport const useData = ({\n data,\n groupBy,\n measures,\n sortBy,\n splitBy,\n filters,\n delta,\n}: HvDataHookProps): internal.ColumnTable => {\n const groupByKey = getGroupKey(groupBy);\n\n const chartData = useMemo<ColumnTable>(() => {\n let tableData: ColumnTable;\n if (data instanceof internal.ColumnTable) {\n tableData = data;\n } else if (Array.isArray(data)) {\n tableData = from(data);\n } else {\n tableData = table(data);\n }\n\n // Filter data right away\n if (filters) {\n tableData = tableData.filter(\n escape((row) =>\n getHvArqueroCombinedFilters(\n row,\n Array.isArray(filters) ? filters : [filters],\n ),\n ),\n );\n }\n\n const groupByFields = groupBy\n ? Array.isArray(groupBy)\n ? groupBy\n : [groupBy]\n : [];\n\n const splitByFields = Array.isArray(splitBy)\n ? splitBy\n : splitBy != null\n ? [splitBy]\n : [];\n\n const measuresFields: { [key: string]: string } =\n measures == null\n ? {}\n : typeof measures === \"string\"\n ? { [measures]: getAgFunc(\"sum\", measures) }\n : Array.isArray(measures)\n ? measures.reduce<{ [key: string]: string }>((acc, value) => {\n let field: string;\n let agFunction: HvChartAggregation;\n if (typeof value === \"string\") {\n field = value;\n agFunction = \"sum\";\n } else {\n field = value.field;\n agFunction = value.agg ?? \"sum\";\n }\n\n return {\n ...acc,\n [field]: getAgFunc(agFunction, field),\n };\n }, {})\n : {\n [measures.field]: getAgFunc(\n measures.agg ?? \"sum\",\n measures.field,\n ),\n };\n\n const sortByFields: { [key: string]: HvChartOrder } =\n sortBy == null\n ? {}\n : typeof sortBy === \"string\"\n ? { [sortBy]: \"asc\" }\n : Array.isArray(sortBy)\n ? sortBy.reduce<{ [key: string]: HvChartOrder }>((acc, value) => {\n let field: string;\n let orderFunction: HvChartOrder;\n if (typeof value === \"string\") {\n field = value;\n orderFunction = \"asc\";\n } else {\n field = value.field;\n orderFunction = value.order ?? \"asc\";\n }\n\n return {\n ...acc,\n [field]: orderFunction,\n };\n }, {})\n : { [sortBy.field]: sortBy.order ?? \"asc\" };\n\n const allFields = [\n ...groupByFields,\n ...splitByFields,\n ...Object.keys(measuresFields),\n ];\n\n // --- Confusion matrix ---\n // Recalculate the measures columns according to the delta column\n if (delta) {\n const deltaExpression = Object.keys(measuresFields).reduce(\n (acc, curr) => {\n return {\n ...acc,\n [curr]: `d => d.${curr} - d.${delta}`,\n };\n },\n {},\n );\n\n tableData = tableData.derive(deltaExpression);\n }\n\n // remove unneeded fields\n tableData = tableData.select(...allFields);\n\n // group by groupBy fields\n if (groupByFields.length > 0) {\n tableData = tableData.groupby(groupByFields);\n }\n\n if (splitByFields.length > 0) {\n // pivot by splitBy fields\n tableData = tableData.pivot(splitByFields, measuresFields);\n } else {\n // if there is no splitBy fields, just aggregate measures fields\n tableData = tableData.rollup(measuresFields);\n }\n\n // if grouped by multiple fields, create a new joint field\n // as the line chart doesn't implement hierarchical axis label grouping\n if (groupByFields.length > 1) {\n const expression = `d => ${groupByFields\n .map((field) => `d.${field}`)\n .join(\" + '_' + \")}`;\n\n tableData = tableData.derive(\n { [groupByKey]: expression },\n { after: groupByFields[groupByFields.length - 1] },\n );\n }\n\n // sort by sortBy fields\n if (Object.keys(sortByFields).length > 0) {\n tableData = tableData.orderby(\n ...Object.keys(sortByFields)\n // only sort by fields that are in the table, ignore the rest\n .filter((key) => allFields.includes(key))\n .map((key) => (sortByFields[key] === \"desc\" ? desc(key) : key)),\n );\n }\n\n // if a derived field was created, remove the original fields\n if (groupByFields.length > 1) {\n tableData = tableData.select(not(...groupByFields));\n }\n\n return tableData;\n }, [data, groupBy, splitBy, measures, sortBy, delta, filters, groupByKey]);\n\n return chartData;\n};\n"],"names":[],"mappings":"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"}
|
package/dist/esm/index.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { HvVizContext, HvVizProvider } from "./providers/Provider.js";
|
|
2
|
+
import { getHvArqueroCombinedFilters } from "./utils/index.js";
|
|
2
3
|
import { HvLineChart } from "./LineChart/LineChart.js";
|
|
3
4
|
import { HvBarChart } from "./BarChart/BarChart.js";
|
|
4
5
|
import { HvDonutChart } from "./DonutChart/DonutChart.js";
|
|
@@ -17,5 +18,6 @@ export {
|
|
|
17
18
|
HvScatterPlot,
|
|
18
19
|
HvTreemapChart,
|
|
19
20
|
HvVizContext,
|
|
20
|
-
HvVizProvider
|
|
21
|
+
HvVizProvider,
|
|
22
|
+
getHvArqueroCombinedFilters
|
|
21
23
|
};
|
package/dist/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;"}
|
package/dist/esm/utils/index.js
CHANGED
|
@@ -33,35 +33,134 @@ const getMeasure = (name, msr) => {
|
|
|
33
33
|
}) ?? measuresArray[0];
|
|
34
34
|
};
|
|
35
35
|
const getFilterFunction = (operation, field, value) => {
|
|
36
|
+
const valueArray = Array.isArray(value) ? value : [value];
|
|
37
|
+
if (valueArray.length === 0)
|
|
38
|
+
return () => true;
|
|
36
39
|
switch (operation) {
|
|
37
40
|
case "is": {
|
|
38
|
-
const valueArray = Array.isArray(value) ? value : [value];
|
|
39
41
|
return (row) => valueArray.includes(row[field]);
|
|
40
42
|
}
|
|
41
43
|
case "isNot": {
|
|
42
|
-
const valueArray = Array.isArray(value) ? value : [value];
|
|
43
44
|
return (row) => !valueArray.includes(row[field]);
|
|
44
45
|
}
|
|
45
46
|
case "contains":
|
|
46
|
-
return (row) =>
|
|
47
|
+
return (row) => {
|
|
48
|
+
let include = false;
|
|
49
|
+
for (const val of valueArray) {
|
|
50
|
+
if (row[field].includes(val)) {
|
|
51
|
+
include = true;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
return include;
|
|
55
|
+
};
|
|
56
|
+
case "notContains":
|
|
57
|
+
return (row) => {
|
|
58
|
+
let include = true;
|
|
59
|
+
for (const val of valueArray) {
|
|
60
|
+
if (row[field].includes(val)) {
|
|
61
|
+
include = false;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
return include;
|
|
65
|
+
};
|
|
47
66
|
case "greaterThan":
|
|
48
|
-
return (row) =>
|
|
67
|
+
return (row) => {
|
|
68
|
+
let include = false;
|
|
69
|
+
for (const val of valueArray) {
|
|
70
|
+
if (row[field] > val) {
|
|
71
|
+
include = true;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
return include;
|
|
75
|
+
};
|
|
49
76
|
case "greaterThanOrEqual":
|
|
50
|
-
return (row) =>
|
|
77
|
+
return (row) => {
|
|
78
|
+
let include = false;
|
|
79
|
+
for (const val of valueArray) {
|
|
80
|
+
if (row[field] >= val) {
|
|
81
|
+
include = true;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
return include;
|
|
85
|
+
};
|
|
51
86
|
case "lessThan":
|
|
52
|
-
return (row) =>
|
|
87
|
+
return (row) => {
|
|
88
|
+
let include = false;
|
|
89
|
+
for (const val of valueArray) {
|
|
90
|
+
if (row[field] < val) {
|
|
91
|
+
include = true;
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
return include;
|
|
95
|
+
};
|
|
53
96
|
case "lessThanOrEqual":
|
|
54
|
-
return (row) =>
|
|
97
|
+
return (row) => {
|
|
98
|
+
let include = false;
|
|
99
|
+
for (const val of valueArray) {
|
|
100
|
+
if (row[field] <= val) {
|
|
101
|
+
include = true;
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
return include;
|
|
105
|
+
};
|
|
55
106
|
case "between":
|
|
56
107
|
return (row) => row[field] >= value[0] && row[field] <= value[1];
|
|
108
|
+
case "ends":
|
|
109
|
+
return (row) => {
|
|
110
|
+
let include = false;
|
|
111
|
+
for (const val of valueArray) {
|
|
112
|
+
if (String(row[field]).endsWith(String(val))) {
|
|
113
|
+
include = true;
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
return include;
|
|
117
|
+
};
|
|
118
|
+
case "notEnds":
|
|
119
|
+
return (row) => {
|
|
120
|
+
let include = true;
|
|
121
|
+
for (const val of valueArray) {
|
|
122
|
+
if (String(row[field]).endsWith(String(val))) {
|
|
123
|
+
include = false;
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
return include;
|
|
127
|
+
};
|
|
128
|
+
case "starts":
|
|
129
|
+
return (row) => {
|
|
130
|
+
let include = false;
|
|
131
|
+
for (const val of valueArray) {
|
|
132
|
+
if (String(row[field]).startsWith(String(val))) {
|
|
133
|
+
include = true;
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
return include;
|
|
137
|
+
};
|
|
138
|
+
case "notStarts":
|
|
139
|
+
return (row) => {
|
|
140
|
+
let include = true;
|
|
141
|
+
for (const val of valueArray) {
|
|
142
|
+
if (String(row[field]).startsWith(String(val))) {
|
|
143
|
+
include = false;
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
return include;
|
|
147
|
+
};
|
|
57
148
|
default:
|
|
58
149
|
throw new Error("Unsupported operation");
|
|
59
150
|
}
|
|
60
151
|
};
|
|
152
|
+
const getHvArqueroCombinedFilters = (row, filters) => {
|
|
153
|
+
return filters.every((filter) => {
|
|
154
|
+
const { field, operation, value } = filter;
|
|
155
|
+
const filterFunction = getFilterFunction(operation, field, value);
|
|
156
|
+
return filterFunction(row);
|
|
157
|
+
});
|
|
158
|
+
};
|
|
61
159
|
export {
|
|
62
160
|
getAxisType,
|
|
63
161
|
getFilterFunction,
|
|
64
162
|
getGroupKey,
|
|
163
|
+
getHvArqueroCombinedFilters,
|
|
65
164
|
getLegendIcon,
|
|
66
165
|
getMeasure
|
|
67
166
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../src/utils/index.ts"],"sourcesContent":["import { Arrayable } from \"@hitachivantara/uikit-react-core\";\n\nimport type {\n HvBarChartMeasures,\n HvChartAxisType,\n HvChartFilter,\n HvChartFilterOperation,\n HvDonutChartMeasure,\n HvLineChartMeasures,\n} from \"..\";\nimport { HvChartCommonProps } from \"../types/common\";\nimport { HvChartLegendIcon } from \"../types/legend\";\nimport { HvScatterPlotMeasure } from \"../types/measures\";\n\nexport const getAxisType = (type?: HvChartAxisType) => {\n switch (type) {\n case \"categorical\":\n return \"category\";\n case \"time\":\n return \"time\";\n case \"continuous\":\n return \"value\";\n default:\n return undefined;\n }\n};\n\nexport const getGroupKey = (groupBy: HvChartCommonProps[\"groupBy\"]) =>\n Array.isArray(groupBy) ? groupBy.join(\"_\") : groupBy;\n\nexport const getLegendIcon = (icon: HvChartLegendIcon) => {\n switch (icon) {\n case \"circle\":\n return \"circle\";\n case \"square\":\n return \"path://M0,0L16,0L16,16L0,16L0,0Z\";\n case \"line\":\n default:\n return \"path://M0,0L16,0L16,2L0,2Z\";\n }\n};\n\nexport const getMeasure = (\n name: string,\n msr:\n | Arrayable<HvLineChartMeasures | HvBarChartMeasures | HvScatterPlotMeasure>\n | HvDonutChartMeasure,\n):\n | HvLineChartMeasures\n | HvBarChartMeasures\n | HvDonutChartMeasure\n | HvScatterPlotMeasure => {\n const measureName = name.split(\"_\")[0];\n const measuresArray = Array.isArray(msr) ? msr : [msr];\n // find the measure in measures array or return the first one\n return (\n measuresArray.find((m) => {\n if (typeof m === \"string\") {\n return m === measureName;\n }\n return m.field === measureName;\n }) ?? measuresArray[0]\n );\n};\n\nexport const getFilterFunction = (\n operation: HvChartFilterOperation,\n field: HvChartFilter[\"field\"],\n value: HvChartFilter[\"value\"],\n): Function => {\n
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../src/utils/index.ts"],"sourcesContent":["import { Arrayable } from \"@hitachivantara/uikit-react-core\";\n\nimport type {\n HvBarChartMeasures,\n HvChartAxisType,\n HvChartFilter,\n HvChartFilterOperation,\n HvDonutChartMeasure,\n HvLineChartMeasures,\n} from \"..\";\nimport { HvChartCommonProps } from \"../types/common\";\nimport { HvChartLegendIcon } from \"../types/legend\";\nimport { HvScatterPlotMeasure } from \"../types/measures\";\n\nexport const getAxisType = (type?: HvChartAxisType) => {\n switch (type) {\n case \"categorical\":\n return \"category\";\n case \"time\":\n return \"time\";\n case \"continuous\":\n return \"value\";\n default:\n return undefined;\n }\n};\n\nexport const getGroupKey = (groupBy: HvChartCommonProps[\"groupBy\"]) =>\n Array.isArray(groupBy) ? groupBy.join(\"_\") : groupBy;\n\nexport const getLegendIcon = (icon: HvChartLegendIcon) => {\n switch (icon) {\n case \"circle\":\n return \"circle\";\n case \"square\":\n return \"path://M0,0L16,0L16,16L0,16L0,0Z\";\n case \"line\":\n default:\n return \"path://M0,0L16,0L16,2L0,2Z\";\n }\n};\n\nexport const getMeasure = (\n name: string,\n msr:\n | Arrayable<HvLineChartMeasures | HvBarChartMeasures | HvScatterPlotMeasure>\n | HvDonutChartMeasure,\n):\n | HvLineChartMeasures\n | HvBarChartMeasures\n | HvDonutChartMeasure\n | HvScatterPlotMeasure => {\n const measureName = name.split(\"_\")[0];\n const measuresArray = Array.isArray(msr) ? msr : [msr];\n // find the measure in measures array or return the first one\n return (\n measuresArray.find((m) => {\n if (typeof m === \"string\") {\n return m === measureName;\n }\n return m.field === measureName;\n }) ?? measuresArray[0]\n );\n};\n\nexport const getFilterFunction = (\n operation: HvChartFilterOperation,\n field: HvChartFilter[\"field\"],\n value: HvChartFilter[\"value\"],\n): Function => {\n const valueArray = Array.isArray(value) ? value : [value];\n if (valueArray.length === 0) return () => true;\n\n switch (operation) {\n case \"is\": {\n return (row: any) => valueArray.includes(row[field]);\n }\n case \"isNot\": {\n return (row: any) => !valueArray.includes(row[field]);\n }\n case \"contains\":\n return (row: any) => {\n let include = false;\n for (const val of valueArray) {\n if (row[field].includes(val)) {\n include = true;\n }\n }\n return include;\n };\n case \"notContains\":\n return (row: any) => {\n let include = true;\n for (const val of valueArray) {\n if (row[field].includes(val)) {\n include = false;\n }\n }\n return include;\n };\n case \"greaterThan\":\n return (row: any) => {\n let include = false;\n for (const val of valueArray) {\n if (row[field] > val) {\n include = true;\n }\n }\n return include;\n };\n case \"greaterThanOrEqual\":\n return (row: any) => {\n let include = false;\n for (const val of valueArray) {\n if (row[field] >= val) {\n include = true;\n }\n }\n return include;\n };\n case \"lessThan\":\n return (row: any) => {\n let include = false;\n for (const val of valueArray) {\n if (row[field] < val) {\n include = true;\n }\n }\n return include;\n };\n case \"lessThanOrEqual\":\n return (row: any) => {\n let include = false;\n for (const val of valueArray) {\n if (row[field] <= val) {\n include = true;\n }\n }\n return include;\n };\n case \"between\":\n return (row: any) => row[field] >= value[0] && row[field] <= value[1];\n case \"ends\":\n return (row: any) => {\n let include = false;\n for (const val of valueArray) {\n if (String(row[field]).endsWith(String(val))) {\n include = true;\n }\n }\n return include;\n };\n case \"notEnds\":\n return (row: any) => {\n let include = true;\n for (const val of valueArray) {\n if (String(row[field]).endsWith(String(val))) {\n include = false;\n }\n }\n return include;\n };\n case \"starts\":\n return (row: any) => {\n let include = false;\n for (const val of valueArray) {\n if (String(row[field]).startsWith(String(val))) {\n include = true;\n }\n }\n return include;\n };\n case \"notStarts\":\n return (row: any) => {\n let include = true;\n for (const val of valueArray) {\n if (String(row[field]).startsWith(String(val))) {\n include = false;\n }\n }\n return include;\n };\n\n default:\n throw new Error(\"Unsupported operation\");\n }\n};\n\n// Note: Exported to the users\n/**\n * Combine filter functions into a single function. Only rows that pass all filters will be included.\n * Should be used inside the `escape` function provided by Arquero.\n * */\nexport const getHvArqueroCombinedFilters = (\n row: any,\n filters: HvChartFilter[],\n) => {\n return filters.every((filter) => {\n const { field, operation, value } = filter;\n const filterFunction = getFilterFunction(operation, field, value);\n return filterFunction(row);\n });\n};\n"],"names":[],"mappings":"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"}
|
package/dist/types/index.d.ts
CHANGED
|
@@ -68,6 +68,12 @@ declare type FullSortBy = {
|
|
|
68
68
|
order?: HvChartOrder;
|
|
69
69
|
};
|
|
70
70
|
|
|
71
|
+
/**
|
|
72
|
+
* Combine filter functions into a single function. Only rows that pass all filters will be included.
|
|
73
|
+
* Should be used inside the `escape` function provided by Arquero.
|
|
74
|
+
* */
|
|
75
|
+
export declare const getHvArqueroCombinedFilters: (row: any, filters: HvChartFilter[]) => boolean;
|
|
76
|
+
|
|
71
77
|
/** Axis charts (line and bar) common props */
|
|
72
78
|
declare interface HvAxisChartCommonProps {
|
|
73
79
|
/** Columns to use to split the measures. */
|
|
@@ -217,7 +223,7 @@ export declare type HvChartFilter = {
|
|
|
217
223
|
value: string | string[] | number | number[];
|
|
218
224
|
};
|
|
219
225
|
|
|
220
|
-
export declare type HvChartFilterOperation = "is" | "isNot" | "contains" | "greaterThan" | "greaterThanOrEqual" | "lessThan" | "lessThanOrEqual" | "between";
|
|
226
|
+
export declare type HvChartFilterOperation = "is" | "isNot" | "contains" | "notContains" | "greaterThan" | "greaterThanOrEqual" | "lessThan" | "lessThanOrEqual" | "between" | "ends" | "notEnds" | "starts" | "notStarts";
|
|
221
227
|
|
|
222
228
|
export declare interface HvChartGrid {
|
|
223
229
|
/** Distance between the grid and the top of the container. */
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@hitachivantara/uikit-react-viz",
|
|
3
|
-
"version": "5.
|
|
3
|
+
"version": "5.12.0",
|
|
4
4
|
"private": false,
|
|
5
5
|
"author": "Hitachi Vantara UI Kit Team",
|
|
6
6
|
"description": "Contributed React visualization components for the NEXT UI Kit.",
|
|
@@ -42,7 +42,7 @@
|
|
|
42
42
|
"access": "public",
|
|
43
43
|
"directory": "package"
|
|
44
44
|
},
|
|
45
|
-
"gitHead": "
|
|
45
|
+
"gitHead": "345be3eb277f4f484253c958a363e74b81a5f4dc",
|
|
46
46
|
"exports": {
|
|
47
47
|
".": {
|
|
48
48
|
"require": "./dist/cjs/index.cjs",
|