victory-core 36.4.0 → 36.5.1
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/victory-core.js +45735 -12154
- package/dist/victory-core.min.js +2 -1
- package/dist/victory-core.min.js.LICENSE.txt +19 -0
- package/es/index.d.ts +18 -941
- package/es/index.js +18 -73
- package/es/types/callbacks.d.ts +37 -0
- package/es/types/callbacks.js +2 -0
- package/es/types/prop-types.d.ts +130 -0
- package/es/types/prop-types.js +2 -0
- package/es/victory-accessible-group/victory-accessible-group.d.ts +26 -0
- package/es/victory-accessible-group/victory-accessible-group.js +9 -16
- package/es/victory-animation/util.d.ts +67 -0
- package/es/victory-animation/util.js +7 -4
- package/es/victory-animation/victory-animation.d.ts +70 -0
- package/es/victory-animation/victory-animation.js +60 -67
- package/es/victory-clip-container/victory-clip-container.d.ts +77 -0
- package/es/victory-clip-container/victory-clip-container.js +19 -23
- package/es/victory-container/victory-container.d.ts +100 -0
- package/es/victory-container/victory-container.js +32 -31
- package/es/victory-label/victory-label.d.ts +62 -0
- package/es/victory-label/victory-label.js +17 -10
- package/es/victory-portal/portal-context.d.ts +12 -0
- package/es/victory-portal/portal-context.js +3 -3
- package/es/victory-portal/portal.d.ts +29 -0
- package/es/victory-portal/portal.js +26 -33
- package/es/victory-portal/victory-portal.d.ts +32 -0
- package/es/victory-portal/victory-portal.js +24 -22
- package/es/victory-primitives/arc.d.ts +50 -0
- package/es/victory-primitives/arc.js +4 -5
- package/es/victory-primitives/background.d.ts +51 -0
- package/es/victory-primitives/background.js +5 -6
- package/es/victory-primitives/border.d.ts +44 -0
- package/es/victory-primitives/border.js +4 -5
- package/es/victory-primitives/circle.d.ts +3 -0
- package/es/victory-primitives/circle.js +11 -7
- package/es/victory-primitives/clip-path.d.ts +15 -0
- package/es/victory-primitives/clip-path.js +6 -5
- package/es/victory-primitives/index.d.ts +15 -0
- package/es/victory-primitives/index.js +15 -0
- package/es/victory-primitives/line-segment.d.ts +46 -0
- package/es/victory-primitives/line-segment.js +4 -5
- package/es/victory-primitives/line.d.ts +3 -0
- package/es/victory-primitives/line.js +11 -7
- package/es/victory-primitives/path.d.ts +3 -0
- package/es/victory-primitives/path.js +9 -5
- package/es/victory-primitives/point.d.ts +49 -0
- package/es/victory-primitives/point.js +10 -19
- package/es/victory-primitives/rect.d.ts +3 -0
- package/es/victory-primitives/rect.js +11 -7
- package/es/victory-primitives/text.d.ts +17 -0
- package/es/victory-primitives/text.js +7 -5
- package/es/victory-primitives/tspan.d.ts +3 -0
- package/es/victory-primitives/tspan.js +7 -5
- package/es/victory-primitives/types.d.ts +8 -0
- package/es/victory-primitives/types.js +2 -0
- package/es/victory-primitives/whisker.d.ts +59 -0
- package/es/victory-primitives/whisker.js +4 -5
- package/es/victory-state/defaults.d.ts +3 -0
- package/es/victory-state/defaults.js +3 -0
- package/es/victory-state/helpers/get-axis-data.d.ts +3 -0
- package/es/victory-state/helpers/get-axis-data.js +15 -0
- package/es/victory-state/helpers/get-data.d.ts +15 -0
- package/es/victory-state/helpers/get-data.js +88 -0
- package/es/victory-state/helpers/get-domain.d.ts +6 -0
- package/es/victory-state/helpers/get-domain.js +68 -0
- package/es/victory-state/helpers/get-range.d.ts +6 -0
- package/es/victory-state/helpers/get-range.js +37 -0
- package/es/victory-state/helpers/get-scale.d.ts +6 -0
- package/es/victory-state/helpers/get-scale.js +59 -0
- package/es/victory-state/index.d.ts +3 -0
- package/es/victory-state/index.js +3 -0
- package/es/victory-state/types.d.ts +24 -0
- package/es/victory-state/types.js +2 -0
- package/es/victory-state/victory-provider.d.ts +19 -0
- package/es/victory-state/victory-provider.js +118 -0
- package/es/victory-theme/grayscale.d.ts +3 -0
- package/es/victory-theme/grayscale.js +3 -2
- package/es/victory-theme/material.d.ts +3 -0
- package/es/victory-theme/material.js +3 -2
- package/es/victory-theme/types.d.ts +239 -0
- package/es/victory-theme/types.js +2 -0
- package/es/victory-theme/victory-theme.d.ts +6 -0
- package/es/victory-theme/victory-theme.js +8 -6
- package/es/victory-transition/victory-transition.d.ts +60 -0
- package/es/victory-transition/victory-transition.js +20 -23
- package/es/victory-util/add-events.d.ts +106 -0
- package/es/victory-util/add-events.js +45 -38
- package/es/victory-util/axis.d.ts +51 -0
- package/es/victory-util/axis.js +9 -8
- package/es/victory-util/collection.d.ts +9 -0
- package/es/victory-util/collection.js +6 -6
- package/es/victory-util/common-props.d.ts +84 -0
- package/es/victory-util/common-props.js +31 -14
- package/es/victory-util/data.d.ts +75 -0
- package/es/victory-util/data.js +2 -3
- package/es/victory-util/default-transitions.d.ts +5 -0
- package/es/victory-util/default-transitions.js +2 -2
- package/es/victory-util/domain.d.ts +91 -0
- package/es/victory-util/domain.js +6 -4
- package/es/victory-util/events.d.ts +65 -0
- package/es/victory-util/events.js +13 -8
- package/es/victory-util/helpers.d.ts +61 -0
- package/es/victory-util/helpers.js +8 -6
- package/es/victory-util/hooks/index.d.ts +3 -0
- package/es/victory-util/hooks/index.js +2 -1
- package/es/victory-util/hooks/use-animation-state.js +2 -1
- package/es/victory-util/hooks/use-previous-props.d.ts +2 -0
- package/es/victory-util/hooks/use-previous-props.js +4 -3
- package/es/victory-util/immutable.d.ts +12 -0
- package/es/victory-util/immutable.js +5 -5
- package/es/victory-util/index.d.ts +29 -0
- package/es/victory-util/index.js +48 -0
- package/es/victory-util/label-helpers.d.ts +27 -0
- package/es/victory-util/label-helpers.js +2 -3
- package/es/victory-util/line-helpers.d.ts +5 -0
- package/es/victory-util/line-helpers.js +24 -6
- package/es/victory-util/log.d.ts +2 -0
- package/es/victory-util/log.js +2 -2
- package/es/victory-util/point-path-helpers.d.ts +10 -0
- package/es/victory-util/point-path-helpers.js +60 -61
- package/es/victory-util/prop-types.d.ts +51 -0
- package/es/victory-util/prop-types.js +35 -44
- package/es/victory-util/scale.d.ts +10 -0
- package/es/victory-util/scale.js +14 -6
- package/es/victory-util/selection.d.ts +25 -0
- package/es/victory-util/selection.js +25 -16
- package/es/victory-util/style.d.ts +19 -0
- package/es/victory-util/style.js +2 -3
- package/es/victory-util/textsize.d.ts +37 -0
- package/es/victory-util/textsize.js +9 -6
- package/es/victory-util/timer-context.d.ts +12 -0
- package/es/victory-util/timer-context.js +2 -1
- package/es/victory-util/timer.d.ts +17 -0
- package/es/victory-util/timer.js +15 -9
- package/es/victory-util/transitions.d.ts +49 -0
- package/es/victory-util/transitions.js +5 -4
- package/es/victory-util/type-helpers.d.ts +10 -0
- package/es/victory-util/type-helpers.js +28 -0
- package/es/victory-util/user-props.d.ts +21 -0
- package/es/victory-util/user-props.js +17 -3
- package/es/victory-util/with-container.d.ts +5 -0
- package/es/victory-util/with-container.js +32 -0
- package/es/victory-util/wrapper.d.ts +38 -0
- package/es/victory-util/wrapper.js +4 -3
- package/lib/index.d.ts +18 -941
- package/lib/index.js +224 -311
- package/lib/types/callbacks.d.ts +37 -0
- package/lib/types/callbacks.js +2 -0
- package/lib/types/prop-types.d.ts +130 -0
- package/lib/types/prop-types.js +2 -0
- package/lib/victory-accessible-group/victory-accessible-group.d.ts +26 -0
- package/lib/victory-accessible-group/victory-accessible-group.js +10 -15
- package/lib/victory-animation/util.d.ts +67 -0
- package/lib/victory-animation/util.js +7 -4
- package/lib/victory-animation/victory-animation.d.ts +70 -0
- package/lib/victory-animation/victory-animation.js +61 -65
- package/lib/victory-clip-container/victory-clip-container.d.ts +77 -0
- package/lib/victory-clip-container/victory-clip-container.js +24 -24
- package/lib/victory-container/victory-container.d.ts +100 -0
- package/lib/victory-container/victory-container.js +35 -31
- package/lib/victory-label/victory-label.d.ts +62 -0
- package/lib/victory-label/victory-label.js +24 -15
- package/lib/victory-portal/portal-context.d.ts +12 -0
- package/lib/victory-portal/portal-context.js +3 -3
- package/lib/victory-portal/portal.d.ts +29 -0
- package/lib/victory-portal/portal.js +27 -31
- package/lib/victory-portal/victory-portal.d.ts +32 -0
- package/lib/victory-portal/victory-portal.js +25 -20
- package/lib/victory-primitives/arc.d.ts +50 -0
- package/lib/victory-primitives/arc.js +7 -7
- package/lib/victory-primitives/background.d.ts +51 -0
- package/lib/victory-primitives/background.js +9 -9
- package/lib/victory-primitives/border.d.ts +44 -0
- package/lib/victory-primitives/border.js +7 -7
- package/lib/victory-primitives/circle.d.ts +3 -0
- package/lib/victory-primitives/circle.js +12 -6
- package/lib/victory-primitives/clip-path.d.ts +15 -0
- package/lib/victory-primitives/clip-path.js +7 -4
- package/lib/victory-primitives/index.d.ts +15 -0
- package/lib/victory-primitives/index.js +188 -0
- package/lib/victory-primitives/line-segment.d.ts +46 -0
- package/lib/victory-primitives/line-segment.js +7 -7
- package/lib/victory-primitives/line.d.ts +3 -0
- package/lib/victory-primitives/line.js +12 -6
- package/lib/victory-primitives/path.d.ts +3 -0
- package/lib/victory-primitives/path.js +10 -4
- package/lib/victory-primitives/point.d.ts +49 -0
- package/lib/victory-primitives/point.js +15 -22
- package/lib/victory-primitives/rect.d.ts +3 -0
- package/lib/victory-primitives/rect.js +12 -6
- package/lib/victory-primitives/text.d.ts +17 -0
- package/lib/victory-primitives/text.js +8 -4
- package/lib/victory-primitives/tspan.d.ts +3 -0
- package/lib/victory-primitives/tspan.js +8 -4
- package/lib/victory-primitives/types.d.ts +8 -0
- package/lib/victory-primitives/types.js +2 -0
- package/lib/victory-primitives/whisker.d.ts +59 -0
- package/lib/victory-primitives/whisker.js +7 -7
- package/lib/victory-state/defaults.d.ts +3 -0
- package/lib/victory-state/defaults.js +11 -0
- package/lib/victory-state/helpers/get-axis-data.d.ts +3 -0
- package/lib/victory-state/helpers/get-axis-data.js +23 -0
- package/lib/victory-state/helpers/get-data.d.ts +15 -0
- package/lib/victory-state/helpers/get-data.js +99 -0
- package/lib/victory-state/helpers/get-domain.d.ts +6 -0
- package/lib/victory-state/helpers/get-domain.js +82 -0
- package/lib/victory-state/helpers/get-range.d.ts +6 -0
- package/lib/victory-state/helpers/get-range.js +46 -0
- package/lib/victory-state/helpers/get-scale.d.ts +6 -0
- package/lib/victory-state/helpers/get-scale.js +74 -0
- package/lib/victory-state/index.d.ts +3 -0
- package/lib/victory-state/index.js +32 -0
- package/lib/victory-state/types.d.ts +24 -0
- package/lib/victory-state/types.js +2 -0
- package/lib/victory-state/victory-provider.d.ts +19 -0
- package/lib/victory-state/victory-provider.js +146 -0
- package/lib/victory-theme/grayscale.d.ts +3 -0
- package/lib/victory-theme/grayscale.js +4 -3
- package/lib/victory-theme/material.d.ts +3 -0
- package/lib/victory-theme/material.js +4 -3
- package/lib/victory-theme/types.d.ts +239 -0
- package/lib/victory-theme/types.js +2 -0
- package/lib/victory-theme/victory-theme.d.ts +6 -0
- package/lib/victory-theme/victory-theme.js +23 -8
- package/lib/victory-transition/victory-transition.d.ts +60 -0
- package/lib/victory-transition/victory-transition.js +22 -23
- package/lib/victory-util/add-events.d.ts +106 -0
- package/lib/victory-util/add-events.js +49 -47
- package/lib/victory-util/axis.d.ts +51 -0
- package/lib/victory-util/axis.js +8 -6
- package/lib/victory-util/collection.d.ts +9 -0
- package/lib/victory-util/collection.js +6 -6
- package/lib/victory-util/common-props.d.ts +84 -0
- package/lib/victory-util/common-props.js +29 -14
- package/lib/victory-util/data.d.ts +75 -0
- package/lib/victory-util/data.js +2 -1
- package/lib/victory-util/default-transitions.d.ts +5 -0
- package/lib/victory-util/default-transitions.js +2 -2
- package/lib/victory-util/domain.d.ts +91 -0
- package/lib/victory-util/domain.js +6 -2
- package/lib/victory-util/events.d.ts +65 -0
- package/lib/victory-util/events.js +13 -9
- package/lib/victory-util/helpers.d.ts +61 -0
- package/lib/victory-util/helpers.js +8 -6
- package/lib/victory-util/hooks/index.d.ts +3 -0
- package/lib/victory-util/hooks/index.js +2 -1
- package/lib/victory-util/hooks/use-animation-state.js +2 -1
- package/lib/victory-util/hooks/use-previous-props.d.ts +2 -0
- package/lib/victory-util/hooks/use-previous-props.js +5 -6
- package/lib/victory-util/immutable.d.ts +12 -0
- package/lib/victory-util/immutable.js +5 -6
- package/lib/victory-util/index.d.ts +29 -0
- package/lib/victory-util/index.js +181 -0
- package/lib/victory-util/label-helpers.d.ts +27 -0
- package/lib/victory-util/label-helpers.js +2 -3
- package/lib/victory-util/line-helpers.d.ts +5 -0
- package/lib/victory-util/line-helpers.js +28 -7
- package/lib/victory-util/log.d.ts +2 -0
- package/lib/victory-util/log.js +2 -2
- package/lib/victory-util/point-path-helpers.d.ts +10 -0
- package/lib/victory-util/point-path-helpers.js +87 -73
- package/lib/victory-util/prop-types.d.ts +51 -0
- package/lib/victory-util/prop-types.js +36 -44
- package/lib/victory-util/scale.d.ts +10 -0
- package/lib/victory-util/scale.js +14 -5
- package/lib/victory-util/selection.d.ts +25 -0
- package/lib/victory-util/selection.js +25 -21
- package/lib/victory-util/style.d.ts +19 -0
- package/lib/victory-util/style.js +2 -3
- package/lib/victory-util/textsize.d.ts +37 -0
- package/lib/victory-util/textsize.js +9 -6
- package/lib/victory-util/timer-context.d.ts +12 -0
- package/lib/victory-util/timer-context.js +2 -1
- package/lib/victory-util/timer.d.ts +17 -0
- package/lib/victory-util/timer.js +15 -9
- package/lib/victory-util/transitions.d.ts +49 -0
- package/lib/victory-util/transitions.js +5 -4
- package/lib/victory-util/type-helpers.d.ts +10 -0
- package/lib/victory-util/type-helpers.js +45 -0
- package/lib/victory-util/user-props.d.ts +21 -0
- package/lib/victory-util/user-props.js +25 -4
- package/lib/victory-util/with-container.d.ts +5 -0
- package/lib/victory-util/with-container.js +44 -0
- package/lib/victory-util/wrapper.d.ts +38 -0
- package/lib/victory-util/wrapper.js +4 -3
- package/package.json +6 -6
- package/src/index.ts +17 -0
- package/src/types/callbacks.ts +53 -0
- package/src/types/prop-types.ts +195 -0
- package/src/victory-accessible-group/{victory-accessible-group.js → victory-accessible-group.tsx} +13 -6
- package/src/victory-animation/{util.js → util.ts} +6 -4
- package/src/victory-animation/{victory-animation.js → victory-animation.tsx} +100 -23
- package/src/victory-clip-container/{victory-clip-container.js → victory-clip-container.tsx} +55 -29
- package/src/victory-container/{victory-container.js → victory-container.tsx} +86 -42
- package/src/victory-label/{victory-label.js → victory-label.tsx} +112 -49
- package/src/victory-portal/portal-context.ts +14 -0
- package/src/victory-portal/{portal.js → portal.tsx} +24 -13
- package/src/victory-portal/{victory-portal.js → victory-portal.tsx} +24 -9
- package/src/victory-primitives/{arc.js → arc.tsx} +22 -10
- package/src/victory-primitives/{background.js → background.tsx} +24 -12
- package/src/victory-primitives/{border.js → border.tsx} +19 -10
- package/src/victory-primitives/{circle.js → circle.tsx} +4 -3
- package/src/victory-primitives/clip-path.tsx +25 -0
- package/src/victory-primitives/index.ts +14 -0
- package/src/victory-primitives/{line-segment.js → line-segment.tsx} +20 -10
- package/src/victory-primitives/{line.js → line.tsx} +4 -3
- package/src/victory-primitives/{path.js → path.tsx} +4 -3
- package/src/victory-primitives/{point.js → point.tsx} +33 -26
- package/src/victory-primitives/{rect.js → rect.tsx} +4 -2
- package/src/victory-primitives/{text.js → text.tsx} +10 -4
- package/src/victory-primitives/tspan.tsx +7 -0
- package/src/victory-primitives/types.ts +19 -0
- package/src/victory-primitives/{whisker.js → whisker.tsx} +34 -19
- package/src/victory-state/defaults.ts +2 -0
- package/src/victory-state/helpers/get-axis-data.ts +14 -0
- package/src/victory-state/helpers/get-data.ts +79 -0
- package/src/victory-state/helpers/get-domain.ts +62 -0
- package/src/victory-state/helpers/get-range.ts +39 -0
- package/src/victory-state/helpers/get-scale.ts +64 -0
- package/src/victory-state/index.ts +2 -0
- package/src/victory-state/types.ts +32 -0
- package/src/victory-state/victory-provider.tsx +121 -0
- package/src/victory-theme/{grayscale.js → grayscale.tsx} +63 -62
- package/src/victory-theme/{material.js → material.tsx} +68 -67
- package/src/victory-theme/types.ts +257 -0
- package/src/victory-theme/victory-theme.tsx +5 -0
- package/src/victory-transition/{victory-transition.js → victory-transition.tsx} +82 -33
- package/src/victory-util/{add-events.js → add-events.tsx} +143 -64
- package/src/victory-util/{axis.js → axis.tsx} +17 -19
- package/src/victory-util/{collection.js → collection.tsx} +14 -11
- package/src/victory-util/common-props.tsx +307 -0
- package/src/victory-util/{data.js → data.ts} +14 -11
- package/src/victory-util/{default-transitions.js → default-transitions.ts} +20 -19
- package/src/victory-util/{domain.js → domain.ts} +26 -24
- package/src/victory-util/{events.js → events.ts} +83 -32
- package/src/victory-util/{helpers.js → helpers.ts} +41 -23
- package/src/victory-util/hooks/{index.js → index.ts} +0 -0
- package/src/victory-util/hooks/use-animation-state.js +10 -10
- package/src/victory-util/hooks/use-previous-props.ts +9 -0
- package/src/victory-util/{immutable.js → immutable.ts} +14 -11
- package/src/victory-util/index.ts +28 -0
- package/src/victory-util/{label-helpers.js → label-helpers.ts} +7 -8
- package/src/victory-util/line-helpers.ts +104 -0
- package/src/victory-util/{log.js → log.ts} +1 -2
- package/src/victory-util/point-path-helpers.ts +119 -0
- package/src/victory-util/{prop-types.js → prop-types.ts} +103 -102
- package/src/victory-util/{scale.js → scale.ts} +29 -17
- package/src/victory-util/selection.ts +158 -0
- package/src/victory-util/{style.js → style.ts} +3 -4
- package/src/victory-util/{textsize.js → textsize.ts} +32 -17
- package/src/victory-util/{timer-context.js → timer-context.ts} +1 -1
- package/src/victory-util/{timer.js → timer.ts} +16 -6
- package/src/victory-util/{transitions.js → transitions.ts} +50 -23
- package/src/victory-util/type-helpers.ts +50 -0
- package/src/victory-util/{user-props.js → user-props.ts} +26 -8
- package/src/victory-util/with-container.tsx +41 -0
- package/src/victory-util/{wrapper.js → wrapper.tsx} +38 -34
- package/src/index.d.ts +0 -941
- package/src/index.js +0 -51
- package/src/victory-portal/portal-context.js +0 -10
- package/src/victory-primitives/clip-path.js +0 -18
- package/src/victory-primitives/tspan.js +0 -5
- package/src/victory-theme/victory-theme.js +0 -7
- package/src/victory-util/common-props.js +0 -197
- package/src/victory-util/hooks/use-previous-props.js +0 -9
- package/src/victory-util/line-helpers.js +0 -54
- package/src/victory-util/point-path-helpers.js +0 -121
- package/src/victory-util/selection.js +0 -99
|
@@ -1,34 +1,74 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
import PropTypes from "prop-types";
|
|
3
|
-
import VictoryAnimation from "../victory-animation/victory-animation";
|
|
3
|
+
import { VictoryAnimation } from "../victory-animation/victory-animation";
|
|
4
4
|
import * as Collection from "../victory-util/collection";
|
|
5
5
|
import * as Helpers from "../victory-util/helpers";
|
|
6
6
|
import TimerContext from "../victory-util/timer-context";
|
|
7
7
|
import * as Transitions from "../victory-util/transitions";
|
|
8
|
-
import { defaults, isFunction, pick
|
|
8
|
+
import { defaults, isFunction, pick } from "lodash";
|
|
9
9
|
import isEqual from "react-fast-compare";
|
|
10
|
+
import Timer from "../victory-util/timer";
|
|
10
11
|
|
|
11
|
-
|
|
12
|
+
type VictoryTransitionChild = React.ReactElement<
|
|
13
|
+
// Props:
|
|
14
|
+
{
|
|
15
|
+
polar?: boolean;
|
|
16
|
+
domain?: number[] | { x: number[]; y: number[] };
|
|
17
|
+
groupComponent?: React.ReactElement;
|
|
18
|
+
},
|
|
19
|
+
// Type:
|
|
20
|
+
{
|
|
21
|
+
new (props: any): React.Component<any, any>;
|
|
22
|
+
continuous?: boolean;
|
|
23
|
+
}
|
|
24
|
+
>;
|
|
25
|
+
interface VictoryTransitionProps {
|
|
26
|
+
animate?: boolean | any;
|
|
27
|
+
animationWhitelist?: string[];
|
|
28
|
+
children: VictoryTransitionChild;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
interface VictoryTransitionState {
|
|
32
|
+
oldProps?: VictoryTransitionProps | null;
|
|
33
|
+
nextProps?: VictoryTransitionProps;
|
|
34
|
+
nodesShouldLoad?: boolean;
|
|
35
|
+
nodesDoneLoad?: boolean;
|
|
36
|
+
nodesWillExit?: boolean;
|
|
37
|
+
nodesWillEnter?: boolean;
|
|
38
|
+
nodesShouldEnter?: boolean;
|
|
39
|
+
childrenTransitions?: unknown;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
export interface VictoryTransition {
|
|
43
|
+
context: React.ContextType<typeof TimerContext>;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
export class VictoryTransition extends React.Component<
|
|
47
|
+
VictoryTransitionProps,
|
|
48
|
+
VictoryTransitionState
|
|
49
|
+
> {
|
|
12
50
|
static displayName = "VictoryTransition";
|
|
13
51
|
|
|
14
52
|
static propTypes = {
|
|
15
53
|
animate: PropTypes.oneOfType([PropTypes.bool, PropTypes.object]),
|
|
16
54
|
animationWhitelist: PropTypes.array,
|
|
17
|
-
children: PropTypes.node
|
|
55
|
+
children: PropTypes.node,
|
|
18
56
|
};
|
|
19
57
|
|
|
20
58
|
static contextType = TimerContext;
|
|
59
|
+
private continuous: boolean;
|
|
60
|
+
private timer: Timer;
|
|
61
|
+
private transitionProps: any;
|
|
21
62
|
|
|
22
63
|
constructor(props, context) {
|
|
23
64
|
super(props, context);
|
|
24
65
|
this.state = {
|
|
25
66
|
nodesShouldLoad: false,
|
|
26
|
-
nodesDoneLoad: false
|
|
67
|
+
nodesDoneLoad: false,
|
|
27
68
|
};
|
|
28
69
|
const child = this.props.children;
|
|
29
70
|
const polar = child.props.polar;
|
|
30
71
|
this.continuous = !polar && child.type && child.type.continuous === true;
|
|
31
|
-
this.getTransitionState = this.getTransitionState.bind(this);
|
|
32
72
|
this.timer = this.context.transitionTimer;
|
|
33
73
|
}
|
|
34
74
|
|
|
@@ -36,11 +76,11 @@ export default class VictoryTransition extends React.Component {
|
|
|
36
76
|
this.setState({ nodesShouldLoad: true }); //eslint-disable-line react/no-did-mount-set-state
|
|
37
77
|
}
|
|
38
78
|
|
|
39
|
-
shouldComponentUpdate(nextProps) {
|
|
79
|
+
shouldComponentUpdate(nextProps: VictoryTransitionProps) {
|
|
40
80
|
if (!isEqual(this.props, nextProps)) {
|
|
41
81
|
this.timer.bypassAnimation();
|
|
42
82
|
this.setState(this.getTransitionState(this.props, nextProps), () =>
|
|
43
|
-
this.timer.resumeAnimation()
|
|
83
|
+
this.timer.resumeAnimation(),
|
|
44
84
|
);
|
|
45
85
|
}
|
|
46
86
|
return true;
|
|
@@ -50,7 +90,10 @@ export default class VictoryTransition extends React.Component {
|
|
|
50
90
|
this.timer.stop();
|
|
51
91
|
}
|
|
52
92
|
|
|
53
|
-
getTransitionState(
|
|
93
|
+
private getTransitionState(
|
|
94
|
+
props: VictoryTransitionProps,
|
|
95
|
+
nextProps: VictoryTransitionProps,
|
|
96
|
+
): VictoryTransitionState {
|
|
54
97
|
const { animate } = props;
|
|
55
98
|
if (!animate) {
|
|
56
99
|
return {};
|
|
@@ -65,7 +108,7 @@ export default class VictoryTransition extends React.Component {
|
|
|
65
108
|
nodesWillExit,
|
|
66
109
|
nodesWillEnter,
|
|
67
110
|
childrenTransitions,
|
|
68
|
-
nodesShouldEnter
|
|
111
|
+
nodesShouldEnter,
|
|
69
112
|
} = Transitions.getInitialTransitionState(oldChildren, nextChildren);
|
|
70
113
|
return {
|
|
71
114
|
nodesWillExit,
|
|
@@ -73,12 +116,15 @@ export default class VictoryTransition extends React.Component {
|
|
|
73
116
|
childrenTransitions,
|
|
74
117
|
nodesShouldEnter,
|
|
75
118
|
oldProps: nodesWillExit ? props : null,
|
|
76
|
-
nextProps
|
|
119
|
+
nextProps,
|
|
77
120
|
};
|
|
78
121
|
}
|
|
79
122
|
}
|
|
80
123
|
|
|
81
|
-
getDomainFromChildren(
|
|
124
|
+
private getDomainFromChildren(
|
|
125
|
+
props: VictoryTransitionProps,
|
|
126
|
+
axis: "x" | "y",
|
|
127
|
+
) {
|
|
82
128
|
const getChildDomains = (children) => {
|
|
83
129
|
return children.reduce((memo, child) => {
|
|
84
130
|
if (child.type && isFunction(child.type.getDomain)) {
|
|
@@ -87,15 +133,17 @@ export default class VictoryTransition extends React.Component {
|
|
|
87
133
|
return childDomain ? memo.concat(childDomain) : memo;
|
|
88
134
|
} else if (child.props && child.props.children) {
|
|
89
135
|
return memo.concat(
|
|
90
|
-
getChildDomains(React.Children.toArray(child.props.children))
|
|
136
|
+
getChildDomains(React.Children.toArray(child.props.children)),
|
|
91
137
|
);
|
|
92
138
|
}
|
|
93
139
|
return memo;
|
|
94
140
|
}, []);
|
|
95
141
|
};
|
|
96
142
|
|
|
97
|
-
const child = React.Children.toArray(
|
|
98
|
-
|
|
143
|
+
const child = React.Children.toArray(
|
|
144
|
+
props.children,
|
|
145
|
+
)[0] as VictoryTransitionChild;
|
|
146
|
+
const childProps: any = child.props || {};
|
|
99
147
|
const domain = Array.isArray(childProps.domain)
|
|
100
148
|
? childProps.domain
|
|
101
149
|
: childProps.domain && childProps.domain[axis];
|
|
@@ -107,7 +155,7 @@ export default class VictoryTransition extends React.Component {
|
|
|
107
155
|
? [0, 1]
|
|
108
156
|
: [
|
|
109
157
|
Collection.getMinValue(childDomains),
|
|
110
|
-
Collection.getMaxValue(childDomains)
|
|
158
|
+
Collection.getMaxValue(childDomains),
|
|
111
159
|
];
|
|
112
160
|
}
|
|
113
161
|
}
|
|
@@ -121,10 +169,10 @@ export default class VictoryTransition extends React.Component {
|
|
|
121
169
|
: this.props;
|
|
122
170
|
}
|
|
123
171
|
|
|
124
|
-
pickDomainProps(props) {
|
|
125
|
-
const parentState =
|
|
172
|
+
private pickDomainProps(props: VictoryTransitionProps) {
|
|
173
|
+
const parentState = props.animate?.parentState;
|
|
126
174
|
if (parentState && parentState.nodesWillExit) {
|
|
127
|
-
return this.
|
|
175
|
+
return this.continuous || parentState.continuous
|
|
128
176
|
? parentState.nextProps || this.state.nextProps || props
|
|
129
177
|
: props;
|
|
130
178
|
}
|
|
@@ -146,24 +194,25 @@ export default class VictoryTransition extends React.Component {
|
|
|
146
194
|
|
|
147
195
|
render() {
|
|
148
196
|
const props = this.pickProps();
|
|
149
|
-
const getTransitionProps =
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
197
|
+
const getTransitionProps = this.props.animate?.getTransitions
|
|
198
|
+
? this.props.animate.getTransitions
|
|
199
|
+
: Transitions.getTransitionPropsFactory(props, this.state, (newState) =>
|
|
200
|
+
this.setState(newState),
|
|
201
|
+
);
|
|
202
|
+
const child = React.Children.toArray(
|
|
203
|
+
props.children,
|
|
204
|
+
)[0] as VictoryTransitionChild;
|
|
156
205
|
const transitionProps = getTransitionProps(child);
|
|
157
206
|
this.transitionProps = transitionProps;
|
|
158
207
|
const domain = {
|
|
159
208
|
x: this.getDomainFromChildren(this.pickDomainProps(props), "x"),
|
|
160
|
-
y: this.getDomainFromChildren(props, "y")
|
|
209
|
+
y: this.getDomainFromChildren(props, "y"),
|
|
161
210
|
};
|
|
162
211
|
const clipWidth = this.getClipWidth(props, child);
|
|
163
212
|
const combinedProps = defaults(
|
|
164
213
|
{ domain, clipWidth },
|
|
165
214
|
transitionProps,
|
|
166
|
-
child.props
|
|
215
|
+
child.props,
|
|
167
216
|
);
|
|
168
217
|
const animationWhitelist = props.animationWhitelist || [];
|
|
169
218
|
const whitelist = animationWhitelist.concat(["clipWidth"]);
|
|
@@ -176,7 +225,7 @@ export default class VictoryTransition extends React.Component {
|
|
|
176
225
|
if (child.props.groupComponent) {
|
|
177
226
|
const groupComponent = this.continuous
|
|
178
227
|
? React.cloneElement(child.props.groupComponent, {
|
|
179
|
-
clipWidth: newProps.clipWidth || 0
|
|
228
|
+
clipWidth: newProps.clipWidth || 0,
|
|
180
229
|
})
|
|
181
230
|
: child.props.groupComponent;
|
|
182
231
|
return React.cloneElement(
|
|
@@ -184,8 +233,8 @@ export default class VictoryTransition extends React.Component {
|
|
|
184
233
|
defaults(
|
|
185
234
|
{ animate: null, animating: true, groupComponent },
|
|
186
235
|
newProps,
|
|
187
|
-
combinedProps
|
|
188
|
-
)
|
|
236
|
+
combinedProps,
|
|
237
|
+
),
|
|
189
238
|
);
|
|
190
239
|
}
|
|
191
240
|
return React.cloneElement(
|
|
@@ -193,8 +242,8 @@ export default class VictoryTransition extends React.Component {
|
|
|
193
242
|
defaults(
|
|
194
243
|
{ animate: null, animating: true },
|
|
195
244
|
newProps,
|
|
196
|
-
combinedProps
|
|
197
|
-
)
|
|
245
|
+
combinedProps,
|
|
246
|
+
),
|
|
198
247
|
);
|
|
199
248
|
}}
|
|
200
249
|
</VictoryAnimation>
|
|
@@ -1,54 +1,131 @@
|
|
|
1
1
|
/*global window:false */
|
|
2
2
|
import React from "react";
|
|
3
3
|
import {
|
|
4
|
-
defaults,
|
|
5
4
|
assign,
|
|
6
|
-
|
|
5
|
+
defaults,
|
|
6
|
+
difference,
|
|
7
|
+
isEmpty,
|
|
7
8
|
isFunction,
|
|
9
|
+
isNil,
|
|
10
|
+
keys,
|
|
8
11
|
pick,
|
|
9
12
|
without,
|
|
10
|
-
isEmpty,
|
|
11
|
-
isNil,
|
|
12
|
-
difference
|
|
13
13
|
} from "lodash";
|
|
14
|
+
import type { ComponentEvent } from "./events";
|
|
14
15
|
import * as Events from "./events";
|
|
15
16
|
import isEqual from "react-fast-compare";
|
|
16
|
-
import VictoryTransition from "../victory-transition/victory-transition";
|
|
17
|
-
import
|
|
17
|
+
import { VictoryTransition } from "../victory-transition/victory-transition";
|
|
18
|
+
import { VictoryCommonProps, VictoryDatableProps } from "./common-props";
|
|
19
|
+
import { VictoryLabelableProps } from "../types/prop-types";
|
|
20
|
+
|
|
21
|
+
// DISCLAIMER:
|
|
22
|
+
// This file is not currently tested, and it is first on the list of files
|
|
23
|
+
// to refactor in our current refactoring effort. Please do not make changes
|
|
24
|
+
// to this file without manual testing and/or refactoring and adding tests.
|
|
18
25
|
|
|
19
26
|
const datumHasXandY = (datum) => {
|
|
20
27
|
return !isNil(datum._x) && !isNil(datum._y);
|
|
21
28
|
};
|
|
22
29
|
|
|
23
30
|
// used for checking state changes. Expected components can be passed in via options
|
|
24
|
-
const defaultComponents = [
|
|
31
|
+
const defaultComponents: NonNullable<MixinOptions["components"]> = [
|
|
25
32
|
{ name: "parent", index: "parent" },
|
|
26
33
|
{ name: "data" },
|
|
27
|
-
{ name: "labels" }
|
|
34
|
+
{ name: "labels" },
|
|
28
35
|
];
|
|
29
36
|
|
|
30
|
-
export
|
|
31
|
-
|
|
32
|
-
|
|
37
|
+
export type MixinOptions = {
|
|
38
|
+
components?: Array<{
|
|
39
|
+
name: string;
|
|
40
|
+
index?: string;
|
|
41
|
+
}>;
|
|
42
|
+
};
|
|
43
|
+
|
|
44
|
+
export interface EventMixinCommonProps
|
|
45
|
+
extends VictoryCommonProps,
|
|
46
|
+
VictoryDatableProps,
|
|
47
|
+
VictoryLabelableProps {}
|
|
48
|
+
|
|
49
|
+
/**
|
|
50
|
+
* These methods will be implemented by the Mixin,
|
|
51
|
+
* and are accessible to the Wrapped Component.
|
|
52
|
+
*
|
|
53
|
+
* To make your Wrapped Component type-safe, use "interface merging" like so:
|
|
54
|
+
* @example
|
|
55
|
+
* interface MyComponent extends EventsMixinClass<MyProps> {}
|
|
56
|
+
* class MyComponent extends React.Component<MyProps> { ... }
|
|
57
|
+
*/
|
|
58
|
+
export interface EventsMixinClass<TProps> {
|
|
59
|
+
renderContainer(
|
|
60
|
+
component: React.ReactElement,
|
|
61
|
+
children: React.ReactElement[],
|
|
62
|
+
): React.ReactElement;
|
|
63
|
+
cacheValues<TThis>(this: TThis, obj: Partial<TThis>): void;
|
|
64
|
+
getEventState: typeof Events.getEventState;
|
|
65
|
+
renderContinuousData(props: TProps);
|
|
66
|
+
animateComponent(props: TProps, defaultAnimationWhitelist);
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
/**
|
|
70
|
+
* These fields are calculated by the Mixin
|
|
71
|
+
*/
|
|
72
|
+
export interface EventMixinCalculatedValues {
|
|
73
|
+
componentEvents: Array<ComponentEvent>;
|
|
74
|
+
getSharedEventState: (key: string, value: string) => unknown;
|
|
75
|
+
baseProps: Record<string, object>;
|
|
76
|
+
dataKeys: string[];
|
|
77
|
+
hasEvents: unknown;
|
|
78
|
+
events: unknown;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
/**
|
|
82
|
+
* This represents the class itself, including static fields
|
|
83
|
+
*/
|
|
84
|
+
export interface WrappedComponentClass<TProps> {
|
|
85
|
+
new (props: TProps): React.Component<TProps>;
|
|
86
|
+
getBaseProps?(props: TProps): EventMixinCalculatedValues["baseProps"];
|
|
87
|
+
role?: string;
|
|
88
|
+
expectedComponents?: string[];
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
export function addEvents<
|
|
92
|
+
TBase extends WrappedComponentClass<TProps>,
|
|
93
|
+
TProps extends EventMixinCommonProps,
|
|
94
|
+
>(WrappedComponent: TBase, options: MixinOptions = {}) {
|
|
95
|
+
// eslint-disable-next-line @typescript-eslint/no-empty-interface
|
|
96
|
+
interface AddEventsMixin extends EventMixinCalculatedValues {}
|
|
97
|
+
|
|
98
|
+
// @ts-expect-error "TS2545: A mixin class must have a constructor with a single rest parameter of type 'any[]'."
|
|
99
|
+
class AddEventsMixin
|
|
100
|
+
extends WrappedComponent
|
|
101
|
+
implements EventsMixinClass<TProps>
|
|
102
|
+
{
|
|
103
|
+
constructor(props: TProps) {
|
|
33
104
|
super(props);
|
|
34
|
-
const getScopedEvents = Events.getScopedEvents.bind(this);
|
|
35
|
-
const boundGetEvents = Events.getEvents.bind(this);
|
|
36
|
-
this.state = {};
|
|
37
|
-
this.getEvents = (p, target, eventKey) => {
|
|
38
|
-
return boundGetEvents(p, target, eventKey, getScopedEvents);
|
|
39
|
-
};
|
|
40
|
-
this.getEventState = Events.getEventState.bind(this);
|
|
41
|
-
const calculatedValues = this.getCalculatedValues(props);
|
|
42
|
-
this.cacheValues(calculatedValues);
|
|
43
|
-
this.externalMutations = this.getExternalMutations(props);
|
|
44
|
-
this.calculatedState = this.getStateChanges(props);
|
|
45
|
-
this.globalEvents = {};
|
|
46
|
-
this.prevGlobalEventKeys = [];
|
|
47
|
-
this.boundGlobalEvents = {};
|
|
48
|
-
}
|
|
49
105
|
|
|
50
|
-
|
|
106
|
+
this.cacheValues(this.getCalculatedValues(props));
|
|
107
|
+
}
|
|
108
|
+
state = {};
|
|
109
|
+
getEventState = Events.getEventState.bind(this);
|
|
110
|
+
getScopedEvents = Events.getScopedEvents.bind(this);
|
|
111
|
+
getEvents = (p, target, eventKey) => {
|
|
112
|
+
return Events.getEvents.call(
|
|
113
|
+
this,
|
|
114
|
+
p,
|
|
115
|
+
target,
|
|
116
|
+
eventKey,
|
|
117
|
+
this.getScopedEvents,
|
|
118
|
+
);
|
|
119
|
+
};
|
|
120
|
+
externalMutations = this.getExternalMutations(this.props);
|
|
121
|
+
calculatedState = this.getStateChanges(this.props);
|
|
122
|
+
globalEvents = {};
|
|
123
|
+
prevGlobalEventKeys: string[] = [];
|
|
124
|
+
boundGlobalEvents = {};
|
|
125
|
+
|
|
126
|
+
shouldComponentUpdate(nextProps: TProps) {
|
|
51
127
|
const externalMutations = this.getExternalMutations(nextProps);
|
|
128
|
+
// @ts-expect-error "Property 'animating' does not exist on type EventMixinCommonProps"
|
|
52
129
|
const animating = this.props.animating || this.props.animate;
|
|
53
130
|
const newMutation = !isEqual(externalMutations, this.externalMutations);
|
|
54
131
|
if (animating || newMutation) {
|
|
@@ -81,12 +158,12 @@ export default (WrappedComponent, options) => {
|
|
|
81
158
|
const globalEventKeys = keys(this.globalEvents);
|
|
82
159
|
const removedGlobalEventKeys = difference(
|
|
83
160
|
this.prevGlobalEventKeys,
|
|
84
|
-
globalEventKeys
|
|
161
|
+
globalEventKeys,
|
|
85
162
|
);
|
|
86
163
|
removedGlobalEventKeys.forEach((key) => this.removeGlobalListener(key));
|
|
87
164
|
const addedGlobalEventKeys = difference(
|
|
88
165
|
globalEventKeys,
|
|
89
|
-
this.prevGlobalEventKeys
|
|
166
|
+
this.prevGlobalEventKeys,
|
|
90
167
|
);
|
|
91
168
|
addedGlobalEventKeys.forEach((key) => this.addGlobalListener(key));
|
|
92
169
|
this.prevGlobalEventKeys = globalEventKeys;
|
|
@@ -104,14 +181,14 @@ export default (WrappedComponent, options) => {
|
|
|
104
181
|
this.boundGlobalEvents[key] = boundListener;
|
|
105
182
|
window.addEventListener(
|
|
106
183
|
Events.getGlobalEventNameFromKey(key),
|
|
107
|
-
boundListener
|
|
184
|
+
boundListener,
|
|
108
185
|
);
|
|
109
186
|
}
|
|
110
187
|
|
|
111
188
|
removeGlobalListener(key) {
|
|
112
189
|
window.removeEventListener(
|
|
113
190
|
Events.getGlobalEventNameFromKey(key),
|
|
114
|
-
this.boundGlobalEvents[key]
|
|
191
|
+
this.boundGlobalEvents[key],
|
|
115
192
|
);
|
|
116
193
|
}
|
|
117
194
|
|
|
@@ -126,12 +203,11 @@ export default (WrappedComponent, options) => {
|
|
|
126
203
|
const result = defaults(
|
|
127
204
|
{},
|
|
128
205
|
this.getEventState(key, type),
|
|
129
|
-
this.getSharedEventState(key, type)
|
|
206
|
+
this.getSharedEventState(key, type),
|
|
130
207
|
);
|
|
131
208
|
return isEmpty(result) ? undefined : result;
|
|
132
209
|
};
|
|
133
210
|
|
|
134
|
-
options = options || {};
|
|
135
211
|
const components = options.components || defaultComponents;
|
|
136
212
|
const stateChanges = components
|
|
137
213
|
.map((component) => {
|
|
@@ -159,7 +235,7 @@ export default (WrappedComponent, options) => {
|
|
|
159
235
|
: memo;
|
|
160
236
|
return memo;
|
|
161
237
|
},
|
|
162
|
-
[]
|
|
238
|
+
[] as Array<() => void>,
|
|
163
239
|
);
|
|
164
240
|
const compiledCallbacks = callbacks.length
|
|
165
241
|
? () => {
|
|
@@ -170,7 +246,7 @@ export default (WrappedComponent, options) => {
|
|
|
170
246
|
}
|
|
171
247
|
}
|
|
172
248
|
|
|
173
|
-
getCalculatedValues(props) {
|
|
249
|
+
getCalculatedValues(props): EventMixinCalculatedValues {
|
|
174
250
|
const { sharedEvents } = props;
|
|
175
251
|
const components = WrappedComponent.expectedComponents;
|
|
176
252
|
const componentEvents = Events.getComponentEvents(props, components);
|
|
@@ -188,18 +264,18 @@ export default (WrappedComponent, options) => {
|
|
|
188
264
|
baseProps,
|
|
189
265
|
dataKeys,
|
|
190
266
|
hasEvents,
|
|
191
|
-
events
|
|
267
|
+
events,
|
|
192
268
|
};
|
|
193
269
|
}
|
|
194
270
|
|
|
195
|
-
getExternalMutations(props) {
|
|
271
|
+
getExternalMutations(props: TProps) {
|
|
196
272
|
const { sharedEvents, externalEventMutations } = props;
|
|
197
273
|
return isEmpty(externalEventMutations) || sharedEvents
|
|
198
274
|
? undefined
|
|
199
275
|
: Events.getExternalMutations(
|
|
200
276
|
externalEventMutations,
|
|
201
277
|
this.baseProps,
|
|
202
|
-
this.state
|
|
278
|
+
this.state,
|
|
203
279
|
);
|
|
204
280
|
}
|
|
205
281
|
|
|
@@ -209,8 +285,9 @@ export default (WrappedComponent, options) => {
|
|
|
209
285
|
});
|
|
210
286
|
}
|
|
211
287
|
|
|
212
|
-
getBaseProps(props, getSharedEventState) {
|
|
213
|
-
getSharedEventState =
|
|
288
|
+
getBaseProps(props, getSharedEventState): this["baseProps"] {
|
|
289
|
+
getSharedEventState =
|
|
290
|
+
getSharedEventState || this.getSharedEventState.bind(this);
|
|
214
291
|
const sharedParentState = getSharedEventState("parent", "parent");
|
|
215
292
|
const parentState = this.getEventState("parent", "parent");
|
|
216
293
|
const baseParentProps = defaults({}, parentState, sharedParentState);
|
|
@@ -220,7 +297,7 @@ export default (WrappedComponent, options) => {
|
|
|
220
297
|
: {};
|
|
221
298
|
const modifiedProps = defaults({}, parentProps, props);
|
|
222
299
|
|
|
223
|
-
return
|
|
300
|
+
return typeof WrappedComponent.getBaseProps === "function"
|
|
224
301
|
? WrappedComponent.getBaseProps(modifiedProps)
|
|
225
302
|
: {};
|
|
226
303
|
}
|
|
@@ -255,13 +332,13 @@ export default (WrappedComponent, options) => {
|
|
|
255
332
|
this.getSharedEventState(key, type),
|
|
256
333
|
component.props,
|
|
257
334
|
baseProps,
|
|
258
|
-
{ id }
|
|
335
|
+
{ id },
|
|
259
336
|
);
|
|
260
337
|
|
|
261
338
|
const events = defaults(
|
|
262
339
|
{},
|
|
263
340
|
Events.getPartialEvents(baseEvents, key, componentProps),
|
|
264
|
-
componentProps.events
|
|
341
|
+
componentProps.events,
|
|
265
342
|
);
|
|
266
343
|
|
|
267
344
|
return assign({}, componentProps, { events });
|
|
@@ -284,68 +361,69 @@ export default (WrappedComponent, options) => {
|
|
|
284
361
|
return React.cloneElement(component, parentProps, children);
|
|
285
362
|
}
|
|
286
363
|
|
|
287
|
-
animateComponent(props, defaultAnimationWhitelist) {
|
|
364
|
+
animateComponent(props: TProps, defaultAnimationWhitelist: string[]) {
|
|
288
365
|
const animationWhitelist =
|
|
289
|
-
props.animate &&
|
|
290
|
-
|
|
291
|
-
|
|
366
|
+
(typeof props.animate === "object" &&
|
|
367
|
+
props.animate?.animationWhitelist) ||
|
|
368
|
+
defaultAnimationWhitelist;
|
|
369
|
+
|
|
370
|
+
const Comp = this.constructor;
|
|
292
371
|
|
|
293
372
|
return (
|
|
294
373
|
<VictoryTransition
|
|
295
374
|
animate={props.animate}
|
|
296
375
|
animationWhitelist={animationWhitelist}
|
|
297
376
|
>
|
|
298
|
-
{
|
|
377
|
+
<Comp {...props} />
|
|
299
378
|
</VictoryTransition>
|
|
300
379
|
);
|
|
301
380
|
}
|
|
302
381
|
|
|
303
382
|
// Used by `VictoryLine` and `VictoryArea`
|
|
304
|
-
renderContinuousData(props) {
|
|
383
|
+
renderContinuousData(props: TProps) {
|
|
305
384
|
const { dataComponent, labelComponent, groupComponent } = props;
|
|
306
385
|
const dataKeys = without(this.dataKeys, "all");
|
|
307
386
|
const labelComponents = dataKeys.reduce((memo, key) => {
|
|
308
387
|
const labelProps = this.getComponentProps(
|
|
309
388
|
labelComponent,
|
|
310
389
|
"labels",
|
|
311
|
-
key
|
|
390
|
+
key,
|
|
312
391
|
);
|
|
313
392
|
if (
|
|
314
393
|
labelProps &&
|
|
315
394
|
labelProps.text !== undefined &&
|
|
316
395
|
labelProps.text !== null
|
|
317
396
|
) {
|
|
318
|
-
memo = memo.concat(React.cloneElement(labelComponent
|
|
397
|
+
memo = memo.concat(React.cloneElement(labelComponent!, labelProps));
|
|
319
398
|
}
|
|
320
399
|
return memo;
|
|
321
|
-
}, []);
|
|
400
|
+
}, [] as React.ReactElement[]);
|
|
322
401
|
|
|
323
402
|
const dataProps = this.getComponentProps(dataComponent, "data", "all");
|
|
324
403
|
const children = [
|
|
325
|
-
React.cloneElement(dataComponent
|
|
326
|
-
...labelComponents
|
|
404
|
+
React.cloneElement(dataComponent!, dataProps),
|
|
405
|
+
...labelComponents,
|
|
327
406
|
];
|
|
328
407
|
return this.renderContainer(groupComponent, children);
|
|
329
408
|
}
|
|
330
409
|
|
|
331
410
|
renderData(props, shouldRenderDatum = datumHasXandY) {
|
|
332
411
|
const { dataComponent, labelComponent, groupComponent } = props;
|
|
333
|
-
const userProps = UserProps.getSafeUserProps(props);
|
|
334
412
|
const dataComponents = this.dataKeys.reduce(
|
|
335
413
|
(validDataComponents, _dataKey, index) => {
|
|
336
414
|
const dataProps = this.getComponentProps(
|
|
337
415
|
dataComponent,
|
|
338
416
|
"data",
|
|
339
|
-
index
|
|
417
|
+
index,
|
|
340
418
|
);
|
|
341
419
|
if (shouldRenderDatum(dataProps.datum)) {
|
|
342
420
|
validDataComponents.push(
|
|
343
|
-
React.cloneElement(dataComponent, dataProps)
|
|
421
|
+
React.cloneElement(dataComponent, dataProps),
|
|
344
422
|
);
|
|
345
423
|
}
|
|
346
424
|
return validDataComponents;
|
|
347
425
|
},
|
|
348
|
-
[]
|
|
426
|
+
[] as React.ReactElement[],
|
|
349
427
|
);
|
|
350
428
|
|
|
351
429
|
const labelComponents = this.dataKeys
|
|
@@ -353,7 +431,7 @@ export default (WrappedComponent, options) => {
|
|
|
353
431
|
const labelProps = this.getComponentProps(
|
|
354
432
|
labelComponent,
|
|
355
433
|
"labels",
|
|
356
|
-
index
|
|
434
|
+
index,
|
|
357
435
|
);
|
|
358
436
|
if (labelProps.text !== undefined && labelProps.text !== null) {
|
|
359
437
|
return React.cloneElement(labelComponent, labelProps);
|
|
@@ -363,8 +441,9 @@ export default (WrappedComponent, options) => {
|
|
|
363
441
|
.filter(Boolean);
|
|
364
442
|
|
|
365
443
|
const children = [...dataComponents, ...labelComponents];
|
|
366
|
-
|
|
367
|
-
return this.renderContainer(group, children);
|
|
444
|
+
return this.renderContainer(groupComponent, children);
|
|
368
445
|
}
|
|
369
|
-
}
|
|
370
|
-
|
|
446
|
+
}
|
|
447
|
+
|
|
448
|
+
return AddEventsMixin;
|
|
449
|
+
}
|