victory-core 36.6.3 → 36.6.6

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 (107) hide show
  1. package/CHANGELOG.md +25 -0
  2. package/dist/victory-core.js +2053 -4568
  3. package/dist/victory-core.min.js +1 -1
  4. package/es/index.d.ts +0 -1
  5. package/es/index.js +1 -2
  6. package/es/types/callbacks.d.ts +0 -1
  7. package/es/types/prop-types.d.ts +3 -3
  8. package/es/v37/clone.d.ts +23 -0
  9. package/es/v37/clone.js +32 -0
  10. package/es/v37/index.d.ts +5 -0
  11. package/es/v37/index.js +4 -0
  12. package/es/{victory-state → v37/victory-state}/defaults.d.ts +0 -0
  13. package/es/{victory-state → v37/victory-state}/defaults.js +0 -0
  14. package/es/v37/victory-state/helpers/get-axis-data.d.ts +3 -0
  15. package/es/{victory-state → v37/victory-state}/helpers/get-axis-data.js +1 -1
  16. package/es/{victory-state → v37/victory-state}/helpers/get-data.d.ts +1 -1
  17. package/es/{victory-state → v37/victory-state}/helpers/get-data.js +1 -1
  18. package/{lib → es/v37}/victory-state/helpers/get-domain.d.ts +1 -1
  19. package/es/{victory-state → v37/victory-state}/helpers/get-domain.js +1 -1
  20. package/{lib → es/v37}/victory-state/helpers/get-range.d.ts +1 -1
  21. package/es/{victory-state → v37/victory-state}/helpers/get-range.js +2 -2
  22. package/{lib → es/v37}/victory-state/helpers/get-scale.d.ts +1 -1
  23. package/es/{victory-state → v37/victory-state}/helpers/get-scale.js +2 -2
  24. package/es/v37/victory-state/index.d.ts +4 -0
  25. package/es/{victory-state/index.d.ts → v37/victory-state/index.js} +1 -1
  26. package/{lib → es/v37}/victory-state/types.d.ts +2 -2
  27. package/es/{victory-state → v37/victory-state}/types.js +0 -0
  28. package/{lib → es/v37}/victory-state/victory-provider.d.ts +5 -4
  29. package/es/{victory-state → v37/victory-state}/victory-provider.js +58 -27
  30. package/es/v37/victory-state/with-victory-provider.d.ts +7 -0
  31. package/es/v37/victory-state/with-victory-provider.js +43 -0
  32. package/es/{victory-util → v37}/with-container.d.ts +2 -2
  33. package/es/{victory-util → v37}/with-container.js +1 -1
  34. package/es/v37/with-normalized-props.d.ts +17 -0
  35. package/es/v37/with-normalized-props.js +18 -0
  36. package/es/victory-label/victory-label.d.ts +5 -4
  37. package/es/victory-util/helpers.d.ts +3 -2
  38. package/es/victory-util/immutable-types.d.ts +2523 -0
  39. package/es/victory-util/immutable.d.ts +1 -1
  40. package/es/victory-util/index.d.ts +0 -1
  41. package/es/victory-util/index.js +1 -2
  42. package/lib/index.d.ts +0 -1
  43. package/lib/index.js +0 -14
  44. package/lib/types/callbacks.d.ts +0 -1
  45. package/lib/types/prop-types.d.ts +3 -3
  46. package/lib/v37/clone.d.ts +23 -0
  47. package/lib/v37/clone.js +43 -0
  48. package/lib/v37/index.d.ts +5 -0
  49. package/lib/v37/index.js +57 -0
  50. package/lib/{victory-state → v37/victory-state}/defaults.d.ts +0 -0
  51. package/lib/{victory-state → v37/victory-state}/defaults.js +0 -0
  52. package/lib/v37/victory-state/helpers/get-axis-data.d.ts +3 -0
  53. package/lib/{victory-state → v37/victory-state}/helpers/get-axis-data.js +1 -1
  54. package/lib/{victory-state → v37/victory-state}/helpers/get-data.d.ts +1 -1
  55. package/lib/{victory-state → v37/victory-state}/helpers/get-data.js +1 -1
  56. package/{es → lib/v37}/victory-state/helpers/get-domain.d.ts +1 -1
  57. package/lib/{victory-state → v37/victory-state}/helpers/get-domain.js +1 -1
  58. package/{es → lib/v37}/victory-state/helpers/get-range.d.ts +1 -1
  59. package/lib/{victory-state → v37/victory-state}/helpers/get-range.js +2 -2
  60. package/{es → lib/v37}/victory-state/helpers/get-scale.d.ts +1 -1
  61. package/lib/{victory-state → v37/victory-state}/helpers/get-scale.js +2 -2
  62. package/lib/v37/victory-state/index.d.ts +4 -0
  63. package/lib/{victory-state → v37/victory-state}/index.js +13 -0
  64. package/{es → lib/v37}/victory-state/types.d.ts +2 -2
  65. package/lib/{victory-state → v37/victory-state}/types.js +0 -0
  66. package/{es → lib/v37}/victory-state/victory-provider.d.ts +5 -4
  67. package/lib/{victory-state → v37/victory-state}/victory-provider.js +60 -28
  68. package/lib/v37/victory-state/with-victory-provider.d.ts +7 -0
  69. package/lib/v37/victory-state/with-victory-provider.js +56 -0
  70. package/lib/{victory-util → v37}/with-container.d.ts +2 -2
  71. package/lib/{victory-util → v37}/with-container.js +1 -1
  72. package/lib/v37/with-normalized-props.d.ts +17 -0
  73. package/lib/v37/with-normalized-props.js +29 -0
  74. package/lib/victory-label/victory-label.d.ts +5 -4
  75. package/lib/victory-util/helpers.d.ts +3 -2
  76. package/lib/victory-util/immutable-types.d.ts +2523 -0
  77. package/lib/victory-util/immutable.d.ts +1 -1
  78. package/lib/victory-util/index.d.ts +0 -1
  79. package/lib/victory-util/index.js +0 -14
  80. package/package.json +2 -2
  81. package/src/index.ts +0 -1
  82. package/src/types/callbacks.ts +0 -2
  83. package/src/types/prop-types.ts +4 -3
  84. package/src/v37/clone.tsx +30 -0
  85. package/src/v37/index.tsx +4 -0
  86. package/src/{victory-state → v37/victory-state}/defaults.ts +0 -0
  87. package/src/{victory-state → v37/victory-state}/helpers/get-axis-data.ts +2 -2
  88. package/src/{victory-state → v37/victory-state}/helpers/get-data.ts +3 -3
  89. package/src/{victory-state → v37/victory-state}/helpers/get-domain.ts +2 -2
  90. package/src/{victory-state → v37/victory-state}/helpers/get-range.ts +3 -3
  91. package/src/{victory-state → v37/victory-state}/helpers/get-scale.ts +6 -3
  92. package/src/{victory-state → v37/victory-state}/index.ts +1 -0
  93. package/src/{victory-state → v37/victory-state}/types.ts +2 -2
  94. package/src/{victory-state → v37/victory-state}/victory-provider.tsx +61 -27
  95. package/src/v37/victory-state/with-victory-provider.tsx +53 -0
  96. package/src/{victory-util → v37}/with-container.tsx +2 -2
  97. package/src/v37/with-normalized-props.tsx +43 -0
  98. package/src/victory-label/victory-label.tsx +4 -4
  99. package/src/victory-util/data.ts +1 -1
  100. package/src/victory-util/helpers.ts +3 -2
  101. package/src/victory-util/immutable-types.d.ts +2523 -0
  102. package/src/victory-util/immutable.ts +1 -1
  103. package/src/victory-util/index.ts +0 -1
  104. package/es/victory-state/helpers/get-axis-data.d.ts +0 -3
  105. package/es/victory-state/index.js +0 -2
  106. package/lib/victory-state/helpers/get-axis-data.d.ts +0 -3
  107. package/lib/victory-state/index.d.ts +0 -3
@@ -1,4 +1,4 @@
1
- import type { Iterable, List, Map } from "immutable";
1
+ import type { Iterable, List, Map } from "./immutable-types";
2
2
  export declare const IMMUTABLE_ITERABLE = "@@__IMMUTABLE_ITERABLE__@@";
3
3
  export declare const IMMUTABLE_RECORD = "@@__IMMUTABLE_RECORD__@@";
4
4
  export declare const IMMUTABLE_LIST = "@@__IMMUTABLE_LIST__@@";
@@ -25,5 +25,4 @@ export { default as TimerContext } from "./timer-context";
25
25
  export * as Transitions from "./transitions";
26
26
  export * as UserProps from "./user-props";
27
27
  export * as Wrapper from "./wrapper";
28
- export * from "./with-container";
29
28
  //# sourceMappingURL=index.d.ts.map
@@ -43,5 +43,4 @@ export { _Transitions as Transitions };
43
43
  import * as _UserProps from "./user-props";
44
44
  export { _UserProps as UserProps };
45
45
  import * as _Wrapper from "./wrapper";
46
- export { _Wrapper as Wrapper };
47
- export * from "./with-container";
46
+ export { _Wrapper as Wrapper };
package/lib/index.d.ts CHANGED
@@ -15,5 +15,4 @@ export * from "./victory-primitives";
15
15
  export { Border as Box } from "./victory-primitives";
16
16
  export type { BorderProps as BoxProps } from "./victory-primitives";
17
17
  export * from "./victory-util";
18
- export * from "./victory-state";
19
18
  //# sourceMappingURL=index.d.ts.map
package/lib/index.js CHANGED
@@ -221,18 +221,4 @@ Object.keys(_victoryUtil).forEach(function (key) {
221
221
  return _victoryUtil[key];
222
222
  }
223
223
  });
224
- });
225
-
226
- var _victoryState = require("./victory-state");
227
-
228
- Object.keys(_victoryState).forEach(function (key) {
229
- if (key === "default" || key === "__esModule") return;
230
- if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
231
- if (key in exports && exports[key] === _victoryState[key]) return;
232
- Object.defineProperty(exports, key, {
233
- enumerable: true,
234
- get: function () {
235
- return _victoryState[key];
236
- }
237
- });
238
224
  });
@@ -34,5 +34,4 @@ export declare type VictoryOrientationCallback = (args: CallbackArgs) => Orienta
34
34
  export declare type NumberOrCallback = number | VictoryNumberCallback;
35
35
  export declare type PaddingOrCallback = number | BlockProps | VictoryPaddingCallback;
36
36
  export declare type OrientationOrCallback = OrientationTypes | VictoryOrientationCallback;
37
- export declare type ValueOrCallback<TValue> = TValue | ((args: CallbackArgs) => TValue);
38
37
  //# sourceMappingURL=callbacks.d.ts.map
@@ -1,7 +1,7 @@
1
1
  import * as React from "react";
2
2
  import { ScaleLinear, ScaleLogarithmic, ScalePower, ScaleTime } from "victory-vendor/d3-scale";
3
3
  import { AnimationEasing, AnimationStyle } from "../victory-animation/victory-animation";
4
- import { StringOrNumberOrCallback } from "./callbacks";
4
+ import { CallbackArgs, StringOrNumberOrCallback } from "./callbacks";
5
5
  export declare type AxisType = "x" | "y";
6
6
  export declare type DatumValue = number | string | Date | null | undefined;
7
7
  export declare type Datum = any;
@@ -10,7 +10,7 @@ export declare type ForAxes<T> = T | {
10
10
  y?: T;
11
11
  };
12
12
  export declare type ID = number | string;
13
- export declare type ValueOrAccessor<ValueType = unknown, PropsType = object> = ValueType | ((props: PropsType) => ValueType);
13
+ export declare type ValueOrAccessor<ValueType, PropsType = CallbackArgs> = ValueType | ((props: PropsType) => ValueType);
14
14
  export declare type Tuple<T> = [T, T];
15
15
  export declare type ValueOrAxes<T> = T | ForAxes<T>;
16
16
  export declare type DomainPaddingPropType = ValueOrAxes<PaddingType>;
@@ -105,7 +105,7 @@ export declare type CategoryPropType = string[] | {
105
105
  x: string[];
106
106
  y: string[];
107
107
  };
108
- export declare type DataGetterPropType = ValueOrAccessor<string | string[] | number | number[]>;
108
+ export declare type DataGetterPropType = ValueOrAccessor<string | string[] | number | number[], any>;
109
109
  export declare type InterpolationPropType = "basis" | "basisClosed" | "basisOpen" | "bundle" | "cardinal" | "cardinalClosed" | "cardinalOpen" | "catmullRom" | "catmullRomClosed" | "catmullRomOpen" | "linear" | "linearClosed" | "monotoneX" | "monotoneY" | "natural" | "radial" | "step" | "stepAfter" | "stepBefore";
110
110
  export declare type ColorScalePropType = "grayscale" | "qualitative" | "heatmap" | "warm" | "cool" | "red" | "green" | "blue" | string[];
111
111
  export declare type SortOrderPropType = "ascending" | "descending";
@@ -0,0 +1,23 @@
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
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.Clone = void 0;
7
+
8
+ var _react = _interopRequireDefault(require("react"));
9
+
10
+ var _excluded = ["children", "element"];
11
+
12
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
+
14
+ 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; }
15
+
16
+ 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; }
17
+
18
+ /**
19
+ * Syntax sugar for `React.cloneElement`, so that we can use JSX instead
20
+ *
21
+ * @example
22
+ * // Before:
23
+ * const children = React.cloneElement(props.groupComponent, { prop2 }, props.children);
24
+ * return React.cloneElement(props.containerComponent, { prop1 }, children);
25
+ *
26
+ * // After:
27
+ * return (
28
+ * <Clone element={props.containerComponent} prop1={prop1}>
29
+ * <Clone element={props.groupComponent} prop2={prop2}>
30
+ * {props.children}
31
+ * </Clone>
32
+ * </Clone>
33
+ * );
34
+ */
35
+ var Clone = function (props) {
36
+ var children = props.children,
37
+ element = props.element,
38
+ rest = _objectWithoutProperties(props, _excluded);
39
+
40
+ return /*#__PURE__*/_react.default.cloneElement(element, rest, children);
41
+ };
42
+
43
+ exports.Clone = Clone;
@@ -0,0 +1,5 @@
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
@@ -0,0 +1,57 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+
7
+ var _victoryState = require("./victory-state");
8
+
9
+ Object.keys(_victoryState).forEach(function (key) {
10
+ if (key === "default" || key === "__esModule") return;
11
+ if (key in exports && exports[key] === _victoryState[key]) return;
12
+ Object.defineProperty(exports, key, {
13
+ enumerable: true,
14
+ get: function () {
15
+ return _victoryState[key];
16
+ }
17
+ });
18
+ });
19
+
20
+ var _clone = require("./clone");
21
+
22
+ Object.keys(_clone).forEach(function (key) {
23
+ if (key === "default" || key === "__esModule") return;
24
+ if (key in exports && exports[key] === _clone[key]) return;
25
+ Object.defineProperty(exports, key, {
26
+ enumerable: true,
27
+ get: function () {
28
+ return _clone[key];
29
+ }
30
+ });
31
+ });
32
+
33
+ var _withNormalizedProps = require("./with-normalized-props");
34
+
35
+ Object.keys(_withNormalizedProps).forEach(function (key) {
36
+ if (key === "default" || key === "__esModule") return;
37
+ if (key in exports && exports[key] === _withNormalizedProps[key]) return;
38
+ Object.defineProperty(exports, key, {
39
+ enumerable: true,
40
+ get: function () {
41
+ return _withNormalizedProps[key];
42
+ }
43
+ });
44
+ });
45
+
46
+ var _withContainer = require("./with-container");
47
+
48
+ Object.keys(_withContainer).forEach(function (key) {
49
+ if (key === "default" || key === "__esModule") return;
50
+ if (key in exports && exports[key] === _withContainer[key]) return;
51
+ Object.defineProperty(exports, key, {
52
+ enumerable: true,
53
+ get: function () {
54
+ return _withContainer[key];
55
+ }
56
+ });
57
+ });
@@ -0,0 +1,3 @@
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
@@ -5,7 +5,7 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.getAxisData = getAxisData;
7
7
 
8
- var _typeHelpers = require("../../victory-util/type-helpers");
8
+ var _typeHelpers = require("../../../victory-util/type-helpers");
9
9
 
10
10
  function getAxisData(data, axis) {
11
11
  return data.reduce(function (acc, datum) {
@@ -1,4 +1,4 @@
1
- import { DatumValue } from "../../types/prop-types";
1
+ import { DatumValue } from "../../../types/prop-types";
2
2
  import { VictoryProviderProps } from "../types";
3
3
  declare type DataProps = Pick<VictoryProviderProps, "data" | "x" | "y" | "sortKey" | "sortOrder" | "samples">;
4
4
  export interface FormattedDatum {
@@ -11,7 +11,7 @@ var _isNil2 = _interopRequireDefault(require("lodash/isNil"));
11
11
 
12
12
  var _get2 = _interopRequireDefault(require("lodash/get"));
13
13
 
14
- var _typeHelpers = require("../../victory-util/type-helpers");
14
+ var _typeHelpers = require("../../../victory-util/type-helpers");
15
15
 
16
16
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
17
17
 
@@ -1,5 +1,5 @@
1
1
  import { VictoryProviderProps } from "../types";
2
- import { AxisType, DomainTuple } from "../../types/prop-types";
2
+ import { AxisType, DomainTuple } from "../../../types/prop-types";
3
3
  declare type DomainProps = Pick<VictoryProviderProps, "data" | "domain" | "maxDomain" | "minDomain" | "includeZero">;
4
4
  export declare function getDomain({ data, includeZero, ...props }: DomainProps, axis: AxisType): DomainTuple;
5
5
  export {};
@@ -9,7 +9,7 @@ var d3Array = _interopRequireWildcard(require("victory-vendor/d3-array"));
9
9
 
10
10
  var _getAxisData = require("./get-axis-data");
11
11
 
12
- var _typeHelpers = require("../../victory-util/type-helpers");
12
+ var _typeHelpers = require("../../../victory-util/type-helpers");
13
13
 
14
14
  var _excluded = ["data", "includeZero"];
15
15
 
@@ -1,4 +1,4 @@
1
- import { AxisType } from "../../types/prop-types";
1
+ import { AxisType } from "../../../types/prop-types";
2
2
  import { VictoryProviderProps } from "../types";
3
3
  declare type RangeProps = Pick<VictoryProviderProps, "range" | "padding" | "height" | "width">;
4
4
  export declare function getRange({ range, height, width, ...props }: RangeProps, axis: AxisType): number[];
@@ -5,9 +5,9 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.getRange = getRange;
7
7
 
8
- var _helpers = require("../../victory-util/helpers");
8
+ var _helpers = require("../../../victory-util/helpers");
9
9
 
10
- var _typeHelpers = require("../../victory-util/type-helpers");
10
+ var _typeHelpers = require("../../../victory-util/type-helpers");
11
11
 
12
12
  var _excluded = ["range", "height", "width"];
13
13
 
@@ -1,4 +1,4 @@
1
- import { AxisType, D3ScaleFn } from "../../types/prop-types";
1
+ import { AxisType, D3ScaleFn } from "../../../types/prop-types";
2
2
  import { VictoryProviderProps } from "../types";
3
3
  declare type ScaleProps = Pick<VictoryProviderProps, "data" | "scale">;
4
4
  export declare function getScale({ data, ...props }: ScaleProps, axis: AxisType): D3ScaleFn;
@@ -7,9 +7,9 @@ exports.getScale = getScale;
7
7
 
8
8
  var _d3Scale = require("victory-vendor/d3-scale");
9
9
 
10
- var Collection = _interopRequireWildcard(require("../../victory-util/collection"));
10
+ var Collection = _interopRequireWildcard(require("../../../victory-util/collection"));
11
11
 
12
- var _typeHelpers = require("../../victory-util/type-helpers");
12
+ var _typeHelpers = require("../../../victory-util/type-helpers");
13
13
 
14
14
  var _getAxisData = require("./get-axis-data");
15
15
 
@@ -0,0 +1,4 @@
1
+ export * from "./victory-provider";
2
+ export * from "./types";
3
+ export * from "./with-victory-provider";
4
+ //# sourceMappingURL=index.d.ts.map
@@ -28,4 +28,17 @@ Object.keys(_types).forEach(function (key) {
28
28
  return _types[key];
29
29
  }
30
30
  });
31
+ });
32
+
33
+ var _withVictoryProvider = require("./with-victory-provider");
34
+
35
+ Object.keys(_withVictoryProvider).forEach(function (key) {
36
+ if (key === "default" || key === "__esModule") return;
37
+ if (key in exports && exports[key] === _withVictoryProvider[key]) return;
38
+ Object.defineProperty(exports, key, {
39
+ enumerable: true,
40
+ get: function () {
41
+ return _withVictoryProvider[key];
42
+ }
43
+ });
31
44
  });
@@ -1,6 +1,6 @@
1
1
  /// <reference types="react" />
2
- import { D3ScaleFn, Datum, DomainTuple, RangeTuple, ScalePropType, ValueOrAxes } from "../types/prop-types";
3
- import { PaddingProps } from "../victory-theme/types";
2
+ import { D3ScaleFn, Datum, DomainTuple, RangeTuple, ScalePropType, ValueOrAxes } from "../../types/prop-types";
3
+ import { PaddingProps } from "../../victory-theme/types";
4
4
  export interface VictoryCalculatedStateProps {
5
5
  data?: Datum[];
6
6
  domain?: ValueOrAxes<DomainTuple>;
@@ -1,5 +1,5 @@
1
1
  /// <reference types="react" />
2
- import { D3ScaleFn, DomainTuple, ForAxes } from "../types/prop-types";
2
+ import { D3ScaleFn, DomainTuple, ForAxes } from "../../types/prop-types";
3
3
  import { FormattedDatum } from "./helpers/get-data";
4
4
  import { VictoryCalculatedStateProps, VictoryProviderProps } from "./types";
5
5
  declare type ScaleType = Required<ForAxes<D3ScaleFn>>;
@@ -8,13 +8,14 @@ export interface ContextType {
8
8
  data: FormattedDatum[];
9
9
  scale: ScaleType;
10
10
  domain: DomainType;
11
- setChildProps: (id: string, props: VictoryProviderProps) => void;
11
+ updateChildProps: (id: symbol, props: VictoryProviderProps | null) => void;
12
12
  }
13
- export declare function VictoryProvider({ children, ...initialProps }: VictoryProviderProps): JSX.Element;
13
+ export declare function VictoryProvider({ children, ...providerProps }: VictoryProviderProps): JSX.Element;
14
+ export declare function useVictoryContextMaybe<T>(selector: (value: ContextType | null) => T): T;
14
15
  export declare function useVictoryContext<T>(selector: (value: ContextType) => T): T;
15
16
  export declare function useScale(): ScaleType;
16
17
  export declare function useData(): FormattedDatum[];
17
18
  export declare function useDomain(): DomainType;
18
- export declare function useVictoryProviderSync(id: string, props: VictoryCalculatedStateProps): VictoryCalculatedStateProps;
19
+ export declare function useVictoryProviderSync(props: VictoryCalculatedStateProps): void;
19
20
  export {};
20
21
  //# sourceMappingURL=victory-provider.d.ts.map
@@ -8,6 +8,7 @@ exports.useData = useData;
8
8
  exports.useDomain = useDomain;
9
9
  exports.useScale = useScale;
10
10
  exports.useVictoryContext = useVictoryContext;
11
+ exports.useVictoryContextMaybe = useVictoryContextMaybe;
11
12
  exports.useVictoryProviderSync = useVictoryProviderSync;
12
13
 
13
14
  var React = _interopRequireWildcard(require("react"));
@@ -26,6 +27,10 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
26
27
 
27
28
  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; }
28
29
 
30
+ 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; }
31
+
32
+ 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; }
33
+
29
34
  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; }
30
35
 
31
36
  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; }
@@ -44,27 +49,32 @@ function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Sy
44
49
 
45
50
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
46
51
 
47
- 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; }
48
-
49
- 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; }
50
-
51
52
  var VictoryContext = /*#__PURE__*/(0, React.createContext)(null);
52
53
 
53
- function VictoryProvider(_ref) {
54
- var children = _ref.children,
55
- initialProps = _objectWithoutProperties(_ref, _excluded);
56
-
57
- // We need to store the props in state so they can be overwritten by child components
58
- var _React$useState = React.useState(initialProps),
54
+ function useNormalizedProps() {
55
+ var _React$useState = React.useState({}),
59
56
  _React$useState2 = _slicedToArray(_React$useState, 2),
60
- props = _React$useState2[0],
61
- setProps = _React$useState2[1];
57
+ collectedProps = _React$useState2[0],
58
+ setCollectedProps = _React$useState2[1];
62
59
 
63
- var setChildProps = React.useCallback(function (id, newProps) {
64
- setProps(function (prevProps) {
65
- return _objectSpread(_objectSpread({}, prevProps), newProps);
60
+ var updateChildProps = React.useCallback(function (id, newProps) {
61
+ setCollectedProps(function (prev) {
62
+ var result = _objectSpread({}, prev);
63
+
64
+ if (newProps === null) {
65
+ delete result[id];
66
+ } else {
67
+ result[id] = newProps;
68
+ }
69
+
70
+ return result;
66
71
  });
67
- }, []);
72
+ }, []); // TEMP: combine all props into a single result:
73
+ // TODO: instead, we should intelligently aggregate all these props
74
+
75
+ var props = Object.values(collectedProps).reduce(function (result, childProps) {
76
+ return Object.assign(result, childProps);
77
+ }, {});
68
78
  var data = React.useMemo(function () {
69
79
  return (0, _getData.getData)(props);
70
80
  }, [props]);
@@ -92,17 +102,33 @@ function VictoryProvider(_ref) {
92
102
  y: yScaleFn
93
103
  };
94
104
  }, [props, domain, range]);
95
- var value = {
96
- scale: scale,
97
- data: data,
98
- domain: domain,
99
- setChildProps: setChildProps
100
- };
105
+ var normalizedProps = React.useMemo(function () {
106
+ return {
107
+ scale: scale,
108
+ data: data,
109
+ domain: domain,
110
+ updateChildProps: updateChildProps
111
+ };
112
+ }, [scale, data, domain, updateChildProps]);
113
+ return normalizedProps;
114
+ }
115
+
116
+ function VictoryProvider(_ref) {
117
+ var children = _ref.children,
118
+ providerProps = _objectWithoutProperties(_ref, _excluded);
119
+
120
+ var value = useNormalizedProps(); // TODO: sync the providerProps
121
+
101
122
  return /*#__PURE__*/React.createElement(VictoryContext.Provider, {
102
123
  value: value
103
124
  }, children);
104
125
  }
105
126
 
127
+ function useVictoryContextMaybe(selector) {
128
+ var context = (0, React.useContext)(VictoryContext);
129
+ return selector(context);
130
+ }
131
+
106
132
  function useVictoryContext(selector) {
107
133
  var context = (0, React.useContext)(VictoryContext);
108
134
 
@@ -132,12 +158,18 @@ function useDomain() {
132
158
  } // This function keeps props in sync betwen the VictoryProvider and child components
133
159
 
134
160
 
135
- function useVictoryProviderSync(id, props) {
136
- var setChildProps = useVictoryContext(function (value) {
137
- return value.setChildProps;
161
+ function useVictoryProviderSync(props) {
162
+ var updateChildProps = useVictoryContext(function (value) {
163
+ return value.updateChildProps;
138
164
  });
165
+
166
+ var _React$useState3 = React.useState(function () {
167
+ return Symbol("UniqueIdFor(VictoryProviderChild)");
168
+ }),
169
+ _React$useState4 = _slicedToArray(_React$useState3, 1),
170
+ myId = _React$useState4[0];
171
+
139
172
  React.useEffect(function () {
140
- setChildProps(id, props);
141
- }, []);
142
- return props;
173
+ updateChildProps(myId, props);
174
+ }, [updateChildProps, props]);
143
175
  }
@@ -0,0 +1,7 @@
1
+ import * as React from "react";
2
+ import { VictoryCommonProps } from "../../victory-util/common-props";
3
+ /**
4
+ * Ensures the component is wrapped by a VictoryProvider, if not already.
5
+ */
6
+ export declare function withVictoryProvider<TComp extends React.FC<TProps>, TProps extends React.PropsWithChildren<VictoryCommonProps>>(Comp: TComp): TComp;
7
+ //# sourceMappingURL=with-victory-provider.d.ts.map
@@ -0,0 +1,56 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.withVictoryProvider = withVictoryProvider;
7
+
8
+ var React = _interopRequireWildcard(require("react"));
9
+
10
+ var _victoryProvider = require("./victory-provider");
11
+
12
+ var _clone = require("../clone");
13
+
14
+ 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); }
15
+
16
+ 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; }
17
+
18
+ function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
19
+
20
+ /* eslint-disable react/prop-types */
21
+
22
+ /**
23
+ * Ensures the component is wrapped by a VictoryProvider, if not already.
24
+ */
25
+ function withVictoryProvider(Comp) {
26
+ var WithVictoryProvider = /*#__PURE__*/React.memo(function (props) {
27
+ var updateChildProps = (0, _victoryProvider.useVictoryContextMaybe)(function (value) {
28
+ return value === null || value === void 0 ? void 0 : value.updateChildProps;
29
+ });
30
+ var hasParentProvider = !!updateChildProps;
31
+ React.useEffect(function () {
32
+ if (!hasParentProvider) return;
33
+ var id = Symbol("WithVictoryProvider");
34
+ updateChildProps(id, props); // eslint-disable-next-line consistent-return
35
+
36
+ return function () {
37
+ return updateChildProps(id, null);
38
+ };
39
+ }); // @ts-expect-error "TProps not assignable to LibraryManagedAttributes"
40
+
41
+ var result = /*#__PURE__*/React.createElement(Comp, props, props.children);
42
+
43
+ if (!hasParentProvider) {
44
+ // Wrap with a parent Provider:
45
+ result = /*#__PURE__*/React.createElement(_victoryProvider.VictoryProvider, null, /*#__PURE__*/React.createElement(_clone.Clone, _extends({
46
+ element: props.containerComponent
47
+ }, props), result));
48
+ }
49
+
50
+ return result;
51
+ });
52
+ var name = Comp.displayName || Comp.name;
53
+ WithVictoryProvider.displayName = name ? "WithVictoryProvider(".concat(name, ")") : "WithVictoryProvider"; // @ts-expect-error "WithVictoryProvider does not overlap with TComp"
54
+
55
+ return WithVictoryProvider;
56
+ }
@@ -1,5 +1,5 @@
1
1
  import React from "react";
2
- import { VictoryProviderProps } from "../victory-state";
3
- import { VictoryCommonProps } from "./common-props";
2
+ import { VictoryProviderProps } from "./victory-state";
3
+ import { VictoryCommonProps } from "../victory-util/common-props";
4
4
  export declare function withContainer<Props extends VictoryCommonProps>(WrappedComponent: React.FC<Props>, initialProviderProps?: Partial<VictoryProviderProps>): React.FC<Props>;
5
5
  //# sourceMappingURL=with-container.d.ts.map
@@ -7,7 +7,7 @@ exports.withContainer = withContainer;
7
7
 
8
8
  var _react = _interopRequireDefault(require("react"));
9
9
 
10
- var _victoryState = require("../victory-state");
10
+ var _victoryState = require("./victory-state");
11
11
 
12
12
  var _victoryContainer = require("../victory-container/victory-container");
13
13
 
@@ -0,0 +1,17 @@
1
+ import { VictoryCommonProps } from "../victory-util/common-props";
2
+ import React from "react";
3
+ import { VictoryProviderProps } from "./victory-state";
4
+ declare type FC<TProps> = (props: TProps) => JSX.Element;
5
+ export declare function withNormalizedProps<TProps extends React.PropsWithChildren<VictoryCommonProps>, TDefaultPropKeys extends keyof TProps>(config: {
6
+ displayName: string;
7
+ propTypes?: React.WeakValidationMap<Omit<TProps, keyof VictoryCommonProps>>;
8
+ defaultProps: Pick<TProps, TDefaultPropKeys>;
9
+ /** @deprecated */
10
+ initialProviderProps?: Partial<VictoryProviderProps>;
11
+ }, WrappedComponent: React.FC<TProps>): FC<TProps> & {
12
+ displayName: string;
13
+ defaultProps: Pick<TProps, TDefaultPropKeys>;
14
+ propTypes: React.WeakValidationMap<Omit<TProps, keyof VictoryCommonProps>> | undefined;
15
+ };
16
+ export {};
17
+ //# sourceMappingURL=with-normalized-props.d.ts.map