@ledgerhq/lumen-ui-rnative-visualization 0.1.17 → 0.1.18
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/module/lib/Components/Axis/XAxis/XAxis.js +2 -2
- package/dist/module/lib/Components/Axis/XAxis/XAxis.js.map +1 -1
- package/dist/module/lib/Components/Axis/YAxis/YAxis.js +2 -2
- package/dist/module/lib/Components/Axis/YAxis/YAxis.js.map +1 -1
- package/dist/module/lib/Components/CartesianChart/CartesianChart.js +29 -22
- package/dist/module/lib/Components/CartesianChart/CartesianChart.js.map +1 -1
- package/dist/module/lib/Components/CartesianChart/ChartEmptyLabel/ChartEmptyLabel.js +61 -0
- package/dist/module/lib/Components/CartesianChart/ChartEmptyLabel/ChartEmptyLabel.js.map +1 -0
- package/dist/module/lib/Components/CartesianChart/ChartEmptyLabel/index.js +4 -0
- package/dist/module/lib/Components/CartesianChart/ChartEmptyLabel/index.js.map +1 -0
- package/dist/module/lib/Components/CartesianChart/RevealClip/RevealClipDefs.js +3 -4
- package/dist/module/lib/Components/CartesianChart/RevealClip/RevealClipDefs.js.map +1 -1
- package/dist/module/lib/Components/CartesianChart/hooks/useDataFingerprint.js +13 -0
- package/dist/module/lib/Components/CartesianChart/hooks/useDataFingerprint.js.map +1 -0
- package/dist/module/lib/Components/CartesianChart/{RevealClip/utils.js → hooks/useRevealClipAnimation.js} +1 -6
- package/dist/module/lib/Components/CartesianChart/hooks/useRevealClipAnimation.js.map +1 -0
- package/dist/module/lib/Components/CartesianChart/hooks/useShimmerAnimation.js +37 -0
- package/dist/module/lib/Components/CartesianChart/hooks/useShimmerAnimation.js.map +1 -0
- package/dist/module/lib/Components/Line/Line.js +13 -8
- package/dist/module/lib/Components/Line/Line.js.map +1 -1
- package/dist/module/lib/Components/Line/constants.js +5 -0
- package/dist/module/lib/Components/Line/constants.js.map +1 -0
- package/dist/module/lib/Components/Line/types.js +2 -0
- package/dist/module/lib/Components/Line/utils.js +24 -7
- package/dist/module/lib/Components/Line/utils.js.map +1 -1
- package/dist/module/lib/Components/Line/utils.test.js +27 -1
- package/dist/module/lib/Components/Line/utils.test.js.map +1 -1
- package/dist/module/lib/Components/LineChart/LineChart.js +116 -27
- package/dist/module/lib/Components/LineChart/LineChart.js.map +1 -1
- package/dist/module/lib/Components/LineChart/LineChart.test.js +78 -0
- package/dist/module/lib/Components/LineChart/LineChart.test.js.map +1 -1
- package/dist/module/lib/Components/LineChart/LineChartEmptyState/LineChartEmptyState.js +72 -0
- package/dist/module/lib/Components/LineChart/LineChartEmptyState/LineChartEmptyState.js.map +1 -0
- package/dist/module/lib/Components/LineChart/LineChartEmptyState/LineChartEmptyState.test.js +47 -0
- package/dist/module/lib/Components/LineChart/LineChartEmptyState/LineChartEmptyState.test.js.map +1 -0
- package/dist/module/lib/Components/LineChart/LineChartEmptyState/index.js +4 -0
- package/dist/module/lib/Components/LineChart/LineChartEmptyState/index.js.map +1 -0
- package/dist/module/lib/Components/LineChart/LineChartEmptyState/types.js +4 -0
- package/dist/module/lib/Components/LineChart/LineChartEmptyState/types.js.map +1 -0
- package/dist/module/lib/Components/LineChart/LineChartEmptyState/utils.js +22 -0
- package/dist/module/lib/Components/LineChart/LineChartEmptyState/utils.js.map +1 -0
- package/dist/module/lib/Components/LineChart/LineChartEmptyState/utils.test.js +21 -0
- package/dist/module/lib/Components/LineChart/LineChartEmptyState/utils.test.js.map +1 -0
- package/dist/module/lib/Components/LineChart/utils.js +83 -0
- package/dist/module/lib/Components/LineChart/utils.js.map +1 -0
- package/dist/module/lib/Components/LineChart/utils.test.js +174 -0
- package/dist/module/lib/Components/LineChart/utils.test.js.map +1 -0
- package/dist/module/lib/Components/ReferenceLine/ReferenceLine.js +4 -4
- package/dist/module/lib/Components/ReferenceLine/ReferenceLine.js.map +1 -1
- package/dist/module/lib/Components/ReferenceLine/constants.js +2 -2
- package/dist/module/lib/Components/ReferenceLine/constants.js.map +1 -1
- package/dist/module/lib/Components/ReferenceLine/utils.js +2 -1
- package/dist/module/lib/Components/ReferenceLine/utils.js.map +1 -1
- package/dist/module/lib/Components/Scrubber/DefaultScrubberTooltip/utils.js +2 -1
- package/dist/module/lib/Components/Scrubber/DefaultScrubberTooltip/utils.js.map +1 -1
- package/dist/module/lib/Components/Scrubber/Scrubber.js +2 -2
- package/dist/module/lib/Components/Scrubber/Scrubber.js.map +1 -1
- package/dist/module/lib/Components/Scrubber/ScrubberProvider.js +2 -1
- package/dist/module/lib/Components/Scrubber/ScrubberProvider.js.map +1 -1
- package/dist/module/lib/Components/Scrubber/utils.js +3 -2
- package/dist/module/lib/Components/Scrubber/utils.js.map +1 -1
- package/dist/module/lib/utils/numbers.js +16 -0
- package/dist/module/lib/utils/numbers.js.map +1 -0
- package/dist/module/lib/utils/ticks/ticks.js +0 -16
- package/dist/module/lib/utils/ticks/ticks.js.map +1 -1
- package/dist/typescript/src/lib/Components/Axis/XAxis/XAxis.d.ts.map +1 -1
- package/dist/typescript/src/lib/Components/Axis/YAxis/YAxis.d.ts.map +1 -1
- package/dist/typescript/src/lib/Components/CartesianChart/CartesianChart.d.ts +1 -1
- package/dist/typescript/src/lib/Components/CartesianChart/CartesianChart.d.ts.map +1 -1
- package/dist/typescript/src/lib/Components/CartesianChart/ChartEmptyLabel/ChartEmptyLabel.d.ts +18 -0
- package/dist/typescript/src/lib/Components/CartesianChart/ChartEmptyLabel/ChartEmptyLabel.d.ts.map +1 -0
- package/dist/typescript/src/lib/Components/CartesianChart/ChartEmptyLabel/index.d.ts +2 -0
- package/dist/typescript/src/lib/Components/CartesianChart/ChartEmptyLabel/index.d.ts.map +1 -0
- package/dist/typescript/src/lib/Components/CartesianChart/RevealClip/RevealClipDefs.d.ts.map +1 -1
- package/dist/typescript/src/lib/Components/CartesianChart/RevealClip/types.d.ts +1 -1
- package/dist/typescript/src/lib/Components/CartesianChart/RevealClip/types.d.ts.map +1 -1
- package/dist/typescript/src/lib/Components/CartesianChart/hooks/useDataFingerprint.d.ts +9 -0
- package/dist/typescript/src/lib/Components/CartesianChart/hooks/useDataFingerprint.d.ts.map +1 -0
- package/dist/typescript/src/lib/Components/CartesianChart/{RevealClip/utils.d.ts → hooks/useRevealClipAnimation.d.ts} +2 -5
- package/dist/typescript/src/lib/Components/CartesianChart/hooks/useRevealClipAnimation.d.ts.map +1 -0
- package/dist/typescript/src/lib/Components/CartesianChart/hooks/useShimmerAnimation.d.ts +13 -0
- package/dist/typescript/src/lib/Components/CartesianChart/hooks/useShimmerAnimation.d.ts.map +1 -0
- package/dist/typescript/src/lib/Components/CartesianChart/types.d.ts +12 -0
- package/dist/typescript/src/lib/Components/CartesianChart/types.d.ts.map +1 -1
- package/dist/typescript/src/lib/Components/Line/Line.d.ts +1 -1
- package/dist/typescript/src/lib/Components/Line/Line.d.ts.map +1 -1
- package/dist/typescript/src/lib/Components/Line/constants.d.ts +3 -0
- package/dist/typescript/src/lib/Components/Line/constants.d.ts.map +1 -0
- package/dist/typescript/src/lib/Components/Line/index.d.ts +1 -1
- package/dist/typescript/src/lib/Components/Line/index.d.ts.map +1 -1
- package/dist/typescript/src/lib/Components/Line/types.d.ts +8 -0
- package/dist/typescript/src/lib/Components/Line/types.d.ts.map +1 -1
- package/dist/typescript/src/lib/Components/Line/utils.d.ts +5 -4
- package/dist/typescript/src/lib/Components/Line/utils.d.ts.map +1 -1
- package/dist/typescript/src/lib/Components/LineChart/LineChart.d.ts +1 -1
- package/dist/typescript/src/lib/Components/LineChart/LineChart.d.ts.map +1 -1
- package/dist/typescript/src/lib/Components/LineChart/LineChartEmptyState/LineChartEmptyState.d.ts +9 -0
- package/dist/typescript/src/lib/Components/LineChart/LineChartEmptyState/LineChartEmptyState.d.ts.map +1 -0
- package/dist/typescript/src/lib/Components/LineChart/LineChartEmptyState/index.d.ts +3 -0
- package/dist/typescript/src/lib/Components/LineChart/LineChartEmptyState/index.d.ts.map +1 -0
- package/dist/typescript/src/lib/Components/LineChart/LineChartEmptyState/types.d.ts +3 -0
- package/dist/typescript/src/lib/Components/LineChart/LineChartEmptyState/types.d.ts.map +1 -0
- package/dist/typescript/src/lib/Components/LineChart/LineChartEmptyState/utils.d.ts +14 -0
- package/dist/typescript/src/lib/Components/LineChart/LineChartEmptyState/utils.d.ts.map +1 -0
- package/dist/typescript/src/lib/Components/LineChart/types.d.ts +29 -1
- package/dist/typescript/src/lib/Components/LineChart/types.d.ts.map +1 -1
- package/dist/typescript/src/lib/Components/LineChart/utils.d.ts +43 -0
- package/dist/typescript/src/lib/Components/LineChart/utils.d.ts.map +1 -0
- package/dist/typescript/src/lib/Components/ReferenceLine/ReferenceLine.d.ts.map +1 -1
- package/dist/typescript/src/lib/Components/ReferenceLine/constants.d.ts +2 -2
- package/dist/typescript/src/lib/Components/ReferenceLine/constants.d.ts.map +1 -1
- package/dist/typescript/src/lib/Components/ReferenceLine/utils.d.ts.map +1 -1
- package/dist/typescript/src/lib/Components/Scrubber/DefaultScrubberTooltip/utils.d.ts.map +1 -1
- package/dist/typescript/src/lib/Components/Scrubber/Scrubber.d.ts.map +1 -1
- package/dist/typescript/src/lib/Components/Scrubber/ScrubberProvider.d.ts.map +1 -1
- package/dist/typescript/src/lib/Components/Scrubber/utils.d.ts.map +1 -1
- package/dist/typescript/src/lib/utils/index.d.ts +1 -1
- package/dist/typescript/src/lib/utils/index.d.ts.map +1 -1
- package/dist/typescript/src/lib/utils/numbers.d.ts +13 -0
- package/dist/typescript/src/lib/utils/numbers.d.ts.map +1 -0
- package/dist/typescript/src/lib/utils/ticks/ticks.d.ts +1 -11
- package/dist/typescript/src/lib/utils/ticks/ticks.d.ts.map +1 -1
- package/dist/typescript/src/lib/utils/types.d.ts +20 -2
- package/dist/typescript/src/lib/utils/types.d.ts.map +1 -1
- package/package.json +3 -3
- package/src/lib/Components/Axis/XAxis/XAxis.tsx +13 -18
- package/src/lib/Components/Axis/YAxis/YAxis.tsx +13 -18
- package/src/lib/Components/CartesianChart/CartesianChart.tsx +29 -23
- package/src/lib/Components/CartesianChart/ChartEmptyLabel/ChartEmptyLabel.tsx +68 -0
- package/src/lib/Components/CartesianChart/ChartEmptyLabel/index.ts +1 -0
- package/src/lib/Components/CartesianChart/RevealClip/RevealClipDefs.tsx +3 -2
- package/src/lib/Components/CartesianChart/RevealClip/types.ts +1 -1
- package/src/lib/Components/CartesianChart/hooks/useDataFingerprint.ts +16 -0
- package/src/lib/Components/CartesianChart/{RevealClip/utils.ts → hooks/useRevealClipAnimation.ts} +1 -9
- package/src/lib/Components/CartesianChart/hooks/useShimmerAnimation.ts +52 -0
- package/src/lib/Components/CartesianChart/types.ts +12 -0
- package/src/lib/Components/Line/Line.tsx +13 -10
- package/src/lib/Components/Line/constants.ts +2 -0
- package/src/lib/Components/Line/index.ts +1 -1
- package/src/lib/Components/Line/types.ts +10 -0
- package/src/lib/Components/Line/utils.test.ts +41 -1
- package/src/lib/Components/Line/utils.ts +42 -6
- package/src/lib/Components/LineChart/LineChart.test.tsx +64 -0
- package/src/lib/Components/LineChart/LineChart.tsx +139 -38
- package/src/lib/Components/LineChart/LineChartEmptyState/LineChartEmptyState.test.tsx +39 -0
- package/src/lib/Components/LineChart/LineChartEmptyState/LineChartEmptyState.tsx +72 -0
- package/src/lib/Components/LineChart/LineChartEmptyState/index.ts +2 -0
- package/src/lib/Components/LineChart/LineChartEmptyState/types.ts +3 -0
- package/src/lib/Components/LineChart/LineChartEmptyState/utils.test.ts +22 -0
- package/src/lib/Components/LineChart/LineChartEmptyState/utils.ts +24 -0
- package/src/lib/Components/LineChart/types.ts +35 -1
- package/src/lib/Components/LineChart/utils.test.ts +196 -0
- package/src/lib/Components/LineChart/utils.ts +107 -0
- package/src/lib/Components/ReferenceLine/ReferenceLine.tsx +8 -4
- package/src/lib/Components/ReferenceLine/constants.ts +2 -2
- package/src/lib/Components/ReferenceLine/utils.ts +2 -1
- package/src/lib/Components/Scrubber/DefaultScrubberTooltip/utils.ts +2 -1
- package/src/lib/Components/Scrubber/Scrubber.tsx +13 -2
- package/src/lib/Components/Scrubber/ScrubberProvider.tsx +2 -1
- package/src/lib/Components/Scrubber/utils.ts +3 -5
- package/src/lib/utils/index.ts +1 -0
- package/src/lib/utils/numbers.ts +15 -0
- package/src/lib/utils/ticks/ticks.ts +1 -23
- package/src/lib/utils/types.ts +28 -2
- package/dist/module/lib/Components/CartesianChart/RevealClip/utils.js.map +0 -1
- package/dist/typescript/src/lib/Components/CartesianChart/RevealClip/utils.d.ts.map +0 -1
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
import { useTheme } from '@ledgerhq/lumen-ui-rnative';
|
|
4
4
|
import { useMemo } from 'react';
|
|
5
5
|
import { G, Line as SvgLine, Text as SvgText } from 'react-native-svg';
|
|
6
|
-
import { buildTicksData
|
|
6
|
+
import { buildTicksData } from "../../../utils/ticks/ticks.js";
|
|
7
7
|
import { useCartesianChartContext } from "../../CartesianChart/context/index.js";
|
|
8
8
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
9
9
|
const STROKE_WIDTH = 1;
|
|
@@ -43,7 +43,7 @@ export const XAxis = ({
|
|
|
43
43
|
const lineStroke = theme.colors.border.muted;
|
|
44
44
|
const textFill = theme.colors.text.muted;
|
|
45
45
|
return /*#__PURE__*/_jsxs(G, {
|
|
46
|
-
children: [showGrid && ticksData.
|
|
46
|
+
children: [showGrid && ticksData.map((tick, i) => /*#__PURE__*/_jsx(SvgLine, {
|
|
47
47
|
x1: tick.position,
|
|
48
48
|
y1: drawingArea.y,
|
|
49
49
|
x2: tick.position,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useTheme","useMemo","G","Line","SvgLine","Text","SvgText","buildTicksData","
|
|
1
|
+
{"version":3,"names":["useTheme","useMemo","G","Line","SvgLine","Text","SvgText","buildTicksData","useCartesianChartContext","jsx","_jsx","jsxs","_jsxs","STROKE_WIDTH","TICK_MARK_SIZE","TICK_LABEL_OFFSET","DEFAULT_AXIS_HEIGHT","XAxis","gridLineStyle","position","showGrid","showLine","showTickMark","ticks","ticksProp","tickLabelFormatter","getXScale","getXAxisConfig","drawingArea","theme","xScale","xAxisConfig","ticksData","width","isTop","axisY","y","height","fontSize","typographies","body4","tickDirection","labelY","labelDy","gridStroke","colors","border","mutedSubtleTransparent","lineStroke","muted","textFill","text","children","map","tick","i","x1","y1","x2","y2","stroke","strokeWidth","strokeDasharray","undefined","value","x","strokeLinecap","dy","textAnchor","fill","fontFamily","fontFamilies","sans","label"],"sourceRoot":"../../../../../../src","sources":["lib/Components/Axis/XAxis/XAxis.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
import { useTheme } from '@ledgerhq/lumen-ui-rnative';
|
|
4
4
|
import { useMemo } from 'react';
|
|
5
5
|
import { G, Line as SvgLine, Text as SvgText } from 'react-native-svg';
|
|
6
|
-
import { buildTicksData
|
|
6
|
+
import { buildTicksData } from "../../../utils/ticks/ticks.js";
|
|
7
7
|
import { useCartesianChartContext } from "../../CartesianChart/context/index.js";
|
|
8
8
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
9
9
|
const STROKE_WIDTH = 1;
|
|
@@ -43,7 +43,7 @@ export const YAxis = ({
|
|
|
43
43
|
const lineStroke = theme.colors.border.muted;
|
|
44
44
|
const textFill = theme.colors.text.muted;
|
|
45
45
|
return /*#__PURE__*/_jsxs(G, {
|
|
46
|
-
children: [showGrid && ticksData.
|
|
46
|
+
children: [showGrid && ticksData.map((tick, i) => /*#__PURE__*/_jsx(SvgLine, {
|
|
47
47
|
x1: drawingArea.x,
|
|
48
48
|
y1: tick.position,
|
|
49
49
|
x2: drawingArea.x + drawingArea.width,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useTheme","useMemo","G","Line","SvgLine","Text","SvgText","buildTicksData","
|
|
1
|
+
{"version":3,"names":["useTheme","useMemo","G","Line","SvgLine","Text","SvgText","buildTicksData","useCartesianChartContext","jsx","_jsx","jsxs","_jsxs","STROKE_WIDTH","TICK_MARK_SIZE","TICK_LABEL_OFFSET","DEFAULT_AXIS_WIDTH","YAxis","position","showGrid","showLine","showTickMark","gridLineStyle","ticks","ticksProp","tickLabelFormatter","getYScale","getYAxisConfig","drawingArea","theme","yScale","yAxisConfig","ticksData","height","isStart","axisX","x","width","tickDirection","labelX","fontSize","typographies","body4","labelDy","gridStroke","colors","border","mutedSubtleTransparent","lineStroke","muted","textFill","text","children","map","tick","i","x1","y1","x2","y2","stroke","strokeWidth","strokeDasharray","undefined","value","y","strokeLinecap","dy","textAnchor","fill","fontFamily","fontFamilies","sans","label"],"sourceRoot":"../../../../../../src","sources":["lib/Components/Axis/YAxis/YAxis.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -8,7 +8,7 @@ import { ScrubberProvider } from "../Scrubber/ScrubberProvider.js";
|
|
|
8
8
|
import { CartesianChartProvider, useBuildChartContext } from "./context/index.js";
|
|
9
9
|
import { RevealClipDefs } from "./RevealClip/index.js";
|
|
10
10
|
import { DEFAULT_HEIGHT, OVERFLOW_BUFFER, OVERFLOW_OFFSET, resolveAxisPadding, resolveInset } from "./utils.js";
|
|
11
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
11
|
+
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
12
12
|
export function CartesianChart({
|
|
13
13
|
series,
|
|
14
14
|
xAxis,
|
|
@@ -18,6 +18,8 @@ export function CartesianChart({
|
|
|
18
18
|
inset,
|
|
19
19
|
axisPadding,
|
|
20
20
|
ariaLabel = 'Chart',
|
|
21
|
+
ariaBusy = false,
|
|
22
|
+
overlay,
|
|
21
23
|
children,
|
|
22
24
|
enableScrubbing = false,
|
|
23
25
|
onScrubberPositionChange,
|
|
@@ -54,37 +56,42 @@ export function CartesianChart({
|
|
|
54
56
|
onLayout: needsMeasurement ? handleLayout : undefined,
|
|
55
57
|
accessibilityRole: "image",
|
|
56
58
|
accessibilityLabel: ariaLabel,
|
|
59
|
+
accessibilityState: {
|
|
60
|
+
busy: ariaBusy
|
|
61
|
+
},
|
|
57
62
|
style: {
|
|
58
63
|
width: needsMeasurement ? undefined : resolvedWidth,
|
|
59
64
|
height,
|
|
60
65
|
overflow: 'visible'
|
|
61
66
|
},
|
|
62
|
-
children: resolvedWidth > 0 && /*#__PURE__*/
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
children: /*#__PURE__*/_jsx(
|
|
66
|
-
|
|
67
|
-
height: svgHeight,
|
|
68
|
-
enableScrubbing: enableScrubbing,
|
|
69
|
-
onScrubberPositionChange: onScrubberPositionChange,
|
|
70
|
-
style: OVERFLOW_OFFSET,
|
|
71
|
-
magnetRadius: magnetRadius,
|
|
72
|
-
children: /*#__PURE__*/_jsx(Svg, {
|
|
73
|
-
testID: "chart-svg",
|
|
67
|
+
children: resolvedWidth > 0 && /*#__PURE__*/_jsxs(_Fragment, {
|
|
68
|
+
children: [/*#__PURE__*/_jsx(CartesianChartProvider, {
|
|
69
|
+
value: contextValue,
|
|
70
|
+
children: /*#__PURE__*/_jsx(MagneticPointsProvider, {
|
|
71
|
+
children: /*#__PURE__*/_jsx(ScrubberProvider, {
|
|
74
72
|
width: svgWidth,
|
|
75
73
|
height: svgHeight,
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
74
|
+
enableScrubbing: enableScrubbing,
|
|
75
|
+
onScrubberPositionChange: onScrubberPositionChange,
|
|
76
|
+
style: OVERFLOW_OFFSET,
|
|
77
|
+
magnetRadius: magnetRadius,
|
|
78
|
+
children: /*#__PURE__*/_jsx(Svg, {
|
|
79
|
+
testID: "chart-svg",
|
|
80
|
+
width: svgWidth,
|
|
81
|
+
height: svgHeight,
|
|
82
|
+
style: {
|
|
83
|
+
overflow: 'visible'
|
|
84
|
+
},
|
|
85
|
+
children: /*#__PURE__*/_jsx(RevealClipDefs, {
|
|
86
|
+
drawingArea: contextValue.drawingArea,
|
|
87
|
+
series: series,
|
|
88
|
+
animate: animate,
|
|
89
|
+
children: children
|
|
90
|
+
})
|
|
84
91
|
})
|
|
85
92
|
})
|
|
86
93
|
})
|
|
87
|
-
})
|
|
94
|
+
}), overlay]
|
|
88
95
|
})
|
|
89
96
|
});
|
|
90
97
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useCallback","useMemo","useState","View","Svg","MagneticPointsProvider","ScrubberProvider","CartesianChartProvider","useBuildChartContext","RevealClipDefs","DEFAULT_HEIGHT","OVERFLOW_BUFFER","OVERFLOW_OFFSET","resolveAxisPadding","resolveInset","jsx","_jsx","CartesianChart","series","xAxis","yAxis","width","height","inset","axisPadding","ariaLabel","children","enableScrubbing","onScrubberPositionChange","animate","magnetRadius","measuredWidth","setMeasuredWidth","needsMeasurement","undefined","handleLayout","e","nativeEvent","layout","resolvedWidth","svgWidth","left","right","svgHeight","top","bottom","resolvedInset","resolvedAxisPadding","contextValue","testID","onLayout","accessibilityRole","accessibilityLabel","style","overflow","value","drawingArea"],"sourceRoot":"../../../../../src","sources":["lib/Components/CartesianChart/CartesianChart.tsx"],"mappings":";;AAAA,SAASA,WAAW,EAAEC,OAAO,EAAEC,QAAQ,QAAQ,OAAO;AACtD,SAASC,IAAI,QAAgC,cAAc;AAC3D,SAASC,GAAG,QAAQ,kBAAkB;AAEtC,SAASC,sBAAsB,QAAQ,gCAAuB;AAC9D,SAASC,gBAAgB,QAAQ,iCAA8B;AAC/D,SAASC,sBAAsB,EAAEC,oBAAoB,QAAQ,oBAAW;AACxE,SAASC,cAAc,QAAQ,uBAAc;AAE7C,SACEC,cAAc,EACdC,eAAe,EACfC,eAAe,EACfC,kBAAkB,EAClBC,YAAY,QACP,YAAS;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAEjB,OAAO,SAASC,cAAcA,CAAC;EAC7BC,MAAM;EACNC,KAAK;EACLC,KAAK;EACLC,KAAK;EACLC,MAAM,
|
|
1
|
+
{"version":3,"names":["useCallback","useMemo","useState","View","Svg","MagneticPointsProvider","ScrubberProvider","CartesianChartProvider","useBuildChartContext","RevealClipDefs","DEFAULT_HEIGHT","OVERFLOW_BUFFER","OVERFLOW_OFFSET","resolveAxisPadding","resolveInset","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","CartesianChart","series","xAxis","yAxis","width","height","inset","axisPadding","ariaLabel","ariaBusy","overlay","children","enableScrubbing","onScrubberPositionChange","animate","magnetRadius","measuredWidth","setMeasuredWidth","needsMeasurement","undefined","handleLayout","e","nativeEvent","layout","resolvedWidth","svgWidth","left","right","svgHeight","top","bottom","resolvedInset","resolvedAxisPadding","contextValue","testID","onLayout","accessibilityRole","accessibilityLabel","accessibilityState","busy","style","overflow","value","drawingArea"],"sourceRoot":"../../../../../src","sources":["lib/Components/CartesianChart/CartesianChart.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { Text, useStyleSheet } from '@ledgerhq/lumen-ui-rnative';
|
|
4
|
+
import { View } from 'react-native';
|
|
5
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
6
|
+
const useStyles = () => {
|
|
7
|
+
return useStyleSheet(t => ({
|
|
8
|
+
container: {
|
|
9
|
+
position: 'absolute',
|
|
10
|
+
top: 0,
|
|
11
|
+
left: 0,
|
|
12
|
+
right: 0,
|
|
13
|
+
bottom: 0,
|
|
14
|
+
alignItems: 'center',
|
|
15
|
+
justifyContent: 'center'
|
|
16
|
+
},
|
|
17
|
+
pill: {
|
|
18
|
+
backgroundColor: t.colors.bg.muted,
|
|
19
|
+
borderRadius: t.borderRadius.xs,
|
|
20
|
+
paddingHorizontal: t.spacings.s12,
|
|
21
|
+
paddingVertical: t.spacings.s6
|
|
22
|
+
},
|
|
23
|
+
label: {
|
|
24
|
+
color: t.colors.text.muted,
|
|
25
|
+
...t.typographies.body3
|
|
26
|
+
}
|
|
27
|
+
}), []);
|
|
28
|
+
};
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* Centered overlay label shown when a chart has no data (and is not loading).
|
|
32
|
+
* Rendered through the `overlay` slot of `CartesianChart` so it shares the
|
|
33
|
+
* chart's positioned container and aligns with the chart footprint. Shared
|
|
34
|
+
* across cartesian charts (LineChart, future BarChart).
|
|
35
|
+
*
|
|
36
|
+
* This is the lib's only non-SVG (View/Text) element, so unlike the chart
|
|
37
|
+
* visuals (which read raw theme colors for `react-native-svg`) it is styled with
|
|
38
|
+
* the design system's themed stylesheet, consistent with the components in
|
|
39
|
+
* `ui-rnative`.
|
|
40
|
+
*/
|
|
41
|
+
export function ChartEmptyLabel({
|
|
42
|
+
children
|
|
43
|
+
}) {
|
|
44
|
+
const styles = useStyles();
|
|
45
|
+
return /*#__PURE__*/_jsx(View, {
|
|
46
|
+
pointerEvents: "none",
|
|
47
|
+
accessibilityElementsHidden: true,
|
|
48
|
+
importantForAccessibility: "no-hide-descendants",
|
|
49
|
+
style: styles.container,
|
|
50
|
+
children: /*#__PURE__*/_jsx(View, {
|
|
51
|
+
style: styles.pill,
|
|
52
|
+
children: /*#__PURE__*/_jsx(Text, {
|
|
53
|
+
testID: "chart-empty-label",
|
|
54
|
+
style: styles.label,
|
|
55
|
+
accessible: false,
|
|
56
|
+
children: children
|
|
57
|
+
})
|
|
58
|
+
})
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
//# sourceMappingURL=ChartEmptyLabel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["Text","useStyleSheet","View","jsx","_jsx","useStyles","t","container","position","top","left","right","bottom","alignItems","justifyContent","pill","backgroundColor","colors","bg","muted","borderRadius","xs","paddingHorizontal","spacings","s12","paddingVertical","s6","label","color","text","typographies","body3","ChartEmptyLabel","children","styles","pointerEvents","accessibilityElementsHidden","importantForAccessibility","style","testID","accessible"],"sourceRoot":"../../../../../../src","sources":["lib/Components/CartesianChart/ChartEmptyLabel/ChartEmptyLabel.tsx"],"mappings":";;AAAA,SAASA,IAAI,EAAEC,aAAa,QAAQ,4BAA4B;AAEhE,SAASC,IAAI,QAAQ,cAAc;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAMpC,MAAMC,SAAS,GAAGA,CAAA,KAAM;EACtB,OAAOJ,aAAa,CACjBK,CAAC,KAAM;IACNC,SAAS,EAAE;MACTC,QAAQ,EAAE,UAAU;MACpBC,GAAG,EAAE,CAAC;MACNC,IAAI,EAAE,CAAC;MACPC,KAAK,EAAE,CAAC;MACRC,MAAM,EAAE,CAAC;MACTC,UAAU,EAAE,QAAQ;MACpBC,cAAc,EAAE;IAClB,CAAC;IACDC,IAAI,EAAE;MACJC,eAAe,EAAEV,CAAC,CAACW,MAAM,CAACC,EAAE,CAACC,KAAK;MAClCC,YAAY,EAAEd,CAAC,CAACc,YAAY,CAACC,EAAE;MAC/BC,iBAAiB,EAAEhB,CAAC,CAACiB,QAAQ,CAACC,GAAG;MACjCC,eAAe,EAAEnB,CAAC,CAACiB,QAAQ,CAACG;IAC9B,CAAC;IACDC,KAAK,EAAE;MACLC,KAAK,EAAEtB,CAAC,CAACW,MAAM,CAACY,IAAI,CAACV,KAAK;MAC1B,GAAGb,CAAC,CAACwB,YAAY,CAACC;IACpB;EACF,CAAC,CAAC,EACF,EACF,CAAC;AACH,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,eAAeA,CAAC;EAAEC;AAAyC,CAAC,EAAE;EAC5E,MAAMC,MAAM,GAAG7B,SAAS,CAAC,CAAC;EAE1B,oBACED,IAAA,CAACF,IAAI;IACHiC,aAAa,EAAC,MAAM;IACpBC,2BAA2B,EAAE,IAAK;IAClCC,yBAAyB,EAAC,qBAAqB;IAC/CC,KAAK,EAAEJ,MAAM,CAAC3B,SAAU;IAAA0B,QAAA,eAExB7B,IAAA,CAACF,IAAI;MAACoC,KAAK,EAAEJ,MAAM,CAACnB,IAAK;MAAAkB,QAAA,eACvB7B,IAAA,CAACJ,IAAI;QACHuC,MAAM,EAAC,mBAAmB;QAC1BD,KAAK,EAAEJ,MAAM,CAACP,KAAM;QACpBa,UAAU,EAAE,KAAM;QAAAP,QAAA,EAEjBA;MAAQ,CACL;IAAC,CACH;EAAC,CACH,CAAC;AAEX","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["ChartEmptyLabel"],"sourceRoot":"../../../../../../src","sources":["lib/Components/CartesianChart/ChartEmptyLabel/index.ts"],"mappings":";;AAAA,SAASA,eAAe,QAAQ,sBAAmB","ignoreList":[]}
|
|
@@ -4,9 +4,10 @@ import { RuntimeConstants } from '@ledgerhq/lumen-ui-rnative';
|
|
|
4
4
|
import { useMemo } from 'react';
|
|
5
5
|
import Animated from 'react-native-reanimated';
|
|
6
6
|
import { ClipPath, Defs, Rect } from 'react-native-svg';
|
|
7
|
+
import { useDataFingerprint } from "../hooks/useDataFingerprint.js";
|
|
8
|
+
import { useRevealClipAnimation } from "../hooks/useRevealClipAnimation.js";
|
|
7
9
|
import { OVERFLOW_BUFFER } from "../utils.js";
|
|
8
10
|
import { RevealClipContext } from "./context.js";
|
|
9
|
-
import { useComputeDataFingerprint, useRevealClipAnimation } from "./utils.js";
|
|
10
11
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
11
12
|
const DEFAULT_DURATION_IN_SECONDS = 0.8;
|
|
12
13
|
const AnimatedRect = Animated.createAnimatedComponent(Rect);
|
|
@@ -23,9 +24,7 @@ export function RevealClipDefs({
|
|
|
23
24
|
*/
|
|
24
25
|
const isDisabled = !animate || RuntimeConstants.isAndroid;
|
|
25
26
|
const durationMs = (transitions?.enter?.duration ?? DEFAULT_DURATION_IN_SECONDS) * 1000;
|
|
26
|
-
const dataFingerprint =
|
|
27
|
-
series
|
|
28
|
-
});
|
|
27
|
+
const dataFingerprint = useDataFingerprint(series);
|
|
29
28
|
const {
|
|
30
29
|
clipId,
|
|
31
30
|
animatedRectProps
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["RuntimeConstants","useMemo","Animated","ClipPath","Defs","Rect","
|
|
1
|
+
{"version":3,"names":["RuntimeConstants","useMemo","Animated","ClipPath","Defs","Rect","useDataFingerprint","useRevealClipAnimation","OVERFLOW_BUFFER","RevealClipContext","jsx","_jsx","jsxs","_jsxs","DEFAULT_DURATION_IN_SECONDS","AnimatedRect","createAnimatedComponent","RevealClipDefs","children","drawingArea","series","animate","transitions","isDisabled","isAndroid","durationMs","enter","duration","dataFingerprint","clipId","animatedRectProps","contextValue","clipPathAttr","Provider","value","id","x","left","y","top","height","bottom","animatedProps"],"sourceRoot":"../../../../../../src","sources":["lib/Components/CartesianChart/RevealClip/RevealClipDefs.tsx"],"mappings":";;AAAA,SAASA,gBAAgB,QAAQ,4BAA4B;AAC7D,SAASC,OAAO,QAAQ,OAAO;AAE/B,OAAOC,QAAQ,MAAM,yBAAyB;AAC9C,SAASC,QAAQ,EAAEC,IAAI,EAAEC,IAAI,QAAQ,kBAAkB;AAEvD,SAASC,kBAAkB,QAAQ,gCAA6B;AAChE,SAASC,sBAAsB,QAAQ,oCAAiC;AACxE,SAASC,eAAe,QAAQ,aAAU;AAE1C,SAASC,iBAAiB,QAAQ,cAAW;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAG9C,MAAMC,2BAA2B,GAAG,GAAG;AAEvC,MAAMC,YAAY,GAAGb,QAAQ,CAACc,uBAAuB,CAACX,IAAI,CAAC;AAE3D,OAAO,SAASY,cAAcA,CAAC;EAC7BC,QAAQ;EACRC,WAAW;EACXC,MAAM;EACNC,OAAO,GAAG,IAAI;EACdC;AACmB,CAAC,EAAE;EACtB;AACF;AACA;AACA;EACE,MAAMC,UAAU,GAAG,CAACF,OAAO,IAAIrB,gBAAgB,CAACwB,SAAS;EACzD,MAAMC,UAAU,GACd,CAACH,WAAW,EAAEI,KAAK,EAAEC,QAAQ,IAAIb,2BAA2B,IAAI,IAAI;EAEtE,MAAMc,eAAe,GAAGtB,kBAAkB,CAACc,MAAM,CAAC;EAClD,MAAM;IAAES,MAAM;IAAEC;EAAkB,CAAC,GAAGvB,sBAAsB,CAAC;IAC3DkB,UAAU;IACVN,WAAW;IACXS;EACF,CAAC,CAAC;EAEF,MAAMG,YAAY,GAAG9B,OAAO,CAC1B,OAAO;IAAE+B,YAAY,EAAE,QAAQH,MAAM;EAAI,CAAC,CAAC,EAC3C,CAACA,MAAM,CACT,CAAC;EAED,IAAIN,UAAU,EAAE;IACd,OAAOL,QAAQ;EACjB;EAEA,oBACEL,KAAA,CAACJ,iBAAiB,CAACwB,QAAQ;IAAuBC,KAAK,EAAEH,YAAa;IAAAb,QAAA,gBACpEP,IAAA,CAACP,IAAI;MAAAc,QAAA,eACHP,IAAA,CAACR,QAAQ;QAACgC,EAAE,EAAEN,MAAO;QAAAX,QAAA,eACnBP,IAAA,CAACI,YAAY;UACXqB,CAAC,EAAEjB,WAAW,CAACiB,CAAC,GAAG5B,eAAe,CAAC6B,IAAK;UACxCC,CAAC,EAAEnB,WAAW,CAACmB,CAAC,GAAG9B,eAAe,CAAC+B,GAAI;UACvCC,MAAM,EACJrB,WAAW,CAACqB,MAAM,GAAGhC,eAAe,CAAC+B,GAAG,GAAG/B,eAAe,CAACiC,MAC5D;UACDC,aAAa,EAAEZ;QAAkB,CAClC;MAAC,CACM;IAAC,CACP,CAAC,EACNZ,QAAQ;EAAA,GAbsBU,eAcL,CAAC;AAEjC","ignoreList":[]}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { useMemo } from 'react';
|
|
4
|
+
/**
|
|
5
|
+
* Stable signature of every series' data points, memoized on the `series`
|
|
6
|
+
* reference. Used to key the reveal-clip provider so the reveal animation only
|
|
7
|
+
* replays when the underlying data actually changes — not on unrelated
|
|
8
|
+
* re-renders such as scrubbing or hover.
|
|
9
|
+
*/
|
|
10
|
+
export const useDataFingerprint = series => {
|
|
11
|
+
return useMemo(() => series.map(s => s.data?.join(',') ?? '').join('|'), [series]);
|
|
12
|
+
};
|
|
13
|
+
//# sourceMappingURL=useDataFingerprint.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["useMemo","useDataFingerprint","series","map","s","data","join"],"sourceRoot":"../../../../../../src","sources":["lib/Components/CartesianChart/hooks/useDataFingerprint.ts"],"mappings":";;AAAA,SAASA,OAAO,QAAQ,OAAO;AAI/B;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,kBAAkB,GAAIC,MAAgB,IAAa;EAC9D,OAAOF,OAAO,CACZ,MAAME,MAAM,CAACC,GAAG,CAAEC,CAAC,IAAKA,CAAC,CAACC,IAAI,EAAEC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAACA,IAAI,CAAC,GAAG,CAAC,EAC1D,CAACJ,MAAM,CACT,CAAC;AACH,CAAC","ignoreList":[]}
|
|
@@ -24,9 +24,4 @@ export const useRevealClipAnimation = ({
|
|
|
24
24
|
animatedRectProps
|
|
25
25
|
};
|
|
26
26
|
};
|
|
27
|
-
|
|
28
|
-
series
|
|
29
|
-
}) => {
|
|
30
|
-
return series.map(s => s.data?.join(',') ?? '').join('|');
|
|
31
|
-
};
|
|
32
|
-
//# sourceMappingURL=utils.js.map
|
|
27
|
+
//# sourceMappingURL=useRevealClipAnimation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["useEffect","useId","useAnimatedProps","useSharedValue","withTiming","OVERFLOW_BUFFER","useRevealClipAnimation","durationMs","drawingArea","dataFingerprint","clipId","width","value","left","right","duration","animatedRectProps"],"sourceRoot":"../../../../../../src","sources":["lib/Components/CartesianChart/hooks/useRevealClipAnimation.ts"],"mappings":";;AAAA,SAASA,SAAS,EAAEC,KAAK,QAAQ,OAAO;AACxC,SACEC,gBAAgB,EAChBC,cAAc,EACdC,UAAU,QACL,yBAAyB;AAGhC,SAASC,eAAe,QAAQ,aAAU;AAa1C,OAAO,MAAMC,sBAAsB,GAAGA,CAAC;EACrCC,UAAU;EACVC,WAAW;EACXC;AACyB,CAAC,KAAgC;EAC1D,MAAMC,MAAM,GAAGT,KAAK,CAAC,CAAC;EACtB,MAAMU,KAAK,GAAGR,cAAc,CAAC,CAAC,CAAC;EAE/BH,SAAS,CAAC,MAAM;IACdW,KAAK,CAACC,KAAK,GAAG,CAAC;IACfD,KAAK,CAACC,KAAK,GAAGR,UAAU,CACtBI,WAAW,CAACG,KAAK,GAAGN,eAAe,CAACQ,IAAI,GAAGR,eAAe,CAACS,KAAK,EAChE;MAAEC,QAAQ,EAAER;IAAW,CACzB,CAAC;EACH,CAAC,EAAE,CAACC,WAAW,CAACG,KAAK,EAAEJ,UAAU,EAAEI,KAAK,EAAEF,eAAe,CAAC,CAAC;EAE3D,MAAMO,iBAAiB,GAAGd,gBAAgB,CAAC,OAAO;IAChDS,KAAK,EAAEA,KAAK,CAACC;EACf,CAAC,CAAC,CAAC;EAEH,OAAO;IAAEF,MAAM;IAAEM;EAAkB,CAAC;AACtC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { useEffect } from 'react';
|
|
4
|
+
import { cancelAnimation, Easing, useAnimatedProps, useReducedMotion, useSharedValue, withRepeat, withTiming } from 'react-native-reanimated';
|
|
5
|
+
const HALF_PULSE_DURATION_IN_MS = 1000;
|
|
6
|
+
const MIN_OPACITY = 0.5;
|
|
7
|
+
/**
|
|
8
|
+
* Self-contained shimmer (opacity pulse) for SVG content, the RN counterpart of
|
|
9
|
+
* the web's CSS-keyframe shimmer. Shared by the initial loading placeholder and
|
|
10
|
+
* the transition-loading line. Honors the user's reduced-motion preference by
|
|
11
|
+
* keeping the content fully opaque.
|
|
12
|
+
*/
|
|
13
|
+
export const useShimmerAnimation = (animate = true) => {
|
|
14
|
+
const opacity = useSharedValue(1);
|
|
15
|
+
const reducedMotion = useReducedMotion();
|
|
16
|
+
useEffect(() => {
|
|
17
|
+
if (animate && !reducedMotion) {
|
|
18
|
+
opacity.value = withRepeat(withTiming(MIN_OPACITY, {
|
|
19
|
+
duration: HALF_PULSE_DURATION_IN_MS,
|
|
20
|
+
easing: Easing.inOut(Easing.ease)
|
|
21
|
+
}), -1, true);
|
|
22
|
+
} else {
|
|
23
|
+
cancelAnimation(opacity);
|
|
24
|
+
opacity.value = 1;
|
|
25
|
+
}
|
|
26
|
+
return () => {
|
|
27
|
+
cancelAnimation(opacity);
|
|
28
|
+
};
|
|
29
|
+
}, [animate, reducedMotion, opacity]);
|
|
30
|
+
const animatedProps = useAnimatedProps(() => ({
|
|
31
|
+
opacity: opacity.value
|
|
32
|
+
}));
|
|
33
|
+
return {
|
|
34
|
+
animatedProps
|
|
35
|
+
};
|
|
36
|
+
};
|
|
37
|
+
//# sourceMappingURL=useShimmerAnimation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["useEffect","cancelAnimation","Easing","useAnimatedProps","useReducedMotion","useSharedValue","withRepeat","withTiming","HALF_PULSE_DURATION_IN_MS","MIN_OPACITY","useShimmerAnimation","animate","opacity","reducedMotion","value","duration","easing","inOut","ease","animatedProps"],"sourceRoot":"../../../../../../src","sources":["lib/Components/CartesianChart/hooks/useShimmerAnimation.ts"],"mappings":";;AAAA,SAASA,SAAS,QAAQ,OAAO;AACjC,SACEC,eAAe,EACfC,MAAM,EACNC,gBAAgB,EAChBC,gBAAgB,EAChBC,cAAc,EACdC,UAAU,EACVC,UAAU,QACL,yBAAyB;AAEhC,MAAMC,yBAAyB,GAAG,IAAI;AACtC,MAAMC,WAAW,GAAG,GAAG;AAMvB;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,mBAAmB,GAAGA,CAACC,OAAO,GAAG,IAAI,KAA6B;EAC7E,MAAMC,OAAO,GAAGP,cAAc,CAAC,CAAC,CAAC;EACjC,MAAMQ,aAAa,GAAGT,gBAAgB,CAAC,CAAC;EAExCJ,SAAS,CAAC,MAAM;IACd,IAAIW,OAAO,IAAI,CAACE,aAAa,EAAE;MAC7BD,OAAO,CAACE,KAAK,GAAGR,UAAU,CACxBC,UAAU,CAACE,WAAW,EAAE;QACtBM,QAAQ,EAAEP,yBAAyB;QACnCQ,MAAM,EAAEd,MAAM,CAACe,KAAK,CAACf,MAAM,CAACgB,IAAI;MAClC,CAAC,CAAC,EACF,CAAC,CAAC,EACF,IACF,CAAC;IACH,CAAC,MAAM;MACLjB,eAAe,CAACW,OAAO,CAAC;MACxBA,OAAO,CAACE,KAAK,GAAG,CAAC;IACnB;IAEA,OAAO,MAAM;MACXb,eAAe,CAACW,OAAO,CAAC;IAC1B,CAAC;EACH,CAAC,EAAE,CAACD,OAAO,EAAEE,aAAa,EAAED,OAAO,CAAC,CAAC;EAErC,MAAMO,aAAa,GAAGhB,gBAAgB,CAAC,OAAO;IAAES,OAAO,EAAEA,OAAO,CAACE;EAAM,CAAC,CAAC,CAAC;EAE1E,OAAO;IAAEK;EAAc,CAAC;AAC1B,CAAC","ignoreList":[]}
|
|
@@ -1,19 +1,20 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
import { useTheme } from '@ledgerhq/lumen-ui-rnative';
|
|
3
4
|
import { useId, useMemo } from 'react';
|
|
4
5
|
import { Defs, G, LinearGradient, Path, Stop } from 'react-native-svg';
|
|
5
6
|
import { isNumericScale } from "../../utils/scales/scales.js";
|
|
6
7
|
import { useCartesianChartContext } from "../CartesianChart/context/index.js";
|
|
7
8
|
import { useRevealClip } from "../CartesianChart/RevealClip/index.js";
|
|
9
|
+
import { LINE_AREA_GRADIENT_OPACITY, LINE_STROKE_WIDTH } from "./constants.js";
|
|
8
10
|
import { buildAreaPath, buildLinePath, toScaledPoints } from "./utils.js";
|
|
9
11
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
10
|
-
const STROKE_WIDTH = 2;
|
|
11
|
-
const AREA_GRADIENT_OPACITY = 0.2;
|
|
12
12
|
export const Line = ({
|
|
13
13
|
seriesId,
|
|
14
14
|
stroke,
|
|
15
15
|
showArea = false,
|
|
16
|
-
areaType: _areaType = 'gradient'
|
|
16
|
+
areaType: _areaType = 'gradient',
|
|
17
|
+
curve
|
|
17
18
|
}) => {
|
|
18
19
|
const {
|
|
19
20
|
getXScale,
|
|
@@ -26,12 +27,16 @@ export const Line = ({
|
|
|
26
27
|
const xScale = getXScale();
|
|
27
28
|
const yScale = getYScale();
|
|
28
29
|
const xAxisConfig = getXAxisConfig();
|
|
30
|
+
const {
|
|
31
|
+
theme
|
|
32
|
+
} = useTheme();
|
|
29
33
|
const gradientId = useId();
|
|
30
34
|
const seriesData = seriesMap.get(seriesId);
|
|
31
|
-
const resolvedStroke = stroke ?? seriesData?.stroke;
|
|
35
|
+
const resolvedStroke = stroke ?? seriesData?.stroke ?? theme.colors.border.muted;
|
|
36
|
+
const resolvedCurve = curve ?? seriesData?.curve;
|
|
32
37
|
const points = useMemo(() => seriesData?.data && xScale && yScale && isNumericScale(yScale) ? toScaledPoints(seriesData.data, xScale, yScale, xAxisConfig?.data) : null, [seriesData, xScale, yScale, xAxisConfig]);
|
|
33
|
-
const linePath = useMemo(() => points ? buildLinePath(points) : null, [points]);
|
|
34
|
-
const areaPath = useMemo(() => showArea && points && drawingArea ? buildAreaPath(points, drawingArea) : null, [showArea, points, drawingArea]);
|
|
38
|
+
const linePath = useMemo(() => points ? buildLinePath(points, resolvedCurve) : null, [points, resolvedCurve]);
|
|
39
|
+
const areaPath = useMemo(() => showArea && points && drawingArea ? buildAreaPath(points, drawingArea, resolvedCurve) : null, [showArea, points, drawingArea, resolvedCurve]);
|
|
35
40
|
if (!linePath) {
|
|
36
41
|
return null;
|
|
37
42
|
}
|
|
@@ -48,7 +53,7 @@ export const Line = ({
|
|
|
48
53
|
children: [/*#__PURE__*/_jsx(Stop, {
|
|
49
54
|
offset: "0%",
|
|
50
55
|
stopColor: resolvedStroke,
|
|
51
|
-
stopOpacity:
|
|
56
|
+
stopOpacity: LINE_AREA_GRADIENT_OPACITY
|
|
52
57
|
}), /*#__PURE__*/_jsx(Stop, {
|
|
53
58
|
offset: "100%",
|
|
54
59
|
stopColor: resolvedStroke,
|
|
@@ -66,7 +71,7 @@ export const Line = ({
|
|
|
66
71
|
d: linePath,
|
|
67
72
|
fill: "none",
|
|
68
73
|
stroke: resolvedStroke,
|
|
69
|
-
strokeWidth:
|
|
74
|
+
strokeWidth: LINE_STROKE_WIDTH,
|
|
70
75
|
strokeLinecap: "round",
|
|
71
76
|
strokeLinejoin: "round"
|
|
72
77
|
})]
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useId","useMemo","Defs","G","LinearGradient","Path","Stop","isNumericScale","useCartesianChartContext","useRevealClip","buildAreaPath","buildLinePath","toScaledPoints","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","
|
|
1
|
+
{"version":3,"names":["useTheme","useId","useMemo","Defs","G","LinearGradient","Path","Stop","isNumericScale","useCartesianChartContext","useRevealClip","LINE_AREA_GRADIENT_OPACITY","LINE_STROKE_WIDTH","buildAreaPath","buildLinePath","toScaledPoints","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","Line","seriesId","stroke","showArea","areaType","_areaType","curve","getXScale","getYScale","getXAxisConfig","drawingArea","seriesMap","clipPath","xScale","yScale","xAxisConfig","theme","gradientId","seriesData","get","resolvedStroke","colors","border","muted","resolvedCurve","points","data","linePath","areaPath","children","id","x1","y1","x2","y2","offset","stopColor","stopOpacity","testID","d","fill","strokeWidth","strokeLinecap","strokeLinejoin"],"sourceRoot":"../../../../../src","sources":["lib/Components/Line/Line.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["LINE_STROKE_WIDTH","LINE_AREA_GRADIENT_OPACITY"],"sourceRoot":"../../../../../src","sources":["lib/Components/Line/constants.ts"],"mappings":";;AAAA,OAAO,MAAMA,iBAAiB,GAAG,CAAC;AAClC,OAAO,MAAMC,0BAA0B,GAAG,IAAI","ignoreList":[]}
|
|
@@ -1,9 +1,26 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import { area, curveBumpX, line } from 'd3-shape';
|
|
3
|
+
import { area, curveBumpX, curveLinear, curveMonotoneX, curveNatural, curveStep, curveStepAfter, curveStepBefore, line } from 'd3-shape';
|
|
4
|
+
import { isFiniteNumber } from "../../utils/numbers.js";
|
|
4
5
|
import { isCategoricalScale } from "../../utils/scales/scales.js";
|
|
5
6
|
/**
|
|
6
|
-
*
|
|
7
|
+
* Maps the public `CurveType` values to their d3-shape curve factories.
|
|
8
|
+
*/
|
|
9
|
+
const CURVE_FACTORIES = {
|
|
10
|
+
bump: curveBumpX,
|
|
11
|
+
linear: curveLinear,
|
|
12
|
+
monotone: curveMonotoneX,
|
|
13
|
+
natural: curveNatural,
|
|
14
|
+
step: curveStep,
|
|
15
|
+
stepAfter: curveStepAfter,
|
|
16
|
+
stepBefore: curveStepBefore
|
|
17
|
+
};
|
|
18
|
+
const DEFAULT_CURVE = 'bump';
|
|
19
|
+
const getCurveFactory = (curve = DEFAULT_CURVE) => CURVE_FACTORIES[curve] ?? CURVE_FACTORIES[DEFAULT_CURVE];
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* Project series data into scaled [x, y] pixel coordinates, skipping any
|
|
23
|
+
* non-finite entries.
|
|
7
24
|
*
|
|
8
25
|
* When `xData` contains numeric values, those values are fed into the scale
|
|
9
26
|
* instead of the array index so the points honour a numeric X domain.
|
|
@@ -17,7 +34,7 @@ export const toScaledPoints = (data, xScale, yScale, xData) => {
|
|
|
17
34
|
const limit = xData ? Math.min(data.length, xData.length) : data.length;
|
|
18
35
|
for (let i = 0; i < limit; i++) {
|
|
19
36
|
const value = data[i];
|
|
20
|
-
if (value
|
|
37
|
+
if (!isFiniteNumber(value)) continue;
|
|
21
38
|
const xInput = xData && typeof xData[i] === 'number' ? xData[i] : i;
|
|
22
39
|
const x = isCategoricalScale(xScale) ? (xScale(xInput) ?? 0) + xScale.bandwidth() / 2 : xScale(xInput);
|
|
23
40
|
const y = yScale(value);
|
|
@@ -29,15 +46,15 @@ export const toScaledPoints = (data, xScale, yScale, xData) => {
|
|
|
29
46
|
/**
|
|
30
47
|
* Build the SVG `d` attribute for the line stroke.
|
|
31
48
|
*/
|
|
32
|
-
export const buildLinePath = points => {
|
|
33
|
-
return line().x(d => d[0]).y(d => d[1]).curve(
|
|
49
|
+
export const buildLinePath = (points, curve) => {
|
|
50
|
+
return line().x(d => d[0]).y(d => d[1]).curve(getCurveFactory(curve))(points) ?? null;
|
|
34
51
|
};
|
|
35
52
|
|
|
36
53
|
/**
|
|
37
54
|
* Build the SVG `d` attribute for the filled area beneath the line.
|
|
38
55
|
*/
|
|
39
|
-
export const buildAreaPath = (points, drawingArea) => {
|
|
56
|
+
export const buildAreaPath = (points, drawingArea, curve) => {
|
|
40
57
|
const yBottom = drawingArea.y + drawingArea.height;
|
|
41
|
-
return area().x(d => d[0]).y0(yBottom).y1(d => d[1]).curve(
|
|
58
|
+
return area().x(d => d[0]).y0(yBottom).y1(d => d[1]).curve(getCurveFactory(curve))(points) ?? null;
|
|
42
59
|
};
|
|
43
60
|
//# sourceMappingURL=utils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["area","curveBumpX","line","isCategoricalScale","toScaledPoints","data","xScale","yScale","xData","pts","limit","Math","min","length","i","value","xInput","x","bandwidth","y","push","buildLinePath","points","d","
|
|
1
|
+
{"version":3,"names":["area","curveBumpX","curveLinear","curveMonotoneX","curveNatural","curveStep","curveStepAfter","curveStepBefore","line","isFiniteNumber","isCategoricalScale","CURVE_FACTORIES","bump","linear","monotone","natural","step","stepAfter","stepBefore","DEFAULT_CURVE","getCurveFactory","curve","toScaledPoints","data","xScale","yScale","xData","pts","limit","Math","min","length","i","value","xInput","x","bandwidth","y","push","buildLinePath","points","d","buildAreaPath","drawingArea","yBottom","height","y0","y1"],"sourceRoot":"../../../../../src","sources":["lib/Components/Line/utils.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
import { describe, expect, it } from '@jest/globals';
|
|
4
4
|
import { getCategoricalScale, getNumericScale } from "../../utils/scales/scales.js";
|
|
5
|
-
import { toScaledPoints } from "./utils.js";
|
|
5
|
+
import { buildLinePath, toScaledPoints } from "./utils.js";
|
|
6
6
|
const xScale = getNumericScale({
|
|
7
7
|
scaleType: 'linear',
|
|
8
8
|
domain: {
|
|
@@ -85,4 +85,30 @@ describe('toScaledPoints', () => {
|
|
|
85
85
|
expect(toScaledPoints(data, xScale, yScale, xData)).toBeNull();
|
|
86
86
|
});
|
|
87
87
|
});
|
|
88
|
+
describe('buildLinePath', () => {
|
|
89
|
+
const points = [[0, 100], [50, 20], [100, 60]];
|
|
90
|
+
it('defaults to the bump curve (cubic beziers)', () => {
|
|
91
|
+
const path = buildLinePath(points);
|
|
92
|
+
expect(path).not.toBeNull();
|
|
93
|
+
expect(path).toContain('C');
|
|
94
|
+
});
|
|
95
|
+
it('draws straight segments for the linear curve', () => {
|
|
96
|
+
const path = buildLinePath(points, 'linear');
|
|
97
|
+
expect(path).toBe('M0,100L50,20L100,60');
|
|
98
|
+
});
|
|
99
|
+
it('uses cubic beziers for smooth curves', () => {
|
|
100
|
+
expect(buildLinePath(points, 'natural')).toContain('C');
|
|
101
|
+
expect(buildLinePath(points, 'monotone')).toContain('C');
|
|
102
|
+
});
|
|
103
|
+
it('draws orthogonal segments for the step curve', () => {
|
|
104
|
+
const path = buildLinePath(points, 'step');
|
|
105
|
+
expect(path).not.toBeNull();
|
|
106
|
+
expect(path).not.toContain('C');
|
|
107
|
+
expect(path).toBe('M0,100L25,100L25,20L75,20L75,60L100,60');
|
|
108
|
+
});
|
|
109
|
+
it('falls back to the default curve for unknown values', () => {
|
|
110
|
+
const path = buildLinePath(points, 'unknown');
|
|
111
|
+
expect(path).toBe(buildLinePath(points));
|
|
112
|
+
});
|
|
113
|
+
});
|
|
88
114
|
//# sourceMappingURL=utils.test.js.map
|