raain-ui 1.11.42 → 1.11.52
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.
|
@@ -77,7 +77,10 @@ class ConfigurationElement {
|
|
|
77
77
|
// },
|
|
78
78
|
},
|
|
79
79
|
tooltip: {
|
|
80
|
-
enabled:
|
|
80
|
+
enabled: true,
|
|
81
|
+
filter: (t) => {
|
|
82
|
+
return t.datasetIndex === 0;
|
|
83
|
+
}
|
|
81
84
|
},
|
|
82
85
|
},
|
|
83
86
|
scales: {
|
|
@@ -91,13 +94,13 @@ class ConfigurationElement {
|
|
|
91
94
|
// type: 'logarithmic',
|
|
92
95
|
},
|
|
93
96
|
},
|
|
94
|
-
onClick(e) {
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
},
|
|
97
|
+
// onClick(e) {
|
|
98
|
+
// console.log('onClick ', e);
|
|
99
|
+
// const canvasPosition = Chart.helpers.getRelativePosition(e, chart);
|
|
100
|
+
// Substitute the appropriate scale IDs
|
|
101
|
+
// const dataX = chart.scales.x.getValueForPixel(canvasPosition.x);
|
|
102
|
+
// const dataY = chart.scales.y.getValueForPixel(canvasPosition.y);
|
|
103
|
+
// },
|
|
101
104
|
},
|
|
102
105
|
plugins: [chartjs_plugin_dragdata_1.default],
|
|
103
106
|
};
|
|
@@ -120,4 +123,4 @@ class ConfigurationElement {
|
|
|
120
123
|
}
|
|
121
124
|
}
|
|
122
125
|
exports.ConfigurationElement = ConfigurationElement;
|
|
123
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
126
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29uZmlndXJhdGlvbkVsZW1lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZmFjdG9yaWVzL0NvbmZpZ3VyYXRpb25FbGVtZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLHlEQUFrQztBQUNsQyxzRkFBb0Q7QUFDcEQsbUNBQTJDO0FBRTNDLE1BQWEseUJBQXlCO0lBQ2xDLFlBQ1csU0FBcUMsRUFBRSxFQUN2QyxXQUFxQyxFQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBQyxFQUNqRCxXQUFxQyxFQUFDLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBQyxFQUNyRCxZQUFrQjtRQUhsQixXQUFNLEdBQU4sTUFBTSxDQUFpQztRQUN2QyxhQUFRLEdBQVIsUUFBUSxDQUF5QztRQUNqRCxhQUFRLEdBQVIsUUFBUSxDQUE2QztRQUNyRCxpQkFBWSxHQUFaLFlBQVksQ0FBTTtJQUU3QixDQUFDO0NBQ0o7QUFSRCw4REFRQztBQUVELE1BQWEsb0JBQW9CO0lBSTdCLFlBQXNCLG9CQUFvQixLQUFLO1FBQXpCLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBUTtJQUMvQyxDQUFDO0lBRU0sS0FBSyxDQUFDLE9BQTBCLEVBQUUsTUFBaUM7UUFFdEUsTUFBTSxJQUFJLEdBQUc7WUFDVCxRQUFRLEVBQUU7Z0JBQ047b0JBQ0ksSUFBSSxFQUFFLFNBQVM7b0JBQ2YsSUFBSSxFQUFFLE1BQU0sQ0FBQyxNQUFNO29CQUNuQixXQUFXLEVBQUUsYUFBSyxDQUFDLGVBQWUsQ0FBQyxtQkFBVyxDQUFDLElBQUksRUFBRSxHQUFHLENBQUM7aUJBQzVEO2dCQUNEO29CQUNJLElBQUksRUFBRSxNQUFNO29CQUNaLElBQUksRUFBRSxNQUFNLENBQUMsTUFBTTtvQkFDbkIsV0FBVyxFQUFFLG1CQUFXLENBQUMsSUFBSTtvQkFDN0IsSUFBSSxFQUFFLEtBQUs7b0JBQ1gsT0FBTyxFQUFF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
|
|
@@ -1,13 +1,19 @@
|
|
|
1
1
|
import Chart from 'chart.js/auto';
|
|
2
2
|
export declare class MonitoringLinesElementInput {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
3
|
+
pointsLines: Array<{
|
|
4
|
+
label: string;
|
|
5
|
+
points: Array<{
|
|
6
|
+
date: Date;
|
|
7
|
+
percentage: number;
|
|
8
|
+
}>;
|
|
6
9
|
}>;
|
|
7
10
|
limit: number;
|
|
8
|
-
constructor(
|
|
9
|
-
|
|
10
|
-
|
|
11
|
+
constructor(pointsLines?: Array<{
|
|
12
|
+
label: string;
|
|
13
|
+
points: Array<{
|
|
14
|
+
date: Date;
|
|
15
|
+
percentage: number;
|
|
16
|
+
}>;
|
|
11
17
|
}>, limit?: number);
|
|
12
18
|
}
|
|
13
19
|
export declare class MonitoringLinesElement {
|
|
@@ -16,5 +22,13 @@ export declare class MonitoringLinesElement {
|
|
|
16
22
|
limit: number;
|
|
17
23
|
constructor(addSomeDebugInfos?: boolean);
|
|
18
24
|
build(element: HTMLCanvasElement, inputs: MonitoringLinesElementInput): void;
|
|
19
|
-
add(
|
|
25
|
+
add(linesPoint: Array<{
|
|
26
|
+
percentage: number;
|
|
27
|
+
}>, date?: Date): Array<{
|
|
28
|
+
label: string;
|
|
29
|
+
points: Array<{
|
|
30
|
+
date: Date;
|
|
31
|
+
percentage: number;
|
|
32
|
+
}>;
|
|
33
|
+
}>;
|
|
20
34
|
}
|
|
@@ -7,8 +7,8 @@ exports.MonitoringLinesElement = exports.MonitoringLinesElementInput = void 0;
|
|
|
7
7
|
const auto_1 = __importDefault(require("chart.js/auto"));
|
|
8
8
|
const Tools_1 = require("./Tools");
|
|
9
9
|
class MonitoringLinesElementInput {
|
|
10
|
-
constructor(
|
|
11
|
-
this.
|
|
10
|
+
constructor(pointsLines = [], limit = 100) {
|
|
11
|
+
this.pointsLines = pointsLines;
|
|
12
12
|
this.limit = limit;
|
|
13
13
|
}
|
|
14
14
|
}
|
|
@@ -19,17 +19,24 @@ class MonitoringLinesElement {
|
|
|
19
19
|
}
|
|
20
20
|
build(element, inputs) {
|
|
21
21
|
this.limit = inputs.limit;
|
|
22
|
-
|
|
23
|
-
|
|
22
|
+
if (inputs.pointsLines.length === 0) {
|
|
23
|
+
throw new Error('No point lines found.');
|
|
24
|
+
}
|
|
25
|
+
const labels = inputs.pointsLines[0].points.map(b => b.date.toISOString());
|
|
26
|
+
const datasets = inputs.pointsLines.map((pl, index) => {
|
|
27
|
+
const data = pl.points.map(b => b.percentage);
|
|
28
|
+
return {
|
|
29
|
+
label: pl.label,
|
|
30
|
+
data,
|
|
31
|
+
borderColor: Tools_1.ChartColors[index],
|
|
32
|
+
tension: 0.1,
|
|
33
|
+
};
|
|
34
|
+
});
|
|
24
35
|
const config = {
|
|
25
36
|
type: 'line',
|
|
26
37
|
data: {
|
|
27
38
|
labels,
|
|
28
|
-
datasets
|
|
29
|
-
data,
|
|
30
|
-
borderColor: Tools_1.ChartColors.greenCpu,
|
|
31
|
-
tension: 0.1,
|
|
32
|
-
}]
|
|
39
|
+
datasets
|
|
33
40
|
},
|
|
34
41
|
options: {
|
|
35
42
|
responsive: true,
|
|
@@ -62,26 +69,38 @@ class MonitoringLinesElement {
|
|
|
62
69
|
},
|
|
63
70
|
plugins: {
|
|
64
71
|
legend: {
|
|
65
|
-
display:
|
|
72
|
+
display: true,
|
|
66
73
|
},
|
|
67
74
|
},
|
|
68
75
|
}
|
|
69
76
|
};
|
|
70
77
|
this.chart = new auto_1.default(element, config);
|
|
71
78
|
}
|
|
72
|
-
add(
|
|
79
|
+
add(linesPoint, date = new Date()) {
|
|
73
80
|
let allLabels = JSON.parse(JSON.stringify(this.chart.data.labels));
|
|
74
|
-
|
|
81
|
+
const allLinesPoints = this.chart.data.datasets;
|
|
75
82
|
if (allLabels.length >= this.limit) {
|
|
76
83
|
allLabels = allLabels.slice(1);
|
|
77
|
-
allPoints = allPoints.slice(1);
|
|
78
84
|
}
|
|
79
85
|
allLabels.push(date.toISOString());
|
|
80
|
-
|
|
86
|
+
allLinesPoints.forEach((line, index) => {
|
|
87
|
+
let allPoints = JSON.parse(JSON.stringify(line.data));
|
|
88
|
+
if (allLabels.length >= this.limit) {
|
|
89
|
+
allPoints = allPoints.slice(1);
|
|
90
|
+
}
|
|
91
|
+
allPoints.push(linesPoint[index].percentage);
|
|
92
|
+
line.data = allPoints;
|
|
93
|
+
});
|
|
81
94
|
this.chart.data.labels = allLabels;
|
|
82
|
-
this.chart.data.datasets[0].data = allPoints;
|
|
83
95
|
this.chart.update();
|
|
96
|
+
const result = allLinesPoints.map(line => {
|
|
97
|
+
const points = line.data.map((data, index) => {
|
|
98
|
+
return { date: new Date(allLabels[index]), percentage: data.data };
|
|
99
|
+
});
|
|
100
|
+
return { label: line.label, points };
|
|
101
|
+
});
|
|
102
|
+
return result;
|
|
84
103
|
}
|
|
85
104
|
}
|
|
86
105
|
exports.MonitoringLinesElement = MonitoringLinesElement;
|
|
87
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
106
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTW9uaXRvcmluZ0xpbmVzRWxlbWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9mYWN0b3JpZXMvTW9uaXRvcmluZ0xpbmVzRWxlbWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSx5REFBa0M7QUFDbEMsbUNBQW9DO0FBRXBDLE1BQWEsMkJBQTJCO0lBQ3BDLFlBQ1csY0FBMkYsRUFBRSxFQUM3RixRQUFRLEdBQUc7UUFEWCxnQkFBVyxHQUFYLFdBQVcsQ0FBa0Y7UUFDN0YsVUFBSyxHQUFMLEtBQUssQ0FBTTtJQUV0QixDQUFDO0NBQ0o7QUFORCxrRUFNQztBQUVELE1BQWEsc0JBQXNCO0lBSy9CLFlBQXNCLG9CQUFvQixLQUFLO1FBQXpCLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBUTtJQUMvQyxDQUFDO0lBRU0sS0FBSyxDQUFDLE9BQTBCLEVBQUUsTUFBbUM7UUFFeEUsSUFBSSxDQUFDLEtBQUssR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDO1FBQzFCLElBQUksTUFBTSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1lBQ2pDLE1BQU0sSUFBSSxLQUFLLENBQUMsdUJBQXVCLENBQUMsQ0FBQztTQUM1QztRQUVELE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztRQUMzRSxNQUFNLFFBQVEsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRTtZQUNsRCxNQUFNLElBQUksR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUM5QyxPQUFPO2dC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
|