raain-ui 2.3.6 → 2.3.8
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/CHANGELOG.md +71 -0
- package/README.md +197 -10
- package/data/globe.css +167 -0
- package/factories/DateStatusElement.d.ts +52 -52
- package/factories/DateStatusElement.js +167 -297
- package/factories/DateStatusUtils.d.ts +66 -0
- package/factories/DateStatusUtils.js +257 -0
- package/factories/DynamicDateStatusElement.d.ts +49 -0
- package/factories/DynamicDateStatusElement.js +143 -0
- package/factories/EarthMapElement.d.ts +20 -0
- package/factories/EarthMapElement.js +61 -0
- package/factories/ElementsFactory.d.ts +4 -0
- package/factories/ElementsFactory.js +13 -1
- package/factories/Tools.js +6 -6
- package/factories/index.d.ts +2 -0
- package/factories/index.js +3 -1
- package/globe/basic-style-geojson.d.ts +1327 -0
- package/globe/basic-style-geojson.js +1035 -0
- package/globe/dom.d.ts +2 -0
- package/globe/dom.js +17 -0
- package/globe/infobox.d.ts +11 -0
- package/globe/infobox.js +44 -0
- package/globe/main.d.ts +5 -0
- package/globe/main.js +88 -0
- package/globe/map.d.ts +1 -0
- package/globe/map.js +78 -0
- package/globe/markers.d.ts +13 -0
- package/globe/markers.js +52 -0
- package/globe/params.d.ts +18 -0
- package/globe/params.js +41 -0
- package/globe/reproject.d.ts +4 -0
- package/globe/reproject.js +56 -0
- package/globe/tooltip.d.ts +3 -0
- package/globe/tooltip.js +34 -0
- package/package.json +27 -14
- package/RELEASE.md +0 -10
|
@@ -8,206 +8,168 @@ const auto_1 = __importDefault(require("chart.js/auto"));
|
|
|
8
8
|
const Tools_1 = require("./Tools");
|
|
9
9
|
const helpers_1 = require("chart.js/helpers");
|
|
10
10
|
const ChartColors_1 = require("./ChartColors");
|
|
11
|
+
const DateStatusUtils_1 = require("./DateStatusUtils");
|
|
11
12
|
class DateStatusElementInput {
|
|
12
|
-
constructor(setOfData = [], focusDate = new Date(), focusRange = Tools_1.DateRange.CENTURY) {
|
|
13
|
+
constructor(setOfData = [], focusDate = new Date(), focusRange = Tools_1.DateRange.CENTURY, chartMinValue, chartMaxValue) {
|
|
13
14
|
this.setOfData = setOfData;
|
|
14
15
|
this.focusDate = focusDate;
|
|
15
16
|
this.focusRange = focusRange;
|
|
17
|
+
this.chartMinValue = chartMinValue;
|
|
18
|
+
this.chartMaxValue = chartMaxValue;
|
|
16
19
|
}
|
|
17
20
|
}
|
|
18
21
|
exports.DateStatusElementInput = DateStatusElementInput;
|
|
19
22
|
class DateStatusElement {
|
|
20
23
|
constructor(addSomeDebugInfos = false) {
|
|
21
24
|
this.addSomeDebugInfos = addSomeDebugInfos;
|
|
22
|
-
this.
|
|
25
|
+
this.chartTitle = '';
|
|
26
|
+
this.focusReset = async () => {
|
|
23
27
|
};
|
|
24
|
-
this.focusPrevious = () => {
|
|
28
|
+
this.focusPrevious = async () => {
|
|
25
29
|
};
|
|
26
|
-
this.focusNext = () => {
|
|
30
|
+
this.focusNext = async () => {
|
|
27
31
|
};
|
|
28
32
|
}
|
|
29
|
-
|
|
30
|
-
return
|
|
31
|
-
.filter(e => {
|
|
32
|
-
let isIn = true;
|
|
33
|
-
if (isIn && focusRange >= Tools_1.DateRange.YEAR) {
|
|
34
|
-
isIn = e.date.getFullYear() === focusDate.getFullYear();
|
|
35
|
-
}
|
|
36
|
-
if (isIn && focusRange >= Tools_1.DateRange.MONTH) {
|
|
37
|
-
isIn = e.date.getMonth() === focusDate.getMonth();
|
|
38
|
-
}
|
|
39
|
-
if (isIn && focusRange >= Tools_1.DateRange.DAY) {
|
|
40
|
-
isIn = e.date.getDate() === focusDate.getDate();
|
|
41
|
-
}
|
|
42
|
-
if (isIn && focusRange >= Tools_1.DateRange.HOUR) {
|
|
43
|
-
isIn = e.date.getHours() === focusDate.getHours();
|
|
44
|
-
}
|
|
45
|
-
if (isIn && focusRange >= Tools_1.DateRange.MINUTE) {
|
|
46
|
-
isIn = e.date.getMinutes() === focusDate.getMinutes();
|
|
47
|
-
}
|
|
48
|
-
return isIn;
|
|
49
|
-
})
|
|
50
|
-
.sort((a, b) => a.date.getTime() - b.date.getTime());
|
|
33
|
+
get setOfData() {
|
|
34
|
+
return this._setOfData;
|
|
51
35
|
}
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
if (focusRange === Tools_1.DateRange.CENTURY) {
|
|
55
|
-
const groupedByYear = [];
|
|
56
|
-
for (let i = min.getFullYear(); i <= max.getFullYear(); i++) {
|
|
57
|
-
const yearDate = new Date(focusDate);
|
|
58
|
-
yearDate.setFullYear(i);
|
|
59
|
-
const sum = DateStatusElement.filterFocus(filteredAndSorted, yearDate, Tools_1.DateRange.YEAR)
|
|
60
|
-
.reduce((partialSum, a) => partialSum + a.value, 0);
|
|
61
|
-
groupedByYear.push(sum);
|
|
62
|
-
}
|
|
63
|
-
return groupedByYear;
|
|
64
|
-
}
|
|
65
|
-
if (focusRange === Tools_1.DateRange.YEAR) {
|
|
66
|
-
const groupedByMonth = [];
|
|
67
|
-
for (let i = 0; i < 12; i++) {
|
|
68
|
-
const monthDate = new Date(focusDate);
|
|
69
|
-
monthDate.setMonth(i);
|
|
70
|
-
const sum = DateStatusElement.filterFocus(filteredAndSorted, monthDate, Tools_1.DateRange.MONTH)
|
|
71
|
-
.reduce((partialSum, a) => partialSum + a.value, 0);
|
|
72
|
-
groupedByMonth.push(sum);
|
|
73
|
-
}
|
|
74
|
-
return groupedByMonth;
|
|
75
|
-
}
|
|
76
|
-
if (focusRange === Tools_1.DateRange.MONTH) {
|
|
77
|
-
const groupedByDay = [];
|
|
78
|
-
const daysInMonth = new Date(focusDate.getFullYear(), focusDate.getMonth(), 0).getDate();
|
|
79
|
-
for (let i = 0; i < daysInMonth; i++) {
|
|
80
|
-
const dayDate = new Date(focusDate);
|
|
81
|
-
dayDate.setDate(i);
|
|
82
|
-
const sum = DateStatusElement.filterFocus(filteredAndSorted, dayDate, Tools_1.DateRange.DAY)
|
|
83
|
-
.reduce((partialSum, a) => partialSum + a.value, 0);
|
|
84
|
-
groupedByDay.push(sum);
|
|
85
|
-
}
|
|
86
|
-
return groupedByDay;
|
|
87
|
-
}
|
|
88
|
-
if (focusRange === Tools_1.DateRange.DAY) {
|
|
89
|
-
const groupedByHour = [];
|
|
90
|
-
for (let i = 0; i < 24; i++) {
|
|
91
|
-
const hourDate = new Date(focusDate);
|
|
92
|
-
hourDate.setHours(i);
|
|
93
|
-
const sum = DateStatusElement.filterFocus(filteredAndSorted, hourDate, Tools_1.DateRange.HOUR)
|
|
94
|
-
.reduce((partialSum, a) => partialSum + a.value, 0);
|
|
95
|
-
groupedByHour.push(sum);
|
|
96
|
-
}
|
|
97
|
-
return groupedByHour;
|
|
98
|
-
}
|
|
99
|
-
if (focusRange === Tools_1.DateRange.HOUR) {
|
|
100
|
-
const groupedByMinutes = [];
|
|
101
|
-
for (let i = 0; i < 60; i++) {
|
|
102
|
-
const minuteDate = new Date(focusDate);
|
|
103
|
-
minuteDate.setMinutes(i);
|
|
104
|
-
const sum = DateStatusElement.filterFocus(filteredAndSorted, minuteDate, Tools_1.DateRange.MINUTE)
|
|
105
|
-
.reduce((partialSum, a) => partialSum + a.value, 0);
|
|
106
|
-
groupedByMinutes.push(sum);
|
|
107
|
-
}
|
|
108
|
-
return groupedByMinutes;
|
|
109
|
-
}
|
|
110
|
-
return filteredAndSorted.map(e => e.value);
|
|
36
|
+
set setOfData(value) {
|
|
37
|
+
this._setOfData = value;
|
|
111
38
|
}
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
const groupedByYear = [];
|
|
115
|
-
for (let i = min.getFullYear(); i <= max.getFullYear(); i++) {
|
|
116
|
-
groupedByYear.push(DateStatusElement.buildLabelYear(new Date(focusDate), i));
|
|
117
|
-
}
|
|
118
|
-
return groupedByYear;
|
|
119
|
-
}
|
|
120
|
-
else if (focusRange === Tools_1.DateRange.YEAR) {
|
|
121
|
-
const groupedByMonth = [];
|
|
122
|
-
for (let i = 0; i < 12; i++) {
|
|
123
|
-
groupedByMonth.push(DateStatusElement.buildLabelMonth(new Date(focusDate), i));
|
|
124
|
-
}
|
|
125
|
-
return groupedByMonth;
|
|
126
|
-
}
|
|
127
|
-
else if (focusRange === Tools_1.DateRange.MONTH) {
|
|
128
|
-
const groupedByDay = [];
|
|
129
|
-
const daysInMonth = new Date(focusDate.getFullYear(), focusDate.getMonth(), 0).getDate();
|
|
130
|
-
for (let i = 0; i < daysInMonth; i++) {
|
|
131
|
-
groupedByDay.push(DateStatusElement.buildLabelDay(new Date(focusDate), i));
|
|
132
|
-
}
|
|
133
|
-
return groupedByDay;
|
|
134
|
-
}
|
|
135
|
-
else if (focusRange === Tools_1.DateRange.DAY) {
|
|
136
|
-
const groupedByHour = [];
|
|
137
|
-
for (let i = 0; i < 24; i++) {
|
|
138
|
-
groupedByHour.push(DateStatusElement.buildLabelHour(new Date(focusDate), i));
|
|
139
|
-
}
|
|
140
|
-
return groupedByHour;
|
|
141
|
-
}
|
|
142
|
-
else if (focusRange === Tools_1.DateRange.HOUR) {
|
|
143
|
-
const groupedByMinutes = [];
|
|
144
|
-
for (let i = 0; i < 60; i++) {
|
|
145
|
-
groupedByMinutes.push(DateStatusElement.buildLabelMinute(new Date(focusDate), i));
|
|
146
|
-
}
|
|
147
|
-
return groupedByMinutes;
|
|
148
|
-
}
|
|
149
|
-
// all elements that are in the current minute
|
|
150
|
-
let allDates = [];
|
|
151
|
-
data.forEach(d => {
|
|
152
|
-
allDates = allDates.concat(d.values);
|
|
153
|
-
});
|
|
154
|
-
const filteredDates = DateStatusElement.filterFocus(allDates, focusDate, Tools_1.DateRange.MINUTE);
|
|
155
|
-
const filteredDatesISO = filteredDates
|
|
156
|
-
.map(v => DateStatusElement.buildLabel(v.date));
|
|
157
|
-
return filteredDatesISO.filter((item, pos, self) => {
|
|
158
|
-
return self.indexOf(item) === pos;
|
|
159
|
-
});
|
|
39
|
+
get originalDataPoints() {
|
|
40
|
+
return this._originalDataPoints;
|
|
160
41
|
}
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
if (focusRange === Tools_1.DateRange.YEAR) {
|
|
165
|
-
newTitle = DateStatusElement.buildLabelYear(newFocusDate, min.getFullYear() + index);
|
|
166
|
-
}
|
|
167
|
-
else if (focusRange === Tools_1.DateRange.MONTH) {
|
|
168
|
-
newTitle = DateStatusElement.buildLabelMonth(newFocusDate, index);
|
|
169
|
-
}
|
|
170
|
-
else if (focusRange === Tools_1.DateRange.DAY) {
|
|
171
|
-
newTitle = DateStatusElement.buildLabelDay(newFocusDate, index);
|
|
172
|
-
}
|
|
173
|
-
else if (focusRange === Tools_1.DateRange.HOUR) {
|
|
174
|
-
newTitle = DateStatusElement.buildLabelHour(newFocusDate, index);
|
|
42
|
+
build(element, inputs) {
|
|
43
|
+
if (inputs.setOfData.length > 7) {
|
|
44
|
+
throw new Error('DateStatusElement: too many data to display');
|
|
175
45
|
}
|
|
176
|
-
|
|
177
|
-
|
|
46
|
+
this.setOfData = inputs.setOfData;
|
|
47
|
+
this.chartMinValue = inputs.chartMinValue;
|
|
48
|
+
this.chartMaxValue = inputs.chartMaxValue;
|
|
49
|
+
const datasets = this.buildDateTimeSeries(inputs.focusDate, inputs.focusRange);
|
|
50
|
+
const data = {
|
|
51
|
+
datasets,
|
|
52
|
+
labels: DateStatusUtils_1.DateStatusUtils.focusLabels(inputs.focusDate, inputs.focusRange, this.minDate, this.maxDate, this.setOfData)
|
|
53
|
+
};
|
|
54
|
+
const config = this.createChartConfig(data);
|
|
55
|
+
this.initializeChart(element, config, inputs);
|
|
56
|
+
this.setupFocusHandlers(inputs);
|
|
57
|
+
}
|
|
58
|
+
getFocusPosRelative(event, chart_) {
|
|
59
|
+
const canvasPosition = (0, helpers_1.getRelativePosition)(event[0], chart_);
|
|
60
|
+
return chart_.scales.x.getValueForPixel(canvasPosition.x);
|
|
61
|
+
}
|
|
62
|
+
updateChartTitle(title) {
|
|
63
|
+
this.chartTitle = '' + title;
|
|
64
|
+
if (this.chart && this.chart.config && this.chart.config['_config']) {
|
|
65
|
+
this.chart.config['_config'].options.plugins.title.text = this.chartTitle;
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
createChartConfig(data) {
|
|
69
|
+
const options = {
|
|
70
|
+
responsive: true,
|
|
71
|
+
maintainAspectRatio: false,
|
|
72
|
+
plugins: {
|
|
73
|
+
title: {
|
|
74
|
+
display: true,
|
|
75
|
+
text: ' '
|
|
76
|
+
}
|
|
77
|
+
},
|
|
78
|
+
onClick: (...args) => {
|
|
79
|
+
return this.focusClick(args);
|
|
80
|
+
},
|
|
81
|
+
scales: {
|
|
82
|
+
x: {},
|
|
83
|
+
y: {}
|
|
84
|
+
}
|
|
85
|
+
};
|
|
86
|
+
// Add min/max configuration if chartMinValue or chartMaxValue is provided
|
|
87
|
+
if (this.chartMinValue !== undefined || this.chartMaxValue !== undefined) {
|
|
88
|
+
options.scales.y.min = this.chartMinValue;
|
|
89
|
+
options.scales.y.max = this.chartMaxValue;
|
|
178
90
|
}
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
// "2024-03-28 13:02:48 CET" l=23
|
|
184
|
-
return Tools_1.Tools.formatDate(date, Tools_1.DateRange.MINUTE);
|
|
91
|
+
return {
|
|
92
|
+
data,
|
|
93
|
+
options
|
|
94
|
+
};
|
|
185
95
|
}
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
96
|
+
initializeChart(element, config, inputs) {
|
|
97
|
+
this.chart = new auto_1.default(element, config);
|
|
98
|
+
this.focusPos = this.getInitialFocusPos(inputs.focusDate, inputs.focusRange, this.minDate);
|
|
99
|
+
this.focusDate = inputs.focusDate;
|
|
100
|
+
this.focusRange = inputs.focusRange;
|
|
101
|
+
this.updateChartTitle(' ');
|
|
102
|
+
}
|
|
103
|
+
setupFocusHandlers(inputs) {
|
|
104
|
+
this.setupFocusClickHandler();
|
|
105
|
+
this.setupFocusResetHandler(inputs);
|
|
106
|
+
this.setupFocusNavigationHandlers();
|
|
107
|
+
}
|
|
108
|
+
setupFocusClickHandler() {
|
|
109
|
+
this.focusClick = async (e) => {
|
|
110
|
+
if (this.focusRange >= Tools_1.DateRange.HOUR) {
|
|
111
|
+
return;
|
|
112
|
+
}
|
|
113
|
+
const focusPos = this.getFocusPosRelative(e, this.chart);
|
|
114
|
+
const { newFocusDate, newTitle } = DateStatusUtils_1.DateStatusUtils.getFocusDateAndTitle(this.focusDate, this.focusRange + 1, focusPos, this.minDate, this.maxDate);
|
|
115
|
+
this.focusRange++;
|
|
116
|
+
this.focusPos = focusPos;
|
|
117
|
+
this.focusDate = new Date(newFocusDate);
|
|
118
|
+
this.updateChartTitle(newTitle);
|
|
119
|
+
this.updateChartData();
|
|
120
|
+
};
|
|
189
121
|
}
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
122
|
+
setupFocusResetHandler(inputs) {
|
|
123
|
+
this.focusReset = async (dataPoints) => {
|
|
124
|
+
this.updateChartTitle(' ');
|
|
125
|
+
this.focusPos = 0;
|
|
126
|
+
this.focusDate = new Date(inputs.focusDate);
|
|
127
|
+
this.focusRange = inputs.focusRange;
|
|
128
|
+
this.chart.data.datasets.forEach((dataPoint, index) => {
|
|
129
|
+
dataPoint.data = this.originalDataPoints[index];
|
|
130
|
+
if (dataPoints) {
|
|
131
|
+
dataPoint.type = dataPoints[index].type;
|
|
132
|
+
dataPoint.borderColor = dataPoints[index].borderColor;
|
|
133
|
+
dataPoint.backgroundColor = dataPoints[index].backgroundColor;
|
|
134
|
+
dataPoint.label = dataPoints[index].label;
|
|
135
|
+
}
|
|
136
|
+
});
|
|
137
|
+
// Ensure we have valid min and max dates
|
|
138
|
+
if (this.minDate && this.maxDate) {
|
|
139
|
+
this.chart.data.labels = DateStatusUtils_1.DateStatusUtils.focusLabels(this.focusDate, this.focusRange, this.minDate, this.maxDate, this.setOfData);
|
|
140
|
+
}
|
|
141
|
+
this.chart.update();
|
|
142
|
+
};
|
|
193
143
|
}
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
144
|
+
setupFocusNavigationHandlers() {
|
|
145
|
+
this.focusNext = async () => {
|
|
146
|
+
const { pos, newFocusDate } = this.getFocusPosAdded(1);
|
|
147
|
+
this.updateChart(pos, newFocusDate);
|
|
148
|
+
};
|
|
149
|
+
this.focusPrevious = async () => {
|
|
150
|
+
const { pos, newFocusDate } = this.getFocusPosAdded(-1);
|
|
151
|
+
this.updateChart(pos, newFocusDate);
|
|
152
|
+
};
|
|
197
153
|
}
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
154
|
+
updateChartData() {
|
|
155
|
+
// Ensure we have valid min and max dates
|
|
156
|
+
if (!(this.minDate && this.maxDate)) {
|
|
157
|
+
return;
|
|
158
|
+
}
|
|
159
|
+
this.chart.data.datasets.forEach((dataset, index) => {
|
|
160
|
+
dataset.data = DateStatusUtils_1.DateStatusUtils.groupFocus(this.setOfData[index].values, this.focusDate, this.focusRange, this.minDate, this.maxDate);
|
|
161
|
+
});
|
|
162
|
+
this.chart.data.labels = DateStatusUtils_1.DateStatusUtils.focusLabels(this.focusDate, this.focusRange, this.minDate, this.maxDate, this.setOfData);
|
|
163
|
+
this.chart.update();
|
|
201
164
|
}
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
165
|
+
updateChart(eFocusPos, eFocusDate, eFocusRange = this.focusRange) {
|
|
166
|
+
const { newFocusDate, newTitle } = DateStatusUtils_1.DateStatusUtils.getFocusDateAndTitle(eFocusDate, eFocusRange, eFocusPos, this.minDate, this.maxDate);
|
|
167
|
+
this.focusPos = eFocusPos;
|
|
168
|
+
this.focusDate = new Date(newFocusDate);
|
|
169
|
+
this.updateChartTitle(newTitle);
|
|
170
|
+
this.updateChartData();
|
|
205
171
|
}
|
|
206
|
-
|
|
207
|
-
if (inputs.setOfData.length > 7) {
|
|
208
|
-
return null;
|
|
209
|
-
}
|
|
210
|
-
const datasets = [];
|
|
172
|
+
buildDateTimeSeries(focusDate, focusRange) {
|
|
211
173
|
const colors = [
|
|
212
174
|
Tools_1.Tools.getTransparency(ChartColors_1.ChartColors.blue, 0.5),
|
|
213
175
|
Tools_1.Tools.getTransparency(ChartColors_1.ChartColors.red, 0.5),
|
|
@@ -217,169 +179,77 @@ class DateStatusElement {
|
|
|
217
179
|
Tools_1.Tools.getTransparency(ChartColors_1.ChartColors.purple, 0.5),
|
|
218
180
|
Tools_1.Tools.getTransparency(ChartColors_1.ChartColors.yellow, 0.5),
|
|
219
181
|
];
|
|
220
|
-
const originalDataPoints = [];
|
|
221
182
|
let min, max;
|
|
222
|
-
|
|
183
|
+
this.setOfData.forEach(s => {
|
|
223
184
|
s.values.forEach(v => {
|
|
224
185
|
min = min ? Math.min(min, v.date.getTime()) : v.date.getTime();
|
|
225
186
|
max = max ? Math.max(max, v.date.getTime()) : v.date.getTime();
|
|
226
187
|
});
|
|
227
188
|
});
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
189
|
+
this.minDate = new Date(min);
|
|
190
|
+
this.maxDate = new Date(max);
|
|
191
|
+
const datasets = [];
|
|
192
|
+
const originalDataPoints = [];
|
|
193
|
+
for (const [index, dataContainer] of this.setOfData.entries()) {
|
|
231
194
|
const borderColor = colors[index];
|
|
232
|
-
const
|
|
195
|
+
const data = DateStatusUtils_1.DateStatusUtils.groupFocus(dataContainer.values, focusDate, focusRange, this.minDate, this.maxDate);
|
|
233
196
|
datasets.push({
|
|
234
197
|
label: dataContainer.label,
|
|
235
198
|
type: dataContainer.style,
|
|
236
|
-
data
|
|
199
|
+
data,
|
|
237
200
|
borderColor,
|
|
238
201
|
backgroundColor: borderColor,
|
|
239
202
|
});
|
|
240
|
-
originalDataPoints.push(
|
|
203
|
+
originalDataPoints.push(data);
|
|
241
204
|
}
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
labels: DateStatusElement.focusLabels(inputs.focusDate, inputs.focusRange, min, max, inputs.setOfData)
|
|
245
|
-
};
|
|
246
|
-
this.focusClick = (e) => {
|
|
247
|
-
const eChart = (e === null || e === void 0 ? void 0 : e.chart) ? e.chart : chart;
|
|
248
|
-
const eFocusRange = eChart['focusRange'] + 1;
|
|
249
|
-
const focusPos = this.getFocusPosRelative(e, eChart);
|
|
250
|
-
const { newFocusDate, newTitle } = DateStatusElement.getFocusDateAndTitle(eChart['focusDate'], eFocusRange, focusPos, eChart['focusDateMin'], eChart['focusDateMax']);
|
|
251
|
-
eChart['focusPos'] = focusPos;
|
|
252
|
-
eChart['focusRange'] = eFocusRange;
|
|
253
|
-
eChart['focusDate'] = new Date(newFocusDate);
|
|
254
|
-
eChart.config['_config'].options.plugins.title.text = '' + newTitle;
|
|
255
|
-
eChart.data.datasets.forEach((dataset, index) => {
|
|
256
|
-
dataset.data = DateStatusElement.groupFocus(inputs.setOfData[index].values, eChart['focusDate'], eChart['focusRange'], eChart['focusDateMin'], eChart['focusDateMax']);
|
|
257
|
-
});
|
|
258
|
-
eChart.data.labels = DateStatusElement.focusLabels(eChart['focusDate'], eChart['focusRange'], eChart['focusDateMin'], eChart['focusDateMax'], inputs.setOfData);
|
|
259
|
-
eChart.update();
|
|
260
|
-
};
|
|
261
|
-
const config = {
|
|
262
|
-
data,
|
|
263
|
-
options: {
|
|
264
|
-
responsive: true,
|
|
265
|
-
maintainAspectRatio: false,
|
|
266
|
-
plugins: {
|
|
267
|
-
legend: {
|
|
268
|
-
// display: false,
|
|
269
|
-
},
|
|
270
|
-
tooltip: {
|
|
271
|
-
callbacks: {
|
|
272
|
-
label: (context) => {
|
|
273
|
-
// if (context.dataset.type === 'bubble') {
|
|
274
|
-
// return new Date(context.parsed.x).toISOString() + ': '
|
|
275
|
-
// + context.parsed.y + ' , ' + context.parsed._custom;
|
|
276
|
-
// }
|
|
277
|
-
}
|
|
278
|
-
}
|
|
279
|
-
},
|
|
280
|
-
title: {
|
|
281
|
-
display: true,
|
|
282
|
-
text: ' '
|
|
283
|
-
}
|
|
284
|
-
},
|
|
285
|
-
// scales: {
|
|
286
|
-
// x: {
|
|
287
|
-
// ticks: {
|
|
288
|
-
// callback: labelCallBack,
|
|
289
|
-
// }
|
|
290
|
-
// }
|
|
291
|
-
// },
|
|
292
|
-
onClick: this.focusClick
|
|
293
|
-
},
|
|
294
|
-
};
|
|
295
|
-
const chart = new auto_1.default(element, config);
|
|
296
|
-
chart['focusPos'] = this.getInitialFocusPos(inputs.focusDate, inputs.focusRange, min);
|
|
297
|
-
chart['focusDate'] = inputs.focusDate;
|
|
298
|
-
chart['focusRange'] = inputs.focusRange;
|
|
299
|
-
chart['focusDateMin'] = min;
|
|
300
|
-
chart['focusDateMax'] = max;
|
|
301
|
-
this.focusReset = () => {
|
|
302
|
-
chart.config['_config'].options.plugins.title.text = '...';
|
|
303
|
-
chart['focusPos'] = 0;
|
|
304
|
-
chart['focusDate'] = inputs.focusDate;
|
|
305
|
-
chart['focusRange'] = Tools_1.DateRange.CENTURY;
|
|
306
|
-
chart.data.datasets.forEach((dataset, index) => {
|
|
307
|
-
dataset.data = originalDataPoints[index];
|
|
308
|
-
});
|
|
309
|
-
chart.data.labels = DateStatusElement.focusLabels(chart['focusDate'], chart['focusRange'], chart['focusDateMin'], chart['focusDateMax'], inputs.setOfData);
|
|
310
|
-
chart.update();
|
|
311
|
-
};
|
|
312
|
-
const chartUpdate = (chartToUpdate, eFocusRange, eFocusPos, eFocusDate) => {
|
|
313
|
-
const { newFocusDate, newTitle } = DateStatusElement.getFocusDateAndTitle(eFocusDate, eFocusRange, eFocusPos, chartToUpdate['focusDateMin'], chartToUpdate['focusDateMax']);
|
|
314
|
-
chartToUpdate['focusPos'] = eFocusPos;
|
|
315
|
-
chartToUpdate['focusDate'] = new Date(newFocusDate);
|
|
316
|
-
chartToUpdate.config['_config'].options.plugins.title.text = '' + newTitle;
|
|
317
|
-
chartToUpdate.data.datasets.forEach((dataset, index) => {
|
|
318
|
-
dataset.data = DateStatusElement.groupFocus(inputs.setOfData[index].values, chartToUpdate['focusDate'], chartToUpdate['focusRange'], chartToUpdate['focusDateMin'], chartToUpdate['focusDateMax']);
|
|
319
|
-
});
|
|
320
|
-
chartToUpdate.data.labels = DateStatusElement.focusLabels(chartToUpdate['focusDate'], chartToUpdate['focusRange'], chartToUpdate['focusDateMin'], chartToUpdate['focusDateMax'], inputs.setOfData);
|
|
321
|
-
chartToUpdate.update();
|
|
322
|
-
};
|
|
323
|
-
this.focusNext = () => {
|
|
324
|
-
const eFocusRange = chart['focusRange'];
|
|
325
|
-
const { pos, newFocusDate } = this.getFocusPosAdded(chart, eFocusRange, 1, chart['focusDate'], min);
|
|
326
|
-
chartUpdate(chart, eFocusRange, pos, newFocusDate);
|
|
327
|
-
};
|
|
328
|
-
this.focusPrevious = () => {
|
|
329
|
-
const eFocusRange = chart['focusRange'];
|
|
330
|
-
const { pos, newFocusDate } = this.getFocusPosAdded(chart, eFocusRange, -1, chart['focusDate'], min);
|
|
331
|
-
chartUpdate(chart, eFocusRange, pos, newFocusDate);
|
|
332
|
-
};
|
|
333
|
-
this.chart = chart;
|
|
334
|
-
}
|
|
335
|
-
getFocusPosRelative(event, chart) {
|
|
336
|
-
const canvasPosition = (0, helpers_1.getRelativePosition)(event, chart);
|
|
337
|
-
return chart.scales.x.getValueForPixel(canvasPosition.x);
|
|
205
|
+
this._originalDataPoints = originalDataPoints;
|
|
206
|
+
return datasets;
|
|
338
207
|
}
|
|
339
208
|
getInitialFocusPos(focusDate, focusRange, min) {
|
|
340
209
|
let pos = 0;
|
|
341
210
|
if (focusRange === Tools_1.DateRange.YEAR) {
|
|
342
|
-
pos = focusDate.
|
|
211
|
+
pos = focusDate.getUTCFullYear() - min.getUTCFullYear();
|
|
343
212
|
}
|
|
344
213
|
else if (focusRange === Tools_1.DateRange.MONTH) {
|
|
345
|
-
pos = focusDate.
|
|
214
|
+
pos = focusDate.getUTCMonth();
|
|
346
215
|
}
|
|
347
216
|
else if (focusRange === Tools_1.DateRange.DAY) {
|
|
348
|
-
pos = focusDate.
|
|
217
|
+
pos = focusDate.getUTCDate() - 1;
|
|
349
218
|
}
|
|
350
219
|
else if (focusRange === Tools_1.DateRange.HOUR) {
|
|
351
|
-
pos = focusDate.
|
|
220
|
+
pos = focusDate.getUTCHours();
|
|
352
221
|
}
|
|
353
222
|
else if (focusRange === Tools_1.DateRange.MINUTE) {
|
|
354
|
-
pos = focusDate.
|
|
223
|
+
pos = focusDate.getUTCMinutes();
|
|
355
224
|
}
|
|
356
225
|
return pos;
|
|
357
226
|
}
|
|
358
|
-
getFocusPosAdded(
|
|
359
|
-
let pos =
|
|
227
|
+
getFocusPosAdded(toAdd, focusDate = this.focusDate, focusRange = this.focusRange) {
|
|
228
|
+
let pos = this.focusPos || 0;
|
|
360
229
|
const newFocusDate = new Date(focusDate);
|
|
230
|
+
const min = this.minDate;
|
|
361
231
|
if (focusRange === Tools_1.DateRange.YEAR) {
|
|
362
|
-
newFocusDate.
|
|
363
|
-
pos = newFocusDate.
|
|
232
|
+
newFocusDate.setUTCFullYear(focusDate.getUTCFullYear() + toAdd);
|
|
233
|
+
pos = newFocusDate.getUTCFullYear() - min.getUTCFullYear();
|
|
364
234
|
}
|
|
365
235
|
else if (focusRange === Tools_1.DateRange.MONTH) {
|
|
366
|
-
newFocusDate.
|
|
367
|
-
pos = newFocusDate.
|
|
236
|
+
newFocusDate.setUTCMonth(focusDate.getUTCMonth() + toAdd);
|
|
237
|
+
pos = newFocusDate.getUTCMonth();
|
|
368
238
|
}
|
|
369
239
|
else if (focusRange === Tools_1.DateRange.DAY) {
|
|
370
|
-
newFocusDate.
|
|
371
|
-
pos = newFocusDate.
|
|
240
|
+
newFocusDate.setUTCDate(focusDate.getUTCDate() + toAdd);
|
|
241
|
+
pos = newFocusDate.getUTCDate() - 1;
|
|
372
242
|
}
|
|
373
243
|
else if (focusRange === Tools_1.DateRange.HOUR) {
|
|
374
|
-
newFocusDate.
|
|
375
|
-
pos = newFocusDate.
|
|
244
|
+
newFocusDate.setUTCHours(focusDate.getUTCHours() + toAdd);
|
|
245
|
+
pos = newFocusDate.getUTCHours();
|
|
376
246
|
}
|
|
377
247
|
else if (focusRange === Tools_1.DateRange.MINUTE) {
|
|
378
|
-
newFocusDate.
|
|
379
|
-
pos = newFocusDate.
|
|
248
|
+
newFocusDate.setUTCMinutes(focusDate.getUTCMinutes() + toAdd);
|
|
249
|
+
pos = newFocusDate.getUTCMinutes();
|
|
380
250
|
}
|
|
381
251
|
return { pos, newFocusDate };
|
|
382
252
|
}
|
|
383
253
|
}
|
|
384
254
|
exports.DateStatusElement = DateStatusElement;
|
|
385
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGF0ZVN0YXR1c0VsZW1lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZmFjdG9yaWVzL0RhdGVTdGF0dXNFbGVtZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLHlEQUFrQztBQUNsQyxtQ0FBeUM7QUFDekMsOENBQXFEO0FBQ3JELCtDQUEwQztBQUUxQyxNQUFhLHNCQUFzQjtJQUMvQixZQUNXLFlBSUQsRUFBRSxFQUNELFlBQWtCLElBQUksSUFBSSxFQUFFLEVBQzVCLGFBQXdCLGlCQUFTLENBQUMsT0FBTztRQU56QyxjQUFTLEdBQVQsU0FBUyxDQUlSO1FBQ0QsY0FBUyxHQUFULFNBQVMsQ0FBbUI7UUFDNUIsZUFBVSxHQUFWLFVBQVUsQ0FBK0I7SUFFcEQsQ0FBQztDQUNKO0FBWEQsd0RBV0M7QUFFRCxNQUFhLGlCQUFpQjtJQVExQixZQUFzQixvQkFBb0IsS0FBSztRQUF6QixzQkFBaUIsR0FBakIsaUJBQWlCLENBQVE7UUFDM0MsSUFBSSxDQUFDLFVBQVUsR0FBRyxHQUFHLEVBQUU7UUFDdkIsQ0FBQyxDQUFDO1FBQ0YsSUFBSSxDQUFDLGFBQWEsR0FBRyxHQUFHLEVBQUU7UUFDMUIsQ0FBQyxDQUFDO1FBQ0YsSUFBSSxDQUFDLFNBQVMsR0FBRyxHQUFHLEVBQUU7UUFDdEIsQ0FBQyxDQUFDO0lBQ04sQ0FBQztJQUVTLE1BQU0sQ0FBQyxXQUFXLENBQUMsV0FBaUQsRUFBRSxTQUFlLEVBQUUsVUFBcUI7UUFJbEgsT0FBTyxXQUFXO2FBQ2IsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ1IsSUFBSSxJQUFJLEdBQUcsSUFBSSxDQUFDO1lBQ2hCLElBQUksSUFBSSxJQUFJLFVBQVUsSUFBSSxpQkFBUyxDQUFDLElBQUksRUFBRSxDQUFDO2dCQUN2QyxJQUFJLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsS0FBSyxTQUFTLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDNUQsQ0FB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
|
|
255
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGF0ZVN0YXR1c0VsZW1lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZmFjdG9yaWVzL0RhdGVTdGF0dXNFbGVtZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLHlEQUFrQztBQUNsQyxtQ0FBeUM7QUFDekMsOENBQXFEO0FBQ3JELCtDQUEwQztBQUMxQyx1REFBa0Q7QUFnQmxELE1BQWEsc0JBQXNCO0lBQy9CLFlBQ1csWUFBd0IsRUFBRSxFQUMxQixZQUFrQixJQUFJLElBQUksRUFBRSxFQUM1QixhQUF3QixpQkFBUyxDQUFDLE9BQU8sRUFDekMsYUFBc0IsRUFDdEIsYUFBc0I7UUFKdEIsY0FBUyxHQUFULFNBQVMsQ0FBaUI7UUFDMUIsY0FBUyxHQUFULFNBQVMsQ0FBbUI7UUFDNUIsZUFBVSxHQUFWLFVBQVUsQ0FBK0I7UUFDekMsa0JBQWEsR0FBYixhQUFhLENBQVM7UUFDdEIsa0JBQWEsR0FBYixhQUFhLENBQVM7SUFFakMsQ0FBQztDQUNKO0FBVEQsd0RBU0M7QUFFRCxNQUFhLGlCQUFpQjtJQWdCMUIsWUFBc0Isb0JBQW9CLEtBQUs7UUFBekIsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFRO1FBYnhDLGVBQVUsR0FBRyxFQUFFLENBQUM7UUFjbkIsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLElBQUksRUFBRTtRQUM3QixDQUFDLENBQUM7UUFDRixJQUFJLENBQUMsYUFBYSxHQUFHLEtBQUssSUFBSSxFQUFFO1FBQ2hDLENBQUMsQ0FBQztRQUNGLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxJQUFJLEVBQUU7UUFDNUIsQ0FBQyxDQUFDO0lBQ04sQ0FBQztJQUlELElBQWMsU0FBUztRQUNuQixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUM7SUFDM0IsQ0FBQztJQUVELElBQWMsU0FBUyxDQUFDLEtBQWlCO1FBQ3JDLElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO0lBQzVCLENBQUM7SUFJ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
|