victory-core 36.9.2 → 37.0.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 (110) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/dist/victory-core.js +4371 -5749
  3. package/dist/victory-core.min.js +1 -1
  4. package/es/victory-accessible-group/victory-accessible-group.js +9 -15
  5. package/es/victory-animation/util.js +28 -47
  6. package/es/victory-animation/victory-animation.js +51 -67
  7. package/es/victory-clip-container/victory-clip-container.js +153 -229
  8. package/es/victory-container/victory-container.js +157 -216
  9. package/es/victory-label/victory-label.js +246 -323
  10. package/es/victory-portal/portal-context.js +1 -2
  11. package/es/victory-portal/portal.js +30 -76
  12. package/es/victory-portal/victory-portal.js +47 -104
  13. package/es/victory-primitives/arc.js +44 -47
  14. package/es/victory-primitives/background.js +14 -17
  15. package/es/victory-primitives/border.js +20 -24
  16. package/es/victory-primitives/circle.js +13 -27
  17. package/es/victory-primitives/clip-path.js +3 -7
  18. package/es/victory-primitives/line-segment.js +20 -24
  19. package/es/victory-primitives/line.js +13 -27
  20. package/es/victory-primitives/path.js +13 -27
  21. package/es/victory-primitives/point.js +36 -40
  22. package/es/victory-primitives/rect.js +13 -27
  23. package/es/victory-primitives/text.js +15 -28
  24. package/es/victory-primitives/tspan.js +13 -26
  25. package/es/victory-primitives/whisker.js +43 -47
  26. package/es/victory-theme/grayscale.js +22 -22
  27. package/es/victory-theme/material.js +46 -46
  28. package/es/victory-theme/victory-theme.js +3 -3
  29. package/es/victory-transition/victory-transition.js +126 -206
  30. package/es/victory-util/add-events.js +263 -374
  31. package/es/victory-util/axis.js +126 -222
  32. package/es/victory-util/collection.js +13 -41
  33. package/es/victory-util/data.js +159 -214
  34. package/es/victory-util/default-transitions.js +33 -51
  35. package/es/victory-util/domain.js +122 -171
  36. package/es/victory-util/events.js +168 -258
  37. package/es/victory-util/helpers.js +153 -178
  38. package/es/victory-util/hooks/use-animation-state.js +61 -99
  39. package/es/victory-util/hooks/use-previous-props.js +2 -2
  40. package/es/victory-util/immutable.js +6 -8
  41. package/es/victory-util/label-helpers.js +128 -130
  42. package/es/victory-util/line-helpers.js +29 -41
  43. package/es/victory-util/log.js +1 -1
  44. package/es/victory-util/point-path-helpers.js +89 -49
  45. package/es/victory-util/scale.js +24 -42
  46. package/es/victory-util/selection.js +39 -40
  47. package/es/victory-util/style.js +8 -13
  48. package/es/victory-util/textsize.js +80 -154
  49. package/es/victory-util/timer-context.js +2 -2
  50. package/es/victory-util/timer.js +40 -76
  51. package/es/victory-util/transitions.js +110 -150
  52. package/es/victory-util/type-helpers.js +2 -3
  53. package/es/victory-util/user-props.js +24 -49
  54. package/es/victory-util/wrapper.js +184 -247
  55. package/lib/index.js +0 -30
  56. package/lib/victory-accessible-group/victory-accessible-group.js +9 -19
  57. package/lib/victory-animation/util.js +28 -63
  58. package/lib/victory-animation/victory-animation.js +54 -83
  59. package/lib/victory-clip-container/victory-clip-container.js +156 -243
  60. package/lib/victory-container/victory-container.js +160 -232
  61. package/lib/victory-label/victory-label.js +248 -344
  62. package/lib/victory-portal/portal-context.js +1 -6
  63. package/lib/victory-portal/portal.js +31 -81
  64. package/lib/victory-portal/victory-portal.js +50 -116
  65. package/lib/victory-primitives/arc.js +48 -57
  66. package/lib/victory-primitives/background.js +16 -28
  67. package/lib/victory-primitives/border.js +22 -34
  68. package/lib/victory-primitives/circle.js +16 -36
  69. package/lib/victory-primitives/clip-path.js +3 -11
  70. package/lib/victory-primitives/index.js +0 -28
  71. package/lib/victory-primitives/line-segment.js +22 -34
  72. package/lib/victory-primitives/line.js +16 -36
  73. package/lib/victory-primitives/path.js +16 -36
  74. package/lib/victory-primitives/point.js +38 -52
  75. package/lib/victory-primitives/rect.js +16 -36
  76. package/lib/victory-primitives/text.js +15 -33
  77. package/lib/victory-primitives/tspan.js +13 -31
  78. package/lib/victory-primitives/whisker.js +45 -57
  79. package/lib/victory-theme/grayscale.js +23 -24
  80. package/lib/victory-theme/material.js +47 -48
  81. package/lib/victory-theme/victory-theme.js +2 -7
  82. package/lib/victory-transition/victory-transition.js +129 -224
  83. package/lib/victory-util/add-events.js +263 -380
  84. package/lib/victory-util/axis.js +128 -241
  85. package/lib/victory-util/collection.js +13 -50
  86. package/lib/victory-util/data.js +160 -239
  87. package/lib/victory-util/default-transitions.js +33 -54
  88. package/lib/victory-util/domain.js +123 -193
  89. package/lib/victory-util/events.js +167 -274
  90. package/lib/victory-util/helpers.js +156 -207
  91. package/lib/victory-util/hooks/index.js +0 -2
  92. package/lib/victory-util/hooks/use-animation-state.js +63 -113
  93. package/lib/victory-util/hooks/use-previous-props.js +2 -7
  94. package/lib/victory-util/immutable.js +6 -18
  95. package/lib/victory-util/index.js +2 -51
  96. package/lib/victory-util/label-helpers.js +130 -141
  97. package/lib/victory-util/line-helpers.js +31 -49
  98. package/lib/victory-util/log.js +1 -2
  99. package/lib/victory-util/point-path-helpers.js +91 -63
  100. package/lib/victory-util/scale.js +26 -57
  101. package/lib/victory-util/selection.js +41 -49
  102. package/lib/victory-util/style.js +8 -16
  103. package/lib/victory-util/textsize.js +80 -157
  104. package/lib/victory-util/timer-context.js +2 -8
  105. package/lib/victory-util/timer.js +40 -76
  106. package/lib/victory-util/transitions.js +110 -152
  107. package/lib/victory-util/type-helpers.js +2 -9
  108. package/lib/victory-util/user-props.js +25 -59
  109. package/lib/victory-util/wrapper.js +186 -281
  110. package/package.json +2 -2
@@ -1,238 +1,179 @@
1
1
  import _isObject from "lodash/isObject";
2
2
  import _uniqueId from "lodash/uniqueId";
3
3
  import _defaults from "lodash/defaults";
4
-
5
4
  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); }
6
-
7
- 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; }
8
-
9
- 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; }
10
-
11
- function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
12
-
13
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
14
-
15
- function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
16
-
17
- function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
18
-
19
- function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }
20
-
21
- function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
22
-
23
- function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
24
-
25
- function _possibleConstructorReturn(self, call) { if (call && (typeof call === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); }
26
-
27
- function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
28
-
29
- function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
30
-
31
- function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
32
-
33
5
  import React from "react";
34
6
  import { Portal } from "../victory-portal/portal";
35
7
  import { PortalContext } from "../victory-portal/portal-context";
36
8
  import TimerContext from "../victory-util/timer-context";
37
9
  import * as Helpers from "../victory-util/helpers";
38
10
  import * as UserProps from "../victory-util/user-props";
39
- export var VictoryContainer = /*#__PURE__*/function (_React$Component) {
40
- _inherits(VictoryContainer, _React$Component);
11
+ export class VictoryContainer extends React.Component {
12
+ static displayName = "VictoryContainer";
13
+ static role = "container";
14
+ static defaultProps = {
15
+ className: "VictoryContainer",
16
+ portalComponent: /*#__PURE__*/React.createElement(Portal, null),
17
+ portalZIndex: 99,
18
+ responsive: true,
19
+ role: "img"
20
+ };
21
+ static contextType = TimerContext;
41
22
 
42
- var _super = _createSuper(VictoryContainer);
43
-
44
- // @ts-expect-error Ref will be initialized on mount
45
23
  // @ts-expect-error Ref will be initialized on mount
46
- function VictoryContainer(props) {
47
- var _this;
48
-
49
- _classCallCheck(this, VictoryContainer);
50
-
51
- _this = _super.call(this, props);
52
- _this.containerId = void 0;
53
- _this.portalRef = void 0;
54
- _this.containerRef = void 0;
55
- _this.shouldHandleWheel = void 0;
56
-
57
- _this.savePortalRef = function (portal) {
58
- _this.portalRef = portal;
59
- return portal;
60
- };
61
-
62
- _this.portalUpdate = function (key, el) {
63
- return _this.portalRef.portalUpdate(key, el);
64
- };
65
-
66
- _this.portalRegister = function () {
67
- return _this.portalRef.portalRegister();
68
- };
69
-
70
- _this.portalDeregister = function (key) {
71
- return _this.portalRef.portalDeregister(key);
72
- };
73
-
74
- _this.saveContainerRef = function (container) {
75
- if (Helpers.isFunction(_this.props.containerRef)) {
76
- _this.props.containerRef(container);
77
- }
78
24
 
79
- _this.containerRef = container;
80
- return container;
81
- };
82
-
83
- _this.handleWheel = function (e) {
84
- return e.preventDefault();
85
- };
25
+ // @ts-expect-error Ref will be initialized on mount
86
26
 
87
- _this.containerId = !_isObject(props) || props.containerId === undefined ? _uniqueId("victory-container-") : props.containerId;
88
- _this.shouldHandleWheel = !!(props && props.events && props.events.onWheel);
89
- return _this;
27
+ constructor(props) {
28
+ super(props);
29
+ this.containerId = !_isObject(props) || props.containerId === undefined ? _uniqueId("victory-container-") : props.containerId;
30
+ this.shouldHandleWheel = !!(props && props.events && props.events.onWheel);
90
31
  }
91
-
92
- _createClass(VictoryContainer, [{
93
- key: "componentDidMount",
94
- value: function componentDidMount() {
95
- if (this.shouldHandleWheel && this.containerRef) {
96
- this.containerRef.addEventListener("wheel", this.handleWheel);
97
- }
32
+ savePortalRef = portal => {
33
+ this.portalRef = portal;
34
+ return portal;
35
+ };
36
+ portalUpdate = (key, el) => this.portalRef.portalUpdate(key, el);
37
+ portalRegister = () => this.portalRef.portalRegister();
38
+ portalDeregister = key => this.portalRef.portalDeregister(key);
39
+ saveContainerRef = container => {
40
+ if (Helpers.isFunction(this.props.containerRef)) {
41
+ this.props.containerRef(container);
98
42
  }
99
- }, {
100
- key: "componentWillUnmount",
101
- value: function componentWillUnmount() {
102
- if (this.shouldHandleWheel && this.containerRef) {
103
- this.containerRef.removeEventListener("wheel", this.handleWheel);
104
- }
43
+ this.containerRef = container;
44
+ return container;
45
+ };
46
+ handleWheel = e => e.preventDefault();
47
+ componentDidMount() {
48
+ if (this.shouldHandleWheel && this.containerRef) {
49
+ this.containerRef.addEventListener("wheel", this.handleWheel);
105
50
  }
106
- }, {
107
- key: "getIdForElement",
108
- value: function getIdForElement(elementName) {
109
- return "".concat(this.containerId, "-").concat(elementName);
110
- } // overridden in custom containers
51
+ }
52
+ componentWillUnmount() {
53
+ if (this.shouldHandleWheel && this.containerRef) {
54
+ this.containerRef.removeEventListener("wheel", this.handleWheel);
55
+ }
56
+ }
57
+ getIdForElement(elementName) {
58
+ return `${this.containerId}-${elementName}`;
59
+ }
111
60
 
112
- }, {
113
- key: "getChildren",
114
- value: function getChildren(props) {
115
- return props.children;
116
- } // Get props defined by the Open UI Automation (OUIA) 1.0-RC spec
117
- // See https://ouia.readthedocs.io/en/latest/README.html#ouia-component
61
+ // overridden in custom containers
62
+ getChildren(props) {
63
+ return props.children;
64
+ }
118
65
 
119
- }, {
120
- key: "getOUIAProps",
121
- value: function getOUIAProps(props) {
122
- var ouiaId = props.ouiaId,
123
- ouiaSafe = props.ouiaSafe,
124
- ouiaType = props.ouiaType;
125
- return _objectSpread(_objectSpread(_objectSpread({}, ouiaId && {
66
+ // Get props defined by the Open UI Automation (OUIA) 1.0-RC spec
67
+ // See https://ouia.readthedocs.io/en/latest/README.html#ouia-component
68
+ getOUIAProps(props) {
69
+ const {
70
+ ouiaId,
71
+ ouiaSafe,
72
+ ouiaType
73
+ } = props;
74
+ return {
75
+ ...(ouiaId && {
126
76
  "data-ouia-component-id": ouiaId
127
- }), ouiaType && {
77
+ }),
78
+ ...(ouiaType && {
128
79
  "data-ouia-component-type": ouiaType
129
- }), ouiaSafe !== undefined && {
80
+ }),
81
+ ...(ouiaSafe !== undefined && {
130
82
  "data-ouia-safe": ouiaSafe
131
- });
132
- }
133
- }, {
134
- key: "renderContainer",
135
- value: function renderContainer(props, svgProps, style) {
136
- var title = props.title,
137
- desc = props.desc,
138
- portalComponent = props.portalComponent,
139
- className = props.className,
140
- width = props.width,
141
- height = props.height,
142
- portalZIndex = props.portalZIndex,
143
- responsive = props.responsive;
144
- var children = this.getChildren(props);
145
- var dimensions = responsive ? {
146
- width: "100%",
147
- height: "100%"
148
- } : {
149
- width: width,
150
- height: height
151
- };
152
- var divStyle = Object.assign({
153
- pointerEvents: "none",
154
- touchAction: "none",
155
- position: "relative"
156
- }, dimensions);
157
- var portalDivStyle = Object.assign({
158
- zIndex: portalZIndex,
159
- position: "absolute",
160
- top: 0,
161
- left: 0
162
- }, dimensions);
163
- var svgStyle = Object.assign({
164
- pointerEvents: "all"
165
- }, dimensions);
166
- var portalSvgStyle = Object.assign({
167
- overflow: "visible"
168
- }, dimensions);
169
- var portalProps = {
170
- width: width,
171
- height: height,
172
- viewBox: svgProps.viewBox,
173
- preserveAspectRatio: svgProps.preserveAspectRatio,
174
- style: portalSvgStyle
175
- };
176
- return /*#__PURE__*/React.createElement(PortalContext.Provider, {
177
- value: {
178
- portalUpdate: this.portalUpdate,
179
- portalRegister: this.portalRegister,
180
- portalDeregister: this.portalDeregister
181
- }
182
- }, /*#__PURE__*/React.createElement("div", _extends({
183
- style: _defaults({}, style, divStyle),
184
- className: className,
185
- ref: this.saveContainerRef
186
- }, this.getOUIAProps(props)), /*#__PURE__*/React.createElement("svg", _extends({}, svgProps, {
187
- style: svgStyle
188
- }), title ? /*#__PURE__*/React.createElement("title", {
189
- id: this.getIdForElement("title")
190
- }, title) : null, desc ? /*#__PURE__*/React.createElement("desc", {
191
- id: this.getIdForElement("desc")
192
- }, desc) : null, children), /*#__PURE__*/React.createElement("div", {
193
- style: portalDivStyle
194
- }, /*#__PURE__*/React.cloneElement(portalComponent, _objectSpread(_objectSpread({}, portalProps), {}, {
195
- ref: this.savePortalRef
196
- })))));
197
- }
198
- }, {
199
- key: "render",
200
- value: function render() {
201
- var _this$props = this.props,
202
- width = _this$props.width,
203
- height = _this$props.height,
204
- responsive = _this$props.responsive,
205
- events = _this$props.events,
206
- title = _this$props.title,
207
- desc = _this$props.desc,
208
- tabIndex = _this$props.tabIndex,
209
- preserveAspectRatio = _this$props.preserveAspectRatio,
210
- role = _this$props.role;
211
- var style = responsive ? this.props.style : Helpers.omit(this.props.style, ["height", "width"]);
212
- var userProps = UserProps.getSafeUserProps(this.props);
213
- var svgProps = Object.assign(_objectSpread({
214
- width: width,
215
- height: height,
216
- tabIndex: tabIndex,
217
- role: role,
218
- "aria-labelledby": [title && this.getIdForElement("title"), this.props["aria-labelledby"]].filter(Boolean).join(" ") || undefined,
219
- "aria-describedby": [desc && this.getIdForElement("desc"), this.props["aria-describedby"]].filter(Boolean).join(" ") || undefined,
220
- viewBox: responsive ? "0 0 ".concat(width, " ").concat(height) : undefined,
221
- preserveAspectRatio: responsive ? preserveAspectRatio : undefined
222
- }, userProps), events);
223
- return this.renderContainer(this.props, svgProps, style);
224
- }
225
- }]);
226
-
227
- return VictoryContainer;
228
- }(React.Component);
229
- VictoryContainer.displayName = "VictoryContainer";
230
- VictoryContainer.role = "container";
231
- VictoryContainer.defaultProps = {
232
- className: "VictoryContainer",
233
- portalComponent: /*#__PURE__*/React.createElement(Portal, null),
234
- portalZIndex: 99,
235
- responsive: true,
236
- role: "img"
237
- };
238
- VictoryContainer.contextType = TimerContext;
83
+ })
84
+ };
85
+ }
86
+ renderContainer(props, svgProps, style) {
87
+ const {
88
+ title,
89
+ desc,
90
+ portalComponent,
91
+ className,
92
+ width,
93
+ height,
94
+ portalZIndex,
95
+ responsive
96
+ } = props;
97
+ const children = this.getChildren(props);
98
+ const dimensions = responsive ? {
99
+ width: "100%",
100
+ height: "100%"
101
+ } : {
102
+ width,
103
+ height
104
+ };
105
+ const divStyle = Object.assign({
106
+ pointerEvents: "none",
107
+ touchAction: "none",
108
+ position: "relative"
109
+ }, dimensions);
110
+ const portalDivStyle = Object.assign({
111
+ zIndex: portalZIndex,
112
+ position: "absolute",
113
+ top: 0,
114
+ left: 0
115
+ }, dimensions);
116
+ const svgStyle = Object.assign({
117
+ pointerEvents: "all"
118
+ }, dimensions);
119
+ const portalSvgStyle = Object.assign({
120
+ overflow: "visible"
121
+ }, dimensions);
122
+ const portalProps = {
123
+ width,
124
+ height,
125
+ viewBox: svgProps.viewBox,
126
+ preserveAspectRatio: svgProps.preserveAspectRatio,
127
+ style: portalSvgStyle
128
+ };
129
+ return /*#__PURE__*/React.createElement(PortalContext.Provider, {
130
+ value: {
131
+ portalUpdate: this.portalUpdate,
132
+ portalRegister: this.portalRegister,
133
+ portalDeregister: this.portalDeregister
134
+ }
135
+ }, /*#__PURE__*/React.createElement("div", _extends({
136
+ style: _defaults({}, style, divStyle),
137
+ className: className,
138
+ ref: this.saveContainerRef
139
+ }, this.getOUIAProps(props)), /*#__PURE__*/React.createElement("svg", _extends({}, svgProps, {
140
+ style: svgStyle
141
+ }), title ? /*#__PURE__*/React.createElement("title", {
142
+ id: this.getIdForElement("title")
143
+ }, title) : null, desc ? /*#__PURE__*/React.createElement("desc", {
144
+ id: this.getIdForElement("desc")
145
+ }, desc) : null, children), /*#__PURE__*/React.createElement("div", {
146
+ style: portalDivStyle
147
+ }, /*#__PURE__*/React.cloneElement(portalComponent, {
148
+ ...portalProps,
149
+ ref: this.savePortalRef
150
+ }))));
151
+ }
152
+ render() {
153
+ const {
154
+ width,
155
+ height,
156
+ responsive,
157
+ events,
158
+ title,
159
+ desc,
160
+ tabIndex,
161
+ preserveAspectRatio,
162
+ role
163
+ } = this.props;
164
+ const style = responsive ? this.props.style : Helpers.omit(this.props.style, ["height", "width"]);
165
+ const userProps = UserProps.getSafeUserProps(this.props);
166
+ const svgProps = Object.assign({
167
+ width,
168
+ height,
169
+ tabIndex,
170
+ role,
171
+ "aria-labelledby": [title && this.getIdForElement("title"), this.props["aria-labelledby"]].filter(Boolean).join(" ") || undefined,
172
+ "aria-describedby": [desc && this.getIdForElement("desc"), this.props["aria-describedby"]].filter(Boolean).join(" ") || undefined,
173
+ viewBox: responsive ? `0 0 ${width} ${height}` : undefined,
174
+ preserveAspectRatio: responsive ? preserveAspectRatio : undefined,
175
+ ...userProps
176
+ }, events);
177
+ return this.renderContainer(this.props, svgProps, style);
178
+ }
179
+ }