@oneuptime/common 7.0.2990 → 7.0.3010

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 (197) hide show
  1. package/Models/AnalyticsModels/ExceptionInstance.ts +488 -0
  2. package/Models/AnalyticsModels/Index.ts +2 -0
  3. package/Models/AnalyticsModels/Span.ts +2 -2
  4. package/Models/DatabaseModels/Index.ts +4 -0
  5. package/Models/DatabaseModels/TelemetryException.ts +978 -0
  6. package/Server/API/StatusAPI.ts +63 -51
  7. package/Server/EnvironmentConfig.ts +3 -0
  8. package/Server/Infrastructure/Postgres/SchemaMigrations/1724610006927-MigrationName.ts +93 -0
  9. package/Server/Infrastructure/Postgres/SchemaMigrations/1724613666632-MigrationName.ts +60 -0
  10. package/Server/Infrastructure/Postgres/SchemaMigrations/1724659071843-MigrationName.ts +17 -0
  11. package/Server/Infrastructure/Postgres/SchemaMigrations/Index.ts +6 -0
  12. package/Server/Infrastructure/Queue.ts +36 -1
  13. package/Server/Infrastructure/QueueWorker.ts +2 -2
  14. package/Server/Services/DatabaseService.ts +4 -5
  15. package/Server/Services/ExceptionInstanceService.ts +11 -0
  16. package/Server/Services/Index.ts +5 -0
  17. package/Server/Services/StatusPageDomainService.ts +118 -59
  18. package/Server/Services/TelemetryExceptionService.ts +10 -0
  19. package/Server/Types/Database/Permissions/Index.ts +1 -1
  20. package/Server/Types/Database/UpdateByID.ts +1 -1
  21. package/Server/Utils/Greenlock/Greenlock.ts +331 -204
  22. package/Server/Utils/Logger.ts +8 -2
  23. package/Server/Utils/Telemetry.ts +109 -25
  24. package/Types/Code/CodeType.ts +1 -0
  25. package/Types/Database/PartialEntity.ts +14 -1
  26. package/Types/Date.ts +9 -1
  27. package/Types/Icon/IconProp.ts +2 -0
  28. package/Types/Permission.ts +39 -0
  29. package/UI/Components/ActionCard/ActionCard.tsx +66 -0
  30. package/UI/Components/Alerts/Alert.tsx +69 -60
  31. package/UI/Components/Card/Card.tsx +1 -0
  32. package/UI/Components/Charts/ChartGroup/ChartGroup.tsx +4 -17
  33. package/UI/Components/Charts/ChartLibrary/LineChart/LineChart.tsx +1005 -0
  34. package/UI/Components/Charts/ChartLibrary/Types/ChartDataPoint.ts +3 -0
  35. package/UI/Components/Charts/ChartLibrary/Utils/ChartColors.ts +117 -0
  36. package/UI/Components/Charts/ChartLibrary/Utils/Cx.ts +8 -0
  37. package/UI/Components/Charts/ChartLibrary/Utils/GetYAxisDomain.ts +15 -0
  38. package/UI/Components/Charts/ChartLibrary/Utils/HasOnlyOneValueForKey.ts +19 -0
  39. package/UI/Components/Charts/ChartLibrary/Utils/UseWindowOnResize.ts +17 -0
  40. package/UI/Components/Charts/Line/LineChart.tsx +58 -225
  41. package/UI/Components/Charts/Types/ChartCurve.ts +7 -0
  42. package/UI/Components/Charts/Types/DataPoint.ts +7 -0
  43. package/UI/Components/Charts/Types/SeriesPoint.ts +7 -0
  44. package/UI/Components/Charts/Types/SeriesPoints.ts +6 -0
  45. package/UI/Components/Charts/Types/XAxis/XAxis.ts +21 -0
  46. package/UI/Components/Charts/Types/XAxis/XAxisMaxMin.ts +3 -0
  47. package/UI/Components/Charts/Types/XAxis/XAxisPrecision.ts +26 -0
  48. package/UI/Components/Charts/Types/XAxis/XAxisType.ts +6 -0
  49. package/UI/Components/Charts/Types/XValue.ts +3 -0
  50. package/UI/Components/Charts/Types/YAxis/YAxis.ts +22 -0
  51. package/UI/Components/Charts/Types/YAxis/YAxisMaxMin.ts +3 -0
  52. package/UI/Components/Charts/Types/YAxis/YAxisType.ts +5 -0
  53. package/UI/Components/Charts/Types/YValue.ts +3 -0
  54. package/UI/Components/Charts/Utils/DataPoint.ts +188 -0
  55. package/UI/Components/Charts/Utils/XAxis.ts +267 -0
  56. package/UI/Components/Detail/Detail.tsx +6 -1
  57. package/UI/Components/GanttChart/Row/Row.tsx +4 -2
  58. package/UI/Components/GanttChart/Row/RowLabel.tsx +7 -3
  59. package/UI/Components/Icon/Icon.tsx +16 -0
  60. package/UI/Components/LogsViewer/LogsViewer.tsx +1 -1
  61. package/UI/Components/Types/FieldType.ts +1 -0
  62. package/UI/Config.ts +2 -0
  63. package/UI/Utils/Telemetry.ts +7 -2
  64. package/Utils/Crypto.ts +11 -0
  65. package/build/dist/Models/AnalyticsModels/ExceptionInstance.js +445 -0
  66. package/build/dist/Models/AnalyticsModels/ExceptionInstance.js.map +1 -0
  67. package/build/dist/Models/AnalyticsModels/Index.js +2 -0
  68. package/build/dist/Models/AnalyticsModels/Index.js.map +1 -1
  69. package/build/dist/Models/AnalyticsModels/Span.js +2 -2
  70. package/build/dist/Models/DatabaseModels/Index.js +2 -0
  71. package/build/dist/Models/DatabaseModels/Index.js.map +1 -1
  72. package/build/dist/Models/DatabaseModels/TelemetryException.js +1010 -0
  73. package/build/dist/Models/DatabaseModels/TelemetryException.js.map +1 -0
  74. package/build/dist/Server/API/StatusAPI.js +52 -44
  75. package/build/dist/Server/API/StatusAPI.js.map +1 -1
  76. package/build/dist/Server/EnvironmentConfig.js +1 -0
  77. package/build/dist/Server/EnvironmentConfig.js.map +1 -1
  78. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1724610006927-MigrationName.js +38 -0
  79. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1724610006927-MigrationName.js.map +1 -0
  80. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1724613666632-MigrationName.js +26 -0
  81. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1724613666632-MigrationName.js.map +1 -0
  82. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1724659071843-MigrationName.js +12 -0
  83. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1724659071843-MigrationName.js.map +1 -0
  84. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js +6 -0
  85. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js.map +1 -1
  86. package/build/dist/Server/Infrastructure/Queue.js +20 -1
  87. package/build/dist/Server/Infrastructure/Queue.js.map +1 -1
  88. package/build/dist/Server/Infrastructure/QueueWorker.js +2 -2
  89. package/build/dist/Server/Infrastructure/QueueWorker.js.map +1 -1
  90. package/build/dist/Server/Services/DatabaseService.js.map +1 -1
  91. package/build/dist/Server/Services/ExceptionInstanceService.js +9 -0
  92. package/build/dist/Server/Services/ExceptionInstanceService.js.map +1 -0
  93. package/build/dist/Server/Services/Index.js +4 -0
  94. package/build/dist/Server/Services/Index.js.map +1 -1
  95. package/build/dist/Server/Services/StatusPageDomainService.js +101 -53
  96. package/build/dist/Server/Services/StatusPageDomainService.js.map +1 -1
  97. package/build/dist/Server/Services/TelemetryExceptionService.js +9 -0
  98. package/build/dist/Server/Services/TelemetryExceptionService.js.map +1 -0
  99. package/build/dist/Server/Types/Database/Permissions/Index.js.map +1 -1
  100. package/build/dist/Server/Utils/Greenlock/Greenlock.js +234 -157
  101. package/build/dist/Server/Utils/Greenlock/Greenlock.js.map +1 -1
  102. package/build/dist/Server/Utils/Logger.js +5 -1
  103. package/build/dist/Server/Utils/Logger.js.map +1 -1
  104. package/build/dist/Server/Utils/Telemetry.js +63 -22
  105. package/build/dist/Server/Utils/Telemetry.js.map +1 -1
  106. package/build/dist/Types/Code/CodeType.js +1 -0
  107. package/build/dist/Types/Code/CodeType.js.map +1 -1
  108. package/build/dist/Types/Database/PartialEntity.js +3 -0
  109. package/build/dist/Types/Database/PartialEntity.js.map +1 -1
  110. package/build/dist/Types/Date.js +7 -1
  111. package/build/dist/Types/Date.js.map +1 -1
  112. package/build/dist/Types/Icon/IconProp.js +2 -0
  113. package/build/dist/Types/Icon/IconProp.js.map +1 -1
  114. package/build/dist/Types/Permission.js +33 -0
  115. package/build/dist/Types/Permission.js.map +1 -1
  116. package/build/dist/UI/Components/ActionCard/ActionCard.js +27 -0
  117. package/build/dist/UI/Components/ActionCard/ActionCard.js.map +1 -0
  118. package/build/dist/UI/Components/Alerts/Alert.js +36 -45
  119. package/build/dist/UI/Components/Alerts/Alert.js.map +1 -1
  120. package/build/dist/UI/Components/Card/Card.js +1 -1
  121. package/build/dist/UI/Components/Card/Card.js.map +1 -1
  122. package/build/dist/UI/Components/Charts/ChartGroup/ChartGroup.js +4 -9
  123. package/build/dist/UI/Components/Charts/ChartGroup/ChartGroup.js.map +1 -1
  124. package/build/dist/UI/Components/Charts/ChartLibrary/LineChart/LineChart.js +388 -0
  125. package/build/dist/UI/Components/Charts/ChartLibrary/LineChart/LineChart.js.map +1 -0
  126. package/build/dist/UI/Components/Charts/ChartLibrary/Types/ChartDataPoint.js +2 -0
  127. package/build/dist/UI/Components/Charts/ChartLibrary/Types/ChartDataPoint.js.map +1 -0
  128. package/build/dist/UI/Components/Charts/ChartLibrary/Utils/ChartColors.js +88 -0
  129. package/build/dist/UI/Components/Charts/ChartLibrary/Utils/ChartColors.js.map +1 -0
  130. package/build/dist/UI/Components/Charts/ChartLibrary/Utils/Cx.js +7 -0
  131. package/build/dist/UI/Components/Charts/ChartLibrary/Utils/Cx.js.map +1 -0
  132. package/build/dist/UI/Components/Charts/ChartLibrary/Utils/GetYAxisDomain.js +7 -0
  133. package/build/dist/UI/Components/Charts/ChartLibrary/Utils/GetYAxisDomain.js.map +1 -0
  134. package/build/dist/UI/Components/Charts/ChartLibrary/Utils/HasOnlyOneValueForKey.js +14 -0
  135. package/build/dist/UI/Components/Charts/ChartLibrary/Utils/HasOnlyOneValueForKey.js.map +1 -0
  136. package/build/dist/UI/Components/Charts/ChartLibrary/Utils/UseWindowOnResize.js +14 -0
  137. package/build/dist/UI/Components/Charts/ChartLibrary/Utils/UseWindowOnResize.js.map +1 -0
  138. package/build/dist/UI/Components/Charts/Line/LineChart.js +30 -136
  139. package/build/dist/UI/Components/Charts/Line/LineChart.js.map +1 -1
  140. package/build/dist/UI/Components/Charts/Types/ChartCurve.js +8 -0
  141. package/build/dist/UI/Components/Charts/Types/ChartCurve.js.map +1 -0
  142. package/build/dist/UI/Components/Charts/Types/DataPoint.js +2 -0
  143. package/build/dist/UI/Components/Charts/Types/DataPoint.js.map +1 -0
  144. package/build/dist/UI/Components/Charts/Types/SeriesPoint.js +2 -0
  145. package/build/dist/UI/Components/Charts/Types/SeriesPoint.js.map +1 -0
  146. package/build/dist/UI/Components/Charts/Types/SeriesPoints.js +2 -0
  147. package/build/dist/UI/Components/Charts/Types/SeriesPoints.js.map +1 -0
  148. package/build/dist/UI/Components/Charts/Types/XAxis/XAxis.js +8 -0
  149. package/build/dist/UI/Components/Charts/Types/XAxis/XAxis.js.map +1 -0
  150. package/build/dist/UI/Components/Charts/Types/XAxis/XAxisMaxMin.js +2 -0
  151. package/build/dist/UI/Components/Charts/Types/XAxis/XAxisMaxMin.js.map +1 -0
  152. package/build/dist/UI/Components/Charts/Types/XAxis/XAxisPrecision.js +27 -0
  153. package/build/dist/UI/Components/Charts/Types/XAxis/XAxisPrecision.js.map +1 -0
  154. package/build/dist/UI/Components/Charts/Types/XAxis/XAxisType.js +7 -0
  155. package/build/dist/UI/Components/Charts/Types/XAxis/XAxisType.js.map +1 -0
  156. package/build/dist/UI/Components/Charts/Types/XValue.js +2 -0
  157. package/build/dist/UI/Components/Charts/Types/XValue.js.map +1 -0
  158. package/build/dist/UI/Components/Charts/Types/YAxis/YAxis.js +8 -0
  159. package/build/dist/UI/Components/Charts/Types/YAxis/YAxis.js.map +1 -0
  160. package/build/dist/UI/Components/Charts/Types/YAxis/YAxisMaxMin.js +2 -0
  161. package/build/dist/UI/Components/Charts/Types/YAxis/YAxisMaxMin.js.map +1 -0
  162. package/build/dist/UI/Components/Charts/Types/YAxis/YAxisType.js +6 -0
  163. package/build/dist/UI/Components/Charts/Types/YAxis/YAxisType.js.map +1 -0
  164. package/build/dist/UI/Components/Charts/Types/YValue.js +2 -0
  165. package/build/dist/UI/Components/Charts/Types/YValue.js.map +1 -0
  166. package/build/dist/UI/Components/Charts/Utils/DataPoint.js +109 -0
  167. package/build/dist/UI/Components/Charts/Utils/DataPoint.js.map +1 -0
  168. package/build/dist/UI/Components/Charts/Utils/XAxis.js +241 -0
  169. package/build/dist/UI/Components/Charts/Utils/XAxis.js.map +1 -0
  170. package/build/dist/UI/Components/Detail/Detail.js +5 -1
  171. package/build/dist/UI/Components/Detail/Detail.js.map +1 -1
  172. package/build/dist/UI/Components/GanttChart/Row/Row.js +2 -2
  173. package/build/dist/UI/Components/GanttChart/Row/Row.js.map +1 -1
  174. package/build/dist/UI/Components/GanttChart/Row/RowLabel.js +3 -3
  175. package/build/dist/UI/Components/GanttChart/Row/RowLabel.js.map +1 -1
  176. package/build/dist/UI/Components/Icon/Icon.js +6 -0
  177. package/build/dist/UI/Components/Icon/Icon.js.map +1 -1
  178. package/build/dist/UI/Components/LogsViewer/LogsViewer.js +1 -1
  179. package/build/dist/UI/Components/LogsViewer/LogsViewer.js.map +1 -1
  180. package/build/dist/UI/Components/Types/FieldType.js +1 -0
  181. package/build/dist/UI/Components/Types/FieldType.js.map +1 -1
  182. package/build/dist/UI/Config.js +1 -0
  183. package/build/dist/UI/Config.js.map +1 -1
  184. package/build/dist/UI/Utils/Telemetry.js +6 -3
  185. package/build/dist/UI/Utils/Telemetry.js.map +1 -1
  186. package/build/dist/Utils/Crypto.js +10 -0
  187. package/build/dist/Utils/Crypto.js.map +1 -0
  188. package/package.json +15 -13
  189. package/UI/Components/Charts/Bar/Bar.tsx +0 -0
  190. package/UI/Components/Charts/Base/BaseChart.tsx +0 -0
  191. package/UI/Components/Charts/Tooltip/Tooltip.tsx +0 -84
  192. package/build/dist/UI/Components/Charts/Bar/Bar.js +0 -2
  193. package/build/dist/UI/Components/Charts/Bar/Bar.js.map +0 -1
  194. package/build/dist/UI/Components/Charts/Base/BaseChart.js +0 -2
  195. package/build/dist/UI/Components/Charts/Base/BaseChart.js.map +0 -1
  196. package/build/dist/UI/Components/Charts/Tooltip/Tooltip.js +0 -34
  197. package/build/dist/UI/Components/Charts/Tooltip/Tooltip.js.map +0 -1
@@ -0,0 +1,388 @@
1
+ // Tremor Raw LineChart [v0.3.1]
2
+ /* eslint-disable @typescript-eslint/no-explicit-any */
3
+ "use client";
4
+ var __rest = (this && this.__rest) || function (s, e) {
5
+ var t = {};
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
7
+ t[p] = s[p];
8
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
9
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
10
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
11
+ t[p[i]] = s[p[i]];
12
+ }
13
+ return t;
14
+ };
15
+ import React from "react";
16
+ import { RiArrowLeftSLine, RiArrowRightSLine } from "@remixicon/react";
17
+ import { CartesianGrid, Dot, Label, Line, Legend as RechartsLegend, LineChart as RechartsLineChart, ResponsiveContainer, Tooltip, XAxis, YAxis, } from "recharts";
18
+ import { useOnWindowResize } from "../Utils/UseWindowOnResize";
19
+ import { AvailableChartColors, constructCategoryColors, getColorClassName, } from "../Utils/ChartColors";
20
+ import { cx } from "../Utils/Cx";
21
+ import { getYAxisDomain } from "../Utils/GetYAxisDomain";
22
+ import { hasOnlyOneValueForKey } from "../Utils/HasOnlyOneValueForKey";
23
+ import ChartCurve from "../../Types/ChartCurve";
24
+ const LegendItem = ({ name, color, onClick, activeLegend, }) => {
25
+ const hasOnValueChange = Boolean(onClick);
26
+ return (React.createElement("li", { className: cx(
27
+ // base
28
+ "group inline-flex flex-nowrap items-center gap-1.5 whitespace-nowrap rounded px-2 py-1 transition", hasOnValueChange
29
+ ? "cursor-pointer hover:bg-gray-100 dark:hover:bg-gray-800"
30
+ : "cursor-default"), onClick: (e) => {
31
+ e.stopPropagation();
32
+ onClick === null || onClick === void 0 ? void 0 : onClick(name, color);
33
+ } },
34
+ React.createElement("span", { className: cx("h-[3px] w-3.5 shrink-0 rounded-full", getColorClassName(color, "bg"), activeLegend && activeLegend !== name ? "opacity-40" : "opacity-100"), "aria-hidden": true }),
35
+ React.createElement("p", { className: cx(
36
+ // base
37
+ "truncate whitespace-nowrap text-xs",
38
+ // text color
39
+ "text-gray-700 dark:text-gray-300", hasOnValueChange &&
40
+ "group-hover:text-gray-900 dark:group-hover:text-gray-50", activeLegend && activeLegend !== name ? "opacity-40" : "opacity-100") }, name)));
41
+ };
42
+ const ScrollButton = ({ icon, onClick, disabled, }) => {
43
+ const Icon = icon;
44
+ const [isPressed, setIsPressed] = React.useState(false);
45
+ const intervalRef = React.useRef(null);
46
+ React.useEffect(() => {
47
+ if (isPressed) {
48
+ intervalRef.current = setInterval(() => {
49
+ onClick === null || onClick === void 0 ? void 0 : onClick();
50
+ }, 300);
51
+ }
52
+ else {
53
+ clearInterval(intervalRef.current);
54
+ }
55
+ return () => {
56
+ return clearInterval(intervalRef.current);
57
+ };
58
+ }, [isPressed, onClick]);
59
+ React.useEffect(() => {
60
+ if (disabled) {
61
+ clearInterval(intervalRef.current);
62
+ setIsPressed(false);
63
+ }
64
+ }, [disabled]);
65
+ return (React.createElement("button", { type: "button", className: cx(
66
+ // base
67
+ "group inline-flex size-5 items-center truncate rounded transition", disabled
68
+ ? "cursor-not-allowed text-gray-400 dark:text-gray-600"
69
+ : "cursor-pointer text-gray-700 hover:bg-gray-100 hover:text-gray-900 dark:text-gray-300 dark:hover:bg-gray-800 dark:hover:text-gray-50"), disabled: disabled, onClick: (e) => {
70
+ e.stopPropagation();
71
+ onClick === null || onClick === void 0 ? void 0 : onClick();
72
+ }, onMouseDown: (e) => {
73
+ e.stopPropagation();
74
+ setIsPressed(true);
75
+ }, onMouseUp: (e) => {
76
+ e.stopPropagation();
77
+ setIsPressed(false);
78
+ } },
79
+ React.createElement(Icon, { className: "size-full", "aria-hidden": "true" })));
80
+ };
81
+ const Legend = React.forwardRef((props, ref) => {
82
+ const { categories, colors = AvailableChartColors, className, onClickLegendItem, activeLegend, enableLegendSlider = false } = props, other = __rest(props, ["categories", "colors", "className", "onClickLegendItem", "activeLegend", "enableLegendSlider"]);
83
+ const scrollableRef = React.useRef(null);
84
+ const scrollButtonsRef = React.useRef(null);
85
+ const [hasScroll, setHasScroll] = React.useState(null);
86
+ const [isKeyDowned, setIsKeyDowned] = React.useState(null);
87
+ const intervalRef = React.useRef(null);
88
+ const checkScroll = React.useCallback(() => {
89
+ const scrollable = scrollableRef === null || scrollableRef === void 0 ? void 0 : scrollableRef.current;
90
+ if (!scrollable) {
91
+ return;
92
+ }
93
+ const hasLeftScroll = scrollable.scrollLeft > 0;
94
+ const hasRightScroll = scrollable.scrollWidth - scrollable.clientWidth > scrollable.scrollLeft;
95
+ setHasScroll({ left: hasLeftScroll, right: hasRightScroll });
96
+ }, [setHasScroll]);
97
+ const scrollToTest = React.useCallback((direction) => {
98
+ var _a, _b;
99
+ const element = scrollableRef === null || scrollableRef === void 0 ? void 0 : scrollableRef.current;
100
+ const scrollButtons = scrollButtonsRef === null || scrollButtonsRef === void 0 ? void 0 : scrollButtonsRef.current;
101
+ const scrollButtonsWith = (_a = scrollButtons === null || scrollButtons === void 0 ? void 0 : scrollButtons.clientWidth) !== null && _a !== void 0 ? _a : 0;
102
+ const width = (_b = element === null || element === void 0 ? void 0 : element.clientWidth) !== null && _b !== void 0 ? _b : 0;
103
+ if (element && enableLegendSlider) {
104
+ element.scrollTo({
105
+ left: direction === "left"
106
+ ? element.scrollLeft - width + scrollButtonsWith
107
+ : element.scrollLeft + width - scrollButtonsWith,
108
+ behavior: "smooth",
109
+ });
110
+ setTimeout(() => {
111
+ checkScroll();
112
+ }, 400);
113
+ }
114
+ }, [enableLegendSlider, checkScroll]);
115
+ React.useEffect(() => {
116
+ const keyDownHandler = (key) => {
117
+ if (key === "ArrowLeft") {
118
+ scrollToTest("left");
119
+ }
120
+ else if (key === "ArrowRight") {
121
+ scrollToTest("right");
122
+ }
123
+ };
124
+ if (isKeyDowned) {
125
+ keyDownHandler(isKeyDowned);
126
+ intervalRef.current = setInterval(() => {
127
+ keyDownHandler(isKeyDowned);
128
+ }, 300);
129
+ }
130
+ else {
131
+ clearInterval(intervalRef.current);
132
+ }
133
+ return () => {
134
+ return clearInterval(intervalRef.current);
135
+ };
136
+ }, [isKeyDowned, scrollToTest]);
137
+ const keyDown = (e) => {
138
+ e.stopPropagation();
139
+ if (e.key === "ArrowLeft" || e.key === "ArrowRight") {
140
+ e.preventDefault();
141
+ setIsKeyDowned(e.key);
142
+ }
143
+ };
144
+ const keyUp = (e) => {
145
+ e.stopPropagation();
146
+ setIsKeyDowned(null);
147
+ };
148
+ React.useEffect(() => {
149
+ const scrollable = scrollableRef === null || scrollableRef === void 0 ? void 0 : scrollableRef.current;
150
+ if (enableLegendSlider) {
151
+ checkScroll();
152
+ scrollable === null || scrollable === void 0 ? void 0 : scrollable.addEventListener("keydown", keyDown);
153
+ scrollable === null || scrollable === void 0 ? void 0 : scrollable.addEventListener("keyup", keyUp);
154
+ }
155
+ return () => {
156
+ scrollable === null || scrollable === void 0 ? void 0 : scrollable.removeEventListener("keydown", keyDown);
157
+ scrollable === null || scrollable === void 0 ? void 0 : scrollable.removeEventListener("keyup", keyUp);
158
+ };
159
+ }, [checkScroll, enableLegendSlider]);
160
+ return (React.createElement("ol", Object.assign({ ref: ref, className: cx("relative overflow-hidden", className) }, other),
161
+ React.createElement("div", { ref: scrollableRef, tabIndex: 0, className: cx("flex h-full", enableLegendSlider
162
+ ? (hasScroll === null || hasScroll === void 0 ? void 0 : hasScroll.right) || (hasScroll === null || hasScroll === void 0 ? void 0 : hasScroll.left)
163
+ ? "snap-mandatory items-center overflow-auto pl-4 pr-12 [scrollbar-width:none] [&::-webkit-scrollbar]:hidden"
164
+ : ""
165
+ : "flex-wrap") }, categories.map((category, index) => {
166
+ return (React.createElement(LegendItem, { key: `item-${index}`, name: category, color: colors[index], onClick: onClickLegendItem, activeLegend: activeLegend }));
167
+ })),
168
+ enableLegendSlider && ((hasScroll === null || hasScroll === void 0 ? void 0 : hasScroll.right) || (hasScroll === null || hasScroll === void 0 ? void 0 : hasScroll.left)) ? (React.createElement(React.Fragment, null,
169
+ React.createElement("div", { ref: scrollButtonsRef, className: cx(
170
+ // base
171
+ "absolute bottom-0 right-0 top-0 flex h-full items-center justify-center pr-1",
172
+ // background color
173
+ "bg-white dark:bg-gray-950") },
174
+ React.createElement(ScrollButton, { icon: RiArrowLeftSLine, onClick: () => {
175
+ setIsKeyDowned(null);
176
+ scrollToTest("left");
177
+ }, disabled: !(hasScroll === null || hasScroll === void 0 ? void 0 : hasScroll.left) }),
178
+ React.createElement(ScrollButton, { icon: RiArrowRightSLine, onClick: () => {
179
+ setIsKeyDowned(null);
180
+ scrollToTest("right");
181
+ }, disabled: !(hasScroll === null || hasScroll === void 0 ? void 0 : hasScroll.right) })))) : null));
182
+ });
183
+ Legend.displayName = "Legend";
184
+ const ChartLegend = ({ payload }, categoryColors, setLegendHeight, activeLegend, onClick, enableLegendSlider, legendPosition, yAxisWidth) => {
185
+ const legendRef = React.useRef(null);
186
+ useOnWindowResize(() => {
187
+ var _a;
188
+ const calculateHeight = (height) => {
189
+ return height ? Number(height) + 15 : 60;
190
+ };
191
+ setLegendHeight(calculateHeight((_a = legendRef.current) === null || _a === void 0 ? void 0 : _a.clientHeight));
192
+ });
193
+ const legendPayload = payload.filter((item) => {
194
+ return item.type !== "none";
195
+ });
196
+ const paddingLeft = legendPosition === "left" && yAxisWidth ? yAxisWidth - 8 : 0;
197
+ return (React.createElement("div", { ref: legendRef, style: { paddingLeft: paddingLeft }, className: cx("flex items-center", { "justify-center": legendPosition === "center" }, { "justify-start": legendPosition === "left" }, { "justify-end": legendPosition === "right" }) },
198
+ React.createElement(Legend, { categories: legendPayload.map((entry) => {
199
+ return entry.value;
200
+ }), colors: legendPayload.map((entry) => {
201
+ return categoryColors.get(entry.value);
202
+ }), onClickLegendItem: onClick, activeLegend: activeLegend, enableLegendSlider: enableLegendSlider })));
203
+ };
204
+ const ChartTooltip = ({ active, payload, label, valueFormatter, }) => {
205
+ if (active && payload && payload.length) {
206
+ const legendPayload = payload.filter((item) => {
207
+ return item.type !== "none";
208
+ });
209
+ return (React.createElement("div", { className: cx(
210
+ // base
211
+ "rounded-md border text-sm shadow-md",
212
+ // border color
213
+ "border-gray-200 dark:border-gray-800",
214
+ // background color
215
+ "bg-white dark:bg-gray-950") },
216
+ React.createElement("div", { className: cx("border-b border-inherit px-4 py-2") },
217
+ React.createElement("p", { className: cx(
218
+ // base
219
+ "font-medium",
220
+ // text color
221
+ "text-gray-900 dark:text-gray-50") }, label)),
222
+ React.createElement("div", { className: cx("space-y-1 px-4 py-2") }, legendPayload.map(({ value, category, color }, index) => {
223
+ return (React.createElement("div", { key: `id-${index}`, className: "flex items-center justify-between space-x-8" },
224
+ React.createElement("div", { className: "flex items-center space-x-2" },
225
+ React.createElement("span", { "aria-hidden": "true", className: cx("h-[3px] w-3.5 shrink-0 rounded-full", getColorClassName(color, "bg")) }),
226
+ React.createElement("p", { className: cx(
227
+ // base
228
+ "whitespace-nowrap text-right",
229
+ // text color
230
+ "text-gray-700 dark:text-gray-300") }, category)),
231
+ React.createElement("p", { className: cx(
232
+ // base
233
+ "whitespace-nowrap text-right font-medium tabular-nums",
234
+ // text color
235
+ "text-gray-900 dark:text-gray-50") }, valueFormatter(value))));
236
+ }))));
237
+ }
238
+ return null;
239
+ };
240
+ const LineChart = React.forwardRef((props, ref) => {
241
+ const { data = [], categories = [], index, colors = AvailableChartColors, valueFormatter = (value) => {
242
+ return value.toString();
243
+ }, startEndOnly = false, showXAxis = true, showYAxis = true, showGridLines = true, yAxisWidth = 56, intervalType = "equidistantPreserveStart", showTooltip = true, showLegend = true, autoMinValue = false, minValue, maxValue, allowDecimals = true, connectNulls = false, className, onValueChange, enableLegendSlider = false, tickGap = 5, xAxisLabel, yAxisLabel, legendPosition = "right", tooltipCallback, customTooltip } = props, other = __rest(props, ["data", "categories", "index", "colors", "valueFormatter", "startEndOnly", "showXAxis", "showYAxis", "showGridLines", "yAxisWidth", "intervalType", "showTooltip", "showLegend", "autoMinValue", "minValue", "maxValue", "allowDecimals", "connectNulls", "className", "onValueChange", "enableLegendSlider", "tickGap", "xAxisLabel", "yAxisLabel", "legendPosition", "tooltipCallback", "customTooltip"]);
244
+ const CustomTooltip = customTooltip;
245
+ const paddingValue = (!showXAxis && !showYAxis) || (startEndOnly && !showYAxis) ? 0 : 20;
246
+ const [legendHeight, setLegendHeight] = React.useState(60);
247
+ const [activeDot, setActiveDot] = React.useState(undefined);
248
+ const [activeLegend, setActiveLegend] = React.useState(undefined);
249
+ const categoryColors = constructCategoryColors(categories, colors);
250
+ const yAxisDomain = getYAxisDomain(autoMinValue, minValue, maxValue);
251
+ const hasOnValueChange = Boolean(onValueChange);
252
+ const prevActiveRef = React.useRef(undefined);
253
+ const prevLabelRef = React.useRef(undefined);
254
+ function onDotClick(itemData, event) {
255
+ event.stopPropagation();
256
+ if (!hasOnValueChange) {
257
+ return;
258
+ }
259
+ if ((itemData.index === (activeDot === null || activeDot === void 0 ? void 0 : activeDot.index) &&
260
+ itemData.dataKey === (activeDot === null || activeDot === void 0 ? void 0 : activeDot.dataKey)) ||
261
+ (hasOnlyOneValueForKey(data, itemData.dataKey) &&
262
+ activeLegend &&
263
+ activeLegend === itemData.dataKey)) {
264
+ setActiveLegend(undefined);
265
+ setActiveDot(undefined);
266
+ onValueChange === null || onValueChange === void 0 ? void 0 : onValueChange(null);
267
+ }
268
+ else {
269
+ setActiveLegend(itemData.dataKey);
270
+ setActiveDot({
271
+ index: itemData.index,
272
+ dataKey: itemData.dataKey,
273
+ });
274
+ onValueChange === null || onValueChange === void 0 ? void 0 : onValueChange(Object.assign({ eventType: "dot", categoryClicked: itemData.dataKey }, itemData.payload));
275
+ }
276
+ }
277
+ function onCategoryClick(dataKey) {
278
+ if (!hasOnValueChange) {
279
+ return;
280
+ }
281
+ if ((dataKey === activeLegend && !activeDot) ||
282
+ (hasOnlyOneValueForKey(data, dataKey) &&
283
+ activeDot &&
284
+ activeDot.dataKey === dataKey)) {
285
+ setActiveLegend(undefined);
286
+ onValueChange === null || onValueChange === void 0 ? void 0 : onValueChange(null);
287
+ }
288
+ else {
289
+ setActiveLegend(dataKey);
290
+ onValueChange === null || onValueChange === void 0 ? void 0 : onValueChange({
291
+ eventType: "category",
292
+ categoryClicked: dataKey,
293
+ });
294
+ }
295
+ setActiveDot(undefined);
296
+ }
297
+ return (React.createElement("div", Object.assign({ ref: ref, className: cx("h-80 w-full", className) }, other),
298
+ React.createElement(ResponsiveContainer, null,
299
+ React.createElement(RechartsLineChart, { data: data, syncId: props.syncId, onClick: hasOnValueChange && (activeLegend || activeDot)
300
+ ? () => {
301
+ setActiveDot(undefined);
302
+ setActiveLegend(undefined);
303
+ onValueChange === null || onValueChange === void 0 ? void 0 : onValueChange(null);
304
+ }
305
+ : undefined, margin: {
306
+ bottom: (xAxisLabel ? 30 : undefined),
307
+ left: (yAxisLabel ? 20 : undefined),
308
+ right: (yAxisLabel ? 5 : undefined),
309
+ top: 5,
310
+ } },
311
+ showGridLines ? (React.createElement(CartesianGrid, { className: cx("stroke-gray-200 stroke-1 dark:stroke-gray-800"), horizontal: true, vertical: false })) : null,
312
+ React.createElement(XAxis, { padding: { left: paddingValue, right: paddingValue }, hide: !showXAxis, dataKey: index, interval: startEndOnly ? "preserveStartEnd" : intervalType, tick: { transform: "translate(0, 6)" }, ticks: startEndOnly
313
+ ? [
314
+ data[0][index],
315
+ data[data.length - 1][index],
316
+ ]
317
+ : undefined, fill: "", stroke: "", className: cx(
318
+ // base
319
+ "text-xs",
320
+ // text fill
321
+ "fill-gray-500 dark:fill-gray-500"), tickLine: false, axisLine: false, minTickGap: tickGap }, xAxisLabel && (React.createElement(Label, { position: "insideBottom", offset: -20, className: "fill-gray-800 text-sm font-medium dark:fill-gray-200" }, xAxisLabel))),
322
+ React.createElement(YAxis, { width: yAxisWidth, hide: !showYAxis, axisLine: false, tickLine: false, type: "number", domain: yAxisDomain, tick: { transform: "translate(-3, 0)" }, fill: "", stroke: "", className: cx(
323
+ // base
324
+ "text-xs",
325
+ // text fill
326
+ "fill-gray-500 dark:fill-gray-500"), tickFormatter: valueFormatter, allowDecimals: allowDecimals }, yAxisLabel && (React.createElement(Label, { position: "insideLeft", style: { textAnchor: "middle" }, angle: -90, offset: -15, className: "fill-gray-800 text-sm font-medium dark:fill-gray-200" }, yAxisLabel))),
327
+ React.createElement(Tooltip, { wrapperStyle: { outline: "none" }, isAnimationActive: true, animationDuration: 100, cursor: { stroke: "#d1d5db", strokeWidth: 1 }, offset: 20, position: { y: 0 }, content: ({ active, payload, label }) => {
328
+ const cleanPayload = payload
329
+ ? payload.map((item) => {
330
+ return {
331
+ category: item.dataKey,
332
+ value: item.value,
333
+ index: item.payload[index],
334
+ color: categoryColors.get(item.dataKey),
335
+ type: item.type,
336
+ payload: item.payload,
337
+ };
338
+ })
339
+ : [];
340
+ if (tooltipCallback &&
341
+ (active !== prevActiveRef.current ||
342
+ label !== prevLabelRef.current)) {
343
+ tooltipCallback({ active, payload: cleanPayload, label });
344
+ prevActiveRef.current = active;
345
+ prevLabelRef.current = label;
346
+ }
347
+ return showTooltip && active ? (CustomTooltip ? (React.createElement(CustomTooltip, { active: active, payload: cleanPayload, label: label })) : (React.createElement(ChartTooltip, { active: active, payload: cleanPayload, label: label, valueFormatter: valueFormatter }))) : null;
348
+ } }),
349
+ showLegend ? (React.createElement(RechartsLegend, { verticalAlign: "top", height: legendHeight, content: ({ payload }) => {
350
+ return ChartLegend({ payload }, categoryColors, setLegendHeight, activeLegend, hasOnValueChange
351
+ ? (clickedLegendItem) => {
352
+ return onCategoryClick(clickedLegendItem);
353
+ }
354
+ : undefined, enableLegendSlider, legendPosition, yAxisWidth);
355
+ } })) : null,
356
+ categories.map((category) => {
357
+ return (React.createElement(Line, { className: cx(getColorClassName(categoryColors.get(category), "stroke")), strokeOpacity: activeDot || (activeLegend && activeLegend !== category)
358
+ ? 0.3
359
+ : 1, activeDot: (props) => {
360
+ const { cx: cxCoord, cy: cyCoord, stroke, strokeLinecap, strokeLinejoin, strokeWidth, dataKey, } = props;
361
+ return (React.createElement(Dot, { className: cx("stroke-white dark:stroke-gray-950", onValueChange ? "cursor-pointer" : "", getColorClassName(categoryColors.get(dataKey), "fill")), cx: cxCoord, cy: cyCoord, r: 5, fill: "", stroke: stroke, strokeLinecap: strokeLinecap, strokeLinejoin: strokeLinejoin, strokeWidth: strokeWidth, onClick: (_, event) => {
362
+ return onDotClick(props, event);
363
+ } }));
364
+ }, dot: (props) => {
365
+ const { stroke, strokeLinecap, strokeLinejoin, strokeWidth, cx: cxCoord, cy: cyCoord, dataKey, index, } = props;
366
+ if ((hasOnlyOneValueForKey(data, category) &&
367
+ !(activeDot ||
368
+ (activeLegend && activeLegend !== category))) ||
369
+ ((activeDot === null || activeDot === void 0 ? void 0 : activeDot.index) === index &&
370
+ (activeDot === null || activeDot === void 0 ? void 0 : activeDot.dataKey) === category)) {
371
+ return (React.createElement(Dot, { key: index, cx: cxCoord, cy: cyCoord, r: 5, stroke: stroke, fill: "", strokeLinecap: strokeLinecap, strokeLinejoin: strokeLinejoin, strokeWidth: strokeWidth, className: cx("stroke-white dark:stroke-gray-950", onValueChange ? "cursor-pointer" : "", getColorClassName(categoryColors.get(dataKey), "fill")) }));
372
+ }
373
+ return React.createElement(React.Fragment, { key: index });
374
+ }, key: category, name: category, type: "linear", dataKey: category, stroke: "", strokeWidth: 2, strokeLinejoin: "round", strokeLinecap: "round", isAnimationActive: false, connectNulls: connectNulls }));
375
+ }),
376
+ onValueChange
377
+ ? categories.map((category) => {
378
+ return (React.createElement(Line, { className: cx("cursor-pointer"), strokeOpacity: 0, key: category, name: category, type: props.curve || ChartCurve.LINEAR, dataKey: category, stroke: "transparent", fill: "transparent", legendType: "none", tooltipType: "none", strokeWidth: 12, connectNulls: connectNulls, onClick: (props, event) => {
379
+ event.stopPropagation();
380
+ const { name } = props;
381
+ onCategoryClick(name);
382
+ } }));
383
+ })
384
+ : null))));
385
+ });
386
+ LineChart.displayName = "LineChart";
387
+ export { LineChart };
388
+ //# sourceMappingURL=LineChart.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LineChart.js","sourceRoot":"","sources":["../../../../../../../UI/Components/Charts/ChartLibrary/LineChart/LineChart.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=ChartDataPoint.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChartDataPoint.js","sourceRoot":"","sources":["../../../../../../../UI/Components/Charts/ChartLibrary/Types/ChartDataPoint.ts"],"names":[],"mappings":""}
@@ -0,0 +1,88 @@
1
+ // Tremor Raw chartColors [v0.1.0]
2
+ export const chartColors = {
3
+ blue: {
4
+ bg: "bg-blue-500",
5
+ stroke: "stroke-blue-500",
6
+ fill: "fill-blue-500",
7
+ text: "text-blue-500",
8
+ },
9
+ emerald: {
10
+ bg: "bg-emerald-500",
11
+ stroke: "stroke-emerald-500",
12
+ fill: "fill-emerald-500",
13
+ text: "text-emerald-500",
14
+ },
15
+ violet: {
16
+ bg: "bg-violet-500",
17
+ stroke: "stroke-violet-500",
18
+ fill: "fill-violet-500",
19
+ text: "text-violet-500",
20
+ },
21
+ amber: {
22
+ bg: "bg-amber-500",
23
+ stroke: "stroke-amber-500",
24
+ fill: "fill-amber-500",
25
+ text: "text-amber-500",
26
+ },
27
+ gray: {
28
+ bg: "bg-gray-500",
29
+ stroke: "stroke-gray-500",
30
+ fill: "fill-gray-500",
31
+ text: "text-gray-500",
32
+ },
33
+ cyan: {
34
+ bg: "bg-cyan-500",
35
+ stroke: "stroke-cyan-500",
36
+ fill: "fill-cyan-500",
37
+ text: "text-cyan-500",
38
+ },
39
+ pink: {
40
+ bg: "bg-pink-500",
41
+ stroke: "stroke-pink-500",
42
+ fill: "fill-pink-500",
43
+ text: "text-pink-500",
44
+ },
45
+ lime: {
46
+ bg: "bg-lime-500",
47
+ stroke: "stroke-lime-500",
48
+ fill: "fill-lime-500",
49
+ text: "text-lime-500",
50
+ },
51
+ fuchsia: {
52
+ bg: "bg-fuchsia-500",
53
+ stroke: "stroke-fuchsia-500",
54
+ fill: "fill-fuchsia-500",
55
+ text: "text-fuchsia-500",
56
+ },
57
+ indigo: {
58
+ bg: "bg-indigo-500",
59
+ stroke: "stroke-indigo-500",
60
+ fill: "fill-indigo-500",
61
+ text: "text-indigo-500",
62
+ },
63
+ rose: {
64
+ bg: "bg-rose-500",
65
+ stroke: "stroke-rose-500",
66
+ fill: "fill-rose-500",
67
+ text: "text-rose-500",
68
+ },
69
+ };
70
+ export const AvailableChartColors = Object.keys(chartColors);
71
+ export const constructCategoryColors = (categories, colors) => {
72
+ const categoryColors = new Map();
73
+ categories.forEach((category, index) => {
74
+ categoryColors.set(category, colors[index % colors.length]);
75
+ });
76
+ return categoryColors;
77
+ };
78
+ export const getColorClassName = (color, type) => {
79
+ var _a, _b;
80
+ const fallbackColor = {
81
+ bg: "bg-gray-500",
82
+ stroke: "stroke-gray-500",
83
+ fill: "fill-gray-500",
84
+ text: "text-gray-500",
85
+ };
86
+ return (_b = (_a = chartColors[color]) === null || _a === void 0 ? void 0 : _a[type]) !== null && _b !== void 0 ? _b : fallbackColor[type];
87
+ };
88
+ //# sourceMappingURL=ChartColors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChartColors.js","sourceRoot":"","sources":["../../../../../../../UI/Components/Charts/ChartLibrary/Utils/ChartColors.ts"],"names":[],"mappings":"AAAA,kCAAkC;AAIlC,MAAM,CAAC,MAAM,WAAW,GAIpB;IACF,IAAI,EAAE;QACJ,EAAE,EAAE,aAAa;QACjB,MAAM,EAAE,iBAAiB;QACzB,IAAI,EAAE,eAAe;QACrB,IAAI,EAAE,eAAe;KACtB;IACD,OAAO,EAAE;QACP,EAAE,EAAE,gBAAgB;QACpB,MAAM,EAAE,oBAAoB;QAC5B,IAAI,EAAE,kBAAkB;QACxB,IAAI,EAAE,kBAAkB;KACzB;IACD,MAAM,EAAE;QACN,EAAE,EAAE,eAAe;QACnB,MAAM,EAAE,mBAAmB;QAC3B,IAAI,EAAE,iBAAiB;QACvB,IAAI,EAAE,iBAAiB;KACxB;IACD,KAAK,EAAE;QACL,EAAE,EAAE,cAAc;QAClB,MAAM,EAAE,kBAAkB;QAC1B,IAAI,EAAE,gBAAgB;QACtB,IAAI,EAAE,gBAAgB;KACvB;IACD,IAAI,EAAE;QACJ,EAAE,EAAE,aAAa;QACjB,MAAM,EAAE,iBAAiB;QACzB,IAAI,EAAE,eAAe;QACrB,IAAI,EAAE,eAAe;KACtB;IACD,IAAI,EAAE;QACJ,EAAE,EAAE,aAAa;QACjB,MAAM,EAAE,iBAAiB;QACzB,IAAI,EAAE,eAAe;QACrB,IAAI,EAAE,eAAe;KACtB;IACD,IAAI,EAAE;QACJ,EAAE,EAAE,aAAa;QACjB,MAAM,EAAE,iBAAiB;QACzB,IAAI,EAAE,eAAe;QACrB,IAAI,EAAE,eAAe;KACtB;IACD,IAAI,EAAE;QACJ,EAAE,EAAE,aAAa;QACjB,MAAM,EAAE,iBAAiB;QACzB,IAAI,EAAE,eAAe;QACrB,IAAI,EAAE,eAAe;KACtB;IACD,OAAO,EAAE;QACP,EAAE,EAAE,gBAAgB;QACpB,MAAM,EAAE,oBAAoB;QAC5B,IAAI,EAAE,kBAAkB;QACxB,IAAI,EAAE,kBAAkB;KACzB;IACD,MAAM,EAAE;QACN,EAAE,EAAE,eAAe;QACnB,MAAM,EAAE,mBAAmB;QAC3B,IAAI,EAAE,iBAAiB;QACvB,IAAI,EAAE,iBAAiB;KACxB;IACD,IAAI,EAAE;QACJ,EAAE,EAAE,aAAa;QACjB,MAAM,EAAE,iBAAiB;QACzB,IAAI,EAAE,eAAe;QACrB,IAAI,EAAE,eAAe;KACtB;CACF,CAAC;AAIF,MAAM,CAAC,MAAM,oBAAoB,GAA+B,MAAM,CAAC,IAAI,CACzE,WAAW,CACuB,CAAC;AAErC,MAAM,CAAC,MAAM,uBAAuB,GAGS,CAC3C,UAAoB,EACpB,MAAkC,EACK,EAAE;IACzC,MAAM,cAAc,GAA0C,IAAI,GAAG,EAGlE,CAAC;IACJ,UAAU,CAAC,OAAO,CAAC,CAAC,QAAgB,EAAE,KAAa,EAAE,EAAE;QACrD,cAAc,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC,MAAM,CAAE,CAAC,CAAC;IAC/D,CAAC,CAAC,CAAC;IACH,OAAO,cAAc,CAAC;AACxB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAGhB,CAAC,KAA+B,EAAE,IAAkB,EAAU,EAAE;;IAC5E,MAAM,aAAa,GAKf;QACF,EAAE,EAAE,aAAa;QACjB,MAAM,EAAE,iBAAiB;QACzB,IAAI,EAAE,eAAe;QACrB,IAAI,EAAE,eAAe;KACtB,CAAC;IACF,OAAO,MAAA,MAAA,WAAW,CAAC,KAAK,CAAC,0CAAG,IAAI,CAAC,mCAAI,aAAa,CAAC,IAAI,CAAC,CAAC;AAC3D,CAAC,CAAC"}
@@ -0,0 +1,7 @@
1
+ // Tremor Raw cx [v0.0.0]
2
+ import clsx from "clsx";
3
+ import { twMerge } from "tailwind-merge";
4
+ export function cx(...args) {
5
+ return twMerge(clsx(...args));
6
+ }
7
+ //# sourceMappingURL=Cx.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Cx.js","sourceRoot":"","sources":["../../../../../../../UI/Components/Charts/ChartLibrary/Utils/Cx.ts"],"names":[],"mappings":"AAAA,yBAAyB;AAEzB,OAAO,IAAyB,MAAM,MAAM,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAEzC,MAAM,UAAU,EAAE,CAAC,GAAG,IAAkB;IACtC,OAAO,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;AAChC,CAAC"}
@@ -0,0 +1,7 @@
1
+ // Tremor Raw getYAxisDomain [v0.0.0]
2
+ export const getYAxisDomain = (autoMinValue, minValue, maxValue) => {
3
+ const minDomain = autoMinValue ? "auto" : minValue !== null && minValue !== void 0 ? minValue : 0;
4
+ const maxDomain = maxValue !== null && maxValue !== void 0 ? maxValue : "auto";
5
+ return [minDomain, maxDomain];
6
+ };
7
+ //# sourceMappingURL=GetYAxisDomain.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GetYAxisDomain.js","sourceRoot":"","sources":["../../../../../../../UI/Components/Charts/ChartLibrary/Utils/GetYAxisDomain.ts"],"names":[],"mappings":"AAAA,qCAAqC;AAErC,MAAM,CAAC,MAAM,cAAc,GAIA,CACzB,YAAqB,EACrB,QAA4B,EAC5B,QAA4B,EACP,EAAE;IACvB,MAAM,SAAS,GAAoB,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,aAAR,QAAQ,cAAR,QAAQ,GAAI,CAAC,CAAC;IACzE,MAAM,SAAS,GAAoB,QAAQ,aAAR,QAAQ,cAAR,QAAQ,GAAI,MAAM,CAAC;IACtD,OAAO,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;AAChC,CAAC,CAAC"}
@@ -0,0 +1,14 @@
1
+ // Tremor Raw hasOnlyOneValueForKey [v0.1.0]
2
+ export function hasOnlyOneValueForKey(array, keyToCheck) {
3
+ const val = [];
4
+ for (const obj of array) {
5
+ if (Object.prototype.hasOwnProperty.call(obj, keyToCheck)) {
6
+ val.push(obj[keyToCheck]);
7
+ if (val.length > 1) {
8
+ return false;
9
+ }
10
+ }
11
+ }
12
+ return true;
13
+ }
14
+ //# sourceMappingURL=HasOnlyOneValueForKey.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HasOnlyOneValueForKey.js","sourceRoot":"","sources":["../../../../../../../UI/Components/Charts/ChartLibrary/Utils/HasOnlyOneValueForKey.ts"],"names":[],"mappings":"AAAA,4CAA4C;AAE5C,MAAM,UAAU,qBAAqB,CACnC,KAAY,EACZ,UAAkB;IAElB,MAAM,GAAG,GAAU,EAAE,CAAC;IAEtB,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE,CAAC;QACxB,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,UAAU,CAAC,EAAE,CAAC;YAC1D,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC;YAC1B,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACnB,OAAO,KAAK,CAAC;YACf,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -0,0 +1,14 @@
1
+ import * as React from "react";
2
+ export const useOnWindowResize = (handler) => {
3
+ React.useEffect(() => {
4
+ const handleResize = () => {
5
+ handler();
6
+ };
7
+ handleResize();
8
+ window.addEventListener("resize", handleResize);
9
+ return () => {
10
+ window.removeEventListener("resize", handleResize);
11
+ };
12
+ }, [handler]);
13
+ };
14
+ //# sourceMappingURL=UseWindowOnResize.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UseWindowOnResize.js","sourceRoot":"","sources":["../../../../../../../UI/Components/Charts/ChartLibrary/Utils/UseWindowOnResize.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,MAAM,CAAC,MAAM,iBAAiB,GAAkC,CAC9D,OAAmB,EACb,EAAE;IACR,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,MAAM,YAAY,GAAe,GAAG,EAAE;YACpC,OAAO,EAAE,CAAC;QACZ,CAAC,CAAC;QACF,YAAY,EAAE,CAAC;QACf,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;QAEhD,OAAO,GAAG,EAAE;YACV,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;QACrD,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;AAChB,CAAC,CAAC"}