victory-core 36.3.2 → 36.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (253) hide show
  1. package/dist/victory-core.js +15084 -15018
  2. package/dist/victory-core.min.js +1 -1
  3. package/es/index.d.ts +38 -941
  4. package/es/index.js +19 -28
  5. package/es/types.d.ts +33 -0
  6. package/es/types.js +1 -0
  7. package/es/victory-accessible-group/victory-accessible-group.d.ts +25 -0
  8. package/es/victory-accessible-group/victory-accessible-group.js +35 -45
  9. package/es/victory-animation/util.d.ts +66 -0
  10. package/es/victory-animation/util.js +3 -2
  11. package/es/victory-animation/victory-animation.d.ts +69 -0
  12. package/es/victory-animation/victory-animation.js +92 -102
  13. package/es/victory-clip-container/victory-clip-container.d.ts +76 -0
  14. package/es/victory-clip-container/victory-clip-container.js +75 -82
  15. package/es/victory-container/victory-container.d.ts +99 -0
  16. package/es/victory-container/victory-container.js +97 -107
  17. package/es/victory-label/victory-label.d.ts +61 -0
  18. package/es/victory-label/victory-label.js +43 -31
  19. package/es/victory-portal/portal-context.d.ts +11 -0
  20. package/es/victory-portal/portal-context.js +3 -4
  21. package/es/victory-portal/portal.d.ts +28 -0
  22. package/es/victory-portal/portal.js +44 -50
  23. package/es/victory-portal/victory-portal.d.ts +31 -0
  24. package/es/victory-portal/victory-portal.js +38 -47
  25. package/es/victory-primitives/arc.d.ts +21 -0
  26. package/es/victory-primitives/arc.js +9 -9
  27. package/es/victory-primitives/background.d.ts +22 -0
  28. package/es/victory-primitives/background.js +12 -12
  29. package/es/victory-primitives/border.d.ts +18 -0
  30. package/es/victory-primitives/border.js +9 -9
  31. package/es/victory-primitives/circle.d.ts +2 -0
  32. package/es/victory-primitives/circle.js +17 -10
  33. package/es/victory-primitives/clip-path.d.ts +14 -0
  34. package/es/victory-primitives/clip-path.js +6 -6
  35. package/es/victory-primitives/index.d.ts +14 -0
  36. package/es/victory-primitives/index.js +14 -0
  37. package/es/victory-primitives/line-segment.d.ts +19 -0
  38. package/es/victory-primitives/line-segment.js +9 -9
  39. package/es/victory-primitives/line.d.ts +2 -0
  40. package/es/victory-primitives/line.js +17 -10
  41. package/es/victory-primitives/path.d.ts +2 -0
  42. package/es/victory-primitives/path.js +15 -8
  43. package/es/victory-primitives/point.d.ts +21 -0
  44. package/es/victory-primitives/point.js +15 -23
  45. package/es/victory-primitives/rect.d.ts +2 -0
  46. package/es/victory-primitives/rect.js +17 -10
  47. package/es/victory-primitives/text.d.ts +16 -0
  48. package/es/victory-primitives/text.js +13 -8
  49. package/es/victory-primitives/tspan.d.ts +2 -0
  50. package/es/victory-primitives/tspan.js +7 -6
  51. package/es/victory-primitives/types.d.ts +7 -0
  52. package/es/victory-primitives/types.js +1 -0
  53. package/es/victory-primitives/whisker.d.ts +24 -0
  54. package/es/victory-primitives/whisker.js +12 -12
  55. package/es/victory-theme/grayscale.d.ts +2 -0
  56. package/es/victory-theme/grayscale.js +1 -1
  57. package/es/victory-theme/material.d.ts +2 -0
  58. package/es/victory-theme/material.js +1 -1
  59. package/es/victory-theme/victory-theme-definition.d.ts +244 -0
  60. package/es/victory-theme/victory-theme-definition.js +1 -0
  61. package/es/victory-theme/victory-theme.d.ts +5 -0
  62. package/es/victory-theme/victory-theme.js +6 -5
  63. package/es/victory-transition/victory-transition.d.ts +59 -0
  64. package/es/victory-transition/victory-transition.js +38 -44
  65. package/es/victory-util/add-events.js +328 -319
  66. package/es/victory-util/axis.js +12 -6
  67. package/es/victory-util/collection.js +7 -5
  68. package/es/victory-util/common-props.js +2 -2
  69. package/es/victory-util/data.js +8 -6
  70. package/es/victory-util/default-transitions.js +0 -1
  71. package/es/victory-util/domain.js +7 -5
  72. package/es/victory-util/events.js +8 -4
  73. package/es/victory-util/helpers.js +1 -3
  74. package/es/victory-util/hooks/use-animation-state.js +11 -5
  75. package/es/victory-util/immutable.js +0 -1
  76. package/es/victory-util/label-helpers.js +0 -2
  77. package/es/victory-util/line-helpers.js +1 -1
  78. package/es/victory-util/log.js +0 -1
  79. package/es/victory-util/point-path-helpers.d.ts +9 -0
  80. package/es/victory-util/point-path-helpers.js +59 -61
  81. package/es/victory-util/scale.js +19 -19
  82. package/es/victory-util/selection.d.ts +23 -0
  83. package/es/victory-util/selection.js +0 -2
  84. package/es/victory-util/style.js +0 -2
  85. package/es/victory-util/textsize.d.ts +8 -0
  86. package/es/victory-util/textsize.js +11 -7
  87. package/es/victory-util/timer-context.d.ts +11 -0
  88. package/es/victory-util/timer-context.js +1 -1
  89. package/es/victory-util/timer.d.ts +16 -0
  90. package/es/victory-util/timer.js +16 -13
  91. package/es/victory-util/types.d.ts +188 -0
  92. package/es/victory-util/types.js +1 -0
  93. package/es/victory-util/user-props.js +44 -4
  94. package/es/victory-util/wrapper.js +18 -12
  95. package/lib/index.d.ts +38 -941
  96. package/lib/index.js +201 -189
  97. package/lib/types.d.ts +33 -0
  98. package/lib/types.js +1 -0
  99. package/lib/victory-accessible-group/victory-accessible-group.d.ts +25 -0
  100. package/lib/victory-accessible-group/victory-accessible-group.js +37 -45
  101. package/lib/victory-animation/util.d.ts +66 -0
  102. package/lib/victory-animation/util.js +4 -3
  103. package/lib/victory-animation/victory-animation.d.ts +69 -0
  104. package/lib/victory-animation/victory-animation.js +97 -102
  105. package/lib/victory-clip-container/victory-clip-container.d.ts +76 -0
  106. package/lib/victory-clip-container/victory-clip-container.js +81 -82
  107. package/lib/victory-container/victory-container.d.ts +99 -0
  108. package/lib/victory-container/victory-container.js +102 -107
  109. package/lib/victory-label/victory-label.d.ts +61 -0
  110. package/lib/victory-label/victory-label.js +49 -32
  111. package/lib/victory-portal/portal-context.d.ts +11 -0
  112. package/lib/victory-portal/portal-context.js +4 -5
  113. package/lib/victory-portal/portal.d.ts +28 -0
  114. package/lib/victory-portal/portal.js +49 -50
  115. package/lib/victory-portal/victory-portal.d.ts +31 -0
  116. package/lib/victory-portal/victory-portal.js +43 -47
  117. package/lib/victory-primitives/arc.d.ts +21 -0
  118. package/lib/victory-primitives/arc.js +13 -10
  119. package/lib/victory-primitives/background.d.ts +22 -0
  120. package/lib/victory-primitives/background.js +16 -13
  121. package/lib/victory-primitives/border.d.ts +18 -0
  122. package/lib/victory-primitives/border.js +13 -10
  123. package/lib/victory-primitives/circle.d.ts +2 -0
  124. package/lib/victory-primitives/circle.js +17 -8
  125. package/lib/victory-primitives/clip-path.d.ts +14 -0
  126. package/lib/victory-primitives/clip-path.js +7 -5
  127. package/lib/victory-primitives/index.d.ts +14 -0
  128. package/lib/victory-primitives/index.js +187 -0
  129. package/lib/victory-primitives/line-segment.d.ts +19 -0
  130. package/lib/victory-primitives/line-segment.js +13 -10
  131. package/lib/victory-primitives/line.d.ts +2 -0
  132. package/lib/victory-primitives/line.js +17 -8
  133. package/lib/victory-primitives/path.d.ts +2 -0
  134. package/lib/victory-primitives/path.js +15 -6
  135. package/lib/victory-primitives/point.d.ts +21 -0
  136. package/lib/victory-primitives/point.js +21 -25
  137. package/lib/victory-primitives/rect.d.ts +2 -0
  138. package/lib/victory-primitives/rect.js +17 -8
  139. package/lib/victory-primitives/text.d.ts +16 -0
  140. package/lib/victory-primitives/text.js +14 -7
  141. package/lib/victory-primitives/tspan.d.ts +2 -0
  142. package/lib/victory-primitives/tspan.js +7 -4
  143. package/lib/victory-primitives/types.d.ts +7 -0
  144. package/lib/victory-primitives/types.js +1 -0
  145. package/lib/victory-primitives/whisker.d.ts +24 -0
  146. package/lib/victory-primitives/whisker.js +16 -13
  147. package/lib/victory-theme/grayscale.d.ts +2 -0
  148. package/lib/victory-theme/grayscale.js +3 -3
  149. package/lib/victory-theme/material.d.ts +2 -0
  150. package/lib/victory-theme/material.js +3 -3
  151. package/lib/victory-theme/victory-theme-definition.d.ts +244 -0
  152. package/lib/victory-theme/victory-theme-definition.js +1 -0
  153. package/lib/victory-theme/victory-theme.d.ts +5 -0
  154. package/lib/victory-theme/victory-theme.js +22 -8
  155. package/lib/victory-transition/victory-transition.d.ts +59 -0
  156. package/lib/victory-transition/victory-transition.js +43 -45
  157. package/lib/victory-util/add-events.js +326 -316
  158. package/lib/victory-util/axis.js +20 -11
  159. package/lib/victory-util/collection.js +10 -8
  160. package/lib/victory-util/common-props.js +6 -4
  161. package/lib/victory-util/data.js +13 -7
  162. package/lib/victory-util/default-transitions.js +1 -2
  163. package/lib/victory-util/domain.js +11 -5
  164. package/lib/victory-util/events.js +17 -11
  165. package/lib/victory-util/helpers.js +14 -16
  166. package/lib/victory-util/hooks/index.js +4 -4
  167. package/lib/victory-util/hooks/use-animation-state.js +14 -6
  168. package/lib/victory-util/immutable.js +3 -5
  169. package/lib/victory-util/label-helpers.js +6 -6
  170. package/lib/victory-util/line-helpers.js +4 -2
  171. package/lib/victory-util/log.js +0 -1
  172. package/lib/victory-util/point-path-helpers.d.ts +9 -0
  173. package/lib/victory-util/point-path-helpers.js +86 -73
  174. package/lib/victory-util/prop-types.js +5 -3
  175. package/lib/victory-util/scale.js +24 -21
  176. package/lib/victory-util/selection.d.ts +23 -0
  177. package/lib/victory-util/selection.js +5 -5
  178. package/lib/victory-util/style.js +0 -2
  179. package/lib/victory-util/textsize.d.ts +8 -0
  180. package/lib/victory-util/textsize.js +12 -8
  181. package/lib/victory-util/timer-context.d.ts +11 -0
  182. package/lib/victory-util/timer-context.js +1 -1
  183. package/lib/victory-util/timer.d.ts +16 -0
  184. package/lib/victory-util/timer.js +16 -13
  185. package/lib/victory-util/types.d.ts +188 -0
  186. package/lib/victory-util/types.js +1 -0
  187. package/lib/victory-util/user-props.js +53 -6
  188. package/lib/victory-util/wrapper.js +31 -23
  189. package/package.json +6 -13
  190. package/src/index.ts +42 -0
  191. package/src/types.ts +45 -0
  192. package/src/victory-accessible-group/{victory-accessible-group.js → victory-accessible-group.tsx} +10 -3
  193. package/src/victory-animation/{util.js → util.ts} +5 -4
  194. package/src/victory-animation/{victory-animation.js → victory-animation.tsx} +90 -13
  195. package/src/victory-clip-container/{victory-clip-container.js → victory-clip-container.tsx} +32 -6
  196. package/src/victory-container/{victory-container.js → victory-container.tsx} +70 -26
  197. package/src/victory-label/{victory-label.js → victory-label.tsx} +80 -19
  198. package/src/victory-portal/portal-context.ts +14 -0
  199. package/src/victory-portal/{portal.js → portal.tsx} +23 -12
  200. package/src/victory-portal/{victory-portal.js → victory-portal.tsx} +21 -6
  201. package/src/victory-primitives/{arc.js → arc.tsx} +15 -5
  202. package/src/victory-primitives/{background.js → background.tsx} +17 -7
  203. package/src/victory-primitives/{border.js → border.tsx} +12 -5
  204. package/src/victory-primitives/{circle.js → circle.tsx} +4 -3
  205. package/src/victory-primitives/clip-path.tsx +25 -0
  206. package/src/victory-primitives/index.ts +14 -0
  207. package/src/victory-primitives/{line-segment.js → line-segment.tsx} +13 -5
  208. package/src/victory-primitives/{line.js → line.tsx} +4 -3
  209. package/src/victory-primitives/{path.js → path.tsx} +4 -3
  210. package/src/victory-primitives/{point.js → point.tsx} +25 -20
  211. package/src/victory-primitives/{rect.js → rect.tsx} +4 -2
  212. package/src/victory-primitives/{text.js → text.tsx} +9 -3
  213. package/src/victory-primitives/tspan.tsx +7 -0
  214. package/src/victory-primitives/types.ts +19 -0
  215. package/src/victory-primitives/{whisker.js → whisker.tsx} +20 -7
  216. package/src/victory-theme/{grayscale.js → grayscale.tsx} +2 -1
  217. package/src/victory-theme/{material.js → material.tsx} +2 -1
  218. package/src/victory-theme/victory-theme-definition.ts +261 -0
  219. package/src/victory-theme/victory-theme.tsx +5 -0
  220. package/src/victory-transition/{victory-transition.js → victory-transition.tsx} +68 -19
  221. package/src/victory-util/add-events.js +7 -5
  222. package/src/victory-util/axis.js +3 -1
  223. package/src/victory-util/collection.js +0 -1
  224. package/src/victory-util/common-props.js +2 -2
  225. package/src/victory-util/data.js +0 -1
  226. package/src/victory-util/default-transitions.js +0 -1
  227. package/src/victory-util/domain.js +0 -1
  228. package/src/victory-util/events.js +1 -1
  229. package/src/victory-util/helpers.js +0 -1
  230. package/src/victory-util/immutable.js +0 -1
  231. package/src/victory-util/label-helpers.js +0 -1
  232. package/src/victory-util/line-helpers.js +1 -1
  233. package/src/victory-util/log.js +0 -1
  234. package/src/victory-util/point-path-helpers.ts +119 -0
  235. package/src/victory-util/prop-types.js +0 -1
  236. package/src/victory-util/scale.js +18 -10
  237. package/src/victory-util/selection.d.ts +23 -0
  238. package/src/victory-util/selection.js +0 -1
  239. package/src/victory-util/style.js +0 -1
  240. package/src/victory-util/textsize.d.ts +8 -0
  241. package/src/victory-util/{timer-context.js → timer-context.ts} +0 -0
  242. package/src/victory-util/{timer.js → timer.ts} +20 -5
  243. package/src/victory-util/transitions.js +0 -1
  244. package/src/victory-util/types.ts +247 -0
  245. package/src/victory-util/user-props.js +31 -1
  246. package/src/victory-util/wrapper.js +0 -1
  247. package/src/index.d.ts +0 -941
  248. package/src/index.js +0 -51
  249. package/src/victory-portal/portal-context.js +0 -10
  250. package/src/victory-primitives/clip-path.js +0 -18
  251. package/src/victory-primitives/tspan.js +0 -5
  252. package/src/victory-theme/victory-theme.js +0 -7
  253. package/src/victory-util/point-path-helpers.js +0 -121
@@ -0,0 +1,188 @@
1
+ import * as React from "react";
2
+ import { OriginType } from "../victory-label/victory-label";
3
+ import { NumberOrCallback, PaddingProps, VictoryThemeDefinition } from "../victory-theme/victory-theme";
4
+ import { StringOrCallback, StringOrNumberOrCallback } from "../types";
5
+ import { AnimationEasing, AnimationStyle } from "../victory-animation/victory-animation";
6
+ export declare type StringOrNumberOrList = string | number | (string | number)[];
7
+ export interface AnimatePropTypeInterface {
8
+ duration?: number;
9
+ onEnd?: () => void;
10
+ onExit?: {
11
+ duration?: number;
12
+ before?: (datum: any) => AnimationStyle;
13
+ };
14
+ onEnter?: {
15
+ duration?: number;
16
+ before?: (datum: any) => AnimationStyle;
17
+ after?: (datum: any) => AnimationStyle;
18
+ };
19
+ onLoad?: {
20
+ duration?: number;
21
+ before?: (datum: any) => AnimationStyle;
22
+ after?: (datum: any) => AnimationStyle;
23
+ };
24
+ easing?: AnimationEasing;
25
+ animationWhitelist?: string[];
26
+ }
27
+ export interface EventCallbackInterface<TTarget, TEventKey> {
28
+ childName?: string | string[];
29
+ target?: TTarget;
30
+ eventKey?: TEventKey;
31
+ mutation: (props: any) => any;
32
+ callback?: (props: any) => any;
33
+ }
34
+ export interface EventPropTypeInterface<TTarget, TEventKey> {
35
+ childName?: string | Array<StringOrNumberOrCallback>;
36
+ target: TTarget;
37
+ eventKey?: TEventKey;
38
+ eventHandlers: {
39
+ [key: string]: {
40
+ (event: React.SyntheticEvent<any>, props?: any): EventCallbackInterface<TTarget, TEventKey>;
41
+ } | {
42
+ (event: React.SyntheticEvent<any>, props?: any): EventCallbackInterface<TTarget, TEventKey>[];
43
+ } | {
44
+ (event: React.SyntheticEvent<any>, props?: any): void;
45
+ };
46
+ };
47
+ }
48
+ export declare type DomainTuple = [number, number] | [Date, Date];
49
+ export declare type DomainPropObjectType = {
50
+ x?: DomainTuple;
51
+ y: DomainTuple;
52
+ } | {
53
+ x: DomainTuple;
54
+ y?: DomainTuple;
55
+ };
56
+ export declare type DomainPropType = DomainPropObjectType | DomainTuple;
57
+ export declare type PaddingType = number | [number, number];
58
+ export declare type DomainPaddingPropType = PaddingType | {
59
+ x?: PaddingType;
60
+ y?: PaddingType;
61
+ };
62
+ export declare type RangeTuple = [number, number];
63
+ export declare type RangePropType = RangeTuple | {
64
+ x?: RangeTuple;
65
+ y?: RangeTuple;
66
+ };
67
+ /**
68
+ * D3 scale function shape. Don"t want to introduce typing dependency to d3
69
+ */
70
+ export interface D3Scale {
71
+ (input: string | number): number;
72
+ domain: () => any;
73
+ range: () => any;
74
+ copy: () => any;
75
+ }
76
+ export declare type ScalePropType = "linear" | "time" | "log" | "sqrt";
77
+ export declare type CategoryPropType = string[] | {
78
+ x: string[];
79
+ } | {
80
+ y: string[];
81
+ } | {
82
+ x: string[];
83
+ y: string[];
84
+ };
85
+ export declare type DataGetterPropType = number | string | string[] | {
86
+ (data: any): number | string | string[];
87
+ } | Function;
88
+ export declare type InterpolationPropType = "basis" | "basisClosed" | "basisOpen" | "bundle" | "cardinal" | "cardinalClosed" | "cardinalOpen" | "catmullRom" | "catmullRomClosed" | "catmullRomOpen" | "linear" | "linearClosed" | "monotoneX" | "monotoneY" | "natural" | "radial" | "step" | "stepAfter" | "stepBefore";
89
+ export declare type ColorScalePropType = "grayscale" | "qualitative" | "heatmap" | "warm" | "cool" | "red" | "green" | "blue" | string[];
90
+ export declare type SortOrderPropType = "ascending" | "descending";
91
+ export declare type SVGCoordinateType = {
92
+ x: number;
93
+ y: number;
94
+ };
95
+ export interface VictoryCommonThemeProps {
96
+ animate?: boolean | AnimatePropTypeInterface;
97
+ colorScale?: ColorScalePropType;
98
+ containerComponent?: React.ReactElement;
99
+ domainPadding?: DomainPaddingPropType;
100
+ externalEventMutations?: EventCallbackInterface<string | string[], StringOrNumberOrList>[];
101
+ groupComponent?: React.ReactElement;
102
+ height?: number;
103
+ horizontal?: boolean;
104
+ maxDomain?: number | {
105
+ x?: number;
106
+ y?: number;
107
+ };
108
+ minDomain?: number | {
109
+ x?: number;
110
+ y?: number;
111
+ };
112
+ name?: string;
113
+ origin?: OriginType;
114
+ padding?: PaddingProps;
115
+ polar?: boolean;
116
+ range?: RangePropType;
117
+ scale?: ScalePropType | D3Scale | {
118
+ x?: ScalePropType | D3Scale;
119
+ y?: ScalePropType | D3Scale;
120
+ };
121
+ sharedEvents?: {
122
+ events: any[];
123
+ getEventState: Function;
124
+ };
125
+ singleQuadrantDomainPadding?: boolean | {
126
+ x?: boolean;
127
+ y?: boolean;
128
+ };
129
+ standalone?: boolean;
130
+ width?: number;
131
+ }
132
+ export interface VictoryCommonProps extends VictoryCommonThemeProps {
133
+ theme?: VictoryThemeDefinition;
134
+ }
135
+ export interface VictoryCommonPrimitiveProps {
136
+ active?: boolean;
137
+ ariaLabel?: StringOrCallback;
138
+ className?: string;
139
+ clipPath?: string;
140
+ data?: any;
141
+ desc?: string | Function;
142
+ disableInlineStyles?: boolean;
143
+ events?: object;
144
+ id?: number | string | Function;
145
+ index?: number | string;
146
+ origin?: OriginType;
147
+ polar?: boolean;
148
+ role?: string;
149
+ scale?: any;
150
+ shapeRendering?: string;
151
+ style?: any;
152
+ tabIndex?: NumberOrCallback;
153
+ transform?: string;
154
+ }
155
+ export interface VictoryDatableProps {
156
+ categories?: CategoryPropType;
157
+ data?: any[];
158
+ dataComponent?: React.ReactElement;
159
+ domain?: DomainPropType;
160
+ domainPadding?: DomainPaddingPropType;
161
+ samples?: number;
162
+ sortKey?: DataGetterPropType;
163
+ sortOrder?: SortOrderPropType;
164
+ x?: DataGetterPropType;
165
+ y?: DataGetterPropType;
166
+ y0?: DataGetterPropType;
167
+ }
168
+ export interface VictoryLabelableProps {
169
+ labelComponent?: React.ReactElement;
170
+ }
171
+ export interface VictoryMultiLabelableProps extends VictoryLabelableProps {
172
+ labels?: string[] | number[] | {
173
+ (data: any): string | string[] | number | number[] | null;
174
+ };
175
+ }
176
+ export interface VictorySingleLabelableProps extends VictoryLabelableProps {
177
+ label?: string | {
178
+ (data: any): string | number | null;
179
+ };
180
+ }
181
+ export interface TextSizeStyleInterface {
182
+ angle?: number;
183
+ characterConstant?: string;
184
+ fontFamily?: string;
185
+ fontSize?: number | string;
186
+ letterSpacing?: string;
187
+ lineHeight?: number;
188
+ }
@@ -0,0 +1 @@
1
+ "use strict";
@@ -3,17 +3,29 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.getSafeUserProps = void 0;
6
+ exports.withSafeUserProps = exports.getSafeUserProps = void 0;
7
7
 
8
- function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }
8
+ var React = _interopRequireWildcard(require("react"));
9
9
 
10
- function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance"); }
10
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
11
11
 
12
- function _iterableToArrayLimit(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
12
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
13
+
14
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
15
+
16
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
17
+
18
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
19
+
20
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
21
+
22
+ function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
13
23
 
14
24
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
15
25
 
16
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }
26
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
27
+
28
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
17
29
 
18
30
  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
19
31
 
@@ -68,6 +80,21 @@ var testIfSafeProp = function (key) {
68
80
  if (doesPropStartWith(key) || isExactMatch(key)) return true;
69
81
  return false;
70
82
  };
83
+ /**
84
+ * Gets the value from props if a function value is provided
85
+ * @param {any} value: maybe function value
86
+ * @param {Object} props: props object
87
+ * @returns {any} newValue
88
+ */
89
+
90
+
91
+ var getValue = function (value, props) {
92
+ if (typeof value === "function") {
93
+ return value(props);
94
+ }
95
+
96
+ return value;
97
+ };
71
98
  /**
72
99
  * getSafeUserProps - function that takes in a props object and removes any
73
100
  * key-value entries that do not match filter strings in the USER_PROPS_SAFELIST
@@ -86,7 +113,27 @@ var getSafeUserProps = function (props) {
86
113
  key = _ref2[0];
87
114
 
88
115
  return testIfSafeProp(key);
116
+ }).map(function (_ref3) {
117
+ var _ref4 = _slicedToArray(_ref3, 2),
118
+ key = _ref4[0],
119
+ value = _ref4[1];
120
+
121
+ return [key, getValue(value, props)];
89
122
  }));
90
123
  };
124
+ /**
125
+ * Wraps a component and adds safe user props
126
+ *
127
+ * @param {ReactNode} component: parent component
128
+ * @param {Object} props: props to be filtered
129
+ * @returns {ReactNode} modified component
130
+ */
131
+
132
+
133
+ exports.getSafeUserProps = getSafeUserProps;
134
+
135
+ var withSafeUserProps = function (component, props) {
136
+ return /*#__PURE__*/React.cloneElement(component, getSafeUserProps(props));
137
+ };
91
138
 
92
- exports.getSafeUserProps = getSafeUserProps;
139
+ exports.withSafeUserProps = withSafeUserProps;
@@ -4,22 +4,22 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.addBinsToParentPropsIfHistogram = addBinsToParentPropsIfHistogram;
7
- exports.getDataFromChildren = getDataFromChildren;
7
+ exports.getAllEvents = getAllEvents;
8
+ exports.getCategories = getCategories;
9
+ exports.getCategoryAndAxisStringsFromChildren = getCategoryAndAxisStringsFromChildren;
10
+ exports.getChildStyle = getChildStyle;
11
+ exports.getColor = getColor;
8
12
  exports.getData = getData;
9
- exports.getWidth = getWidth;
13
+ exports.getDataFromChildren = getDataFromChildren;
10
14
  exports.getDefaultDomainPadding = getDefaultDomainPadding;
11
- exports.getDomainFromChildren = getDomainFromChildren;
12
15
  exports.getDomain = getDomain;
16
+ exports.getDomainFromChildren = getDomainFromChildren;
13
17
  exports.getScale = getScale;
14
- exports.getAllEvents = getAllEvents;
15
- exports.getColor = getColor;
16
- exports.getStyle = getStyle;
17
- exports.getChildStyle = getChildStyle;
18
18
  exports.getStringsFromCategories = getStringsFromCategories;
19
- exports.getStringsFromData = getStringsFromData;
20
- exports.getCategoryAndAxisStringsFromChildren = getCategoryAndAxisStringsFromChildren;
21
19
  exports.getStringsFromChildren = getStringsFromChildren;
22
- exports.getCategories = getCategories;
20
+ exports.getStringsFromData = getStringsFromData;
21
+ exports.getStyle = getStyle;
22
+ exports.getWidth = getWidth;
23
23
 
24
24
  var _isPlainObject2 = _interopRequireDefault(require("lodash/isPlainObject"));
25
25
 
@@ -59,19 +59,27 @@ var Scale = _interopRequireWildcard(require("./scale"));
59
59
 
60
60
  var Log = _interopRequireWildcard(require("./log"));
61
61
 
62
- function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj.default = obj; return newObj; } }
62
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
63
+
64
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
63
65
 
64
66
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
65
67
 
66
- function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); }
68
+ function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
69
+
70
+ function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
71
+
72
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
73
+
74
+ function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
67
75
 
68
- function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance"); }
76
+ function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
69
77
 
70
- function _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === "[object Arguments]") return Array.from(iter); }
78
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
71
79
 
72
- function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } }
80
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
73
81
 
74
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }
82
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
75
83
 
76
84
  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
77
85
 
@@ -121,7 +129,7 @@ function addBinsToParentPropsIfHistogram(_ref) {
121
129
  }, []);
122
130
  }
123
131
 
124
- return _objectSpread({}, parentProps, {
132
+ return _objectSpread(_objectSpread({}, parentProps), {}, {
125
133
  bins: childBins
126
134
  });
127
135
  }
@@ -157,7 +165,7 @@ function getDataFromChildren(props, childComponents) {
157
165
  if (!Data.isDataComponent(child)) {
158
166
  return null;
159
167
  } else if (child.type && (0, _isFunction2.default)(child.type.getData)) {
160
- child = parent ? _react.default.cloneElement(child, parent.props) : child;
168
+ child = parent ? /*#__PURE__*/_react.default.cloneElement(child, parent.props) : child;
161
169
  childData = child.type.getData(childProps);
162
170
  } else {
163
171
  childData = Data.getData(childProps);
@@ -309,8 +317,8 @@ function getDomain(props, axis, childComponents) {
309
317
  var dataset = (props.data || props.y) && Data.getData(props);
310
318
  var dataDomain = dataset ? Domain.getDomainFromData(props, axis, dataset) : [];
311
319
  var childDomain = getDomainFromChildren(props, axis, childComponents);
312
- var min = minDomain || Collection.getMinValue(_toConsumableArray(dataDomain).concat(_toConsumableArray(childDomain)));
313
- var max = maxDomain || Collection.getMaxValue(_toConsumableArray(dataDomain).concat(_toConsumableArray(childDomain)));
320
+ var min = minDomain || Collection.getMinValue([].concat(_toConsumableArray(dataDomain), _toConsumableArray(childDomain)));
321
+ var max = maxDomain || Collection.getMaxValue([].concat(_toConsumableArray(dataDomain), _toConsumableArray(childDomain)));
314
322
  domain = Domain.getDomainFromMinMax(min, max);
315
323
  }
316
324
 
@@ -470,7 +478,7 @@ function getCategoryAndAxisStringsFromChildren(props, axis, childComponents) {
470
478
  var axisComponent = Axis.getAxisComponent(childComponents, axis);
471
479
  var axisStrings = axisComponent ? Data.getStringsFromAxes(axisComponent.props, axis) : [];
472
480
  var categoryStrings = categories || getStringsFromCategories(childComponents, axis);
473
- return (0, _uniq2.default)((0, _flatten2.default)(_toConsumableArray(categoryStrings).concat(_toConsumableArray(axisStrings))));
481
+ return (0, _uniq2.default)((0, _flatten2.default)([].concat(_toConsumableArray(categoryStrings), _toConsumableArray(axisStrings))));
474
482
  }
475
483
 
476
484
  function getStringsFromChildren(props, childComponents) {
@@ -479,8 +487,8 @@ function getStringsFromChildren(props, childComponents) {
479
487
  var yStrings = getCategoryAndAxisStringsFromChildren(props, "y", childComponents);
480
488
  var dataStrings = getStringsFromData(childComponents);
481
489
  return {
482
- x: (0, _uniq2.default)((0, _flatten2.default)(_toConsumableArray(xStrings).concat(_toConsumableArray(dataStrings.x)))),
483
- y: (0, _uniq2.default)((0, _flatten2.default)(_toConsumableArray(yStrings).concat(_toConsumableArray(dataStrings.y))))
490
+ x: (0, _uniq2.default)((0, _flatten2.default)([].concat(_toConsumableArray(xStrings), _toConsumableArray(dataStrings.x)))),
491
+ y: (0, _uniq2.default)((0, _flatten2.default)([].concat(_toConsumableArray(yStrings), _toConsumableArray(dataStrings.y))))
484
492
  };
485
493
  }
486
494
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "victory-core",
3
- "version": "36.3.2",
3
+ "version": "36.5.0",
4
4
  "description": "Victory Core",
5
5
  "keywords": [
6
6
  "data visualization",
@@ -19,24 +19,17 @@
19
19
  "author": "Formidable",
20
20
  "license": "MIT",
21
21
  "dependencies": {
22
- "d3-ease": "^1.0.0",
23
- "d3-interpolate": "^1.1.1",
24
- "d3-scale": "^1.0.0",
25
- "d3-shape": "^1.2.0",
26
- "d3-timer": "^1.0.0",
27
22
  "lodash": "^4.17.21",
28
- "prop-types": "^15.5.8",
29
- "react-fast-compare": "^2.0.0"
30
- },
31
- "resolutions": {
32
- "d3-interpolate/d3-color": "^3.0.0"
23
+ "prop-types": "^15.8.1",
24
+ "react-fast-compare": "^3.2.0",
25
+ "victory-vendor": "^36.5.0"
33
26
  },
34
27
  "peerDependencies": {
35
- "react": "^16.6.0 || ^17.0.0"
28
+ "react": ">=16.6.0"
36
29
  },
37
30
  "scripts": {
38
31
  "version": "yarn run nps build-libs && nps build-dists"
39
32
  },
40
33
  "sideEffects": false,
41
- "gitHead": "18895d1290245732d14332bbbda10336032c9aab"
34
+ "gitHead": "7cecba921f751c3decc8215f7e866f51d11203c1"
42
35
  }
package/src/index.ts ADDED
@@ -0,0 +1,42 @@
1
+ // This rule doesn't play well with namespaced exports
2
+ /* eslint-disable import/export */
3
+ export * from "./victory-accessible-group/victory-accessible-group";
4
+ export * from "./victory-animation/victory-animation";
5
+ export * from "./victory-container/victory-container";
6
+ export * from "./victory-label/victory-label";
7
+ export * from "./victory-transition/victory-transition";
8
+ export * from "./victory-clip-container/victory-clip-container";
9
+ export * from "./victory-theme/victory-theme";
10
+ export * from "./victory-portal/portal";
11
+ export * from "./victory-portal/portal-context";
12
+ export * from "./victory-portal/victory-portal";
13
+ export * from "./victory-primitives";
14
+ export { Border as Box } from "./victory-primitives";
15
+
16
+ // victory-util:
17
+ export { default as addEvents } from "./victory-util/add-events";
18
+ export * as Collection from "./victory-util/collection";
19
+ export * as Data from "./victory-util/data";
20
+ export * as DefaultTransitions from "./victory-util/default-transitions";
21
+ export * as Domain from "./victory-util/domain";
22
+ export * as Events from "./victory-util/events";
23
+ export * as Helpers from "./victory-util/helpers";
24
+ export * as Immutable from "./victory-util/immutable";
25
+ export * as LabelHelpers from "./victory-util/label-helpers";
26
+ export * as Log from "./victory-util/log";
27
+ export * as PropTypes from "./victory-util/prop-types";
28
+ export * as Scale from "./victory-util/scale";
29
+ export * as Selection from "./victory-util/selection";
30
+ export * as Style from "./victory-util/style";
31
+ export * as TextSize from "./victory-util/textsize";
32
+ export * as Transitions from "./victory-util/transitions";
33
+ export * as UserProps from "./victory-util/user-props";
34
+ export * as CommonProps from "./victory-util/common-props";
35
+ export * as Wrapper from "./victory-util/wrapper";
36
+ export * as Axis from "./victory-util/axis";
37
+ export * as Hooks from "./victory-util/hooks";
38
+ export * as LineHelpers from "./victory-util/line-helpers";
39
+ export { default as Timer } from "./victory-util/timer";
40
+ export * as PointPathHelpers from "./victory-util/point-path-helpers";
41
+ export { default as TimerContext } from "./victory-util/timer-context";
42
+ export * from "./victory-util/types";
package/src/types.ts ADDED
@@ -0,0 +1,45 @@
1
+ /**
2
+ * This is the first parameter of a callback when a callback is used to
3
+ * resolve the value of a property instead of a concrete value.
4
+ *
5
+ * Note that additional properties here like `scale`, `x`, `y`, etc are resolved
6
+ * values of properties from the VictoryXXXProps for each component.
7
+ */
8
+ import type { D3Scale } from "./victory-util/types";
9
+
10
+ export interface CallbackArgs {
11
+ active?: boolean;
12
+ data?: any;
13
+ datum?: any;
14
+ horizontal?: boolean;
15
+ index: number | string;
16
+ x?: number;
17
+ y?: number;
18
+ scale?: {
19
+ x?: D3Scale;
20
+ y?: D3Scale;
21
+ };
22
+ tick?: any;
23
+ ticks?: any;
24
+ text?: any;
25
+ }
26
+
27
+ export type VictoryStringOrNumberCallback = (
28
+ args: CallbackArgs
29
+ ) => string | number;
30
+ export type VictoryStringCallback = (args: CallbackArgs) => string;
31
+ export type StringOrNumberOrCallback =
32
+ | string
33
+ | number
34
+ | VictoryStringOrNumberCallback;
35
+ export type StringOrCallback = string | VictoryStringCallback;
36
+
37
+ export type SliceNumberOrCallback<
38
+ T,
39
+ P extends string | number | symbol = never
40
+ > = number | ((props: Omit<T, P>) => number);
41
+
42
+ export type CoordinatesPropType = {
43
+ x: number;
44
+ y: number;
45
+ };
@@ -1,7 +1,16 @@
1
1
  import React from "react";
2
2
  import PropTypes from "prop-types";
3
3
 
4
- class VictoryAccessibleGroup extends React.Component {
4
+ export interface VictoryAccessibleGroupProps {
5
+ desc?: string;
6
+ "aria-describedby"?: string;
7
+ "aria-label"?: string;
8
+ children?: React.ReactElement | React.ReactElement[];
9
+ className?: string;
10
+ tabIndex?: number;
11
+ }
12
+
13
+ export class VictoryAccessibleGroup extends React.Component<VictoryAccessibleGroupProps> {
5
14
  static displayName = "VictoryAccessibleGroup";
6
15
  static propTypes = {
7
16
  "aria-describedby": PropTypes.string,
@@ -46,5 +55,3 @@ class VictoryAccessibleGroup extends React.Component {
46
55
  );
47
56
  }
48
57
  }
49
-
50
- export default VictoryAccessibleGroup;
@@ -1,4 +1,4 @@
1
- import { interpolate } from "d3-interpolate";
1
+ import { interpolate } from "victory-vendor/d3-interpolate";
2
2
  import { isPlainObject, orderBy } from "lodash";
3
3
 
4
4
  export const isInterpolatable = function (obj) {
@@ -82,8 +82,8 @@ export const interpolateFunction = function (a, b) {
82
82
  if (t >= 1) {
83
83
  return b;
84
84
  }
85
- return function () {
86
- /* eslint-disable no-invalid-this */
85
+ return function (this: unknown) {
86
+ /* eslint-disable no-invalid-this, prefer-rest-params */
87
87
  const aval = typeof a === "function" ? a.apply(this, arguments) : a;
88
88
  const bval = typeof b === "function" ? b.apply(this, arguments) : b;
89
89
  return interpolate(aval, bval)(t);
@@ -182,7 +182,7 @@ export const interpolateString = function (a, b) {
182
182
  * @param {any} b - End value.
183
183
  * @returns {Function|undefined} An interpolation function, if necessary.
184
184
  */
185
- export const victoryInterpolator = function (a, b) {
185
+ export const victoryInterpolator = function <T>(a: T, b: T): (t: number) => T {
186
186
  // If the values are strictly equal, or either value is not interpolatable,
187
187
  // just use either the start value `a` or end value `b` at every step, as
188
188
  // there is no reasonable in-between value.
@@ -193,6 +193,7 @@ export const victoryInterpolator = function (a, b) {
193
193
  return interpolateFunction(a, b);
194
194
  }
195
195
  if (isPlainObject(a) || isPlainObject(b)) {
196
+ // @ts-expect-error These generics are tough, but they work ok?
196
197
  return interpolateObject(a, b);
197
198
  }
198
199
  if (typeof a === "string" || typeof b === "string") {