@forestadmin/datasource-customizer 1.36.1 → 1.37.1
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.
|
@@ -5,7 +5,8 @@ export default class ResultBuilder {
|
|
|
5
5
|
distribution(obj: Record<string, number>): DistributionChart;
|
|
6
6
|
/**
|
|
7
7
|
* Add a TimeBasedChart based on a time range and a set of values.
|
|
8
|
-
* @param {DateOperation} timeRange - The time range for the chart,
|
|
8
|
+
* @param {DateOperation} timeRange - The time range for the chart,
|
|
9
|
+
* specified as "Year", "Month", "Week" or "Day".
|
|
9
10
|
* @param {Array<{ date: Date; value: number | null }> | Record<string, number>} values -
|
|
10
11
|
* This can be an array of objects with 'date' and 'value' properties,
|
|
11
12
|
* or a record (object) with date-value pairs.
|
|
@@ -31,7 +32,8 @@ export default class ResultBuilder {
|
|
|
31
32
|
* Add a MultipleTimeBasedChart based on a time range,
|
|
32
33
|
* an array of dates, and multiple lines of data.
|
|
33
34
|
*
|
|
34
|
-
* @param {DateOperation} timeRange - The time range for the chart,
|
|
35
|
+
* @param {DateOperation} timeRange - The time range for the chart,
|
|
36
|
+
* specified as "Year", "Month", "Week" or "Day".
|
|
35
37
|
* @param {Date[]} dates - An array of dates that define the x-axis values for the chart.
|
|
36
38
|
* @param {Array<{ label: string; values: Array<number | null> }>} lines - An array of lines,
|
|
37
39
|
* each containing a label and an array of numeric data values (or null)
|
|
@@ -10,7 +10,8 @@ class ResultBuilder {
|
|
|
10
10
|
}
|
|
11
11
|
/**
|
|
12
12
|
* Add a TimeBasedChart based on a time range and a set of values.
|
|
13
|
-
* @param {DateOperation} timeRange - The time range for the chart,
|
|
13
|
+
* @param {DateOperation} timeRange - The time range for the chart,
|
|
14
|
+
* specified as "Year", "Month", "Week" or "Day".
|
|
14
15
|
* @param {Array<{ date: Date; value: number | null }> | Record<string, number>} values -
|
|
15
16
|
* This can be an array of objects with 'date' and 'value' properties,
|
|
16
17
|
* or a record (object) with date-value pairs.
|
|
@@ -31,19 +32,21 @@ class ResultBuilder {
|
|
|
31
32
|
timeBased(timeRange, values) {
|
|
32
33
|
if (!values)
|
|
33
34
|
return [];
|
|
34
|
-
if (Array.isArray(values))
|
|
35
|
+
if (Array.isArray(values)) {
|
|
35
36
|
return ResultBuilder.buildTimeBasedChartResult(timeRange, values);
|
|
36
|
-
|
|
37
|
-
Object.entries(values).
|
|
38
|
-
|
|
39
|
-
|
|
37
|
+
}
|
|
38
|
+
const formattedValues = Object.entries(values).map(([stringDate, value]) => ({
|
|
39
|
+
date: new Date(stringDate),
|
|
40
|
+
value,
|
|
41
|
+
}));
|
|
40
42
|
return ResultBuilder.buildTimeBasedChartResult(timeRange, formattedValues);
|
|
41
43
|
}
|
|
42
44
|
/**
|
|
43
45
|
* Add a MultipleTimeBasedChart based on a time range,
|
|
44
46
|
* an array of dates, and multiple lines of data.
|
|
45
47
|
*
|
|
46
|
-
* @param {DateOperation} timeRange - The time range for the chart,
|
|
48
|
+
* @param {DateOperation} timeRange - The time range for the chart,
|
|
49
|
+
* specified as "Year", "Month", "Week" or "Day".
|
|
47
50
|
* @param {Date[]} dates - An array of dates that define the x-axis values for the chart.
|
|
48
51
|
* @param {Array<{ label: string; values: Array<number | null> }>} lines - An array of lines,
|
|
49
52
|
* each containing a label and an array of numeric data values (or null)
|
|
@@ -82,7 +85,7 @@ class ResultBuilder {
|
|
|
82
85
|
});
|
|
83
86
|
return {
|
|
84
87
|
labels: formattedTimes,
|
|
85
|
-
values: formattedTimes
|
|
88
|
+
values: formattedTimes?.length > 0 ? formattedLine : null,
|
|
86
89
|
};
|
|
87
90
|
}
|
|
88
91
|
percentage(value) {
|
|
@@ -116,10 +119,10 @@ class ResultBuilder {
|
|
|
116
119
|
static buildTimeBasedChartResult(timeRange, points) {
|
|
117
120
|
if (!points.length)
|
|
118
121
|
return [];
|
|
119
|
-
const pointsInDateTime =
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
});
|
|
122
|
+
const pointsInDateTime = points.map(point => ({
|
|
123
|
+
date: luxon_1.DateTime.fromJSDate(point.date),
|
|
124
|
+
value: point.value,
|
|
125
|
+
}));
|
|
123
126
|
const format = ResultBuilder.formats[timeRange];
|
|
124
127
|
const formatted = {};
|
|
125
128
|
pointsInDateTime.forEach(point => {
|
|
@@ -135,7 +138,7 @@ class ResultBuilder {
|
|
|
135
138
|
const last = dates[dates.length - 1];
|
|
136
139
|
for (let current = first; current <= last; current = current.plus({ [timeRange]: 1 })) {
|
|
137
140
|
const label = current.toFormat(format);
|
|
138
|
-
dataPoints.push({ label, values: { value: formatted[label] ??
|
|
141
|
+
dataPoints.push({ label, values: { value: formatted[label] ?? 0 } });
|
|
139
142
|
}
|
|
140
143
|
return dataPoints;
|
|
141
144
|
}
|
|
@@ -147,4 +150,4 @@ ResultBuilder.formats = {
|
|
|
147
150
|
Month: 'MMM yy',
|
|
148
151
|
Year: 'yyyy',
|
|
149
152
|
};
|
|
150
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
153
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzdWx0LWJ1aWxkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZGVjb3JhdG9ycy9jaGFydC9yZXN1bHQtYnVpbGRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQVdBLGlDQUErQztBQUUvQyxNQUFxQixhQUFhO0lBUWhDLEtBQUssQ0FBQyxLQUFhLEVBQUUsYUFBc0I7UUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsYUFBYSxFQUFFLGFBQWEsRUFBRSxDQUFDO0lBQy9ELENBQUM7SUFFRCxZQUFZLENBQUMsR0FBMkI7UUFDdEMsT0FBTyxNQUFNLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztJQUNyRSxDQUFDO0lBRUQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O09Bb0JHO0lBQ0gsU0FBUyxDQUNQLFNBQXdCLEVBQ3hCLE1BQW1GO1FBRW5GLElBQUksQ0FBQyxNQUFNO1lBQUUsT0FBTyxFQUFFLENBQUM7UUFFdkIsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ3pCLE9BQU8sYUFBYSxDQUFDLHlCQUF5QixDQUFDLFNBQVMsRUFBRSxNQUFNLENBQUMsQ0FBQztTQUNuRTtRQUVELE1BQU0sZUFBZSxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxVQUFVLEVBQUUsS0FBSyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDM0UsSUFBSSxFQUFFLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQztZQUMxQixLQUFLO1NBQ04sQ0FBQyxDQUFDLENBQUM7UUFFSixPQUFPLGFBQWEsQ0FBQyx5QkFBeUIsQ0FBQyxTQUFTLEVBQUUsZUFB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
|