victory-core 37.0.2 → 37.1.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 (48) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/dist/victory-core.js +395 -358
  3. package/dist/victory-core.min.js +1 -1
  4. package/es/index.d.ts +2 -1
  5. package/es/index.js +2 -1
  6. package/es/types/prop-types.d.ts +1 -0
  7. package/es/victory-container/victory-container.d.ts +29 -35
  8. package/es/victory-container/victory-container.js +134 -162
  9. package/es/victory-portal/portal-context.d.ts +9 -8
  10. package/es/victory-portal/portal-context.js +34 -6
  11. package/es/victory-portal/portal-outlet.d.ts +12 -0
  12. package/es/victory-portal/portal-outlet.js +14 -0
  13. package/es/victory-portal/portal.d.ts +1 -12
  14. package/es/victory-portal/portal.js +6 -32
  15. package/es/victory-portal/victory-portal.d.ts +5 -22
  16. package/es/victory-portal/victory-portal.js +37 -52
  17. package/es/victory-util/index.d.ts +1 -0
  18. package/es/victory-util/index.js +1 -0
  19. package/es/victory-util/merge-refs.d.ts +13 -0
  20. package/es/victory-util/merge-refs.js +23 -0
  21. package/lib/index.d.ts +2 -1
  22. package/lib/index.js +16 -4
  23. package/lib/types/prop-types.d.ts +1 -0
  24. package/lib/victory-container/victory-container.d.ts +29 -35
  25. package/lib/victory-container/victory-container.js +136 -163
  26. package/lib/victory-portal/portal-context.d.ts +9 -8
  27. package/lib/victory-portal/portal-context.js +37 -7
  28. package/lib/victory-portal/portal-outlet.d.ts +12 -0
  29. package/lib/victory-portal/portal-outlet.js +22 -0
  30. package/lib/victory-portal/portal.d.ts +1 -12
  31. package/lib/victory-portal/portal.js +6 -33
  32. package/lib/victory-portal/victory-portal.d.ts +5 -22
  33. package/lib/victory-portal/victory-portal.js +37 -52
  34. package/lib/victory-util/index.d.ts +1 -0
  35. package/lib/victory-util/index.js +12 -0
  36. package/lib/victory-util/merge-refs.d.ts +13 -0
  37. package/lib/victory-util/merge-refs.js +31 -0
  38. package/package.json +2 -2
  39. package/src/index.ts +2 -1
  40. package/src/types/prop-types.ts +7 -0
  41. package/src/victory-container/victory-container.tsx +167 -195
  42. package/src/victory-portal/portal-context.tsx +63 -0
  43. package/src/victory-portal/portal-outlet.tsx +26 -0
  44. package/src/victory-portal/portal.tsx +5 -42
  45. package/src/victory-portal/victory-portal.tsx +44 -73
  46. package/src/victory-util/index.ts +1 -0
  47. package/src/victory-util/merge-refs.ts +26 -0
  48. package/src/victory-portal/portal-context.ts +0 -14
@@ -626,23 +626,18 @@ class VictoryClipContainer extends (react__WEBPACK_IMPORTED_MODULE_3___default()
626
626
  "use strict";
627
627
  __webpack_require__.r(__webpack_exports__);
628
628
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
629
- /* harmony export */ "VictoryContainer": function() { return /* binding */ VictoryContainer; }
629
+ /* harmony export */ "VictoryContainer": function() { return /* binding */ VictoryContainer; },
630
+ /* harmony export */ "useVictoryContainer": function() { return /* binding */ useVictoryContainer; }
630
631
  /* harmony export */ });
631
- /* harmony import */ var lodash_isObject__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lodash/isObject */ "../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/isObject.js");
632
- /* harmony import */ var lodash_isObject__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash_isObject__WEBPACK_IMPORTED_MODULE_0__);
633
- /* harmony import */ var lodash_uniqueId__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! lodash/uniqueId */ "../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/uniqueId.js");
634
- /* harmony import */ var lodash_uniqueId__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(lodash_uniqueId__WEBPACK_IMPORTED_MODULE_1__);
635
- /* harmony import */ var lodash_defaults__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! lodash/defaults */ "../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/defaults.js");
636
- /* harmony import */ var lodash_defaults__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(lodash_defaults__WEBPACK_IMPORTED_MODULE_2__);
637
- /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react */ "react");
638
- /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_3__);
639
- /* harmony import */ var _victory_portal_portal__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../victory-portal/portal */ "./victory-portal/portal.tsx");
640
- /* harmony import */ var _victory_portal_portal_context__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../victory-portal/portal-context */ "./victory-portal/portal-context.ts");
641
- /* harmony import */ var _victory_util_timer_context__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../victory-util/timer-context */ "./victory-util/timer-context.ts");
642
- /* harmony import */ var _victory_util_helpers__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../victory-util/helpers */ "./victory-util/helpers.ts");
643
- /* harmony import */ var _victory_util_user_props__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../victory-util/user-props */ "./victory-util/user-props.ts");
644
-
645
-
632
+ /* harmony import */ var lodash_uniqueId__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lodash/uniqueId */ "../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/uniqueId.js");
633
+ /* harmony import */ var lodash_uniqueId__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash_uniqueId__WEBPACK_IMPORTED_MODULE_0__);
634
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ "react");
635
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
636
+ /* harmony import */ var _victory_portal_portal__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../victory-portal/portal */ "./victory-portal/portal.tsx");
637
+ /* harmony import */ var _victory_util_user_props__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../victory-util/user-props */ "./victory-util/user-props.ts");
638
+ /* harmony import */ var _victory_util__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../victory-util */ "./victory-util/merge-refs.ts");
639
+ /* harmony import */ var _victory_portal_portal_outlet__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../victory-portal/portal-outlet */ "./victory-portal/portal-outlet.tsx");
640
+ /* harmony import */ var _victory_portal_portal_context__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../victory-portal/portal-context */ "./victory-portal/portal-context.tsx");
646
641
 
647
642
  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); }
648
643
 
@@ -651,175 +646,149 @@ function _extends() { _extends = Object.assign ? Object.assign.bind() : function
651
646
 
652
647
 
653
648
 
654
- class VictoryContainer extends (react__WEBPACK_IMPORTED_MODULE_3___default().Component) {
655
- static displayName = "VictoryContainer";
656
- static role = "container";
657
- static defaultProps = {
658
- className: "VictoryContainer",
659
- portalComponent: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement(_victory_portal_portal__WEBPACK_IMPORTED_MODULE_4__.Portal, null),
660
- portalZIndex: 99,
661
- responsive: true,
662
- role: "img"
649
+ const defaultProps = {
650
+ className: "VictoryContainer",
651
+ portalComponent: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(_victory_portal_portal__WEBPACK_IMPORTED_MODULE_2__.Portal, null),
652
+ portalZIndex: 99,
653
+ responsive: true,
654
+ role: "img"
655
+ };
656
+ function useVictoryContainer(initialProps) {
657
+ const props = {
658
+ ...defaultProps,
659
+ ...initialProps
663
660
  };
664
- static contextType = _victory_util_timer_context__WEBPACK_IMPORTED_MODULE_5__["default"];
665
-
666
- // @ts-expect-error Ref will be initialized on mount
667
-
668
- // @ts-expect-error Ref will be initialized on mount
669
-
670
- constructor(props) {
671
- super(props);
672
- this.containerId = !lodash_isObject__WEBPACK_IMPORTED_MODULE_0___default()(props) || props.containerId === undefined ? lodash_uniqueId__WEBPACK_IMPORTED_MODULE_1___default()("victory-container-") : props.containerId;
673
- this.shouldHandleWheel = !!(props && props.events && props.events.onWheel);
674
- }
675
- savePortalRef = portal => {
676
- this.portalRef = portal;
677
- return portal;
678
- };
679
- portalUpdate = (key, el) => this.portalRef.portalUpdate(key, el);
680
- portalRegister = () => this.portalRef.portalRegister();
681
- portalDeregister = key => this.portalRef.portalDeregister(key);
682
- saveContainerRef = container => {
683
- if (_victory_util_helpers__WEBPACK_IMPORTED_MODULE_6__.isFunction(this.props.containerRef)) {
684
- this.props.containerRef(container);
685
- }
686
- this.containerRef = container;
687
- return container;
661
+ const {
662
+ title,
663
+ desc,
664
+ width,
665
+ height,
666
+ responsive
667
+ } = props;
668
+ const localContainerRef = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)(null);
669
+
670
+ // Generated ID stored in ref because it needs to persist across renders
671
+ const generatedId = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)(lodash_uniqueId__WEBPACK_IMPORTED_MODULE_0___default()("victory-container-"));
672
+ const containerId = props.containerId ?? generatedId.current;
673
+ const getIdForElement = elName => `${containerId}-${elName}`;
674
+ const userProps = _victory_util_user_props__WEBPACK_IMPORTED_MODULE_3__.getSafeUserProps(props);
675
+ const dimensions = responsive ? {
676
+ width: "100%",
677
+ height: "100%"
678
+ } : {
679
+ width,
680
+ height
688
681
  };
689
- handleWheel = e => e.preventDefault();
690
- componentDidMount() {
691
- if (this.shouldHandleWheel && this.containerRef) {
692
- this.containerRef.addEventListener("wheel", this.handleWheel);
693
- }
694
- }
695
- componentWillUnmount() {
696
- if (this.shouldHandleWheel && this.containerRef) {
697
- this.containerRef.removeEventListener("wheel", this.handleWheel);
698
- }
699
- }
700
- getIdForElement(elementName) {
701
- return `${this.containerId}-${elementName}`;
702
- }
703
-
704
- // overridden in custom containers
705
- getChildren(props) {
706
- return props.children;
707
- }
708
-
709
- // Get props defined by the Open UI Automation (OUIA) 1.0-RC spec
710
- // See https://ouia.readthedocs.io/en/latest/README.html#ouia-component
711
- getOUIAProps(props) {
712
- const {
713
- ouiaId,
714
- ouiaSafe,
715
- ouiaType
716
- } = props;
717
- return {
718
- ...(ouiaId && {
719
- "data-ouia-component-id": ouiaId
720
- }),
721
- ...(ouiaType && {
722
- "data-ouia-component-type": ouiaType
723
- }),
724
- ...(ouiaSafe !== undefined && {
725
- "data-ouia-safe": ouiaSafe
726
- })
727
- };
728
- }
729
- renderContainer(props, svgProps, style) {
730
- const {
731
- title,
732
- desc,
733
- portalComponent,
734
- className,
735
- width,
736
- height,
737
- portalZIndex,
738
- responsive
739
- } = props;
740
- const children = this.getChildren(props);
741
- const dimensions = responsive ? {
742
- width: "100%",
743
- height: "100%"
744
- } : {
745
- width,
746
- height
682
+ const viewBox = responsive ? `0 0 ${width} ${height}` : undefined;
683
+ const preserveAspectRatio = responsive ? props.preserveAspectRatio : undefined;
684
+ const ariaLabelledBy = [title && getIdForElement("title"), props["aria-labelledby"]].filter(Boolean).join(" ") || undefined;
685
+ const ariaDescribedBy = [desc && getIdForElement("desc"), props["aria-describedby"]].filter(Boolean).join(" ") || undefined;
686
+ const titleId = getIdForElement("title");
687
+ const descId = getIdForElement("desc");
688
+ return {
689
+ ...props,
690
+ titleId,
691
+ descId,
692
+ dimensions,
693
+ viewBox,
694
+ preserveAspectRatio,
695
+ ariaLabelledBy,
696
+ ariaDescribedBy,
697
+ userProps,
698
+ localContainerRef
699
+ };
700
+ }
701
+ const VictoryContainer = initialProps => {
702
+ const {
703
+ role,
704
+ title,
705
+ desc,
706
+ children,
707
+ className,
708
+ portalZIndex,
709
+ portalComponent,
710
+ width,
711
+ height,
712
+ style,
713
+ tabIndex,
714
+ responsive,
715
+ events,
716
+ ouiaId,
717
+ ouiaSafe,
718
+ ouiaType,
719
+ dimensions,
720
+ ariaDescribedBy,
721
+ ariaLabelledBy,
722
+ viewBox,
723
+ preserveAspectRatio,
724
+ userProps,
725
+ titleId,
726
+ descId,
727
+ containerRef,
728
+ localContainerRef
729
+ } = useVictoryContainer(initialProps);
730
+ react__WEBPACK_IMPORTED_MODULE_1___default().useEffect(() => {
731
+ if (!events?.onWheel) return;
732
+ const handleWheel = e => e.preventDefault();
733
+ const container = localContainerRef?.current;
734
+ container?.addEventListener("wheel", handleWheel);
735
+ return () => {
736
+ container?.removeEventListener("wheel", handleWheel);
747
737
  };
748
- const divStyle = Object.assign({
738
+ // eslint-disable-next-line react-hooks/exhaustive-deps
739
+ }, []);
740
+ return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement("div", {
741
+ className: className,
742
+ style: {
743
+ ...style,
744
+ width: responsive ? style?.width : dimensions.width,
745
+ height: responsive ? style?.height : dimensions.height,
749
746
  pointerEvents: "none",
750
747
  touchAction: "none",
751
748
  position: "relative"
752
- }, dimensions);
753
- const portalDivStyle = Object.assign({
749
+ },
750
+ "data-ouia-component-id": ouiaId,
751
+ "data-ouia-component-type": ouiaType,
752
+ "data-ouia-safe": ouiaSafe,
753
+ ref: (0,_victory_util__WEBPACK_IMPORTED_MODULE_4__.mergeRefs)([localContainerRef, containerRef])
754
+ }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(_victory_portal_portal_context__WEBPACK_IMPORTED_MODULE_5__.PortalProvider, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement("svg", _extends({
755
+ width: width,
756
+ height: height,
757
+ tabIndex: tabIndex,
758
+ role: role,
759
+ "aria-labelledby": ariaLabelledBy,
760
+ "aria-describedby": ariaDescribedBy,
761
+ viewBox: viewBox,
762
+ preserveAspectRatio: preserveAspectRatio,
763
+ style: {
764
+ ...dimensions,
765
+ pointerEvents: "all"
766
+ }
767
+ }, userProps, events), title ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement("title", {
768
+ id: titleId
769
+ }, title) : null, desc ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement("desc", {
770
+ id: descId
771
+ }, desc) : null, children), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement("div", {
772
+ style: {
773
+ ...dimensions,
754
774
  zIndex: portalZIndex,
755
775
  position: "absolute",
756
776
  top: 0,
757
777
  left: 0
758
- }, dimensions);
759
- const svgStyle = Object.assign({
760
- pointerEvents: "all"
761
- }, dimensions);
762
- const portalSvgStyle = Object.assign({
778
+ }
779
+ }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(_victory_portal_portal_outlet__WEBPACK_IMPORTED_MODULE_6__.PortalOutlet, {
780
+ as: portalComponent,
781
+ width: width,
782
+ height: height,
783
+ viewBox: viewBox,
784
+ preserveAspectRatio: preserveAspectRatio,
785
+ style: {
786
+ ...dimensions,
763
787
  overflow: "visible"
764
- }, dimensions);
765
- const portalProps = {
766
- width,
767
- height,
768
- viewBox: svgProps.viewBox,
769
- preserveAspectRatio: svgProps.preserveAspectRatio,
770
- style: portalSvgStyle
771
- };
772
- return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement(_victory_portal_portal_context__WEBPACK_IMPORTED_MODULE_7__.PortalContext.Provider, {
773
- value: {
774
- portalUpdate: this.portalUpdate,
775
- portalRegister: this.portalRegister,
776
- portalDeregister: this.portalDeregister
777
- }
778
- }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement("div", _extends({
779
- style: lodash_defaults__WEBPACK_IMPORTED_MODULE_2___default()({}, style, divStyle),
780
- className: className,
781
- ref: this.saveContainerRef
782
- }, this.getOUIAProps(props)), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement("svg", _extends({}, svgProps, {
783
- style: svgStyle
784
- }), title ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement("title", {
785
- id: this.getIdForElement("title")
786
- }, title) : null, desc ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement("desc", {
787
- id: this.getIdForElement("desc")
788
- }, desc) : null, children), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement("div", {
789
- style: portalDivStyle
790
- }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().cloneElement(portalComponent, {
791
- ...portalProps,
792
- ref: this.savePortalRef
793
- }))));
794
- }
795
- render() {
796
- const {
797
- width,
798
- height,
799
- responsive,
800
- events,
801
- title,
802
- desc,
803
- tabIndex,
804
- preserveAspectRatio,
805
- role
806
- } = this.props;
807
- const style = responsive ? this.props.style : _victory_util_helpers__WEBPACK_IMPORTED_MODULE_6__.omit(this.props.style, ["height", "width"]);
808
- const userProps = _victory_util_user_props__WEBPACK_IMPORTED_MODULE_8__.getSafeUserProps(this.props);
809
- const svgProps = Object.assign({
810
- width,
811
- height,
812
- tabIndex,
813
- role,
814
- "aria-labelledby": [title && this.getIdForElement("title"), this.props["aria-labelledby"]].filter(Boolean).join(" ") || undefined,
815
- "aria-describedby": [desc && this.getIdForElement("desc"), this.props["aria-describedby"]].filter(Boolean).join(" ") || undefined,
816
- viewBox: responsive ? `0 0 ${width} ${height}` : undefined,
817
- preserveAspectRatio: responsive ? preserveAspectRatio : undefined,
818
- ...userProps
819
- }, events);
820
- return this.renderContainer(this.props, svgProps, style);
821
- }
822
- }
788
+ }
789
+ }))));
790
+ };
791
+ VictoryContainer.role = "container";
823
792
 
824
793
  /***/ }),
825
794
 
@@ -1323,26 +1292,87 @@ VictoryLabel.defaultStyles = defaultStyles;
1323
1292
 
1324
1293
  /***/ }),
1325
1294
 
1326
- /***/ "./victory-portal/portal-context.ts":
1295
+ /***/ "./victory-portal/portal-context.tsx":
1296
+ /*!*******************************************!*\
1297
+ !*** ./victory-portal/portal-context.tsx ***!
1298
+ \*******************************************/
1299
+ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
1300
+
1301
+ "use strict";
1302
+ __webpack_require__.r(__webpack_exports__);
1303
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
1304
+ /* harmony export */ "PortalContext": function() { return /* binding */ PortalContext; },
1305
+ /* harmony export */ "PortalProvider": function() { return /* binding */ PortalProvider; },
1306
+ /* harmony export */ "usePortalContext": function() { return /* binding */ usePortalContext; }
1307
+ /* harmony export */ });
1308
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
1309
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
1310
+
1311
+ const PortalContext = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createContext(undefined);
1312
+ PortalContext.displayName = "PortalContext";
1313
+ const usePortalContext = () => {
1314
+ const context = react__WEBPACK_IMPORTED_MODULE_0___default().useContext(PortalContext);
1315
+ return context;
1316
+ };
1317
+ const PortalProvider = _ref => {
1318
+ let {
1319
+ children
1320
+ } = _ref;
1321
+ const [portalChildren, setPortalChildren] = react__WEBPACK_IMPORTED_MODULE_0___default().useState(new Map());
1322
+ const addChild = react__WEBPACK_IMPORTED_MODULE_0___default().useCallback((id, element) => {
1323
+ setPortalChildren(prevChildren => {
1324
+ const nextChildren = new Map(prevChildren);
1325
+ nextChildren.set(id, element);
1326
+ return nextChildren;
1327
+ });
1328
+ }, [setPortalChildren]);
1329
+ const removeChild = react__WEBPACK_IMPORTED_MODULE_0___default().useCallback(id => {
1330
+ setPortalChildren(prevChildren => {
1331
+ const nextChildren = new Map(prevChildren);
1332
+ nextChildren.delete(id);
1333
+ return nextChildren;
1334
+ });
1335
+ }, [setPortalChildren]);
1336
+ const contextValue = react__WEBPACK_IMPORTED_MODULE_0___default().useMemo(() => ({
1337
+ addChild,
1338
+ removeChild,
1339
+ children: portalChildren
1340
+ }), [addChild, removeChild, portalChildren]);
1341
+ return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(PortalContext.Provider, {
1342
+ value: contextValue
1343
+ }, children);
1344
+ };
1345
+
1346
+ /***/ }),
1347
+
1348
+ /***/ "./victory-portal/portal-outlet.tsx":
1327
1349
  /*!******************************************!*\
1328
- !*** ./victory-portal/portal-context.ts ***!
1350
+ !*** ./victory-portal/portal-outlet.tsx ***!
1329
1351
  \******************************************/
1330
1352
  /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
1331
1353
 
1332
1354
  "use strict";
1333
1355
  __webpack_require__.r(__webpack_exports__);
1334
1356
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
1335
- /* harmony export */ "PortalContext": function() { return /* binding */ PortalContext; }
1357
+ /* harmony export */ "PortalOutlet": function() { return /* binding */ PortalOutlet; }
1336
1358
  /* harmony export */ });
1337
1359
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
1338
1360
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
1361
+ /* harmony import */ var _portal_context__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./portal-context */ "./victory-portal/portal-context.tsx");
1339
1362
 
1340
- /**
1341
- * The React context object consumers may use to access the context of the
1342
- * portal.
1343
- */
1344
- const PortalContext = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createContext({});
1345
- PortalContext.displayName = "PortalContext";
1363
+
1364
+ const PortalOutlet = _ref => {
1365
+ let {
1366
+ as: portalComponent,
1367
+ ...props
1368
+ } = _ref;
1369
+ const portalContext = (0,_portal_context__WEBPACK_IMPORTED_MODULE_1__.usePortalContext)();
1370
+ if (!portalContext) {
1371
+ return null;
1372
+ }
1373
+ const children = Array.from(portalContext.children.values());
1374
+ return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().cloneElement(portalComponent, props, children);
1375
+ };
1346
1376
 
1347
1377
  /***/ }),
1348
1378
 
@@ -1359,39 +1389,13 @@ __webpack_require__.r(__webpack_exports__);
1359
1389
  /* harmony export */ });
1360
1390
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
1361
1391
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
1392
+ 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); }
1362
1393
 
1363
- class Portal extends (react__WEBPACK_IMPORTED_MODULE_0___default().Component) {
1364
- static displayName = "Portal";
1365
- constructor(props) {
1366
- super(props);
1367
- this.map = {};
1368
- this.index = 1;
1369
- }
1370
- portalRegister = () => {
1371
- return ++this.index;
1372
- };
1373
- portalUpdate = (key, element) => {
1374
- this.map[key] = element;
1375
- this.forceUpdate();
1376
- };
1377
- portalDeregister = key => {
1378
- delete this.map[key];
1379
- this.forceUpdate();
1380
- };
1381
- getChildren() {
1382
- return Object.keys(this.map).map(key => {
1383
- const el = this.map[key];
1384
- return el ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().cloneElement(el, {
1385
- key
1386
- }) : el;
1387
- });
1388
- }
1389
-
1390
- // Overridden in victory-core-native
1391
- render() {
1392
- return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("svg", this.props, this.getChildren());
1393
- }
1394
- }
1394
+ const Portal = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().forwardRef((props, ref) => {
1395
+ return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("svg", _extends({
1396
+ ref: ref
1397
+ }, props));
1398
+ });
1395
1399
 
1396
1400
  /***/ }),
1397
1401
 
@@ -1412,65 +1416,50 @@ __webpack_require__.r(__webpack_exports__);
1412
1416
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
1413
1417
  /* harmony import */ var _victory_util_log__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../victory-util/log */ "./victory-util/log.ts");
1414
1418
  /* harmony import */ var _victory_util_helpers__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../victory-util/helpers */ "./victory-util/helpers.ts");
1415
- /* harmony import */ var _portal_context__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./portal-context */ "./victory-portal/portal-context.ts");
1419
+ /* harmony import */ var _portal_context__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./portal-context */ "./victory-portal/portal-context.tsx");
1416
1420
 
1417
1421
 
1418
1422
 
1419
1423
 
1420
1424
 
1421
- class VictoryPortal extends (react__WEBPACK_IMPORTED_MODULE_1___default().Component) {
1422
- static displayName = "VictoryPortal";
1423
- static role = "portal";
1424
- static defaultProps = {
1425
- groupComponent: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement("g", null)
1426
- };
1427
- static contextType = _portal_context__WEBPACK_IMPORTED_MODULE_2__.PortalContext;
1428
- componentDidMount() {
1429
- if (!this.checkedContext) {
1430
- if (typeof this.context.portalUpdate !== "function") {
1431
- const msg = "`renderInPortal` is not supported outside of `VictoryContainer`. " + "Component will be rendered in place";
1432
- _victory_util_log__WEBPACK_IMPORTED_MODULE_3__.warn(msg);
1433
- this.renderInPlace = true;
1434
- }
1435
- this.checkedContext = true;
1436
- }
1437
- this.forceUpdate();
1438
- }
1439
- componentDidUpdate() {
1440
- if (!this.renderInPlace) {
1441
- this.portalKey = this.portalKey || this.context.portalRegister();
1442
- this.context.portalUpdate(this.portalKey, this.element);
1443
- }
1444
- }
1445
- componentWillUnmount() {
1446
- if (this.context && this.context.portalDeregister) {
1447
- this.context.portalDeregister(this.portalKey);
1448
- }
1449
- }
1450
-
1451
- // Overridden in victory-core-native
1452
- renderPortal(child) {
1453
- if (this.renderInPlace) {
1454
- return child;
1455
- }
1456
- this.element = child;
1457
- return null;
1458
- }
1459
- render() {
1460
- const children = Array.isArray(this.props.children) ? this.props.children[0] : this.props.children;
1461
- const {
1462
- groupComponent
1463
- } = this.props;
1464
- const childProps = children && children.props || {};
1465
- const standardProps = childProps.groupComponent ? {
1466
- groupComponent,
1467
- standalone: false
1468
- } : {};
1469
- const newProps = lodash_defaults__WEBPACK_IMPORTED_MODULE_0___default()(standardProps, childProps, _victory_util_helpers__WEBPACK_IMPORTED_MODULE_4__.omit(this.props, ["children", "groupComponent"]));
1470
- const child = children && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().cloneElement(children, newProps);
1471
- return this.renderPortal(child);
1472
- }
1473
- }
1425
+ const defaultProps = {
1426
+ groupComponent: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement("g", null)
1427
+ };
1428
+ const VictoryPortal = initialProps => {
1429
+ const props = {
1430
+ ...defaultProps,
1431
+ ...initialProps
1432
+ };
1433
+ const id = react__WEBPACK_IMPORTED_MODULE_1___default().useId();
1434
+ const portalContext = (0,_portal_context__WEBPACK_IMPORTED_MODULE_2__.usePortalContext)();
1435
+ if (!portalContext) {
1436
+ const msg = "`renderInPortal` is not supported outside of `VictoryContainer`. " + "Component will be rendered in place";
1437
+ _victory_util_log__WEBPACK_IMPORTED_MODULE_3__.warn(msg);
1438
+ }
1439
+ const children = Array.isArray(props.children) ? props.children[0] : props.children;
1440
+ const {
1441
+ groupComponent
1442
+ } = props;
1443
+ const childProps = children && children.props || {};
1444
+ const standardProps = childProps.groupComponent ? {
1445
+ groupComponent,
1446
+ standalone: false
1447
+ } : {};
1448
+ const newProps = lodash_defaults__WEBPACK_IMPORTED_MODULE_0___default()(standardProps, childProps, _victory_util_helpers__WEBPACK_IMPORTED_MODULE_4__.omit(props, ["children", "groupComponent"]), {
1449
+ key: childProps.key ?? id
1450
+ });
1451
+ const child = children && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().cloneElement(children, newProps);
1452
+ react__WEBPACK_IMPORTED_MODULE_1___default().useEffect(() => {
1453
+ portalContext?.addChild(id, child);
1454
+ // eslint-disable-next-line react-hooks/exhaustive-deps
1455
+ }, [props.children]);
1456
+ react__WEBPACK_IMPORTED_MODULE_1___default().useEffect(() => {
1457
+ return () => portalContext?.removeChild(id);
1458
+ // eslint-disable-next-line react-hooks/exhaustive-deps
1459
+ }, []);
1460
+ return portalContext ? null : child;
1461
+ };
1462
+ VictoryPortal.role = "portal";
1474
1463
 
1475
1464
  /***/ }),
1476
1465
 
@@ -5851,53 +5840,56 @@ function shallowToJS(x, whitelist) {
5851
5840
  "use strict";
5852
5841
  __webpack_require__.r(__webpack_exports__);
5853
5842
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
5854
- /* harmony export */ "Axis": function() { return /* reexport module object */ _axis__WEBPACK_IMPORTED_MODULE_1__; },
5855
- /* harmony export */ "Collection": function() { return /* reexport module object */ _collection__WEBPACK_IMPORTED_MODULE_2__; },
5856
- /* harmony export */ "Data": function() { return /* reexport module object */ _data__WEBPACK_IMPORTED_MODULE_3__; },
5857
- /* harmony export */ "DefaultTransitions": function() { return /* reexport module object */ _default_transitions__WEBPACK_IMPORTED_MODULE_4__; },
5858
- /* harmony export */ "Domain": function() { return /* reexport module object */ _domain__WEBPACK_IMPORTED_MODULE_5__; },
5859
- /* harmony export */ "Events": function() { return /* reexport module object */ _events__WEBPACK_IMPORTED_MODULE_6__; },
5860
- /* harmony export */ "Helpers": function() { return /* reexport module object */ _helpers__WEBPACK_IMPORTED_MODULE_7__; },
5861
- /* harmony export */ "Hooks": function() { return /* reexport module object */ _hooks__WEBPACK_IMPORTED_MODULE_8__; },
5862
- /* harmony export */ "Immutable": function() { return /* reexport module object */ _immutable__WEBPACK_IMPORTED_MODULE_9__; },
5863
- /* harmony export */ "LabelHelpers": function() { return /* reexport module object */ _label_helpers__WEBPACK_IMPORTED_MODULE_10__; },
5864
- /* harmony export */ "LineHelpers": function() { return /* reexport module object */ _line_helpers__WEBPACK_IMPORTED_MODULE_11__; },
5865
- /* harmony export */ "Log": function() { return /* reexport module object */ _log__WEBPACK_IMPORTED_MODULE_12__; },
5866
- /* harmony export */ "PointPathHelpers": function() { return /* reexport module object */ _point_path_helpers__WEBPACK_IMPORTED_MODULE_13__; },
5867
- /* harmony export */ "Scale": function() { return /* reexport module object */ _scale__WEBPACK_IMPORTED_MODULE_14__; },
5868
- /* harmony export */ "Selection": function() { return /* reexport module object */ _selection__WEBPACK_IMPORTED_MODULE_15__; },
5869
- /* harmony export */ "Style": function() { return /* reexport module object */ _style__WEBPACK_IMPORTED_MODULE_16__; },
5870
- /* harmony export */ "TextSize": function() { return /* reexport module object */ _textsize__WEBPACK_IMPORTED_MODULE_17__; },
5871
- /* harmony export */ "Timer": function() { return /* reexport safe */ _timer__WEBPACK_IMPORTED_MODULE_18__["default"]; },
5872
- /* harmony export */ "TimerContext": function() { return /* reexport safe */ _timer_context__WEBPACK_IMPORTED_MODULE_19__["default"]; },
5873
- /* harmony export */ "Transitions": function() { return /* reexport module object */ _transitions__WEBPACK_IMPORTED_MODULE_20__; },
5874
- /* harmony export */ "UserProps": function() { return /* reexport module object */ _user_props__WEBPACK_IMPORTED_MODULE_21__; },
5875
- /* harmony export */ "Wrapper": function() { return /* reexport module object */ _wrapper__WEBPACK_IMPORTED_MODULE_22__; },
5876
- /* harmony export */ "addEvents": function() { return /* reexport safe */ _add_events__WEBPACK_IMPORTED_MODULE_0__.addEvents; }
5843
+ /* harmony export */ "Axis": function() { return /* reexport module object */ _axis__WEBPACK_IMPORTED_MODULE_2__; },
5844
+ /* harmony export */ "Collection": function() { return /* reexport module object */ _collection__WEBPACK_IMPORTED_MODULE_3__; },
5845
+ /* harmony export */ "Data": function() { return /* reexport module object */ _data__WEBPACK_IMPORTED_MODULE_4__; },
5846
+ /* harmony export */ "DefaultTransitions": function() { return /* reexport module object */ _default_transitions__WEBPACK_IMPORTED_MODULE_5__; },
5847
+ /* harmony export */ "Domain": function() { return /* reexport module object */ _domain__WEBPACK_IMPORTED_MODULE_6__; },
5848
+ /* harmony export */ "Events": function() { return /* reexport module object */ _events__WEBPACK_IMPORTED_MODULE_7__; },
5849
+ /* harmony export */ "Helpers": function() { return /* reexport module object */ _helpers__WEBPACK_IMPORTED_MODULE_8__; },
5850
+ /* harmony export */ "Hooks": function() { return /* reexport module object */ _hooks__WEBPACK_IMPORTED_MODULE_9__; },
5851
+ /* harmony export */ "Immutable": function() { return /* reexport module object */ _immutable__WEBPACK_IMPORTED_MODULE_10__; },
5852
+ /* harmony export */ "LabelHelpers": function() { return /* reexport module object */ _label_helpers__WEBPACK_IMPORTED_MODULE_11__; },
5853
+ /* harmony export */ "LineHelpers": function() { return /* reexport module object */ _line_helpers__WEBPACK_IMPORTED_MODULE_12__; },
5854
+ /* harmony export */ "Log": function() { return /* reexport module object */ _log__WEBPACK_IMPORTED_MODULE_13__; },
5855
+ /* harmony export */ "PointPathHelpers": function() { return /* reexport module object */ _point_path_helpers__WEBPACK_IMPORTED_MODULE_14__; },
5856
+ /* harmony export */ "Scale": function() { return /* reexport module object */ _scale__WEBPACK_IMPORTED_MODULE_15__; },
5857
+ /* harmony export */ "Selection": function() { return /* reexport module object */ _selection__WEBPACK_IMPORTED_MODULE_16__; },
5858
+ /* harmony export */ "Style": function() { return /* reexport module object */ _style__WEBPACK_IMPORTED_MODULE_17__; },
5859
+ /* harmony export */ "TextSize": function() { return /* reexport module object */ _textsize__WEBPACK_IMPORTED_MODULE_18__; },
5860
+ /* harmony export */ "Timer": function() { return /* reexport safe */ _timer__WEBPACK_IMPORTED_MODULE_19__["default"]; },
5861
+ /* harmony export */ "TimerContext": function() { return /* reexport safe */ _timer_context__WEBPACK_IMPORTED_MODULE_20__["default"]; },
5862
+ /* harmony export */ "Transitions": function() { return /* reexport module object */ _transitions__WEBPACK_IMPORTED_MODULE_21__; },
5863
+ /* harmony export */ "UserProps": function() { return /* reexport module object */ _user_props__WEBPACK_IMPORTED_MODULE_22__; },
5864
+ /* harmony export */ "Wrapper": function() { return /* reexport module object */ _wrapper__WEBPACK_IMPORTED_MODULE_23__; },
5865
+ /* harmony export */ "addEvents": function() { return /* reexport safe */ _add_events__WEBPACK_IMPORTED_MODULE_0__.addEvents; },
5866
+ /* harmony export */ "mergeRefs": function() { return /* reexport safe */ _merge_refs__WEBPACK_IMPORTED_MODULE_1__.mergeRefs; }
5877
5867
  /* harmony export */ });
5878
5868
  /* harmony import */ var _add_events__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./add-events */ "./victory-util/add-events.tsx");
5879
- /* harmony import */ var _axis__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./axis */ "./victory-util/axis.tsx");
5880
- /* harmony import */ var _collection__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./collection */ "./victory-util/collection.tsx");
5881
- /* harmony import */ var _data__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./data */ "./victory-util/data.ts");
5882
- /* harmony import */ var _default_transitions__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./default-transitions */ "./victory-util/default-transitions.ts");
5883
- /* harmony import */ var _domain__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./domain */ "./victory-util/domain.ts");
5884
- /* harmony import */ var _events__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./events */ "./victory-util/events.ts");
5885
- /* harmony import */ var _helpers__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./helpers */ "./victory-util/helpers.ts");
5886
- /* harmony import */ var _hooks__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./hooks */ "./victory-util/hooks/index.ts");
5887
- /* harmony import */ var _immutable__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./immutable */ "./victory-util/immutable.ts");
5888
- /* harmony import */ var _label_helpers__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./label-helpers */ "./victory-util/label-helpers.ts");
5889
- /* harmony import */ var _line_helpers__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./line-helpers */ "./victory-util/line-helpers.ts");
5890
- /* harmony import */ var _log__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./log */ "./victory-util/log.ts");
5891
- /* harmony import */ var _point_path_helpers__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./point-path-helpers */ "./victory-util/point-path-helpers.ts");
5892
- /* harmony import */ var _scale__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./scale */ "./victory-util/scale.ts");
5893
- /* harmony import */ var _selection__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./selection */ "./victory-util/selection.ts");
5894
- /* harmony import */ var _style__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./style */ "./victory-util/style.ts");
5895
- /* harmony import */ var _textsize__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./textsize */ "./victory-util/textsize.ts");
5896
- /* harmony import */ var _timer__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./timer */ "./victory-util/timer.ts");
5897
- /* harmony import */ var _timer_context__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./timer-context */ "./victory-util/timer-context.ts");
5898
- /* harmony import */ var _transitions__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./transitions */ "./victory-util/transitions.ts");
5899
- /* harmony import */ var _user_props__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./user-props */ "./victory-util/user-props.ts");
5900
- /* harmony import */ var _wrapper__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ./wrapper */ "./victory-util/wrapper.tsx");
5869
+ /* harmony import */ var _merge_refs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./merge-refs */ "./victory-util/merge-refs.ts");
5870
+ /* harmony import */ var _axis__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./axis */ "./victory-util/axis.tsx");
5871
+ /* harmony import */ var _collection__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./collection */ "./victory-util/collection.tsx");
5872
+ /* harmony import */ var _data__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./data */ "./victory-util/data.ts");
5873
+ /* harmony import */ var _default_transitions__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./default-transitions */ "./victory-util/default-transitions.ts");
5874
+ /* harmony import */ var _domain__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./domain */ "./victory-util/domain.ts");
5875
+ /* harmony import */ var _events__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./events */ "./victory-util/events.ts");
5876
+ /* harmony import */ var _helpers__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./helpers */ "./victory-util/helpers.ts");
5877
+ /* harmony import */ var _hooks__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./hooks */ "./victory-util/hooks/index.ts");
5878
+ /* harmony import */ var _immutable__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./immutable */ "./victory-util/immutable.ts");
5879
+ /* harmony import */ var _label_helpers__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./label-helpers */ "./victory-util/label-helpers.ts");
5880
+ /* harmony import */ var _line_helpers__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./line-helpers */ "./victory-util/line-helpers.ts");
5881
+ /* harmony import */ var _log__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./log */ "./victory-util/log.ts");
5882
+ /* harmony import */ var _point_path_helpers__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./point-path-helpers */ "./victory-util/point-path-helpers.ts");
5883
+ /* harmony import */ var _scale__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./scale */ "./victory-util/scale.ts");
5884
+ /* harmony import */ var _selection__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./selection */ "./victory-util/selection.ts");
5885
+ /* harmony import */ var _style__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./style */ "./victory-util/style.ts");
5886
+ /* harmony import */ var _textsize__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./textsize */ "./victory-util/textsize.ts");
5887
+ /* harmony import */ var _timer__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./timer */ "./victory-util/timer.ts");
5888
+ /* harmony import */ var _timer_context__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./timer-context */ "./victory-util/timer-context.ts");
5889
+ /* harmony import */ var _transitions__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./transitions */ "./victory-util/transitions.ts");
5890
+ /* harmony import */ var _user_props__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ./user-props */ "./victory-util/user-props.ts");
5891
+ /* harmony import */ var _wrapper__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ./wrapper */ "./victory-util/wrapper.tsx");
5892
+
5901
5893
 
5902
5894
 
5903
5895
 
@@ -6290,6 +6282,44 @@ function warn(message) {
6290
6282
 
6291
6283
  /***/ }),
6292
6284
 
6285
+ /***/ "./victory-util/merge-refs.ts":
6286
+ /*!************************************!*\
6287
+ !*** ./victory-util/merge-refs.ts ***!
6288
+ \************************************/
6289
+ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
6290
+
6291
+ "use strict";
6292
+ __webpack_require__.r(__webpack_exports__);
6293
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
6294
+ /* harmony export */ "mergeRefs": function() { return /* binding */ mergeRefs; }
6295
+ /* harmony export */ });
6296
+ /* harmony import */ var _helpers__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./helpers */ "./victory-util/helpers.ts");
6297
+
6298
+ /**
6299
+ * Used to merge multiple React refs into a single callback ref.
6300
+ *
6301
+ * @example
6302
+ * ```tsx
6303
+ * <div ref={mergeRefs([ref, forwardedRef])} />
6304
+ * ```
6305
+ */
6306
+ function mergeRefs(refs) {
6307
+ return value => {
6308
+ refs.forEach(ref => {
6309
+ // If the ref is a function, it's a callback ref and we call it with the value.
6310
+ if (_helpers__WEBPACK_IMPORTED_MODULE_0__.isFunction(ref)) {
6311
+ ref(value);
6312
+ } else if (ref !== null && ref !== undefined) {
6313
+ // If the ref is an object (not null and not undefined), it's an object ref.
6314
+ // We assign the value to its 'current' property.
6315
+ ref.current = value;
6316
+ }
6317
+ });
6318
+ };
6319
+ }
6320
+
6321
+ /***/ }),
6322
+
6293
6323
  /***/ "./victory-util/point-path-helpers.ts":
6294
6324
  /*!********************************************!*\
6295
6325
  !*** ./victory-util/point-path-helpers.ts ***!
@@ -23400,53 +23430,58 @@ var __webpack_exports__ = {};
23400
23430
  \******************/
23401
23431
  __webpack_require__.r(__webpack_exports__);
23402
23432
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
23403
- /* harmony export */ "Arc": function() { return /* reexport safe */ _victory_primitives__WEBPACK_IMPORTED_MODULE_10__.Arc; },
23404
- /* harmony export */ "Axis": function() { return /* reexport safe */ _victory_util__WEBPACK_IMPORTED_MODULE_12__.Axis; },
23405
- /* harmony export */ "Background": function() { return /* reexport safe */ _victory_primitives__WEBPACK_IMPORTED_MODULE_10__.Background; },
23406
- /* harmony export */ "Border": function() { return /* reexport safe */ _victory_primitives__WEBPACK_IMPORTED_MODULE_10__.Border; },
23407
- /* harmony export */ "Box": function() { return /* reexport safe */ _victory_primitives__WEBPACK_IMPORTED_MODULE_11__.Border; },
23408
- /* harmony export */ "Circle": function() { return /* reexport safe */ _victory_primitives__WEBPACK_IMPORTED_MODULE_10__.Circle; },
23409
- /* harmony export */ "ClipPath": function() { return /* reexport safe */ _victory_primitives__WEBPACK_IMPORTED_MODULE_10__.ClipPath; },
23410
- /* harmony export */ "Collection": function() { return /* reexport safe */ _victory_util__WEBPACK_IMPORTED_MODULE_12__.Collection; },
23411
- /* harmony export */ "Data": function() { return /* reexport safe */ _victory_util__WEBPACK_IMPORTED_MODULE_12__.Data; },
23412
- /* harmony export */ "DefaultTransitions": function() { return /* reexport safe */ _victory_util__WEBPACK_IMPORTED_MODULE_12__.DefaultTransitions; },
23413
- /* harmony export */ "Domain": function() { return /* reexport safe */ _victory_util__WEBPACK_IMPORTED_MODULE_12__.Domain; },
23414
- /* harmony export */ "Events": function() { return /* reexport safe */ _victory_util__WEBPACK_IMPORTED_MODULE_12__.Events; },
23415
- /* harmony export */ "Helpers": function() { return /* reexport safe */ _victory_util__WEBPACK_IMPORTED_MODULE_12__.Helpers; },
23416
- /* harmony export */ "Hooks": function() { return /* reexport safe */ _victory_util__WEBPACK_IMPORTED_MODULE_12__.Hooks; },
23417
- /* harmony export */ "Immutable": function() { return /* reexport safe */ _victory_util__WEBPACK_IMPORTED_MODULE_12__.Immutable; },
23418
- /* harmony export */ "LabelHelpers": function() { return /* reexport safe */ _victory_util__WEBPACK_IMPORTED_MODULE_12__.LabelHelpers; },
23419
- /* harmony export */ "Line": function() { return /* reexport safe */ _victory_primitives__WEBPACK_IMPORTED_MODULE_10__.Line; },
23420
- /* harmony export */ "LineHelpers": function() { return /* reexport safe */ _victory_util__WEBPACK_IMPORTED_MODULE_12__.LineHelpers; },
23421
- /* harmony export */ "LineSegment": function() { return /* reexport safe */ _victory_primitives__WEBPACK_IMPORTED_MODULE_10__.LineSegment; },
23422
- /* harmony export */ "Log": function() { return /* reexport safe */ _victory_util__WEBPACK_IMPORTED_MODULE_12__.Log; },
23423
- /* harmony export */ "Path": function() { return /* reexport safe */ _victory_primitives__WEBPACK_IMPORTED_MODULE_10__.Path; },
23424
- /* harmony export */ "Point": function() { return /* reexport safe */ _victory_primitives__WEBPACK_IMPORTED_MODULE_10__.Point; },
23425
- /* harmony export */ "PointPathHelpers": function() { return /* reexport safe */ _victory_util__WEBPACK_IMPORTED_MODULE_12__.PointPathHelpers; },
23433
+ /* harmony export */ "Arc": function() { return /* reexport safe */ _victory_primitives__WEBPACK_IMPORTED_MODULE_11__.Arc; },
23434
+ /* harmony export */ "Axis": function() { return /* reexport safe */ _victory_util__WEBPACK_IMPORTED_MODULE_13__.Axis; },
23435
+ /* harmony export */ "Background": function() { return /* reexport safe */ _victory_primitives__WEBPACK_IMPORTED_MODULE_11__.Background; },
23436
+ /* harmony export */ "Border": function() { return /* reexport safe */ _victory_primitives__WEBPACK_IMPORTED_MODULE_11__.Border; },
23437
+ /* harmony export */ "Box": function() { return /* reexport safe */ _victory_primitives__WEBPACK_IMPORTED_MODULE_12__.Border; },
23438
+ /* harmony export */ "Circle": function() { return /* reexport safe */ _victory_primitives__WEBPACK_IMPORTED_MODULE_11__.Circle; },
23439
+ /* harmony export */ "ClipPath": function() { return /* reexport safe */ _victory_primitives__WEBPACK_IMPORTED_MODULE_11__.ClipPath; },
23440
+ /* harmony export */ "Collection": function() { return /* reexport safe */ _victory_util__WEBPACK_IMPORTED_MODULE_13__.Collection; },
23441
+ /* harmony export */ "Data": function() { return /* reexport safe */ _victory_util__WEBPACK_IMPORTED_MODULE_13__.Data; },
23442
+ /* harmony export */ "DefaultTransitions": function() { return /* reexport safe */ _victory_util__WEBPACK_IMPORTED_MODULE_13__.DefaultTransitions; },
23443
+ /* harmony export */ "Domain": function() { return /* reexport safe */ _victory_util__WEBPACK_IMPORTED_MODULE_13__.Domain; },
23444
+ /* harmony export */ "Events": function() { return /* reexport safe */ _victory_util__WEBPACK_IMPORTED_MODULE_13__.Events; },
23445
+ /* harmony export */ "Helpers": function() { return /* reexport safe */ _victory_util__WEBPACK_IMPORTED_MODULE_13__.Helpers; },
23446
+ /* harmony export */ "Hooks": function() { return /* reexport safe */ _victory_util__WEBPACK_IMPORTED_MODULE_13__.Hooks; },
23447
+ /* harmony export */ "Immutable": function() { return /* reexport safe */ _victory_util__WEBPACK_IMPORTED_MODULE_13__.Immutable; },
23448
+ /* harmony export */ "LabelHelpers": function() { return /* reexport safe */ _victory_util__WEBPACK_IMPORTED_MODULE_13__.LabelHelpers; },
23449
+ /* harmony export */ "Line": function() { return /* reexport safe */ _victory_primitives__WEBPACK_IMPORTED_MODULE_11__.Line; },
23450
+ /* harmony export */ "LineHelpers": function() { return /* reexport safe */ _victory_util__WEBPACK_IMPORTED_MODULE_13__.LineHelpers; },
23451
+ /* harmony export */ "LineSegment": function() { return /* reexport safe */ _victory_primitives__WEBPACK_IMPORTED_MODULE_11__.LineSegment; },
23452
+ /* harmony export */ "Log": function() { return /* reexport safe */ _victory_util__WEBPACK_IMPORTED_MODULE_13__.Log; },
23453
+ /* harmony export */ "Path": function() { return /* reexport safe */ _victory_primitives__WEBPACK_IMPORTED_MODULE_11__.Path; },
23454
+ /* harmony export */ "Point": function() { return /* reexport safe */ _victory_primitives__WEBPACK_IMPORTED_MODULE_11__.Point; },
23455
+ /* harmony export */ "PointPathHelpers": function() { return /* reexport safe */ _victory_util__WEBPACK_IMPORTED_MODULE_13__.PointPathHelpers; },
23426
23456
  /* harmony export */ "Portal": function() { return /* reexport safe */ _victory_portal_portal__WEBPACK_IMPORTED_MODULE_7__.Portal; },
23427
- /* harmony export */ "PortalContext": function() { return /* reexport safe */ _victory_portal_portal_context__WEBPACK_IMPORTED_MODULE_8__.PortalContext; },
23428
- /* harmony export */ "Rect": function() { return /* reexport safe */ _victory_primitives__WEBPACK_IMPORTED_MODULE_10__.Rect; },
23429
- /* harmony export */ "Scale": function() { return /* reexport safe */ _victory_util__WEBPACK_IMPORTED_MODULE_12__.Scale; },
23430
- /* harmony export */ "Selection": function() { return /* reexport safe */ _victory_util__WEBPACK_IMPORTED_MODULE_12__.Selection; },
23431
- /* harmony export */ "Style": function() { return /* reexport safe */ _victory_util__WEBPACK_IMPORTED_MODULE_12__.Style; },
23432
- /* harmony export */ "TSpan": function() { return /* reexport safe */ _victory_primitives__WEBPACK_IMPORTED_MODULE_10__.TSpan; },
23433
- /* harmony export */ "Text": function() { return /* reexport safe */ _victory_primitives__WEBPACK_IMPORTED_MODULE_10__.Text; },
23434
- /* harmony export */ "TextSize": function() { return /* reexport safe */ _victory_util__WEBPACK_IMPORTED_MODULE_12__.TextSize; },
23435
- /* harmony export */ "Timer": function() { return /* reexport safe */ _victory_util__WEBPACK_IMPORTED_MODULE_12__.Timer; },
23436
- /* harmony export */ "TimerContext": function() { return /* reexport safe */ _victory_util__WEBPACK_IMPORTED_MODULE_12__.TimerContext; },
23437
- /* harmony export */ "Transitions": function() { return /* reexport safe */ _victory_util__WEBPACK_IMPORTED_MODULE_12__.Transitions; },
23438
- /* harmony export */ "UserProps": function() { return /* reexport safe */ _victory_util__WEBPACK_IMPORTED_MODULE_12__.UserProps; },
23457
+ /* harmony export */ "PortalContext": function() { return /* reexport safe */ _victory_portal_portal_context__WEBPACK_IMPORTED_MODULE_9__.PortalContext; },
23458
+ /* harmony export */ "PortalOutlet": function() { return /* reexport safe */ _victory_portal_portal_outlet__WEBPACK_IMPORTED_MODULE_10__.PortalOutlet; },
23459
+ /* harmony export */ "PortalProvider": function() { return /* reexport safe */ _victory_portal_portal_context__WEBPACK_IMPORTED_MODULE_9__.PortalProvider; },
23460
+ /* harmony export */ "Rect": function() { return /* reexport safe */ _victory_primitives__WEBPACK_IMPORTED_MODULE_11__.Rect; },
23461
+ /* harmony export */ "Scale": function() { return /* reexport safe */ _victory_util__WEBPACK_IMPORTED_MODULE_13__.Scale; },
23462
+ /* harmony export */ "Selection": function() { return /* reexport safe */ _victory_util__WEBPACK_IMPORTED_MODULE_13__.Selection; },
23463
+ /* harmony export */ "Style": function() { return /* reexport safe */ _victory_util__WEBPACK_IMPORTED_MODULE_13__.Style; },
23464
+ /* harmony export */ "TSpan": function() { return /* reexport safe */ _victory_primitives__WEBPACK_IMPORTED_MODULE_11__.TSpan; },
23465
+ /* harmony export */ "Text": function() { return /* reexport safe */ _victory_primitives__WEBPACK_IMPORTED_MODULE_11__.Text; },
23466
+ /* harmony export */ "TextSize": function() { return /* reexport safe */ _victory_util__WEBPACK_IMPORTED_MODULE_13__.TextSize; },
23467
+ /* harmony export */ "Timer": function() { return /* reexport safe */ _victory_util__WEBPACK_IMPORTED_MODULE_13__.Timer; },
23468
+ /* harmony export */ "TimerContext": function() { return /* reexport safe */ _victory_util__WEBPACK_IMPORTED_MODULE_13__.TimerContext; },
23469
+ /* harmony export */ "Transitions": function() { return /* reexport safe */ _victory_util__WEBPACK_IMPORTED_MODULE_13__.Transitions; },
23470
+ /* harmony export */ "UserProps": function() { return /* reexport safe */ _victory_util__WEBPACK_IMPORTED_MODULE_13__.UserProps; },
23439
23471
  /* harmony export */ "VictoryAccessibleGroup": function() { return /* reexport safe */ _victory_accessible_group_victory_accessible_group__WEBPACK_IMPORTED_MODULE_0__.VictoryAccessibleGroup; },
23440
23472
  /* harmony export */ "VictoryAnimation": function() { return /* reexport safe */ _victory_animation_victory_animation__WEBPACK_IMPORTED_MODULE_1__.VictoryAnimation; },
23441
23473
  /* harmony export */ "VictoryClipContainer": function() { return /* reexport safe */ _victory_clip_container_victory_clip_container__WEBPACK_IMPORTED_MODULE_5__.VictoryClipContainer; },
23442
23474
  /* harmony export */ "VictoryContainer": function() { return /* reexport safe */ _victory_container_victory_container__WEBPACK_IMPORTED_MODULE_2__.VictoryContainer; },
23443
23475
  /* harmony export */ "VictoryLabel": function() { return /* reexport safe */ _victory_label_victory_label__WEBPACK_IMPORTED_MODULE_3__.VictoryLabel; },
23444
- /* harmony export */ "VictoryPortal": function() { return /* reexport safe */ _victory_portal_victory_portal__WEBPACK_IMPORTED_MODULE_9__.VictoryPortal; },
23476
+ /* harmony export */ "VictoryPortal": function() { return /* reexport safe */ _victory_portal_victory_portal__WEBPACK_IMPORTED_MODULE_8__.VictoryPortal; },
23445
23477
  /* harmony export */ "VictoryTheme": function() { return /* reexport safe */ _victory_theme_victory_theme__WEBPACK_IMPORTED_MODULE_6__.VictoryTheme; },
23446
23478
  /* harmony export */ "VictoryTransition": function() { return /* reexport safe */ _victory_transition_victory_transition__WEBPACK_IMPORTED_MODULE_4__.VictoryTransition; },
23447
- /* harmony export */ "Whisker": function() { return /* reexport safe */ _victory_primitives__WEBPACK_IMPORTED_MODULE_10__.Whisker; },
23448
- /* harmony export */ "Wrapper": function() { return /* reexport safe */ _victory_util__WEBPACK_IMPORTED_MODULE_12__.Wrapper; },
23449
- /* harmony export */ "addEvents": function() { return /* reexport safe */ _victory_util__WEBPACK_IMPORTED_MODULE_12__.addEvents; }
23479
+ /* harmony export */ "Whisker": function() { return /* reexport safe */ _victory_primitives__WEBPACK_IMPORTED_MODULE_11__.Whisker; },
23480
+ /* harmony export */ "Wrapper": function() { return /* reexport safe */ _victory_util__WEBPACK_IMPORTED_MODULE_13__.Wrapper; },
23481
+ /* harmony export */ "addEvents": function() { return /* reexport safe */ _victory_util__WEBPACK_IMPORTED_MODULE_13__.addEvents; },
23482
+ /* harmony export */ "mergeRefs": function() { return /* reexport safe */ _victory_util__WEBPACK_IMPORTED_MODULE_13__.mergeRefs; },
23483
+ /* harmony export */ "usePortalContext": function() { return /* reexport safe */ _victory_portal_portal_context__WEBPACK_IMPORTED_MODULE_9__.usePortalContext; },
23484
+ /* harmony export */ "useVictoryContainer": function() { return /* reexport safe */ _victory_container_victory_container__WEBPACK_IMPORTED_MODULE_2__.useVictoryContainer; }
23450
23485
  /* harmony export */ });
23451
23486
  /* harmony import */ var _victory_accessible_group_victory_accessible_group__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./victory-accessible-group/victory-accessible-group */ "./victory-accessible-group/victory-accessible-group.tsx");
23452
23487
  /* harmony import */ var _victory_animation_victory_animation__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./victory-animation/victory-animation */ "./victory-animation/victory-animation.tsx");
@@ -23456,11 +23491,13 @@ __webpack_require__.r(__webpack_exports__);
23456
23491
  /* harmony import */ var _victory_clip_container_victory_clip_container__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./victory-clip-container/victory-clip-container */ "./victory-clip-container/victory-clip-container.tsx");
23457
23492
  /* harmony import */ var _victory_theme_victory_theme__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./victory-theme/victory-theme */ "./victory-theme/victory-theme.tsx");
23458
23493
  /* harmony import */ var _victory_portal_portal__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./victory-portal/portal */ "./victory-portal/portal.tsx");
23459
- /* harmony import */ var _victory_portal_portal_context__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./victory-portal/portal-context */ "./victory-portal/portal-context.ts");
23460
- /* harmony import */ var _victory_portal_victory_portal__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./victory-portal/victory-portal */ "./victory-portal/victory-portal.tsx");
23461
- /* harmony import */ var _victory_primitives__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./victory-primitives */ "./victory-primitives/index.ts");
23462
- /* harmony import */ var _victory_primitives__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./victory-primitives */ "./victory-primitives/border.tsx");
23463
- /* harmony import */ var _victory_util__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./victory-util */ "./victory-util/index.ts");
23494
+ /* harmony import */ var _victory_portal_victory_portal__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./victory-portal/victory-portal */ "./victory-portal/victory-portal.tsx");
23495
+ /* harmony import */ var _victory_portal_portal_context__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./victory-portal/portal-context */ "./victory-portal/portal-context.tsx");
23496
+ /* harmony import */ var _victory_portal_portal_outlet__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./victory-portal/portal-outlet */ "./victory-portal/portal-outlet.tsx");
23497
+ /* harmony import */ var _victory_primitives__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./victory-primitives */ "./victory-primitives/index.ts");
23498
+ /* harmony import */ var _victory_primitives__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./victory-primitives */ "./victory-primitives/border.tsx");
23499
+ /* harmony import */ var _victory_util__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./victory-util */ "./victory-util/index.ts");
23500
+
23464
23501
 
23465
23502
 
23466
23503