@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.
- package/dist/cjs/Chart.d.ts +5 -1
- package/dist/cjs/Chart.d.ts.map +1 -1
- package/dist/cjs/Chart.js +51 -28
- package/dist/cjs/ChartBuilder.d.ts +13 -1
- package/dist/cjs/ChartBuilder.d.ts.map +1 -1
- package/dist/cjs/ChartBuilder.js +347 -147
- package/dist/cjs/ChartEditor.d.ts.map +1 -1
- package/dist/cjs/ChartEditor.js +11 -1
- package/dist/cjs/Context.d.ts +16 -4
- package/dist/cjs/Context.d.ts.map +1 -1
- package/dist/cjs/Context.js +57 -38
- package/dist/cjs/Dashboard.d.ts +6 -3
- package/dist/cjs/Dashboard.d.ts.map +1 -1
- package/dist/cjs/Dashboard.js +70 -28
- package/dist/cjs/QuillProvider.d.ts +4 -8
- package/dist/cjs/QuillProvider.d.ts.map +1 -1
- package/dist/cjs/ReportBuilder.d.ts +1 -1
- package/dist/cjs/ReportBuilder.d.ts.map +1 -1
- package/dist/cjs/ReportBuilder.js +117 -45
- package/dist/cjs/SQLEditor.d.ts +7 -1
- package/dist/cjs/SQLEditor.d.ts.map +1 -1
- package/dist/cjs/SQLEditor.js +53 -9
- package/dist/cjs/Table.d.ts +21 -1
- package/dist/cjs/Table.d.ts.map +1 -1
- package/dist/cjs/Table.js +30 -192
- package/dist/cjs/components/Chart/BarChart.d.ts +5 -1
- package/dist/cjs/components/Chart/BarChart.d.ts.map +1 -1
- package/dist/cjs/components/Chart/BarChart.js +4 -3
- package/dist/cjs/components/Chart/CustomReferenceLine.d.ts +2 -0
- package/dist/cjs/components/Chart/CustomReferenceLine.d.ts.map +1 -0
- package/dist/cjs/components/Chart/CustomReferenceLine.js +26 -0
- package/dist/cjs/components/Chart/GaugeChart.d.ts +11 -0
- package/dist/cjs/components/Chart/GaugeChart.d.ts.map +1 -0
- package/dist/cjs/components/Chart/GaugeChart.js +198 -0
- package/dist/cjs/components/Chart/InternalChart.d.ts.map +1 -1
- package/dist/cjs/components/Chart/InternalChart.js +14 -11
- package/dist/cjs/components/Chart/LineChart.d.ts +5 -1
- package/dist/cjs/components/Chart/LineChart.d.ts.map +1 -1
- package/dist/cjs/components/Chart/LineChart.js +4 -3
- package/dist/cjs/components/Chart/MapChart.d.ts +36 -0
- package/dist/cjs/components/Chart/MapChart.d.ts.map +1 -0
- package/dist/cjs/components/Chart/MapChart.js +548 -0
- package/dist/cjs/components/Dashboard/DataLoader.d.ts.map +1 -1
- package/dist/cjs/components/Dashboard/DataLoader.js +114 -42
- package/dist/cjs/components/Dashboard/MetricComponent.d.ts.map +1 -1
- package/dist/cjs/components/Dashboard/MetricComponent.js +57 -54
- package/dist/cjs/components/Dashboard/TableComponent.d.ts.map +1 -1
- package/dist/cjs/components/Dashboard/TableComponent.js +5 -1
- package/dist/cjs/components/QuillMultiSelectSectionList.js +5 -5
- package/dist/cjs/components/QuillMultiSelectWithCombo.d.ts.map +1 -1
- package/dist/cjs/components/QuillMultiSelectWithCombo.js +5 -4
- package/dist/cjs/components/QuillSelectWithCombo.d.ts.map +1 -1
- package/dist/cjs/components/QuillSelectWithCombo.js +12 -11
- package/dist/cjs/components/ReportBuilder/AddColumnModal.d.ts.map +1 -1
- package/dist/cjs/components/ReportBuilder/AddColumnModal.js +2 -1
- package/dist/cjs/components/ReportBuilder/FilterModal.js +13 -13
- package/dist/cjs/components/ReportBuilder/FilterStack.d.ts +2 -1
- package/dist/cjs/components/ReportBuilder/FilterStack.d.ts.map +1 -1
- package/dist/cjs/components/ReportBuilder/FilterStack.js +4 -4
- package/dist/cjs/components/ReportBuilder/convert.d.ts +2 -0
- package/dist/cjs/components/ReportBuilder/convert.d.ts.map +1 -1
- package/dist/cjs/components/ReportBuilder/convert.js +28 -7
- package/dist/cjs/components/ReportBuilder/util.d.ts +1 -1
- package/dist/cjs/components/ReportBuilder/util.d.ts.map +1 -1
- package/dist/cjs/components/ReportBuilder/util.js +15 -2
- package/dist/cjs/components/UiComponents.d.ts +4 -1
- package/dist/cjs/components/UiComponents.d.ts.map +1 -1
- package/dist/cjs/components/UiComponents.js +31 -5
- package/dist/cjs/hooks/useDashboard.d.ts.map +1 -1
- package/dist/cjs/hooks/useDashboard.js +11 -9
- package/dist/cjs/hooks/useExport.d.ts.map +1 -1
- package/dist/cjs/hooks/useExport.js +18 -4
- package/dist/cjs/hooks/useQuill.d.ts.map +1 -1
- package/dist/cjs/hooks/useQuill.js +16 -3
- package/dist/cjs/hooks/useReport.d.ts.map +1 -1
- package/dist/cjs/hooks/useReport.js +1 -7
- package/dist/cjs/hooks/useVirtualTables.d.ts +6 -2
- package/dist/cjs/hooks/useVirtualTables.d.ts.map +1 -1
- package/dist/cjs/hooks/useVirtualTables.js +5 -2
- package/dist/cjs/internals/ReportBuilder/PivotModal.d.ts.map +1 -1
- package/dist/cjs/internals/ReportBuilder/PivotModal.js +6 -7
- package/dist/cjs/models/Filter.d.ts +20 -13
- package/dist/cjs/models/Filter.d.ts.map +1 -1
- package/dist/cjs/models/Filter.js +161 -87
- package/dist/cjs/models/Report.d.ts +12 -1
- package/dist/cjs/models/Report.d.ts.map +1 -1
- package/dist/cjs/models/Schema.d.ts +12 -1
- package/dist/cjs/models/Schema.d.ts.map +1 -1
- package/dist/cjs/utils/astFilterProcessing.js +22 -22
- package/dist/cjs/utils/astProcessing.d.ts +2 -2
- package/dist/cjs/utils/astProcessing.d.ts.map +1 -1
- package/dist/cjs/utils/astProcessing.js +25 -6
- package/dist/cjs/utils/axisFormatter.d.ts.map +1 -1
- package/dist/cjs/utils/axisFormatter.js +25 -0
- package/dist/cjs/utils/color.d.ts +159 -0
- package/dist/cjs/utils/color.d.ts.map +1 -1
- package/dist/cjs/utils/color.js +14 -5
- package/dist/cjs/utils/columnProcessing.js +3 -3
- package/dist/cjs/utils/constants.d.ts +1 -0
- package/dist/cjs/utils/constants.d.ts.map +1 -1
- package/dist/cjs/utils/constants.js +2 -1
- package/dist/cjs/utils/dashboard.d.ts +13 -3
- package/dist/cjs/utils/dashboard.d.ts.map +1 -1
- package/dist/cjs/utils/dashboard.js +73 -16
- package/dist/cjs/utils/dataFetcher.d.ts.map +1 -1
- package/dist/cjs/utils/dataFetcher.js +3 -1
- package/dist/cjs/utils/filterProcessing.d.ts.map +1 -1
- package/dist/cjs/utils/filterProcessing.js +9 -9
- package/dist/cjs/utils/getDomain.d.ts +4 -1
- package/dist/cjs/utils/getDomain.d.ts.map +1 -1
- package/dist/cjs/utils/getDomain.js +11 -1
- package/dist/cjs/utils/pivotConstructor.d.ts.map +1 -1
- package/dist/cjs/utils/pivotConstructor.js +7 -6
- package/dist/cjs/utils/queryConstructor.d.ts +1 -1
- package/dist/cjs/utils/queryConstructor.d.ts.map +1 -1
- package/dist/cjs/utils/queryConstructor.js +71 -43
- package/dist/cjs/utils/report.d.ts +23 -5
- package/dist/cjs/utils/report.d.ts.map +1 -1
- package/dist/cjs/utils/report.js +28 -8
- package/dist/cjs/utils/schema.d.ts +26 -3
- package/dist/cjs/utils/schema.d.ts.map +1 -1
- package/dist/cjs/utils/schema.js +75 -43
- package/dist/cjs/utils/tableProcessing.d.ts +10 -3
- package/dist/cjs/utils/tableProcessing.d.ts.map +1 -1
- package/dist/cjs/utils/tableProcessing.js +4 -6
- package/dist/cjs/utils/textProcessing.d.ts.map +1 -1
- package/dist/cjs/utils/textProcessing.js +0 -1
- package/dist/esm/Chart.d.ts +5 -1
- package/dist/esm/Chart.d.ts.map +1 -1
- package/dist/esm/Chart.js +52 -29
- package/dist/esm/ChartBuilder.d.ts +13 -1
- package/dist/esm/ChartBuilder.d.ts.map +1 -1
- package/dist/esm/ChartBuilder.js +352 -152
- package/dist/esm/ChartEditor.d.ts.map +1 -1
- package/dist/esm/ChartEditor.js +11 -1
- package/dist/esm/Context.d.ts +16 -4
- package/dist/esm/Context.d.ts.map +1 -1
- package/dist/esm/Context.js +59 -40
- package/dist/esm/Dashboard.d.ts +6 -3
- package/dist/esm/Dashboard.d.ts.map +1 -1
- package/dist/esm/Dashboard.js +71 -29
- package/dist/esm/QuillProvider.d.ts +4 -8
- package/dist/esm/QuillProvider.d.ts.map +1 -1
- package/dist/esm/ReportBuilder.d.ts +1 -1
- package/dist/esm/ReportBuilder.d.ts.map +1 -1
- package/dist/esm/ReportBuilder.js +119 -47
- package/dist/esm/SQLEditor.d.ts +7 -1
- package/dist/esm/SQLEditor.d.ts.map +1 -1
- package/dist/esm/SQLEditor.js +54 -10
- package/dist/esm/Table.d.ts +21 -1
- package/dist/esm/Table.d.ts.map +1 -1
- package/dist/esm/Table.js +34 -196
- package/dist/esm/components/Chart/BarChart.d.ts +5 -1
- package/dist/esm/components/Chart/BarChart.d.ts.map +1 -1
- package/dist/esm/components/Chart/BarChart.js +5 -4
- package/dist/esm/components/Chart/CustomReferenceLine.d.ts +2 -0
- package/dist/esm/components/Chart/CustomReferenceLine.d.ts.map +1 -0
- package/dist/esm/components/Chart/CustomReferenceLine.js +23 -0
- package/dist/esm/components/Chart/GaugeChart.d.ts +11 -0
- package/dist/esm/components/Chart/GaugeChart.d.ts.map +1 -0
- package/dist/esm/components/Chart/GaugeChart.js +195 -0
- package/dist/esm/components/Chart/InternalChart.d.ts.map +1 -1
- package/dist/esm/components/Chart/InternalChart.js +14 -11
- package/dist/esm/components/Chart/LineChart.d.ts +5 -1
- package/dist/esm/components/Chart/LineChart.d.ts.map +1 -1
- package/dist/esm/components/Chart/LineChart.js +5 -4
- package/dist/esm/components/Chart/MapChart.d.ts +36 -0
- package/dist/esm/components/Chart/MapChart.d.ts.map +1 -0
- package/dist/esm/components/Chart/MapChart.js +541 -0
- package/dist/esm/components/Dashboard/DataLoader.d.ts.map +1 -1
- package/dist/esm/components/Dashboard/DataLoader.js +114 -42
- package/dist/esm/components/Dashboard/MetricComponent.d.ts.map +1 -1
- package/dist/esm/components/Dashboard/MetricComponent.js +57 -54
- package/dist/esm/components/Dashboard/TableComponent.d.ts.map +1 -1
- package/dist/esm/components/Dashboard/TableComponent.js +5 -1
- package/dist/esm/components/QuillMultiSelectSectionList.js +5 -5
- package/dist/esm/components/QuillMultiSelectWithCombo.d.ts.map +1 -1
- package/dist/esm/components/QuillMultiSelectWithCombo.js +5 -4
- package/dist/esm/components/QuillSelectWithCombo.d.ts.map +1 -1
- package/dist/esm/components/QuillSelectWithCombo.js +12 -11
- package/dist/esm/components/ReportBuilder/AddColumnModal.d.ts.map +1 -1
- package/dist/esm/components/ReportBuilder/AddColumnModal.js +2 -1
- package/dist/esm/components/ReportBuilder/FilterModal.js +14 -14
- package/dist/esm/components/ReportBuilder/FilterStack.d.ts +2 -1
- package/dist/esm/components/ReportBuilder/FilterStack.d.ts.map +1 -1
- package/dist/esm/components/ReportBuilder/FilterStack.js +4 -4
- package/dist/esm/components/ReportBuilder/convert.d.ts +2 -0
- package/dist/esm/components/ReportBuilder/convert.d.ts.map +1 -1
- package/dist/esm/components/ReportBuilder/convert.js +26 -7
- package/dist/esm/components/ReportBuilder/util.d.ts +1 -1
- package/dist/esm/components/ReportBuilder/util.d.ts.map +1 -1
- package/dist/esm/components/ReportBuilder/util.js +15 -2
- package/dist/esm/components/UiComponents.d.ts +4 -1
- package/dist/esm/components/UiComponents.d.ts.map +1 -1
- package/dist/esm/components/UiComponents.js +29 -4
- package/dist/esm/hooks/useDashboard.d.ts.map +1 -1
- package/dist/esm/hooks/useDashboard.js +11 -9
- package/dist/esm/hooks/useExport.d.ts.map +1 -1
- package/dist/esm/hooks/useExport.js +19 -5
- package/dist/esm/hooks/useQuill.d.ts.map +1 -1
- package/dist/esm/hooks/useQuill.js +16 -3
- package/dist/esm/hooks/useReport.d.ts.map +1 -1
- package/dist/esm/hooks/useReport.js +1 -7
- package/dist/esm/hooks/useVirtualTables.d.ts +6 -2
- package/dist/esm/hooks/useVirtualTables.d.ts.map +1 -1
- package/dist/esm/hooks/useVirtualTables.js +6 -3
- package/dist/esm/internals/ReportBuilder/PivotModal.d.ts.map +1 -1
- package/dist/esm/internals/ReportBuilder/PivotModal.js +6 -7
- package/dist/esm/models/Filter.d.ts +20 -13
- package/dist/esm/models/Filter.d.ts.map +1 -1
- package/dist/esm/models/Filter.js +160 -86
- package/dist/esm/models/Report.d.ts +12 -1
- package/dist/esm/models/Report.d.ts.map +1 -1
- package/dist/esm/models/Schema.d.ts +12 -1
- package/dist/esm/models/Schema.d.ts.map +1 -1
- package/dist/esm/utils/astFilterProcessing.js +23 -23
- package/dist/esm/utils/astProcessing.d.ts +2 -2
- package/dist/esm/utils/astProcessing.d.ts.map +1 -1
- package/dist/esm/utils/astProcessing.js +25 -6
- package/dist/esm/utils/axisFormatter.d.ts.map +1 -1
- package/dist/esm/utils/axisFormatter.js +25 -0
- package/dist/esm/utils/color.d.ts +159 -0
- package/dist/esm/utils/color.d.ts.map +1 -1
- package/dist/esm/utils/color.js +8 -2
- package/dist/esm/utils/columnProcessing.js +3 -3
- package/dist/esm/utils/constants.d.ts +1 -0
- package/dist/esm/utils/constants.d.ts.map +1 -1
- package/dist/esm/utils/constants.js +1 -0
- package/dist/esm/utils/dashboard.d.ts +13 -3
- package/dist/esm/utils/dashboard.d.ts.map +1 -1
- package/dist/esm/utils/dashboard.js +73 -16
- package/dist/esm/utils/dataFetcher.d.ts.map +1 -1
- package/dist/esm/utils/dataFetcher.js +3 -1
- package/dist/esm/utils/filterProcessing.d.ts.map +1 -1
- package/dist/esm/utils/filterProcessing.js +10 -10
- package/dist/esm/utils/getDomain.d.ts +4 -1
- package/dist/esm/utils/getDomain.d.ts.map +1 -1
- package/dist/esm/utils/getDomain.js +11 -1
- package/dist/esm/utils/pivotConstructor.d.ts.map +1 -1
- package/dist/esm/utils/pivotConstructor.js +7 -6
- package/dist/esm/utils/queryConstructor.d.ts +1 -1
- package/dist/esm/utils/queryConstructor.d.ts.map +1 -1
- package/dist/esm/utils/queryConstructor.js +71 -43
- package/dist/esm/utils/report.d.ts +23 -5
- package/dist/esm/utils/report.d.ts.map +1 -1
- package/dist/esm/utils/report.js +29 -9
- package/dist/esm/utils/schema.d.ts +26 -3
- package/dist/esm/utils/schema.d.ts.map +1 -1
- package/dist/esm/utils/schema.js +74 -43
- package/dist/esm/utils/tableProcessing.d.ts +10 -3
- package/dist/esm/utils/tableProcessing.d.ts.map +1 -1
- package/dist/esm/utils/tableProcessing.js +4 -6
- package/dist/esm/utils/textProcessing.d.ts.map +1 -1
- package/dist/esm/utils/textProcessing.js +0 -1
- package/package.json +8 -3
|
@@ -0,0 +1,198 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.default = GaugeChart;
|
|
4
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
|
+
const react_1 = require("react");
|
|
6
|
+
const d3_selection_1 = require("d3-selection");
|
|
7
|
+
const d3_shape_1 = require("d3-shape");
|
|
8
|
+
const d3_interpolate_1 = require("d3-interpolate");
|
|
9
|
+
require("d3-transition");
|
|
10
|
+
const axisFormatter_1 = require("../../utils/axisFormatter");
|
|
11
|
+
function GaugeChart({ data, xAxisField, xAxisFormat, containerStyle, colors, isAnimationActive = true, }) {
|
|
12
|
+
const percentage = parseFloat(data[0][xAxisField]) || 0;
|
|
13
|
+
const normalizedPercentage = ['whole_number', 'two_decimal_places'].includes(xAxisFormat)
|
|
14
|
+
? Math.max(Math.min(percentage / 100, 1), 0)
|
|
15
|
+
: Math.max(Math.min(percentage, 1), 0);
|
|
16
|
+
return ((0, jsx_runtime_1.jsx)(D3Gauge, { percentage: normalizedPercentage, xAxisFormat: xAxisFormat, containerStyle: { ...containerStyle }, colors: colors, isAnimationActive: isAnimationActive }));
|
|
17
|
+
}
|
|
18
|
+
function D3Gauge({ percentage, containerStyle, xAxisFormat, colors, isAnimationActive }) {
|
|
19
|
+
const containerRef = (0, react_1.useRef)(null);
|
|
20
|
+
const svgRef = (0, react_1.useRef)(null);
|
|
21
|
+
const gaugeGroupRef = (0, react_1.useRef)(null);
|
|
22
|
+
const needleRef = (0, react_1.useRef)(null);
|
|
23
|
+
const needleOutlineRef = (0, react_1.useRef)(null);
|
|
24
|
+
const textRef = (0, react_1.useRef)(null);
|
|
25
|
+
const previousPercentageRef = (0, react_1.useRef)(0);
|
|
26
|
+
const firstMountRef = (0, react_1.useRef)(true);
|
|
27
|
+
// Gauge arc from -135° to +135°
|
|
28
|
+
const startAngle = -(3 * Math.PI) / 4;
|
|
29
|
+
const totalAngle = (3 * Math.PI) / 2;
|
|
30
|
+
// --- Initialization ---
|
|
31
|
+
(0, react_1.useEffect)(() => {
|
|
32
|
+
if (!containerRef.current)
|
|
33
|
+
return;
|
|
34
|
+
const container = containerRef.current;
|
|
35
|
+
(0, d3_selection_1.select)(container).select('svg').remove();
|
|
36
|
+
svgRef.current = (0, d3_selection_1.select)(container)
|
|
37
|
+
// Let CSS control the size.
|
|
38
|
+
.append('svg')
|
|
39
|
+
.attr('width', '100%')
|
|
40
|
+
.attr('height', '100%')
|
|
41
|
+
.attr('preserveAspectRatio', 'xMidYMid meet');
|
|
42
|
+
// .style('display', 'block')
|
|
43
|
+
// .style('margin', '0 auto');
|
|
44
|
+
// Create one main group for all gauge elements.
|
|
45
|
+
gaugeGroupRef.current = svgRef.current.append('g');
|
|
46
|
+
// Append placeholder arc segments.
|
|
47
|
+
for (let i = 0; i < 3; i++) {
|
|
48
|
+
gaugeGroupRef.current.append('path').attr('class', `arc-seg seg${i}`);
|
|
49
|
+
}
|
|
50
|
+
// Create needle outline and needle.
|
|
51
|
+
needleOutlineRef.current = gaugeGroupRef.current.append('line')
|
|
52
|
+
.attr('stroke', 'white')
|
|
53
|
+
.attr('stroke-width', 8)
|
|
54
|
+
.attr('stroke-linecap', 'round');
|
|
55
|
+
needleRef.current = gaugeGroupRef.current.append('line')
|
|
56
|
+
.attr('stroke', 'black')
|
|
57
|
+
.attr('stroke-width', 4)
|
|
58
|
+
.attr('stroke-linecap', 'round');
|
|
59
|
+
// Create text label.
|
|
60
|
+
textRef.current = gaugeGroupRef.current.append('text')
|
|
61
|
+
.attr('class', 'gauge-label')
|
|
62
|
+
.attr('text-anchor', 'middle')
|
|
63
|
+
.attr('fill', '#000')
|
|
64
|
+
.attr('font-weight', '500')
|
|
65
|
+
.text(`${Math.round(percentage * 100)}%`);
|
|
66
|
+
return () => {
|
|
67
|
+
svgRef.current?.remove();
|
|
68
|
+
svgRef.current = null;
|
|
69
|
+
};
|
|
70
|
+
}, [colors]);
|
|
71
|
+
// --- Update & Resize ---
|
|
72
|
+
(0, react_1.useEffect)(() => {
|
|
73
|
+
if (!containerRef.current ||
|
|
74
|
+
!svgRef.current ||
|
|
75
|
+
!gaugeGroupRef.current ||
|
|
76
|
+
!needleRef.current ||
|
|
77
|
+
!needleOutlineRef.current ||
|
|
78
|
+
!textRef.current)
|
|
79
|
+
return;
|
|
80
|
+
// Use getBoundingClientRect() so we get accurate dimensions.
|
|
81
|
+
const rect = containerRef.current.getBoundingClientRect();
|
|
82
|
+
const cw = rect.width;
|
|
83
|
+
const ch = rect.height;
|
|
84
|
+
// Our desired gauge has a 1:1.2 (height:width) ratio.
|
|
85
|
+
// We choose gaugeHeight as the smaller of ch and (cw / 1.2)
|
|
86
|
+
const gaugeHeight = Math.min(ch, cw / 1.2);
|
|
87
|
+
const gaugeWidth = gaugeHeight * 1.2;
|
|
88
|
+
const radius = gaugeHeight / 2;
|
|
89
|
+
const innerRadius = radius * 0.65;
|
|
90
|
+
// const arcWidth = radius - innerRadius;
|
|
91
|
+
// Vertical offset to visually center the 270° arc.
|
|
92
|
+
const verticalOffset = gaugeHeight * 0.05;
|
|
93
|
+
// Update viewBox so our internal coordinates scale.
|
|
94
|
+
svgRef.current
|
|
95
|
+
.attr('viewBox', `0 0 ${gaugeWidth} ${gaugeHeight}`);
|
|
96
|
+
// Center the gauge group.
|
|
97
|
+
gaugeGroupRef.current.attr('transform', `translate(${gaugeWidth / 2}, ${gaugeHeight / 2 + verticalOffset})`);
|
|
98
|
+
// Draw the arc segments.
|
|
99
|
+
const segments = [
|
|
100
|
+
{ start: startAngle, end: startAngle + totalAngle / 3, color: colors[1] || 'red' },
|
|
101
|
+
{ start: startAngle + totalAngle / 3, end: startAngle + (2 * totalAngle) / 3, color: colors[3] || 'yellow' },
|
|
102
|
+
{ start: startAngle + (2 * totalAngle) / 3, end: startAngle + totalAngle, color: colors[2] || 'green' },
|
|
103
|
+
];
|
|
104
|
+
const arcGenerator = (0, d3_shape_1.arc)()
|
|
105
|
+
.innerRadius(innerRadius)
|
|
106
|
+
.outerRadius(radius);
|
|
107
|
+
segments.forEach((seg, i) => {
|
|
108
|
+
gaugeGroupRef.current?.select(`.arc-seg.seg${i}`)
|
|
109
|
+
.attr('d', arcGenerator({
|
|
110
|
+
innerRadius,
|
|
111
|
+
outerRadius: radius,
|
|
112
|
+
startAngle: seg.start,
|
|
113
|
+
endAngle: seg.end,
|
|
114
|
+
}) || '')
|
|
115
|
+
.attr('fill', seg.color);
|
|
116
|
+
});
|
|
117
|
+
// Needle endpoints: tweak these factors to adjust length.
|
|
118
|
+
const calcEndpoints = (angle) => {
|
|
119
|
+
const startFactor = 0.85; // relative to innerRadius
|
|
120
|
+
const endFactor = 1.05; // relative to radius
|
|
121
|
+
const x1 = innerRadius * startFactor * Math.cos(angle);
|
|
122
|
+
const y1 = innerRadius * startFactor * Math.sin(angle);
|
|
123
|
+
const x2 = radius * endFactor * Math.cos(angle);
|
|
124
|
+
const y2 = radius * endFactor * Math.sin(angle);
|
|
125
|
+
return { x1, y1, x2, y2 };
|
|
126
|
+
};
|
|
127
|
+
// Compute the new needle angle (rotate so 0 = north).
|
|
128
|
+
const newAngle = startAngle + totalAngle * percentage - Math.PI / 2;
|
|
129
|
+
const endpoints = calcEndpoints(newAngle);
|
|
130
|
+
// Update text font-size relative to radius.
|
|
131
|
+
textRef.current.attr('font-size', radius / 3)
|
|
132
|
+
// Position text below the gauge center.
|
|
133
|
+
.attr('y', radius * 0.1);
|
|
134
|
+
if (isAnimationActive) {
|
|
135
|
+
const prevAngle = startAngle + totalAngle * previousPercentageRef.current - Math.PI / 2;
|
|
136
|
+
const angleInterpolator = (0, d3_interpolate_1.interpolate)(prevAngle, newAngle);
|
|
137
|
+
const textInterpolator = (0, d3_interpolate_1.interpolate)(previousPercentageRef.current, percentage);
|
|
138
|
+
needleRef.current.interrupt()
|
|
139
|
+
.transition()
|
|
140
|
+
.duration(1000)
|
|
141
|
+
.tween("needle", function () {
|
|
142
|
+
return function (t) {
|
|
143
|
+
const currentAngle = angleInterpolator(t);
|
|
144
|
+
const { x1, y1, x2, y2 } = calcEndpoints(currentAngle);
|
|
145
|
+
needleRef.current
|
|
146
|
+
.attr("x1", x1)
|
|
147
|
+
.attr("y1", y1)
|
|
148
|
+
.attr("x2", x2)
|
|
149
|
+
.attr("y2", y2);
|
|
150
|
+
needleOutlineRef.current
|
|
151
|
+
.attr("x1", x1)
|
|
152
|
+
.attr("y1", y1)
|
|
153
|
+
.attr("x2", x2)
|
|
154
|
+
.attr("y2", y2);
|
|
155
|
+
const currentPercentage = textInterpolator(t);
|
|
156
|
+
const percentText = (0, axisFormatter_1.axisFormatter)({
|
|
157
|
+
value: xAxisFormat === 'percent' ? currentPercentage : currentPercentage * 100,
|
|
158
|
+
field: 'amount',
|
|
159
|
+
fields: [{ field: 'amount', format: xAxisFormat }]
|
|
160
|
+
}) + (xAxisFormat === 'percent' ? '' : '%');
|
|
161
|
+
textRef.current?.text(percentText);
|
|
162
|
+
};
|
|
163
|
+
});
|
|
164
|
+
}
|
|
165
|
+
else {
|
|
166
|
+
needleRef.current.interrupt()
|
|
167
|
+
.attr('x1', endpoints.x1)
|
|
168
|
+
.attr('y1', endpoints.y1)
|
|
169
|
+
.attr('x2', endpoints.x2)
|
|
170
|
+
.attr('y2', endpoints.y2);
|
|
171
|
+
needleOutlineRef.current.interrupt()
|
|
172
|
+
.attr('x1', endpoints.x1)
|
|
173
|
+
.attr('y1', endpoints.y1)
|
|
174
|
+
.attr('x2', endpoints.x2)
|
|
175
|
+
.attr('y2', endpoints.y2);
|
|
176
|
+
const percentText = (0, axisFormatter_1.axisFormatter)({
|
|
177
|
+
value: xAxisFormat === 'percent' ? percentage : percentage * 100,
|
|
178
|
+
field: 'amount',
|
|
179
|
+
fields: [{ field: 'amount', format: xAxisFormat }]
|
|
180
|
+
}) + (xAxisFormat === 'percent' ? '' : '%');
|
|
181
|
+
textRef.current.text(percentText);
|
|
182
|
+
}
|
|
183
|
+
previousPercentageRef.current = percentage;
|
|
184
|
+
firstMountRef.current = false;
|
|
185
|
+
}, [percentage, colors, isAnimationActive, xAxisFormat]);
|
|
186
|
+
// Use ResizeObserver to trigger updates on container size changes.
|
|
187
|
+
(0, react_1.useEffect)(() => {
|
|
188
|
+
if (!containerRef.current)
|
|
189
|
+
return;
|
|
190
|
+
const observer = new ResizeObserver(() => {
|
|
191
|
+
// Force update by reading dimensions in the update effect.
|
|
192
|
+
previousPercentageRef.current = percentage;
|
|
193
|
+
});
|
|
194
|
+
observer.observe(containerRef.current);
|
|
195
|
+
return () => observer.disconnect();
|
|
196
|
+
}, [percentage]);
|
|
197
|
+
return ((0, jsx_runtime_1.jsx)("div", { ref: containerRef, style: { width: '100%', height: '100%', ...containerStyle } }));
|
|
198
|
+
}
|
|
@@ -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,
|
|
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"}
|
|
@@ -216,9 +216,9 @@ function InternalChart({ report, colors, className, containerStyle, isAnimationA
|
|
|
216
216
|
// const userFilters = useMemo(() => {
|
|
217
217
|
// return filters?.filter(
|
|
218
218
|
// (f) =>
|
|
219
|
-
// f.filterType !==
|
|
220
|
-
// f.filterType !==
|
|
221
|
-
// f.filterType !==
|
|
219
|
+
// f.filterType !== InternalFilterType.DateCustomFilter &&
|
|
220
|
+
// f.filterType !== InternalFilterType.DateFilter &&
|
|
221
|
+
// f.filterType !== InternalFilterType.DateComparisonFilter,
|
|
222
222
|
// );
|
|
223
223
|
// }, [filters]);
|
|
224
224
|
// 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)
|
|
@@ -226,9 +226,10 @@ function InternalChart({ report, colors, className, containerStyle, isAnimationA
|
|
|
226
226
|
(0, react_1.useEffect)(() => {
|
|
227
227
|
if (reportDateFilter) {
|
|
228
228
|
// Filter for custom date filter that applies to the report's dateField
|
|
229
|
-
const customDateFilter = filters?.find((f) => f.filterType === Filter_1.FilterType.
|
|
230
|
-
|
|
231
|
-
|
|
229
|
+
const customDateFilter = filters?.find((f) => f.filterType === Filter_1.FilterType.Date
|
|
230
|
+
// FIXME: this is the correct way to do it but the demo has a hardcoded filter field
|
|
231
|
+
// && f.field === report?.dateField?.field && f.table === report?.dateField?.table,
|
|
232
|
+
);
|
|
232
233
|
if (!customDateFilter) {
|
|
233
234
|
return;
|
|
234
235
|
}
|
|
@@ -371,6 +372,7 @@ function InternalChart({ report, colors, className, containerStyle, isAnimationA
|
|
|
371
372
|
padding: filtersEnabled ? 12 : 0,
|
|
372
373
|
borderRadius: 6,
|
|
373
374
|
opacity: filterToggleDisabled ? 0.5 : 1,
|
|
375
|
+
zIndex: 1,
|
|
374
376
|
}, children: [(0, jsx_runtime_1.jsx)("div", { style: {
|
|
375
377
|
display: 'flex',
|
|
376
378
|
flexDirection: 'row',
|
|
@@ -407,7 +409,6 @@ function InternalChart({ report, colors, className, containerStyle, isAnimationA
|
|
|
407
409
|
minWidth: 500,
|
|
408
410
|
paddingBottom: !filtersExpanded && filtersOverflowing && filtersEnabled ? 116 : 0,
|
|
409
411
|
position: 'relative',
|
|
410
|
-
// overflow: filtersExpanded ? undefined : 'hidden',
|
|
411
412
|
}, children: [filtersEnabled &&
|
|
412
413
|
currentReportFilters.map((filter, index) => ((0, jsx_runtime_1.jsx)(DashboardFilter_1.DashboardFilter, { filter: {
|
|
413
414
|
...filter.filter,
|
|
@@ -465,8 +466,10 @@ function InternalChart({ report, colors, className, containerStyle, isAnimationA
|
|
|
465
466
|
marginBottom: 'auto',
|
|
466
467
|
display: 'flex',
|
|
467
468
|
}, children: (0, jsx_runtime_1.jsx)(MetricComponent, { error: error, isLoading: loading, report: report, children: report?.rows?.[0]?.[report.xAxisField] }) })), report.chartType !== 'table' && report.chartType !== 'metric' && ((0, jsx_runtime_1.jsx)(Chart_1.ChartDisplay, { config: report, containerStyle: {
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
469
|
+
minHeight: ['gauge'].includes(report.chartType) ? 500 : 400,
|
|
470
|
+
width: ['US map', 'World map'].includes(report.chartType) ? '70%' : ['gauge'].includes(report.chartType) ? undefined : '100%',
|
|
471
|
+
height: ['US map', 'World map'].includes(report.chartType) ? 'fit-content' : ['gauge'].includes(report.chartType) ? 500 : undefined,
|
|
472
|
+
marginLeft: ['gauge'].includes(report.chartType) ? 'undefined' : 'auto',
|
|
473
|
+
marginRight: ['gauge'].includes(report.chartType) ? 'undefined' : 'auto',
|
|
474
|
+
}, 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 }))] }))] }));
|
|
472
475
|
}
|
|
@@ -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":"
|
|
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"}
|
|
@@ -13,6 +13,7 @@ const ChartTooltip_1 = __importDefault(require("../../components/Chart/ChartTool
|
|
|
13
13
|
const getDomain_1 = __importDefault(require("../../utils/getDomain"));
|
|
14
14
|
const crypto_1 = require("../../utils/crypto");
|
|
15
15
|
const react_1 = require("react");
|
|
16
|
+
const CustomReferenceLine_1 = __importDefault(require("./CustomReferenceLine"));
|
|
16
17
|
function createLineForEmptyChart(yAxisFields, dateFilter, xAxisField, xAxisFormat) {
|
|
17
18
|
let lineChartData = [];
|
|
18
19
|
if (dateFilter &&
|
|
@@ -29,7 +30,7 @@ function createLineForEmptyChart(yAxisFields, dateFilter, xAxisField, xAxisForma
|
|
|
29
30
|
}
|
|
30
31
|
return lineChartData;
|
|
31
32
|
}
|
|
32
|
-
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, }) {
|
|
33
|
+
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, }) {
|
|
33
34
|
const formattedData = (0, react_1.useMemo)(() => {
|
|
34
35
|
if (!data || data.length === 0) {
|
|
35
36
|
return createLineForEmptyChart(yAxisFields, dateFilter, xAxisField, xAxisFormat);
|
|
@@ -92,7 +93,7 @@ function LineChart({ colors, colorMap = {}, yAxisFields, data, containerStyle, c
|
|
|
92
93
|
field: xAxisField,
|
|
93
94
|
fields: [{ field: xAxisField, format: xAxisFormat }],
|
|
94
95
|
});
|
|
95
|
-
} }), (0, jsx_runtime_1.jsx)(recharts_1.YAxis, { hide: hideYAxis, width: 44, axisLine: false, tickLine: false, type: "number", domain: (0, getDomain_1.default)(data, yAxisFields), tick: { transform: 'translate(-3, 0)' }, tickCount: 5, style: {
|
|
96
|
+
} }), (0, jsx_runtime_1.jsx)(recharts_1.YAxis, { hide: hideYAxis, width: 44, axisLine: false, tickLine: false, type: "number", domain: (0, getDomain_1.default)(data, yAxisFields, referenceLines), tick: { transform: 'translate(-3, 0)' }, tickCount: 5, style: {
|
|
96
97
|
fontSize: '12px',
|
|
97
98
|
fontFamily: theme?.chartLabelFontFamily ||
|
|
98
99
|
theme?.fontFamily ||
|
|
@@ -165,7 +166,7 @@ function LineChart({ colors, colorMap = {}, yAxisFields, data, containerStyle, c
|
|
|
165
166
|
const gradientStop = getCustomColor(index, elem.field, 'stop') ?? '#00000000';
|
|
166
167
|
const uniqueId = `gradient_${(0, crypto_1.hashCode)(gradientStart)}_${(0, crypto_1.hashCode)(gradientStop)}`;
|
|
167
168
|
return ((0, jsx_runtime_1.jsx)("defs", { children: (0, jsx_runtime_1.jsxs)("linearGradient", { id: uniqueId, x1: "0", y1: "0", x2: "0", y2: "1", children: [(0, jsx_runtime_1.jsx)("stop", { offset: "5%", stopColor: gradientStart, stopOpacity: 0.4 }), (0, jsx_runtime_1.jsx)("stop", { offset: "95%", stopColor: gradientStop, stopOpacity: 0 })] }) }, `defs_${uniqueId}_${index}`));
|
|
168
|
-
}), yAxisFields &&
|
|
169
|
+
}), referenceLines && Array.isArray(referenceLines) && (referenceLines.map(({ label, query }) => ((0, jsx_runtime_1.jsx)(recharts_1.Customized, { component: (props) => (0, jsx_runtime_1.jsx)(CustomReferenceLine_1.default, { ...props, referenceLine: query, label: label }) }, label)))), yAxisFields &&
|
|
169
170
|
yAxisFields.map((elem, index) => {
|
|
170
171
|
const gradientStart = (0, crypto_1.hashCode)(getCustomColor(index, elem.field, 'start') ??
|
|
171
172
|
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"}
|