@elliemae/ds-dataviz 3.9.0 → 3.10.0-next.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/dist/cjs/graphs/Chart/Chart.js +1 -4
- package/dist/cjs/graphs/Chart/Chart.js.map +2 -2
- package/dist/cjs/graphs/Chart/ChartContext.js +1 -4
- package/dist/cjs/graphs/Chart/ChartContext.js.map +2 -2
- package/dist/cjs/graphs/Chart/config/useChart.js +26 -22
- package/dist/cjs/graphs/Chart/config/useChart.js.map +2 -2
- package/dist/cjs/graphs/Chart/config/useGetters.js +90 -0
- package/dist/cjs/graphs/Chart/config/useGetters.js.map +7 -0
- package/dist/cjs/graphs/Chart/config/useInternalMargins.js +1 -1
- package/dist/cjs/graphs/Chart/config/useInternalMargins.js.map +1 -1
- package/dist/cjs/graphs/Chart/config/useKeyboardNavigation.js +42 -13
- package/dist/cjs/graphs/Chart/config/useKeyboardNavigation.js.map +2 -2
- package/dist/cjs/graphs/Chart/config/useScales.js +67 -41
- package/dist/cjs/graphs/Chart/config/useScales.js.map +2 -2
- package/dist/cjs/graphs/Chart/helpers/colorPallet.js +1 -1
- package/dist/cjs/graphs/Chart/helpers/colorPallet.js.map +1 -1
- package/dist/cjs/graphs/Chart/helpers/index.js +4 -4
- package/dist/cjs/graphs/Chart/helpers/index.js.map +2 -2
- package/dist/cjs/graphs/Chart/helpers/useUniqueData.js +124 -0
- package/dist/cjs/graphs/Chart/helpers/useUniqueData.js.map +7 -0
- package/dist/cjs/graphs/Chart/helpers/useVirtualizedSeries.js +42 -11
- package/dist/cjs/graphs/Chart/helpers/useVirtualizedSeries.js.map +2 -2
- package/dist/cjs/graphs/Chart/parts/Axis/Axes.js +13 -2
- package/dist/cjs/graphs/Chart/parts/Axis/Axes.js.map +2 -2
- package/dist/cjs/graphs/Chart/parts/Axis/AxisBottom.js +72 -23
- package/dist/cjs/graphs/Chart/parts/Axis/AxisBottom.js.map +2 -2
- package/dist/cjs/graphs/Chart/parts/Axis/AxisLeft.js +36 -16
- package/dist/cjs/graphs/Chart/parts/Axis/AxisLeft.js.map +2 -2
- package/dist/cjs/graphs/Chart/parts/Axis/AxisRight.js +10 -8
- package/dist/cjs/graphs/Chart/parts/Axis/AxisRight.js.map +2 -2
- package/dist/cjs/graphs/Chart/parts/ChartContainer.js +60 -60
- package/dist/cjs/graphs/Chart/parts/ChartContainer.js.map +2 -2
- package/dist/cjs/graphs/Chart/parts/ClipPaths.js +85 -0
- package/dist/cjs/graphs/Chart/parts/ClipPaths.js.map +7 -0
- package/dist/cjs/graphs/Chart/parts/Labels/BottomLabel.js +2 -2
- package/dist/cjs/graphs/Chart/parts/Labels/BottomLabel.js.map +2 -2
- package/dist/cjs/graphs/Chart/parts/Labels/LeftLabel.js +7 -14
- package/dist/cjs/graphs/Chart/parts/Labels/LeftLabel.js.map +2 -2
- package/dist/cjs/graphs/Chart/parts/Legend/BottomLegend.js +4 -4
- package/dist/cjs/graphs/Chart/parts/Legend/BottomLegend.js.map +2 -2
- package/dist/cjs/graphs/Chart/parts/Legend/LegendItem.js +1 -1
- package/dist/cjs/graphs/Chart/parts/Legend/LegendItem.js.map +2 -2
- package/dist/cjs/graphs/Chart/parts/Scrapper/ScrapperLine.js +6 -2
- package/dist/cjs/graphs/Chart/parts/Scrapper/ScrapperLine.js.map +2 -2
- package/dist/cjs/graphs/Chart/parts/Scrapper/VerticalScrapper.js +2 -77
- package/dist/cjs/graphs/Chart/parts/Scrapper/VerticalScrapper.js.map +2 -2
- package/dist/cjs/graphs/Chart/parts/Scrapper/VerticalScrapperLine.js +3 -3
- package/dist/cjs/graphs/Chart/parts/Scrapper/VerticalScrapperLine.js.map +3 -3
- package/dist/cjs/graphs/Chart/parts/Scroller/BlurMask.js +112 -0
- package/dist/cjs/graphs/Chart/parts/Scroller/BlurMask.js.map +7 -0
- package/dist/cjs/graphs/Chart/parts/Scroller/ScrollBarX.js +4 -7
- package/dist/cjs/graphs/Chart/parts/Scroller/ScrollBarX.js.map +2 -2
- package/dist/cjs/graphs/Chart/parts/Scroller/ScrollBarY.js +114 -0
- package/dist/cjs/graphs/Chart/parts/Scroller/ScrollBarY.js.map +7 -0
- package/dist/cjs/graphs/Chart/parts/Scroller/ScrollableContainerX.js +14 -29
- package/dist/cjs/graphs/Chart/parts/Scroller/ScrollableContainerX.js.map +2 -2
- package/dist/cjs/graphs/Chart/parts/Scroller/ScrollableContainerY.js +84 -0
- package/dist/cjs/graphs/Chart/parts/Scroller/ScrollableContainerY.js.map +7 -0
- package/dist/cjs/graphs/Chart/parts/SeriesFactory.js +4 -9
- package/dist/cjs/graphs/Chart/parts/SeriesFactory.js.map +2 -2
- package/dist/cjs/graphs/Chart/react-desc-prop-types.js.map +2 -2
- package/dist/cjs/graphs/Chart/series/Area.js +1 -3
- package/dist/cjs/graphs/Chart/series/Area.js.map +2 -2
- package/dist/cjs/graphs/Chart/series/Bars.js.map +2 -2
- package/dist/cjs/graphs/Chart/series/HorizontalBars.js +4 -24
- package/dist/cjs/graphs/Chart/series/HorizontalBars.js.map +2 -2
- package/dist/cjs/graphs/Chart/series/HorizontalStackedBars.js +2 -2
- package/dist/cjs/graphs/Chart/series/HorizontalStackedBars.js.map +2 -2
- package/dist/cjs/graphs/Chart/series/StackedBar.js +3 -2
- package/dist/cjs/graphs/Chart/series/StackedBar.js.map +2 -2
- package/dist/cjs/graphs/Chart/styles.js +12 -11
- package/dist/cjs/graphs/Chart/styles.js.map +2 -2
- package/dist/cjs/graphs/constants.js +6 -5
- package/dist/cjs/graphs/constants.js.map +2 -2
- package/dist/esm/graphs/Chart/Chart.js +1 -4
- package/dist/esm/graphs/Chart/Chart.js.map +2 -2
- package/dist/esm/graphs/Chart/ChartContext.js +1 -4
- package/dist/esm/graphs/Chart/ChartContext.js.map +2 -2
- package/dist/esm/graphs/Chart/config/useChart.js +27 -23
- package/dist/esm/graphs/Chart/config/useChart.js.map +2 -2
- package/dist/esm/graphs/Chart/config/useGetters.js +64 -0
- package/dist/esm/graphs/Chart/config/useGetters.js.map +7 -0
- package/dist/esm/graphs/Chart/config/useInternalMargins.js +1 -1
- package/dist/esm/graphs/Chart/config/useInternalMargins.js.map +1 -1
- package/dist/esm/graphs/Chart/config/useKeyboardNavigation.js +42 -13
- package/dist/esm/graphs/Chart/config/useKeyboardNavigation.js.map +2 -2
- package/dist/esm/graphs/Chart/config/useScales.js +67 -41
- package/dist/esm/graphs/Chart/config/useScales.js.map +2 -2
- package/dist/esm/graphs/Chart/helpers/colorPallet.js +1 -1
- package/dist/esm/graphs/Chart/helpers/colorPallet.js.map +1 -1
- package/dist/esm/graphs/Chart/helpers/index.js +4 -4
- package/dist/esm/graphs/Chart/helpers/index.js.map +2 -2
- package/dist/esm/graphs/Chart/helpers/useUniqueData.js +98 -0
- package/dist/esm/graphs/Chart/helpers/useUniqueData.js.map +7 -0
- package/dist/esm/graphs/Chart/helpers/useVirtualizedSeries.js +42 -11
- package/dist/esm/graphs/Chart/helpers/useVirtualizedSeries.js.map +2 -2
- package/dist/esm/graphs/Chart/parts/Axis/Axes.js +13 -2
- package/dist/esm/graphs/Chart/parts/Axis/Axes.js.map +2 -2
- package/dist/esm/graphs/Chart/parts/Axis/AxisBottom.js +72 -23
- package/dist/esm/graphs/Chart/parts/Axis/AxisBottom.js.map +2 -2
- package/dist/esm/graphs/Chart/parts/Axis/AxisLeft.js +36 -16
- package/dist/esm/graphs/Chart/parts/Axis/AxisLeft.js.map +2 -2
- package/dist/esm/graphs/Chart/parts/Axis/AxisRight.js +10 -8
- package/dist/esm/graphs/Chart/parts/Axis/AxisRight.js.map +2 -2
- package/dist/esm/graphs/Chart/parts/ChartContainer.js +60 -60
- package/dist/esm/graphs/Chart/parts/ChartContainer.js.map +2 -2
- package/dist/esm/graphs/Chart/parts/ClipPaths.js +59 -0
- package/dist/esm/graphs/Chart/parts/ClipPaths.js.map +7 -0
- package/dist/esm/graphs/Chart/parts/Labels/BottomLabel.js +2 -2
- package/dist/esm/graphs/Chart/parts/Labels/BottomLabel.js.map +2 -2
- package/dist/esm/graphs/Chart/parts/Labels/LeftLabel.js +8 -15
- package/dist/esm/graphs/Chart/parts/Labels/LeftLabel.js.map +2 -2
- package/dist/esm/graphs/Chart/parts/Legend/BottomLegend.js +5 -5
- package/dist/esm/graphs/Chart/parts/Legend/BottomLegend.js.map +2 -2
- package/dist/esm/graphs/Chart/parts/Legend/LegendItem.js +1 -1
- package/dist/esm/graphs/Chart/parts/Legend/LegendItem.js.map +2 -2
- package/dist/esm/graphs/Chart/parts/Scrapper/ScrapperLine.js +6 -2
- package/dist/esm/graphs/Chart/parts/Scrapper/ScrapperLine.js.map +2 -2
- package/dist/esm/graphs/Chart/parts/Scrapper/VerticalScrapper.js +3 -78
- package/dist/esm/graphs/Chart/parts/Scrapper/VerticalScrapper.js.map +2 -2
- package/dist/esm/graphs/Chart/parts/Scrapper/VerticalScrapperLine.js +3 -3
- package/dist/esm/graphs/Chart/parts/Scrapper/VerticalScrapperLine.js.map +3 -3
- package/dist/esm/graphs/Chart/parts/Scroller/BlurMask.js +86 -0
- package/dist/esm/graphs/Chart/parts/Scroller/BlurMask.js.map +7 -0
- package/dist/esm/graphs/Chart/parts/Scroller/ScrollBarX.js +4 -7
- package/dist/esm/graphs/Chart/parts/Scroller/ScrollBarX.js.map +2 -2
- package/dist/esm/graphs/Chart/parts/Scroller/ScrollBarY.js +88 -0
- package/dist/esm/graphs/Chart/parts/Scroller/ScrollBarY.js.map +7 -0
- package/dist/esm/graphs/Chart/parts/Scroller/ScrollableContainerX.js +14 -29
- package/dist/esm/graphs/Chart/parts/Scroller/ScrollableContainerX.js.map +2 -2
- package/dist/esm/graphs/Chart/parts/Scroller/ScrollableContainerY.js +58 -0
- package/dist/esm/graphs/Chart/parts/Scroller/ScrollableContainerY.js.map +7 -0
- package/dist/esm/graphs/Chart/parts/SeriesFactory.js +5 -10
- package/dist/esm/graphs/Chart/parts/SeriesFactory.js.map +2 -2
- package/dist/esm/graphs/Chart/react-desc-prop-types.js.map +2 -2
- package/dist/esm/graphs/Chart/series/Area.js +1 -3
- package/dist/esm/graphs/Chart/series/Area.js.map +2 -2
- package/dist/esm/graphs/Chart/series/Bars.js.map +2 -2
- package/dist/esm/graphs/Chart/series/HorizontalBars.js +4 -24
- package/dist/esm/graphs/Chart/series/HorizontalBars.js.map +2 -2
- package/dist/esm/graphs/Chart/series/HorizontalStackedBars.js +2 -2
- package/dist/esm/graphs/Chart/series/HorizontalStackedBars.js.map +2 -2
- package/dist/esm/graphs/Chart/series/StackedBar.js +3 -2
- package/dist/esm/graphs/Chart/series/StackedBar.js.map +2 -2
- package/dist/esm/graphs/Chart/styles.js +13 -12
- package/dist/esm/graphs/Chart/styles.js.map +2 -2
- package/dist/esm/graphs/constants.js +7 -6
- package/dist/esm/graphs/constants.js.map +2 -2
- package/package.json +8 -8
- package/dist/cjs/graphs/Chart/Pie.js +0 -49
- package/dist/cjs/graphs/Chart/Pie.js.map +0 -7
- package/dist/cjs/graphs/Chart/parts/ActivePoint.js +0 -83
- package/dist/cjs/graphs/Chart/parts/ActivePoint.js.map +0 -7
- package/dist/esm/graphs/Chart/Pie.js +0 -23
- package/dist/esm/graphs/Chart/Pie.js.map +0 -7
- package/dist/esm/graphs/Chart/parts/ActivePoint.js +0 -57
- package/dist/esm/graphs/Chart/parts/ActivePoint.js.map +0 -7
|
@@ -32,20 +32,18 @@ var import_react = require("react");
|
|
|
32
32
|
var import_d3 = require("d3");
|
|
33
33
|
var import_helpers = require("../helpers");
|
|
34
34
|
var import_colorPallet = require("../helpers/colorPallet");
|
|
35
|
-
const useScales = ({
|
|
36
|
-
props
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
const rangeTo = innerWidth * (containerRatio ?? 1);
|
|
46
|
-
const getBandDomain = (0, import_react.useCallback)((axis) => axis.cols ?? [...series[0].data.keys()], [series]);
|
|
35
|
+
const useScales = ({ props, innerHeight, innerWidth, stackedData, currentData, containerRatio }) => {
|
|
36
|
+
const { series, xAxis, yAxis, y2Axis, groups: stackedSeries } = props;
|
|
37
|
+
const xScroll = xAxis.advanced?.pointSpacing?.value > 1;
|
|
38
|
+
const yScroll = yAxis.advanced?.pointSpacing?.value > 1;
|
|
39
|
+
const rangeToWidth = innerWidth * (xScroll ? containerRatio : 1);
|
|
40
|
+
const rangeToHeight = innerHeight * (yScroll ? containerRatio : 1);
|
|
41
|
+
const getBandDomain = (0, import_react.useCallback)(
|
|
42
|
+
(axis) => axis.cols ?? [...series[0].data.map((_, i) => i.toString())],
|
|
43
|
+
[series]
|
|
44
|
+
);
|
|
47
45
|
const getLinearDomain = (0, import_react.useCallback)(
|
|
48
|
-
(axis, axisString
|
|
46
|
+
(axis, axisString) => {
|
|
49
47
|
const begin = axis?.beginAtZero ? 0 : void 0;
|
|
50
48
|
const data = currentData.filter((serie) => {
|
|
51
49
|
if (serie.scale === axisString) {
|
|
@@ -60,23 +58,50 @@ const useScales = ({
|
|
|
60
58
|
if (typeof datum.value === "number") {
|
|
61
59
|
return datum.value;
|
|
62
60
|
}
|
|
63
|
-
return datum.value[axisString];
|
|
61
|
+
return datum.value[axisString === "y2" ? "y" : axisString];
|
|
64
62
|
})
|
|
65
63
|
);
|
|
66
|
-
const
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
];
|
|
70
|
-
const
|
|
71
|
-
const
|
|
72
|
-
const
|
|
73
|
-
|
|
74
|
-
|
|
64
|
+
const dataFlattened = data.flat();
|
|
65
|
+
const stackedDataFlatten = stackedData.flat();
|
|
66
|
+
const minStackedData = (0, import_d3.min)(stackedDataFlatten, (layer) => (0, import_d3.min)(layer, (sequence) => sequence[0]));
|
|
67
|
+
const maxStackedData = (0, import_d3.max)(stackedDataFlatten, (layer) => (0, import_d3.max)(layer, (sequence) => sequence[1]));
|
|
68
|
+
const minData = (0, import_d3.min)(dataFlattened);
|
|
69
|
+
const maxData = (0, import_d3.max)(dataFlattened);
|
|
70
|
+
const types = ["number", "object"];
|
|
71
|
+
const getMin = () => {
|
|
72
|
+
const aux = [];
|
|
73
|
+
if (typeof begin === "number")
|
|
74
|
+
aux.push(begin);
|
|
75
|
+
if (types.includes(typeof minData))
|
|
76
|
+
aux.push(minData);
|
|
77
|
+
if (typeof minStackedData === "number")
|
|
78
|
+
aux.push(minStackedData);
|
|
79
|
+
return (0, import_d3.min)(aux);
|
|
80
|
+
};
|
|
81
|
+
const getMax = () => {
|
|
82
|
+
const aux = [];
|
|
83
|
+
if (typeof begin === "number")
|
|
84
|
+
aux.push(begin);
|
|
85
|
+
if (types.includes(typeof maxData))
|
|
86
|
+
aux.push(maxData);
|
|
87
|
+
if (typeof maxStackedData === "number")
|
|
88
|
+
aux.push(maxStackedData);
|
|
89
|
+
return (0, import_d3.max)(aux);
|
|
90
|
+
};
|
|
91
|
+
const minRange = getMin();
|
|
92
|
+
const maxRange = getMax();
|
|
93
|
+
if (types.includes(typeof minRange) && types.includes(typeof maxRange)) {
|
|
94
|
+
if (typeof minRange === "number" && typeof maxRange === "number") {
|
|
95
|
+
const [leftPadding, rightPadding] = typeof axis.domainPadding === "number" ? [axis.domainPadding, axis.domainPadding] : axis.domainPadding ?? [0, 0];
|
|
96
|
+
return [
|
|
97
|
+
minRange - (maxRange - minRange) * (leftPadding ?? 0),
|
|
98
|
+
maxRange + (maxRange - minRange) * (rightPadding ?? 0)
|
|
99
|
+
];
|
|
100
|
+
}
|
|
101
|
+
if (typeof minRange === "object" && typeof maxRange === "object")
|
|
102
|
+
return [minRange, maxRange];
|
|
75
103
|
}
|
|
76
|
-
return [
|
|
77
|
-
minRange - (maxRange - minRange) * (leftPadding ?? 0),
|
|
78
|
-
maxRange + (maxRange - minRange) * (rightPadding ?? 0)
|
|
79
|
-
];
|
|
104
|
+
return [];
|
|
80
105
|
},
|
|
81
106
|
[currentData, stackedData]
|
|
82
107
|
);
|
|
@@ -86,31 +111,30 @@ const useScales = ({
|
|
|
86
111
|
const getScaleLog = (domain, range) => (0, import_d3.scaleLog)().domain(domain).range(range);
|
|
87
112
|
const xScale = (0, import_react.useMemo)(() => {
|
|
88
113
|
if (xAxis?.type === "time")
|
|
89
|
-
return getScaleTime(getLinearDomain(xAxis, "x"
|
|
114
|
+
return getScaleTime(getLinearDomain(xAxis, "x"), [0, rangeToWidth]);
|
|
90
115
|
if (xAxis?.type === "linear" || yAxis?.type === "band") {
|
|
91
|
-
|
|
92
|
-
return getScaleLinear(getLinearDomain(xAxis, "x", withStackData), [0, rangeTo], xAxis.padding);
|
|
116
|
+
return getScaleLinear(getLinearDomain(xAxis, "x"), [0, rangeToWidth]);
|
|
93
117
|
}
|
|
94
|
-
return getScaleBand(getBandDomain(xAxis), [0,
|
|
95
|
-
}, [getBandDomain, getLinearDomain,
|
|
118
|
+
return getScaleBand(getBandDomain(xAxis), [0, rangeToWidth]);
|
|
119
|
+
}, [getBandDomain, getLinearDomain, rangeToWidth, xAxis, yAxis?.type]);
|
|
96
120
|
const yScale = (0, import_react.useMemo)(() => {
|
|
97
121
|
if (yAxis?.type === "band")
|
|
98
|
-
return getScaleBand(getBandDomain(yAxis), [
|
|
122
|
+
return getScaleBand(getBandDomain(yAxis), [0, rangeToHeight]);
|
|
99
123
|
if (yAxis?.type === "log")
|
|
100
|
-
return getScaleLog(getLinearDomain(yAxis, "y"), [
|
|
101
|
-
return getScaleLinear(getLinearDomain(yAxis, "y"), [
|
|
102
|
-
}, [getBandDomain, getLinearDomain,
|
|
124
|
+
return getScaleLog(getLinearDomain(yAxis, "y"), [rangeToHeight, 0]);
|
|
125
|
+
return getScaleLinear(getLinearDomain(yAxis, "y"), [rangeToHeight, 0]);
|
|
126
|
+
}, [getBandDomain, getLinearDomain, rangeToHeight, yAxis]);
|
|
103
127
|
const y2Scale = (0, import_react.useMemo)(() => {
|
|
104
128
|
if (!y2Axis)
|
|
105
129
|
return null;
|
|
106
130
|
if (y2Axis?.type === "band")
|
|
107
|
-
return getScaleBand(getBandDomain(y2Axis), [
|
|
131
|
+
return getScaleBand(getBandDomain(y2Axis), [0, innerHeight]);
|
|
108
132
|
if (y2Axis?.type === "log")
|
|
109
133
|
return getScaleLog(getLinearDomain(y2Axis, "y2"), [innerHeight, 0]);
|
|
110
134
|
return getScaleLinear(getLinearDomain(y2Axis, "y2"), [innerHeight, 0]);
|
|
111
135
|
}, [getBandDomain, getLinearDomain, innerHeight, y2Axis]);
|
|
112
136
|
const colorScale = (0, import_react.useMemo)(
|
|
113
|
-
() => (0, import_d3.scaleOrdinal)().domain(series.map((d) => d.name)).range(series.map((d) => import_colorPallet.COLOR_PALLET[d.color] ?? d.color)),
|
|
137
|
+
() => (0, import_d3.scaleOrdinal)().domain(series.map((d) => d.name)).range(series.map((d) => import_colorPallet.COLOR_PALLET[d.color] ?? d.color)).unknown("red"),
|
|
114
138
|
[series]
|
|
115
139
|
);
|
|
116
140
|
const subgroupsWithBars = (0, import_react.useMemo)(
|
|
@@ -120,12 +144,14 @@ const useScales = ({
|
|
|
120
144
|
[currentData, stackedSeries]
|
|
121
145
|
);
|
|
122
146
|
const getBandwidth = (0, import_react.useCallback)(() => {
|
|
123
|
-
if (
|
|
147
|
+
if ((xAxis.type === void 0 || xAxis.type === "band") && yAxis.type !== "band") {
|
|
124
148
|
return xScale.bandwidth();
|
|
125
|
-
|
|
149
|
+
}
|
|
150
|
+
if (yAxis.type === "band") {
|
|
126
151
|
return yScale.bandwidth();
|
|
152
|
+
}
|
|
127
153
|
return innerWidth / xScale.ticks().length / 2;
|
|
128
|
-
}, [innerWidth, xScale, yScale]);
|
|
154
|
+
}, [innerWidth, xAxis.type, xScale, yAxis.type, yScale]);
|
|
129
155
|
if (stackedSeries?.length) {
|
|
130
156
|
stackedSeries.forEach((_, i) => subgroupsWithBars.push(`stacked-data-${i}`));
|
|
131
157
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../src/graphs/Chart/config/useScales.tsx", "../../../../../../../scripts/build/transpile/react-shim.js"],
|
|
4
|
-
"sourcesContent": ["/* eslint-disable max-statements */\n/* eslint-disable indent */\nimport { useMemo, useCallback } from 'react';\nimport { max, min, scaleLinear, scaleBand, scaleUtc, scaleOrdinal, scaleLog, Series, ScaleBand } from 'd3';\nimport { DSChartT } from '../react-desc-prop-types';\nimport { getStackedIndex } from '../helpers';\nimport { COLOR_PALLET } from '../helpers/colorPallet';\ninterface UseScales {\n props: DSChartT.Props;\n innerHeight: number;\n innerWidth: number;\n stackedData: Series<\n {\n [key: string]: number;\n },\n string\n >[][];\n currentData:
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;
|
|
4
|
+
"sourcesContent": ["/* eslint-disable complexity */\n/* eslint-disable max-statements */\n/* eslint-disable indent */\nimport { useMemo, useCallback } from 'react';\nimport { max, min, scaleLinear, ScaleLinear, scaleBand, scaleUtc, scaleOrdinal, scaleLog, Series, ScaleBand } from 'd3';\nimport { DSChartT } from '../react-desc-prop-types';\nimport { getStackedIndex } from '../helpers';\nimport { COLOR_PALLET } from '../helpers/colorPallet';\ninterface UseScales {\n props: DSChartT.Props;\n innerHeight: number;\n innerWidth: number;\n stackedData: Series<\n {\n [key: string]: number;\n },\n string\n >[][];\n currentData: DSChartT.InternalData;\n groups: string[];\n containerRatio: number;\n}\nexport const useScales = ({ props, innerHeight, innerWidth, stackedData, currentData, containerRatio }: UseScales) => {\n const { series, xAxis, yAxis, y2Axis, groups: stackedSeries } = props;\n\n const xScroll = xAxis.advanced?.pointSpacing?.value > 1;\n const yScroll = yAxis.advanced?.pointSpacing?.value > 1;\n\n const rangeToWidth = innerWidth * (xScroll ? containerRatio : 1);\n const rangeToHeight = innerHeight * (yScroll ? containerRatio : 1);\n\n const getBandDomain = useCallback(\n (axis: DSChartT.AxisT) => axis.cols ?? [...series[0].data.map((_, i) => i.toString())],\n [series],\n );\n\n const getLinearDomain = useCallback(\n (axis: DSChartT.AxisT, axisString: 'x' | 'y' | 'y2') => {\n // we are calculating the min and max between all the data\n // including the stacked groups if exists\n\n const begin = axis?.beginAtZero ? 0 : undefined;\n const data = currentData\n .filter((serie) => {\n if (serie.scale === axisString) {\n return true;\n }\n if (!serie.scale && ['y', 'x'].includes(axisString)) {\n return true;\n }\n return false;\n })\n .map((serie) =>\n serie.data\n .filter((datum) => datum.value !== null)\n .map((datum) => {\n if (typeof datum.value === 'number') {\n return datum.value;\n }\n\n return datum.value[axisString === 'y2' ? 'y' : axisString];\n }),\n );\n const dataFlattened = data.flat();\n const stackedDataFlatten = stackedData.flat();\n const minStackedData = min(stackedDataFlatten, (layer) => min(layer, (sequence) => sequence[0]));\n const maxStackedData = max(stackedDataFlatten, (layer) => max(layer, (sequence) => sequence[1]));\n const minData = min(dataFlattened);\n const maxData = max(dataFlattened);\n const types = ['number', 'object'];\n\n const getMin = () => {\n const aux = [];\n if (typeof begin === 'number') aux.push(begin);\n if (types.includes(typeof minData)) aux.push(minData);\n if (typeof minStackedData === 'number') aux.push(minStackedData);\n return min(aux);\n };\n const getMax = () => {\n const aux = [];\n if (typeof begin === 'number') aux.push(begin);\n if (types.includes(typeof maxData)) aux.push(maxData);\n if (typeof maxStackedData === 'number') aux.push(maxStackedData);\n return max(aux);\n };\n const minRange = getMin();\n const maxRange = getMax();\n\n if (types.includes(typeof minRange) && types.includes(typeof maxRange)) {\n if (typeof minRange === 'number' && typeof maxRange === 'number') {\n // @TODO fix this domain padding\n const [leftPadding, rightPadding] =\n typeof axis.domainPadding === 'number'\n ? [axis.domainPadding, axis.domainPadding]\n : axis.domainPadding ?? [0, 0];\n\n return [\n minRange - (maxRange - minRange) * (leftPadding ?? 0),\n maxRange + (maxRange - minRange) * (rightPadding ?? 0),\n ];\n }\n // timelinear case\n if (typeof minRange === 'object' && typeof maxRange === 'object') return [minRange, maxRange];\n }\n return [];\n },\n [currentData, stackedData],\n );\n\n const getScaleTime = (domain: Date[], range: number[]) => scaleUtc().domain(domain).range(range);\n\n const getScaleBand = (domain: string[], range: number[], padding = 0.2) =>\n scaleBand().domain(domain).range(range).padding(padding).paddingOuter(0.05);\n const getScaleLinear = (domain: number[], range: number[]) => scaleLinear().domain(domain).range(range);\n const getScaleLog = (domain: number[], range: number[]) => scaleLog().domain(domain).range(range);\n\n const xScale = useMemo(() => {\n if (xAxis?.type === 'time') return getScaleTime(getLinearDomain(xAxis, 'x'), [0, rangeToWidth]);\n if (xAxis?.type === 'linear' || yAxis?.type === 'band') {\n return getScaleLinear(getLinearDomain(xAxis, 'x'), [0, rangeToWidth]);\n }\n\n return getScaleBand(getBandDomain(xAxis), [0, rangeToWidth]);\n }, [getBandDomain, getLinearDomain, rangeToWidth, xAxis, yAxis?.type]);\n\n const yScale = useMemo(() => {\n if (yAxis?.type === 'band') return getScaleBand(getBandDomain(yAxis), [0, rangeToHeight]);\n if (yAxis?.type === 'log') return getScaleLog(getLinearDomain(yAxis, 'y'), [rangeToHeight, 0]);\n return getScaleLinear(getLinearDomain(yAxis, 'y'), [rangeToHeight, 0]);\n }, [getBandDomain, getLinearDomain, rangeToHeight, yAxis]);\n\n const y2Scale = useMemo(() => {\n if (!y2Axis) return null;\n if (y2Axis?.type === 'band') return getScaleBand(getBandDomain(y2Axis), [0, innerHeight]);\n if (y2Axis?.type === 'log') return getScaleLog(getLinearDomain(y2Axis, 'y2'), [innerHeight, 0]);\n return getScaleLinear(getLinearDomain(y2Axis, 'y2'), [innerHeight, 0]);\n }, [getBandDomain, getLinearDomain, innerHeight, y2Axis]);\n\n const colorScale = useMemo(\n () =>\n scaleOrdinal()\n .domain(series.map((d) => d.name))\n .range(series.map((d) => COLOR_PALLET[d.color as keyof typeof COLOR_PALLET] ?? d.color))\n .unknown('red'),\n [series],\n );\n // get only groups bars to calculate the subgroup scale\n\n const subgroupsWithBars = useMemo(\n () =>\n currentData\n .filter(\n (serie) =>\n serie.type === 'bar' && !(stackedSeries?.length && getStackedIndex(stackedSeries, serie.name) > -1),\n )\n .map((serie) => serie.name),\n [currentData, stackedSeries],\n );\n\n const getBandwidth = useCallback(() => {\n if ((xAxis.type === undefined || xAxis.type === 'band') && yAxis.type !== 'band') {\n return (xScale as ScaleBand<string>).bandwidth();\n }\n if (yAxis.type === 'band') {\n return (yScale as ScaleBand<string>).bandwidth();\n }\n // @todo explore this. is to create bars with a linear\n return innerWidth / (xScale as ScaleLinear<number, number, never>).ticks().length / 2;\n }, [innerWidth, xAxis.type, xScale, yAxis.type, yScale]);\n\n if (stackedSeries?.length) {\n stackedSeries.forEach((_, i) => subgroupsWithBars.push(`stacked-data-${i}`));\n }\n\n const subGroupScale = useMemo(\n () =>\n getBandwidth()\n ? scaleBand()\n .domain(subgroupsWithBars)\n .range([0, getBandwidth() ?? 0])\n .paddingInner(0.55)\n .padding(0.2)\n .paddingOuter(0.01)\n : null,\n [getBandwidth, subgroupsWithBars],\n );\n\n return { xScale, y2Scale, yScale, subGroupScale, colorScale, getBandwidth };\n};\n", "import * as React from 'react';\nexport { React };\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -30,7 +30,7 @@ module.exports = __toCommonJS(colorPallet_exports);
|
|
|
30
30
|
var React = __toESM(require("react"));
|
|
31
31
|
const COLOR_PALLET = {
|
|
32
32
|
"blue-100": "#1E79C2",
|
|
33
|
-
"blue-200": "#
|
|
33
|
+
"blue-200": "#165A91",
|
|
34
34
|
"blue-400": "#10426A",
|
|
35
35
|
"magenta-100": "#CA3981",
|
|
36
36
|
"magenta-200": "#832553",
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../src/graphs/Chart/helpers/colorPallet.tsx", "../../../../../../../scripts/build/transpile/react-shim.js"],
|
|
4
|
-
"sourcesContent": ["export const COLOR_PALLET = {\n 'blue-100': '#1E79C2',\n 'blue-200': '#
|
|
4
|
+
"sourcesContent": ["export const COLOR_PALLET = {\n 'blue-100': '#1E79C2',\n 'blue-200': '#165A91',\n 'blue-400': '#10426A',\n 'magenta-100': '#CA3981',\n 'magenta-200': '#832553',\n 'magenta-400': '#6E1F46',\n 'orange-100': '#B25119',\n 'orange-200': '#853C12',\n 'orange-400': '#612C0D',\n 'purple-100': '#8E49B2',\n 'purple-200': '#61327A',\n 'purple-400': '#4D2861',\n 'green-100': '#007A78',\n 'green-200': '#005B59',\n 'green-400': '#004241',\n 'grey-100': '#697489',\n 'grey-200': '#4E5666',\n 'grey-400': '#323842',\n};\n", "import * as React from 'react';\nexport { React };\n"],
|
|
5
5
|
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADAhB,MAAM,eAAe;AAAA,EAC1B,YAAY;AAAA,EACZ,YAAY;AAAA,EACZ,YAAY;AAAA,EACZ,eAAe;AAAA,EACf,eAAe;AAAA,EACf,eAAe;AAAA,EACf,cAAc;AAAA,EACd,cAAc;AAAA,EACd,cAAc;AAAA,EACd,cAAc;AAAA,EACd,cAAc;AAAA,EACd,cAAc;AAAA,EACd,aAAa;AAAA,EACb,aAAa;AAAA,EACb,aAAa;AAAA,EACb,YAAY;AAAA,EACZ,YAAY;AAAA,EACZ,YAAY;AACd;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -59,10 +59,10 @@ const stackData = (groupsStacked, series) => {
|
|
|
59
59
|
const stackedData = [];
|
|
60
60
|
seriesFilteredByStackGroup.forEach((serie) => {
|
|
61
61
|
serie.data.forEach((d, i) => {
|
|
62
|
-
|
|
63
|
-
stackedData[
|
|
64
|
-
|
|
65
|
-
|
|
62
|
+
stackedData[d.position] = {
|
|
63
|
+
...stackedData[d.position],
|
|
64
|
+
[serie.name]: typeof d.value === "number" ? d.value : d.value?.y || 0
|
|
65
|
+
};
|
|
66
66
|
});
|
|
67
67
|
});
|
|
68
68
|
allSeriesStackedByGroups.push((0, import_d3.stack)().keys(keys)(stackedData));
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../src/graphs/Chart/helpers/index.tsx", "../../../../../../../scripts/build/transpile/react-shim.js"],
|
|
4
|
-
"sourcesContent": ["import { stack, timeFormat, format } from 'd3';\nimport { DSChartT } from '../react-desc-prop-types';\n\nexport const getStackedIndex = (groups: string[][], serie: string) => {\n for (let i = 0; i < groups.length; i += 1) {\n for (let j = 0; j < groups[i].length; j += 1) {\n if (groups[i][j] === serie) return i;\n }\n }\n return -1;\n};\n\nexport const getStackedData = (stackedData, serie) => {\n for (let i = 0; i < stackedData?.length; i += 1) {\n const data = stackedData[i].find((d) => d.key === serie.name);\n if (data) return data;\n }\n return false;\n};\n\nexport const stackData = (groupsStacked: string[][] | undefined, series: DSChartT.InternalData) => {\n const allSeriesStackedByGroups = [];\n if (!groupsStacked) return [];\n groupsStacked?.forEach((g) => {\n const seriesFilteredByStackGroup = series.filter((serie) => g.includes(serie.name));\n const keys = seriesFilteredByStackGroup.map((serie) => serie.name);\n const stackedData: Array<{ [
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADAvB,
|
|
4
|
+
"sourcesContent": ["import { stack, timeFormat, format, Series } from 'd3';\nimport { DSChartT } from '../react-desc-prop-types';\n\nexport const getStackedIndex = (groups: string[][], serie: string) => {\n for (let i = 0; i < groups.length; i += 1) {\n for (let j = 0; j < groups[i].length; j += 1) {\n if (groups[i][j] === serie) return i;\n }\n }\n return -1;\n};\n\nexport const getStackedData = (stackedData, serie: DSChartT.SeriesT) => {\n for (let i = 0; i < stackedData?.length; i += 1) {\n const data = stackedData[i].find((d) => d.key === serie.name);\n if (data) return data;\n }\n return false;\n};\n\n// transform series grouped in stack into what d3 stack function need to read\nexport const stackData = (groupsStacked: string[][] | undefined, series: DSChartT.InternalData) => {\n const allSeriesStackedByGroups: DSChartT.StackedSeriesByGroupT = [];\n if (!groupsStacked) return [];\n groupsStacked?.forEach((g) => {\n const seriesFilteredByStackGroup = series.filter((serie) => g.includes(serie.name));\n const keys = seriesFilteredByStackGroup.map((serie) => serie.name);\n const stackedData: Array<{ [serieName: string]: number }> = [];\n seriesFilteredByStackGroup.forEach((serie) => {\n serie.data.forEach((d, i) => {\n stackedData[d.position] = {\n ...stackedData[d.position],\n [serie.name]: typeof d.value === 'number' ? d.value : d.value?.y || 0,\n };\n });\n });\n allSeriesStackedByGroups.push(stack().keys(keys)(stackedData));\n });\n return allSeriesStackedByGroups;\n};\n\nexport const getFormatGenerator = (type: string) => {\n if (type === 'time') return timeFormat;\n if (type === 'linear') return format;\n return null;\n};\n", "import * as React from 'react';\nexport { React };\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADAvB,gBAAkD;AAG3C,MAAM,kBAAkB,CAAC,QAAoB,UAAkB;AACpE,WAAS,IAAI,GAAG,IAAI,OAAO,QAAQ,KAAK,GAAG;AACzC,aAAS,IAAI,GAAG,IAAI,OAAO,GAAG,QAAQ,KAAK,GAAG;AAC5C,UAAI,OAAO,GAAG,OAAO;AAAO,eAAO;AAAA,IACrC;AAAA,EACF;AACA,SAAO;AACT;AAEO,MAAM,iBAAiB,CAAC,aAAa,UAA4B;AACtE,WAAS,IAAI,GAAG,IAAI,aAAa,QAAQ,KAAK,GAAG;AAC/C,UAAM,OAAO,YAAY,GAAG,KAAK,CAAC,MAAM,EAAE,QAAQ,MAAM,IAAI;AAC5D,QAAI;AAAM,aAAO;AAAA,EACnB;AACA,SAAO;AACT;AAGO,MAAM,YAAY,CAAC,eAAuC,WAAkC;AACjG,QAAM,2BAA2D,CAAC;AAClE,MAAI,CAAC;AAAe,WAAO,CAAC;AAC5B,iBAAe,QAAQ,CAAC,MAAM;AAC5B,UAAM,6BAA6B,OAAO,OAAO,CAAC,UAAU,EAAE,SAAS,MAAM,IAAI,CAAC;AAClF,UAAM,OAAO,2BAA2B,IAAI,CAAC,UAAU,MAAM,IAAI;AACjE,UAAM,cAAsD,CAAC;AAC7D,+BAA2B,QAAQ,CAAC,UAAU;AAC5C,YAAM,KAAK,QAAQ,CAAC,GAAG,MAAM;AAC3B,oBAAY,EAAE,YAAY;AAAA,UACxB,GAAG,YAAY,EAAE;AAAA,UACjB,CAAC,MAAM,OAAO,OAAO,EAAE,UAAU,WAAW,EAAE,QAAQ,EAAE,OAAO,KAAK;AAAA,QACtE;AAAA,MACF,CAAC;AAAA,IACH,CAAC;AACD,6BAAyB,SAAK,iBAAM,EAAE,KAAK,IAAI,EAAE,WAAW,CAAC;AAAA,EAC/D,CAAC;AACD,SAAO;AACT;AAEO,MAAM,qBAAqB,CAAC,SAAiB;AAClD,MAAI,SAAS;AAAQ,WAAO;AAC5B,MAAI,SAAS;AAAU,WAAO;AAC9B,SAAO;AACT;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __create = Object.create;
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __export = (target, all) => {
|
|
9
|
+
for (var name in all)
|
|
10
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
11
|
+
};
|
|
12
|
+
var __copyProps = (to, from, except, desc) => {
|
|
13
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
14
|
+
for (let key of __getOwnPropNames(from))
|
|
15
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
16
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
17
|
+
}
|
|
18
|
+
return to;
|
|
19
|
+
};
|
|
20
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
22
|
+
mod
|
|
23
|
+
));
|
|
24
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
25
|
+
var useUniqueData_exports = {};
|
|
26
|
+
__export(useUniqueData_exports, {
|
|
27
|
+
useUniqueData: () => useUniqueData
|
|
28
|
+
});
|
|
29
|
+
module.exports = __toCommonJS(useUniqueData_exports);
|
|
30
|
+
var React = __toESM(require("react"));
|
|
31
|
+
var import_react = require("react");
|
|
32
|
+
var import_ChartContext = require("../ChartContext");
|
|
33
|
+
const useUniqueData = () => {
|
|
34
|
+
const {
|
|
35
|
+
props: { xAxis },
|
|
36
|
+
currentData: data,
|
|
37
|
+
xScale,
|
|
38
|
+
getBandwidth,
|
|
39
|
+
xScrollbarPosition,
|
|
40
|
+
containerRatio,
|
|
41
|
+
innerWidth,
|
|
42
|
+
getXValue,
|
|
43
|
+
getYValue
|
|
44
|
+
} = (0, import_react.useContext)(import_ChartContext.ChartContext);
|
|
45
|
+
function compare(a, b) {
|
|
46
|
+
if (a.xPosition < b.xPosition) {
|
|
47
|
+
return -1;
|
|
48
|
+
}
|
|
49
|
+
if (a.xPosition > b.xPosition) {
|
|
50
|
+
return 1;
|
|
51
|
+
}
|
|
52
|
+
return 0;
|
|
53
|
+
}
|
|
54
|
+
const isBandAxis = !!xScale.bandwidth;
|
|
55
|
+
return (0, import_react.useMemo)(() => {
|
|
56
|
+
let valueToPositionPerSeries;
|
|
57
|
+
if (isBandAxis) {
|
|
58
|
+
valueToPositionPerSeries = data.map(
|
|
59
|
+
(serie) => serie.data.filter((datum) => {
|
|
60
|
+
const xScaleValue = xScale(xAxis.cols ? xAxis.cols[datum.position] : datum.value.x);
|
|
61
|
+
return xScaleValue >= xScrollbarPosition * (containerRatio ?? 1) && xScaleValue <= xScrollbarPosition * (containerRatio ?? 1) + innerWidth;
|
|
62
|
+
}).map((datum) => {
|
|
63
|
+
const x = getXValue(datum);
|
|
64
|
+
const y = getYValue(datum);
|
|
65
|
+
return {
|
|
66
|
+
position: xScale(x),
|
|
67
|
+
name: serie.name,
|
|
68
|
+
xValue: x,
|
|
69
|
+
yValue: y
|
|
70
|
+
};
|
|
71
|
+
})
|
|
72
|
+
).flat(1);
|
|
73
|
+
} else {
|
|
74
|
+
valueToPositionPerSeries = data.map(
|
|
75
|
+
(serie) => serie.data.filter((datum) => {
|
|
76
|
+
const xScaleValue = xScale(xAxis.cols ? xAxis.cols[datum.position] : datum.value.x);
|
|
77
|
+
return xScaleValue >= xScrollbarPosition * (containerRatio ?? 1) && xScaleValue <= xScrollbarPosition * (containerRatio ?? 1) + innerWidth;
|
|
78
|
+
}).map((datum) => ({
|
|
79
|
+
position: xScale(xAxis.cols ? xAxis.cols[datum.position] : datum.value.x),
|
|
80
|
+
name: serie.name,
|
|
81
|
+
xValue: xAxis.cols ? xAxis.cols[datum.position] : datum.value.x,
|
|
82
|
+
yValue: typeof datum.value === "number" ? datum.value : datum.value.y
|
|
83
|
+
}))
|
|
84
|
+
).flat(1);
|
|
85
|
+
}
|
|
86
|
+
const postionUniqueData = {};
|
|
87
|
+
valueToPositionPerSeries.forEach((set) => {
|
|
88
|
+
if (postionUniqueData[[set.position]]) {
|
|
89
|
+
postionUniqueData[[set.position]] = [...postionUniqueData[[set.position]], { ...set }];
|
|
90
|
+
} else {
|
|
91
|
+
postionUniqueData[[set.position]] = [{ ...set }];
|
|
92
|
+
}
|
|
93
|
+
});
|
|
94
|
+
const postionUniqueDataArray = Object.keys(postionUniqueData).map((key) => {
|
|
95
|
+
const xPosition = parseFloat(key) + (isBandAxis ? getBandwidth() / 2 : 0);
|
|
96
|
+
const datum = postionUniqueData[key];
|
|
97
|
+
return { xPosition, datum, xValue: datum[0].xValue };
|
|
98
|
+
});
|
|
99
|
+
if (isBandAxis) {
|
|
100
|
+
return postionUniqueDataArray;
|
|
101
|
+
}
|
|
102
|
+
return postionUniqueDataArray.sort(compare).map((line, i, array) => {
|
|
103
|
+
const prevPoint = parseFloat(array[i - 1]?.xPosition ?? 0);
|
|
104
|
+
const postPoint = parseFloat(array[i + 1]?.xPosition ?? 0);
|
|
105
|
+
const rectDetector = {
|
|
106
|
+
left: (line.xPosition - prevPoint) / 2,
|
|
107
|
+
right: Math.abs((postPoint === 0 ? 0 : postPoint - line.xPosition) / 2)
|
|
108
|
+
};
|
|
109
|
+
return { ...line, rectDetector };
|
|
110
|
+
});
|
|
111
|
+
}, [
|
|
112
|
+
isBandAxis,
|
|
113
|
+
data,
|
|
114
|
+
xScale,
|
|
115
|
+
xAxis.cols,
|
|
116
|
+
xScrollbarPosition,
|
|
117
|
+
containerRatio,
|
|
118
|
+
innerWidth,
|
|
119
|
+
getXValue,
|
|
120
|
+
getYValue,
|
|
121
|
+
getBandwidth
|
|
122
|
+
]);
|
|
123
|
+
};
|
|
124
|
+
//# sourceMappingURL=useUniqueData.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../../src/graphs/Chart/helpers/useUniqueData.tsx", "../../../../../../../scripts/build/transpile/react-shim.js"],
|
|
4
|
+
"sourcesContent": ["/* eslint-disable max-lines */\n/* eslint-disable max-depth */\n/* eslint-disable max-statements */\n/* eslint-disable complexity */\nimport { useContext, useMemo } from 'react';\nimport { ChartContext } from '../ChartContext';\n\nexport const useUniqueData = () => {\n const {\n props: { xAxis },\n currentData: data,\n xScale,\n getBandwidth,\n xScrollbarPosition,\n containerRatio,\n innerWidth,\n getXValue,\n getYValue,\n } = useContext(ChartContext);\n\n function compare(a, b) {\n if (a.xPosition < b.xPosition) {\n return -1;\n }\n if (a.xPosition > b.xPosition) {\n return 1;\n }\n return 0;\n }\n\n const isBandAxis = !!xScale.bandwidth;\n return useMemo(() => {\n let valueToPositionPerSeries;\n if (isBandAxis) {\n valueToPositionPerSeries = data\n .map((serie) =>\n serie.data\n .filter((datum) => {\n const xScaleValue = xScale(xAxis.cols ? xAxis.cols[datum.position] : datum.value.x);\n return (\n xScaleValue >= xScrollbarPosition * (containerRatio ?? 1) &&\n xScaleValue <= xScrollbarPosition * (containerRatio ?? 1) + innerWidth\n );\n })\n .map((datum) => {\n const x = getXValue(datum);\n const y = getYValue(datum);\n return {\n position: xScale(x),\n name: serie.name,\n xValue: x,\n yValue: y,\n };\n }),\n )\n .flat(1);\n } else {\n valueToPositionPerSeries = data\n .map((serie) =>\n serie.data\n .filter((datum) => {\n const xScaleValue = xScale(xAxis.cols ? xAxis.cols[datum.position] : datum.value.x);\n return (\n xScaleValue >= xScrollbarPosition * (containerRatio ?? 1) &&\n xScaleValue <= xScrollbarPosition * (containerRatio ?? 1) + innerWidth\n );\n })\n .map((datum) => ({\n position: xScale(xAxis.cols ? xAxis.cols[datum.position] : datum.value.x),\n name: serie.name,\n xValue: xAxis.cols ? xAxis.cols[datum.position] : datum.value.x,\n yValue: typeof datum.value === 'number' ? datum.value : datum.value.y,\n })),\n )\n .flat(1);\n }\n const postionUniqueData = {};\n\n // grouping points by xAxis position\n valueToPositionPerSeries.forEach((set) => {\n if (postionUniqueData[[set.position]]) {\n postionUniqueData[[set.position]] = [...postionUniqueData[[set.position]], { ...set }];\n } else {\n postionUniqueData[[set.position]] = [{ ...set }];\n }\n });\n\n const postionUniqueDataArray = Object.keys(postionUniqueData).map((key) => {\n const xPosition = parseFloat(key) + (isBandAxis ? getBandwidth() / 2 : 0);\n const datum = postionUniqueData[key];\n\n return { xPosition, datum, xValue: datum[0].xValue };\n });\n\n if (isBandAxis) {\n return postionUniqueDataArray;\n }\n return postionUniqueDataArray.sort(compare).map((line, i, array) => {\n const prevPoint = parseFloat(array[i - 1]?.xPosition ?? 0);\n const postPoint = parseFloat(array[i + 1]?.xPosition ?? 0);\n\n const rectDetector = {\n left: (line.xPosition - prevPoint) / 2,\n right: Math.abs((postPoint === 0 ? 0 : postPoint - line.xPosition) / 2),\n };\n\n return { ...line, rectDetector };\n });\n }, [\n isBandAxis,\n data,\n xScale,\n xAxis.cols,\n xScrollbarPosition,\n containerRatio,\n innerWidth,\n getXValue,\n getYValue,\n getBandwidth,\n ]);\n};\n", "import * as React from 'react';\nexport { React };\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -36,18 +36,49 @@ const useVirtualizedSeries = () => {
|
|
|
36
36
|
innerWidth,
|
|
37
37
|
xScrollbarPosition,
|
|
38
38
|
xScale,
|
|
39
|
+
yScale,
|
|
40
|
+
getYValue,
|
|
39
41
|
getXValue,
|
|
40
|
-
|
|
42
|
+
innerHeight,
|
|
43
|
+
currentData: data,
|
|
44
|
+
props: { xAxis, yAxis }
|
|
41
45
|
} = (0, import_react.useContext)(import_ChartContext.ChartContext);
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
46
|
+
const xScroll = xAxis.advanced?.pointSpacing?.value > 1;
|
|
47
|
+
const yScroll = yAxis.advanced?.pointSpacing?.value > 1;
|
|
48
|
+
return (0, import_react.useMemo)(() => {
|
|
49
|
+
if (xScroll) {
|
|
50
|
+
const offset = xScale.bandwidth?.() || 20;
|
|
51
|
+
return data.map((serie) => ({
|
|
52
|
+
...serie,
|
|
53
|
+
data: serie.data.filter((datum) => {
|
|
54
|
+
const xScaleValue = xScale(getXValue(datum));
|
|
55
|
+
return xScaleValue >= xScrollbarPosition * (containerRatio ?? 1) - innerWidth && xScaleValue <= xScrollbarPosition * (containerRatio ?? 1) + innerWidth * 2;
|
|
56
|
+
})
|
|
57
|
+
}));
|
|
58
|
+
}
|
|
59
|
+
if (yScroll) {
|
|
60
|
+
return data.map((serie) => ({
|
|
61
|
+
...serie,
|
|
62
|
+
data: serie.data.filter((datum) => {
|
|
63
|
+
const yScaleValue = yScale(getYValue(datum));
|
|
64
|
+
const offset = yScale.bandwidth?.() ?? 20;
|
|
65
|
+
return yScaleValue > xScrollbarPosition * (containerRatio ?? 1) - offset && yScaleValue < xScrollbarPosition * (containerRatio ?? 1) + innerHeight;
|
|
66
|
+
})
|
|
67
|
+
}));
|
|
68
|
+
}
|
|
69
|
+
return data;
|
|
70
|
+
}, [
|
|
71
|
+
containerRatio,
|
|
72
|
+
data,
|
|
73
|
+
getXValue,
|
|
74
|
+
getYValue,
|
|
75
|
+
innerHeight,
|
|
76
|
+
innerWidth,
|
|
77
|
+
xScale,
|
|
78
|
+
xScroll,
|
|
79
|
+
xScrollbarPosition,
|
|
80
|
+
yScale,
|
|
81
|
+
yScroll
|
|
82
|
+
]);
|
|
52
83
|
};
|
|
53
84
|
//# sourceMappingURL=useVirtualizedSeries.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../src/graphs/Chart/helpers/useVirtualizedSeries.tsx", "../../../../../../../scripts/build/transpile/react-shim.js"],
|
|
4
|
-
"sourcesContent": ["/* eslint-disable max-lines */\n/* eslint-disable max-depth */\n/* eslint-disable max-statements */\n/* eslint-disable complexity */\nimport { useContext, useMemo } from 'react';\nimport { ChartContext } from '../ChartContext';\n\nexport const useVirtualizedSeries = () => {\n const {\n containerRatio,\n innerWidth,\n xScrollbarPosition,\n xScale,\n getXValue,\n currentData: data,\n } = useContext(ChartContext);\n\n return useMemo(\n ()
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADIvB,mBAAoC;AACpC,0BAA6B;AAEtB,MAAM,uBAAuB,MAAM;AACxC,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,aAAa;AAAA,
|
|
4
|
+
"sourcesContent": ["/* eslint-disable max-lines */\n/* eslint-disable max-depth */\n/* eslint-disable max-statements */\n/* eslint-disable complexity */\nimport { useContext, useMemo } from 'react';\nimport { ChartContext } from '../ChartContext';\n\nexport const useVirtualizedSeries = () => {\n const {\n containerRatio,\n innerWidth,\n xScrollbarPosition,\n xScale,\n yScale,\n getYValue,\n getXValue,\n innerHeight,\n currentData: data,\n props: { xAxis, yAxis },\n } = useContext(ChartContext);\n\n // @TODO until we decide if we use this internal we know which axis this way\n\n const xScroll = xAxis.advanced?.pointSpacing?.value > 1;\n const yScroll = yAxis.advanced?.pointSpacing?.value > 1;\n\n return useMemo(() => {\n if (xScroll) {\n const offset = xScale.bandwidth?.() || 20;\n return data.map((serie) => ({\n ...serie,\n data: serie.data.filter((datum) => {\n const xScaleValue = xScale(getXValue(datum));\n return (\n xScaleValue >= xScrollbarPosition * (containerRatio ?? 1) - innerWidth &&\n xScaleValue <= xScrollbarPosition * (containerRatio ?? 1) + innerWidth * 2\n );\n }),\n }));\n }\n if (yScroll) {\n return data.map((serie) => ({\n ...serie,\n data: serie.data.filter((datum) => {\n const yScaleValue = yScale(getYValue(datum));\n const offset = yScale.bandwidth?.() ?? 20;\n return (\n yScaleValue > xScrollbarPosition * (containerRatio ?? 1) - offset &&\n yScaleValue < xScrollbarPosition * (containerRatio ?? 1) + innerHeight\n );\n }),\n }));\n }\n return data;\n }, [\n containerRatio,\n data,\n getXValue,\n getYValue,\n innerHeight,\n innerWidth,\n xScale,\n xScroll,\n xScrollbarPosition,\n yScale,\n yScroll,\n ]);\n};\n", "import * as React from 'react';\nexport { React };\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADIvB,mBAAoC;AACpC,0BAA6B;AAEtB,MAAM,uBAAuB,MAAM;AACxC,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,aAAa;AAAA,IACb,OAAO,EAAE,OAAO,MAAM;AAAA,EACxB,QAAI,yBAAW,gCAAY;AAI3B,QAAM,UAAU,MAAM,UAAU,cAAc,QAAQ;AACtD,QAAM,UAAU,MAAM,UAAU,cAAc,QAAQ;AAEtD,aAAO,sBAAQ,MAAM;AACnB,QAAI,SAAS;AACX,YAAM,SAAS,OAAO,YAAY,KAAK;AACvC,aAAO,KAAK,IAAI,CAAC,WAAW;AAAA,QAC1B,GAAG;AAAA,QACH,MAAM,MAAM,KAAK,OAAO,CAAC,UAAU;AACjC,gBAAM,cAAc,OAAO,UAAU,KAAK,CAAC;AAC3C,iBACE,eAAe,sBAAsB,kBAAkB,KAAK,cAC5D,eAAe,sBAAsB,kBAAkB,KAAK,aAAa;AAAA,QAE7E,CAAC;AAAA,MACH,EAAE;AAAA,IACJ;AACA,QAAI,SAAS;AACX,aAAO,KAAK,IAAI,CAAC,WAAW;AAAA,QAC1B,GAAG;AAAA,QACH,MAAM,MAAM,KAAK,OAAO,CAAC,UAAU;AACjC,gBAAM,cAAc,OAAO,UAAU,KAAK,CAAC;AAC3C,gBAAM,SAAS,OAAO,YAAY,KAAK;AACvC,iBACE,cAAc,sBAAsB,kBAAkB,KAAK,UAC3D,cAAc,sBAAsB,kBAAkB,KAAK;AAAA,QAE/D,CAAC;AAAA,MACH,EAAE;AAAA,IACJ;AACA,WAAO;AAAA,EACT,GAAG;AAAA,IACD;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC;AACH;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -32,6 +32,7 @@ var import_jsx_runtime = require("react/jsx-runtime");
|
|
|
32
32
|
var import_react = require("react");
|
|
33
33
|
var import_ChartContext = require("../../ChartContext");
|
|
34
34
|
var import_ScrollableContainerX = require("../Scroller/ScrollableContainerX");
|
|
35
|
+
var import_ScrollableContainerY = require("../Scroller/ScrollableContainerY");
|
|
35
36
|
var import_AxisBottom = require("./AxisBottom");
|
|
36
37
|
var import_AxisRight = require("./AxisRight");
|
|
37
38
|
var import_AxisLeft = require("./AxisLeft");
|
|
@@ -41,9 +42,11 @@ var import_VerticalScrapper = require("../Scrapper/VerticalScrapper");
|
|
|
41
42
|
const Axes = () => {
|
|
42
43
|
const {
|
|
43
44
|
containerRatio,
|
|
44
|
-
props: { scrapper }
|
|
45
|
+
props: { scrapper, xAxis, yAxis }
|
|
45
46
|
} = (0, import_react.useContext)(import_ChartContext.ChartContext);
|
|
46
|
-
|
|
47
|
+
const xScroll = xAxis.advanced?.pointSpacing?.value > 1;
|
|
48
|
+
const yScroll = yAxis.advanced?.pointSpacing?.value > 1;
|
|
49
|
+
if (xScroll) {
|
|
47
50
|
return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, {
|
|
48
51
|
children: [
|
|
49
52
|
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_AxisRight.AxisRight, {}),
|
|
@@ -52,6 +55,14 @@ const Axes = () => {
|
|
|
52
55
|
]
|
|
53
56
|
});
|
|
54
57
|
}
|
|
58
|
+
if (yScroll) {
|
|
59
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, {
|
|
60
|
+
children: [
|
|
61
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_AxisBottom.AxisBottom, {}),
|
|
62
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_ScrollableContainerY.ScrollableContainerY, {})
|
|
63
|
+
]
|
|
64
|
+
});
|
|
65
|
+
}
|
|
55
66
|
return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, {
|
|
56
67
|
children: [
|
|
57
68
|
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_AxisRight.AxisRight, {}),
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../../src/graphs/Chart/parts/Axis/Axes.tsx", "../../../../../../../../scripts/build/transpile/react-shim.js"],
|
|
4
|
-
"sourcesContent": ["import React, { useContext
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADAvB;AAAA,
|
|
4
|
+
"sourcesContent": ["import React, { useContext } from 'react';\n\nimport { ChartContext } from '../../ChartContext';\nimport { ScrollableContainerX } from '../Scroller/ScrollableContainerX';\nimport { ScrollableContainerY } from '../Scroller/ScrollableContainerY';\n\nimport { AxisBottom } from './AxisBottom';\nimport { AxisRight } from './AxisRight';\nimport { AxisLeft } from './AxisLeft';\nimport { SeriesFactory } from '../SeriesFactory';\nimport { Scrapper } from '../Scrapper/Scrapper';\nimport { VerticalScrapper } from '../Scrapper/VerticalScrapper';\nexport const Axes = () => {\n const {\n containerRatio,\n props: { scrapper, xAxis, yAxis },\n } = useContext(ChartContext);\n\n // @TODO until we decide if we use this internal we know which axis this way\n const xScroll = xAxis.advanced?.pointSpacing?.value > 1;\n const yScroll = yAxis.advanced?.pointSpacing?.value > 1;\n\n if (xScroll) {\n return (\n <>\n <AxisRight />\n <AxisLeft />\n <ScrollableContainerX />\n </>\n );\n }\n if (yScroll) {\n return (\n <>\n <AxisBottom />\n <ScrollableContainerY />\n </>\n );\n }\n return (\n <>\n <AxisRight />\n <AxisLeft />\n <AxisBottom />\n <SeriesFactory />\n {scrapper?.type === 'horizontal' ? <Scrapper /> : null}\n {scrapper?.type === 'vertical' ? <VerticalScrapper /> : null}\n </>\n );\n};\n", "import * as React from 'react';\nexport { React };\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADAvB;AAAA,mBAAkC;AAElC,0BAA6B;AAC7B,kCAAqC;AACrC,kCAAqC;AAErC,wBAA2B;AAC3B,uBAA0B;AAC1B,sBAAyB;AACzB,2BAA8B;AAC9B,sBAAyB;AACzB,8BAAiC;AAC1B,MAAM,OAAO,MAAM;AACxB,QAAM;AAAA,IACJ;AAAA,IACA,OAAO,EAAE,UAAU,OAAO,MAAM;AAAA,EAClC,QAAI,yBAAW,gCAAY;AAG3B,QAAM,UAAU,MAAM,UAAU,cAAc,QAAQ;AACtD,QAAM,UAAU,MAAM,UAAU,cAAc,QAAQ;AAEtD,MAAI,SAAS;AACX,WACE;AAAA,MACE;AAAA,oDAAC,8BAAU;AAAA,QACX,4CAAC,4BAAS;AAAA,QACV,4CAAC,oDAAqB;AAAA;AAAA,KACxB;AAAA,EAEJ;AACA,MAAI,SAAS;AACX,WACE;AAAA,MACE;AAAA,oDAAC,gCAAW;AAAA,QACZ,4CAAC,oDAAqB;AAAA;AAAA,KACxB;AAAA,EAEJ;AACA,SACE;AAAA,IACE;AAAA,kDAAC,8BAAU;AAAA,MACX,4CAAC,4BAAS;AAAA,MACV,4CAAC,gCAAW;AAAA,MACZ,4CAAC,sCAAc;AAAA,MACd,UAAU,SAAS,eAAe,4CAAC,4BAAS,IAAK;AAAA,MACjD,UAAU,SAAS,aAAa,4CAAC,4CAAiB,IAAK;AAAA;AAAA,GAC1D;AAEJ;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|