@quillsql/react 2.13.39 → 2.13.41

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 (255) hide show
  1. package/dist/cjs/Chart.d.ts +5 -1
  2. package/dist/cjs/Chart.d.ts.map +1 -1
  3. package/dist/cjs/Chart.js +51 -28
  4. package/dist/cjs/ChartBuilder.d.ts +13 -1
  5. package/dist/cjs/ChartBuilder.d.ts.map +1 -1
  6. package/dist/cjs/ChartBuilder.js +347 -147
  7. package/dist/cjs/ChartEditor.d.ts.map +1 -1
  8. package/dist/cjs/ChartEditor.js +11 -1
  9. package/dist/cjs/Context.d.ts +16 -4
  10. package/dist/cjs/Context.d.ts.map +1 -1
  11. package/dist/cjs/Context.js +57 -38
  12. package/dist/cjs/Dashboard.d.ts +6 -3
  13. package/dist/cjs/Dashboard.d.ts.map +1 -1
  14. package/dist/cjs/Dashboard.js +70 -28
  15. package/dist/cjs/QuillProvider.d.ts +4 -8
  16. package/dist/cjs/QuillProvider.d.ts.map +1 -1
  17. package/dist/cjs/ReportBuilder.d.ts +1 -1
  18. package/dist/cjs/ReportBuilder.d.ts.map +1 -1
  19. package/dist/cjs/ReportBuilder.js +117 -45
  20. package/dist/cjs/SQLEditor.d.ts +7 -1
  21. package/dist/cjs/SQLEditor.d.ts.map +1 -1
  22. package/dist/cjs/SQLEditor.js +53 -9
  23. package/dist/cjs/Table.d.ts +21 -1
  24. package/dist/cjs/Table.d.ts.map +1 -1
  25. package/dist/cjs/Table.js +30 -192
  26. package/dist/cjs/components/Chart/BarChart.d.ts +5 -1
  27. package/dist/cjs/components/Chart/BarChart.d.ts.map +1 -1
  28. package/dist/cjs/components/Chart/BarChart.js +4 -3
  29. package/dist/cjs/components/Chart/CustomReferenceLine.d.ts +2 -0
  30. package/dist/cjs/components/Chart/CustomReferenceLine.d.ts.map +1 -0
  31. package/dist/cjs/components/Chart/CustomReferenceLine.js +26 -0
  32. package/dist/cjs/components/Chart/GaugeChart.d.ts +11 -0
  33. package/dist/cjs/components/Chart/GaugeChart.d.ts.map +1 -0
  34. package/dist/cjs/components/Chart/GaugeChart.js +198 -0
  35. package/dist/cjs/components/Chart/InternalChart.d.ts.map +1 -1
  36. package/dist/cjs/components/Chart/InternalChart.js +14 -11
  37. package/dist/cjs/components/Chart/LineChart.d.ts +5 -1
  38. package/dist/cjs/components/Chart/LineChart.d.ts.map +1 -1
  39. package/dist/cjs/components/Chart/LineChart.js +4 -3
  40. package/dist/cjs/components/Chart/MapChart.d.ts +36 -0
  41. package/dist/cjs/components/Chart/MapChart.d.ts.map +1 -0
  42. package/dist/cjs/components/Chart/MapChart.js +548 -0
  43. package/dist/cjs/components/Dashboard/DataLoader.d.ts.map +1 -1
  44. package/dist/cjs/components/Dashboard/DataLoader.js +114 -42
  45. package/dist/cjs/components/Dashboard/MetricComponent.d.ts.map +1 -1
  46. package/dist/cjs/components/Dashboard/MetricComponent.js +57 -54
  47. package/dist/cjs/components/Dashboard/TableComponent.d.ts.map +1 -1
  48. package/dist/cjs/components/Dashboard/TableComponent.js +5 -1
  49. package/dist/cjs/components/QuillMultiSelectSectionList.js +5 -5
  50. package/dist/cjs/components/QuillMultiSelectWithCombo.d.ts.map +1 -1
  51. package/dist/cjs/components/QuillMultiSelectWithCombo.js +5 -4
  52. package/dist/cjs/components/QuillSelectWithCombo.d.ts.map +1 -1
  53. package/dist/cjs/components/QuillSelectWithCombo.js +12 -11
  54. package/dist/cjs/components/ReportBuilder/AddColumnModal.d.ts.map +1 -1
  55. package/dist/cjs/components/ReportBuilder/AddColumnModal.js +2 -1
  56. package/dist/cjs/components/ReportBuilder/FilterModal.js +13 -13
  57. package/dist/cjs/components/ReportBuilder/FilterStack.d.ts +2 -1
  58. package/dist/cjs/components/ReportBuilder/FilterStack.d.ts.map +1 -1
  59. package/dist/cjs/components/ReportBuilder/FilterStack.js +4 -4
  60. package/dist/cjs/components/ReportBuilder/convert.d.ts +2 -0
  61. package/dist/cjs/components/ReportBuilder/convert.d.ts.map +1 -1
  62. package/dist/cjs/components/ReportBuilder/convert.js +28 -7
  63. package/dist/cjs/components/ReportBuilder/util.d.ts +1 -1
  64. package/dist/cjs/components/ReportBuilder/util.d.ts.map +1 -1
  65. package/dist/cjs/components/ReportBuilder/util.js +15 -2
  66. package/dist/cjs/components/UiComponents.d.ts +4 -1
  67. package/dist/cjs/components/UiComponents.d.ts.map +1 -1
  68. package/dist/cjs/components/UiComponents.js +31 -5
  69. package/dist/cjs/hooks/useDashboard.d.ts.map +1 -1
  70. package/dist/cjs/hooks/useDashboard.js +11 -9
  71. package/dist/cjs/hooks/useExport.d.ts.map +1 -1
  72. package/dist/cjs/hooks/useExport.js +18 -4
  73. package/dist/cjs/hooks/useQuill.d.ts.map +1 -1
  74. package/dist/cjs/hooks/useQuill.js +16 -3
  75. package/dist/cjs/hooks/useReport.d.ts.map +1 -1
  76. package/dist/cjs/hooks/useReport.js +1 -7
  77. package/dist/cjs/hooks/useVirtualTables.d.ts +6 -2
  78. package/dist/cjs/hooks/useVirtualTables.d.ts.map +1 -1
  79. package/dist/cjs/hooks/useVirtualTables.js +5 -2
  80. package/dist/cjs/internals/ReportBuilder/PivotModal.d.ts.map +1 -1
  81. package/dist/cjs/internals/ReportBuilder/PivotModal.js +6 -7
  82. package/dist/cjs/models/Filter.d.ts +20 -13
  83. package/dist/cjs/models/Filter.d.ts.map +1 -1
  84. package/dist/cjs/models/Filter.js +161 -87
  85. package/dist/cjs/models/Report.d.ts +12 -1
  86. package/dist/cjs/models/Report.d.ts.map +1 -1
  87. package/dist/cjs/models/Schema.d.ts +12 -1
  88. package/dist/cjs/models/Schema.d.ts.map +1 -1
  89. package/dist/cjs/utils/astFilterProcessing.js +22 -22
  90. package/dist/cjs/utils/astProcessing.d.ts +2 -2
  91. package/dist/cjs/utils/astProcessing.d.ts.map +1 -1
  92. package/dist/cjs/utils/astProcessing.js +25 -6
  93. package/dist/cjs/utils/axisFormatter.d.ts.map +1 -1
  94. package/dist/cjs/utils/axisFormatter.js +25 -0
  95. package/dist/cjs/utils/color.d.ts +159 -0
  96. package/dist/cjs/utils/color.d.ts.map +1 -1
  97. package/dist/cjs/utils/color.js +14 -5
  98. package/dist/cjs/utils/columnProcessing.js +3 -3
  99. package/dist/cjs/utils/constants.d.ts +1 -0
  100. package/dist/cjs/utils/constants.d.ts.map +1 -1
  101. package/dist/cjs/utils/constants.js +2 -1
  102. package/dist/cjs/utils/dashboard.d.ts +13 -3
  103. package/dist/cjs/utils/dashboard.d.ts.map +1 -1
  104. package/dist/cjs/utils/dashboard.js +73 -16
  105. package/dist/cjs/utils/dataFetcher.d.ts.map +1 -1
  106. package/dist/cjs/utils/dataFetcher.js +3 -1
  107. package/dist/cjs/utils/filterProcessing.d.ts.map +1 -1
  108. package/dist/cjs/utils/filterProcessing.js +9 -9
  109. package/dist/cjs/utils/getDomain.d.ts +4 -1
  110. package/dist/cjs/utils/getDomain.d.ts.map +1 -1
  111. package/dist/cjs/utils/getDomain.js +11 -1
  112. package/dist/cjs/utils/pivotConstructor.d.ts.map +1 -1
  113. package/dist/cjs/utils/pivotConstructor.js +7 -6
  114. package/dist/cjs/utils/queryConstructor.d.ts +1 -1
  115. package/dist/cjs/utils/queryConstructor.d.ts.map +1 -1
  116. package/dist/cjs/utils/queryConstructor.js +71 -43
  117. package/dist/cjs/utils/report.d.ts +23 -5
  118. package/dist/cjs/utils/report.d.ts.map +1 -1
  119. package/dist/cjs/utils/report.js +28 -8
  120. package/dist/cjs/utils/schema.d.ts +26 -3
  121. package/dist/cjs/utils/schema.d.ts.map +1 -1
  122. package/dist/cjs/utils/schema.js +75 -43
  123. package/dist/cjs/utils/tableProcessing.d.ts +10 -3
  124. package/dist/cjs/utils/tableProcessing.d.ts.map +1 -1
  125. package/dist/cjs/utils/tableProcessing.js +4 -6
  126. package/dist/cjs/utils/textProcessing.d.ts.map +1 -1
  127. package/dist/cjs/utils/textProcessing.js +0 -1
  128. package/dist/esm/Chart.d.ts +5 -1
  129. package/dist/esm/Chart.d.ts.map +1 -1
  130. package/dist/esm/Chart.js +52 -29
  131. package/dist/esm/ChartBuilder.d.ts +13 -1
  132. package/dist/esm/ChartBuilder.d.ts.map +1 -1
  133. package/dist/esm/ChartBuilder.js +352 -152
  134. package/dist/esm/ChartEditor.d.ts.map +1 -1
  135. package/dist/esm/ChartEditor.js +11 -1
  136. package/dist/esm/Context.d.ts +16 -4
  137. package/dist/esm/Context.d.ts.map +1 -1
  138. package/dist/esm/Context.js +59 -40
  139. package/dist/esm/Dashboard.d.ts +6 -3
  140. package/dist/esm/Dashboard.d.ts.map +1 -1
  141. package/dist/esm/Dashboard.js +71 -29
  142. package/dist/esm/QuillProvider.d.ts +4 -8
  143. package/dist/esm/QuillProvider.d.ts.map +1 -1
  144. package/dist/esm/ReportBuilder.d.ts +1 -1
  145. package/dist/esm/ReportBuilder.d.ts.map +1 -1
  146. package/dist/esm/ReportBuilder.js +119 -47
  147. package/dist/esm/SQLEditor.d.ts +7 -1
  148. package/dist/esm/SQLEditor.d.ts.map +1 -1
  149. package/dist/esm/SQLEditor.js +54 -10
  150. package/dist/esm/Table.d.ts +21 -1
  151. package/dist/esm/Table.d.ts.map +1 -1
  152. package/dist/esm/Table.js +34 -196
  153. package/dist/esm/components/Chart/BarChart.d.ts +5 -1
  154. package/dist/esm/components/Chart/BarChart.d.ts.map +1 -1
  155. package/dist/esm/components/Chart/BarChart.js +5 -4
  156. package/dist/esm/components/Chart/CustomReferenceLine.d.ts +2 -0
  157. package/dist/esm/components/Chart/CustomReferenceLine.d.ts.map +1 -0
  158. package/dist/esm/components/Chart/CustomReferenceLine.js +23 -0
  159. package/dist/esm/components/Chart/GaugeChart.d.ts +11 -0
  160. package/dist/esm/components/Chart/GaugeChart.d.ts.map +1 -0
  161. package/dist/esm/components/Chart/GaugeChart.js +195 -0
  162. package/dist/esm/components/Chart/InternalChart.d.ts.map +1 -1
  163. package/dist/esm/components/Chart/InternalChart.js +14 -11
  164. package/dist/esm/components/Chart/LineChart.d.ts +5 -1
  165. package/dist/esm/components/Chart/LineChart.d.ts.map +1 -1
  166. package/dist/esm/components/Chart/LineChart.js +5 -4
  167. package/dist/esm/components/Chart/MapChart.d.ts +36 -0
  168. package/dist/esm/components/Chart/MapChart.d.ts.map +1 -0
  169. package/dist/esm/components/Chart/MapChart.js +541 -0
  170. package/dist/esm/components/Dashboard/DataLoader.d.ts.map +1 -1
  171. package/dist/esm/components/Dashboard/DataLoader.js +114 -42
  172. package/dist/esm/components/Dashboard/MetricComponent.d.ts.map +1 -1
  173. package/dist/esm/components/Dashboard/MetricComponent.js +57 -54
  174. package/dist/esm/components/Dashboard/TableComponent.d.ts.map +1 -1
  175. package/dist/esm/components/Dashboard/TableComponent.js +5 -1
  176. package/dist/esm/components/QuillMultiSelectSectionList.js +5 -5
  177. package/dist/esm/components/QuillMultiSelectWithCombo.d.ts.map +1 -1
  178. package/dist/esm/components/QuillMultiSelectWithCombo.js +5 -4
  179. package/dist/esm/components/QuillSelectWithCombo.d.ts.map +1 -1
  180. package/dist/esm/components/QuillSelectWithCombo.js +12 -11
  181. package/dist/esm/components/ReportBuilder/AddColumnModal.d.ts.map +1 -1
  182. package/dist/esm/components/ReportBuilder/AddColumnModal.js +2 -1
  183. package/dist/esm/components/ReportBuilder/FilterModal.js +14 -14
  184. package/dist/esm/components/ReportBuilder/FilterStack.d.ts +2 -1
  185. package/dist/esm/components/ReportBuilder/FilterStack.d.ts.map +1 -1
  186. package/dist/esm/components/ReportBuilder/FilterStack.js +4 -4
  187. package/dist/esm/components/ReportBuilder/convert.d.ts +2 -0
  188. package/dist/esm/components/ReportBuilder/convert.d.ts.map +1 -1
  189. package/dist/esm/components/ReportBuilder/convert.js +26 -7
  190. package/dist/esm/components/ReportBuilder/util.d.ts +1 -1
  191. package/dist/esm/components/ReportBuilder/util.d.ts.map +1 -1
  192. package/dist/esm/components/ReportBuilder/util.js +15 -2
  193. package/dist/esm/components/UiComponents.d.ts +4 -1
  194. package/dist/esm/components/UiComponents.d.ts.map +1 -1
  195. package/dist/esm/components/UiComponents.js +29 -4
  196. package/dist/esm/hooks/useDashboard.d.ts.map +1 -1
  197. package/dist/esm/hooks/useDashboard.js +11 -9
  198. package/dist/esm/hooks/useExport.d.ts.map +1 -1
  199. package/dist/esm/hooks/useExport.js +19 -5
  200. package/dist/esm/hooks/useQuill.d.ts.map +1 -1
  201. package/dist/esm/hooks/useQuill.js +16 -3
  202. package/dist/esm/hooks/useReport.d.ts.map +1 -1
  203. package/dist/esm/hooks/useReport.js +1 -7
  204. package/dist/esm/hooks/useVirtualTables.d.ts +6 -2
  205. package/dist/esm/hooks/useVirtualTables.d.ts.map +1 -1
  206. package/dist/esm/hooks/useVirtualTables.js +6 -3
  207. package/dist/esm/internals/ReportBuilder/PivotModal.d.ts.map +1 -1
  208. package/dist/esm/internals/ReportBuilder/PivotModal.js +6 -7
  209. package/dist/esm/models/Filter.d.ts +20 -13
  210. package/dist/esm/models/Filter.d.ts.map +1 -1
  211. package/dist/esm/models/Filter.js +160 -86
  212. package/dist/esm/models/Report.d.ts +12 -1
  213. package/dist/esm/models/Report.d.ts.map +1 -1
  214. package/dist/esm/models/Schema.d.ts +12 -1
  215. package/dist/esm/models/Schema.d.ts.map +1 -1
  216. package/dist/esm/utils/astFilterProcessing.js +23 -23
  217. package/dist/esm/utils/astProcessing.d.ts +2 -2
  218. package/dist/esm/utils/astProcessing.d.ts.map +1 -1
  219. package/dist/esm/utils/astProcessing.js +25 -6
  220. package/dist/esm/utils/axisFormatter.d.ts.map +1 -1
  221. package/dist/esm/utils/axisFormatter.js +25 -0
  222. package/dist/esm/utils/color.d.ts +159 -0
  223. package/dist/esm/utils/color.d.ts.map +1 -1
  224. package/dist/esm/utils/color.js +8 -2
  225. package/dist/esm/utils/columnProcessing.js +3 -3
  226. package/dist/esm/utils/constants.d.ts +1 -0
  227. package/dist/esm/utils/constants.d.ts.map +1 -1
  228. package/dist/esm/utils/constants.js +1 -0
  229. package/dist/esm/utils/dashboard.d.ts +13 -3
  230. package/dist/esm/utils/dashboard.d.ts.map +1 -1
  231. package/dist/esm/utils/dashboard.js +73 -16
  232. package/dist/esm/utils/dataFetcher.d.ts.map +1 -1
  233. package/dist/esm/utils/dataFetcher.js +3 -1
  234. package/dist/esm/utils/filterProcessing.d.ts.map +1 -1
  235. package/dist/esm/utils/filterProcessing.js +10 -10
  236. package/dist/esm/utils/getDomain.d.ts +4 -1
  237. package/dist/esm/utils/getDomain.d.ts.map +1 -1
  238. package/dist/esm/utils/getDomain.js +11 -1
  239. package/dist/esm/utils/pivotConstructor.d.ts.map +1 -1
  240. package/dist/esm/utils/pivotConstructor.js +7 -6
  241. package/dist/esm/utils/queryConstructor.d.ts +1 -1
  242. package/dist/esm/utils/queryConstructor.d.ts.map +1 -1
  243. package/dist/esm/utils/queryConstructor.js +71 -43
  244. package/dist/esm/utils/report.d.ts +23 -5
  245. package/dist/esm/utils/report.d.ts.map +1 -1
  246. package/dist/esm/utils/report.js +29 -9
  247. package/dist/esm/utils/schema.d.ts +26 -3
  248. package/dist/esm/utils/schema.d.ts.map +1 -1
  249. package/dist/esm/utils/schema.js +74 -43
  250. package/dist/esm/utils/tableProcessing.d.ts +10 -3
  251. package/dist/esm/utils/tableProcessing.d.ts.map +1 -1
  252. package/dist/esm/utils/tableProcessing.js +4 -6
  253. package/dist/esm/utils/textProcessing.d.ts.map +1 -1
  254. package/dist/esm/utils/textProcessing.js +0 -1
  255. package/package.json +8 -3
@@ -0,0 +1,195 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { useEffect, useRef } from "react";
3
+ import { select } from 'd3-selection';
4
+ import { arc } from 'd3-shape';
5
+ import { interpolate } from 'd3-interpolate';
6
+ import 'd3-transition';
7
+ import { axisFormatter } from "../../utils/axisFormatter";
8
+ export default function GaugeChart({ data, xAxisField, xAxisFormat, containerStyle, colors, isAnimationActive = true, }) {
9
+ const percentage = parseFloat(data[0][xAxisField]) || 0;
10
+ const normalizedPercentage = ['whole_number', 'two_decimal_places'].includes(xAxisFormat)
11
+ ? Math.max(Math.min(percentage / 100, 1), 0)
12
+ : Math.max(Math.min(percentage, 1), 0);
13
+ return (_jsx(D3Gauge, { percentage: normalizedPercentage, xAxisFormat: xAxisFormat, containerStyle: { ...containerStyle }, colors: colors, isAnimationActive: isAnimationActive }));
14
+ }
15
+ function D3Gauge({ percentage, containerStyle, xAxisFormat, colors, isAnimationActive }) {
16
+ const containerRef = useRef(null);
17
+ const svgRef = useRef(null);
18
+ const gaugeGroupRef = useRef(null);
19
+ const needleRef = useRef(null);
20
+ const needleOutlineRef = useRef(null);
21
+ const textRef = useRef(null);
22
+ const previousPercentageRef = useRef(0);
23
+ const firstMountRef = useRef(true);
24
+ // Gauge arc from -135° to +135°
25
+ const startAngle = -(3 * Math.PI) / 4;
26
+ const totalAngle = (3 * Math.PI) / 2;
27
+ // --- Initialization ---
28
+ useEffect(() => {
29
+ if (!containerRef.current)
30
+ return;
31
+ const container = containerRef.current;
32
+ select(container).select('svg').remove();
33
+ svgRef.current = select(container)
34
+ // Let CSS control the size.
35
+ .append('svg')
36
+ .attr('width', '100%')
37
+ .attr('height', '100%')
38
+ .attr('preserveAspectRatio', 'xMidYMid meet');
39
+ // .style('display', 'block')
40
+ // .style('margin', '0 auto');
41
+ // Create one main group for all gauge elements.
42
+ gaugeGroupRef.current = svgRef.current.append('g');
43
+ // Append placeholder arc segments.
44
+ for (let i = 0; i < 3; i++) {
45
+ gaugeGroupRef.current.append('path').attr('class', `arc-seg seg${i}`);
46
+ }
47
+ // Create needle outline and needle.
48
+ needleOutlineRef.current = gaugeGroupRef.current.append('line')
49
+ .attr('stroke', 'white')
50
+ .attr('stroke-width', 8)
51
+ .attr('stroke-linecap', 'round');
52
+ needleRef.current = gaugeGroupRef.current.append('line')
53
+ .attr('stroke', 'black')
54
+ .attr('stroke-width', 4)
55
+ .attr('stroke-linecap', 'round');
56
+ // Create text label.
57
+ textRef.current = gaugeGroupRef.current.append('text')
58
+ .attr('class', 'gauge-label')
59
+ .attr('text-anchor', 'middle')
60
+ .attr('fill', '#000')
61
+ .attr('font-weight', '500')
62
+ .text(`${Math.round(percentage * 100)}%`);
63
+ return () => {
64
+ svgRef.current?.remove();
65
+ svgRef.current = null;
66
+ };
67
+ }, [colors]);
68
+ // --- Update & Resize ---
69
+ useEffect(() => {
70
+ if (!containerRef.current ||
71
+ !svgRef.current ||
72
+ !gaugeGroupRef.current ||
73
+ !needleRef.current ||
74
+ !needleOutlineRef.current ||
75
+ !textRef.current)
76
+ return;
77
+ // Use getBoundingClientRect() so we get accurate dimensions.
78
+ const rect = containerRef.current.getBoundingClientRect();
79
+ const cw = rect.width;
80
+ const ch = rect.height;
81
+ // Our desired gauge has a 1:1.2 (height:width) ratio.
82
+ // We choose gaugeHeight as the smaller of ch and (cw / 1.2)
83
+ const gaugeHeight = Math.min(ch, cw / 1.2);
84
+ const gaugeWidth = gaugeHeight * 1.2;
85
+ const radius = gaugeHeight / 2;
86
+ const innerRadius = radius * 0.65;
87
+ // const arcWidth = radius - innerRadius;
88
+ // Vertical offset to visually center the 270° arc.
89
+ const verticalOffset = gaugeHeight * 0.05;
90
+ // Update viewBox so our internal coordinates scale.
91
+ svgRef.current
92
+ .attr('viewBox', `0 0 ${gaugeWidth} ${gaugeHeight}`);
93
+ // Center the gauge group.
94
+ gaugeGroupRef.current.attr('transform', `translate(${gaugeWidth / 2}, ${gaugeHeight / 2 + verticalOffset})`);
95
+ // Draw the arc segments.
96
+ const segments = [
97
+ { start: startAngle, end: startAngle + totalAngle / 3, color: colors[1] || 'red' },
98
+ { start: startAngle + totalAngle / 3, end: startAngle + (2 * totalAngle) / 3, color: colors[3] || 'yellow' },
99
+ { start: startAngle + (2 * totalAngle) / 3, end: startAngle + totalAngle, color: colors[2] || 'green' },
100
+ ];
101
+ const arcGenerator = arc()
102
+ .innerRadius(innerRadius)
103
+ .outerRadius(radius);
104
+ segments.forEach((seg, i) => {
105
+ gaugeGroupRef.current?.select(`.arc-seg.seg${i}`)
106
+ .attr('d', arcGenerator({
107
+ innerRadius,
108
+ outerRadius: radius,
109
+ startAngle: seg.start,
110
+ endAngle: seg.end,
111
+ }) || '')
112
+ .attr('fill', seg.color);
113
+ });
114
+ // Needle endpoints: tweak these factors to adjust length.
115
+ const calcEndpoints = (angle) => {
116
+ const startFactor = 0.85; // relative to innerRadius
117
+ const endFactor = 1.05; // relative to radius
118
+ const x1 = innerRadius * startFactor * Math.cos(angle);
119
+ const y1 = innerRadius * startFactor * Math.sin(angle);
120
+ const x2 = radius * endFactor * Math.cos(angle);
121
+ const y2 = radius * endFactor * Math.sin(angle);
122
+ return { x1, y1, x2, y2 };
123
+ };
124
+ // Compute the new needle angle (rotate so 0 = north).
125
+ const newAngle = startAngle + totalAngle * percentage - Math.PI / 2;
126
+ const endpoints = calcEndpoints(newAngle);
127
+ // Update text font-size relative to radius.
128
+ textRef.current.attr('font-size', radius / 3)
129
+ // Position text below the gauge center.
130
+ .attr('y', radius * 0.1);
131
+ if (isAnimationActive) {
132
+ const prevAngle = startAngle + totalAngle * previousPercentageRef.current - Math.PI / 2;
133
+ const angleInterpolator = interpolate(prevAngle, newAngle);
134
+ const textInterpolator = interpolate(previousPercentageRef.current, percentage);
135
+ needleRef.current.interrupt()
136
+ .transition()
137
+ .duration(1000)
138
+ .tween("needle", function () {
139
+ return function (t) {
140
+ const currentAngle = angleInterpolator(t);
141
+ const { x1, y1, x2, y2 } = calcEndpoints(currentAngle);
142
+ needleRef.current
143
+ .attr("x1", x1)
144
+ .attr("y1", y1)
145
+ .attr("x2", x2)
146
+ .attr("y2", y2);
147
+ needleOutlineRef.current
148
+ .attr("x1", x1)
149
+ .attr("y1", y1)
150
+ .attr("x2", x2)
151
+ .attr("y2", y2);
152
+ const currentPercentage = textInterpolator(t);
153
+ const percentText = axisFormatter({
154
+ value: xAxisFormat === 'percent' ? currentPercentage : currentPercentage * 100,
155
+ field: 'amount',
156
+ fields: [{ field: 'amount', format: xAxisFormat }]
157
+ }) + (xAxisFormat === 'percent' ? '' : '%');
158
+ textRef.current?.text(percentText);
159
+ };
160
+ });
161
+ }
162
+ else {
163
+ needleRef.current.interrupt()
164
+ .attr('x1', endpoints.x1)
165
+ .attr('y1', endpoints.y1)
166
+ .attr('x2', endpoints.x2)
167
+ .attr('y2', endpoints.y2);
168
+ needleOutlineRef.current.interrupt()
169
+ .attr('x1', endpoints.x1)
170
+ .attr('y1', endpoints.y1)
171
+ .attr('x2', endpoints.x2)
172
+ .attr('y2', endpoints.y2);
173
+ const percentText = axisFormatter({
174
+ value: xAxisFormat === 'percent' ? percentage : percentage * 100,
175
+ field: 'amount',
176
+ fields: [{ field: 'amount', format: xAxisFormat }]
177
+ }) + (xAxisFormat === 'percent' ? '' : '%');
178
+ textRef.current.text(percentText);
179
+ }
180
+ previousPercentageRef.current = percentage;
181
+ firstMountRef.current = false;
182
+ }, [percentage, colors, isAnimationActive, xAxisFormat]);
183
+ // Use ResizeObserver to trigger updates on container size changes.
184
+ useEffect(() => {
185
+ if (!containerRef.current)
186
+ return;
187
+ const observer = new ResizeObserver(() => {
188
+ // Force update by reading dimensions in the update effect.
189
+ previousPercentageRef.current = percentage;
190
+ });
191
+ observer.observe(containerRef.current);
192
+ return () => observer.disconnect();
193
+ }, [percentage]);
194
+ return (_jsx("div", { ref: containerRef, style: { width: '100%', height: '100%', ...containerStyle } }));
195
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"InternalChart.d.ts","sourceRoot":"","sources":["../../../../src/components/Chart/InternalChart.tsx"],"names":[],"mappings":"AA4BA,OAAO,EAAgB,UAAU,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,EAAE,WAAW,EAAkB,MAAM,qBAAqB,CAAC;AAOlE,wBAAgB,YAAY,CAAC,QAAQ,EAAE,GAAG,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,WAiH5D;AAyFD,MAAM,MAAM,YAAY,GAAG;IACzB,CAAC,GAAG,EAAE,MAAM,GAAG;QACb,OAAO,EAAE,MAAM,CAAC;QAChB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,oBAAoB,CAAC,EAAE,MAAM,CAAC;QAC9B,mBAAmB,CAAC,EAAE,MAAM,CAAC;QAC7B,uBAAuB,CAAC,EAAE,MAAM,CAAC;QACjC,sBAAsB,CAAC,EAAE,MAAM,CAAC;KACjC,CAAC;CACH,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,aAAa,CAAC,EACpC,MAAM,EACN,MAAM,EACN,SAAS,EACT,cAAc,EACd,iBAAiB,EACjB,SAAS,EACT,SAAS,EACT,iBAAiB,EACjB,2BAAmC,EACnC,yBAAgC,EAChC,wBAAgC,EAChC,sBAAgC,EAChC,sBAAsB,EACtB,mBAAmB,EACnB,mBAA2B,EAC3B,cAAc,EACd,iBAAiB,EACjB,iBAAiB,EACjB,gBAAuC,EACvC,eAAsC,EACtC,oBAAyD,EACzD,wBAA+C,EAC/C,eAAsC,EACtC,OAAO,EACP,uBAAuB,EACvB,mBAAmB,EACnB,OAAO,EACP,KAAK,EACL,OAAO,EACP,oBAAoB,EACpB,aAAa,GACd,EAAE,IAAI,CAAC,UAAU,EAAE,UAAU,CAAC,GAAG;IAChC,MAAM,EAAE,WAAW,CAAC;IACpB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,OAAO,CAAC;IACxB,iBAAiB,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IAC3C,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,uBAAuB,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,KAAK,IAAI,CAAC;IAC7D,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB,2CAsdA"}
1
+ {"version":3,"file":"InternalChart.d.ts","sourceRoot":"","sources":["../../../../src/components/Chart/InternalChart.tsx"],"names":[],"mappings":"AA4BA,OAAO,EAAgB,UAAU,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,EAAE,WAAW,EAAkB,MAAM,qBAAqB,CAAC;AAOlE,wBAAgB,YAAY,CAAC,QAAQ,EAAE,GAAG,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,WAiH5D;AAyFD,MAAM,MAAM,YAAY,GAAG;IACzB,CAAC,GAAG,EAAE,MAAM,GAAG;QACb,OAAO,EAAE,MAAM,CAAC;QAChB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,oBAAoB,CAAC,EAAE,MAAM,CAAC;QAC9B,mBAAmB,CAAC,EAAE,MAAM,CAAC;QAC7B,uBAAuB,CAAC,EAAE,MAAM,CAAC;QACjC,sBAAsB,CAAC,EAAE,MAAM,CAAC;KACjC,CAAC;CACH,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,aAAa,CAAC,EACpC,MAAM,EACN,MAAM,EACN,SAAS,EACT,cAAc,EACd,iBAAiB,EACjB,SAAS,EACT,SAAS,EACT,iBAAiB,EACjB,2BAAmC,EACnC,yBAAgC,EAChC,wBAAgC,EAChC,sBAAgC,EAChC,sBAAsB,EACtB,mBAAmB,EACnB,mBAA2B,EAC3B,cAAc,EACd,iBAAiB,EACjB,iBAAiB,EACjB,gBAAuC,EACvC,eAAsC,EACtC,oBAAyD,EACzD,wBAA+C,EAC/C,eAAsC,EACtC,OAAO,EACP,uBAAuB,EACvB,mBAAmB,EACnB,OAAO,EACP,KAAK,EACL,OAAO,EACP,oBAAoB,EACpB,aAAa,GACd,EAAE,IAAI,CAAC,UAAU,EAAE,UAAU,CAAC,GAAG;IAChC,MAAM,EAAE,WAAW,CAAC;IACpB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,OAAO,CAAC;IACxB,iBAAiB,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IAC3C,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,uBAAuB,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,KAAK,IAAI,CAAC;IAC7D,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB,2CAudA"}
@@ -211,9 +211,9 @@ export default function InternalChart({ report, colors, className, containerStyl
211
211
  // const userFilters = useMemo(() => {
212
212
  // return filters?.filter(
213
213
  // (f) =>
214
- // f.filterType !== FilterType.DateCustomFilter &&
215
- // f.filterType !== FilterType.DateFilter &&
216
- // f.filterType !== FilterType.DateComparisonFilter,
214
+ // f.filterType !== InternalFilterType.DateCustomFilter &&
215
+ // f.filterType !== InternalFilterType.DateFilter &&
216
+ // f.filterType !== InternalFilterType.DateComparisonFilter,
217
217
  // );
218
218
  // }, [filters]);
219
219
  // A filter value can either be a string, an array of strings for a multiselect, or a date range (that could have a comparison range)
@@ -221,9 +221,10 @@ export default function InternalChart({ report, colors, className, containerStyl
221
221
  useEffect(() => {
222
222
  if (reportDateFilter) {
223
223
  // Filter for custom date filter that applies to the report's dateField
224
- const customDateFilter = filters?.find((f) => f.filterType === FilterType.DateCustomFilter ||
225
- f.filterType === FilterType.DateFilter ||
226
- f.filterType === FilterType.DateComparisonFilter);
224
+ const customDateFilter = filters?.find((f) => f.filterType === FilterType.Date
225
+ // FIXME: this is the correct way to do it but the demo has a hardcoded filter field
226
+ // && f.field === report?.dateField?.field && f.table === report?.dateField?.table,
227
+ );
227
228
  if (!customDateFilter) {
228
229
  return;
229
230
  }
@@ -366,6 +367,7 @@ export default function InternalChart({ report, colors, className, containerStyl
366
367
  padding: filtersEnabled ? 12 : 0,
367
368
  borderRadius: 6,
368
369
  opacity: filterToggleDisabled ? 0.5 : 1,
370
+ zIndex: 1,
369
371
  }, children: [_jsx("div", { style: {
370
372
  display: 'flex',
371
373
  flexDirection: 'row',
@@ -402,7 +404,6 @@ export default function InternalChart({ report, colors, className, containerStyl
402
404
  minWidth: 500,
403
405
  paddingBottom: !filtersExpanded && filtersOverflowing && filtersEnabled ? 116 : 0,
404
406
  position: 'relative',
405
- // overflow: filtersExpanded ? undefined : 'hidden',
406
407
  }, children: [filtersEnabled &&
407
408
  currentReportFilters.map((filter, index) => (_jsx(DashboardFilter, { filter: {
408
409
  ...filter.filter,
@@ -460,8 +461,10 @@ export default function InternalChart({ report, colors, className, containerStyl
460
461
  marginBottom: 'auto',
461
462
  display: 'flex',
462
463
  }, children: _jsx(MetricComponent, { error: error, isLoading: loading, report: report, children: report?.rows?.[0]?.[report.xAxisField] }) })), report.chartType !== 'table' && report.chartType !== 'metric' && (_jsx(ChartDisplay, { config: report, containerStyle: {
463
- width: '100%',
464
- height: '100%',
465
- minHeight: 300,
466
- }, reportId: report.id, colors: colors, className: className, hideXAxis: hideXAxis, hideYAxis: hideYAxis, hideCartesianGrid: hideCartesianGrid, hideHorizontalCartesianGrid: hideHorizontalCartesianGrid, hideVerticalCartesianGrid: hideVerticalCartesianGrid, hideSubsequentXAxisTicks: hideSubsequentXAxisTicks, cartesianGridLineStyle: cartesianGridLineStyle, cartesianGridLineColor: cartesianGridLineColor, hideDateRangeFilter: hideDateRangeFilter, comparisonLineStyle: comparisonLineStyle, isAnimationActive: isAnimationActive, loading: loading, scrollable: true, colorMap: colorMap, LoadingComponent: LoadingComponent, onClickChartElement: onClickChartElement }))] }))] }));
464
+ minHeight: ['gauge'].includes(report.chartType) ? 500 : 400,
465
+ width: ['US map', 'World map'].includes(report.chartType) ? '70%' : ['gauge'].includes(report.chartType) ? undefined : '100%',
466
+ height: ['US map', 'World map'].includes(report.chartType) ? 'fit-content' : ['gauge'].includes(report.chartType) ? 500 : undefined,
467
+ marginLeft: ['gauge'].includes(report.chartType) ? 'undefined' : 'auto',
468
+ marginRight: ['gauge'].includes(report.chartType) ? 'undefined' : 'auto',
469
+ }, reportId: report.id, colors: colors, className: className, hideXAxis: hideXAxis, hideYAxis: hideYAxis, hideCartesianGrid: hideCartesianGrid, hideHorizontalCartesianGrid: hideHorizontalCartesianGrid, hideVerticalCartesianGrid: hideVerticalCartesianGrid, hideSubsequentXAxisTicks: hideSubsequentXAxisTicks, cartesianGridLineStyle: cartesianGridLineStyle, cartesianGridLineColor: cartesianGridLineColor, hideDateRangeFilter: hideDateRangeFilter, comparisonLineStyle: comparisonLineStyle, isAnimationActive: isAnimationActive, loading: loading, scrollable: true, colorMap: colorMap, LoadingComponent: LoadingComponent, onClickChartElement: onClickChartElement, referenceLines: report.referenceLineYValues }))] }))] }));
467
470
  }
@@ -1,6 +1,6 @@
1
1
  import { type ColorMapType } from '../../Chart';
2
2
  import { AxisFormat } from '../../Dashboard';
3
- export default function LineChart({ colors, colorMap, yAxisFields, data, containerStyle, className, xAxisField, xAxisFormat, theme, comparison, isAnimationActive, hideXAxis, hideYAxis, hideCartesianGrid, hideHorizontalCartesianGrid, hideVerticalCartesianGrid, hideSubsequentXAxisTicks, cartesianGridLineStyle, comparisonLineStyle, cartesianGridLineColor, onClickChartElement, dateFilter, }: {
3
+ export default function LineChart({ colors, colorMap, yAxisFields, data, containerStyle, className, xAxisField, xAxisFormat, theme, comparison, isAnimationActive, hideXAxis, hideYAxis, hideCartesianGrid, hideHorizontalCartesianGrid, hideVerticalCartesianGrid, hideSubsequentXAxisTicks, cartesianGridLineStyle, comparisonLineStyle, cartesianGridLineColor, onClickChartElement, dateFilter, referenceLines, }: {
4
4
  colors: string[];
5
5
  colorMap?: ColorMapType;
6
6
  yAxisFields: any[];
@@ -24,5 +24,9 @@ export default function LineChart({ colors, colorMap, yAxisFields, data, contain
24
24
  cartesianGridLineColor?: string;
25
25
  onClickChartElement?: (e: any) => void;
26
26
  dateFilter?: any;
27
+ referenceLines?: {
28
+ label: string;
29
+ query: number[];
30
+ }[];
27
31
  }): import("react/jsx-runtime").JSX.Element;
28
32
  //# sourceMappingURL=LineChart.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"LineChart.d.ts","sourceRoot":"","sources":["../../../../src/components/Chart/LineChart.tsx"],"names":[],"mappings":"AAcA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AA2B7C,MAAM,CAAC,OAAO,UAAU,SAAS,CAAC,EAChC,MAAM,EACN,QAAa,EACb,WAAW,EACX,IAAI,EACJ,cAAc,EACd,SAAS,EACT,UAAU,EACV,WAAW,EACX,KAAK,EACL,UAAU,EACV,iBAAwB,EACxB,SAAiB,EACjB,SAAiB,EACjB,iBAAyB,EACzB,2BAAmC,EACnC,yBAAgC,EAChC,wBAAgC,EAChC,sBAAgC,EAChC,mBAA6B,EAC7B,sBAAsB,EACtB,mBAA8B,EAC9B,UAAU,GACX,EAAE;IACD,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,CAAC,EAAE,YAAY,CAAC;IACxB,WAAW,EAAE,GAAG,EAAE,CAAC;IACnB,IAAI,EAAE,GAAG,EAAE,CAAC;IACZ,cAAc,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IACrC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,UAAU,CAAC;IACxB,KAAK,EAAE,GAAG,CAAC;IACX,UAAU,EAAE,GAAG,CAAC;IAChB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;IACnB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,2BAA2B,EAAE,OAAO,CAAC;IACrC,yBAAyB,EAAE,OAAO,CAAC;IACnC,wBAAwB,EAAE,OAAO,CAAC;IAClC,sBAAsB,EAAE,OAAO,GAAG,QAAQ,CAAC;IAC3C,mBAAmB,EAAE,OAAO,GAAG,QAAQ,CAAC;IACxC,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,mBAAmB,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,KAAK,IAAI,CAAC;IACvC,UAAU,CAAC,EAAE,GAAG,CAAC;CAClB,2CAqRA"}
1
+ {"version":3,"file":"LineChart.d.ts","sourceRoot":"","sources":["../../../../src/components/Chart/LineChart.tsx"],"names":[],"mappings":"AAeA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AA4B7C,MAAM,CAAC,OAAO,UAAU,SAAS,CAAC,EAChC,MAAM,EACN,QAAa,EACb,WAAW,EACX,IAAI,EACJ,cAAc,EACd,SAAS,EACT,UAAU,EACV,WAAW,EACX,KAAK,EACL,UAAU,EACV,iBAAwB,EACxB,SAAiB,EACjB,SAAiB,EACjB,iBAAyB,EACzB,2BAAmC,EACnC,yBAAgC,EAChC,wBAAgC,EAChC,sBAAgC,EAChC,mBAA6B,EAC7B,sBAAsB,EACtB,mBAA8B,EAC9B,UAAU,EACV,cAAc,GACf,EAAE;IACD,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,CAAC,EAAE,YAAY,CAAC;IACxB,WAAW,EAAE,GAAG,EAAE,CAAC;IACnB,IAAI,EAAE,GAAG,EAAE,CAAC;IACZ,cAAc,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IACrC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,UAAU,CAAC;IACxB,KAAK,EAAE,GAAG,CAAC;IACX,UAAU,EAAE,GAAG,CAAC;IAChB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;IACnB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,2BAA2B,EAAE,OAAO,CAAC;IACrC,yBAAyB,EAAE,OAAO,CAAC;IACnC,wBAAwB,EAAE,OAAO,CAAC;IAClC,sBAAsB,EAAE,OAAO,GAAG,QAAQ,CAAC;IAC3C,mBAAmB,EAAE,OAAO,GAAG,QAAQ,CAAC;IACxC,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,mBAAmB,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,KAAK,IAAI,CAAC;IACvC,UAAU,CAAC,EAAE,GAAG,CAAC;IACjB,cAAc,CAAC,EAAE;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,EAAE,CAAA;KAAC,EAAE,CAAC;CACrD,2CAyRA"}
@@ -1,5 +1,5 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { Area, CartesianGrid, ComposedChart, ResponsiveContainer, Tooltip, XAxis, YAxis, } from 'recharts';
2
+ import { Area, CartesianGrid, ComposedChart, Customized, ResponsiveContainer, Tooltip, XAxis, YAxis, } from 'recharts';
3
3
  import { DATE_FORMAT_TYPES, valueFormatter } from '../../utils/valueFormatter';
4
4
  import { axisFormatter } from '../../utils/axisFormatter';
5
5
  import { selectColor } from '../../utils/color';
@@ -7,6 +7,7 @@ import ChartTooltip from '../../components/Chart/ChartTooltip';
7
7
  import getDomain from '../../utils/getDomain';
8
8
  import { hashCode } from '../../utils/crypto';
9
9
  import { useMemo } from 'react';
10
+ import CustomReferenceLine from './CustomReferenceLine';
10
11
  function createLineForEmptyChart(yAxisFields, dateFilter, xAxisField, xAxisFormat) {
11
12
  let lineChartData = [];
12
13
  if (dateFilter &&
@@ -23,7 +24,7 @@ function createLineForEmptyChart(yAxisFields, dateFilter, xAxisField, xAxisForma
23
24
  }
24
25
  return lineChartData;
25
26
  }
26
- export default function LineChart({ colors, colorMap = {}, yAxisFields, data, containerStyle, className, xAxisField, xAxisFormat, theme, comparison, isAnimationActive = true, hideXAxis = false, hideYAxis = false, hideCartesianGrid = false, hideHorizontalCartesianGrid = false, hideVerticalCartesianGrid = true, hideSubsequentXAxisTicks = false, cartesianGridLineStyle = 'solid', comparisonLineStyle = 'solid', cartesianGridLineColor, onClickChartElement = () => { }, dateFilter, }) {
27
+ export default function LineChart({ colors, colorMap = {}, yAxisFields, data, containerStyle, className, xAxisField, xAxisFormat, theme, comparison, isAnimationActive = true, hideXAxis = false, hideYAxis = false, hideCartesianGrid = false, hideHorizontalCartesianGrid = false, hideVerticalCartesianGrid = true, hideSubsequentXAxisTicks = false, cartesianGridLineStyle = 'solid', comparisonLineStyle = 'solid', cartesianGridLineColor, onClickChartElement = () => { }, dateFilter, referenceLines, }) {
27
28
  const formattedData = useMemo(() => {
28
29
  if (!data || data.length === 0) {
29
30
  return createLineForEmptyChart(yAxisFields, dateFilter, xAxisField, xAxisFormat);
@@ -86,7 +87,7 @@ export default function LineChart({ colors, colorMap = {}, yAxisFields, data, co
86
87
  field: xAxisField,
87
88
  fields: [{ field: xAxisField, format: xAxisFormat }],
88
89
  });
89
- } }), _jsx(YAxis, { hide: hideYAxis, width: 44, axisLine: false, tickLine: false, type: "number", domain: getDomain(data, yAxisFields), tick: { transform: 'translate(-3, 0)' }, tickCount: 5, style: {
90
+ } }), _jsx(YAxis, { hide: hideYAxis, width: 44, axisLine: false, tickLine: false, type: "number", domain: getDomain(data, yAxisFields, referenceLines), tick: { transform: 'translate(-3, 0)' }, tickCount: 5, style: {
90
91
  fontSize: '12px',
91
92
  fontFamily: theme?.chartLabelFontFamily ||
92
93
  theme?.fontFamily ||
@@ -159,7 +160,7 @@ export default function LineChart({ colors, colorMap = {}, yAxisFields, data, co
159
160
  const gradientStop = getCustomColor(index, elem.field, 'stop') ?? '#00000000';
160
161
  const uniqueId = `gradient_${hashCode(gradientStart)}_${hashCode(gradientStop)}`;
161
162
  return (_jsx("defs", { children: _jsxs("linearGradient", { id: uniqueId, x1: "0", y1: "0", x2: "0", y2: "1", children: [_jsx("stop", { offset: "5%", stopColor: gradientStart, stopOpacity: 0.4 }), _jsx("stop", { offset: "95%", stopColor: gradientStop, stopOpacity: 0 })] }) }, `defs_${uniqueId}_${index}`));
162
- }), yAxisFields &&
163
+ }), referenceLines && Array.isArray(referenceLines) && (referenceLines.map(({ label, query }) => (_jsx(Customized, { component: (props) => _jsx(CustomReferenceLine, { ...props, referenceLine: query, label: label }) }, label)))), yAxisFields &&
163
164
  yAxisFields.map((elem, index) => {
164
165
  const gradientStart = hashCode(getCustomColor(index, elem.field, 'start') ??
165
166
  getCustomColor(index, elem.field) ??
@@ -0,0 +1,36 @@
1
+ import { QuillTheme } from "../../QuillProvider";
2
+ import { AxisFormat } from "../../Dashboard";
3
+ import { ColorMapType } from "../../Chart";
4
+ export declare function USMap({ theme, data, xAxisField, xAxisFormat, yAxisFields, onClickChartElement, colors, colorMap, className, containerStyle, }: {
5
+ theme: QuillTheme | null;
6
+ data: any[];
7
+ xAxisField: string;
8
+ xAxisFormat: AxisFormat;
9
+ yAxisFields: {
10
+ field: string;
11
+ label: string;
12
+ format: AxisFormat;
13
+ }[];
14
+ onClickChartElement?: (data: any) => void;
15
+ colors: string[];
16
+ colorMap?: ColorMapType;
17
+ className?: string;
18
+ containerStyle?: React.CSSProperties;
19
+ }): import("react/jsx-runtime").JSX.Element;
20
+ export declare function WorldMap({ theme, data, xAxisField, xAxisFormat, yAxisFields, onClickChartElement, colors, colorMap, className, containerStyle, }: {
21
+ theme: QuillTheme | null;
22
+ data: any[];
23
+ xAxisField: string;
24
+ xAxisFormat: AxisFormat;
25
+ yAxisFields: {
26
+ field: string;
27
+ label: string;
28
+ format: AxisFormat;
29
+ }[];
30
+ onClickChartElement?: (data: any) => void;
31
+ colors: string[];
32
+ colorMap?: ColorMapType;
33
+ className?: string;
34
+ containerStyle?: React.CSSProperties;
35
+ }): import("react/jsx-runtime").JSX.Element;
36
+ //# sourceMappingURL=MapChart.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MapChart.d.ts","sourceRoot":"","sources":["../../../../src/components/Chart/MapChart.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAG7C,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAuT3C,wBAAgB,KAAK,CAAC,EACpB,KAAK,EACL,IAAI,EACJ,UAAU,EACV,WAAW,EACX,WAAW,EACX,mBAAmB,EACnB,MAAM,EACN,QAAQ,EACR,SAAS,EACT,cAAc,GACf,EAAE;IACD,KAAK,EAAE,UAAU,GAAG,IAAI,CAAC;IACzB,IAAI,EAAE,GAAG,EAAE,CAAC;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,UAAU,CAAC;IACxB,WAAW,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,UAAU,CAAC;KAAE,EAAE,CAAC;IACrE,mBAAmB,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,IAAI,CAAC;IAC1C,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,CAAC,EAAE,YAAY,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;CACtC,2CAuJA;AAED,wBAAgB,QAAQ,CAAC,EACvB,KAAK,EACL,IAAI,EACJ,UAAU,EACV,WAAW,EACX,WAAW,EACX,mBAAmB,EACnB,MAAM,EACN,QAAQ,EACR,SAAS,EACT,cAAc,GACf,EAAE;IACD,KAAK,EAAE,UAAU,GAAG,IAAI,CAAC;IACzB,IAAI,EAAE,GAAG,EAAE,CAAC;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,UAAU,CAAC;IACxB,WAAW,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,UAAU,CAAC;KAAE,EAAE,CAAC;IACrE,mBAAmB,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,IAAI,CAAC;IAC1C,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,CAAC,EAAE,YAAY,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;CACtC,2CAwJA"}