@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
|
@@ -33,46 +33,95 @@ var import_react = __toESM(require("react"));
|
|
|
33
33
|
var import_d3 = require("d3");
|
|
34
34
|
var import_styles = require("../../styles");
|
|
35
35
|
var import_ChartContext = require("../../ChartContext");
|
|
36
|
+
var import_useUniqueData = require("../../helpers/useUniqueData");
|
|
36
37
|
const AxisBottom = import_react.default.memo(() => {
|
|
37
38
|
const {
|
|
38
|
-
props: { xAxis
|
|
39
|
+
props: { xAxis },
|
|
39
40
|
innerHeight,
|
|
40
41
|
xScale,
|
|
42
|
+
innerWidth,
|
|
43
|
+
containerRatio,
|
|
44
|
+
internalMargin,
|
|
41
45
|
setAxisBottomRef
|
|
42
46
|
} = (0, import_react.useContext)(import_ChartContext.ChartContext);
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
const
|
|
46
|
-
const
|
|
47
|
-
const
|
|
47
|
+
const axisRef = (0, import_react.useRef)(null);
|
|
48
|
+
const gridRef = (0, import_react.useRef)(null);
|
|
49
|
+
const { tickValues, tickFormat, overwriteTicks, color, tickRotation, tickCount } = xAxis.tick || {};
|
|
50
|
+
const ticksScales = ["linear", "time", "log"];
|
|
51
|
+
const uniqueData = (0, import_useUniqueData.useUniqueData)();
|
|
48
52
|
(0, import_react.useEffect)(() => {
|
|
49
|
-
const grid = (0, import_d3.axisBottom)(xScale).tickSize(
|
|
53
|
+
const grid = (0, import_d3.axisBottom)(xScale).tickSize(-innerHeight).tickFormat("").tickSizeOuter(0);
|
|
50
54
|
const axis = (0, import_d3.axisBottom)(xScale).tickSizeOuter(0);
|
|
51
|
-
if (xAxis.
|
|
52
|
-
const
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
55
|
+
if (ticksScales.includes(xAxis.type)) {
|
|
56
|
+
const ticksNum = (() => {
|
|
57
|
+
if (tickCount)
|
|
58
|
+
return tickCount;
|
|
59
|
+
if (containerRatio > 1) {
|
|
60
|
+
return innerWidth / 100 * containerRatio;
|
|
61
|
+
}
|
|
62
|
+
return innerWidth / 100;
|
|
63
|
+
})();
|
|
64
|
+
const ticks = xScale.ticks?.(ticksNum);
|
|
65
|
+
if (containerRatio > 1 && uniqueData.length < 10) {
|
|
66
|
+
const ticksName = uniqueData.map((u) => u.xValue);
|
|
67
|
+
axis.tickValues(ticksName);
|
|
68
|
+
grid.tickValues(ticksName);
|
|
69
|
+
} else if (tickValues && ticks) {
|
|
70
|
+
const finalTicks = overwriteTicks ? tickValues : [...ticks, ...tickValues];
|
|
71
|
+
axis.tickValues(finalTicks);
|
|
72
|
+
} else {
|
|
73
|
+
axis.tickValues(ticks);
|
|
74
|
+
grid.tickValues(ticks);
|
|
62
75
|
}
|
|
63
|
-
if (
|
|
64
|
-
|
|
76
|
+
if (tickFormat) {
|
|
77
|
+
if (typeof tickFormat === "string") {
|
|
78
|
+
const formatGenerator = (0, import_d3.timeFormat)(tickFormat);
|
|
79
|
+
axis.tickFormat((d) => formatGenerator(d));
|
|
80
|
+
}
|
|
81
|
+
if (typeof tickFormat === "function") {
|
|
82
|
+
axis.tickFormat(tickFormat);
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
if (axisRef?.current && gridRef?.current) {
|
|
87
|
+
if (xAxis?.showGrid)
|
|
88
|
+
(0, import_d3.select)(gridRef.current).call(grid);
|
|
89
|
+
const axisNode = (0, import_d3.select)(axisRef.current);
|
|
90
|
+
axisNode.call(axis);
|
|
91
|
+
const firstTick = axisNode.select(".tick").node();
|
|
92
|
+
if (firstTick?.getBoundingClientRect().left < internalMargin.left + 10) {
|
|
93
|
+
firstTick.remove();
|
|
65
94
|
}
|
|
95
|
+
if (tickRotation)
|
|
96
|
+
axisNode.selectAll("text").style("text-anchor", tickRotation > 0 ? "start" : "end").attr("dx", 8 * Math.sin(Math.PI * (tickRotation / 180))).attr("dy", ".71em").attr("y", 11.5 - 2.5 * (tickRotation / 15) * (tickRotation > 0 ? 1 : -1)).attr("transform", `rotate(${tickRotation})`);
|
|
66
97
|
}
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
98
|
+
}, [
|
|
99
|
+
innerHeight,
|
|
100
|
+
overwriteTicks,
|
|
101
|
+
xAxis?.showGrid,
|
|
102
|
+
tickFormat,
|
|
103
|
+
tickValues,
|
|
104
|
+
xScale,
|
|
105
|
+
tickRotation,
|
|
106
|
+
xAxis.type,
|
|
107
|
+
ticksScales,
|
|
108
|
+
tickCount,
|
|
109
|
+
containerRatio,
|
|
110
|
+
innerWidth,
|
|
111
|
+
uniqueData.length,
|
|
112
|
+
uniqueData,
|
|
113
|
+
internalMargin.left
|
|
114
|
+
]);
|
|
115
|
+
if (xAxis.hideAxis)
|
|
116
|
+
return null;
|
|
70
117
|
return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("g", {
|
|
71
118
|
transform: `translate(0,${innerHeight})`,
|
|
72
119
|
children: [
|
|
73
120
|
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("g", {
|
|
74
121
|
ref: setAxisBottomRef,
|
|
75
122
|
children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_styles.StyledAxis, {
|
|
123
|
+
axisColor: xAxis.color,
|
|
124
|
+
tickColor: color,
|
|
76
125
|
ref: axisRef
|
|
77
126
|
})
|
|
78
127
|
}),
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../../src/graphs/Chart/parts/Axis/AxisBottom.tsx", "../../../../../../../../scripts/build/transpile/react-shim.js"],
|
|
4
|
-
"sourcesContent": ["
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADAvB;
|
|
4
|
+
"sourcesContent": ["/* eslint-disable max-statements */\n/* eslint-disable complexity */\nimport React, { useContext, useEffect, useRef } from 'react';\nimport { select, axisBottom, timeFormat, ScaleLinear, ScaleTime } from 'd3';\nimport { StyledAxis, StyledGrid } from '../../styles';\nimport { ChartContext } from '../../ChartContext';\nimport { DSChartT } from '../../react-desc-prop-types';\nimport { useUniqueData } from '../../helpers/useUniqueData';\n\nexport const AxisBottom = React.memo(() => {\n const {\n props: { xAxis },\n innerHeight,\n xScale,\n innerWidth,\n containerRatio,\n internalMargin,\n setAxisBottomRef,\n } = useContext(ChartContext);\n\n const axisRef = useRef<SVGSVGElement>(null);\n const gridRef = useRef<SVGSVGElement>(null);\n const { tickValues, tickFormat, overwriteTicks, color, tickRotation, tickCount } =\n xAxis.tick || ({} as DSChartT.AxisTickT);\n\n const ticksScales = ['linear', 'time', 'log'];\n // const ticks = xScale.ticks?.(tickCount ?? width / 100);\n\n const uniqueData = useUniqueData();\n useEffect(() => {\n const grid = axisBottom(xScale as ScaleLinear<number, number>)\n .tickSize(-innerHeight)\n .tickFormat('')\n .tickSizeOuter(0);\n\n const axis = axisBottom(xScale as ScaleLinear<number, number>).tickSizeOuter(0);\n\n if (ticksScales.includes(xAxis.type)) {\n const ticksNum = (() => {\n if (tickCount) return tickCount;\n if (containerRatio > 1) {\n return (innerWidth / 100) * containerRatio;\n }\n return innerWidth / 100;\n })();\n const ticks = (xScale as ScaleLinear<number, number> | ScaleTime<number, number, never>).ticks?.(ticksNum);\n\n // we show the only the ticks values on the screen when zoomed enough\n if (containerRatio > 1 && uniqueData.length < 10) {\n const ticksName = uniqueData.map((u) => u.xValue);\n axis.tickValues(ticksName);\n grid.tickValues(ticksName);\n } else if (tickValues && ticks) {\n const finalTicks = overwriteTicks ? tickValues : [...ticks, ...tickValues];\n axis.tickValues(finalTicks);\n } else {\n axis.tickValues(ticks);\n grid.tickValues(ticks);\n }\n\n if (tickFormat) {\n if (typeof tickFormat === 'string') {\n const formatGenerator = timeFormat(tickFormat);\n axis.tickFormat((d) => formatGenerator(d));\n }\n if (typeof tickFormat === 'function') {\n axis.tickFormat(tickFormat);\n }\n }\n }\n\n if (axisRef?.current && gridRef?.current) {\n if (xAxis?.showGrid) select(gridRef.current).call(grid);\n const axisNode = select(axisRef.current);\n axisNode.call(axis);\n\n // need to remove the first tick when live under the domain line\n const firstTick = axisNode.select('.tick').node() as SVGGElement; // select all the text elements\n if (firstTick?.getBoundingClientRect().left < internalMargin.left + 10) {\n firstTick.remove();\n }\n if (tickRotation)\n axisNode\n .selectAll('text')\n .style('text-anchor', tickRotation > 0 ? 'start' : 'end')\n .attr('dx', 8 * Math.sin(Math.PI * (tickRotation / 180)))\n .attr('dy', '.71em')\n .attr('y', 11.5 - 2.5 * (tickRotation / 15) * (tickRotation > 0 ? 1 : -1))\n .attr('transform', `rotate(${tickRotation})`);\n }\n }, [\n innerHeight,\n overwriteTicks,\n xAxis?.showGrid,\n tickFormat,\n tickValues,\n xScale,\n tickRotation,\n xAxis.type,\n ticksScales,\n tickCount,\n containerRatio,\n innerWidth,\n uniqueData.length,\n uniqueData,\n internalMargin.left,\n ]);\n if (xAxis.hideAxis) return null;\n return (\n <g transform={`translate(0,${innerHeight})`}>\n <g ref={setAxisBottomRef}>\n <StyledAxis axisColor={xAxis.color} tickColor={color} ref={axisRef}></StyledAxis>\n </g>\n\n <StyledGrid ref={gridRef}></StyledGrid>\n </g>\n );\n});\n", "import * as React from 'react';\nexport { React };\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": ["React"]
|
|
7
7
|
}
|
|
@@ -40,20 +40,19 @@ const AxisLeft = () => {
|
|
|
40
40
|
innerHeight,
|
|
41
41
|
innerWidth,
|
|
42
42
|
yScale,
|
|
43
|
+
chartId,
|
|
43
44
|
setAxisLeftRef
|
|
44
45
|
} = (0, import_react.useContext)(import_ChartContext.ChartContext);
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
const
|
|
48
|
-
const
|
|
49
|
-
const
|
|
50
|
-
const hasNegativeDomain = yScale(innerHeight) < 0;
|
|
51
|
-
const { tickFormat, type } = yAxis;
|
|
46
|
+
const ref = (0, import_react.useRef)(null);
|
|
47
|
+
const gridRef = (0, import_react.useRef)(null);
|
|
48
|
+
const { tickValues, color: tickColor, tickFormat, overwriteTicks, tickRotation, tickCount } = yAxis.tick || {};
|
|
49
|
+
const ticks = yScale.ticks?.(tickCount ?? height / 80);
|
|
50
|
+
const { type, showGrid, color: axisColor } = yAxis;
|
|
52
51
|
(0, import_react.useEffect)(() => {
|
|
53
52
|
const axis = (0, import_d3.axisLeft)(yScale).tickSizeOuter(0);
|
|
54
|
-
const grid = (0, import_d3.axisLeft)(yScale).tickFormat((_) => "").tickSize(
|
|
55
|
-
if (
|
|
56
|
-
const finalTicks =
|
|
53
|
+
const grid = (0, import_d3.axisLeft)(yScale).tickFormat((_) => "").tickSize(showGrid ? -innerWidth : 0).tickSizeOuter(0);
|
|
54
|
+
if (tickValues && ticks) {
|
|
55
|
+
const finalTicks = overwriteTicks ? tickValues : [...ticks, ...tickValues];
|
|
57
56
|
axis.tickValues(finalTicks);
|
|
58
57
|
} else {
|
|
59
58
|
axis.tickValues(ticks);
|
|
@@ -70,21 +69,42 @@ const AxisLeft = () => {
|
|
|
70
69
|
}
|
|
71
70
|
if (ref?.current && gridRef?.current) {
|
|
72
71
|
(0, import_d3.select)(gridRef.current).call(grid);
|
|
73
|
-
(0, import_d3.select)(ref.current)
|
|
72
|
+
const axisNode = (0, import_d3.select)(ref.current);
|
|
73
|
+
axisNode.call(axis);
|
|
74
|
+
if (tickRotation)
|
|
75
|
+
axisNode.selectAll("text").style("text-anchor", "end").attr("dx", "-.8em").attr("dy", ".15em").attr("transform", `rotate(-${tickRotation})`);
|
|
74
76
|
}
|
|
75
|
-
}, [
|
|
77
|
+
}, [
|
|
78
|
+
innerHeight,
|
|
79
|
+
innerWidth,
|
|
80
|
+
overwriteTicks,
|
|
81
|
+
showGrid,
|
|
82
|
+
tickFormat,
|
|
83
|
+
tickRotation,
|
|
84
|
+
tickValues,
|
|
85
|
+
ticks,
|
|
86
|
+
type,
|
|
87
|
+
yAxis,
|
|
88
|
+
yScale
|
|
89
|
+
]);
|
|
90
|
+
if (yAxis.hideAxis)
|
|
91
|
+
return null;
|
|
76
92
|
return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("g", {
|
|
77
93
|
children: [
|
|
94
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("g", {
|
|
95
|
+
mask: `url(#mask-${chartId})`,
|
|
96
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_styles.StyledGrid, {
|
|
97
|
+
ref: gridRef
|
|
98
|
+
})
|
|
99
|
+
}),
|
|
78
100
|
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("g", {
|
|
79
101
|
ref: setAxisLeftRef,
|
|
80
102
|
children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_styles.StyledAxis, {
|
|
103
|
+
axisColor,
|
|
81
104
|
ref,
|
|
82
|
-
|
|
105
|
+
tickColor,
|
|
83
106
|
className: "axis-left"
|
|
84
107
|
})
|
|
85
|
-
}),
|
|
86
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_styles.StyledGrid, {
|
|
87
|
-
ref: gridRef
|
|
88
108
|
})
|
|
89
109
|
]
|
|
90
110
|
});
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../../src/graphs/Chart/parts/Axis/AxisLeft.tsx", "../../../../../../../../scripts/build/transpile/react-shim.js"],
|
|
4
|
-
"sourcesContent": ["/* eslint-disable max-statements */\n/* eslint-disable complexity */\nimport React, { useContext, useEffect, useRef } from 'react';\nimport { select, axisLeft } from 'd3';\nimport { StyledAxis, StyledGrid } from '../../styles';\nimport { ChartContext } from '../../ChartContext';\nimport { getFormatGenerator } from '../../helpers';\nexport const AxisLeft = () => {\n const {\n props: { yAxis, height },\n innerHeight,\n innerWidth,\n yScale,\n setAxisLeftRef,\n } = useContext(ChartContext);\n
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADAvB;AAEA,mBAAqD;AACrD,gBAAiC;AACjC,oBAAuC;AACvC,0BAA6B;AAC7B,qBAAmC;AAC5B,MAAM,WAAW,MAAM;AAC5B,QAAM;AAAA,IACJ,OAAO,EAAE,OAAO,OAAO;AAAA,IACvB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,QAAI,yBAAW,gCAAY;
|
|
4
|
+
"sourcesContent": ["/* eslint-disable max-statements */\n/* eslint-disable complexity */\nimport React, { useContext, useEffect, useRef } from 'react';\nimport { select, axisLeft } from 'd3';\nimport { StyledAxis, StyledGrid } from '../../styles';\nimport { ChartContext } from '../../ChartContext';\nimport { getFormatGenerator } from '../../helpers';\nexport const AxisLeft = () => {\n const {\n props: { yAxis, height },\n innerHeight,\n innerWidth,\n yScale,\n chartId,\n setAxisLeftRef,\n } = useContext(ChartContext);\n\n const ref = useRef<SVGSVGElement>(null);\n const gridRef = useRef<SVGSVGElement>(null);\n const { tickValues, color: tickColor, tickFormat, overwriteTicks, tickRotation, tickCount } = yAxis.tick || {};\n\n const ticks = yScale.ticks?.(tickCount ?? height / 80);\n\n const { type, showGrid, color: axisColor } = yAxis;\n useEffect(() => {\n const axis = axisLeft(yScale).tickSizeOuter(0);\n\n const grid = axisLeft(yScale)\n .tickFormat((_) => '')\n .tickSize(showGrid ? -innerWidth : 0)\n .tickSizeOuter(0);\n\n if (tickValues && ticks) {\n const finalTicks = overwriteTicks ? tickValues : [...ticks, ...tickValues];\n axis.tickValues(finalTicks);\n } else {\n axis.tickValues(ticks);\n grid.tickValues(ticks);\n }\n\n if (tickFormat) {\n if (typeof tickFormat === 'string') {\n const formatGenerator = getFormatGenerator(type ?? 'linear');\n\n axis.tickFormat((d) => formatGenerator(tickFormat)(d));\n }\n if (typeof tickFormat === 'function') {\n axis.tickFormat(tickFormat);\n }\n }\n if (ref?.current && gridRef?.current) {\n select(gridRef.current).call(grid);\n const axisNode = select(ref.current);\n axisNode.call(axis);\n if (tickRotation)\n axisNode\n .selectAll('text')\n .style('text-anchor', 'end')\n .attr('dx', '-.8em')\n .attr('dy', '.15em')\n .attr('transform', `rotate(-${tickRotation})`);\n }\n }, [\n innerHeight,\n innerWidth,\n overwriteTicks,\n showGrid,\n tickFormat,\n tickRotation,\n tickValues,\n ticks,\n type,\n yAxis,\n yScale,\n ]);\n\n if (yAxis.hideAxis) return null;\n\n return (\n <g>\n <g mask={`url(#mask-${chartId})`}>\n <StyledGrid ref={gridRef}></StyledGrid>\n </g>\n <g ref={setAxisLeftRef}>\n <StyledAxis axisColor={axisColor} ref={ref} tickColor={tickColor} className=\"axis-left\"></StyledAxis>\n </g>\n </g>\n );\n};\n", "import * as React from 'react';\nexport { React };\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADAvB;AAEA,mBAAqD;AACrD,gBAAiC;AACjC,oBAAuC;AACvC,0BAA6B;AAC7B,qBAAmC;AAC5B,MAAM,WAAW,MAAM;AAC5B,QAAM;AAAA,IACJ,OAAO,EAAE,OAAO,OAAO;AAAA,IACvB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,QAAI,yBAAW,gCAAY;AAE3B,QAAM,UAAM,qBAAsB,IAAI;AACtC,QAAM,cAAU,qBAAsB,IAAI;AAC1C,QAAM,EAAE,YAAY,OAAO,WAAW,YAAY,gBAAgB,cAAc,UAAU,IAAI,MAAM,QAAQ,CAAC;AAE7G,QAAM,QAAQ,OAAO,QAAQ,aAAa,SAAS,EAAE;AAErD,QAAM,EAAE,MAAM,UAAU,OAAO,UAAU,IAAI;AAC7C,8BAAU,MAAM;AACd,UAAM,WAAO,oBAAS,MAAM,EAAE,cAAc,CAAC;AAE7C,UAAM,WAAO,oBAAS,MAAM,EACzB,WAAW,CAAC,MAAM,EAAE,EACpB,SAAS,WAAW,CAAC,aAAa,CAAC,EACnC,cAAc,CAAC;AAElB,QAAI,cAAc,OAAO;AACvB,YAAM,aAAa,iBAAiB,aAAa,CAAC,GAAG,OAAO,GAAG,UAAU;AACzE,WAAK,WAAW,UAAU;AAAA,IAC5B,OAAO;AACL,WAAK,WAAW,KAAK;AACrB,WAAK,WAAW,KAAK;AAAA,IACvB;AAEA,QAAI,YAAY;AACd,UAAI,OAAO,eAAe,UAAU;AAClC,cAAM,sBAAkB,mCAAmB,QAAQ,QAAQ;AAE3D,aAAK,WAAW,CAAC,MAAM,gBAAgB,UAAU,EAAE,CAAC,CAAC;AAAA,MACvD;AACA,UAAI,OAAO,eAAe,YAAY;AACpC,aAAK,WAAW,UAAU;AAAA,MAC5B;AAAA,IACF;AACA,QAAI,KAAK,WAAW,SAAS,SAAS;AACpC,4BAAO,QAAQ,OAAO,EAAE,KAAK,IAAI;AACjC,YAAM,eAAW,kBAAO,IAAI,OAAO;AACnC,eAAS,KAAK,IAAI;AAClB,UAAI;AACF,iBACG,UAAU,MAAM,EAChB,MAAM,eAAe,KAAK,EAC1B,KAAK,MAAM,OAAO,EAClB,KAAK,MAAM,OAAO,EAClB,KAAK,aAAa,WAAW,eAAe;AAAA,IACnD;AAAA,EACF,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;AAED,MAAI,MAAM;AAAU,WAAO;AAE3B,SACE,6CAAC;AAAA,IACC;AAAA,kDAAC;AAAA,QAAE,MAAM,aAAa;AAAA,QACpB,sDAAC;AAAA,UAAW,KAAK;AAAA,SAAS;AAAA,OAC5B;AAAA,MACA,4CAAC;AAAA,QAAE,KAAK;AAAA,QACN,sDAAC;AAAA,UAAW;AAAA,UAAsB;AAAA,UAAU;AAAA,UAAsB,WAAU;AAAA,SAAY;AAAA,OAC1F;AAAA;AAAA,GACF;AAEJ;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -35,26 +35,28 @@ var import_styles = require("../../styles");
|
|
|
35
35
|
var import_ChartContext = require("../../ChartContext");
|
|
36
36
|
const AxisRight = () => {
|
|
37
37
|
const {
|
|
38
|
-
props: { y2Axis
|
|
38
|
+
props: { y2Axis },
|
|
39
39
|
innerWidth,
|
|
40
40
|
y2Scale,
|
|
41
41
|
setAxisRightRef
|
|
42
42
|
} = (0, import_react.useContext)(import_ChartContext.ChartContext);
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
const ticks = y2Scale.ticks?.(y2Axis.tickCount ?? height / 80);
|
|
46
|
-
const ref = (0, import_react.useRef)();
|
|
43
|
+
const { color: tickColor } = y2Axis?.tick || {};
|
|
44
|
+
const ref = (0, import_react.useRef)(null);
|
|
47
45
|
(0, import_react.useEffect)(() => {
|
|
48
46
|
const axis = (0, import_d3.axisRight)(y2Scale).tickSizeOuter(0);
|
|
49
|
-
|
|
47
|
+
if (ref.current)
|
|
48
|
+
(0, import_d3.select)(ref.current).call(axis);
|
|
50
49
|
}, [innerWidth, y2Scale]);
|
|
50
|
+
if (!y2Axis)
|
|
51
|
+
return null;
|
|
51
52
|
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)("g", {
|
|
52
53
|
ref: setAxisRightRef,
|
|
53
54
|
transform: `translate(${innerWidth},0)`,
|
|
54
55
|
children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_styles.StyledAxis, {
|
|
56
|
+
axisColor: y2Axis?.color,
|
|
55
57
|
ref,
|
|
56
|
-
|
|
58
|
+
tickColor
|
|
57
59
|
})
|
|
58
|
-
}
|
|
60
|
+
});
|
|
59
61
|
};
|
|
60
62
|
//# sourceMappingURL=AxisRight.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../../src/graphs/Chart/parts/Axis/AxisRight.tsx", "../../../../../../../../scripts/build/transpile/react-shim.js"],
|
|
4
|
-
"sourcesContent": ["import React, { useContext, useEffect,
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADAvB;AAAA,
|
|
4
|
+
"sourcesContent": ["import React, { useContext, useEffect, useRef } from 'react';\nimport { select, axisRight } from 'd3';\nimport { StyledAxis } from '../../styles';\nimport { ChartContext } from '../../ChartContext';\nexport const AxisRight = () => {\n const {\n props: { y2Axis },\n innerWidth,\n y2Scale,\n setAxisRightRef,\n } = useContext(ChartContext);\n\n const { color: tickColor } = y2Axis?.tick || {};\n const ref = useRef<SVGGElement>(null);\n useEffect(() => {\n const axis = axisRight(y2Scale).tickSizeOuter(0);\n\n if (ref.current) select(ref.current).call(axis);\n }, [innerWidth, y2Scale]);\n if (!y2Axis) return null;\n return (\n <g ref={setAxisRightRef} transform={`translate(${innerWidth},0)`}>\n <StyledAxis axisColor={y2Axis?.color} ref={ref} tickColor={tickColor} />\n </g>\n );\n};\n", "import * as React from 'react';\nexport { React };\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADAvB;AAAA,mBAAqD;AACrD,gBAAkC;AAClC,oBAA2B;AAC3B,0BAA6B;AACtB,MAAM,YAAY,MAAM;AAC7B,QAAM;AAAA,IACJ,OAAO,EAAE,OAAO;AAAA,IAChB;AAAA,IACA;AAAA,IACA;AAAA,EACF,QAAI,yBAAW,gCAAY;AAE3B,QAAM,EAAE,OAAO,UAAU,IAAI,QAAQ,QAAQ,CAAC;AAC9C,QAAM,UAAM,qBAAoB,IAAI;AACpC,8BAAU,MAAM;AACd,UAAM,WAAO,qBAAU,OAAO,EAAE,cAAc,CAAC;AAE/C,QAAI,IAAI;AAAS,4BAAO,IAAI,OAAO,EAAE,KAAK,IAAI;AAAA,EAChD,GAAG,CAAC,YAAY,OAAO,CAAC;AACxB,MAAI,CAAC;AAAQ,WAAO;AACpB,SACE,4CAAC;AAAA,IAAE,KAAK;AAAA,IAAiB,WAAW,aAAa;AAAA,IAC/C,sDAAC;AAAA,MAAW,WAAW,QAAQ;AAAA,MAAO;AAAA,MAAU;AAAA,KAAsB;AAAA,GACxE;AAEJ;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -35,9 +35,12 @@ var import_ChartContext = require("../ChartContext");
|
|
|
35
35
|
var import_useKeyboardNavigation = require("../config/useKeyboardNavigation");
|
|
36
36
|
var import_Legend = require("./Legend/Legend");
|
|
37
37
|
var import_Label = require("./Labels/Label");
|
|
38
|
-
|
|
38
|
+
var import_BlurMask = require("./Scroller/BlurMask");
|
|
39
|
+
var import_ClipPaths = require("./ClipPaths");
|
|
40
|
+
var import_Axes = require("./Axis/Axes");
|
|
41
|
+
const ChartContainer = () => {
|
|
39
42
|
const {
|
|
40
|
-
props: { width, height },
|
|
43
|
+
props: { width, height, xAxis, yAxis },
|
|
41
44
|
containerRef,
|
|
42
45
|
activePoint,
|
|
43
46
|
internalMargin,
|
|
@@ -59,8 +62,8 @@ const ChartContainer = ({ children }) => {
|
|
|
59
62
|
yScale,
|
|
60
63
|
currentData
|
|
61
64
|
} = (0, import_react.useContext)(import_ChartContext.ChartContext);
|
|
62
|
-
|
|
63
|
-
|
|
65
|
+
const xScroll = xAxis.advanced?.pointSpacing?.value > 1;
|
|
66
|
+
const yScroll = yAxis.advanced?.pointSpacing?.value > 1;
|
|
64
67
|
const { onInputKeyDown, handleOnBlur, handleOnFocus } = (0, import_useKeyboardNavigation.useKeyboardNavigation)();
|
|
65
68
|
const onMouseEnterHandler = (0, import_react.useCallback)(() => {
|
|
66
69
|
setIsScrollbarVisible(true);
|
|
@@ -76,15 +79,37 @@ const ChartContainer = ({ children }) => {
|
|
|
76
79
|
if (!isGrabbed)
|
|
77
80
|
return;
|
|
78
81
|
setActivePoint(null);
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
82
|
+
if (xScroll) {
|
|
83
|
+
const newPosition = oldLastPosition?.current + e.clientX - startPosition;
|
|
84
|
+
if (newPosition < 0)
|
|
85
|
+
setXScrollbarPosition(0);
|
|
86
|
+
else if (newPosition > innerWidth - innerWidth / containerRatio)
|
|
87
|
+
setXScrollbarPosition(innerWidth - innerWidth / containerRatio);
|
|
88
|
+
else
|
|
89
|
+
setXScrollbarPosition(newPosition);
|
|
90
|
+
}
|
|
91
|
+
if (yScroll) {
|
|
92
|
+
const newPosition = oldLastPosition?.current + e.clientY - startPosition;
|
|
93
|
+
if (newPosition < 0)
|
|
94
|
+
setXScrollbarPosition(0);
|
|
95
|
+
else if (newPosition > innerHeight - innerHeight / containerRatio)
|
|
96
|
+
setXScrollbarPosition(innerHeight - innerHeight / containerRatio);
|
|
97
|
+
else
|
|
98
|
+
setXScrollbarPosition(newPosition);
|
|
99
|
+
}
|
|
86
100
|
},
|
|
87
|
-
[
|
|
101
|
+
[
|
|
102
|
+
isGrabbed,
|
|
103
|
+
setActivePoint,
|
|
104
|
+
xScroll,
|
|
105
|
+
yScroll,
|
|
106
|
+
oldLastPosition,
|
|
107
|
+
startPosition,
|
|
108
|
+
setXScrollbarPosition,
|
|
109
|
+
innerWidth,
|
|
110
|
+
containerRatio,
|
|
111
|
+
innerHeight
|
|
112
|
+
]
|
|
88
113
|
);
|
|
89
114
|
const handleMouseUp = (0, import_react.useCallback)(() => {
|
|
90
115
|
oldLastPosition.current = xScrollbarPosition;
|
|
@@ -96,10 +121,13 @@ const ChartContainer = ({ children }) => {
|
|
|
96
121
|
);
|
|
97
122
|
(0, import_react.useEffect)(() => {
|
|
98
123
|
containerRef?.current?.addEventListener("mousemove", handleMouseMove);
|
|
124
|
+
const container = containerRef?.current;
|
|
99
125
|
return () => {
|
|
100
|
-
|
|
126
|
+
container?.removeEventListener("mousemove", handleMouseMove);
|
|
101
127
|
};
|
|
102
128
|
}, [containerRef, handleMouseMove]);
|
|
129
|
+
if (currentData.length === 0)
|
|
130
|
+
return null;
|
|
103
131
|
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_styles.StyledSVGWrapper, {
|
|
104
132
|
ref: containerRef,
|
|
105
133
|
onKeyDown: onInputKeyDown,
|
|
@@ -113,57 +141,29 @@ const ChartContainer = ({ children }) => {
|
|
|
113
141
|
onMouseDown: (e) => e.preventDefault(),
|
|
114
142
|
isGrabbed,
|
|
115
143
|
style: { width },
|
|
116
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime.
|
|
144
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("svg", {
|
|
117
145
|
ref: svgRef,
|
|
118
146
|
width,
|
|
119
147
|
height,
|
|
120
|
-
children:
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("clipPath", {
|
|
135
|
-
id: `rect-focus-ring-${chartId}`,
|
|
136
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("rect", {
|
|
137
|
-
width: innerWidth * containerRatio,
|
|
138
|
-
height: innerHeight + 4,
|
|
139
|
-
y: -4
|
|
140
|
-
})
|
|
141
|
-
})
|
|
142
|
-
}),
|
|
143
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("defs", {
|
|
144
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("clipPath", {
|
|
145
|
-
id: `rects-positive-${chartId}`,
|
|
146
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("rect", {
|
|
147
|
-
width: innerWidth * containerRatio,
|
|
148
|
-
height: yScale(0) + 8,
|
|
149
|
-
y: -8,
|
|
150
|
-
x: -10
|
|
151
|
-
})
|
|
152
|
-
})
|
|
153
|
-
}),
|
|
154
|
-
innerHeight - yScale(0) > 0 ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)("defs", {
|
|
155
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("clipPath", {
|
|
156
|
-
id: `rects-negative-${chartId}`,
|
|
157
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("rect", {
|
|
158
|
-
width: innerWidth * containerRatio,
|
|
159
|
-
height: innerHeight - yScale(0),
|
|
160
|
-
x: -10,
|
|
161
|
-
y: yScale(0)
|
|
162
|
-
})
|
|
148
|
+
children: [
|
|
149
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_BlurMask.BlurMask, {}),
|
|
150
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("g", {
|
|
151
|
+
children: [
|
|
152
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("g", {
|
|
153
|
+
children: [
|
|
154
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_Legend.Legend, {}),
|
|
155
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_Label.Label, {})
|
|
156
|
+
]
|
|
157
|
+
}),
|
|
158
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("g", {
|
|
159
|
+
className: "container",
|
|
160
|
+
transform: `translate(${internalMargin.left},${internalMargin.top})`,
|
|
161
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_Axes.Axes, {})
|
|
163
162
|
})
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
163
|
+
]
|
|
164
|
+
}, key),
|
|
165
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_ClipPaths.ClipPaths, {})
|
|
166
|
+
]
|
|
167
167
|
})
|
|
168
168
|
});
|
|
169
169
|
};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../src/graphs/Chart/parts/ChartContainer.tsx", "../../../../../../../scripts/build/transpile/react-shim.js"],
|
|
4
|
-
"sourcesContent": ["import React, { useContext, useMemo, useCallback, useEffect } from 'react';\nimport { StyledSVGWrapper } from '../styles';\n\nimport { ChartContext } from '../ChartContext';\nimport { useKeyboardNavigation } from '../config/useKeyboardNavigation';\nimport { Legend } from './Legend/Legend';\nimport { Label } from './Labels/Label';\
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADAvB;AAAA,mBAAmE;AACnE,oBAAiC;AAEjC,0BAA6B;AAC7B,mCAAsC;AACtC,oBAAuB;AACvB,mBAAsB;
|
|
4
|
+
"sourcesContent": ["import React, { useContext, useMemo, useCallback, useEffect } from 'react';\nimport { StyledSVGWrapper } from '../styles';\n\nimport { ChartContext } from '../ChartContext';\nimport { useKeyboardNavigation } from '../config/useKeyboardNavigation';\nimport { Legend } from './Legend/Legend';\nimport { Label } from './Labels/Label';\nimport { BlurMask } from './Scroller/BlurMask';\nimport { ClipPaths } from './ClipPaths';\nimport { Axes } from './Axis/Axes';\n\nexport const ChartContainer = () => {\n const {\n props: { width, height, xAxis, yAxis },\n containerRef,\n activePoint,\n internalMargin,\n setScrapperPosY,\n setScrapperPosX,\n svgRef,\n isGrabbed,\n setIsGrabbed,\n startPosition,\n innerWidth,\n innerHeight,\n setActivePoint,\n setXScrollbarPosition,\n xScrollbarPosition,\n containerRatio,\n oldLastPosition,\n setIsScrollbarVisible,\n chartId,\n yScale,\n currentData,\n } = useContext(ChartContext);\n\n const xScroll = xAxis.advanced?.pointSpacing?.value > 1;\n const yScroll = yAxis.advanced?.pointSpacing?.value > 1;\n const { onInputKeyDown, handleOnBlur, handleOnFocus } = useKeyboardNavigation();\n\n const onMouseEnterHandler = useCallback(() => {\n setIsScrollbarVisible(true);\n }, [setIsScrollbarVisible]);\n const onMouseLeaveHandler = useCallback(() => {\n setScrapperPosY('');\n setScrapperPosX('');\n setIsScrollbarVisible(false);\n setIsGrabbed(false);\n }, [setIsGrabbed, setIsScrollbarVisible, setScrapperPosX, setScrapperPosY]);\n\n const handleMouseMove: React.MouseEventHandler = useCallback(\n (e) => {\n if (!isGrabbed) return;\n setActivePoint(null);\n\n if (xScroll) {\n const newPosition = oldLastPosition?.current + e.clientX - startPosition;\n if (newPosition < 0) setXScrollbarPosition(0);\n else if (newPosition > innerWidth - innerWidth / containerRatio)\n setXScrollbarPosition(innerWidth - innerWidth / containerRatio);\n else setXScrollbarPosition(newPosition);\n }\n if (yScroll) {\n const newPosition = oldLastPosition?.current + e.clientY - startPosition;\n if (newPosition < 0) setXScrollbarPosition(0);\n else if (newPosition > innerHeight - innerHeight / containerRatio)\n setXScrollbarPosition(innerHeight - innerHeight / containerRatio);\n else setXScrollbarPosition(newPosition);\n }\n },\n [\n isGrabbed,\n setActivePoint,\n xScroll,\n yScroll,\n oldLastPosition,\n startPosition,\n setXScrollbarPosition,\n innerWidth,\n containerRatio,\n innerHeight,\n ],\n );\n const handleMouseUp = useCallback(() => {\n oldLastPosition.current = xScrollbarPosition;\n setIsGrabbed(false);\n }, [oldLastPosition, setIsGrabbed, xScrollbarPosition]);\n const key = useMemo(\n () => `translate(${internalMargin.left},${internalMargin.top},${internalMargin.right})`,\n [internalMargin],\n );\n\n useEffect(() => {\n containerRef?.current?.addEventListener('mousemove', handleMouseMove);\n // containerRef?.current?.addEventListener('wheel', handleScroll);\n const container = containerRef?.current;\n return () => {\n container?.removeEventListener('mousemove', handleMouseMove);\n // containerRef?.current?.removeEventListener('wheel', handleScroll);\n };\n }, [containerRef, handleMouseMove]);\n\n if (currentData.length === 0) return null;\n\n return (\n <StyledSVGWrapper\n ref={containerRef}\n onKeyDown={onInputKeyDown}\n aria-hidden=\"true\"\n tabIndex={activePoint ? -1 : 0}\n onBlur={handleOnBlur}\n onFocus={handleOnFocus}\n onMouseEnter={onMouseEnterHandler}\n onMouseLeave={onMouseLeaveHandler}\n // // onMouseMove={handleMouseMove}\n onMouseUp={handleMouseUp}\n onMouseDown={(e) => e.preventDefault()}\n isGrabbed={isGrabbed}\n style={{ width }}\n >\n <svg ref={svgRef} width={width} height={height}>\n <BlurMask />\n <g key={key}>\n <g>\n <Legend />\n <Label />\n </g>\n <g className=\"container\" transform={`translate(${internalMargin.left},${internalMargin.top})`}>\n <Axes />\n </g>\n </g>\n {/* this clipaths for animations and focus ring.. need to give a deeper look */}\n <ClipPaths />\n </svg>\n </StyledSVGWrapper>\n );\n};\n", "import * as React from 'react';\nexport { React };\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -0,0 +1,85 @@
|
|
|
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 ClipPaths_exports = {};
|
|
26
|
+
__export(ClipPaths_exports, {
|
|
27
|
+
ClipPaths: () => ClipPaths
|
|
28
|
+
});
|
|
29
|
+
module.exports = __toCommonJS(ClipPaths_exports);
|
|
30
|
+
var React = __toESM(require("react"));
|
|
31
|
+
var import_jsx_runtime = require("react/jsx-runtime");
|
|
32
|
+
var import_react = require("react");
|
|
33
|
+
var import_ChartContext = require("../ChartContext");
|
|
34
|
+
const ClipPaths = () => {
|
|
35
|
+
const {
|
|
36
|
+
innerWidth,
|
|
37
|
+
containerRatio,
|
|
38
|
+
innerHeight,
|
|
39
|
+
chartId,
|
|
40
|
+
yScale,
|
|
41
|
+
props: { xAxis, yAxis }
|
|
42
|
+
} = (0, import_react.useContext)(import_ChartContext.ChartContext);
|
|
43
|
+
const yScroll = yAxis.advanced?.pointSpacing?.value > 1;
|
|
44
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, {
|
|
45
|
+
children: [
|
|
46
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("defs", {
|
|
47
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("clipPath", {
|
|
48
|
+
id: `rect-focus-ring-${chartId}`,
|
|
49
|
+
children: yScroll ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)("rect", {
|
|
50
|
+
width: innerWidth + 4,
|
|
51
|
+
height: innerHeight * containerRatio,
|
|
52
|
+
x: -4
|
|
53
|
+
}) : /* @__PURE__ */ (0, import_jsx_runtime.jsx)("rect", {
|
|
54
|
+
width: innerWidth * containerRatio,
|
|
55
|
+
height: innerHeight + 4,
|
|
56
|
+
y: -4
|
|
57
|
+
})
|
|
58
|
+
})
|
|
59
|
+
}),
|
|
60
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("defs", {
|
|
61
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("clipPath", {
|
|
62
|
+
id: `rects-positive-${chartId}`,
|
|
63
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("rect", {
|
|
64
|
+
width: innerWidth * containerRatio,
|
|
65
|
+
height: yScale(0) + 8,
|
|
66
|
+
y: -8,
|
|
67
|
+
x: -10
|
|
68
|
+
})
|
|
69
|
+
})
|
|
70
|
+
}),
|
|
71
|
+
innerHeight - yScale(0) > 0 ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)("defs", {
|
|
72
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("clipPath", {
|
|
73
|
+
id: `rects-negative-${chartId}`,
|
|
74
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("rect", {
|
|
75
|
+
width: innerWidth * containerRatio,
|
|
76
|
+
height: innerHeight - yScale(0),
|
|
77
|
+
x: -10,
|
|
78
|
+
y: yScale(0)
|
|
79
|
+
})
|
|
80
|
+
})
|
|
81
|
+
}) : null
|
|
82
|
+
]
|
|
83
|
+
});
|
|
84
|
+
};
|
|
85
|
+
//# sourceMappingURL=ClipPaths.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../../src/graphs/Chart/parts/ClipPaths.tsx", "../../../../../../../scripts/build/transpile/react-shim.js"],
|
|
4
|
+
"sourcesContent": ["/* eslint-disable arrow-body-style */\n/* eslint-disable indent */\nimport React, { useContext } from 'react';\nimport { ChartContext } from '../ChartContext';\n\nexport const ClipPaths = () => {\n const {\n innerWidth,\n containerRatio,\n innerHeight,\n chartId,\n yScale,\n props: { xAxis, yAxis },\n } = useContext(ChartContext);\n\n const yScroll = yAxis.advanced?.pointSpacing?.value > 1;\n\n return (\n <>\n <defs>\n <clipPath id={`rect-focus-ring-${chartId}`}>\n {yScroll ? (\n <rect width={innerWidth + 4} height={innerHeight * containerRatio} x={-4} />\n ) : (\n <rect width={innerWidth * containerRatio} height={innerHeight + 4} y={-4} />\n )}\n </clipPath>\n </defs>\n <defs>\n <clipPath id={`rects-positive-${chartId}`}>\n <rect width={innerWidth * containerRatio} height={yScale(0) + 8} y={-8} x={-10} />\n </clipPath>\n </defs>\n {innerHeight - yScale(0) > 0 ? (\n <defs>\n <clipPath id={`rects-negative-${chartId}`}>\n <rect width={innerWidth * containerRatio} height={innerHeight - yScale(0)} x={-10} y={yScale(0)} />\n </clipPath>\n </defs>\n ) : null}\n </>\n );\n};\n", "import * as React from 'react';\nexport { React };\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADAvB;AAEA,mBAAkC;AAClC,0BAA6B;AAEtB,MAAM,YAAY,MAAM;AAC7B,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,OAAO,EAAE,OAAO,MAAM;AAAA,EACxB,QAAI,yBAAW,gCAAY;AAE3B,QAAM,UAAU,MAAM,UAAU,cAAc,QAAQ;AAEtD,SACE;AAAA,IACE;AAAA,kDAAC;AAAA,QACC,sDAAC;AAAA,UAAS,IAAI,mBAAmB;AAAA,UAC9B,oBACC,4CAAC;AAAA,YAAK,OAAO,aAAa;AAAA,YAAG,QAAQ,cAAc;AAAA,YAAgB,GAAG;AAAA,WAAI,IAE1E,4CAAC;AAAA,YAAK,OAAO,aAAa;AAAA,YAAgB,QAAQ,cAAc;AAAA,YAAG,GAAG;AAAA,WAAI;AAAA,SAE9E;AAAA,OACF;AAAA,MACA,4CAAC;AAAA,QACC,sDAAC;AAAA,UAAS,IAAI,kBAAkB;AAAA,UAC9B,sDAAC;AAAA,YAAK,OAAO,aAAa;AAAA,YAAgB,QAAQ,OAAO,CAAC,IAAI;AAAA,YAAG,GAAG;AAAA,YAAI,GAAG;AAAA,WAAK;AAAA,SAClF;AAAA,OACF;AAAA,MACC,cAAc,OAAO,CAAC,IAAI,IACzB,4CAAC;AAAA,QACC,sDAAC;AAAA,UAAS,IAAI,kBAAkB;AAAA,UAC9B,sDAAC;AAAA,YAAK,OAAO,aAAa;AAAA,YAAgB,QAAQ,cAAc,OAAO,CAAC;AAAA,YAAG,GAAG;AAAA,YAAK,GAAG,OAAO,CAAC;AAAA,WAAG;AAAA,SACnG;AAAA,OACF,IACE;AAAA;AAAA,GACN;AAEJ;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|