@gisce/ooui 0.6.13 → 0.7.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/Graph/Graph.d.ts +2 -0
- package/dist/Graph/Graph.js +9 -0
- package/dist/Graph/Graph.js.map +1 -1
- package/dist/Graph/processor/graphProcessor.d.ts +5 -1
- package/dist/Graph/processor/graphProcessor.js +29 -2
- package/dist/Graph/processor/graphProcessor.js.map +1 -1
- package/dist/Graph/processor/timerangeHelper.d.ts +33 -0
- package/dist/Graph/processor/timerangeHelper.js +227 -0
- package/dist/Graph/processor/timerangeHelper.js.map +1 -0
- package/package.json +4 -2
- package/src/Graph/Graph.ts +6 -0
- package/src/Graph/processor/graphProcessor.ts +40 -1
- package/src/Graph/processor/timerangeHelper.ts +289 -0
- package/src/spec/Graph.spec.ts +11 -0
- package/src/spec/graphProcessor.spec.ts +38 -1
- package/src/spec/timerangeHelper.spec.ts +603 -0
package/dist/Graph/Graph.d.ts
CHANGED
package/dist/Graph/Graph.js
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
var Graph = /** @class */ (function () {
|
|
2
2
|
function Graph(element) {
|
|
3
3
|
this._string = null;
|
|
4
|
+
this._timerange = null;
|
|
4
5
|
this._string = element.getAttribute("string");
|
|
6
|
+
this._timerange = element.getAttribute("timerange");
|
|
5
7
|
}
|
|
6
8
|
Object.defineProperty(Graph.prototype, "string", {
|
|
7
9
|
get: function () {
|
|
@@ -17,6 +19,13 @@ var Graph = /** @class */ (function () {
|
|
|
17
19
|
enumerable: false,
|
|
18
20
|
configurable: true
|
|
19
21
|
});
|
|
22
|
+
Object.defineProperty(Graph.prototype, "timerange", {
|
|
23
|
+
get: function () {
|
|
24
|
+
return this._timerange;
|
|
25
|
+
},
|
|
26
|
+
enumerable: false,
|
|
27
|
+
configurable: true
|
|
28
|
+
});
|
|
20
29
|
return Graph;
|
|
21
30
|
}());
|
|
22
31
|
export { Graph };
|
package/dist/Graph/Graph.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Graph.js","sourceRoot":"","sources":["../../src/Graph/Graph.ts"],"names":[],"mappings":"AAEA;
|
|
1
|
+
{"version":3,"file":"Graph.js","sourceRoot":"","sources":["../../src/Graph/Graph.ts"],"names":[],"mappings":"AAEA;IAgBE,eAAY,OAAoB;QAfhC,YAAO,GAAkB,IAAI,CAAC;QAU9B,eAAU,GAAkB,IAAI,CAAC;QAM/B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;QAC9C,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;IACtD,CAAC;IAjBD,sBAAI,yBAAM;aAAV;YACE,OAAO,IAAI,CAAC,OAAO,CAAC;QACtB,CAAC;;;OAAA;IAGD,sBAAI,uBAAI;aAAR;YACE,OAAO,IAAI,CAAC,KAAK,CAAC;QACpB,CAAC;;;OAAA;IAGD,sBAAI,4BAAS;aAAb;YACE,OAAO,IAAI,CAAC,UAAU,CAAC;QACzB,CAAC;;;OAAA;IAMH,YAAC;AAAD,CAAC,AApBD,IAoBC"}
|
|
@@ -16,7 +16,10 @@ export declare const labelsForOperator: {
|
|
|
16
16
|
min: string;
|
|
17
17
|
max: string;
|
|
18
18
|
};
|
|
19
|
-
export declare
|
|
19
|
+
export declare type ProcessGraphDataOpts = {
|
|
20
|
+
uninformedString: string;
|
|
21
|
+
};
|
|
22
|
+
export declare const processGraphData: ({ ooui, values, fields, options, }: {
|
|
20
23
|
ooui: GraphChart;
|
|
21
24
|
values: {
|
|
22
25
|
[key: string]: any;
|
|
@@ -24,6 +27,7 @@ export declare const processGraphData: ({ ooui, values, fields, }: {
|
|
|
24
27
|
fields: {
|
|
25
28
|
[key: string]: any;
|
|
26
29
|
};
|
|
30
|
+
options?: ProcessGraphDataOpts | undefined;
|
|
27
31
|
}) => {
|
|
28
32
|
data: {
|
|
29
33
|
[key: string]: any;
|
|
@@ -30,6 +30,7 @@ var __spread = (this && this.__spread) || function () {
|
|
|
30
30
|
return ar;
|
|
31
31
|
};
|
|
32
32
|
import { getValueAndLabelForField } from "./fieldUtils";
|
|
33
|
+
import { processTimerangeData } from "./timerangeHelper";
|
|
33
34
|
export var labelsForOperator = {
|
|
34
35
|
count: "count",
|
|
35
36
|
"+": "sum",
|
|
@@ -40,7 +41,7 @@ export var labelsForOperator = {
|
|
|
40
41
|
max: "max",
|
|
41
42
|
};
|
|
42
43
|
export var processGraphData = function (_a) {
|
|
43
|
-
var ooui = _a.ooui, values = _a.values, fields = _a.fields;
|
|
44
|
+
var ooui = _a.ooui, values = _a.values, fields = _a.fields, options = _a.options;
|
|
44
45
|
// First we group all the results by the x field. This way we will have one or more items in an array for every occurrence of ooui.x.name
|
|
45
46
|
// Result of this will be an object which keys will be unique keys for values of ooui.x.name for each item
|
|
46
47
|
var valuesGroupedByX = getValuesGroupedByField({
|
|
@@ -74,6 +75,7 @@ export var processGraphData = function (_a) {
|
|
|
74
75
|
yAxis: yField,
|
|
75
76
|
fields: fields,
|
|
76
77
|
}),
|
|
78
|
+
operator: yField.operator,
|
|
77
79
|
stacked: yField.stacked,
|
|
78
80
|
});
|
|
79
81
|
}
|
|
@@ -103,6 +105,7 @@ export var processGraphData = function (_a) {
|
|
|
103
105
|
x: xLabel || false,
|
|
104
106
|
value: finalValue,
|
|
105
107
|
type: label,
|
|
108
|
+
operator: yField.operator,
|
|
106
109
|
stacked: yField.stacked,
|
|
107
110
|
});
|
|
108
111
|
});
|
|
@@ -132,8 +135,32 @@ export var processGraphData = function (_a) {
|
|
|
132
135
|
return __assign(__assign({}, entry), { type: entry.type + " - " + entry.stacked });
|
|
133
136
|
});
|
|
134
137
|
}
|
|
138
|
+
var adjustedUninformedData = __spread(adjustedStackedData);
|
|
139
|
+
// If the type of the graph is pie, we have to check for "false" (uninformed) computes values
|
|
140
|
+
// in order to adjust the description to a localized string for "Unassigned / not introduced"
|
|
141
|
+
// Else, we have to ignore those entries
|
|
142
|
+
if (ooui.type === "pie" &&
|
|
143
|
+
adjustedUninformedData.some(function (entry) { return entry.x === false; })) {
|
|
144
|
+
adjustedUninformedData = adjustedUninformedData.map(function (entry) {
|
|
145
|
+
if (entry.x === false) {
|
|
146
|
+
return __assign(__assign({}, entry), { x: (options === null || options === void 0 ? void 0 : options.uninformedString) || "Not informed" });
|
|
147
|
+
}
|
|
148
|
+
return entry;
|
|
149
|
+
});
|
|
150
|
+
}
|
|
151
|
+
else if (adjustedStackedData.some(function (entry) { return entry.x === false; })) {
|
|
152
|
+
adjustedUninformedData = adjustedUninformedData.filter(function (entry) { return entry.x !== false; });
|
|
153
|
+
}
|
|
154
|
+
// If we have a timerange parameter defined in ooui, we must fill the gaps with the desired units and group results too
|
|
155
|
+
var finalData = adjustedUninformedData;
|
|
156
|
+
if (ooui.timerange) {
|
|
157
|
+
finalData = processTimerangeData({
|
|
158
|
+
values: finalData,
|
|
159
|
+
timerange: ooui.timerange,
|
|
160
|
+
});
|
|
161
|
+
}
|
|
135
162
|
return {
|
|
136
|
-
data:
|
|
163
|
+
data: finalData,
|
|
137
164
|
isGroup: isStack || isGroup,
|
|
138
165
|
isStack: isStack,
|
|
139
166
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"graphProcessor.js","sourceRoot":"","sources":["../../../src/Graph/processor/graphProcessor.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,OAAO,EAAE,wBAAwB,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"graphProcessor.js","sourceRoot":"","sources":["../../../src/Graph/processor/graphProcessor.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
export declare function processTimerangeData({ values, timerange, }: {
|
|
2
|
+
values: any[];
|
|
3
|
+
timerange: string;
|
|
4
|
+
}): any[];
|
|
5
|
+
export declare function fillGapsInTimerangeData({ values, timerange, }: {
|
|
6
|
+
values: any[];
|
|
7
|
+
timerange: string;
|
|
8
|
+
}): any[];
|
|
9
|
+
export declare function getMissingConsecutiveDates({ dates, timerange, }: {
|
|
10
|
+
dates: string[];
|
|
11
|
+
timerange: string;
|
|
12
|
+
}): string[];
|
|
13
|
+
export declare function combineValuesForTimerange({ values, timerange, }: {
|
|
14
|
+
values: any[];
|
|
15
|
+
timerange: string;
|
|
16
|
+
}): any[];
|
|
17
|
+
export declare function adjustXValuesForTimeRage({ values, timerange, }: {
|
|
18
|
+
values: any[];
|
|
19
|
+
timerange: string;
|
|
20
|
+
}): any[];
|
|
21
|
+
export declare function convertDateToTimeRangeAdjusted({ date, timerange, }: {
|
|
22
|
+
date: string;
|
|
23
|
+
timerange: string;
|
|
24
|
+
}): string;
|
|
25
|
+
export declare function getDateFormat(date: string): "YYYY-MM-DD" | "YYYY-MM-DD HH:mm:ss";
|
|
26
|
+
export declare function checkDatesConsecutive(dates: string[], unit: "hours" | "days" | "weeks" | "months" | "years"): boolean;
|
|
27
|
+
export declare function getUniqueValuesGroupedBy({ values, groupBy, }: {
|
|
28
|
+
values: any[];
|
|
29
|
+
groupBy: "all" | "type-stacked";
|
|
30
|
+
}): {
|
|
31
|
+
[key: string]: any;
|
|
32
|
+
};
|
|
33
|
+
export declare function getFormatForUnits(units: string): "YYYY-MM-DD HH:mm" | "YYYY-MM-DD" | "YYYY-WW" | "YYYY-MM" | "YYYY";
|
|
@@ -0,0 +1,227 @@
|
|
|
1
|
+
var __assign = (this && this.__assign) || function () {
|
|
2
|
+
__assign = Object.assign || function(t) {
|
|
3
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
4
|
+
s = arguments[i];
|
|
5
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
6
|
+
t[p] = s[p];
|
|
7
|
+
}
|
|
8
|
+
return t;
|
|
9
|
+
};
|
|
10
|
+
return __assign.apply(this, arguments);
|
|
11
|
+
};
|
|
12
|
+
import moment from "moment";
|
|
13
|
+
import { getValueForOperator } from "./graphProcessor";
|
|
14
|
+
export function processTimerangeData(_a) {
|
|
15
|
+
var values = _a.values, timerange = _a.timerange;
|
|
16
|
+
var combinedValues = combineValuesForTimerange({
|
|
17
|
+
values: values,
|
|
18
|
+
timerange: timerange,
|
|
19
|
+
});
|
|
20
|
+
// Fill the gaps
|
|
21
|
+
var filledValues = fillGapsInTimerangeData({
|
|
22
|
+
values: combinedValues,
|
|
23
|
+
timerange: timerange,
|
|
24
|
+
});
|
|
25
|
+
return filledValues;
|
|
26
|
+
}
|
|
27
|
+
export function fillGapsInTimerangeData(_a) {
|
|
28
|
+
var values = _a.values, timerange = _a.timerange;
|
|
29
|
+
var finalValues = [];
|
|
30
|
+
var uniqueValues = getUniqueValuesGroupedBy({
|
|
31
|
+
values: values,
|
|
32
|
+
groupBy: "type-stacked",
|
|
33
|
+
});
|
|
34
|
+
var units = timerange + "s";
|
|
35
|
+
Object.keys(uniqueValues).forEach(function (key) {
|
|
36
|
+
var valuesForKey = uniqueValues[key];
|
|
37
|
+
var _loop_1 = function (i) {
|
|
38
|
+
var value = valuesForKey[i];
|
|
39
|
+
finalValues.push(value);
|
|
40
|
+
// If it's the last item
|
|
41
|
+
if (i === valuesForKey.length - 1) {
|
|
42
|
+
return { value: void 0 };
|
|
43
|
+
}
|
|
44
|
+
var date = value.x;
|
|
45
|
+
var nextDate = valuesForKey[i + 1].x;
|
|
46
|
+
if (!checkDatesConsecutive([date, nextDate], units)) {
|
|
47
|
+
var missingDates = getMissingConsecutiveDates({
|
|
48
|
+
dates: [date, nextDate],
|
|
49
|
+
timerange: timerange,
|
|
50
|
+
});
|
|
51
|
+
finalValues = finalValues.concat(missingDates.map(function (stringDate) {
|
|
52
|
+
return {
|
|
53
|
+
x: stringDate,
|
|
54
|
+
value: 0,
|
|
55
|
+
type: value.type,
|
|
56
|
+
stacked: value.stacked,
|
|
57
|
+
};
|
|
58
|
+
}));
|
|
59
|
+
}
|
|
60
|
+
};
|
|
61
|
+
for (var i = 0; i < valuesForKey.length; i++) {
|
|
62
|
+
var state_1 = _loop_1(i);
|
|
63
|
+
if (typeof state_1 === "object")
|
|
64
|
+
return state_1.value;
|
|
65
|
+
}
|
|
66
|
+
});
|
|
67
|
+
var sortedData = finalValues.sort(function (a, b) {
|
|
68
|
+
if (a["x"] < b["x"]) {
|
|
69
|
+
return -1;
|
|
70
|
+
}
|
|
71
|
+
if (a["x"] > b["x"]) {
|
|
72
|
+
return 1;
|
|
73
|
+
}
|
|
74
|
+
return 0;
|
|
75
|
+
});
|
|
76
|
+
return sortedData;
|
|
77
|
+
}
|
|
78
|
+
export function getMissingConsecutiveDates(_a) {
|
|
79
|
+
var dates = _a.dates, timerange = _a.timerange;
|
|
80
|
+
var missingDates = [];
|
|
81
|
+
var units = timerange + "s";
|
|
82
|
+
if (dates.length === 1) {
|
|
83
|
+
return dates;
|
|
84
|
+
}
|
|
85
|
+
var sortedDates = dates.sort(function (a, b) {
|
|
86
|
+
if (a < b) {
|
|
87
|
+
return -1;
|
|
88
|
+
}
|
|
89
|
+
if (a > b) {
|
|
90
|
+
return 1;
|
|
91
|
+
}
|
|
92
|
+
return 0;
|
|
93
|
+
});
|
|
94
|
+
for (var i = 0; i < sortedDates.length - 1; i++) {
|
|
95
|
+
var date1 = sortedDates[i];
|
|
96
|
+
var date2 = sortedDates[i + 1];
|
|
97
|
+
if (!checkDatesConsecutive([date1, date2], units)) {
|
|
98
|
+
var iDate = moment(date1, getFormatForUnits(units)).add(1, units);
|
|
99
|
+
var fDate = moment(date2, getFormatForUnits(units));
|
|
100
|
+
while (iDate.isBefore(fDate)) {
|
|
101
|
+
missingDates.push(iDate.format(getFormatForUnits(units)));
|
|
102
|
+
iDate.add(1, units);
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
return missingDates;
|
|
107
|
+
}
|
|
108
|
+
export function combineValuesForTimerange(_a) {
|
|
109
|
+
var values = _a.values, timerange = _a.timerange;
|
|
110
|
+
var adjustedValues = adjustXValuesForTimeRage({
|
|
111
|
+
values: values,
|
|
112
|
+
timerange: timerange,
|
|
113
|
+
});
|
|
114
|
+
var finalValues = [];
|
|
115
|
+
// group by x, type and stacked
|
|
116
|
+
var uniqueValues = getUniqueValuesGroupedBy({
|
|
117
|
+
values: adjustedValues,
|
|
118
|
+
groupBy: "all",
|
|
119
|
+
});
|
|
120
|
+
Object.keys(uniqueValues).forEach(function (key) {
|
|
121
|
+
var valuesForKey = uniqueValues[key];
|
|
122
|
+
var finalValue = getValueForOperator({
|
|
123
|
+
values: valuesForKey.map(function (entry) { return entry.value; }),
|
|
124
|
+
operator: valuesForKey[0].operator,
|
|
125
|
+
});
|
|
126
|
+
finalValues.push(__assign(__assign({}, valuesForKey[0]), { value: finalValue }));
|
|
127
|
+
});
|
|
128
|
+
return finalValues;
|
|
129
|
+
}
|
|
130
|
+
export function adjustXValuesForTimeRage(_a) {
|
|
131
|
+
var values = _a.values, timerange = _a.timerange;
|
|
132
|
+
return values.map(function (value) {
|
|
133
|
+
return __assign(__assign({}, value), { x: convertDateToTimeRangeAdjusted({
|
|
134
|
+
date: value.x,
|
|
135
|
+
timerange: timerange,
|
|
136
|
+
}) });
|
|
137
|
+
});
|
|
138
|
+
}
|
|
139
|
+
export function convertDateToTimeRangeAdjusted(_a) {
|
|
140
|
+
var date = _a.date, timerange = _a.timerange;
|
|
141
|
+
var format = getDateFormat(date);
|
|
142
|
+
var momentDate = moment(date, format);
|
|
143
|
+
switch (timerange) {
|
|
144
|
+
case "hour": {
|
|
145
|
+
format = "YYYY-MM-DD HH:00";
|
|
146
|
+
break;
|
|
147
|
+
}
|
|
148
|
+
case "day": {
|
|
149
|
+
format = "YYYY-MM-DD";
|
|
150
|
+
break;
|
|
151
|
+
}
|
|
152
|
+
case "week": {
|
|
153
|
+
format = "YYYY-WW";
|
|
154
|
+
break;
|
|
155
|
+
}
|
|
156
|
+
case "month": {
|
|
157
|
+
format = "YYYY-MM";
|
|
158
|
+
break;
|
|
159
|
+
}
|
|
160
|
+
case "year": {
|
|
161
|
+
format = "YYYY";
|
|
162
|
+
break;
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
return momentDate.format(format);
|
|
166
|
+
}
|
|
167
|
+
export function getDateFormat(date) {
|
|
168
|
+
return date.indexOf(":") ? "YYYY-MM-DD HH:mm:ss" : "YYYY-MM-DD";
|
|
169
|
+
}
|
|
170
|
+
export function checkDatesConsecutive(dates, unit) {
|
|
171
|
+
var consecutive = false;
|
|
172
|
+
var format = getFormatForUnits(unit);
|
|
173
|
+
if (dates.length === 0) {
|
|
174
|
+
return false;
|
|
175
|
+
}
|
|
176
|
+
if (dates.length === 1) {
|
|
177
|
+
return true;
|
|
178
|
+
}
|
|
179
|
+
for (var i = 0; i < dates.length - 1; i++) {
|
|
180
|
+
var date1 = moment(dates[i], format);
|
|
181
|
+
var date2 = moment(dates[i + 1], format);
|
|
182
|
+
var diff = date2.diff(date1, unit);
|
|
183
|
+
if (Math.abs(diff) === 1) {
|
|
184
|
+
consecutive = true;
|
|
185
|
+
}
|
|
186
|
+
else {
|
|
187
|
+
consecutive = false;
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
return consecutive;
|
|
191
|
+
}
|
|
192
|
+
export function getUniqueValuesGroupedBy(_a) {
|
|
193
|
+
var values = _a.values, groupBy = _a.groupBy;
|
|
194
|
+
var uniqueValues = {};
|
|
195
|
+
values.forEach(function (value) {
|
|
196
|
+
var x = value.x;
|
|
197
|
+
var type = value.type;
|
|
198
|
+
var stacked = value.stacked;
|
|
199
|
+
var uniqueKey = groupBy === "all" ? x + "-" + type + "-" + stacked : type + "-" + stacked;
|
|
200
|
+
if (!uniqueValues[uniqueKey]) {
|
|
201
|
+
uniqueValues[uniqueKey] = [];
|
|
202
|
+
}
|
|
203
|
+
uniqueValues[uniqueKey].push(value);
|
|
204
|
+
});
|
|
205
|
+
return uniqueValues;
|
|
206
|
+
}
|
|
207
|
+
export function getFormatForUnits(units) {
|
|
208
|
+
switch (units) {
|
|
209
|
+
default:
|
|
210
|
+
case "hours": {
|
|
211
|
+
return "YYYY-MM-DD HH:mm";
|
|
212
|
+
}
|
|
213
|
+
case "days": {
|
|
214
|
+
return "YYYY-MM-DD";
|
|
215
|
+
}
|
|
216
|
+
case "weeks": {
|
|
217
|
+
return "YYYY-WW";
|
|
218
|
+
}
|
|
219
|
+
case "months": {
|
|
220
|
+
return "YYYY-MM";
|
|
221
|
+
}
|
|
222
|
+
case "years": {
|
|
223
|
+
return "YYYY";
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
//# sourceMappingURL=timerangeHelper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"timerangeHelper.js","sourceRoot":"","sources":["../../../src/Graph/processor/timerangeHelper.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/Graph/Graph.ts
CHANGED
|
@@ -11,7 +11,13 @@ export class Graph {
|
|
|
11
11
|
return this._type;
|
|
12
12
|
}
|
|
13
13
|
|
|
14
|
+
_timerange: string | null = null;
|
|
15
|
+
get timerange(): string | null {
|
|
16
|
+
return this._timerange;
|
|
17
|
+
}
|
|
18
|
+
|
|
14
19
|
constructor(element: HTMLElement) {
|
|
15
20
|
this._string = element.getAttribute("string");
|
|
21
|
+
this._timerange = element.getAttribute("timerange");
|
|
16
22
|
}
|
|
17
23
|
}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { GraphChart, GraphYAxis, Operator } from "..";
|
|
2
2
|
import { getValueAndLabelForField } from "./fieldUtils";
|
|
3
|
+
import { processTimerangeData } from "./timerangeHelper";
|
|
3
4
|
|
|
4
5
|
export type GroupedValues = {
|
|
5
6
|
[key: string]: { label: string; entries: { [key: string]: any }[] };
|
|
@@ -15,14 +16,20 @@ export const labelsForOperator = {
|
|
|
15
16
|
max: "max",
|
|
16
17
|
};
|
|
17
18
|
|
|
19
|
+
export type ProcessGraphDataOpts = {
|
|
20
|
+
uninformedString: string;
|
|
21
|
+
};
|
|
22
|
+
|
|
18
23
|
export const processGraphData = ({
|
|
19
24
|
ooui,
|
|
20
25
|
values,
|
|
21
26
|
fields,
|
|
27
|
+
options,
|
|
22
28
|
}: {
|
|
23
29
|
ooui: GraphChart;
|
|
24
30
|
values: { [key: string]: any }[];
|
|
25
31
|
fields: { [key: string]: any };
|
|
32
|
+
options?: ProcessGraphDataOpts;
|
|
26
33
|
}) => {
|
|
27
34
|
// First we group all the results by the x field. This way we will have one or more items in an array for every occurrence of ooui.x.name
|
|
28
35
|
// Result of this will be an object which keys will be unique keys for values of ooui.x.name for each item
|
|
@@ -62,6 +69,7 @@ export const processGraphData = ({
|
|
|
62
69
|
yAxis: yField,
|
|
63
70
|
fields,
|
|
64
71
|
}),
|
|
72
|
+
operator: yField.operator,
|
|
65
73
|
stacked: yField.stacked,
|
|
66
74
|
});
|
|
67
75
|
}
|
|
@@ -94,6 +102,7 @@ export const processGraphData = ({
|
|
|
94
102
|
x: xLabel || false,
|
|
95
103
|
value: finalValue,
|
|
96
104
|
type: label,
|
|
105
|
+
operator: yField.operator,
|
|
97
106
|
stacked: yField.stacked,
|
|
98
107
|
});
|
|
99
108
|
});
|
|
@@ -130,8 +139,38 @@ export const processGraphData = ({
|
|
|
130
139
|
});
|
|
131
140
|
}
|
|
132
141
|
|
|
142
|
+
let adjustedUninformedData = [...adjustedStackedData];
|
|
143
|
+
// If the type of the graph is pie, we have to check for "false" (uninformed) computes values
|
|
144
|
+
// in order to adjust the description to a localized string for "Unassigned / not introduced"
|
|
145
|
+
// Else, we have to ignore those entries
|
|
146
|
+
if (
|
|
147
|
+
ooui.type === "pie" &&
|
|
148
|
+
adjustedUninformedData.some((entry) => entry.x === false)
|
|
149
|
+
) {
|
|
150
|
+
adjustedUninformedData = adjustedUninformedData.map((entry) => {
|
|
151
|
+
if (entry.x === false) {
|
|
152
|
+
return { ...entry, x: options?.uninformedString || "Not informed" };
|
|
153
|
+
}
|
|
154
|
+
return entry;
|
|
155
|
+
});
|
|
156
|
+
} else if (adjustedStackedData.some((entry) => entry.x === false)) {
|
|
157
|
+
adjustedUninformedData = adjustedUninformedData.filter(
|
|
158
|
+
(entry) => entry.x !== false
|
|
159
|
+
);
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
// If we have a timerange parameter defined in ooui, we must fill the gaps with the desired units and group results too
|
|
163
|
+
let finalData = adjustedUninformedData;
|
|
164
|
+
|
|
165
|
+
if (ooui.timerange) {
|
|
166
|
+
finalData = processTimerangeData({
|
|
167
|
+
values: finalData,
|
|
168
|
+
timerange: ooui.timerange!,
|
|
169
|
+
});
|
|
170
|
+
}
|
|
171
|
+
|
|
133
172
|
return {
|
|
134
|
-
data:
|
|
173
|
+
data: finalData,
|
|
135
174
|
isGroup: isStack || isGroup,
|
|
136
175
|
isStack,
|
|
137
176
|
};
|