@coinbase/cds-web-visualization 3.4.0-beta.24 → 3.4.0-beta.26
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/CHANGELOG.md +14 -0
- package/dts/chart/Path.d.ts +4 -2
- package/dts/chart/Path.d.ts.map +1 -1
- package/dts/chart/PeriodSelector.d.ts +12 -2
- package/dts/chart/PeriodSelector.d.ts.map +1 -1
- package/dts/chart/bar/Bar.d.ts +18 -54
- package/dts/chart/bar/Bar.d.ts.map +1 -1
- package/dts/chart/bar/BarPlot.d.ts.map +1 -1
- package/dts/chart/bar/BarStack.d.ts +4 -4
- package/dts/chart/bar/BarStack.d.ts.map +1 -1
- package/dts/chart/bar/DefaultBar.d.ts.map +1 -1
- package/dts/chart/bar/DefaultBarStack.d.ts.map +1 -1
- package/dts/chart/point/Point.d.ts +2 -1
- package/dts/chart/point/Point.d.ts.map +1 -1
- package/dts/chart/scrubber/Scrubber.d.ts +4 -2
- package/dts/chart/scrubber/Scrubber.d.ts.map +1 -1
- package/dts/chart/utils/bar.d.ts +153 -0
- package/dts/chart/utils/bar.d.ts.map +1 -1
- package/dts/chart/utils/chart.d.ts +2 -1
- package/dts/chart/utils/chart.d.ts.map +1 -1
- package/dts/chart/utils/path.d.ts.map +1 -1
- package/dts/sparkline/Sparkline.d.ts +2 -1
- package/dts/sparkline/Sparkline.d.ts.map +1 -1
- package/dts/sparkline/SparklineArea.d.ts +2 -1
- package/dts/sparkline/SparklineArea.d.ts.map +1 -1
- package/dts/sparkline/SparklineGradient.d.ts +2 -1
- package/dts/sparkline/SparklineGradient.d.ts.map +1 -1
- package/dts/sparkline/sparkline-interactive/SparklineInteractive.d.ts +2 -1
- package/dts/sparkline/sparkline-interactive/SparklineInteractive.d.ts.map +1 -1
- package/esm/chart/Path.js +2 -1
- package/esm/chart/bar/Bar.js +4 -6
- package/esm/chart/bar/BarChart.js +7 -7
- package/esm/chart/bar/BarPlot.js +17 -27
- package/esm/chart/bar/BarStack.js +90 -295
- package/esm/chart/bar/DefaultBar.js +13 -19
- package/esm/chart/bar/DefaultBarStack.js +12 -19
- package/esm/chart/utils/bar.js +813 -0
- package/esm/chart/utils/chart.js +2 -1
- package/esm/chart/utils/path.js +5 -13
- package/esm/sparkline/Sparkline.js +2 -1
- package/esm/sparkline/SparklineArea.js +2 -1
- package/esm/sparkline/SparklineGradient.js +2 -1
- package/esm/sparkline/sparkline-interactive/SparklineInteractive.js +2 -1
- package/package.json +5 -5
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const _excluded = ["x", "y", "width", "height", "borderRadius", "roundTop", "roundBottom", "origin", "d", "fill", "fillOpacity", "dataX", "dataY", "seriesId", "transitions", "transition"];
|
|
1
|
+
const _excluded = ["x", "y", "width", "height", "borderRadius", "roundTop", "roundBottom", "origin", "d", "fill", "fillOpacity", "dataX", "dataY", "seriesId", "minSize", "transitions", "transition"];
|
|
2
2
|
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
3
3
|
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
4
4
|
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
@@ -10,6 +10,7 @@ import React, { memo, useMemo } from 'react';
|
|
|
10
10
|
import { useCartesianChartContext } from '../ChartProvider';
|
|
11
11
|
import { Path } from '../Path';
|
|
12
12
|
import { defaultBarEnterTransition, defaultTransition, getBarPath, getTransition, withStaggerDelayTransition } from '../utils';
|
|
13
|
+
import { getNormalizedStagger } from '../utils/bar';
|
|
13
14
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
14
15
|
/**
|
|
15
16
|
* Default bar component that renders a solid bar with animation.
|
|
@@ -30,6 +31,7 @@ export const DefaultBar = /*#__PURE__*/memo(_ref => {
|
|
|
30
31
|
dataX,
|
|
31
32
|
dataY,
|
|
32
33
|
seriesId,
|
|
34
|
+
minSize = 1,
|
|
33
35
|
transitions,
|
|
34
36
|
transition
|
|
35
37
|
} = _ref,
|
|
@@ -39,27 +41,19 @@ export const DefaultBar = /*#__PURE__*/memo(_ref => {
|
|
|
39
41
|
drawingArea,
|
|
40
42
|
layout
|
|
41
43
|
} = useCartesianChartContext();
|
|
42
|
-
|
|
43
|
-
// For vertical layout, stagger by x (category axis). For horizontal, stagger by y (category axis).
|
|
44
|
-
const normalizedStagger = useMemo(() => {
|
|
45
|
-
const barsGrowVertically = layout !== 'horizontal';
|
|
46
|
-
if (barsGrowVertically) {
|
|
47
|
-
return drawingArea.width > 0 ? (x - drawingArea.x) / drawingArea.width : 0;
|
|
48
|
-
}
|
|
49
|
-
return drawingArea.height > 0 ? (y - drawingArea.y) / drawingArea.height : 0;
|
|
50
|
-
}, [layout, x, y, drawingArea.x, drawingArea.y, drawingArea.width, drawingArea.height]);
|
|
44
|
+
const normalizedStagger = useMemo(() => getNormalizedStagger(layout, x, y, drawingArea), [layout, x, y, drawingArea]);
|
|
51
45
|
const enterTransition = useMemo(() => withStaggerDelayTransition(getTransition(transitions === null || transitions === void 0 ? void 0 : transitions.enter, animate, defaultBarEnterTransition), normalizedStagger), [transitions === null || transitions === void 0 ? void 0 : transitions.enter, animate, normalizedStagger]);
|
|
52
46
|
const updateTransition = useMemo(() => withStaggerDelayTransition(getTransition((transitions === null || transitions === void 0 ? void 0 : transitions.update) !== undefined ? transitions.update : transition, animate, defaultTransition), normalizedStagger), [transitions === null || transitions === void 0 ? void 0 : transitions.update, transition, animate, normalizedStagger]);
|
|
53
47
|
const initialPath = useMemo(() => {
|
|
54
|
-
if (!animate) return
|
|
55
|
-
const
|
|
56
|
-
const
|
|
57
|
-
const initialX =
|
|
58
|
-
const initialY =
|
|
59
|
-
const initialWidth =
|
|
60
|
-
const initialHeight =
|
|
61
|
-
return getBarPath(initialX, initialY, initialWidth, initialHeight, borderRadius
|
|
62
|
-
}, [animate, layout, x, y, origin, width, height, borderRadius, roundTop, roundBottom]);
|
|
48
|
+
if (!animate) return;
|
|
49
|
+
const isHorizontalLayout = layout === 'horizontal';
|
|
50
|
+
const baseline = origin !== null && origin !== void 0 ? origin : isHorizontalLayout ? x : y + height;
|
|
51
|
+
const initialX = isHorizontalLayout ? baseline : x;
|
|
52
|
+
const initialY = isHorizontalLayout ? y : baseline;
|
|
53
|
+
const initialWidth = isHorizontalLayout ? minSize : width;
|
|
54
|
+
const initialHeight = isHorizontalLayout ? height : minSize;
|
|
55
|
+
return getBarPath(initialX, initialY, initialWidth, initialHeight, borderRadius, !!roundTop, !!roundBottom, layout);
|
|
56
|
+
}, [animate, layout, x, y, origin, width, height, borderRadius, roundTop, roundBottom, minSize]);
|
|
63
57
|
return /*#__PURE__*/_jsx(Path, _objectSpread(_objectSpread({}, props), {}, {
|
|
64
58
|
animate: animate,
|
|
65
59
|
clipRect: null,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { memo, useId, useMemo } from 'react';
|
|
2
2
|
import { m as motion } from 'framer-motion';
|
|
3
3
|
import { useCartesianChartContext } from '../ChartProvider';
|
|
4
|
-
import { defaultBarEnterTransition, defaultTransition, getBarPath, getTransition, withStaggerDelayTransition } from '../utils';
|
|
4
|
+
import { defaultBarEnterTransition, defaultTransition, getBarPath, getNormalizedStagger, getStackInitialClipRect, getTransition, withStaggerDelayTransition } from '../utils';
|
|
5
5
|
import { usePathTransition } from '../utils/transition';
|
|
6
6
|
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
7
7
|
/**
|
|
@@ -19,7 +19,7 @@ export const DefaultBarStack = /*#__PURE__*/memo(_ref => {
|
|
|
19
19
|
borderRadius = 4,
|
|
20
20
|
roundTop = true,
|
|
21
21
|
roundBottom = true,
|
|
22
|
-
|
|
22
|
+
origin,
|
|
23
23
|
transitions,
|
|
24
24
|
transition
|
|
25
25
|
} = _ref;
|
|
@@ -29,29 +29,22 @@ export const DefaultBarStack = /*#__PURE__*/memo(_ref => {
|
|
|
29
29
|
layout
|
|
30
30
|
} = useCartesianChartContext();
|
|
31
31
|
const clipPathId = useId();
|
|
32
|
-
|
|
33
|
-
// For vertical layout, stagger by x (category axis). For horizontal, stagger by y (category axis).
|
|
34
|
-
const normalizedStagger = useMemo(() => {
|
|
35
|
-
const barsGrowVertically = layout !== 'horizontal';
|
|
36
|
-
if (barsGrowVertically) {
|
|
37
|
-
return drawingArea.width > 0 ? (x - drawingArea.x) / drawingArea.width : 0;
|
|
38
|
-
}
|
|
39
|
-
return drawingArea.height > 0 ? (y - drawingArea.y) / drawingArea.height : 0;
|
|
40
|
-
}, [layout, x, y, drawingArea.x, drawingArea.y, drawingArea.width, drawingArea.height]);
|
|
32
|
+
const normalizedStagger = useMemo(() => getNormalizedStagger(layout, x, y, drawingArea), [layout, x, y, drawingArea]);
|
|
41
33
|
const enterTransition = useMemo(() => withStaggerDelayTransition(getTransition(transitions === null || transitions === void 0 ? void 0 : transitions.enter, animate, defaultBarEnterTransition), normalizedStagger), [transitions === null || transitions === void 0 ? void 0 : transitions.enter, animate, normalizedStagger]);
|
|
42
34
|
const updateTransition = useMemo(() => withStaggerDelayTransition(getTransition((transitions === null || transitions === void 0 ? void 0 : transitions.update) !== undefined ? transitions.update : transition, animate, defaultTransition), normalizedStagger), [transitions === null || transitions === void 0 ? void 0 : transitions.update, transition, animate, normalizedStagger]);
|
|
43
35
|
const clipPathData = useMemo(() => {
|
|
44
36
|
return getBarPath(x, y, width, height, borderRadius, roundTop, roundBottom, layout);
|
|
45
37
|
}, [x, y, width, height, borderRadius, roundTop, roundBottom, layout]);
|
|
46
38
|
const initialClipPathData = useMemo(() => {
|
|
47
|
-
if (!animate) return
|
|
48
|
-
const
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
39
|
+
if (!animate) return;
|
|
40
|
+
const initialClipRect = getStackInitialClipRect({
|
|
41
|
+
x,
|
|
42
|
+
y,
|
|
43
|
+
width,
|
|
44
|
+
height
|
|
45
|
+
}, layout, origin);
|
|
46
|
+
return getBarPath(initialClipRect.x, initialClipRect.y, initialClipRect.width, initialClipRect.height, borderRadius, roundTop, roundBottom, layout);
|
|
47
|
+
}, [animate, layout, x, y, height, width, borderRadius, roundTop, roundBottom, origin]);
|
|
55
48
|
const animatedClipPath = usePathTransition({
|
|
56
49
|
currentPath: clipPathData,
|
|
57
50
|
initialPath: initialClipPathData,
|