@oneuptime/common 7.0.2989 → 7.0.2994

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.
Files changed (85) hide show
  1. package/Server/Infrastructure/Queue.ts +36 -1
  2. package/UI/Components/Charts/ChartGroup/ChartGroup.tsx +4 -17
  3. package/UI/Components/Charts/ChartLibrary/LineChart/LineChart.tsx +1005 -0
  4. package/UI/Components/Charts/ChartLibrary/Types/ChartDataPoint.ts +3 -0
  5. package/UI/Components/Charts/ChartLibrary/Utils/ChartColors.ts +117 -0
  6. package/UI/Components/Charts/ChartLibrary/Utils/Cx.ts +8 -0
  7. package/UI/Components/Charts/ChartLibrary/Utils/GetYAxisDomain.ts +15 -0
  8. package/UI/Components/Charts/ChartLibrary/Utils/HasOnlyOneValueForKey.ts +19 -0
  9. package/UI/Components/Charts/ChartLibrary/Utils/UseWindowOnResize.ts +17 -0
  10. package/UI/Components/Charts/Line/LineChart.tsx +58 -225
  11. package/UI/Components/Charts/Types/ChartCurve.ts +7 -0
  12. package/UI/Components/Charts/Types/DataPoint.ts +7 -0
  13. package/UI/Components/Charts/Types/SeriesPoint.ts +7 -0
  14. package/UI/Components/Charts/Types/SeriesPoints.ts +6 -0
  15. package/UI/Components/Charts/Types/XAxis/XAxis.ts +21 -0
  16. package/UI/Components/Charts/Types/XAxis/XAxisMaxMin.ts +3 -0
  17. package/UI/Components/Charts/Types/XAxis/XAxisPrecision.ts +26 -0
  18. package/UI/Components/Charts/Types/XAxis/XAxisType.ts +6 -0
  19. package/UI/Components/Charts/Types/XValue.ts +3 -0
  20. package/UI/Components/Charts/Types/YAxis/YAxis.ts +22 -0
  21. package/UI/Components/Charts/Types/YAxis/YAxisMaxMin.ts +3 -0
  22. package/UI/Components/Charts/Types/YAxis/YAxisType.ts +5 -0
  23. package/UI/Components/Charts/Types/YValue.ts +3 -0
  24. package/UI/Components/Charts/Utils/DataPoint.ts +188 -0
  25. package/UI/Components/Charts/Utils/XAxis.ts +267 -0
  26. package/build/dist/Server/Infrastructure/Queue.js +20 -1
  27. package/build/dist/Server/Infrastructure/Queue.js.map +1 -1
  28. package/build/dist/UI/Components/Charts/ChartGroup/ChartGroup.js +4 -9
  29. package/build/dist/UI/Components/Charts/ChartGroup/ChartGroup.js.map +1 -1
  30. package/build/dist/UI/Components/Charts/ChartLibrary/LineChart/LineChart.js +388 -0
  31. package/build/dist/UI/Components/Charts/ChartLibrary/LineChart/LineChart.js.map +1 -0
  32. package/build/dist/UI/Components/Charts/ChartLibrary/Types/ChartDataPoint.js +2 -0
  33. package/build/dist/UI/Components/Charts/ChartLibrary/Types/ChartDataPoint.js.map +1 -0
  34. package/build/dist/UI/Components/Charts/ChartLibrary/Utils/ChartColors.js +88 -0
  35. package/build/dist/UI/Components/Charts/ChartLibrary/Utils/ChartColors.js.map +1 -0
  36. package/build/dist/UI/Components/Charts/ChartLibrary/Utils/Cx.js +7 -0
  37. package/build/dist/UI/Components/Charts/ChartLibrary/Utils/Cx.js.map +1 -0
  38. package/build/dist/UI/Components/Charts/ChartLibrary/Utils/GetYAxisDomain.js +7 -0
  39. package/build/dist/UI/Components/Charts/ChartLibrary/Utils/GetYAxisDomain.js.map +1 -0
  40. package/build/dist/UI/Components/Charts/ChartLibrary/Utils/HasOnlyOneValueForKey.js +14 -0
  41. package/build/dist/UI/Components/Charts/ChartLibrary/Utils/HasOnlyOneValueForKey.js.map +1 -0
  42. package/build/dist/UI/Components/Charts/ChartLibrary/Utils/UseWindowOnResize.js +14 -0
  43. package/build/dist/UI/Components/Charts/ChartLibrary/Utils/UseWindowOnResize.js.map +1 -0
  44. package/build/dist/UI/Components/Charts/Line/LineChart.js +30 -136
  45. package/build/dist/UI/Components/Charts/Line/LineChart.js.map +1 -1
  46. package/build/dist/UI/Components/Charts/Types/ChartCurve.js +8 -0
  47. package/build/dist/UI/Components/Charts/Types/ChartCurve.js.map +1 -0
  48. package/build/dist/UI/Components/Charts/Types/DataPoint.js +2 -0
  49. package/build/dist/UI/Components/Charts/Types/DataPoint.js.map +1 -0
  50. package/build/dist/UI/Components/Charts/Types/SeriesPoint.js +2 -0
  51. package/build/dist/UI/Components/Charts/Types/SeriesPoint.js.map +1 -0
  52. package/build/dist/UI/Components/Charts/Types/SeriesPoints.js +2 -0
  53. package/build/dist/UI/Components/Charts/Types/SeriesPoints.js.map +1 -0
  54. package/build/dist/UI/Components/Charts/Types/XAxis/XAxis.js +8 -0
  55. package/build/dist/UI/Components/Charts/Types/XAxis/XAxis.js.map +1 -0
  56. package/build/dist/UI/Components/Charts/Types/XAxis/XAxisMaxMin.js +2 -0
  57. package/build/dist/UI/Components/Charts/Types/XAxis/XAxisMaxMin.js.map +1 -0
  58. package/build/dist/UI/Components/Charts/Types/XAxis/XAxisPrecision.js +27 -0
  59. package/build/dist/UI/Components/Charts/Types/XAxis/XAxisPrecision.js.map +1 -0
  60. package/build/dist/UI/Components/Charts/Types/XAxis/XAxisType.js +7 -0
  61. package/build/dist/UI/Components/Charts/Types/XAxis/XAxisType.js.map +1 -0
  62. package/build/dist/UI/Components/Charts/Types/XValue.js +2 -0
  63. package/build/dist/UI/Components/Charts/Types/XValue.js.map +1 -0
  64. package/build/dist/UI/Components/Charts/Types/YAxis/YAxis.js +8 -0
  65. package/build/dist/UI/Components/Charts/Types/YAxis/YAxis.js.map +1 -0
  66. package/build/dist/UI/Components/Charts/Types/YAxis/YAxisMaxMin.js +2 -0
  67. package/build/dist/UI/Components/Charts/Types/YAxis/YAxisMaxMin.js.map +1 -0
  68. package/build/dist/UI/Components/Charts/Types/YAxis/YAxisType.js +6 -0
  69. package/build/dist/UI/Components/Charts/Types/YAxis/YAxisType.js.map +1 -0
  70. package/build/dist/UI/Components/Charts/Types/YValue.js +2 -0
  71. package/build/dist/UI/Components/Charts/Types/YValue.js.map +1 -0
  72. package/build/dist/UI/Components/Charts/Utils/DataPoint.js +109 -0
  73. package/build/dist/UI/Components/Charts/Utils/DataPoint.js.map +1 -0
  74. package/build/dist/UI/Components/Charts/Utils/XAxis.js +241 -0
  75. package/build/dist/UI/Components/Charts/Utils/XAxis.js.map +1 -0
  76. package/package.json +6 -4
  77. package/UI/Components/Charts/Bar/Bar.tsx +0 -0
  78. package/UI/Components/Charts/Base/BaseChart.tsx +0 -0
  79. package/UI/Components/Charts/Tooltip/Tooltip.tsx +0 -84
  80. package/build/dist/UI/Components/Charts/Bar/Bar.js +0 -2
  81. package/build/dist/UI/Components/Charts/Bar/Bar.js.map +0 -1
  82. package/build/dist/UI/Components/Charts/Base/BaseChart.js +0 -2
  83. package/build/dist/UI/Components/Charts/Base/BaseChart.js.map +0 -1
  84. package/build/dist/UI/Components/Charts/Tooltip/Tooltip.js +0 -34
  85. package/build/dist/UI/Components/Charts/Tooltip/Tooltip.js.map +0 -1
@@ -0,0 +1,241 @@
1
+ import NotImplementedException from "../../../../Types/Exception/NotImplementedException";
2
+ import XAxisPrecision from "../Types/XAxis/XAxisPrecision";
3
+ export default class XAxisUtil {
4
+ static getPrecision(data) {
5
+ if (typeof data.xAxisMax === "number" ||
6
+ typeof data.xAxisMin === "number") {
7
+ // number not yet supported.
8
+ throw new NotImplementedException();
9
+ }
10
+ const startDate = data.xAxisMin;
11
+ const endDate = data.xAxisMax;
12
+ const totalMilliseconds = endDate.getTime() - startDate.getTime();
13
+ const totalSeconds = totalMilliseconds / 1000;
14
+ const totalMinutes = totalSeconds / 60;
15
+ const totalHours = totalMinutes / 60;
16
+ const totalDays = totalHours / 24;
17
+ const totalWeeks = totalDays / 7;
18
+ const totalMonths = totalDays / 30;
19
+ if (totalSeconds <= 100) {
20
+ return XAxisPrecision.EVERY_SECOND;
21
+ }
22
+ if (totalSeconds <= 500) {
23
+ return XAxisPrecision.EVERY_FIVE_SECONDS;
24
+ }
25
+ if (totalSeconds <= 1000) {
26
+ return XAxisPrecision.EVERY_TEN_SECONDS;
27
+ }
28
+ if (totalSeconds <= 3000) {
29
+ return XAxisPrecision.EVERY_THIRTY_SECONDS;
30
+ }
31
+ if (totalMinutes <= 100) {
32
+ return XAxisPrecision.EVERY_MINUTE;
33
+ }
34
+ if (totalMinutes <= 500) {
35
+ return XAxisPrecision.EVERY_FIVE_MINUTES;
36
+ }
37
+ if (totalMinutes <= 1000) {
38
+ return XAxisPrecision.EVERY_TEN_MINUTES;
39
+ }
40
+ if (totalMinutes <= 3000) {
41
+ return XAxisPrecision.EVERY_THIRTY_MINUTES;
42
+ }
43
+ if (totalHours <= 100) {
44
+ return XAxisPrecision.EVERY_HOUR;
45
+ }
46
+ if (totalHours <= 200) {
47
+ return XAxisPrecision.EVERY_TWO_HOURS;
48
+ }
49
+ if (totalHours <= 300) {
50
+ return XAxisPrecision.EVERY_THREE_HOURS;
51
+ }
52
+ if (totalHours <= 600) {
53
+ return XAxisPrecision.EVERY_SIX_HOURS;
54
+ }
55
+ if (totalHours <= 1200) {
56
+ return XAxisPrecision.EVERY_TWELVE_HOURS;
57
+ }
58
+ if (totalDays <= 100) {
59
+ return XAxisPrecision.EVERY_DAY;
60
+ }
61
+ if (totalDays <= 200) {
62
+ return XAxisPrecision.EVERY_TWO_DAYS;
63
+ }
64
+ if (totalWeeks <= 100) {
65
+ return XAxisPrecision.EVERY_WEEK;
66
+ }
67
+ if (totalWeeks <= 200) {
68
+ return XAxisPrecision.EVERY_TWO_WEEKS;
69
+ }
70
+ if (totalMonths <= 100) {
71
+ return XAxisPrecision.EVERY_MONTH;
72
+ }
73
+ if (totalMonths <= 200) {
74
+ return XAxisPrecision.EVERY_TWO_MONTHS;
75
+ }
76
+ if (totalMonths <= 300) {
77
+ return XAxisPrecision.EVERY_THREE_MONTHS;
78
+ }
79
+ if (totalMonths <= 600) {
80
+ return XAxisPrecision.EVERY_SIX_MONTHS;
81
+ }
82
+ return XAxisPrecision.EVERY_YEAR;
83
+ }
84
+ static getPrecisionIntervals(data) {
85
+ const precision = XAxisUtil.getPrecision(data);
86
+ if (typeof data.xAxisMax === "number" ||
87
+ typeof data.xAxisMin === "number") {
88
+ // number not yet supported.
89
+ throw new NotImplementedException();
90
+ }
91
+ const startDate = new Date(data.xAxisMin);
92
+ const endDate = new Date(data.xAxisMax);
93
+ const intervals = [];
94
+ const currentDate = new Date(startDate);
95
+ while (currentDate <= endDate) {
96
+ intervals.push(new Date(currentDate));
97
+ switch (precision) {
98
+ case XAxisPrecision.EVERY_SECOND:
99
+ currentDate.setSeconds(currentDate.getSeconds() + 1);
100
+ break;
101
+ case XAxisPrecision.EVERY_FIVE_SECONDS:
102
+ currentDate.setSeconds(currentDate.getSeconds() + 5);
103
+ break;
104
+ case XAxisPrecision.EVERY_TEN_SECONDS:
105
+ currentDate.setSeconds(currentDate.getSeconds() + 10);
106
+ break;
107
+ case XAxisPrecision.EVERY_THIRTY_SECONDS:
108
+ currentDate.setSeconds(currentDate.getSeconds() + 30);
109
+ break;
110
+ case XAxisPrecision.EVERY_MINUTE:
111
+ currentDate.setMinutes(currentDate.getMinutes() + 1);
112
+ break;
113
+ case XAxisPrecision.EVERY_FIVE_MINUTES:
114
+ currentDate.setMinutes(currentDate.getMinutes() + 5);
115
+ break;
116
+ case XAxisPrecision.EVERY_TEN_MINUTES:
117
+ currentDate.setMinutes(currentDate.getMinutes() + 10);
118
+ break;
119
+ case XAxisPrecision.EVERY_THIRTY_MINUTES:
120
+ currentDate.setMinutes(currentDate.getMinutes() + 30);
121
+ break;
122
+ case XAxisPrecision.EVERY_HOUR:
123
+ currentDate.setHours(currentDate.getHours() + 1);
124
+ break;
125
+ case XAxisPrecision.EVERY_TWO_HOURS:
126
+ currentDate.setHours(currentDate.getHours() + 2);
127
+ break;
128
+ case XAxisPrecision.EVERY_THREE_HOURS:
129
+ currentDate.setHours(currentDate.getHours() + 3);
130
+ break;
131
+ case XAxisPrecision.EVERY_SIX_HOURS:
132
+ currentDate.setHours(currentDate.getHours() + 6);
133
+ break;
134
+ case XAxisPrecision.EVERY_TWELVE_HOURS:
135
+ currentDate.setHours(currentDate.getHours() + 12);
136
+ break;
137
+ case XAxisPrecision.EVERY_DAY:
138
+ currentDate.setDate(currentDate.getDate() + 1);
139
+ break;
140
+ case XAxisPrecision.EVERY_TWO_DAYS:
141
+ currentDate.setDate(currentDate.getDate() + 2);
142
+ break;
143
+ case XAxisPrecision.EVERY_WEEK:
144
+ currentDate.setDate(currentDate.getDate() + 7);
145
+ break;
146
+ case XAxisPrecision.EVERY_TWO_WEEKS:
147
+ currentDate.setDate(currentDate.getDate() + 14);
148
+ break;
149
+ case XAxisPrecision.EVERY_MONTH:
150
+ currentDate.setMonth(currentDate.getMonth() + 1);
151
+ break;
152
+ case XAxisPrecision.EVERY_TWO_MONTHS:
153
+ currentDate.setMonth(currentDate.getMonth() + 2);
154
+ break;
155
+ case XAxisPrecision.EVERY_THREE_MONTHS:
156
+ currentDate.setMonth(currentDate.getMonth() + 3);
157
+ break;
158
+ case XAxisPrecision.EVERY_SIX_MONTHS:
159
+ currentDate.setMonth(currentDate.getMonth() + 6);
160
+ break;
161
+ case XAxisPrecision.EVERY_YEAR:
162
+ currentDate.setFullYear(currentDate.getFullYear() + 1);
163
+ break;
164
+ }
165
+ }
166
+ return intervals;
167
+ }
168
+ static getFormatter(data) {
169
+ const precision = XAxisUtil.getPrecision(data);
170
+ switch (precision) {
171
+ case XAxisPrecision.EVERY_SECOND:
172
+ case XAxisPrecision.EVERY_FIVE_SECONDS:
173
+ case XAxisPrecision.EVERY_TEN_SECONDS:
174
+ case XAxisPrecision.EVERY_THIRTY_SECONDS:
175
+ return (value) => {
176
+ return value.toISOString().substring(11, 19);
177
+ }; // HH:mm:ss
178
+ case XAxisPrecision.EVERY_MINUTE:
179
+ case XAxisPrecision.EVERY_FIVE_MINUTES:
180
+ case XAxisPrecision.EVERY_TEN_MINUTES:
181
+ case XAxisPrecision.EVERY_THIRTY_MINUTES:
182
+ return (value) => {
183
+ return value.toISOString().substring(11, 16);
184
+ }; // HH:mm
185
+ case XAxisPrecision.EVERY_HOUR:
186
+ case XAxisPrecision.EVERY_TWO_HOURS:
187
+ case XAxisPrecision.EVERY_THREE_HOURS:
188
+ case XAxisPrecision.EVERY_SIX_HOURS:
189
+ case XAxisPrecision.EVERY_TWELVE_HOURS:
190
+ return (value) => {
191
+ const dateString = value.toISOString();
192
+ const day = dateString.substring(8, 10);
193
+ const month = value.toLocaleString("default", {
194
+ month: "short",
195
+ });
196
+ const hour = dateString.substring(11, 13);
197
+ return `${day} ${month}, ${hour}:00`;
198
+ }; // DD MMM, HH:00
199
+ case XAxisPrecision.EVERY_DAY:
200
+ case XAxisPrecision.EVERY_TWO_DAYS:
201
+ return (value) => {
202
+ const dateString = value.toISOString();
203
+ const day = dateString.substring(8, 10);
204
+ const month = value.toLocaleString("default", {
205
+ month: "short",
206
+ });
207
+ return `${day} ${month}`;
208
+ }; // DD MMM
209
+ case XAxisPrecision.EVERY_WEEK:
210
+ case XAxisPrecision.EVERY_TWO_WEEKS:
211
+ return (value) => {
212
+ const dateString = value.toISOString();
213
+ const day = dateString.substring(8, 10);
214
+ const month = value.toLocaleString("default", {
215
+ month: "short",
216
+ });
217
+ return `${day} ${month}`;
218
+ }; // DD MMM
219
+ case XAxisPrecision.EVERY_MONTH:
220
+ case XAxisPrecision.EVERY_TWO_MONTHS:
221
+ case XAxisPrecision.EVERY_THREE_MONTHS:
222
+ case XAxisPrecision.EVERY_SIX_MONTHS:
223
+ return (value) => {
224
+ const dateString = value.toISOString();
225
+ const day = dateString.substring(8, 10);
226
+ const year = dateString.substring(0, 4);
227
+ const month = value.toLocaleString("default", {
228
+ month: "short",
229
+ });
230
+ return `${day} ${month} ${year}`;
231
+ }; // DD MMM
232
+ case XAxisPrecision.EVERY_YEAR:
233
+ return (value) => {
234
+ return value.toISOString().substring(0, 4);
235
+ }; // YYYY
236
+ default:
237
+ throw new Error("Unsupported precision");
238
+ }
239
+ }
240
+ }
241
+ //# sourceMappingURL=XAxis.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"XAxis.js","sourceRoot":"","sources":["../../../../../../UI/Components/Charts/Utils/XAxis.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@oneuptime/common",
3
- "version": "7.0.2989",
3
+ "version": "7.0.2994",
4
4
  "description": "",
5
5
  "main": "index.js",
6
6
  "scripts": {
@@ -44,11 +44,10 @@
44
44
  "ts-jest": "^28.0.5"
45
45
  },
46
46
  "dependencies": {
47
+ "@bull-board/express": "^5.21.4",
47
48
  "@clickhouse/client": "^0.2.10",
48
49
  "@elastic/elasticsearch": "^8.12.1",
49
50
  "@monaco-editor/react": "^4.4.6",
50
- "@nivo/core": "^0.87.0",
51
- "@nivo/line": "^0.87.0",
52
51
  "@opentelemetry/api": "^1.9.0",
53
52
  "@opentelemetry/api-logs": "^0.52.1",
54
53
  "@opentelemetry/context-zone": "^1.25.0",
@@ -67,6 +66,7 @@
67
66
  "@opentelemetry/sdk-trace-node": "^1.21.0",
68
67
  "@opentelemetry/sdk-trace-web": "^1.23.0",
69
68
  "@opentelemetry/semantic-conventions": "^1.25.0",
69
+ "@remixicon/react": "^4.2.0",
70
70
  "@tippyjs/react": "^4.2.6",
71
71
  "@types/crypto-js": "^4.2.2",
72
72
  "@types/qrcode": "^1.5.5",
@@ -77,7 +77,7 @@
77
77
  "airtable": "^0.12.2",
78
78
  "axios": "^1.7.2",
79
79
  "bullmq": "^5.3.3",
80
- "Common": "npm:@oneuptime/common@7.0.2989",
80
+ "Common": "npm:@oneuptime/common@7.0.2994",
81
81
  "cookie-parser": "^1.4.6",
82
82
  "cors": "^2.8.5",
83
83
  "cron-parser": "^4.8.1",
@@ -118,6 +118,7 @@
118
118
  "react-syntax-highlighter": "^15.5.0",
119
119
  "react-toggle": "^4.1.3",
120
120
  "reactflow": "^11.11.4",
121
+ "recharts": "^2.12.7",
121
122
  "redis-semaphore": "^5.5.1",
122
123
  "reflect-metadata": "^0.2.2",
123
124
  "remark-gfm": "^3.0.1",
@@ -125,6 +126,7 @@
125
126
  "socket.io": "^4.7.4",
126
127
  "socket.io-client": "^4.7.5",
127
128
  "stripe": "^10.17.0",
129
+ "tailwind-merge": "^2.5.2",
128
130
  "tippy.js": "^6.3.7",
129
131
  "twilio": "^4.22.0",
130
132
  "typeorm": "^0.3.20",
File without changes
File without changes
@@ -1,84 +0,0 @@
1
- import OneUptimeDate from "Common/Types/Date";
2
- import {
3
- AxisBottom,
4
- AxisLeft,
5
- AxisType,
6
- LineChartPoint,
7
- XValue,
8
- YValue,
9
- } from "../Line/LineChart";
10
- import React, { FunctionComponent, ReactElement } from "react";
11
-
12
- export interface ComponentProps {
13
- points: Array<LineChartPoint>;
14
- axisBottom: AxisBottom;
15
- axisLeft: AxisLeft;
16
- }
17
-
18
- const ChartTooltip: FunctionComponent<ComponentProps> = (
19
- props: ComponentProps,
20
- ): ReactElement => {
21
- type FormatAxisValueFunction = (
22
- value: XValue | YValue,
23
- type: AxisType,
24
- ) => string;
25
-
26
- const formatAxisValue: FormatAxisValueFunction = (
27
- value: XValue | YValue,
28
- type: AxisType,
29
- ): string => {
30
- if (typeof value === "number") {
31
- return value.toFixed(2);
32
- }
33
-
34
- if (type === AxisType.Date) {
35
- return OneUptimeDate.getDateAsLocalFormattedString(value, true);
36
- }
37
-
38
- if (type === AxisType.Time) {
39
- return OneUptimeDate.getLocalHourAndMinuteFromDate(value);
40
- }
41
-
42
- return value.toString();
43
- };
44
-
45
- return (
46
- <div className="bg-white rounded-md shadow-md p-5 text-sm space-y-2">
47
- {props.points.map((point: LineChartPoint, index: number) => {
48
- return (
49
- <div key={index} className="space-y-1">
50
- <div className="font-medium flex">
51
- <div>
52
- <div
53
- className="w-3 h-3 mr-2 mt-1 rounded-full"
54
- style={{
55
- backgroundColor: point.seriesColor.toString(),
56
- }}
57
- ></div>
58
- </div>
59
- {point.seriesName}
60
- </div>
61
- <div className="flex text-gray-600 text-xs">
62
- <div className="w-1/2 text-left font-medium">
63
- {props.axisLeft.legend}
64
- </div>
65
- <div className="w-1/2 text-right">
66
- {formatAxisValue(point.y.toString(), props.axisLeft.type)}
67
- </div>
68
- </div>
69
- <div className="flex text-gray-600 text-xs">
70
- <div className="w-1/2 text-left font-medium">
71
- {props.axisBottom.legend}
72
- </div>
73
- <div className="w-1/2 text-right">
74
- {formatAxisValue(point.x.toString(), props.axisBottom.type)}
75
- </div>
76
- </div>
77
- </div>
78
- );
79
- })}
80
- </div>
81
- );
82
- };
83
-
84
- export default ChartTooltip;
@@ -1,2 +0,0 @@
1
- "use strict";
2
- //# sourceMappingURL=Bar.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Bar.js","sourceRoot":"","sources":["../../../../../../UI/Components/Charts/Bar/Bar.tsx"],"names":[],"mappings":""}
@@ -1,2 +0,0 @@
1
- "use strict";
2
- //# sourceMappingURL=BaseChart.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"BaseChart.js","sourceRoot":"","sources":["../../../../../../UI/Components/Charts/Base/BaseChart.tsx"],"names":[],"mappings":""}
@@ -1,34 +0,0 @@
1
- import OneUptimeDate from "Common/Types/Date";
2
- import { AxisType, } from "../Line/LineChart";
3
- import React from "react";
4
- const ChartTooltip = (props) => {
5
- const formatAxisValue = (value, type) => {
6
- if (typeof value === "number") {
7
- return value.toFixed(2);
8
- }
9
- if (type === AxisType.Date) {
10
- return OneUptimeDate.getDateAsLocalFormattedString(value, true);
11
- }
12
- if (type === AxisType.Time) {
13
- return OneUptimeDate.getLocalHourAndMinuteFromDate(value);
14
- }
15
- return value.toString();
16
- };
17
- return (React.createElement("div", { className: "bg-white rounded-md shadow-md p-5 text-sm space-y-2" }, props.points.map((point, index) => {
18
- return (React.createElement("div", { key: index, className: "space-y-1" },
19
- React.createElement("div", { className: "font-medium flex" },
20
- React.createElement("div", null,
21
- React.createElement("div", { className: "w-3 h-3 mr-2 mt-1 rounded-full", style: {
22
- backgroundColor: point.seriesColor.toString(),
23
- } })),
24
- point.seriesName),
25
- React.createElement("div", { className: "flex text-gray-600 text-xs" },
26
- React.createElement("div", { className: "w-1/2 text-left font-medium" }, props.axisLeft.legend),
27
- React.createElement("div", { className: "w-1/2 text-right" }, formatAxisValue(point.y.toString(), props.axisLeft.type))),
28
- React.createElement("div", { className: "flex text-gray-600 text-xs" },
29
- React.createElement("div", { className: "w-1/2 text-left font-medium" }, props.axisBottom.legend),
30
- React.createElement("div", { className: "w-1/2 text-right" }, formatAxisValue(point.x.toString(), props.axisBottom.type)))));
31
- })));
32
- };
33
- export default ChartTooltip;
34
- //# sourceMappingURL=Tooltip.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Tooltip.js","sourceRoot":"","sources":["../../../../../../UI/Components/Charts/Tooltip/Tooltip.tsx"],"names":[],"mappings":"AAAA,OAAO,aAAa,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAGL,QAAQ,GAIT,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAA0C,MAAM,OAAO,CAAC;AAQ/D,MAAM,YAAY,GAAsC,CACtD,KAAqB,EACP,EAAE;IAMhB,MAAM,eAAe,GAA4B,CAC/C,KAAsB,EACtB,IAAc,EACN,EAAE;QACV,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,OAAO,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAC1B,CAAC;QAED,IAAI,IAAI,KAAK,QAAQ,CAAC,IAAI,EAAE,CAAC;YAC3B,OAAO,aAAa,CAAC,6BAA6B,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAClE,CAAC;QAED,IAAI,IAAI,KAAK,QAAQ,CAAC,IAAI,EAAE,CAAC;YAC3B,OAAO,aAAa,CAAC,6BAA6B,CAAC,KAAK,CAAC,CAAC;QAC5D,CAAC;QAED,OAAO,KAAK,CAAC,QAAQ,EAAE,CAAC;IAC1B,CAAC,CAAC;IAEF,OAAO,CACL,6BAAK,SAAS,EAAC,qDAAqD,IACjE,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAqB,EAAE,KAAa,EAAE,EAAE;QACzD,OAAO,CACL,6BAAK,GAAG,EAAE,KAAK,EAAE,SAAS,EAAC,WAAW;YACpC,6BAAK,SAAS,EAAC,kBAAkB;gBAC/B;oBACE,6BACE,SAAS,EAAC,gCAAgC,EAC1C,KAAK,EAAE;4BACL,eAAe,EAAE,KAAK,CAAC,WAAW,CAAC,QAAQ,EAAE;yBAC9C,GACI,CACH;gBACL,KAAK,CAAC,UAAU,CACb;YACN,6BAAK,SAAS,EAAC,4BAA4B;gBACzC,6BAAK,SAAS,EAAC,6BAA6B,IACzC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAClB;gBACN,6BAAK,SAAS,EAAC,kBAAkB,IAC9B,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,EAAE,EAAE,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CACrD,CACF;YACN,6BAAK,SAAS,EAAC,4BAA4B;gBACzC,6BAAK,SAAS,EAAC,6BAA6B,IACzC,KAAK,CAAC,UAAU,CAAC,MAAM,CACpB;gBACN,6BAAK,SAAS,EAAC,kBAAkB,IAC9B,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,EAAE,EAAE,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CACvD,CACF,CACF,CACP,CAAC;IACJ,CAAC,CAAC,CACE,CACP,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,YAAY,CAAC"}