From 41cc3b0df28a83389a9c7c196886f5210f419a7e Mon Sep 17 00:00:00 2001 From: shield2018 <> Date: Mon, 10 Apr 2023 15:35:06 +0800 Subject: [PATCH 1/3] fix(interval): fix interval render funnel (#4868) --- .../static/alphabetIntervalFunnel.png | Bin 0 -> 10113 bytes .../static/alphabetIntervalPyramid.png | Bin 0 -> 14162 bytes .../plots/static/alphabet-interval-funnel.ts | 38 ++++++++++++++++++ .../plots/static/alphabet-interval-pyramid.ts | 38 ++++++++++++++++++ __tests__/plots/static/index.ts | 2 + src/shape/interval/funnel.ts | 33 ++++++++++----- 6 files changed, 100 insertions(+), 11 deletions(-) create mode 100644 __tests__/integration/snapshots/static/alphabetIntervalFunnel.png create mode 100644 __tests__/integration/snapshots/static/alphabetIntervalPyramid.png create mode 100644 __tests__/plots/static/alphabet-interval-funnel.ts create mode 100644 __tests__/plots/static/alphabet-interval-pyramid.ts diff --git a/__tests__/integration/snapshots/static/alphabetIntervalFunnel.png b/__tests__/integration/snapshots/static/alphabetIntervalFunnel.png new file mode 100644 index 0000000000000000000000000000000000000000..09920b70bc35dde87f49c7cadadf08f5ca12314b GIT binary patch literal 10113 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 literal 0 HcmV?d00001 diff --git a/__tests__/integration/snapshots/static/alphabetIntervalPyramid.png b/__tests__/integration/snapshots/static/alphabetIntervalPyramid.png new file mode 100644 index 0000000000000000000000000000000000000000..965466a7a939485a8045f07b37f8dd5d29adb043 GIT binary patch literal 14162 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 = (options) => { const { adjustPoints = getFunnelPoints, ...style } = options; return (points, value, coordinate, theme, point2d, ...args) => { - const { index } = value; + const { index, mark, shape, defaultShape } = value; + const { defaultColor, ...defaults } = getShapeTheme( + theme, + mark, + shape, + defaultShape, + ); const nextPoints = point2d[index + 1]; const funnelPoints = adjustPoints(points, nextPoints, coordinate); + const tpShape = !!isTranspose(coordinate); - return Color({ colorAttribute: 'fill', ...style })( - funnelPoints, - value, - coordinate, - theme, - point2d, - ...args, - ); + const [p0, p1, p2, p3] = tpShape ? reorder(funnelPoints) : funnelPoints; + const { color = defaultColor, opacity } = value; + const b = line().curve(curveLinearClosed)([p0, p1, p2, p3]); + return select(new Path({})) + .call(applyStyle, defaults) + .style('path', b) + .style('fill', color) + .style('fillOpacity', opacity) + .call(applyStyle, style) + .node(); }; }; Funnel.props = { - ...Color.props, defaultMarker: 'funnel', }; From 01981045ba1c5689c397294bcd31a33686d1bc72 Mon Sep 17 00:00:00 2001 From: shield2018 <> Date: Mon, 10 Apr 2023 16:08:57 +0800 Subject: [PATCH 2/3] fix(interval): fix funnel and pyramid props --- src/shape/interval/funnel.ts | 2 +- src/shape/interval/pyramid.ts | 2 -- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/src/shape/interval/funnel.ts b/src/shape/interval/funnel.ts index 0f690ac014..260e228049 100644 --- a/src/shape/interval/funnel.ts +++ b/src/shape/interval/funnel.ts @@ -66,5 +66,5 @@ export const Funnel: SC = (options) => { }; Funnel.props = { - defaultMarker: 'funnel', + defaultMarker: 'square', }; diff --git a/src/shape/interval/pyramid.ts b/src/shape/interval/pyramid.ts index e50318d966..e8731a4c87 100644 --- a/src/shape/interval/pyramid.ts +++ b/src/shape/interval/pyramid.ts @@ -1,7 +1,6 @@ import { Coordinate } from '@antv/coord'; import { isTranspose } from '../../utils/coordinate'; import { ShapeComponent as SC, Vector2 } from '../../runtime'; -import { Color } from './color'; import { Funnel } from './funnel'; export type PyramidOptions = Record; @@ -46,6 +45,5 @@ export const Pyramid: SC = (options) => { }; Pyramid.props = { - ...Color.props, defaultMarker: 'square', }; From 2fa9b6bbb93e9e7a332ec85d4ee92bd7c8fc5825 Mon Sep 17 00:00:00 2001 From: shield2018 <> Date: Tue, 11 Apr 2023 14:13:21 +0800 Subject: [PATCH 3/3] fix(interval): update funnel snapshot --- .../static/alphabetIntervalFunnel.png | Bin 10113 -> 9908 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/__tests__/integration/snapshots/static/alphabetIntervalFunnel.png b/__tests__/integration/snapshots/static/alphabetIntervalFunnel.png index 09920b70bc35dde87f49c7cadadf08f5ca12314b..eebac83c2478187bd17e32c6a57a6d6706c87cc7 100644 GIT binary patch literal 9908 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 I>JV=I7eIsTU;qFB literal 10113 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