victory-core 36.6.12 → 36.8.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.
Files changed (154) hide show
  1. package/CHANGELOG.md +26 -0
  2. package/dist/victory-core.js +383 -286
  3. package/dist/victory-core.min.js +1 -1
  4. package/es/victory-label/victory-label.js +11 -11
  5. package/es/victory-primitives/arc.d.ts +0 -5
  6. package/es/victory-primitives/arc.js +7 -7
  7. package/es/victory-primitives/background.d.ts +0 -6
  8. package/es/victory-primitives/background.js +8 -8
  9. package/es/victory-primitives/border.d.ts +0 -5
  10. package/es/victory-primitives/border.js +7 -7
  11. package/es/victory-primitives/circle.d.ts +2 -2
  12. package/es/victory-primitives/circle.js +30 -16
  13. package/es/victory-primitives/clip-path.d.ts +1 -8
  14. package/es/victory-primitives/clip-path.js +4 -10
  15. package/es/victory-primitives/line-segment.d.ts +0 -5
  16. package/es/victory-primitives/line-segment.js +7 -7
  17. package/es/victory-primitives/line.d.ts +2 -2
  18. package/es/victory-primitives/line.js +30 -16
  19. package/es/victory-primitives/path.d.ts +2 -2
  20. package/es/victory-primitives/path.js +31 -12
  21. package/es/victory-primitives/point.d.ts +0 -5
  22. package/es/victory-primitives/point.js +7 -7
  23. package/es/victory-primitives/rect.d.ts +2 -2
  24. package/es/victory-primitives/rect.js +30 -16
  25. package/es/victory-primitives/text.d.ts +1 -9
  26. package/es/victory-primitives/text.js +23 -13
  27. package/es/victory-primitives/tspan.js +30 -5
  28. package/es/victory-primitives/whisker.d.ts +0 -6
  29. package/es/victory-primitives/whisker.js +8 -8
  30. package/es/victory-util/axis.d.ts +1 -1
  31. package/es/victory-util/axis.js +11 -1
  32. package/es/victory-util/helpers.js +4 -3
  33. package/es/victory-util/textsize.js +7 -0
  34. package/es/victory-util/user-props.js +2 -16
  35. package/lib/victory-label/victory-label.js +12 -11
  36. package/lib/victory-primitives/arc.d.ts +0 -5
  37. package/lib/victory-primitives/arc.js +8 -7
  38. package/lib/victory-primitives/background.d.ts +0 -6
  39. package/lib/victory-primitives/background.js +9 -8
  40. package/lib/victory-primitives/border.d.ts +0 -5
  41. package/lib/victory-primitives/border.js +8 -7
  42. package/lib/victory-primitives/circle.d.ts +2 -2
  43. package/lib/victory-primitives/circle.js +34 -18
  44. package/lib/victory-primitives/clip-path.d.ts +1 -8
  45. package/lib/victory-primitives/clip-path.js +5 -12
  46. package/lib/victory-primitives/line-segment.d.ts +0 -5
  47. package/lib/victory-primitives/line-segment.js +8 -7
  48. package/lib/victory-primitives/line.d.ts +2 -2
  49. package/lib/victory-primitives/line.js +34 -18
  50. package/lib/victory-primitives/path.d.ts +2 -2
  51. package/lib/victory-primitives/path.js +34 -13
  52. package/lib/victory-primitives/point.d.ts +0 -5
  53. package/lib/victory-primitives/point.js +8 -7
  54. package/lib/victory-primitives/rect.d.ts +2 -2
  55. package/lib/victory-primitives/rect.js +34 -18
  56. package/lib/victory-primitives/text.d.ts +1 -9
  57. package/lib/victory-primitives/text.js +24 -14
  58. package/lib/victory-primitives/tspan.js +31 -5
  59. package/lib/victory-primitives/whisker.d.ts +0 -6
  60. package/lib/victory-primitives/whisker.js +9 -8
  61. package/lib/victory-util/axis.d.ts +1 -1
  62. package/lib/victory-util/axis.js +11 -1
  63. package/lib/victory-util/helpers.js +8 -3
  64. package/lib/victory-util/textsize.js +7 -0
  65. package/lib/victory-util/user-props.js +3 -16
  66. package/package.json +2 -2
  67. package/src/victory-label/victory-label.tsx +10 -11
  68. package/src/victory-primitives/arc.tsx +7 -7
  69. package/src/victory-primitives/background.tsx +8 -8
  70. package/src/victory-primitives/border.tsx +7 -7
  71. package/src/victory-primitives/circle.tsx +24 -14
  72. package/src/victory-primitives/clip-path.tsx +1 -13
  73. package/src/victory-primitives/line-segment.tsx +7 -7
  74. package/src/victory-primitives/line.tsx +25 -14
  75. package/src/victory-primitives/path.tsx +24 -14
  76. package/src/victory-primitives/point.tsx +7 -7
  77. package/src/victory-primitives/rect.tsx +25 -14
  78. package/src/victory-primitives/text.tsx +13 -10
  79. package/src/victory-primitives/tspan.tsx +15 -4
  80. package/src/victory-primitives/whisker.tsx +8 -8
  81. package/src/victory-util/axis.tsx +14 -1
  82. package/src/victory-util/helpers.ts +5 -3
  83. package/src/victory-util/textsize.ts +5 -1
  84. package/src/victory-util/user-props.ts +2 -14
  85. package/es/v37/clone.d.ts +0 -23
  86. package/es/v37/clone.js +0 -32
  87. package/es/v37/index.d.ts +0 -5
  88. package/es/v37/index.js +0 -4
  89. package/es/v37/victory-state/defaults.d.ts +0 -3
  90. package/es/v37/victory-state/defaults.js +0 -2
  91. package/es/v37/victory-state/helpers/get-axis-data.d.ts +0 -3
  92. package/es/v37/victory-state/helpers/get-axis-data.js +0 -14
  93. package/es/v37/victory-state/helpers/get-data.d.ts +0 -15
  94. package/es/v37/victory-state/helpers/get-data.js +0 -87
  95. package/es/v37/victory-state/helpers/get-domain.d.ts +0 -6
  96. package/es/v37/victory-state/helpers/get-domain.js +0 -67
  97. package/es/v37/victory-state/helpers/get-range.d.ts +0 -6
  98. package/es/v37/victory-state/helpers/get-range.js +0 -36
  99. package/es/v37/victory-state/helpers/get-scale.d.ts +0 -6
  100. package/es/v37/victory-state/helpers/get-scale.js +0 -58
  101. package/es/v37/victory-state/index.d.ts +0 -4
  102. package/es/v37/victory-state/index.js +0 -3
  103. package/es/v37/victory-state/types.d.ts +0 -24
  104. package/es/v37/victory-state/types.js +0 -1
  105. package/es/v37/victory-state/victory-provider.d.ts +0 -21
  106. package/es/v37/victory-state/victory-provider.js +0 -148
  107. package/es/v37/victory-state/with-victory-provider.d.ts +0 -7
  108. package/es/v37/victory-state/with-victory-provider.js +0 -43
  109. package/es/v37/with-container.d.ts +0 -5
  110. package/es/v37/with-container.js +0 -32
  111. package/es/v37/with-normalized-props.d.ts +0 -17
  112. package/es/v37/with-normalized-props.js +0 -18
  113. package/lib/v37/clone.d.ts +0 -23
  114. package/lib/v37/clone.js +0 -43
  115. package/lib/v37/index.d.ts +0 -5
  116. package/lib/v37/index.js +0 -57
  117. package/lib/v37/victory-state/defaults.d.ts +0 -3
  118. package/lib/v37/victory-state/defaults.js +0 -10
  119. package/lib/v37/victory-state/helpers/get-axis-data.d.ts +0 -3
  120. package/lib/v37/victory-state/helpers/get-axis-data.js +0 -22
  121. package/lib/v37/victory-state/helpers/get-data.d.ts +0 -15
  122. package/lib/v37/victory-state/helpers/get-data.js +0 -98
  123. package/lib/v37/victory-state/helpers/get-domain.d.ts +0 -6
  124. package/lib/v37/victory-state/helpers/get-domain.js +0 -81
  125. package/lib/v37/victory-state/helpers/get-range.d.ts +0 -6
  126. package/lib/v37/victory-state/helpers/get-range.js +0 -45
  127. package/lib/v37/victory-state/helpers/get-scale.d.ts +0 -6
  128. package/lib/v37/victory-state/helpers/get-scale.js +0 -73
  129. package/lib/v37/victory-state/index.d.ts +0 -4
  130. package/lib/v37/victory-state/index.js +0 -44
  131. package/lib/v37/victory-state/types.d.ts +0 -24
  132. package/lib/v37/victory-state/types.js +0 -1
  133. package/lib/v37/victory-state/victory-provider.d.ts +0 -21
  134. package/lib/v37/victory-state/victory-provider.js +0 -175
  135. package/lib/v37/victory-state/with-victory-provider.d.ts +0 -7
  136. package/lib/v37/victory-state/with-victory-provider.js +0 -56
  137. package/lib/v37/with-container.d.ts +0 -5
  138. package/lib/v37/with-container.js +0 -45
  139. package/lib/v37/with-normalized-props.d.ts +0 -17
  140. package/lib/v37/with-normalized-props.js +0 -29
  141. package/src/v37/clone.tsx +0 -30
  142. package/src/v37/index.tsx +0 -4
  143. package/src/v37/victory-state/defaults.ts +0 -2
  144. package/src/v37/victory-state/helpers/get-axis-data.ts +0 -14
  145. package/src/v37/victory-state/helpers/get-data.ts +0 -78
  146. package/src/v37/victory-state/helpers/get-domain.ts +0 -62
  147. package/src/v37/victory-state/helpers/get-range.ts +0 -39
  148. package/src/v37/victory-state/helpers/get-scale.ts +0 -67
  149. package/src/v37/victory-state/index.ts +0 -3
  150. package/src/v37/victory-state/types.ts +0 -32
  151. package/src/v37/victory-state/victory-provider.tsx +0 -152
  152. package/src/v37/victory-state/with-victory-provider.tsx +0 -53
  153. package/src/v37/with-container.tsx +0 -38
  154. package/src/v37/with-normalized-props.tsx +0 -43
@@ -1,16 +1,26 @@
1
- import React from "react";
1
+ import React, { forwardRef } from "react";
2
+ import { evaluateProp } from "../victory-util/helpers";
2
3
  import { VictoryPrimitiveShapeProps } from "./types";
3
4
 
4
- export const Circle = (props: VictoryPrimitiveShapeProps) => {
5
- // eslint-disable-next-line react/prop-types
6
- const { desc, ...rest } = props;
7
- return desc ? (
8
- // @ts-expect-error FIXME: "id cannot be a number"
9
- <circle vectorEffect="non-scaling-stroke" {...rest}>
10
- <desc>{desc}</desc>
11
- </circle>
12
- ) : (
13
- // @ts-expect-error FIXME: "id cannot be a number"
14
- <circle vectorEffect="non-scaling-stroke" {...rest} />
15
- );
16
- };
5
+ export const Circle = forwardRef<SVGCircleElement, VictoryPrimitiveShapeProps>(
6
+ (props, ref) => {
7
+ /* eslint-disable-next-line @typescript-eslint/no-unused-vars --
8
+ * origin conflicts with the SVG element's origin attribute
9
+ */
10
+ const { desc, id, tabIndex, origin, ...rest } = props;
11
+
12
+ const svgProps: React.SVGProps<SVGCircleElement> = {
13
+ vectorEffect: "non-scaling-stroke",
14
+ id: evaluateProp(id, props)?.toString(),
15
+ tabIndex: evaluateProp(tabIndex, props),
16
+ ...rest,
17
+ };
18
+ return desc ? (
19
+ <circle {...svgProps} ref={ref}>
20
+ <desc>{desc}</desc>
21
+ </circle>
22
+ ) : (
23
+ <circle {...svgProps} ref={ref} />
24
+ );
25
+ },
26
+ );
@@ -1,5 +1,4 @@
1
1
  import React from "react";
2
- import PropTypes from "prop-types";
3
2
  import { VictoryCommonPrimitiveProps } from "../victory-util/common-props";
4
3
 
5
4
  export interface ClipPathProps extends VictoryCommonPrimitiveProps {
@@ -9,17 +8,6 @@ export interface ClipPathProps extends VictoryCommonPrimitiveProps {
9
8
 
10
9
  export const ClipPath = (props: ClipPathProps) => (
11
10
  <defs>
12
- {
13
- // @ts-expect-error FIXME: "id cannot be a number"
14
- <clipPath id={props.clipId}>{props.children}</clipPath>
15
- }
11
+ {<clipPath id={props.clipId?.toString()}>{props.children}</clipPath>}
16
12
  </defs>
17
13
  );
18
-
19
- ClipPath.propTypes = {
20
- children: PropTypes.oneOfType([
21
- PropTypes.arrayOf(PropTypes.node),
22
- PropTypes.node,
23
- ]),
24
- clipId: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
25
- };
@@ -38,8 +38,14 @@ const evaluateProps = (props) => {
38
38
  return assign({}, props, { ariaLabel, desc, id, style, tabIndex });
39
39
  };
40
40
 
41
+ const defaultProps = {
42
+ lineComponent: <Line />,
43
+ role: "presentation",
44
+ shapeRendering: "auto",
45
+ };
46
+
41
47
  export const LineSegment = (props: LineSegmentProps) => {
42
- props = evaluateProps(props);
48
+ props = evaluateProps({ ...defaultProps, ...props });
43
49
 
44
50
  return React.cloneElement(props.lineComponent!, {
45
51
  ...props.events,
@@ -68,9 +74,3 @@ LineSegment.propTypes = {
68
74
  y1: PropTypes.number,
69
75
  y2: PropTypes.number,
70
76
  };
71
-
72
- LineSegment.defaultProps = {
73
- lineComponent: <Line />,
74
- role: "presentation",
75
- shapeRendering: "auto",
76
- };
@@ -1,16 +1,27 @@
1
- import React from "react";
1
+ import React, { forwardRef } from "react";
2
+ import { evaluateProp } from "../victory-util/helpers";
2
3
  import { VictoryPrimitiveShapeProps } from "./types";
3
4
 
4
- export const Line = (props: VictoryPrimitiveShapeProps) => {
5
- // eslint-disable-next-line react/prop-types
6
- const { desc, ...rest } = props;
7
- return desc ? (
8
- // @ts-expect-error FIXME: "id cannot be a number"
9
- <line vectorEffect="non-scaling-stroke" {...rest}>
10
- <desc>{desc}</desc>
11
- </line>
12
- ) : (
13
- // @ts-expect-error FIXME: "id cannot be a number"
14
- <line vectorEffect="non-scaling-stroke" {...rest} />
15
- );
16
- };
5
+ export const Line = forwardRef<SVGLineElement, VictoryPrimitiveShapeProps>(
6
+ (props, ref) => {
7
+ /* eslint-disable-next-line @typescript-eslint/no-unused-vars --
8
+ * origin conflicts with the SVG element's origin attribute
9
+ */
10
+ const { desc, id, tabIndex, origin, ...rest } = props;
11
+
12
+ const svgProps: React.SVGProps<SVGLineElement> = {
13
+ vectorEffect: "non-scaling-stroke",
14
+ id: evaluateProp(id, props)?.toString(),
15
+ tabIndex: evaluateProp(tabIndex, props),
16
+ ...rest,
17
+ };
18
+
19
+ return desc ? (
20
+ <line {...svgProps} ref={ref}>
21
+ <desc>{desc}</desc>
22
+ </line>
23
+ ) : (
24
+ <line {...svgProps} ref={ref} />
25
+ );
26
+ },
27
+ );
@@ -1,16 +1,26 @@
1
- import React from "react";
1
+ import React, { forwardRef } from "react";
2
+ import { evaluateProp } from "../victory-util/helpers";
2
3
  import { VictoryPrimitiveShapeProps } from "./types";
3
4
 
4
- export const Path = (props: VictoryPrimitiveShapeProps) => {
5
- // eslint-disable-next-line react/prop-types
6
- const { desc, ...rest } = props;
7
- return desc ? (
8
- // @ts-expect-error FIXME: "id cannot be a number"
9
- <path {...rest}>
10
- <desc>{desc}</desc>
11
- </path>
12
- ) : (
13
- // @ts-expect-error FIXME: "id cannot be a number"
14
- <path {...rest} />
15
- );
16
- };
5
+ export const Path = forwardRef<SVGPathElement, VictoryPrimitiveShapeProps>(
6
+ (props, ref) => {
7
+ /* eslint-disable-next-line @typescript-eslint/no-unused-vars --
8
+ * origin conflicts with the SVG element's origin attribute
9
+ */
10
+ const { desc, id, tabIndex, origin, ...rest } = props;
11
+
12
+ const svgProps: React.SVGProps<SVGPathElement> = {
13
+ id: evaluateProp(id, props)?.toString(),
14
+ tabIndex: evaluateProp(tabIndex, props),
15
+ ...rest,
16
+ };
17
+
18
+ return desc ? (
19
+ <path {...svgProps} ref={ref}>
20
+ <desc>{desc}</desc>
21
+ </path>
22
+ ) : (
23
+ <path {...svgProps} ref={ref} />
24
+ );
25
+ },
26
+ );
@@ -66,8 +66,14 @@ const evaluateProps = (props) => {
66
66
  });
67
67
  };
68
68
 
69
+ const defaultProps = {
70
+ pathComponent: <Path />,
71
+ role: "presentation",
72
+ shapeRendering: "auto",
73
+ };
74
+
69
75
  export const Point = (props: PointProps) => {
70
- props = evaluateProps(props);
76
+ props = evaluateProps({ ...defaultProps, ...props });
71
77
  const userProps = UserProps.getSafeUserProps(props);
72
78
 
73
79
  return React.cloneElement(props.pathComponent!, {
@@ -109,9 +115,3 @@ Point.propTypes = {
109
115
  x: PropTypes.number,
110
116
  y: PropTypes.number,
111
117
  };
112
-
113
- Point.defaultProps = {
114
- pathComponent: <Path />,
115
- role: "presentation",
116
- shapeRendering: "auto",
117
- };
@@ -1,16 +1,27 @@
1
- import React from "react";
1
+ import React, { forwardRef } from "react";
2
+ import { evaluateProp } from "../victory-util/helpers";
2
3
  import { VictoryPrimitiveShapeProps } from "./types";
3
4
 
4
- export const Rect = (props: VictoryPrimitiveShapeProps) => {
5
- // eslint-disable-next-line react/prop-types
6
- const { desc, ...rest } = props;
7
- return desc ? (
8
- // @ts-expect-error FIXME: "id cannot be a number"
9
- <rect vectorEffect="non-scaling-stroke" {...rest}>
10
- <desc>{desc}</desc>
11
- </rect>
12
- ) : (
13
- // @ts-expect-error FIXME: "id cannot be a number"
14
- <rect vectorEffect="non-scaling-stroke" {...rest} />
15
- );
16
- };
5
+ export const Rect = forwardRef<SVGRectElement, VictoryPrimitiveShapeProps>(
6
+ (props, ref) => {
7
+ /* eslint-disable-next-line @typescript-eslint/no-unused-vars --
8
+ * origin conflicts with the SVG element's origin attribute
9
+ */
10
+ const { desc, id, tabIndex, origin, ...rest } = props;
11
+
12
+ const svgProps: React.SVGProps<SVGRectElement> = {
13
+ vectorEffect: "non-scaling-stroke",
14
+ id: evaluateProp(id, props)?.toString(),
15
+ tabIndex: evaluateProp(tabIndex, props),
16
+ ...rest,
17
+ };
18
+
19
+ return desc ? (
20
+ <rect {...svgProps} ref={ref}>
21
+ <desc>{desc}</desc>
22
+ </rect>
23
+ ) : (
24
+ <rect {...svgProps} ref={ref} />
25
+ );
26
+ },
27
+ );
@@ -1,5 +1,5 @@
1
1
  import React from "react";
2
- import PropTypes from "prop-types";
2
+ import { evaluateProp } from "../victory-util/helpers";
3
3
  import { VictoryCommonPrimitiveProps } from "../victory-util/common-props";
4
4
 
5
5
  export interface TextProps extends VictoryCommonPrimitiveProps {
@@ -9,19 +9,22 @@ export interface TextProps extends VictoryCommonPrimitiveProps {
9
9
  }
10
10
 
11
11
  export const Text = (props: TextProps) => {
12
- const { children, title, desc, ...rest } = props;
12
+ /* eslint-disable-next-line @typescript-eslint/no-unused-vars --
13
+ * origin conflicts with the SVG element's origin attribute
14
+ */
15
+ const { children, desc, id, origin, tabIndex, title, ...rest } = props;
16
+
17
+ const svgProps: React.SVGProps<SVGTextElement> = {
18
+ id: evaluateProp(id, props)?.toString(),
19
+ tabIndex: evaluateProp(tabIndex, props),
20
+ ...rest,
21
+ };
22
+
13
23
  return (
14
- // @ts-expect-error FIXME: "id cannot be a number"
15
- <text {...rest}>
24
+ <text {...svgProps}>
16
25
  {title && <title>{title}</title>}
17
26
  {desc && <desc>{desc}</desc>}
18
27
  {children}
19
28
  </text>
20
29
  );
21
30
  };
22
-
23
- Text.propTypes = {
24
- children: PropTypes.node,
25
- desc: PropTypes.string,
26
- title: PropTypes.string,
27
- };
@@ -1,7 +1,18 @@
1
1
  import React from "react";
2
+ import { evaluateProp } from "../victory-util/helpers";
2
3
  import { VictoryCommonPrimitiveProps } from "../victory-util/common-props";
3
4
 
4
- export const TSpan = (props: VictoryCommonPrimitiveProps) => (
5
- // @ts-expect-error FIXME: "id cannot be a number"
6
- <tspan {...props} />
7
- );
5
+ export const TSpan = (props: VictoryCommonPrimitiveProps) => {
6
+ /* eslint-disable-next-line @typescript-eslint/no-unused-vars --
7
+ * origin conflicts with the SVG element's origin attribute
8
+ */
9
+ const { desc, id, tabIndex, origin, ...rest } = props;
10
+
11
+ const svgProps: React.SVGProps<SVGTSpanElement> = {
12
+ id: evaluateProp(id, props)?.toString(),
13
+ tabIndex: evaluateProp(tabIndex, props),
14
+ ...rest,
15
+ };
16
+
17
+ return <tspan {...svgProps} />;
18
+ };
@@ -40,8 +40,15 @@ const evaluateProps = (props) => {
40
40
  return assign({}, props, { ariaLabel, desc, id, style, tabIndex });
41
41
  };
42
42
 
43
+ const defaultProps = {
44
+ groupComponent: <g />,
45
+ lineComponent: <Line />,
46
+ role: "presentation",
47
+ shapeRendering: "auto",
48
+ };
49
+
43
50
  export const Whisker = (props: WhiskerProps) => {
44
- props = evaluateProps(props);
51
+ props = evaluateProps({ ...defaultProps, ...props });
45
52
  const {
46
53
  ariaLabel,
47
54
  groupComponent,
@@ -107,10 +114,3 @@ Whisker.propTypes = {
107
114
  y2: PropTypes.number,
108
115
  }),
109
116
  };
110
-
111
- Whisker.defaultProps = {
112
- groupComponent: <g />,
113
- lineComponent: <Line />,
114
- role: "presentation",
115
- shapeRendering: "auto",
116
- };
@@ -181,6 +181,11 @@ function getStringTicks(props) {
181
181
 
182
182
  function getTickArray(props) {
183
183
  const { tickValues, tickFormat } = props;
184
+
185
+ if (tickValues?.length === 0) {
186
+ return [];
187
+ }
188
+
184
189
  const axis = getAxis(props);
185
190
  const stringMap = props.stringMap && props.stringMap[axis];
186
191
  const getTicksFromFormat = () => {
@@ -276,6 +281,11 @@ function downsampleTicks(ticks: number[], tickCount: number) {
276
281
  export function getTicks(props, scale: D3Scale, filterZero = false) {
277
282
  const { tickCount } = props;
278
283
  const tickArray = getTickArray(props);
284
+
285
+ if (tickArray?.length === 0) {
286
+ return [""];
287
+ }
288
+
279
289
  const tickValues = tickArray ? tickArray.map((v) => v.value) : undefined;
280
290
  if (tickValues) {
281
291
  return downsampleTicks(tickValues, tickCount);
@@ -307,7 +317,10 @@ export function getTicks(props, scale: D3Scale, filterZero = false) {
307
317
  function getDomainFromData(props, axis) {
308
318
  const { polar, startAngle = 0, endAngle = 360 } = props;
309
319
  const tickArray = getTickArray(props);
310
- const tickValues = tickArray ? tickArray.map((v) => v.value) : undefined;
320
+ const tickValues =
321
+ tickArray && tickArray?.length !== 0
322
+ ? tickArray.map((v) => v.value)
323
+ : undefined;
311
324
  if (!Array.isArray(tickValues)) {
312
325
  return undefined;
313
326
  }
@@ -1,5 +1,5 @@
1
1
  /* eslint-disable no-use-before-define */
2
- import React from "react";
2
+ import React, { isValidElement } from "react";
3
3
  import { defaults, isFunction, property, pick, assign, keys } from "lodash";
4
4
  import { CallbackArgs } from "../types/callbacks";
5
5
  import { ValueOrAccessor } from "../types/prop-types";
@@ -301,8 +301,10 @@ export function reduceChildren<
301
301
  return memo;
302
302
  }, initialMemo);
303
303
  };
304
- const childNames = children.map((c, i) => i);
305
- return traverseChildren(children, childNames);
304
+
305
+ const validChildren = children.filter(isValidElement);
306
+ const childNames = validChildren.map((c, i) => i);
307
+ return traverseChildren(validChildren, childNames);
306
308
  }
307
309
 
308
310
  /**
@@ -297,7 +297,11 @@ const styleToKeyComponent = (style) => {
297
297
 
298
298
  const _measureDimensionsInternal = memoize(
299
299
  (text: string | string[], style?: TextSizeStyleInterface) => {
300
- const containerElement = _getMeasurementContainer();
300
+ let containerElement = _getMeasurementContainer();
301
+ if (!containerElement.isConnected) {
302
+ _getMeasurementContainer.cache.clear?.();
303
+ containerElement = _getMeasurementContainer();
304
+ }
301
305
 
302
306
  const lines = _splitToLines(text);
303
307
  let heightAcc = 0;
@@ -1,4 +1,5 @@
1
1
  import * as React from "react";
2
+ import { evaluateProp } from "./helpers";
2
3
 
3
4
  /*
4
5
  USER_PROPS_SAFELIST is to contain any string deemed safe for user props.
@@ -54,19 +55,6 @@ const testIfSafeProp = (key: string): key is SafeAttribute => {
54
55
  return false;
55
56
  };
56
57
 
57
- /**
58
- * Gets the value from props if a function value is provided
59
- * @param {any} value: maybe function value
60
- * @param {Object} props: props object
61
- * @returns {any} newValue
62
- */
63
- const getValue = (value, props) => {
64
- if (typeof value === "function") {
65
- return value(props);
66
- }
67
- return value;
68
- };
69
-
70
58
  /**
71
59
  * getSafeUserProps - function that takes in a props object and removes any
72
60
  * key-value entries that do not match filter strings in the USER_PROPS_SAFELIST
@@ -83,7 +71,7 @@ export const getSafeUserProps = <T>(
83
71
  Object.entries(propsToFilter)
84
72
  .filter(([key]) => testIfSafeProp(key))
85
73
  .map(([key, value]) => {
86
- return [key, getValue(value, props)];
74
+ return [key, evaluateProp(value, props)];
87
75
  }),
88
76
  );
89
77
  };
package/es/v37/clone.d.ts DELETED
@@ -1,23 +0,0 @@
1
- import React from "react";
2
- /**
3
- * Syntax sugar for `React.cloneElement`, so that we can use JSX instead
4
- *
5
- * @example
6
- * // Before:
7
- * const children = React.cloneElement(props.groupComponent, { prop2 }, props.children);
8
- * return React.cloneElement(props.containerComponent, { prop1 }, children);
9
- *
10
- * // After:
11
- * return (
12
- * <Clone element={props.containerComponent} prop1={prop1}>
13
- * <Clone element={props.groupComponent} prop2={prop2}>
14
- * {props.children}
15
- * </Clone>
16
- * </Clone>
17
- * );
18
- */
19
- export declare const Clone: <TProps>(props: React.PropsWithChildren<{
20
- element: React.ReactElement<TProps, string | React.JSXElementConstructor<any>>;
21
- children?: React.ReactNode | React.ReactNode[];
22
- } & TProps>) => React.ReactElement<TProps, string | React.JSXElementConstructor<any>>;
23
- //# sourceMappingURL=clone.d.ts.map
package/es/v37/clone.js DELETED
@@ -1,32 +0,0 @@
1
- var _excluded = ["children", "element"];
2
-
3
- function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
4
-
5
- function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
6
-
7
- import React from "react";
8
- /**
9
- * Syntax sugar for `React.cloneElement`, so that we can use JSX instead
10
- *
11
- * @example
12
- * // Before:
13
- * const children = React.cloneElement(props.groupComponent, { prop2 }, props.children);
14
- * return React.cloneElement(props.containerComponent, { prop1 }, children);
15
- *
16
- * // After:
17
- * return (
18
- * <Clone element={props.containerComponent} prop1={prop1}>
19
- * <Clone element={props.groupComponent} prop2={prop2}>
20
- * {props.children}
21
- * </Clone>
22
- * </Clone>
23
- * );
24
- */
25
-
26
- export var Clone = function (props) {
27
- var children = props.children,
28
- element = props.element,
29
- rest = _objectWithoutProperties(props, _excluded);
30
-
31
- return /*#__PURE__*/React.cloneElement(element, rest, children);
32
- };
package/es/v37/index.d.ts DELETED
@@ -1,5 +0,0 @@
1
- export * from "./victory-state";
2
- export * from "./clone";
3
- export * from "./with-normalized-props";
4
- export * from "./with-container";
5
- //# sourceMappingURL=index.d.ts.map
package/es/v37/index.js DELETED
@@ -1,4 +0,0 @@
1
- export * from "./victory-state";
2
- export * from "./clone";
3
- export * from "./with-normalized-props";
4
- export * from "./with-container";
@@ -1,3 +0,0 @@
1
- export declare const DEFAULT_HEIGHT = 300;
2
- export declare const DEFAULT_WIDTH = 450;
3
- //# sourceMappingURL=defaults.d.ts.map
@@ -1,2 +0,0 @@
1
- export var DEFAULT_HEIGHT = 300;
2
- export var DEFAULT_WIDTH = 450;
@@ -1,3 +0,0 @@
1
- import { AxisType, Datum } from "../../../types/prop-types";
2
- export declare function getAxisData(data: Datum[], axis: AxisType): any;
3
- //# sourceMappingURL=get-axis-data.d.ts.map
@@ -1,14 +0,0 @@
1
- import { isKeyValueObject } from "../../../victory-util/type-helpers";
2
- export function getAxisData(data, axis) {
3
- return data.reduce(function (acc, datum) {
4
- if (isKeyValueObject(datum)) {
5
- var value = datum[axis];
6
-
7
- if (value && typeof value !== "string") {
8
- acc.push(value);
9
- }
10
- }
11
-
12
- return acc;
13
- }, []);
14
- }
@@ -1,15 +0,0 @@
1
- import { DatumValue } from "../../../types/prop-types";
2
- import { VictoryProviderProps } from "../types";
3
- declare type DataProps = Pick<VictoryProviderProps, "data" | "x" | "y" | "sortKey" | "sortOrder" | "samples">;
4
- export interface FormattedDatum {
5
- x: DatumValue;
6
- y: DatumValue;
7
- _x: number | Date;
8
- _y: number | Date;
9
- xName?: string;
10
- yName?: string;
11
- [key: string]: DatumValue;
12
- }
13
- export declare function getData({ x: xAccessor, y: yAccessor, sortKey, sortOrder, data, }?: DataProps): FormattedDatum[];
14
- export {};
15
- //# sourceMappingURL=get-data.d.ts.map
@@ -1,87 +0,0 @@
1
- import _orderBy from "lodash/orderBy";
2
- import _isNil from "lodash/isNil";
3
- import _get from "lodash/get";
4
-
5
- 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; }
6
-
7
- 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; }
8
-
9
- 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; }
10
-
11
- function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
12
-
13
- 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."); }
14
-
15
- 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); }
16
-
17
- function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
18
-
19
- function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
20
-
21
- 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; }
22
-
23
- import { isKeyValueObject } from "../../../victory-util/type-helpers";
24
-
25
- function getValue(datum, key) {
26
- if (typeof datum === "object") {
27
- return _get(datum, key);
28
- }
29
-
30
- return datum;
31
- }
32
-
33
- function getNumericValue(value, fallback) {
34
- if (typeof value === "number" || value instanceof Date) {
35
- return value;
36
- }
37
-
38
- return fallback;
39
- }
40
-
41
- export function getData() {
42
- var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
43
- _ref$x = _ref.x,
44
- xAccessor = _ref$x === void 0 ? "x" : _ref$x,
45
- _ref$y = _ref.y,
46
- yAccessor = _ref$y === void 0 ? "y" : _ref$y,
47
- sortKey = _ref.sortKey,
48
- _ref$sortOrder = _ref.sortOrder,
49
- sortOrder = _ref$sortOrder === void 0 ? "ascending" : _ref$sortOrder,
50
- _ref$data = _ref.data,
51
- data = _ref$data === void 0 ? [] : _ref$data;
52
-
53
- var formattedData = data.reduce(function (nonNullData, datum, index) {
54
- var x = getValue(datum, xAccessor);
55
- var y = getValue(datum, yAccessor);
56
-
57
- if (_isNil(x) || _isNil(y)) {
58
- return nonNullData;
59
- }
60
-
61
- var _x = getNumericValue(x, index + 1);
62
-
63
- var _y = getNumericValue(y, index + 1); // TODO: Get this value if it is different
64
-
65
-
66
- var xName = typeof x === "string" ? x : undefined;
67
- var yName = typeof y === "string" ? y : undefined;
68
- var additionalProperties = isKeyValueObject(datum) ? datum : {};
69
- return [].concat(_toConsumableArray(nonNullData), [_objectSpread(_objectSpread(_objectSpread({
70
- x: x,
71
- y: y,
72
- _x: _x,
73
- _y: _y
74
- }, xName ? {
75
- xName: xName
76
- } : {}), yName ? {
77
- yName: yName
78
- } : {}), additionalProperties)]);
79
- }, []);
80
-
81
- if (sortKey) {
82
- var order = sortOrder === "descending" ? "desc" : "asc";
83
- return _orderBy(formattedData, sortKey, order);
84
- }
85
-
86
- return formattedData;
87
- }
@@ -1,6 +0,0 @@
1
- import { VictoryProviderProps } from "../types";
2
- import { AxisType, DomainTuple } from "../../../types/prop-types";
3
- declare type DomainProps = Pick<VictoryProviderProps, "data" | "domain" | "maxDomain" | "minDomain" | "includeZero">;
4
- export declare function getDomain({ data, includeZero, ...props }: DomainProps, axis: AxisType): DomainTuple;
5
- export {};
6
- //# sourceMappingURL=get-domain.d.ts.map