@redsift/charts 11.5.0 → 11.6.0-muiv5-alpha.0
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/_virtual/_rollupPluginBabelHelpers.js +93 -0
- package/_virtual/_rollupPluginBabelHelpers.js.map +1 -0
- package/components/Arc/Arc.d.ts +6 -0
- package/components/Arc/Arc.js +74 -0
- package/components/Arc/Arc.js.map +1 -0
- package/components/Arc/styles.d.ts +17 -0
- package/components/Arc/styles.js +49 -0
- package/components/Arc/styles.js.map +1 -0
- package/components/Arc/types.d.ts +20 -0
- package/components/Arcs/Arcs.d.ts +6 -0
- package/components/Arcs/Arcs.js +90 -0
- package/components/Arcs/Arcs.js.map +1 -0
- package/components/Arcs/styles.d.ts +9 -0
- package/components/Arcs/styles.js +9 -0
- package/components/Arcs/styles.js.map +1 -0
- package/components/Arcs/types.d.ts +17 -0
- package/components/Axis/Axis.d.ts +7 -0
- package/components/Axis/Axis.js +211 -0
- package/components/Axis/Axis.js.map +1 -0
- package/components/Axis/computeTicks.js +117 -0
- package/components/Axis/computeTicks.js.map +1 -0
- package/components/Axis/styles.d.ts +14 -0
- package/components/Axis/styles.js +51 -0
- package/components/Axis/styles.js.map +1 -0
- package/components/Axis/types.d.ts +89 -0
- package/components/Axis/types.js +24 -0
- package/components/Axis/types.js.map +1 -0
- package/components/Bar/Bar.d.ts +6 -0
- package/components/Bar/Bar.js +95 -0
- package/components/Bar/Bar.js.map +1 -0
- package/components/Bar/styles.d.ts +16 -0
- package/components/Bar/styles.js +66 -0
- package/components/Bar/styles.js.map +1 -0
- package/components/Bar/types.d.ts +46 -0
- package/components/Bar/types.js +18 -0
- package/components/Bar/types.js.map +1 -0
- package/components/BarChart/BarChart.d.ts +29 -0
- package/components/BarChart/BarChart.js +141 -0
- package/components/BarChart/BarChart.js.map +1 -0
- package/components/BarChart/BarChartBars.js +168 -0
- package/components/BarChart/BarChartBars.js.map +1 -0
- package/components/BarChart/BarChartSection.js +139 -0
- package/components/BarChart/BarChartSection.js.map +1 -0
- package/components/BarChart/EmptyBarChart.js +57 -0
- package/components/BarChart/EmptyBarChart.js.map +1 -0
- package/components/BarChart/LoadingBarChart.js +18 -0
- package/components/BarChart/LoadingBarChart.js.map +1 -0
- package/components/BarChart/RenderedLinearBarChart.js +549 -0
- package/components/BarChart/RenderedLinearBarChart.js.map +1 -0
- package/components/BarChart/RenderedOrdinalBarChart.js +236 -0
- package/components/BarChart/RenderedOrdinalBarChart.js.map +1 -0
- package/components/BarChart/context.js +13 -0
- package/components/BarChart/context.js.map +1 -0
- package/components/BarChart/intl/en-US.json.js +17 -0
- package/components/BarChart/intl/en-US.json.js.map +1 -0
- package/components/BarChart/intl/fr-FR.json.js +17 -0
- package/components/BarChart/intl/fr-FR.json.js.map +1 -0
- package/components/BarChart/intl/index.js +10 -0
- package/components/BarChart/intl/index.js.map +1 -0
- package/components/BarChart/styles.d.ts +19 -0
- package/components/BarChart/styles.js +71 -0
- package/components/BarChart/styles.js.map +1 -0
- package/components/BarChart/types.d.ts +177 -0
- package/components/BarChart/types.js +17 -0
- package/components/BarChart/types.js.map +1 -0
- package/components/BarChart/utils.js +69 -0
- package/components/BarChart/utils.js.map +1 -0
- package/components/ChartContainer/ChartContainer.d.ts +9 -0
- package/components/ChartContainer/ChartContainer.js +167 -0
- package/components/ChartContainer/ChartContainer.js.map +1 -0
- package/components/ChartContainer/context.js +6 -0
- package/components/ChartContainer/context.js.map +1 -0
- package/components/ChartContainer/intl/en-US.json.js +14 -0
- package/components/ChartContainer/intl/en-US.json.js.map +1 -0
- package/components/ChartContainer/intl/fr-FR.json.js +14 -0
- package/components/ChartContainer/intl/fr-FR.json.js.map +1 -0
- package/components/ChartContainer/intl/index.js +10 -0
- package/components/ChartContainer/intl/index.js.map +1 -0
- package/components/ChartContainer/styles.d.ts +17 -0
- package/components/ChartContainer/styles.js +76 -0
- package/components/ChartContainer/styles.js.map +1 -0
- package/components/ChartContainer/types.d.ts +48 -0
- package/components/DataPoint/DataPoint.d.ts +6 -0
- package/components/DataPoint/DataPoint.js +104 -0
- package/components/DataPoint/DataPoint.js.map +1 -0
- package/components/DataPoint/styles.d.ts +12 -0
- package/components/DataPoint/styles.js +10 -0
- package/components/DataPoint/styles.js.map +1 -0
- package/components/DataPoint/types.d.ts +60 -0
- package/components/Dot/Dot.d.ts +6 -0
- package/components/Dot/Dot.js +55 -0
- package/components/Dot/Dot.js.map +1 -0
- package/components/Dot/styles.d.ts +16 -0
- package/components/Dot/styles.js +49 -0
- package/components/Dot/styles.js.map +1 -0
- package/components/Dot/types.d.ts +30 -0
- package/components/Dot/types.js +14 -0
- package/components/Dot/types.js.map +1 -0
- package/components/Legend/Legend.d.ts +6 -0
- package/components/Legend/Legend.js +73 -0
- package/components/Legend/Legend.js.map +1 -0
- package/components/Legend/styles.d.ts +11 -0
- package/components/Legend/styles.js +15 -0
- package/components/Legend/styles.js.map +1 -0
- package/components/Legend/types.d.ts +44 -0
- package/components/LegendItem/LegendItem.js +96 -0
- package/components/LegendItem/LegendItem.js.map +1 -0
- package/components/LegendItem/styles.js +63 -0
- package/components/LegendItem/styles.js.map +1 -0
- package/components/LegendItem/types.d.ts +20 -0
- package/components/Line/Line.d.ts +6 -0
- package/components/Line/Line.js +55 -0
- package/components/Line/Line.js.map +1 -0
- package/components/Line/styles.d.ts +9 -0
- package/components/Line/styles.js +9 -0
- package/components/Line/styles.js.map +1 -0
- package/components/Line/types.d.ts +21 -0
- package/components/LineChart/EmptyLineChart.js +58 -0
- package/components/LineChart/EmptyLineChart.js.map +1 -0
- package/components/LineChart/LineChart.d.ts +6 -0
- package/components/LineChart/LineChart.js +96 -0
- package/components/LineChart/LineChart.js.map +1 -0
- package/components/LineChart/LoadingLineChart.js +18 -0
- package/components/LineChart/LoadingLineChart.js.map +1 -0
- package/components/LineChart/RenderedLineChart.js +372 -0
- package/components/LineChart/RenderedLineChart.js.map +1 -0
- package/components/LineChart/intl/en-US.json.js +17 -0
- package/components/LineChart/intl/en-US.json.js.map +1 -0
- package/components/LineChart/intl/fr-FR.json.js +17 -0
- package/components/LineChart/intl/fr-FR.json.js.map +1 -0
- package/components/LineChart/intl/index.js +10 -0
- package/components/LineChart/intl/index.js.map +1 -0
- package/components/LineChart/styles.d.ts +17 -0
- package/components/LineChart/styles.js +53 -0
- package/components/LineChart/styles.js.map +1 -0
- package/components/LineChart/types.d.ts +90 -0
- package/components/LineChart/types.js +17 -0
- package/components/LineChart/types.js.map +1 -0
- package/components/LineChart/utils.js +67 -0
- package/components/LineChart/utils.js.map +1 -0
- package/components/PieChart/EmptyPieChart.js +85 -0
- package/components/PieChart/EmptyPieChart.js.map +1 -0
- package/components/PieChart/LoadingPieChart.js +18 -0
- package/components/PieChart/LoadingPieChart.js.map +1 -0
- package/components/PieChart/PieChart.d.ts +6 -0
- package/components/PieChart/PieChart.js +98 -0
- package/components/PieChart/PieChart.js.map +1 -0
- package/components/PieChart/RenderedPieChart.js +198 -0
- package/components/PieChart/RenderedPieChart.js.map +1 -0
- package/components/PieChart/intl/en-US.json.js +9 -0
- package/components/PieChart/intl/en-US.json.js.map +1 -0
- package/components/PieChart/intl/fr-FR.json.js +9 -0
- package/components/PieChart/intl/fr-FR.json.js.map +1 -0
- package/components/PieChart/intl/index.js +10 -0
- package/components/PieChart/intl/index.js.map +1 -0
- package/components/PieChart/styles.d.ts +24 -0
- package/components/PieChart/styles.js +168 -0
- package/components/PieChart/styles.js.map +1 -0
- package/components/PieChart/types.d.ts +115 -0
- package/components/PieChart/types.js +27 -0
- package/components/PieChart/types.js.map +1 -0
- package/components/PieChart/utils.js +37 -0
- package/components/PieChart/utils.js.map +1 -0
- package/components/ScatterPlot/EmptyScatterPlot.js +58 -0
- package/components/ScatterPlot/EmptyScatterPlot.js.map +1 -0
- package/components/ScatterPlot/LoadingScatterPlot.js +18 -0
- package/components/ScatterPlot/LoadingScatterPlot.js.map +1 -0
- package/components/ScatterPlot/RenderedScatterPlot.js +352 -0
- package/components/ScatterPlot/RenderedScatterPlot.js.map +1 -0
- package/components/ScatterPlot/ScatterPlot.d.ts +6 -0
- package/components/ScatterPlot/ScatterPlot.js +105 -0
- package/components/ScatterPlot/ScatterPlot.js.map +1 -0
- package/components/ScatterPlot/intl/en-US.json.js +12 -0
- package/components/ScatterPlot/intl/en-US.json.js.map +1 -0
- package/components/ScatterPlot/intl/fr-FR.json.js +17 -0
- package/components/ScatterPlot/intl/fr-FR.json.js.map +1 -0
- package/components/ScatterPlot/intl/index.js +10 -0
- package/components/ScatterPlot/intl/index.js.map +1 -0
- package/components/ScatterPlot/styles.d.ts +17 -0
- package/components/ScatterPlot/styles.js +53 -0
- package/components/ScatterPlot/styles.js.map +1 -0
- package/components/ScatterPlot/types.d.ts +109 -0
- package/components/ScatterPlot/types.js +24 -0
- package/components/ScatterPlot/types.js.map +1 -0
- package/components/ScatterPlot/utils.js +70 -0
- package/components/ScatterPlot/utils.js.map +1 -0
- package/config.js +15 -0
- package/config.js.map +1 -0
- package/design-system/src/react-aria/react-aria/i18n/useMessageFormatter.d.ts +5 -0
- package/hooks/useBrush.d.ts +17 -0
- package/hooks/useBrush.js +48 -0
- package/hooks/useBrush.js.map +1 -0
- package/hooks/useColor.d.ts +18 -0
- package/hooks/useColor.js +20 -0
- package/hooks/useColor.js.map +1 -0
- package/hooks/useFormatCategoricalData.d.ts +26 -0
- package/hooks/useFormatCategoricalData.js +57 -0
- package/hooks/useFormatCategoricalData.js.map +1 -0
- package/hooks/useZoom.d.ts +26 -0
- package/hooks/useZoom.js +39 -0
- package/hooks/useZoom.js.map +1 -0
- package/index.d.ts +51 -1277
- package/index.js +42 -5118
- package/index.js.map +1 -1
- package/package.json +4 -4
- package/scheme.d.ts +32 -0
- package/scheme.js +47 -0
- package/scheme.js.map +1 -0
- package/types/axis.d.ts +48 -0
- package/types/data.d.ts +72 -0
- package/types/legend.d.ts +30 -0
- package/types/legend.js +21 -0
- package/types/legend.js.map +1 -0
- package/types/scale.d.ts +48 -0
- package/types/size.d.ts +20 -0
- package/types/size.js +8 -0
- package/types/size.js.map +1 -0
- package/types/theme.d.ts +23 -0
- package/types/theme.js +13 -0
- package/types/theme.js.map +1 -0
- package/utils/index.d.ts +11 -0
- package/utils/index.js +44 -0
- package/utils/index.js.map +1 -0
|
@@ -0,0 +1,372 @@
|
|
|
1
|
+
import { objectWithoutProperties as _objectWithoutProperties, objectSpread2 as _objectSpread2, extends as _extends } from '../../_virtual/_rollupPluginBabelHelpers.js';
|
|
2
|
+
import React__default, { forwardRef, useRef, useEffect } from 'react';
|
|
3
|
+
import { extent, scaleLinear, scaleTime, scalePoint, line } from 'd3';
|
|
4
|
+
import { useTheme, useMessageFormatter, Flexbox } from '@redsift/design-system';
|
|
5
|
+
import intlMessages from './intl/index.js';
|
|
6
|
+
import { LineChartLegendVariant } from './types.js';
|
|
7
|
+
import { StyledLineChart } from './styles.js';
|
|
8
|
+
import { sizeToDimension, statsBy } from './utils.js';
|
|
9
|
+
import { isValidDate, mergeLegends, getSortingMethod } from '../../utils/index.js';
|
|
10
|
+
import { Line } from '../Line/Line.js';
|
|
11
|
+
import { Dot } from '../Dot/Dot.js';
|
|
12
|
+
import { DotVariant } from '../Dot/types.js';
|
|
13
|
+
import { AxisVariant } from '../Axis/types.js';
|
|
14
|
+
import { useColor } from '../../hooks/useColor.js';
|
|
15
|
+
import { Axis } from '../Axis/Axis.js';
|
|
16
|
+
import { Legend } from '../Legend/Legend.js';
|
|
17
|
+
import { LegendVariant } from '../../types/legend.js';
|
|
18
|
+
|
|
19
|
+
const _excluded = ["className", "data", "dotRole", "disableAnimations", "getDotAnchorProps", "id", "isDotSelected", "labelDecorator", "legendDecorator", "legendVariant", "legendProps", "margins", "onDotClick", "size", "sortingMethod", "colorTheme", "tooltipDecorator", "tooltipVariant", "xAxisVariant", "xAxisPlacement", "xAxisTickFormat", "xAxisTickPadding", "xAxisTickRotation", "xAxisTickSize", "xAxisTickValues", "xAxisMinValue", "xAxisMaxValue", "xAxisTickRemodelling", "yAxisVariant", "yAxisPlacement", "yAxisTickFormat", "yAxisTickPadding", "yAxisTickRotation", "yAxisTickSize", "yAxisTickValues", "yAxisMinValue", "yAxisMaxValue", "yAxisTickRemodelling", "dateParser"],
|
|
20
|
+
_excluded2 = ["extraLegendItems"];
|
|
21
|
+
const RenderedLineChart = /*#__PURE__*/forwardRef((props, ref) => {
|
|
22
|
+
const {
|
|
23
|
+
className,
|
|
24
|
+
data: propsData,
|
|
25
|
+
dotRole,
|
|
26
|
+
disableAnimations,
|
|
27
|
+
getDotAnchorProps,
|
|
28
|
+
id,
|
|
29
|
+
isDotSelected,
|
|
30
|
+
labelDecorator,
|
|
31
|
+
legendDecorator,
|
|
32
|
+
legendVariant,
|
|
33
|
+
legendProps,
|
|
34
|
+
margins: propsMargins,
|
|
35
|
+
onDotClick,
|
|
36
|
+
size,
|
|
37
|
+
sortingMethod,
|
|
38
|
+
colorTheme,
|
|
39
|
+
tooltipDecorator,
|
|
40
|
+
tooltipVariant,
|
|
41
|
+
xAxisVariant,
|
|
42
|
+
xAxisPlacement,
|
|
43
|
+
xAxisTickFormat: propsXAxisTickFormat,
|
|
44
|
+
xAxisTickPadding,
|
|
45
|
+
xAxisTickRotation,
|
|
46
|
+
xAxisTickSize,
|
|
47
|
+
xAxisTickValues,
|
|
48
|
+
xAxisMinValue,
|
|
49
|
+
xAxisMaxValue,
|
|
50
|
+
xAxisTickRemodelling,
|
|
51
|
+
yAxisVariant,
|
|
52
|
+
yAxisPlacement,
|
|
53
|
+
yAxisTickFormat,
|
|
54
|
+
yAxisTickPadding,
|
|
55
|
+
yAxisTickRotation,
|
|
56
|
+
yAxisTickSize,
|
|
57
|
+
yAxisTickValues,
|
|
58
|
+
yAxisMinValue,
|
|
59
|
+
yAxisMaxValue,
|
|
60
|
+
yAxisTickRemodelling,
|
|
61
|
+
dateParser
|
|
62
|
+
} = props,
|
|
63
|
+
forwardedProps = _objectWithoutProperties(props, _excluded);
|
|
64
|
+
const cache = useRef();
|
|
65
|
+
const theme = useTheme();
|
|
66
|
+
const format = useMessageFormatter(intlMessages);
|
|
67
|
+
const xScaleType = propsData[0].key[0] instanceof Date ? 'Date' : typeof propsData[0].key[0] === 'number' ? 'number' : typeof propsData[0].key[0] === 'string' && isValidDate(propsData[0].key[0]) ? 'dateString' : typeof propsData[0].key[0] === 'string' ? 'string' : undefined;
|
|
68
|
+
const data = xScaleType === 'number' ? propsData.filter(datum => typeof datum.key[0] === 'number' && !Number.isNaN(datum.key[0])) : xScaleType === 'dateString' ? propsData.filter(datum => isValidDate(datum.key[0])) : xScaleType === 'string' ? propsData.filter(datum => typeof datum.key[0] === 'string') : xScaleType === 'Date' ? propsData.filter(datum => datum.key[0] instanceof Date) : propsData;
|
|
69
|
+
useEffect(() => {
|
|
70
|
+
cache.current = data;
|
|
71
|
+
});
|
|
72
|
+
const svgRef = useRef();
|
|
73
|
+
const chartDimensions = sizeToDimension(size);
|
|
74
|
+
const width = chartDimensions.width;
|
|
75
|
+
const height = chartDimensions.height;
|
|
76
|
+
const margins = _objectSpread2({
|
|
77
|
+
top: xAxisVariant === AxisVariant.default || xAxisVariant === AxisVariant.tickValue ? 24 : 8,
|
|
78
|
+
left: yAxisVariant === AxisVariant.default || yAxisVariant === AxisVariant.tickValue ? 48 : 8,
|
|
79
|
+
right: yAxisVariant === AxisVariant.default || yAxisVariant === AxisVariant.tickValue ? 48 : 8,
|
|
80
|
+
bottom: xAxisVariant === AxisVariant.default || xAxisVariant === AxisVariant.tickValue ? 24 : 8
|
|
81
|
+
}, propsMargins);
|
|
82
|
+
const chartHeight = height - margins.top - margins.bottom;
|
|
83
|
+
const chartWidth = width - margins.left - margins.right;
|
|
84
|
+
const scaleX = (() => {
|
|
85
|
+
if (xScaleType === 'number') {
|
|
86
|
+
var _ref, _ref2;
|
|
87
|
+
const domain = extent(data, d => d.key[0]);
|
|
88
|
+
domain[0] = (_ref = xAxisMinValue) !== null && _ref !== void 0 ? _ref : domain[0];
|
|
89
|
+
domain[1] = (_ref2 = xAxisMaxValue) !== null && _ref2 !== void 0 ? _ref2 : domain[1];
|
|
90
|
+
return scaleLinear().domain(domain).range([0, chartWidth]).nice();
|
|
91
|
+
} else if (xScaleType === 'dateString') {
|
|
92
|
+
var _ref3, _ref4;
|
|
93
|
+
const domain = extent(data, d => Date.parse(d.key[0]));
|
|
94
|
+
domain[0] = (_ref3 = xAxisMinValue) !== null && _ref3 !== void 0 ? _ref3 : domain[0];
|
|
95
|
+
domain[1] = (_ref4 = xAxisMaxValue) !== null && _ref4 !== void 0 ? _ref4 : domain[1];
|
|
96
|
+
return scaleTime().domain([new Date(domain[0]), new Date(domain[1])]).range([0, chartWidth]).nice();
|
|
97
|
+
} else if (xScaleType === 'Date') {
|
|
98
|
+
var _ref5, _ref6;
|
|
99
|
+
const domain = extent(data, d => d.key[0].valueOf());
|
|
100
|
+
domain[0] = (_ref5 = xAxisMinValue) !== null && _ref5 !== void 0 ? _ref5 : domain[0];
|
|
101
|
+
domain[1] = (_ref6 = xAxisMaxValue) !== null && _ref6 !== void 0 ? _ref6 : domain[1];
|
|
102
|
+
return scaleTime().domain([new Date(domain[0]), new Date(domain[1])]).range([0, chartWidth]).nice();
|
|
103
|
+
} else {
|
|
104
|
+
var _ref7, _ref8;
|
|
105
|
+
const domain = xAxisTickValues && Array.isArray(xAxisTickValues) ? xAxisTickValues : data.map(d => d.key[0]);
|
|
106
|
+
domain[0] = (_ref7 = xAxisMinValue) !== null && _ref7 !== void 0 ? _ref7 : domain[0];
|
|
107
|
+
domain[1] = (_ref8 = xAxisMaxValue) !== null && _ref8 !== void 0 ? _ref8 : domain[1];
|
|
108
|
+
return scalePoint().domain(domain).range([0, chartWidth]);
|
|
109
|
+
}
|
|
110
|
+
})();
|
|
111
|
+
const scaleY = (() => {
|
|
112
|
+
var _ref9, _ref10;
|
|
113
|
+
const domain = extent(data, d => d.value);
|
|
114
|
+
domain[0] = (_ref9 = yAxisMinValue) !== null && _ref9 !== void 0 ? _ref9 : domain[0];
|
|
115
|
+
domain[1] = (_ref10 = yAxisMaxValue) !== null && _ref10 !== void 0 ? _ref10 : domain[1];
|
|
116
|
+
return scaleLinear().domain(domain).range([chartHeight, 0]).nice();
|
|
117
|
+
})();
|
|
118
|
+
const xAxisTickFormat = propsXAxisTickFormat !== null && propsXAxisTickFormat !== void 0 ? propsXAxisTickFormat : xScaleType === 'Date' || xScaleType === 'dateString' ? scaleX.tickFormat() : undefined;
|
|
119
|
+
const hasCategory = data[0] && data[0].key.length >= 2 && data[0].key[1] !== null && data[0].key[1] !== undefined;
|
|
120
|
+
const statsByCategory = statsBy(data, sortingMethod);
|
|
121
|
+
const colorScale = useColor({
|
|
122
|
+
data: statsByCategory,
|
|
123
|
+
colorTheme: colorTheme,
|
|
124
|
+
category: d => d.key,
|
|
125
|
+
theme
|
|
126
|
+
});
|
|
127
|
+
const circles = data.sort((a, b) => {
|
|
128
|
+
if (xScaleType === 'number') {
|
|
129
|
+
if (a.key[0] < b.key[0]) return -1;
|
|
130
|
+
if (a.key[0] > b.key[0]) return 1;
|
|
131
|
+
return 0;
|
|
132
|
+
} else if (xScaleType === 'dateString') {
|
|
133
|
+
if (Date.parse(a.key[0]) < Date.parse(b.key[0])) return -1;
|
|
134
|
+
if (Date.parse(a.key[0]) > Date.parse(b.key[0])) return 1;
|
|
135
|
+
return 0;
|
|
136
|
+
} else if (xScaleType === 'Date') {
|
|
137
|
+
if (a.key[0].valueOf() < b.key[0].valueOf()) return -1;
|
|
138
|
+
if (a.key[0].valueOf() > b.key[0].valueOf()) return 1;
|
|
139
|
+
return 0;
|
|
140
|
+
} else if (xScaleType === 'string' && xAxisTickValues && Array.isArray(xAxisTickValues)) {
|
|
141
|
+
if (xAxisTickValues.indexOf(a.key[0]) < xAxisTickValues.indexOf(b.key[0])) return -1;
|
|
142
|
+
if (xAxisTickValues.indexOf(a.key[0]) > xAxisTickValues.indexOf(b.key[0])) return 1;
|
|
143
|
+
return 0;
|
|
144
|
+
}
|
|
145
|
+
return 0;
|
|
146
|
+
}).filter(d => d.value !== null).map(d => {
|
|
147
|
+
var _d$key$;
|
|
148
|
+
return {
|
|
149
|
+
category: (_d$key$ = d.key[1]) !== null && _d$key$ !== void 0 ? _d$key$ : 'default',
|
|
150
|
+
x: xScaleType === 'dateString' ? dateParser ? dateParser(d.key[0]) : new Date(Date.parse(d.key[0])) : d.key[0],
|
|
151
|
+
y: d.value,
|
|
152
|
+
data: {
|
|
153
|
+
key: d.key,
|
|
154
|
+
value: d.value
|
|
155
|
+
},
|
|
156
|
+
points: [d]
|
|
157
|
+
};
|
|
158
|
+
});
|
|
159
|
+
const lines = hasCategory ? Object.values(circles.reduce((prev, curr) => {
|
|
160
|
+
if (!prev[curr.category]) {
|
|
161
|
+
prev[curr.category] = [];
|
|
162
|
+
}
|
|
163
|
+
prev[curr.category].push(curr);
|
|
164
|
+
return prev;
|
|
165
|
+
}, {})) : [circles];
|
|
166
|
+
const createLine = line().x(d => scaleX(d.x)).y(d => scaleY(d.y));
|
|
167
|
+
const categories = [];
|
|
168
|
+
const pivotedTable = circles.reduce((acc, item) => {
|
|
169
|
+
const {
|
|
170
|
+
x,
|
|
171
|
+
category,
|
|
172
|
+
y
|
|
173
|
+
} = item;
|
|
174
|
+
if (!categories.includes(category)) {
|
|
175
|
+
categories.push(category);
|
|
176
|
+
}
|
|
177
|
+
const formattedKey = xAxisTickFormat ? xAxisTickFormat(x) : x.toString();
|
|
178
|
+
let entry = acc.find(e => e.key === formattedKey);
|
|
179
|
+
if (!entry) {
|
|
180
|
+
entry = {
|
|
181
|
+
key: formattedKey
|
|
182
|
+
};
|
|
183
|
+
acc.push(entry);
|
|
184
|
+
}
|
|
185
|
+
entry[category] = y;
|
|
186
|
+
return acc;
|
|
187
|
+
}, []);
|
|
188
|
+
const _ref11 = legendProps || {},
|
|
189
|
+
{
|
|
190
|
+
extraLegendItems
|
|
191
|
+
} = _ref11,
|
|
192
|
+
forwardedLegendProps = _objectWithoutProperties(_ref11, _excluded2);
|
|
193
|
+
return /*#__PURE__*/React__default.createElement(StyledLineChart, _extends({
|
|
194
|
+
mode: typeof onDotClick === 'function' || typeof getDotAnchorProps === 'function' ? 'interactive' : 'static',
|
|
195
|
+
definition: hasCategory ? format('definition-linear-with-categories', {
|
|
196
|
+
categoryLength: categories.length,
|
|
197
|
+
circleLength: circles.length
|
|
198
|
+
}) : format('definition-linear', {
|
|
199
|
+
circleLength: circles.length
|
|
200
|
+
}),
|
|
201
|
+
xAxisDefinition: xScaleType !== 'string' ? format(`x-axis-${xScaleType === 'number' ? 'numbers' : 'dates'}-definition`, {
|
|
202
|
+
numAxis: xAxisPlacement === 'both' ? 2 : 1,
|
|
203
|
+
start: scaleX.domain()[0],
|
|
204
|
+
end: scaleX.domain()[1]
|
|
205
|
+
}) : format('x-axis-categories-definition', {
|
|
206
|
+
numAxis: xAxisPlacement === 'both' ? 2 : 1
|
|
207
|
+
}),
|
|
208
|
+
yAxisDefinition: format('y-axis-numbers-definition', {
|
|
209
|
+
numAxis: yAxisPlacement === 'both' ? 2 : 1,
|
|
210
|
+
start: scaleY.domain()[0],
|
|
211
|
+
end: scaleY.domain()[1]
|
|
212
|
+
}),
|
|
213
|
+
dataTableRepresentation: hasCategory ? {
|
|
214
|
+
header: /*#__PURE__*/React__default.createElement("thead", null, /*#__PURE__*/React__default.createElement("tr", null, /*#__PURE__*/React__default.createElement("th", {
|
|
215
|
+
scope: "col"
|
|
216
|
+
}, xScaleType === 'Date' || xScaleType === 'dateString' ? 'Date' : 'Key'), categories.map(category => /*#__PURE__*/React__default.createElement("th", {
|
|
217
|
+
key: category,
|
|
218
|
+
scope: "col"
|
|
219
|
+
}, category)))),
|
|
220
|
+
body: /*#__PURE__*/React__default.createElement("tbody", null, pivotedTable.map(row => /*#__PURE__*/React__default.createElement("tr", {
|
|
221
|
+
key: row.key
|
|
222
|
+
}, /*#__PURE__*/React__default.createElement("th", {
|
|
223
|
+
scope: "row"
|
|
224
|
+
}, row.key), categories.map(category => /*#__PURE__*/React__default.createElement("th", {
|
|
225
|
+
key: `${row.key}-${category}-${row[category]}`,
|
|
226
|
+
scope: "col"
|
|
227
|
+
}, row[category])))))
|
|
228
|
+
} : {
|
|
229
|
+
header: /*#__PURE__*/React__default.createElement("thead", null, /*#__PURE__*/React__default.createElement("tr", null, /*#__PURE__*/React__default.createElement("th", {
|
|
230
|
+
scope: "col"
|
|
231
|
+
}, xScaleType === 'Date' || xScaleType === 'dateString' ? 'Date' : 'Key'), /*#__PURE__*/React__default.createElement("th", {
|
|
232
|
+
scope: "col"
|
|
233
|
+
}, "Value"))),
|
|
234
|
+
body: /*#__PURE__*/React__default.createElement("tbody", null, circles.map(datum => {
|
|
235
|
+
const key = xAxisTickFormat ? xAxisTickFormat(datum.x) : datum.x.toString();
|
|
236
|
+
return /*#__PURE__*/React__default.createElement("tr", {
|
|
237
|
+
key: key
|
|
238
|
+
}, /*#__PURE__*/React__default.createElement("th", {
|
|
239
|
+
scope: "row"
|
|
240
|
+
}, key), /*#__PURE__*/React__default.createElement("td", null, datum.y));
|
|
241
|
+
}))
|
|
242
|
+
}
|
|
243
|
+
}, forwardedProps, {
|
|
244
|
+
id: id,
|
|
245
|
+
className: className,
|
|
246
|
+
ref: ref
|
|
247
|
+
}), /*#__PURE__*/React__default.createElement(Flexbox, {
|
|
248
|
+
flexDirection: "column",
|
|
249
|
+
alignItems: "center",
|
|
250
|
+
gap: "8"
|
|
251
|
+
}, /*#__PURE__*/React__default.createElement("svg", {
|
|
252
|
+
ref: svgRef,
|
|
253
|
+
width: width,
|
|
254
|
+
height: height,
|
|
255
|
+
"aria-label": typeof onDotClick === 'function' || typeof getDotAnchorProps === 'function' ? format('interactive-chart') : format('static-chart'),
|
|
256
|
+
"aria-hidden": "false"
|
|
257
|
+
}, /*#__PURE__*/React__default.createElement("g", {
|
|
258
|
+
transform: `translate(${margins.left},${margins.top})`,
|
|
259
|
+
"aria-hidden": "true"
|
|
260
|
+
}, lines.map((line, index) => {
|
|
261
|
+
return /*#__PURE__*/React__default.createElement(Line, {
|
|
262
|
+
color: colorScale === null || colorScale === void 0 ? void 0 : colorScale(line[0].category),
|
|
263
|
+
data: line.filter(point => point.y !== null),
|
|
264
|
+
disableAnimations: disableAnimations,
|
|
265
|
+
createLine: createLine,
|
|
266
|
+
key: `line _${index}`
|
|
267
|
+
});
|
|
268
|
+
})), categories.map((category, categoryIndex) => {
|
|
269
|
+
const filteredCircles = circles.filter(circle => circle.category === category);
|
|
270
|
+
return /*#__PURE__*/React__default.createElement("g", _extends({
|
|
271
|
+
key: `${id}-series-${category}`,
|
|
272
|
+
transform: `translate(${margins.left},${margins.top})`,
|
|
273
|
+
"aria-hidden": "false",
|
|
274
|
+
role: "region"
|
|
275
|
+
}, hasCategory ? {
|
|
276
|
+
'aria-label': `${category}, category ${categoryIndex + 1} of ${categories.length} with ${filteredCircles.length} circles`
|
|
277
|
+
} : {}), filteredCircles.map((circle, index) => {
|
|
278
|
+
const scaleXDomain = scaleX.domain();
|
|
279
|
+
const scaleYDomain = scaleY.domain();
|
|
280
|
+
if (xScaleType === 'number' && (circle.x < scaleXDomain[0] || circle.x > scaleXDomain[1] || circle.y < scaleYDomain[0] || circle.y > scaleYDomain[1])) {
|
|
281
|
+
return null;
|
|
282
|
+
}
|
|
283
|
+
const to = _objectSpread2(_objectSpread2({}, circle), {}, {
|
|
284
|
+
r: 4
|
|
285
|
+
});
|
|
286
|
+
return /*#__PURE__*/React__default.createElement(Dot, {
|
|
287
|
+
id: `id${id}__circle-${categoryIndex}.${index}`,
|
|
288
|
+
color: colorScale === null || colorScale === void 0 ? void 0 : colorScale(circle.category),
|
|
289
|
+
data: to,
|
|
290
|
+
dataset: circles,
|
|
291
|
+
isSelected: Boolean(isDotSelected === null || isDotSelected === void 0 ? void 0 : isDotSelected(to)),
|
|
292
|
+
anchorProps: getDotAnchorProps ? getDotAnchorProps(to) : undefined,
|
|
293
|
+
key: `circle _${categoryIndex}.${index}`,
|
|
294
|
+
labelDecorator: labelDecorator,
|
|
295
|
+
onClick: onDotClick,
|
|
296
|
+
role: dotRole,
|
|
297
|
+
scaleX: scaleX,
|
|
298
|
+
scaleY: scaleY,
|
|
299
|
+
tooltipDecorator: tooltipDecorator,
|
|
300
|
+
tooltipVariant: tooltipVariant,
|
|
301
|
+
variant: DotVariant.hollow
|
|
302
|
+
});
|
|
303
|
+
}));
|
|
304
|
+
}), /*#__PURE__*/React__default.createElement("g", {
|
|
305
|
+
transform: `translate(${margins.left},${margins.top})`
|
|
306
|
+
}, ['bottom', 'both'].includes(xAxisPlacement) ? /*#__PURE__*/React__default.createElement(Axis, {
|
|
307
|
+
disableAnimations: disableAnimations,
|
|
308
|
+
position: "bottom",
|
|
309
|
+
length: chartWidth,
|
|
310
|
+
scale: scaleX,
|
|
311
|
+
x: 0,
|
|
312
|
+
y: chartHeight,
|
|
313
|
+
tickValues: xAxisTickValues !== null && xAxisTickValues !== void 0 ? xAxisTickValues : 8,
|
|
314
|
+
tickPadding: xAxisTickPadding,
|
|
315
|
+
tickRotation: xAxisTickRotation,
|
|
316
|
+
tickSize: xAxisTickSize,
|
|
317
|
+
tickFormat: xAxisTickFormat,
|
|
318
|
+
tickRemodelling: xAxisTickRemodelling,
|
|
319
|
+
variant: xAxisVariant
|
|
320
|
+
}) : null, ['top', 'both'].includes(xAxisPlacement) ? /*#__PURE__*/React__default.createElement(Axis, {
|
|
321
|
+
disableAnimations: disableAnimations,
|
|
322
|
+
position: "top",
|
|
323
|
+
length: chartWidth,
|
|
324
|
+
scale: scaleX,
|
|
325
|
+
x: 0,
|
|
326
|
+
y: 0,
|
|
327
|
+
tickValues: xAxisTickValues !== null && xAxisTickValues !== void 0 ? xAxisTickValues : 8,
|
|
328
|
+
tickPadding: xAxisTickPadding,
|
|
329
|
+
tickRotation: xAxisTickRotation,
|
|
330
|
+
tickSize: xAxisTickSize,
|
|
331
|
+
tickFormat: xAxisTickFormat,
|
|
332
|
+
tickRemodelling: xAxisTickRemodelling,
|
|
333
|
+
variant: xAxisVariant
|
|
334
|
+
}) : null, ['left', 'both'].includes(yAxisPlacement) ? /*#__PURE__*/React__default.createElement(Axis, {
|
|
335
|
+
disableAnimations: disableAnimations,
|
|
336
|
+
position: "left",
|
|
337
|
+
length: chartHeight,
|
|
338
|
+
scale: scaleY,
|
|
339
|
+
x: 0,
|
|
340
|
+
y: chartHeight,
|
|
341
|
+
tickValues: yAxisTickValues !== null && yAxisTickValues !== void 0 ? yAxisTickValues : 8,
|
|
342
|
+
tickPadding: yAxisTickPadding,
|
|
343
|
+
tickRotation: yAxisTickRotation,
|
|
344
|
+
tickSize: yAxisTickSize,
|
|
345
|
+
tickFormat: yAxisTickFormat,
|
|
346
|
+
tickRemodelling: yAxisTickRemodelling,
|
|
347
|
+
variant: yAxisVariant
|
|
348
|
+
}) : null, ['right', 'both'].includes(yAxisPlacement) ? /*#__PURE__*/React__default.createElement(Axis, {
|
|
349
|
+
disableAnimations: disableAnimations,
|
|
350
|
+
position: "right",
|
|
351
|
+
length: chartHeight,
|
|
352
|
+
scale: scaleY,
|
|
353
|
+
x: chartWidth,
|
|
354
|
+
y: chartHeight,
|
|
355
|
+
tickValues: yAxisTickValues !== null && yAxisTickValues !== void 0 ? yAxisTickValues : 8,
|
|
356
|
+
tickPadding: yAxisTickPadding,
|
|
357
|
+
tickRotation: yAxisTickRotation,
|
|
358
|
+
tickSize: yAxisTickSize,
|
|
359
|
+
tickFormat: yAxisTickFormat,
|
|
360
|
+
tickRemodelling: yAxisTickRemodelling,
|
|
361
|
+
variant: yAxisVariant
|
|
362
|
+
}) : null))), hasCategory && legendVariant !== LineChartLegendVariant.none ? /*#__PURE__*/React__default.createElement(Legend, _extends({
|
|
363
|
+
data: (extraLegendItems ? mergeLegends(extraLegendItems, statsByCategory).sort(getSortingMethod(sortingMethod)) : statsByCategory).map(d => _objectSpread2(_objectSpread2({}, d), {}, {
|
|
364
|
+
color: colorScale === null || colorScale === void 0 ? void 0 : colorScale(d.key)
|
|
365
|
+
})),
|
|
366
|
+
variant: legendVariant === LineChartLegendVariant.externalLabelValue ? LegendVariant.value : legendVariant === LineChartLegendVariant.externalLabelPercent ? LegendVariant.percent : legendVariant === LineChartLegendVariant.externalLabel ? LegendVariant.label : LegendVariant.custom,
|
|
367
|
+
legendDecorator: legendDecorator ? (datum, props) => legendDecorator(datum, props) : undefined
|
|
368
|
+
}, forwardedLegendProps)) : null);
|
|
369
|
+
});
|
|
370
|
+
|
|
371
|
+
export { RenderedLineChart };
|
|
372
|
+
//# sourceMappingURL=RenderedLineChart.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RenderedLineChart.js","sources":["../../../src/components/LineChart/RenderedLineChart.tsx"],"sourcesContent":["import React, { forwardRef, RefObject, useEffect, useRef } from 'react';\nimport {\n extent as d3extent,\n scaleLinear as d3scaleLinear,\n scalePoint as d3scalePoint,\n scaleTime as d3scaleTime,\n line as d3line,\n ScaleTime as d3ScaleTime,\n} from 'd3';\n\nimport { Flexbox, useTheme, useMessageFormatter } from '@redsift/design-system';\nimport intlMessages from './intl';\n\nimport { AnyScale, DotDatum, LegendItemDatum, LegendVariant, LinePointDatum, TwoCategoryData } from '../../types';\nimport { LineChartLegendVariant, LineChartProps } from './types';\nimport { StyledLineChart } from './styles';\nimport { useColor } from '../../hooks';\nimport { Axis, AxisVariant } from '../Axis';\nimport { Legend } from '../Legend';\nimport { Dot, DotVariant } from '../Dot';\nimport { statsBy, sizeToDimension } from './utils';\nimport { Line } from '../Line';\nimport { getSortingMethod, isValidDate, mergeLegends } from '../../utils';\n\ninterface RenderedLineChartProps extends Required<Pick<LineChartProps, 'data'>>, Omit<LineChartProps, 'data'> {}\n\nexport const RenderedLineChart = forwardRef<HTMLDivElement, RenderedLineChartProps>((props, ref) => {\n const {\n className,\n data: propsData,\n dotRole,\n disableAnimations,\n getDotAnchorProps,\n id,\n isDotSelected,\n labelDecorator,\n legendDecorator,\n legendVariant,\n legendProps,\n margins: propsMargins,\n onDotClick,\n size,\n sortingMethod,\n colorTheme,\n tooltipDecorator,\n tooltipVariant,\n xAxisVariant,\n xAxisPlacement,\n xAxisTickFormat: propsXAxisTickFormat,\n xAxisTickPadding,\n xAxisTickRotation,\n xAxisTickSize,\n xAxisTickValues,\n xAxisMinValue,\n xAxisMaxValue,\n xAxisTickRemodelling,\n yAxisVariant,\n yAxisPlacement,\n yAxisTickFormat,\n yAxisTickPadding,\n yAxisTickRotation,\n yAxisTickSize,\n yAxisTickValues,\n yAxisMinValue,\n yAxisMaxValue,\n yAxisTickRemodelling,\n dateParser,\n ...forwardedProps\n } = props;\n\n const cache = useRef<TwoCategoryData>();\n const theme = useTheme();\n\n const format = useMessageFormatter(intlMessages);\n\n const xScaleType: 'number' | 'string' | 'Date' | 'dateString' | undefined =\n propsData[0].key[0] instanceof Date\n ? 'Date'\n : typeof propsData[0].key[0] === 'number'\n ? 'number'\n : typeof propsData[0].key[0] === 'string' && isValidDate(propsData[0].key[0])\n ? 'dateString'\n : typeof propsData[0].key[0] === 'string'\n ? 'string'\n : undefined;\n const data =\n xScaleType === 'number'\n ? propsData.filter((datum) => typeof datum.key[0] === 'number' && !Number.isNaN(datum.key[0]))\n : xScaleType === 'dateString'\n ? propsData.filter((datum) => isValidDate(datum.key[0] as string))\n : xScaleType === 'string'\n ? propsData.filter((datum) => typeof datum.key[0] === 'string')\n : xScaleType === 'Date'\n ? propsData.filter((datum) => datum.key[0] instanceof Date)\n : propsData;\n\n useEffect(() => {\n cache.current = data;\n });\n\n const svgRef = useRef<SVGSVGElement>();\n\n const chartDimensions = sizeToDimension(size!);\n const width = chartDimensions.width;\n const height = chartDimensions.height;\n const margins = {\n top: xAxisVariant === AxisVariant.default || xAxisVariant === AxisVariant.tickValue ? 24 : 8,\n left: yAxisVariant === AxisVariant.default || yAxisVariant === AxisVariant.tickValue ? 48 : 8,\n right: yAxisVariant === AxisVariant.default || yAxisVariant === AxisVariant.tickValue ? 48 : 8,\n bottom: xAxisVariant === AxisVariant.default || xAxisVariant === AxisVariant.tickValue ? 24 : 8,\n ...propsMargins,\n };\n const chartHeight = height - margins.top - margins.bottom;\n const chartWidth = width - margins.left - margins.right;\n\n const scaleX = (() => {\n if (xScaleType === 'number') {\n const domain = d3extent(data, (d) => d.key[0] as number) as [number, number];\n domain[0] = (xAxisMinValue as number) ?? domain[0];\n domain[1] = (xAxisMaxValue as number) ?? domain[1];\n return d3scaleLinear().domain(domain).range([0, chartWidth]).nice();\n } else if (xScaleType === 'dateString') {\n const domain = d3extent(data, (d) => Date.parse(d.key[0] as string)) as [number, number];\n domain[0] = (xAxisMinValue as number) ?? domain[0];\n domain[1] = (xAxisMaxValue as number) ?? domain[1];\n return d3scaleTime()\n .domain([new Date(domain[0]), new Date(domain[1])])\n .range([0, chartWidth])\n .nice();\n } else if (xScaleType === 'Date') {\n const domain = d3extent(data, (d) => (d.key[0] as Date).valueOf()) as [number, number];\n domain[0] = (xAxisMinValue as number) ?? domain[0];\n domain[1] = (xAxisMaxValue as number) ?? domain[1];\n return d3scaleTime()\n .domain([new Date(domain[0]), new Date(domain[1])])\n .range([0, chartWidth])\n .nice();\n } else {\n const domain =\n xAxisTickValues && Array.isArray(xAxisTickValues)\n ? (xAxisTickValues as string[])\n : data.map((d) => d.key[0] as string);\n domain[0] = (xAxisMinValue as string) ?? domain[0];\n domain[1] = (xAxisMaxValue as string) ?? domain[1];\n return d3scalePoint().domain(domain).range([0, chartWidth]);\n }\n })();\n const scaleY = (() => {\n const domain = d3extent(data, (d) => d.value) as [number, number];\n domain[0] = (yAxisMinValue as number) ?? domain[0];\n domain[1] = (yAxisMaxValue as number) ?? domain[1];\n return d3scaleLinear().domain(domain).range([chartHeight, 0]).nice();\n })();\n const xAxisTickFormat =\n propsXAxisTickFormat ??\n (xScaleType === 'Date' || xScaleType === 'dateString'\n ? (scaleX as d3ScaleTime<number, number, never>).tickFormat()\n : undefined);\n\n const hasCategory = data[0] && data[0].key.length >= 2 && data[0].key[1] !== null && data[0].key[1] !== undefined;\n const statsByCategory = statsBy(data, sortingMethod!);\n const colorScale = useColor({\n data: statsByCategory,\n colorTheme: colorTheme!,\n category: (d) => d.key as string,\n theme,\n });\n\n const circles = data\n .sort((a, b) => {\n if (xScaleType === 'number') {\n if (a.key[0] < b.key[0]) return -1;\n if (a.key[0] > b.key[0]) return 1;\n return 0;\n } else if (xScaleType === 'dateString') {\n if (Date.parse(a.key[0] as string) < Date.parse(b.key[0] as string)) return -1;\n if (Date.parse(a.key[0] as string) > Date.parse(b.key[0] as string)) return 1;\n return 0;\n } else if (xScaleType === 'Date') {\n if ((a.key[0] as Date).valueOf() < (b.key[0] as Date).valueOf()) return -1;\n if ((a.key[0] as Date).valueOf() > (b.key[0] as Date).valueOf()) return 1;\n return 0;\n } else if (xScaleType === 'string' && xAxisTickValues && Array.isArray(xAxisTickValues)) {\n if (xAxisTickValues.indexOf(a.key[0]) < xAxisTickValues.indexOf(b.key[0])) return -1;\n if (xAxisTickValues.indexOf(a.key[0]) > xAxisTickValues.indexOf(b.key[0])) return 1;\n return 0;\n }\n return 0;\n })\n .filter((d) => d.value !== null)\n .map((d) => ({\n category: d.key[1] ?? 'default',\n x:\n xScaleType === 'dateString'\n ? dateParser\n ? dateParser(d.key[0] as string)\n : new Date(Date.parse(d.key[0] as string))\n : d.key[0],\n y: d.value,\n data: {\n key: d.key,\n value: d.value,\n },\n points: [d],\n }));\n const lines = hasCategory\n ? Object.values(\n circles.reduce((prev, curr: (typeof circles)[number]) => {\n if (!prev[curr.category!]) {\n prev[curr.category!] = [];\n }\n prev[curr.category!].push(curr);\n return prev;\n }, {} as Record<string, typeof circles>)\n )\n : [circles];\n\n const createLine = d3line<LinePointDatum>()\n .x((d) => scaleX(d.x as any) as any)\n .y((d) => scaleY(d.y as any));\n\n const categories: string[] = [];\n const pivotedTable = circles.reduce((acc, item) => {\n const { x, category, y } = item;\n if (!categories.includes(category)) {\n categories.push(category);\n }\n const formattedKey = xAxisTickFormat ? xAxisTickFormat(x as any) : x.toString();\n\n let entry = acc.find((e) => e.key === formattedKey);\n if (!entry) {\n entry = { key: formattedKey };\n acc.push(entry);\n }\n\n entry[category] = y;\n\n return acc;\n }, [] as Array<Record<string, string | number | null | undefined> & { key: string }>);\n\n const { extraLegendItems, ...forwardedLegendProps } = legendProps || {};\n\n return (\n <StyledLineChart\n mode={typeof onDotClick === 'function' || typeof getDotAnchorProps === 'function' ? 'interactive' : 'static'}\n definition={\n hasCategory\n ? format('definition-linear-with-categories', {\n categoryLength: categories.length,\n circleLength: circles.length,\n })\n : format('definition-linear', { circleLength: circles.length })\n }\n xAxisDefinition={\n xScaleType !== 'string'\n ? format(`x-axis-${xScaleType === 'number' ? 'numbers' : 'dates'}-definition`, {\n numAxis: xAxisPlacement === 'both' ? 2 : 1,\n start: scaleX.domain()[0],\n end: scaleX.domain()[1],\n })\n : format('x-axis-categories-definition', { numAxis: xAxisPlacement === 'both' ? 2 : 1 })\n }\n yAxisDefinition={format('y-axis-numbers-definition', {\n numAxis: yAxisPlacement === 'both' ? 2 : 1,\n start: scaleY.domain()[0],\n end: scaleY.domain()[1],\n })}\n dataTableRepresentation={\n hasCategory\n ? {\n header: (\n <thead>\n <tr>\n <th scope=\"col\">{xScaleType === 'Date' || xScaleType === 'dateString' ? 'Date' : 'Key'}</th>\n {categories.map((category) => (\n <th key={category} scope=\"col\">\n {category}\n </th>\n ))}\n </tr>\n </thead>\n ),\n body: (\n <tbody>\n {pivotedTable.map((row) => (\n <tr key={row.key}>\n <th scope=\"row\">{row.key}</th>\n {categories.map((category) => (\n <th key={`${row.key}-${category}-${row[category]}`} scope=\"col\">\n {row[category]}\n </th>\n ))}\n </tr>\n ))}\n </tbody>\n ),\n }\n : {\n header: (\n <thead>\n <tr>\n <th scope=\"col\">{xScaleType === 'Date' || xScaleType === 'dateString' ? 'Date' : 'Key'}</th>\n <th scope=\"col\">Value</th>\n </tr>\n </thead>\n ),\n body: (\n <tbody>\n {circles.map((datum) => {\n const key = xAxisTickFormat ? xAxisTickFormat(datum.x as any) : datum.x.toString();\n return (\n <tr key={key}>\n <th scope=\"row\">{key}</th>\n <td>{datum.y}</td>\n </tr>\n );\n })}\n </tbody>\n ),\n }\n }\n {...forwardedProps}\n id={id}\n className={className}\n ref={ref as RefObject<HTMLDivElement>}\n >\n <Flexbox flexDirection=\"column\" alignItems=\"center\" gap=\"8\">\n <svg\n ref={svgRef as RefObject<SVGSVGElement>}\n width={width}\n height={height}\n aria-label={\n typeof onDotClick === 'function' || typeof getDotAnchorProps === 'function'\n ? format('interactive-chart')\n : format('static-chart')\n }\n aria-hidden=\"false\"\n >\n <g transform={`translate(${margins.left},${margins.top})`} aria-hidden=\"true\">\n {lines.map((line, index) => {\n return (\n <Line\n color={colorScale?.(line[0].category!)}\n data={line.filter((point) => point.y !== null) as any}\n disableAnimations={disableAnimations}\n createLine={createLine}\n key={`line _${index}`}\n />\n );\n })}\n </g>\n {categories.map((category, categoryIndex) => {\n const filteredCircles = circles.filter((circle) => circle.category === category);\n return (\n <g\n key={`${id}-series-${category}`}\n transform={`translate(${margins.left},${margins.top})`}\n aria-hidden=\"false\"\n role=\"region\"\n {...(hasCategory\n ? {\n 'aria-label': `${category}, category ${categoryIndex + 1} of ${categories.length} with ${\n filteredCircles.length\n } circles`,\n }\n : {})}\n >\n {filteredCircles.map((circle, index) => {\n const scaleXDomain = scaleX.domain();\n const scaleYDomain = scaleY.domain();\n\n if (\n xScaleType === 'number' &&\n (circle.x! < scaleXDomain[0] ||\n circle.x! > scaleXDomain[1] ||\n circle.y! < scaleYDomain[0] ||\n circle.y! > scaleYDomain[1])\n ) {\n return null;\n }\n\n const to = {\n ...circle,\n r: 4,\n };\n\n return (\n <Dot\n id={`id${id}__circle-${categoryIndex}.${index}`}\n color={colorScale?.(circle.category!)}\n data={to}\n dataset={circles}\n isSelected={Boolean(isDotSelected?.(to))}\n anchorProps={getDotAnchorProps ? getDotAnchorProps(to) : undefined}\n key={`circle _${categoryIndex}.${index}`}\n labelDecorator={labelDecorator}\n onClick={onDotClick}\n role={dotRole}\n scaleX={scaleX}\n scaleY={scaleY}\n tooltipDecorator={tooltipDecorator}\n tooltipVariant={tooltipVariant}\n variant={DotVariant.hollow}\n />\n );\n })}\n </g>\n );\n })}\n <g transform={`translate(${margins.left},${margins.top})`}>\n {['bottom', 'both'].includes(xAxisPlacement!) ? (\n <Axis\n disableAnimations={disableAnimations}\n position=\"bottom\"\n length={chartWidth}\n scale={scaleX as AnyScale}\n x={0}\n y={chartHeight}\n tickValues={xAxisTickValues ?? 8}\n tickPadding={xAxisTickPadding}\n tickRotation={xAxisTickRotation}\n tickSize={xAxisTickSize}\n tickFormat={xAxisTickFormat}\n tickRemodelling={xAxisTickRemodelling}\n variant={xAxisVariant}\n />\n ) : null}\n {['top', 'both'].includes(xAxisPlacement!) ? (\n <Axis\n disableAnimations={disableAnimations}\n position=\"top\"\n length={chartWidth}\n scale={scaleX as AnyScale}\n x={0}\n y={0}\n tickValues={xAxisTickValues ?? 8}\n tickPadding={xAxisTickPadding}\n tickRotation={xAxisTickRotation}\n tickSize={xAxisTickSize}\n tickFormat={xAxisTickFormat}\n tickRemodelling={xAxisTickRemodelling}\n variant={xAxisVariant}\n />\n ) : null}\n {['left', 'both'].includes(yAxisPlacement!) ? (\n <Axis\n disableAnimations={disableAnimations}\n position=\"left\"\n length={chartHeight}\n scale={scaleY as AnyScale}\n x={0}\n y={chartHeight}\n tickValues={yAxisTickValues ?? 8}\n tickPadding={yAxisTickPadding}\n tickRotation={yAxisTickRotation}\n tickSize={yAxisTickSize}\n tickFormat={yAxisTickFormat}\n tickRemodelling={yAxisTickRemodelling}\n variant={yAxisVariant}\n />\n ) : null}\n {['right', 'both'].includes(yAxisPlacement!) ? (\n <Axis\n disableAnimations={disableAnimations}\n position=\"right\"\n length={chartHeight}\n scale={scaleY as AnyScale}\n x={chartWidth}\n y={chartHeight}\n tickValues={yAxisTickValues ?? 8}\n tickPadding={yAxisTickPadding}\n tickRotation={yAxisTickRotation}\n tickSize={yAxisTickSize}\n tickFormat={yAxisTickFormat}\n tickRemodelling={yAxisTickRemodelling}\n variant={yAxisVariant}\n />\n ) : null}\n </g>\n </svg>\n </Flexbox>\n {hasCategory && legendVariant !== LineChartLegendVariant.none ? (\n <Legend\n data={(extraLegendItems\n ? mergeLegends(extraLegendItems, statsByCategory).sort(getSortingMethod(sortingMethod!))\n : statsByCategory\n ).map((d) => ({\n ...d,\n color: colorScale?.(d.key)!,\n }))}\n variant={\n legendVariant === LineChartLegendVariant.externalLabelValue\n ? LegendVariant.value\n : legendVariant === LineChartLegendVariant.externalLabelPercent\n ? LegendVariant.percent\n : legendVariant === LineChartLegendVariant.externalLabel\n ? LegendVariant.label\n : LegendVariant.custom\n }\n legendDecorator={\n legendDecorator\n ? (datum: LegendItemDatum, props) => legendDecorator(datum as unknown as DotDatum, props)\n : undefined\n }\n {...forwardedLegendProps}\n />\n ) : null}\n </StyledLineChart>\n );\n});\n"],"names":["RenderedLineChart","forwardRef","props","ref","className","data","propsData","dotRole","disableAnimations","getDotAnchorProps","id","isDotSelected","labelDecorator","legendDecorator","legendVariant","legendProps","margins","propsMargins","onDotClick","size","sortingMethod","colorTheme","tooltipDecorator","tooltipVariant","xAxisVariant","xAxisPlacement","xAxisTickFormat","propsXAxisTickFormat","xAxisTickPadding","xAxisTickRotation","xAxisTickSize","xAxisTickValues","xAxisMinValue","xAxisMaxValue","xAxisTickRemodelling","yAxisVariant","yAxisPlacement","yAxisTickFormat","yAxisTickPadding","yAxisTickRotation","yAxisTickSize","yAxisTickValues","yAxisMinValue","yAxisMaxValue","yAxisTickRemodelling","dateParser","forwardedProps","_objectWithoutProperties","_excluded","cache","useRef","theme","useTheme","format","useMessageFormatter","intlMessages","xScaleType","key","Date","isValidDate","undefined","filter","datum","Number","isNaN","useEffect","current","svgRef","chartDimensions","sizeToDimension","width","height","_objectSpread","top","AxisVariant","default","tickValue","left","right","bottom","chartHeight","chartWidth","scaleX","_ref","_ref2","domain","d3extent","d","d3scaleLinear","range","nice","_ref3","_ref4","parse","d3scaleTime","_ref5","_ref6","valueOf","_ref7","_ref8","Array","isArray","map","d3scalePoint","scaleY","_ref9","_ref10","value","tickFormat","hasCategory","length","statsByCategory","statsBy","colorScale","useColor","category","circles","sort","a","b","indexOf","_d$key$","x","y","points","lines","Object","values","reduce","prev","curr","push","createLine","d3line","categories","pivotedTable","acc","item","includes","formattedKey","toString","entry","find","e","_ref11","extraLegendItems","forwardedLegendProps","_excluded2","React","createElement","StyledLineChart","_extends","mode","definition","categoryLength","circleLength","xAxisDefinition","numAxis","start","end","yAxisDefinition","dataTableRepresentation","header","scope","body","row","Flexbox","flexDirection","alignItems","gap","transform","line","index","Line","color","point","categoryIndex","filteredCircles","circle","role","scaleXDomain","scaleYDomain","to","r","Dot","dataset","isSelected","Boolean","anchorProps","onClick","variant","DotVariant","hollow","Axis","position","scale","tickValues","tickPadding","tickRotation","tickSize","tickRemodelling","LineChartLegendVariant","none","Legend","mergeLegends","getSortingMethod","externalLabelValue","LegendVariant","externalLabelPercent","percent","externalLabel","label","custom"],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
var enUS = {
|
|
2
|
+
"interactive-chart": "Interactive Line Chart",
|
|
3
|
+
"static-chart": "Static Line Chart",
|
|
4
|
+
"definition-linear": "Linear Line Chart with {circleLength} circles.",
|
|
5
|
+
"definition-linear-with-categories": "Linear Line Chart with {categoryLength} categories and {circleLength} circles.",
|
|
6
|
+
"definition-ordinal": "Ordinal Line Chart with {circleLength} circles.",
|
|
7
|
+
"x-axis-numbers-definition": "The chart has {numAxis, plural, =0 {0 X axis} =1 {1 X axis} other {# X axes}} displaying numbers from {start, number} to {end, number}.",
|
|
8
|
+
"y-axis-numbers-definition": "The chart has {numAxis, plural, =0 {0 Y axis} =1 {1 Y axis} other {# Y axes}} displaying numbers from {start, number} to {end, number}.",
|
|
9
|
+
"x-axis-dates-definition": "The chart has {numAxis, plural, =0 {0 X axis} =1 {1 X axis} other {# X axes}} displaying dates from {start, date, ::yyyyMMdd} to {end, date, ::yyyyMMdd}.",
|
|
10
|
+
"y-axis-dates-definition": "The chart has {numAxis, plural, =0 {0 Y axis} =1 {1 Y axis} other {# Y axes}} displaying dates from {start, date, ::yyyyMMdd} to {end, date, ::yyyyMMdd}.",
|
|
11
|
+
"x-axis-categories-definition": "The chart has {numAxis, plural, =0 {0 X axis} =1 {1 X axis} other {# X axes}} displaying categories.",
|
|
12
|
+
"y-axis-categories-definition": "The chart has {numAxis, plural, =0 {0 Y axis} =1 {1 Y axis} other {# Y axes}} displaying categories.",
|
|
13
|
+
"series-legend": "{category}, line {categoryIndex} of {categoryLength} with {circleLength} circles"
|
|
14
|
+
};
|
|
15
|
+
|
|
16
|
+
export { enUS as default };
|
|
17
|
+
//# sourceMappingURL=en-US.json.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"en-US.json.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
var frFR = {
|
|
2
|
+
"interactive-chart": "Graphique en courbe interactif",
|
|
3
|
+
"static-chart": "Graphique en courbe statique",
|
|
4
|
+
"definition-linear": "Graphique en courbe contenant {circleLength} points répartis sur un axe linéraire.",
|
|
5
|
+
"definition-linear-with-categories": "Graphique en courbe contenant {categoryLength} courbes et {circleLength} points répartis sur un axe linéraire.",
|
|
6
|
+
"definition-ordinal": "Graphique en courbe contenant {circleLength} points.",
|
|
7
|
+
"x-axis-numbers-definition": "Le graphique a {numAxis, plural, =0 {0 axe X} =1 {1 axe X} other {# axes X}} affichant des nombres allant de {start, number} à {end, number}.",
|
|
8
|
+
"y-axis-numbers-definition": "Le graphique a {numAxis, plural, =0 {0 axe Y} =1 {1 axe Y} other {# axes Y}} affichant des nombres allant de {start, number} à {end, number}.",
|
|
9
|
+
"x-axis-dates-definition": "Le graphique a {numAxis, plural, =0 {0 axe X} =1 {1 axe X} other {# axes X}} affichant des dates allant de {start, date, ::yyyyMMdd} à {end, date, ::yyyyMMdd}.",
|
|
10
|
+
"y-axis-dates-definition": "Le graphique a {numAxis, plural, =0 {0 axe Y} =1 {1 axe Y} other {# axes Y}} affichant des dates allant de {start, date, ::yyyyMMdd} à {end, date, ::yyyyMMdd}.",
|
|
11
|
+
"x-axis-categories-definition": "Le graphique a {numAxis, plural, =0 {0 axe X} =1 {1 axe X} other {# axes X}} affichant des categories.",
|
|
12
|
+
"y-axis-categories-definition": "Le graphique a {numAxis, plural, =0 {0 axe Y} =1 {1 axe Y} other {# axes Y}} affichant des categories.",
|
|
13
|
+
"series-legend": "{category}, courbe {categoryIndex} sur {categoryLength} contenant {circleLength} points"
|
|
14
|
+
};
|
|
15
|
+
|
|
16
|
+
export { frFR as default };
|
|
17
|
+
//# sourceMappingURL=fr-FR.json.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fr-FR.json.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../src/components/LineChart/intl/index.ts"],"sourcesContent":["import enUS from './en-US.json';\nimport frFR from './fr-FR.json';\n\nexport default {\n 'en-US': enUS,\n 'fr-FR': frFR,\n};\n"],"names":["enUS","frFR"],"mappings":";;;AAGA,mBAAe;AACb,EAAA,OAAO,EAAEA,IAAI;AACb,EAAA,OAAO,EAAEC,IAAAA;AACX,CAAC;;;;"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import * as styled_components from 'styled-components';
|
|
2
|
+
import { LineChartProps } from './types.js';
|
|
3
|
+
import * as _redsift_design_system from '@redsift/design-system';
|
|
4
|
+
import { Theme } from '@redsift/design-system';
|
|
5
|
+
import { ChartContainerProps } from '../ChartContainer/types.js';
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Component style.
|
|
9
|
+
*/
|
|
10
|
+
declare const StyledLineChart: styled_components.StyledComponent<_redsift_design_system.Comp<ChartContainerProps, HTMLDivElement>, any, LineChartProps, never>;
|
|
11
|
+
declare const StyledLineChartEmptyText: styled_components.StyledComponent<"div", any, {
|
|
12
|
+
$maxWidth: number;
|
|
13
|
+
$textSize: number;
|
|
14
|
+
$theme: Theme;
|
|
15
|
+
}, never>;
|
|
16
|
+
|
|
17
|
+
export { StyledLineChart, StyledLineChartEmptyText };
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import styled from 'styled-components';
|
|
2
|
+
import { ChartContainer } from '../ChartContainer/ChartContainer.js';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Component style.
|
|
6
|
+
*/
|
|
7
|
+
const StyledLineChart = styled(ChartContainer)``;
|
|
8
|
+
const StyledLineChartEmptyText = styled.div`
|
|
9
|
+
position: absolute;
|
|
10
|
+
top: 0;
|
|
11
|
+
left: 0;
|
|
12
|
+
height: 100%;
|
|
13
|
+
width: 100%;
|
|
14
|
+
display: flex;
|
|
15
|
+
flex-direction: column;
|
|
16
|
+
justify-content: center;
|
|
17
|
+
align-items: center;
|
|
18
|
+
pointer-events: none;
|
|
19
|
+
|
|
20
|
+
> * {
|
|
21
|
+
max-width: ${_ref => {
|
|
22
|
+
let {
|
|
23
|
+
$maxWidth
|
|
24
|
+
} = _ref;
|
|
25
|
+
return $maxWidth;
|
|
26
|
+
}}px;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
> span {
|
|
30
|
+
font-family: var(--redsift-typography-font-family-poppins);
|
|
31
|
+
color: ${_ref2 => {
|
|
32
|
+
let {
|
|
33
|
+
$theme
|
|
34
|
+
} = _ref2;
|
|
35
|
+
return `var(--redsift-color-${$theme}-components-text-primary)`;
|
|
36
|
+
}};
|
|
37
|
+
font-size: ${_ref3 => {
|
|
38
|
+
let {
|
|
39
|
+
$textSize
|
|
40
|
+
} = _ref3;
|
|
41
|
+
return $textSize;
|
|
42
|
+
}}px;
|
|
43
|
+
line-height: ${_ref4 => {
|
|
44
|
+
let {
|
|
45
|
+
$textSize
|
|
46
|
+
} = _ref4;
|
|
47
|
+
return $textSize;
|
|
48
|
+
}}px;
|
|
49
|
+
}
|
|
50
|
+
`;
|
|
51
|
+
|
|
52
|
+
export { StyledLineChart, StyledLineChartEmptyText };
|
|
53
|
+
//# sourceMappingURL=styles.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"styles.js","sources":["../../../src/components/LineChart/styles.ts"],"sourcesContent":["import styled from 'styled-components';\nimport { StyledLineChartProps } from './types';\nimport { ChartContainer } from '../ChartContainer';\nimport { Theme } from '@redsift/design-system';\n\n/**\n * Component style.\n */\nexport const StyledLineChart = styled(ChartContainer)<StyledLineChartProps>``;\n\nexport const StyledLineChartEmptyText = styled.div<{\n $maxWidth: number;\n $textSize: number;\n $theme: Theme;\n}>`\n position: absolute;\n top: 0;\n left: 0;\n height: 100%;\n width: 100%;\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n pointer-events: none;\n\n > * {\n max-width: ${({ $maxWidth }) => $maxWidth}px;\n }\n\n > span {\n font-family: var(--redsift-typography-font-family-poppins);\n color: ${({ $theme }) => `var(--redsift-color-${$theme}-components-text-primary)`};\n font-size: ${({ $textSize }) => $textSize}px;\n line-height: ${({ $textSize }) => $textSize}px;\n }\n`;\n"],"names":["StyledLineChart","styled","ChartContainer","StyledLineChartEmptyText","div","_ref","$maxWidth","_ref2","$theme","_ref3","$textSize","_ref4"],"mappings":";;;AAKA;AACA;AACA;MACaA,eAAe,GAAGC,MAAM,CAACC,cAAc,CAAwB,CAAC,EAAA;AAEhEC,MAAAA,wBAAwB,GAAGF,MAAM,CAACG,GAI5C,CAAA;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAA,EAAiBC,IAAA,IAAA;EAAA,IAAC;AAAEC,IAAAA,SAAAA;AAAU,GAAC,GAAAD,IAAA,CAAA;AAAA,EAAA,OAAKC,SAAS,CAAA;AAAA,CAAC,CAAA;AAC9C;AACA;AACA;AACA;AACA,WAAA,EAAaC,KAAA,IAAA;EAAA,IAAC;AAAEC,IAAAA,MAAAA;AAAO,GAAC,GAAAD,KAAA,CAAA;EAAA,OAAM,CAAA,oBAAA,EAAsBC,MAAO,CAA0B,yBAAA,CAAA,CAAA;AAAA,CAAC,CAAA;AACtF,eAAA,EAAiBC,KAAA,IAAA;EAAA,IAAC;AAAEC,IAAAA,SAAAA;AAAU,GAAC,GAAAD,KAAA,CAAA;AAAA,EAAA,OAAKC,SAAS,CAAA;AAAA,CAAC,CAAA;AAC9C,iBAAA,EAAmBC,KAAA,IAAA;EAAA,IAAC;AAAED,IAAAA,SAAAA;AAAU,GAAC,GAAAC,KAAA,CAAA;AAAA,EAAA,OAAKD,SAAS,CAAA;AAAA,CAAC,CAAA;AAChD;AACA;;;;"}
|