{"version":3,"file":"static/module-recharts.eea12314.js","mappings":"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","sources":["webpack://@spotify-confidence/app/../../node_modules/recharts/es6/cartesian/Bar.js","webpack://@spotify-confidence/app/../../node_modules/recharts/es6/cartesian/CartesianGrid.js","webpack://@spotify-confidence/app/../../node_modules/recharts/es6/cartesian/ErrorBar.js","webpack://@spotify-confidence/app/../../node_modules/recharts/es6/cartesian/Line.js","webpack://@spotify-confidence/app/../../node_modules/recharts/es6/cartesian/ReferenceLine.js","webpack://@spotify-confidence/app/../../node_modules/recharts/es6/cartesian/XAxis.js","webpack://@spotify-confidence/app/../../node_modules/recharts/es6/cartesian/YAxis.js","webpack://@spotify-confidence/app/../../node_modules/recharts/es6/chart/BarChart.js","webpack://@spotify-confidence/app/../../node_modules/recharts/es6/chart/LineChart.js","webpack://@spotify-confidence/app/../../node_modules/recharts/es6/shape/Polygon.js","webpack://@spotify-confidence/app/../../node_modules/recharts/es6/polar/PolarAngleAxis.js","webpack://@spotify-confidence/app/../../node_modules/recharts/es6/polar/PolarRadiusAxis.js","webpack://@spotify-confidence/app/../../node_modules/recharts/es6/chart/PieChart.js","webpack://@spotify-confidence/app/../../node_modules/recharts/es6/chart/Sankey.js","webpack://@spotify-confidence/app/../../node_modules/recharts/es6/util/getEveryNthWithCondition.js","webpack://@spotify-confidence/app/../../node_modules/recharts/es6/cartesian/getTicks.js","webpack://@spotify-confidence/app/../../node_modules/recharts/es6/shape/Cross.js","webpack://@spotify-confidence/app/../../node_modules/recharts/es6/cartesian/CartesianAxis.js","webpack://@spotify-confidence/app/../../node_modules/recharts/es6/util/CssPrefixUtils.js","webpack://@spotify-confidence/app/../../node_modules/recharts/es6/cartesian/Brush.js","webpack://@spotify-confidence/app/../../node_modules/recharts/es6/cartesian/ReferenceDot.js","webpack://@spotify-confidence/app/../../node_modules/recharts/es6/cartesian/ReferenceArea.js","webpack://@spotify-confidence/app/../../node_modules/recharts/es6/util/DetectReferenceElementsDomain.js","webpack://@spotify-confidence/app/../../node_modules/recharts/es6/util/Events.js","webpack://@spotify-confidence/app/../../node_modules/recharts/es6/chart/AccessibilityManager.js","webpack://@spotify-confidence/app/../../node_modules/recharts/es6/chart/generateCategoricalChart.js","webpack://@spotify-confidence/app/../../node_modules/recharts/es6/component/Cell.js","webpack://@spotify-confidence/app/../../node_modules/recharts/es6/component/Label.js","webpack://@spotify-confidence/app/../../node_modules/recharts/es6/component/LabelList.js","webpack://@spotify-confidence/app/../../node_modules/recharts/es6/shape/Symbols.js","webpack://@spotify-confidence/app/../../node_modules/recharts/es6/component/DefaultLegendContent.js","webpack://@spotify-confidence/app/../../node_modules/recharts/es6/component/Legend.js","webpack://@spotify-confidence/app/../../node_modules/recharts/es6/component/ResponsiveContainer.js","webpack://@spotify-confidence/app/../../node_modules/recharts/es6/component/Text.js","webpack://@spotify-confidence/app/../../node_modules/recharts/es6/component/DefaultTooltipContent.js","webpack://@spotify-confidence/app/../../node_modules/recharts/es6/component/Tooltip.js","webpack://@spotify-confidence/app/../../node_modules/recharts/es6/container/Layer.js","webpack://@spotify-confidence/app/../../node_modules/recharts/es6/container/Surface.js","webpack://@spotify-confidence/app/../../node_modules/recharts/es6/polar/Pie.js","webpack://@spotify-confidence/app/../../node_modules/recharts/es6/shape/Curve.js","webpack://@spotify-confidence/app/../../node_modules/recharts/es6/shape/Dot.js","webpack://@spotify-confidence/app/../../node_modules/recharts/es6/shape/Rectangle.js","webpack://@spotify-confidence/app/../../node_modules/recharts/es6/shape/Sector.js","webpack://@spotify-confidence/app/../../node_modules/recharts/es6/util/CartesianUtils.js","webpack://@spotify-confidence/app/../../node_modules/recharts/es6/util/ChartUtils.js","webpack://@spotify-confidence/app/../../node_modules/recharts/es6/util/DOMUtils.js","webpack://@spotify-confidence/app/../../node_modules/recharts/es6/util/DataUtils.js","webpack://@spotify-confidence/app/../../node_modules/recharts/es6/util/Global.js","webpack://@spotify-confidence/app/../../node_modules/recharts/es6/util/IfOverflowMatches.js","webpack://@spotify-confidence/app/../../node_modules/recharts/es6/util/LogUtils.js","webpack://@spotify-confidence/app/../../node_modules/recharts/es6/util/PolarUtils.js","webpack://@spotify-confidence/app/../../node_modules/recharts/es6/util/ReactUtils.js","webpack://@spotify-confidence/app/../../node_modules/recharts/es6/util/ShallowEqual.js","webpack://@spotify-confidence/app/../../node_modules/recharts/es6/util/types.js","webpack://@spotify-confidence/app/../../node_modules/recharts/node_modules/react-is/cjs/react-is.production.min.js","webpack://@spotify-confidence/app/../../node_modules/recharts/node_modules/react-is/index.js","webpack://@spotify-confidence/app/../../plugins/confidence-admin/node_modules/recharts/es6/component/Cell.js","webpack://@spotify-confidence/app/../../plugins/confidence-admin/node_modules/recharts/es6/component/LabelList.js","webpack://@spotify-confidence/app/../../plugins/confidence-admin/node_modules/recharts/es6/util/BarUtils.js","webpack://@spotify-confidence/app/../../plugins/confidence-admin/node_modules/recharts/es6/cartesian/Bar.js","webpack://@spotify-confidence/app/../../plugins/confidence-admin/node_modules/recharts/es6/cartesian/CartesianAxis.js","webpack://@spotify-confidence/app/../../plugins/confidence-admin/node_modules/recharts/es6/cartesian/CartesianGrid.js","webpack://@spotify-confidence/app/../../plugins/confidence-admin/node_modules/recharts/es6/cartesian/ErrorBar.js","webpack://@spotify-confidence/app/../../plugins/confidence-admin/node_modules/recharts/es6/cartesian/XAxis.js","webpack://@spotify-confidence/app/../../plugins/confidence-admin/node_modules/recharts/es6/cartesian/YAxis.js","webpack://@spotify-confidence/app/../../plugins/confidence-admin/node_modules/recharts/es6/util/getEveryNthWithCondition.js","webpack://@spotify-confidence/app/../../plugins/confidence-admin/node_modules/recharts/es6/util/TickUtils.js","webpack://@spotify-confidence/app/../../plugins/confidence-admin/node_modules/recharts/es6/cartesian/getEquidistantTicks.js","webpack://@spotify-confidence/app/../../plugins/confidence-admin/node_modules/recharts/es6/cartesian/getTicks.js","webpack://@spotify-confidence/app/../../plugins/confidence-admin/node_modules/recharts/es6/shape/Dot.js","webpack://@spotify-confidence/app/../../plugins/confidence-admin/node_modules/recharts/es6/util/CssPrefixUtils.js","webpack://@spotify-confidence/app/../../plugins/confidence-admin/node_modules/recharts/es6/cartesian/Brush.js","webpack://@spotify-confidence/app/../../plugins/confidence-admin/node_modules/recharts/es6/util/IfOverflowMatches.js","webpack://@spotify-confidence/app/../../plugins/confidence-admin/node_modules/recharts/es6/cartesian/ReferenceDot.js","webpack://@spotify-confidence/app/../../plugins/confidence-admin/node_modules/recharts/es6/cartesian/ReferenceLine.js","webpack://@spotify-confidence/app/../../plugins/confidence-admin/node_modules/recharts/es6/cartesian/ReferenceArea.js","webpack://@spotify-confidence/app/../../plugins/confidence-admin/node_modules/recharts/es6/util/DetectReferenceElementsDomain.js","webpack://@spotify-confidence/app/../../plugins/confidence-admin/node_modules/recharts/es6/util/Events.js","webpack://@spotify-confidence/app/../../plugins/confidence-admin/node_modules/recharts/es6/chart/AccessibilityManager.js","webpack://@spotify-confidence/app/../../plugins/confidence-admin/node_modules/recharts/es6/util/isDomainSpecifiedByUser.js","webpack://@spotify-confidence/app/../../plugins/confidence-admin/node_modules/recharts/es6/shape/Curve.js","webpack://@spotify-confidence/app/../../plugins/confidence-admin/node_modules/recharts/es6/shape/Cross.js","webpack://@spotify-confidence/app/../../plugins/confidence-admin/node_modules/recharts/es6/util/cursor/getCursorRectangle.js","webpack://@spotify-confidence/app/../../plugins/confidence-admin/node_modules/recharts/es6/util/cursor/getRadialCursorPoints.js","webpack://@spotify-confidence/app/../../plugins/confidence-admin/node_modules/recharts/es6/util/cursor/getCursorPoints.js","webpack://@spotify-confidence/app/../../plugins/confidence-admin/node_modules/recharts/es6/component/Cursor.js","webpack://@spotify-confidence/app/../../plugins/confidence-admin/node_modules/recharts/es6/chart/generateCategoricalChart.js","webpack://@spotify-confidence/app/../../plugins/confidence-admin/node_modules/recharts/es6/chart/BarChart.js","webpack://@spotify-confidence/app/../../plugins/confidence-admin/node_modules/recharts/es6/component/Label.js","webpack://@spotify-confidence/app/../../plugins/confidence-admin/node_modules/recharts/es6/component/DefaultLegendContent.js","webpack://@spotify-confidence/app/../../plugins/confidence-admin/node_modules/recharts/es6/component/Legend.js","webpack://@spotify-confidence/app/../../plugins/confidence-admin/node_modules/recharts/es6/component/ResponsiveContainer.js","webpack://@spotify-confidence/app/../../plugins/confidence-admin/node_modules/recharts/es6/util/ReduceCSSCalc.js","webpack://@spotify-confidence/app/../../plugins/confidence-admin/node_modules/recharts/es6/component/Text.js","webpack://@spotify-confidence/app/../../plugins/confidence-admin/node_modules/recharts/es6/component/DefaultTooltipContent.js","webpack://@spotify-confidence/app/../../plugins/confidence-admin/node_modules/recharts/es6/util/tooltip/translate.js","webpack://@spotify-confidence/app/../../plugins/confidence-admin/node_modules/recharts/es6/component/TooltipBoundingBox.js","webpack://@spotify-confidence/app/../../plugins/confidence-admin/node_modules/recharts/es6/component/Tooltip.js","webpack://@spotify-confidence/app/../../plugins/confidence-admin/node_modules/recharts/es6/container/Layer.js","webpack://@spotify-confidence/app/../../plugins/confidence-admin/node_modules/recharts/es6/container/Surface.js","webpack://@spotify-confidence/app/../../plugins/confidence-admin/node_modules/recharts/es6/util/calculateViewBox.js","webpack://@spotify-confidence/app/../../plugins/confidence-admin/node_modules/recharts/es6/context/chartLayoutContext.js","webpack://@spotify-confidence/app/../../plugins/confidence-admin/node_modules/recharts/es6/shape/Rectangle.js","webpack://@spotify-confidence/app/../../plugins/confidence-admin/node_modules/recharts/es6/shape/Sector.js","webpack://@spotify-confidence/app/../../plugins/confidence-admin/node_modules/recharts/es6/shape/Symbols.js","webpack://@spotify-confidence/app/../../plugins/confidence-admin/node_modules/recharts/es6/shape/Trapezoid.js","webpack://@spotify-confidence/app/../../plugins/confidence-admin/node_modules/recharts/es6/util/ActiveShapeUtils.js","webpack://@spotify-confidence/app/../../plugins/confidence-admin/node_modules/recharts/es6/util/CartesianUtils.js","webpack://@spotify-confidence/app/../../plugins/confidence-admin/node_modules/recharts/es6/util/ChartUtils.js","webpack://@spotify-confidence/app/../../plugins/confidence-admin/node_modules/recharts/es6/util/DOMUtils.js","webpack://@spotify-confidence/app/../../plugins/confidence-admin/node_modules/recharts/es6/util/DataUtils.js","webpack://@spotify-confidence/app/../../plugins/confidence-admin/node_modules/recharts/es6/util/Global.js","webpack://@spotify-confidence/app/../../plugins/confidence-admin/node_modules/recharts/es6/util/LogUtils.js","webpack://@spotify-confidence/app/../../plugins/confidence-admin/node_modules/recharts/es6/util/PolarUtils.js","webpack://@spotify-confidence/app/../../plugins/confidence-admin/node_modules/recharts/es6/util/ReactUtils.js","webpack://@spotify-confidence/app/../../plugins/confidence-admin/node_modules/recharts/es6/util/ShallowEqual.js","webpack://@spotify-confidence/app/../../plugins/confidence-admin/node_modules/recharts/es6/util/getLegendProps.js","webpack://@spotify-confidence/app/../../plugins/confidence-admin/node_modules/recharts/es6/util/payload/getUniqPayload.js","webpack://@spotify-confidence/app/../../plugins/confidence-admin/node_modules/recharts/es6/util/types.js"],"sourcesContent":["import _isNil from \"lodash/isNil\";\nimport _isEqual from \"lodash/isEqual\";\nimport _isFunction from \"lodash/isFunction\";\nimport _isArray from \"lodash/isArray\";\nvar _excluded = [\"value\", \"background\"];\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction _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; }\nfunction _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; }\nfunction _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); }\nfunction 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; }\nfunction _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; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _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, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _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); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _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); }; }\nfunction _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); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _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; } }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\n/**\n * @fileOverview Render a group of bar\n */\nimport React, { PureComponent } from 'react';\nimport classNames from 'classnames';\nimport Animate from 'react-smooth';\nimport { Rectangle } from '../shape/Rectangle';\nimport { Layer } from '../container/Layer';\nimport { ErrorBar } from './ErrorBar';\nimport { Cell } from '../component/Cell';\nimport { LabelList } from '../component/LabelList';\nimport { uniqueId, mathSign, interpolateNumber } from '../util/DataUtils';\nimport { filterProps, findAllByType } from '../util/ReactUtils';\nimport { Global } from '../util/Global';\nimport { getCateCoordinateOfBar, getValueByDataKey, truncateByDomain, getBaseValueOfBar, findPositionOfBar, getTooltipItem } from '../util/ChartUtils';\nimport { adaptEventsOfChild } from '../util/types';\nexport var Bar = /*#__PURE__*/function (_PureComponent) {\n _inherits(Bar, _PureComponent);\n var _super = _createSuper(Bar);\n function Bar() {\n var _this;\n _classCallCheck(this, Bar);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"state\", {\n isAnimationFinished: false\n });\n _defineProperty(_assertThisInitialized(_this), \"id\", uniqueId('recharts-bar-'));\n _defineProperty(_assertThisInitialized(_this), \"handleAnimationEnd\", function () {\n var onAnimationEnd = _this.props.onAnimationEnd;\n _this.setState({\n isAnimationFinished: true\n });\n if (onAnimationEnd) {\n onAnimationEnd();\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"handleAnimationStart\", function () {\n var onAnimationStart = _this.props.onAnimationStart;\n _this.setState({\n isAnimationFinished: false\n });\n if (onAnimationStart) {\n onAnimationStart();\n }\n });\n return _this;\n }\n _createClass(Bar, [{\n key: \"renderRectanglesStatically\",\n value: function renderRectanglesStatically(data) {\n var _this2 = this;\n var shape = this.props.shape;\n var baseProps = filterProps(this.props);\n return data && data.map(function (entry, i) {\n var props = _objectSpread(_objectSpread(_objectSpread({}, baseProps), entry), {}, {\n index: i\n });\n return /*#__PURE__*/React.createElement(Layer, _extends({\n className: \"recharts-bar-rectangle\"\n }, adaptEventsOfChild(_this2.props, entry, i), {\n key: \"rectangle-\".concat(i) // eslint-disable-line react/no-array-index-key\n }), Bar.renderRectangle(shape, props));\n });\n }\n }, {\n key: \"renderRectanglesWithAnimation\",\n value: function renderRectanglesWithAnimation() {\n var _this3 = this;\n var _this$props = this.props,\n data = _this$props.data,\n layout = _this$props.layout,\n isAnimationActive = _this$props.isAnimationActive,\n animationBegin = _this$props.animationBegin,\n animationDuration = _this$props.animationDuration,\n animationEasing = _this$props.animationEasing,\n animationId = _this$props.animationId;\n var prevData = this.state.prevData;\n return /*#__PURE__*/React.createElement(Animate, {\n begin: animationBegin,\n duration: animationDuration,\n isActive: isAnimationActive,\n easing: animationEasing,\n from: {\n t: 0\n },\n to: {\n t: 1\n },\n key: \"bar-\".concat(animationId),\n onAnimationEnd: this.handleAnimationEnd,\n onAnimationStart: this.handleAnimationStart\n }, function (_ref) {\n var t = _ref.t;\n var stepData = data.map(function (entry, index) {\n var prev = prevData && prevData[index];\n if (prev) {\n var interpolatorX = interpolateNumber(prev.x, entry.x);\n var interpolatorY = interpolateNumber(prev.y, entry.y);\n var interpolatorWidth = interpolateNumber(prev.width, entry.width);\n var interpolatorHeight = interpolateNumber(prev.height, entry.height);\n return _objectSpread(_objectSpread({}, entry), {}, {\n x: interpolatorX(t),\n y: interpolatorY(t),\n width: interpolatorWidth(t),\n height: interpolatorHeight(t)\n });\n }\n if (layout === 'horizontal') {\n var _interpolatorHeight = interpolateNumber(0, entry.height);\n var h = _interpolatorHeight(t);\n return _objectSpread(_objectSpread({}, entry), {}, {\n y: entry.y + entry.height - h,\n height: h\n });\n }\n var interpolator = interpolateNumber(0, entry.width);\n var w = interpolator(t);\n return _objectSpread(_objectSpread({}, entry), {}, {\n width: w\n });\n });\n return /*#__PURE__*/React.createElement(Layer, null, _this3.renderRectanglesStatically(stepData));\n });\n }\n }, {\n key: \"renderRectangles\",\n value: function renderRectangles() {\n var _this$props2 = this.props,\n data = _this$props2.data,\n isAnimationActive = _this$props2.isAnimationActive;\n var prevData = this.state.prevData;\n if (isAnimationActive && data && data.length && (!prevData || !_isEqual(prevData, data))) {\n return this.renderRectanglesWithAnimation();\n }\n return this.renderRectanglesStatically(data);\n }\n }, {\n key: \"renderBackground\",\n value: function renderBackground() {\n var _this4 = this;\n var data = this.props.data;\n var backgroundProps = filterProps(this.props.background);\n return data.map(function (entry, i) {\n var value = entry.value,\n background = entry.background,\n rest = _objectWithoutProperties(entry, _excluded);\n if (!background) {\n return null;\n }\n var props = _objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, rest), {}, {\n fill: '#eee'\n }, background), backgroundProps), adaptEventsOfChild(_this4.props, entry, i)), {}, {\n index: i,\n key: \"background-bar-\".concat(i),\n className: 'recharts-bar-background-rectangle'\n });\n return Bar.renderRectangle(_this4.props.background, props);\n });\n }\n }, {\n key: \"renderErrorBar\",\n value: function renderErrorBar(needClip, clipPathId) {\n if (this.props.isAnimationActive && !this.state.isAnimationFinished) {\n return null;\n }\n var _this$props3 = this.props,\n data = _this$props3.data,\n xAxis = _this$props3.xAxis,\n yAxis = _this$props3.yAxis,\n layout = _this$props3.layout,\n children = _this$props3.children;\n var errorBarItems = findAllByType(children, ErrorBar);\n if (!errorBarItems) {\n return null;\n }\n var offset = layout === 'vertical' ? data[0].height / 2 : data[0].width / 2;\n var dataPointFormatter = function dataPointFormatter(dataPoint, dataKey) {\n /**\n * if the value coming from `getComposedData` is an array then this is a stacked bar chart.\n * arr[1] represents end value of the bar since the data is in the form of [startValue, endValue].\n * */\n var value = Array.isArray(dataPoint.value) ? dataPoint.value[1] : dataPoint.value;\n return {\n x: dataPoint.x,\n y: dataPoint.y,\n value: value,\n errorVal: getValueByDataKey(dataPoint, dataKey)\n };\n };\n var errorBarProps = {\n clipPath: needClip ? \"url(#clipPath-\".concat(clipPathId, \")\") : null\n };\n return /*#__PURE__*/React.createElement(Layer, errorBarProps, errorBarItems.map(function (item, i) {\n return /*#__PURE__*/React.cloneElement(item, {\n key: \"error-bar-\".concat(i),\n // eslint-disable-line react/no-array-index-key\n data: data,\n xAxis: xAxis,\n yAxis: yAxis,\n layout: layout,\n offset: offset,\n dataPointFormatter: dataPointFormatter\n });\n }));\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props4 = this.props,\n hide = _this$props4.hide,\n data = _this$props4.data,\n className = _this$props4.className,\n xAxis = _this$props4.xAxis,\n yAxis = _this$props4.yAxis,\n left = _this$props4.left,\n top = _this$props4.top,\n width = _this$props4.width,\n height = _this$props4.height,\n isAnimationActive = _this$props4.isAnimationActive,\n background = _this$props4.background,\n id = _this$props4.id;\n if (hide || !data || !data.length) {\n return null;\n }\n var isAnimationFinished = this.state.isAnimationFinished;\n var layerClass = classNames('recharts-bar', className);\n var needClipX = xAxis && xAxis.allowDataOverflow;\n var needClipY = yAxis && yAxis.allowDataOverflow;\n var needClip = needClipX || needClipY;\n var clipPathId = _isNil(id) ? this.id : id;\n return /*#__PURE__*/React.createElement(Layer, {\n className: layerClass\n }, needClipX || needClipY ? /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clipPath-\".concat(clipPathId)\n }, /*#__PURE__*/React.createElement(\"rect\", {\n x: needClipX ? left : left - width / 2,\n y: needClipY ? top : top - height / 2,\n width: needClipX ? width : width * 2,\n height: needClipY ? height : height * 2\n }))) : null, /*#__PURE__*/React.createElement(Layer, {\n className: \"recharts-bar-rectangles\",\n clipPath: needClip ? \"url(#clipPath-\".concat(clipPathId, \")\") : null\n }, background ? this.renderBackground() : null, this.renderRectangles()), this.renderErrorBar(needClip, clipPathId), (!isAnimationActive || isAnimationFinished) && LabelList.renderCallByParent(this.props, data));\n }\n }], [{\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(nextProps, prevState) {\n if (nextProps.animationId !== prevState.prevAnimationId) {\n return {\n prevAnimationId: nextProps.animationId,\n curData: nextProps.data,\n prevData: prevState.curData\n };\n }\n if (nextProps.data !== prevState.curData) {\n return {\n curData: nextProps.data\n };\n }\n return null;\n }\n }, {\n key: \"renderRectangle\",\n value: function renderRectangle(option, props) {\n var rectangle;\n if ( /*#__PURE__*/React.isValidElement(option)) {\n rectangle = /*#__PURE__*/React.cloneElement(option, props);\n } else if (_isFunction(option)) {\n rectangle = option(props);\n } else {\n rectangle = /*#__PURE__*/React.createElement(Rectangle, props);\n }\n return rectangle;\n }\n }]);\n return Bar;\n}(PureComponent);\n_defineProperty(Bar, \"displayName\", 'Bar');\n_defineProperty(Bar, \"defaultProps\", {\n xAxisId: 0,\n yAxisId: 0,\n legendType: 'rect',\n minPointSize: 0,\n hide: false,\n data: [],\n layout: 'vertical',\n isAnimationActive: !Global.isSsr,\n animationBegin: 0,\n animationDuration: 400,\n animationEasing: 'ease'\n});\n/**\n * Compose the data of each group\n * @param {Object} props Props for the component\n * @param {Object} item An instance of Bar\n * @param {Array} barPosition The offset and size of each bar\n * @param {Object} xAxis The configuration of x-axis\n * @param {Object} yAxis The configuration of y-axis\n * @param {Array} stackedData The stacked data of a bar item\n * @return{Array} Composed data\n */\n_defineProperty(Bar, \"getComposedData\", function (_ref2) {\n var props = _ref2.props,\n item = _ref2.item,\n barPosition = _ref2.barPosition,\n bandSize = _ref2.bandSize,\n xAxis = _ref2.xAxis,\n yAxis = _ref2.yAxis,\n xAxisTicks = _ref2.xAxisTicks,\n yAxisTicks = _ref2.yAxisTicks,\n stackedData = _ref2.stackedData,\n dataStartIndex = _ref2.dataStartIndex,\n displayedData = _ref2.displayedData,\n offset = _ref2.offset;\n var pos = findPositionOfBar(barPosition, item);\n if (!pos) {\n return null;\n }\n var layout = props.layout;\n var _item$props = item.props,\n dataKey = _item$props.dataKey,\n children = _item$props.children,\n minPointSize = _item$props.minPointSize;\n var numericAxis = layout === 'horizontal' ? yAxis : xAxis;\n var stackedDomain = stackedData ? numericAxis.scale.domain() : null;\n var baseValue = getBaseValueOfBar({\n numericAxis: numericAxis\n });\n var cells = findAllByType(children, Cell);\n var rects = displayedData.map(function (entry, index) {\n var value, x, y, width, height, background;\n if (stackedData) {\n value = truncateByDomain(stackedData[dataStartIndex + index], stackedDomain);\n } else {\n value = getValueByDataKey(entry, dataKey);\n if (!_isArray(value)) {\n value = [baseValue, value];\n }\n }\n if (layout === 'horizontal') {\n var _ref4;\n var _ref3 = [yAxis.scale(value[0]), yAxis.scale(value[1])],\n baseValueScale = _ref3[0],\n currentValueScale = _ref3[1];\n x = getCateCoordinateOfBar({\n axis: xAxis,\n ticks: xAxisTicks,\n bandSize: bandSize,\n offset: pos.offset,\n entry: entry,\n index: index\n });\n y = (_ref4 = currentValueScale !== null && currentValueScale !== void 0 ? currentValueScale : baseValueScale) !== null && _ref4 !== void 0 ? _ref4 : undefined;\n width = pos.size;\n var computedHeight = baseValueScale - currentValueScale;\n height = Number.isNaN(computedHeight) ? 0 : computedHeight;\n background = {\n x: x,\n y: yAxis.y,\n width: width,\n height: yAxis.height\n };\n if (Math.abs(minPointSize) > 0 && Math.abs(height) < Math.abs(minPointSize)) {\n var delta = mathSign(height || minPointSize) * (Math.abs(minPointSize) - Math.abs(height));\n y -= delta;\n height += delta;\n }\n } else {\n var _ref5 = [xAxis.scale(value[0]), xAxis.scale(value[1])],\n _baseValueScale = _ref5[0],\n _currentValueScale = _ref5[1];\n x = _baseValueScale;\n y = getCateCoordinateOfBar({\n axis: yAxis,\n ticks: yAxisTicks,\n bandSize: bandSize,\n offset: pos.offset,\n entry: entry,\n index: index\n });\n width = _currentValueScale - _baseValueScale;\n height = pos.size;\n background = {\n x: xAxis.x,\n y: y,\n width: xAxis.width,\n height: height\n };\n if (Math.abs(minPointSize) > 0 && Math.abs(width) < Math.abs(minPointSize)) {\n var _delta = mathSign(width || minPointSize) * (Math.abs(minPointSize) - Math.abs(width));\n width += _delta;\n }\n }\n return _objectSpread(_objectSpread(_objectSpread({}, entry), {}, {\n x: x,\n y: y,\n width: width,\n height: height,\n value: stackedData ? value : value[1],\n payload: entry,\n background: background\n }, cells && cells[index] && cells[index].props), {}, {\n tooltipPayload: [getTooltipItem(item, entry)],\n tooltipPosition: {\n x: x + width / 2,\n y: y + height / 2\n }\n });\n });\n return _objectSpread({\n data: rects,\n layout: layout\n }, offset);\n});","import _isFunction from \"lodash/isFunction\";\nvar _excluded = [\"x1\", \"y1\", \"x2\", \"y2\", \"key\"];\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction _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); }\nfunction _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; }\nfunction _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; }\nfunction 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; }\nfunction _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; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _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, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _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); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _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); }; }\nfunction _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); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _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; } }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\n/**\n * @fileOverview Cartesian Grid\n */\nimport React, { PureComponent } from 'react';\nimport { isNumber } from '../util/DataUtils';\nimport { filterProps } from '../util/ReactUtils';\nexport var CartesianGrid = /*#__PURE__*/function (_PureComponent) {\n _inherits(CartesianGrid, _PureComponent);\n var _super = _createSuper(CartesianGrid);\n function CartesianGrid() {\n _classCallCheck(this, CartesianGrid);\n return _super.apply(this, arguments);\n }\n _createClass(CartesianGrid, [{\n key: \"renderHorizontal\",\n value:\n /**\n * Draw the horizontal grid lines\n * @param {Array} horizontalPoints either passed in as props or generated from function\n * @return {Group} Horizontal lines\n */\n function renderHorizontal(horizontalPoints) {\n var _this = this;\n var _this$props = this.props,\n x = _this$props.x,\n width = _this$props.width,\n horizontal = _this$props.horizontal;\n if (!horizontalPoints || !horizontalPoints.length) {\n return null;\n }\n var items = horizontalPoints.map(function (entry, i) {\n var props = _objectSpread(_objectSpread({}, _this.props), {}, {\n x1: x,\n y1: entry,\n x2: x + width,\n y2: entry,\n key: \"line-\".concat(i),\n index: i\n });\n return CartesianGrid.renderLineItem(horizontal, props);\n });\n return /*#__PURE__*/React.createElement(\"g\", {\n className: \"recharts-cartesian-grid-horizontal\"\n }, items);\n }\n\n /**\n * Draw vertical grid lines\n * @param {Array} verticalPoints either passed in as props or generated from function\n * @return {Group} Vertical lines\n */\n }, {\n key: \"renderVertical\",\n value: function renderVertical(verticalPoints) {\n var _this2 = this;\n var _this$props2 = this.props,\n y = _this$props2.y,\n height = _this$props2.height,\n vertical = _this$props2.vertical;\n if (!verticalPoints || !verticalPoints.length) {\n return null;\n }\n var items = verticalPoints.map(function (entry, i) {\n var props = _objectSpread(_objectSpread({}, _this2.props), {}, {\n x1: entry,\n y1: y,\n x2: entry,\n y2: y + height,\n key: \"line-\".concat(i),\n index: i\n });\n return CartesianGrid.renderLineItem(vertical, props);\n });\n return /*#__PURE__*/React.createElement(\"g\", {\n className: \"recharts-cartesian-grid-vertical\"\n }, items);\n }\n\n /**\n * Draw vertical grid stripes filled by colors\n * @param {Array} verticalPoints either passed in as props or generated from function\n * @return {Group} Vertical stripes\n */\n }, {\n key: \"renderVerticalStripes\",\n value: function renderVerticalStripes(verticalPoints) {\n var verticalFill = this.props.verticalFill;\n if (!verticalFill || !verticalFill.length) {\n return null;\n }\n var _this$props3 = this.props,\n fillOpacity = _this$props3.fillOpacity,\n x = _this$props3.x,\n y = _this$props3.y,\n width = _this$props3.width,\n height = _this$props3.height;\n var roundedSortedVerticalPoints = verticalPoints.map(function (e) {\n return Math.round(e + x - x);\n }).sort(function (a, b) {\n return a - b;\n });\n if (x !== roundedSortedVerticalPoints[0]) {\n roundedSortedVerticalPoints.unshift(0);\n }\n var items = roundedSortedVerticalPoints.map(function (entry, i) {\n var lastStripe = !roundedSortedVerticalPoints[i + 1];\n var lineWidth = lastStripe ? x + width - entry : roundedSortedVerticalPoints[i + 1] - entry;\n if (lineWidth <= 0) {\n return null;\n }\n var colorIndex = i % verticalFill.length;\n return /*#__PURE__*/React.createElement(\"rect\", {\n key: \"react-\".concat(i) // eslint-disable-line react/no-array-index-key\n ,\n x: entry,\n y: y,\n width: lineWidth,\n height: height,\n stroke: \"none\",\n fill: verticalFill[colorIndex],\n fillOpacity: fillOpacity,\n className: \"recharts-cartesian-grid-bg\"\n });\n });\n return /*#__PURE__*/React.createElement(\"g\", {\n className: \"recharts-cartesian-gridstripes-vertical\"\n }, items);\n }\n\n /**\n * Draw horizontal grid stripes filled by colors\n * @param {Array} horizontalPoints either passed in as props or generated from function\n * @return {Group} Horizontal stripes\n */\n }, {\n key: \"renderHorizontalStripes\",\n value: function renderHorizontalStripes(horizontalPoints) {\n var horizontalFill = this.props.horizontalFill;\n if (!horizontalFill || !horizontalFill.length) {\n return null;\n }\n var _this$props4 = this.props,\n fillOpacity = _this$props4.fillOpacity,\n x = _this$props4.x,\n y = _this$props4.y,\n width = _this$props4.width,\n height = _this$props4.height;\n var roundedSortedHorizontalPoints = horizontalPoints.map(function (e) {\n return Math.round(e + y - y);\n }).sort(function (a, b) {\n return a - b;\n });\n if (y !== roundedSortedHorizontalPoints[0]) {\n roundedSortedHorizontalPoints.unshift(0);\n }\n var items = roundedSortedHorizontalPoints.map(function (entry, i) {\n var lastStripe = !roundedSortedHorizontalPoints[i + 1];\n var lineHeight = lastStripe ? y + height - entry : roundedSortedHorizontalPoints[i + 1] - entry;\n if (lineHeight <= 0) {\n return null;\n }\n var colorIndex = i % horizontalFill.length;\n return /*#__PURE__*/React.createElement(\"rect\", {\n key: \"react-\".concat(i) // eslint-disable-line react/no-array-index-key\n ,\n y: entry,\n x: x,\n height: lineHeight,\n width: width,\n stroke: \"none\",\n fill: horizontalFill[colorIndex],\n fillOpacity: fillOpacity,\n className: \"recharts-cartesian-grid-bg\"\n });\n });\n return /*#__PURE__*/React.createElement(\"g\", {\n className: \"recharts-cartesian-gridstripes-horizontal\"\n }, items);\n }\n }, {\n key: \"renderBackground\",\n value: function renderBackground() {\n var fill = this.props.fill;\n if (!fill || fill === 'none') {\n return null;\n }\n var _this$props5 = this.props,\n fillOpacity = _this$props5.fillOpacity,\n x = _this$props5.x,\n y = _this$props5.y,\n width = _this$props5.width,\n height = _this$props5.height;\n return /*#__PURE__*/React.createElement(\"rect\", {\n x: x,\n y: y,\n width: width,\n height: height,\n stroke: \"none\",\n fill: fill,\n fillOpacity: fillOpacity,\n className: \"recharts-cartesian-grid-bg\"\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props6 = this.props,\n x = _this$props6.x,\n y = _this$props6.y,\n width = _this$props6.width,\n height = _this$props6.height,\n horizontal = _this$props6.horizontal,\n vertical = _this$props6.vertical,\n horizontalCoordinatesGenerator = _this$props6.horizontalCoordinatesGenerator,\n verticalCoordinatesGenerator = _this$props6.verticalCoordinatesGenerator,\n xAxis = _this$props6.xAxis,\n yAxis = _this$props6.yAxis,\n offset = _this$props6.offset,\n chartWidth = _this$props6.chartWidth,\n chartHeight = _this$props6.chartHeight;\n if (!isNumber(width) || width <= 0 || !isNumber(height) || height <= 0 || !isNumber(x) || x !== +x || !isNumber(y) || y !== +y) {\n return null;\n }\n var _this$props7 = this.props,\n horizontalPoints = _this$props7.horizontalPoints,\n verticalPoints = _this$props7.verticalPoints;\n\n // No horizontal points are specified\n if ((!horizontalPoints || !horizontalPoints.length) && _isFunction(horizontalCoordinatesGenerator)) {\n horizontalPoints = horizontalCoordinatesGenerator({\n yAxis: yAxis,\n width: chartWidth,\n height: chartHeight,\n offset: offset\n });\n }\n\n // No vertical points are specified\n if ((!verticalPoints || !verticalPoints.length) && _isFunction(verticalCoordinatesGenerator)) {\n verticalPoints = verticalCoordinatesGenerator({\n xAxis: xAxis,\n width: chartWidth,\n height: chartHeight,\n offset: offset\n });\n }\n return /*#__PURE__*/React.createElement(\"g\", {\n className: \"recharts-cartesian-grid\"\n }, this.renderBackground(), horizontal && this.renderHorizontal(horizontalPoints), vertical && this.renderVertical(verticalPoints), horizontal && this.renderHorizontalStripes(horizontalPoints), vertical && this.renderVerticalStripes(verticalPoints));\n }\n }], [{\n key: \"renderLineItem\",\n value: function renderLineItem(option, props) {\n var lineItem;\n if ( /*#__PURE__*/React.isValidElement(option)) {\n lineItem = /*#__PURE__*/React.cloneElement(option, props);\n } else if (_isFunction(option)) {\n lineItem = option(props);\n } else {\n var x1 = props.x1,\n y1 = props.y1,\n x2 = props.x2,\n y2 = props.y2,\n key = props.key,\n others = _objectWithoutProperties(props, _excluded);\n lineItem = /*#__PURE__*/React.createElement(\"line\", _extends({}, filterProps(others), {\n x1: x1,\n y1: y1,\n x2: x2,\n y2: y2,\n fill: \"none\",\n key: key\n }));\n }\n return lineItem;\n }\n }]);\n return CartesianGrid;\n}(PureComponent);\n_defineProperty(CartesianGrid, \"displayName\", 'CartesianGrid');\n_defineProperty(CartesianGrid, \"defaultProps\", {\n horizontal: true,\n vertical: true,\n // The ordinates of horizontal grid lines\n horizontalPoints: [],\n // The abscissas of vertical grid lines\n verticalPoints: [],\n stroke: '#ccc',\n fill: 'none',\n // The fill of colors of grid lines\n verticalFill: [],\n horizontalFill: []\n});","var _excluded = [\"offset\", \"layout\", \"width\", \"dataKey\", \"data\", \"dataPointFormatter\", \"xAxis\", \"yAxis\"];\nfunction _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); }\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : \"undefined\" != typeof Symbol && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i[\"return\"] && (_r = _i[\"return\"](), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nfunction _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; }\nfunction _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; }\n/**\n * @fileOverview Render a group of error bar\n */\nimport React from 'react';\nimport { Layer } from '../container/Layer';\nimport { filterProps } from '../util/ReactUtils';\nexport function ErrorBar(props) {\n var offset = props.offset,\n layout = props.layout,\n width = props.width,\n dataKey = props.dataKey,\n data = props.data,\n dataPointFormatter = props.dataPointFormatter,\n xAxis = props.xAxis,\n yAxis = props.yAxis,\n others = _objectWithoutProperties(props, _excluded);\n var svgProps = filterProps(others);\n var errorBars = data.map(function (entry, i) {\n var _dataPointFormatter = dataPointFormatter(entry, dataKey),\n x = _dataPointFormatter.x,\n y = _dataPointFormatter.y,\n value = _dataPointFormatter.value,\n errorVal = _dataPointFormatter.errorVal;\n if (!errorVal) {\n return null;\n }\n var lineCoordinates = [];\n var lowBound, highBound;\n if (Array.isArray(errorVal)) {\n var _errorVal = _slicedToArray(errorVal, 2);\n lowBound = _errorVal[0];\n highBound = _errorVal[1];\n } else {\n lowBound = highBound = errorVal;\n }\n if (layout === 'vertical') {\n // error bar for horizontal charts, the y is fixed, x is a range value\n var scale = xAxis.scale;\n var yMid = y + offset;\n var yMin = yMid + width;\n var yMax = yMid - width;\n var xMin = scale(value - lowBound);\n var xMax = scale(value + highBound);\n\n // the right line of |--|\n lineCoordinates.push({\n x1: xMax,\n y1: yMin,\n x2: xMax,\n y2: yMax\n });\n // the middle line of |--|\n lineCoordinates.push({\n x1: xMin,\n y1: yMid,\n x2: xMax,\n y2: yMid\n });\n // the left line of |--|\n lineCoordinates.push({\n x1: xMin,\n y1: yMin,\n x2: xMin,\n y2: yMax\n });\n } else if (layout === 'horizontal') {\n // error bar for horizontal charts, the x is fixed, y is a range value\n var _scale = yAxis.scale;\n var xMid = x + offset;\n var _xMin = xMid - width;\n var _xMax = xMid + width;\n var _yMin = _scale(value - lowBound);\n var _yMax = _scale(value + highBound);\n\n // the top line\n lineCoordinates.push({\n x1: _xMin,\n y1: _yMax,\n x2: _xMax,\n y2: _yMax\n });\n // the middle line\n lineCoordinates.push({\n x1: xMid,\n y1: _yMin,\n x2: xMid,\n y2: _yMax\n });\n // the bottom line\n lineCoordinates.push({\n x1: _xMin,\n y1: _yMin,\n x2: _xMax,\n y2: _yMin\n });\n }\n return (\n /*#__PURE__*/\n // eslint-disable-next-line react/no-array-index-key\n React.createElement(Layer, _extends({\n className: \"recharts-errorBar\",\n key: \"bar-\".concat(i)\n }, svgProps), lineCoordinates.map(function (coordinates, index) {\n return (\n /*#__PURE__*/\n // eslint-disable-next-line react/no-array-index-key\n React.createElement(\"line\", _extends({}, coordinates, {\n key: \"line-\".concat(index)\n }))\n );\n }))\n );\n });\n return /*#__PURE__*/React.createElement(Layer, {\n className: \"recharts-errorBars\"\n }, errorBars);\n}\nErrorBar.defaultProps = {\n stroke: 'black',\n strokeWidth: 1.5,\n width: 5,\n offset: 0,\n layout: 'horizontal'\n};\nErrorBar.displayName = 'ErrorBar';","import _isEqual from \"lodash/isEqual\";\nimport _isFunction from \"lodash/isFunction\";\nimport _isNil from \"lodash/isNil\";\nvar _excluded = [\"type\", \"layout\", \"connectNulls\", \"ref\"];\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction _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; }\nfunction _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; }\nfunction _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); }\nfunction 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; }\nfunction _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; }\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _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, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _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); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _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); }; }\nfunction _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); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _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; } }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\n/**\n * @fileOverview Line\n */\nimport React, { PureComponent } from 'react';\nimport Animate from 'react-smooth';\nimport classNames from 'classnames';\nimport { Curve } from '../shape/Curve';\nimport { Dot } from '../shape/Dot';\nimport { Layer } from '../container/Layer';\nimport { LabelList } from '../component/LabelList';\nimport { ErrorBar } from './ErrorBar';\nimport { uniqueId, interpolateNumber } from '../util/DataUtils';\nimport { findAllByType, filterProps, isDotProps } from '../util/ReactUtils';\nimport { Global } from '../util/Global';\nimport { getCateCoordinateOfLine, getValueByDataKey } from '../util/ChartUtils';\nexport var Line = /*#__PURE__*/function (_PureComponent) {\n _inherits(Line, _PureComponent);\n var _super = _createSuper(Line);\n function Line() {\n var _this;\n _classCallCheck(this, Line);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"state\", {\n isAnimationFinished: true,\n totalLength: 0\n });\n _defineProperty(_assertThisInitialized(_this), \"getStrokeDasharray\", function (length, totalLength, lines) {\n var lineLength = lines.reduce(function (pre, next) {\n return pre + next;\n });\n var count = Math.floor(length / lineLength);\n var remainLength = length % lineLength;\n var restLength = totalLength - length;\n var remainLines = [];\n for (var i = 0, sum = 0;; sum += lines[i], ++i) {\n if (sum + lines[i] > remainLength) {\n remainLines = [].concat(_toConsumableArray(lines.slice(0, i)), [remainLength - sum]);\n break;\n }\n }\n var emptyLines = remainLines.length % 2 === 0 ? [0, restLength] : [restLength];\n return [].concat(_toConsumableArray(Line.repeat(lines, count)), _toConsumableArray(remainLines), emptyLines).map(function (line) {\n return \"\".concat(line, \"px\");\n }).join(', ');\n });\n _defineProperty(_assertThisInitialized(_this), \"id\", uniqueId('recharts-line-'));\n _defineProperty(_assertThisInitialized(_this), \"pathRef\", function (node) {\n _this.mainCurve = node;\n });\n _defineProperty(_assertThisInitialized(_this), \"handleAnimationEnd\", function () {\n _this.setState({\n isAnimationFinished: true\n });\n if (_this.props.onAnimationEnd) {\n _this.props.onAnimationEnd();\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"handleAnimationStart\", function () {\n _this.setState({\n isAnimationFinished: false\n });\n if (_this.props.onAnimationStart) {\n _this.props.onAnimationStart();\n }\n });\n return _this;\n }\n _createClass(Line, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n if (!this.props.isAnimationActive) {\n return;\n }\n var totalLength = this.getTotalLength();\n this.setState({\n totalLength: totalLength\n });\n }\n }, {\n key: \"getTotalLength\",\n value: function getTotalLength() {\n var curveDom = this.mainCurve;\n try {\n return curveDom && curveDom.getTotalLength && curveDom.getTotalLength() || 0;\n } catch (err) {\n return 0;\n }\n }\n }, {\n key: \"renderErrorBar\",\n value: function renderErrorBar(needClip, clipPathId) {\n if (this.props.isAnimationActive && !this.state.isAnimationFinished) {\n return null;\n }\n var _this$props = this.props,\n points = _this$props.points,\n xAxis = _this$props.xAxis,\n yAxis = _this$props.yAxis,\n layout = _this$props.layout,\n children = _this$props.children;\n var errorBarItems = findAllByType(children, ErrorBar);\n if (!errorBarItems) {\n return null;\n }\n var dataPointFormatter = function dataPointFormatter(dataPoint, dataKey) {\n return {\n x: dataPoint.x,\n y: dataPoint.y,\n value: dataPoint.value,\n errorVal: getValueByDataKey(dataPoint.payload, dataKey)\n };\n };\n var errorBarProps = {\n clipPath: needClip ? \"url(#clipPath-\".concat(clipPathId, \")\") : null\n };\n return /*#__PURE__*/React.createElement(Layer, errorBarProps, errorBarItems.map(function (item, i) {\n return /*#__PURE__*/React.cloneElement(item, {\n // eslint-disable-next-line react/no-array-index-key\n key: \"bar-\".concat(i),\n data: points,\n xAxis: xAxis,\n yAxis: yAxis,\n layout: layout,\n dataPointFormatter: dataPointFormatter\n });\n }));\n }\n }, {\n key: \"renderDots\",\n value: function renderDots(needClip, clipDot, clipPathId) {\n var isAnimationActive = this.props.isAnimationActive;\n if (isAnimationActive && !this.state.isAnimationFinished) {\n return null;\n }\n var _this$props2 = this.props,\n dot = _this$props2.dot,\n points = _this$props2.points,\n dataKey = _this$props2.dataKey;\n var lineProps = filterProps(this.props);\n var customDotProps = filterProps(dot, true);\n var dots = points.map(function (entry, i) {\n var dotProps = _objectSpread(_objectSpread(_objectSpread({\n key: \"dot-\".concat(i),\n r: 3\n }, lineProps), customDotProps), {}, {\n value: entry.value,\n dataKey: dataKey,\n cx: entry.x,\n cy: entry.y,\n index: i,\n payload: entry.payload\n });\n return Line.renderDotItem(dot, dotProps);\n });\n var dotsProps = {\n clipPath: needClip ? \"url(#clipPath-\".concat(clipDot ? '' : 'dots-').concat(clipPathId, \")\") : null\n };\n return /*#__PURE__*/React.createElement(Layer, _extends({\n className: \"recharts-line-dots\",\n key: \"dots\"\n }, dotsProps), dots);\n }\n }, {\n key: \"renderCurveStatically\",\n value: function renderCurveStatically(points, needClip, clipPathId, props) {\n var _this$props3 = this.props,\n type = _this$props3.type,\n layout = _this$props3.layout,\n connectNulls = _this$props3.connectNulls,\n ref = _this$props3.ref,\n others = _objectWithoutProperties(_this$props3, _excluded);\n var curveProps = _objectSpread(_objectSpread(_objectSpread({}, filterProps(others, true)), {}, {\n fill: 'none',\n className: 'recharts-line-curve',\n clipPath: needClip ? \"url(#clipPath-\".concat(clipPathId, \")\") : null,\n points: points\n }, props), {}, {\n type: type,\n layout: layout,\n connectNulls: connectNulls\n });\n return /*#__PURE__*/React.createElement(Curve, _extends({}, curveProps, {\n pathRef: this.pathRef\n }));\n }\n }, {\n key: \"renderCurveWithAnimation\",\n value: function renderCurveWithAnimation(needClip, clipPathId) {\n var _this2 = this;\n var _this$props4 = this.props,\n points = _this$props4.points,\n strokeDasharray = _this$props4.strokeDasharray,\n isAnimationActive = _this$props4.isAnimationActive,\n animationBegin = _this$props4.animationBegin,\n animationDuration = _this$props4.animationDuration,\n animationEasing = _this$props4.animationEasing,\n animationId = _this$props4.animationId,\n animateNewValues = _this$props4.animateNewValues,\n width = _this$props4.width,\n height = _this$props4.height;\n var _this$state = this.state,\n prevPoints = _this$state.prevPoints,\n totalLength = _this$state.totalLength;\n return /*#__PURE__*/React.createElement(Animate, {\n begin: animationBegin,\n duration: animationDuration,\n isActive: isAnimationActive,\n easing: animationEasing,\n from: {\n t: 0\n },\n to: {\n t: 1\n },\n key: \"line-\".concat(animationId),\n onAnimationEnd: this.handleAnimationEnd,\n onAnimationStart: this.handleAnimationStart\n }, function (_ref) {\n var t = _ref.t;\n if (prevPoints) {\n var prevPointsDiffFactor = prevPoints.length / points.length;\n var stepData = points.map(function (entry, index) {\n var prevPointIndex = Math.floor(index * prevPointsDiffFactor);\n if (prevPoints[prevPointIndex]) {\n var prev = prevPoints[prevPointIndex];\n var interpolatorX = interpolateNumber(prev.x, entry.x);\n var interpolatorY = interpolateNumber(prev.y, entry.y);\n return _objectSpread(_objectSpread({}, entry), {}, {\n x: interpolatorX(t),\n y: interpolatorY(t)\n });\n }\n\n // magic number of faking previous x and y location\n if (animateNewValues) {\n var _interpolatorX = interpolateNumber(width * 2, entry.x);\n var _interpolatorY = interpolateNumber(height / 2, entry.y);\n return _objectSpread(_objectSpread({}, entry), {}, {\n x: _interpolatorX(t),\n y: _interpolatorY(t)\n });\n }\n return _objectSpread(_objectSpread({}, entry), {}, {\n x: entry.x,\n y: entry.y\n });\n });\n return _this2.renderCurveStatically(stepData, needClip, clipPathId);\n }\n var interpolator = interpolateNumber(0, totalLength);\n var curLength = interpolator(t);\n var currentStrokeDasharray;\n if (strokeDasharray) {\n var lines = \"\".concat(strokeDasharray).split(/[,\\s]+/gim).map(function (num) {\n return parseFloat(num);\n });\n currentStrokeDasharray = _this2.getStrokeDasharray(curLength, totalLength, lines);\n } else {\n currentStrokeDasharray = \"\".concat(curLength, \"px \").concat(totalLength - curLength, \"px\");\n }\n return _this2.renderCurveStatically(points, needClip, clipPathId, {\n strokeDasharray: currentStrokeDasharray\n });\n });\n }\n }, {\n key: \"renderCurve\",\n value: function renderCurve(needClip, clipPathId) {\n var _this$props5 = this.props,\n points = _this$props5.points,\n isAnimationActive = _this$props5.isAnimationActive;\n var _this$state2 = this.state,\n prevPoints = _this$state2.prevPoints,\n totalLength = _this$state2.totalLength;\n if (isAnimationActive && points && points.length && (!prevPoints && totalLength > 0 || !_isEqual(prevPoints, points))) {\n return this.renderCurveWithAnimation(needClip, clipPathId);\n }\n return this.renderCurveStatically(points, needClip, clipPathId);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _filterProps;\n var _this$props6 = this.props,\n hide = _this$props6.hide,\n dot = _this$props6.dot,\n points = _this$props6.points,\n className = _this$props6.className,\n xAxis = _this$props6.xAxis,\n yAxis = _this$props6.yAxis,\n top = _this$props6.top,\n left = _this$props6.left,\n width = _this$props6.width,\n height = _this$props6.height,\n isAnimationActive = _this$props6.isAnimationActive,\n id = _this$props6.id;\n if (hide || !points || !points.length) {\n return null;\n }\n var isAnimationFinished = this.state.isAnimationFinished;\n var hasSinglePoint = points.length === 1;\n var layerClass = classNames('recharts-line', className);\n var needClipX = xAxis && xAxis.allowDataOverflow;\n var needClipY = yAxis && yAxis.allowDataOverflow;\n var needClip = needClipX || needClipY;\n var clipPathId = _isNil(id) ? this.id : id;\n var _ref2 = (_filterProps = filterProps(dot)) !== null && _filterProps !== void 0 ? _filterProps : {\n r: 3,\n strokeWidth: 2\n },\n _ref2$r = _ref2.r,\n r = _ref2$r === void 0 ? 3 : _ref2$r,\n _ref2$strokeWidth = _ref2.strokeWidth,\n strokeWidth = _ref2$strokeWidth === void 0 ? 2 : _ref2$strokeWidth;\n var _ref3 = isDotProps(dot) ? dot : {},\n _ref3$clipDot = _ref3.clipDot,\n clipDot = _ref3$clipDot === void 0 ? true : _ref3$clipDot;\n var dotSize = r * 2 + strokeWidth;\n return /*#__PURE__*/React.createElement(Layer, {\n className: layerClass\n }, needClipX || needClipY ? /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clipPath-\".concat(clipPathId)\n }, /*#__PURE__*/React.createElement(\"rect\", {\n x: needClipX ? left : left - width / 2,\n y: needClipY ? top : top - height / 2,\n width: needClipX ? width : width * 2,\n height: needClipY ? height : height * 2\n })), !clipDot && /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clipPath-dots-\".concat(clipPathId)\n }, /*#__PURE__*/React.createElement(\"rect\", {\n x: left - dotSize / 2,\n y: top - dotSize / 2,\n width: width + dotSize,\n height: height + dotSize\n }))) : null, !hasSinglePoint && this.renderCurve(needClip, clipPathId), this.renderErrorBar(needClip, clipPathId), (hasSinglePoint || dot) && this.renderDots(needClip, clipDot, clipPathId), (!isAnimationActive || isAnimationFinished) && LabelList.renderCallByParent(this.props, points));\n }\n }], [{\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(nextProps, prevState) {\n if (nextProps.animationId !== prevState.prevAnimationId) {\n return {\n prevAnimationId: nextProps.animationId,\n curPoints: nextProps.points,\n prevPoints: prevState.curPoints\n };\n }\n if (nextProps.points !== prevState.curPoints) {\n return {\n curPoints: nextProps.points\n };\n }\n return null;\n }\n }, {\n key: \"repeat\",\n value: function repeat(lines, count) {\n var linesUnit = lines.length % 2 !== 0 ? [].concat(_toConsumableArray(lines), [0]) : lines;\n var result = [];\n for (var i = 0; i < count; ++i) {\n result = [].concat(_toConsumableArray(result), _toConsumableArray(linesUnit));\n }\n return result;\n }\n }, {\n key: \"renderDotItem\",\n value: function renderDotItem(option, props) {\n var dotItem;\n if ( /*#__PURE__*/React.isValidElement(option)) {\n dotItem = /*#__PURE__*/React.cloneElement(option, props);\n } else if (_isFunction(option)) {\n dotItem = option(props);\n } else {\n var className = classNames('recharts-line-dot', option ? option.className : '');\n dotItem = /*#__PURE__*/React.createElement(Dot, _extends({}, props, {\n className: className\n }));\n }\n return dotItem;\n }\n }]);\n return Line;\n}(PureComponent);\n_defineProperty(Line, \"displayName\", 'Line');\n_defineProperty(Line, \"defaultProps\", {\n xAxisId: 0,\n yAxisId: 0,\n connectNulls: false,\n activeDot: true,\n dot: true,\n legendType: 'line',\n stroke: '#3182bd',\n strokeWidth: 1,\n fill: '#fff',\n points: [],\n isAnimationActive: !Global.isSsr,\n animateNewValues: true,\n animationBegin: 0,\n animationDuration: 1500,\n animationEasing: 'ease',\n hide: false,\n label: false\n});\n/**\n * Compose the data of each group\n * @param {Object} props The props from the component\n * @param {Object} xAxis The configuration of x-axis\n * @param {Object} yAxis The configuration of y-axis\n * @param {String} dataKey The unique key of a group\n * @return {Array} Composed data\n */\n_defineProperty(Line, \"getComposedData\", function (_ref4) {\n var props = _ref4.props,\n xAxis = _ref4.xAxis,\n yAxis = _ref4.yAxis,\n xAxisTicks = _ref4.xAxisTicks,\n yAxisTicks = _ref4.yAxisTicks,\n dataKey = _ref4.dataKey,\n bandSize = _ref4.bandSize,\n displayedData = _ref4.displayedData,\n offset = _ref4.offset;\n var layout = props.layout;\n var points = displayedData.map(function (entry, index) {\n var value = getValueByDataKey(entry, dataKey);\n if (layout === 'horizontal') {\n return {\n x: getCateCoordinateOfLine({\n axis: xAxis,\n ticks: xAxisTicks,\n bandSize: bandSize,\n entry: entry,\n index: index\n }),\n y: _isNil(value) ? null : yAxis.scale(value),\n value: value,\n payload: entry\n };\n }\n return {\n x: _isNil(value) ? null : xAxis.scale(value),\n y: getCateCoordinateOfLine({\n axis: yAxis,\n ticks: yAxisTicks,\n bandSize: bandSize,\n entry: entry,\n index: index\n }),\n value: value,\n payload: entry\n };\n });\n return _objectSpread({\n points: points,\n layout: layout\n }, offset);\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nimport _some from \"lodash/some\";\nimport _isFunction from \"lodash/isFunction\";\nfunction 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; }\nfunction _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; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : \"undefined\" != typeof Symbol && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i[\"return\"] && (_r = _i[\"return\"](), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nfunction _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); }\n/**\n * @fileOverview Reference Line\n */\nimport React from 'react';\nimport classNames from 'classnames';\nimport { Layer } from '../container/Layer';\nimport { Label } from '../component/Label';\nimport { ifOverflowMatches } from '../util/IfOverflowMatches';\nimport { isNumOrStr } from '../util/DataUtils';\nimport { createLabeledScales, rectWithCoords } from '../util/CartesianUtils';\nimport { warn } from '../util/LogUtils';\nimport { filterProps } from '../util/ReactUtils';\nvar renderLine = function renderLine(option, props) {\n var line;\n if ( /*#__PURE__*/React.isValidElement(option)) {\n line = /*#__PURE__*/React.cloneElement(option, props);\n } else if (_isFunction(option)) {\n line = option(props);\n } else {\n line = /*#__PURE__*/React.createElement(\"line\", _extends({}, props, {\n className: \"recharts-reference-line-line\"\n }));\n }\n return line;\n};\n\n// TODO: ScaleHelper\nvar getEndPoints = function getEndPoints(scales, isFixedX, isFixedY, isSegment, props) {\n var _props$viewBox = props.viewBox,\n x = _props$viewBox.x,\n y = _props$viewBox.y,\n width = _props$viewBox.width,\n height = _props$viewBox.height,\n position = props.position;\n if (isFixedY) {\n var yCoord = props.y,\n orientation = props.yAxis.orientation;\n var coord = scales.y.apply(yCoord, {\n position: position\n });\n if (ifOverflowMatches(props, 'discard') && !scales.y.isInRange(coord)) {\n return null;\n }\n var points = [{\n x: x + width,\n y: coord\n }, {\n x: x,\n y: coord\n }];\n return orientation === 'left' ? points.reverse() : points;\n }\n if (isFixedX) {\n var xCoord = props.x,\n _orientation = props.xAxis.orientation;\n var _coord = scales.x.apply(xCoord, {\n position: position\n });\n if (ifOverflowMatches(props, 'discard') && !scales.x.isInRange(_coord)) {\n return null;\n }\n var _points = [{\n x: _coord,\n y: y + height\n }, {\n x: _coord,\n y: y\n }];\n return _orientation === 'top' ? _points.reverse() : _points;\n }\n if (isSegment) {\n var segment = props.segment;\n var _points2 = segment.map(function (p) {\n return scales.apply(p, {\n position: position\n });\n });\n if (ifOverflowMatches(props, 'discard') && _some(_points2, function (p) {\n return !scales.isInRange(p);\n })) {\n return null;\n }\n return _points2;\n }\n return null;\n};\nexport function ReferenceLine(props) {\n var fixedX = props.x,\n fixedY = props.y,\n segment = props.segment,\n xAxis = props.xAxis,\n yAxis = props.yAxis,\n shape = props.shape,\n className = props.className,\n alwaysShow = props.alwaysShow,\n clipPathId = props.clipPathId;\n warn(alwaysShow === undefined, 'The alwaysShow prop is deprecated. Please use ifOverflow=\"extendDomain\" instead.');\n var scales = createLabeledScales({\n x: xAxis.scale,\n y: yAxis.scale\n });\n var isX = isNumOrStr(fixedX);\n var isY = isNumOrStr(fixedY);\n var isSegment = segment && segment.length === 2;\n var endPoints = getEndPoints(scales, isX, isY, isSegment, props);\n if (!endPoints) {\n return null;\n }\n var _endPoints = _slicedToArray(endPoints, 2),\n _endPoints$ = _endPoints[0],\n x1 = _endPoints$.x,\n y1 = _endPoints$.y,\n _endPoints$2 = _endPoints[1],\n x2 = _endPoints$2.x,\n y2 = _endPoints$2.y;\n var clipPath = ifOverflowMatches(props, 'hidden') ? \"url(#\".concat(clipPathId, \")\") : undefined;\n var lineProps = _objectSpread(_objectSpread({\n clipPath: clipPath\n }, filterProps(props, true)), {}, {\n x1: x1,\n y1: y1,\n x2: x2,\n y2: y2\n });\n return /*#__PURE__*/React.createElement(Layer, {\n className: classNames('recharts-reference-line', className)\n }, renderLine(shape, lineProps), Label.renderCallByParent(props, rectWithCoords({\n x1: x1,\n y1: y1,\n x2: x2,\n y2: y2\n })));\n}\nReferenceLine.displayName = 'ReferenceLine';\nReferenceLine.defaultProps = {\n isFront: false,\n ifOverflow: 'discard',\n xAxisId: 0,\n yAxisId: 0,\n fill: 'none',\n stroke: '#ccc',\n fillOpacity: 1,\n strokeWidth: 1,\n position: 'middle'\n};","/**\n * @fileOverview X Axis\n */\n\n/** Define of XAxis props */\n\nexport var XAxis = function XAxis() {\n return null;\n};\nXAxis.displayName = 'XAxis';\nXAxis.defaultProps = {\n allowDecimals: true,\n hide: false,\n orientation: 'bottom',\n width: 0,\n height: 30,\n mirror: false,\n xAxisId: 0,\n tickCount: 5,\n type: 'category',\n padding: {\n left: 0,\n right: 0\n },\n allowDataOverflow: false,\n scale: 'auto',\n reversed: false,\n allowDuplicatedCategory: true\n};","/**\n * @fileOverview Y Axis\n */\n\nexport var YAxis = function YAxis() {\n return null;\n};\nYAxis.displayName = 'YAxis';\nYAxis.defaultProps = {\n allowDuplicatedCategory: true,\n allowDecimals: true,\n hide: false,\n orientation: 'left',\n width: 60,\n height: 0,\n mirror: false,\n yAxisId: 0,\n tickCount: 5,\n type: 'number',\n padding: {\n top: 0,\n bottom: 0\n },\n allowDataOverflow: false,\n scale: 'auto',\n reversed: false\n};","/**\n * @fileOverview Bar Chart\n */\nimport { generateCategoricalChart } from './generateCategoricalChart';\nimport { Bar } from '../cartesian/Bar';\nimport { XAxis } from '../cartesian/XAxis';\nimport { YAxis } from '../cartesian/YAxis';\nimport { formatAxisMap } from '../util/CartesianUtils';\nexport var BarChart = generateCategoricalChart({\n chartName: 'BarChart',\n GraphicalChild: Bar,\n defaultTooltipEventType: 'axis',\n validateTooltipEventTypes: ['axis', 'item'],\n axisComponents: [{\n axisType: 'xAxis',\n AxisComp: XAxis\n }, {\n axisType: 'yAxis',\n AxisComp: YAxis\n }],\n formatAxisMap: formatAxisMap\n});","/**\n * @fileOverview Line Chart\n */\nimport { generateCategoricalChart } from './generateCategoricalChart';\nimport { Line } from '../cartesian/Line';\nimport { XAxis } from '../cartesian/XAxis';\nimport { YAxis } from '../cartesian/YAxis';\nimport { formatAxisMap } from '../util/CartesianUtils';\nexport var LineChart = generateCategoricalChart({\n chartName: 'LineChart',\n GraphicalChild: Line,\n axisComponents: [{\n axisType: 'xAxis',\n AxisComp: XAxis\n }, {\n axisType: 'yAxis',\n AxisComp: YAxis\n }],\n formatAxisMap: formatAxisMap\n});","var _excluded = [\"points\", \"className\", \"baseLinePoints\", \"connectNulls\"];\nfunction _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); }\nfunction _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; }\nfunction _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; }\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\n/**\n * @fileOverview Polygon\n */\nimport React from 'react';\nimport classNames from 'classnames';\nimport { filterProps } from '../util/ReactUtils';\nvar isValidatePoint = function isValidatePoint(point) {\n return point && point.x === +point.x && point.y === +point.y;\n};\nvar getParsedPoints = function getParsedPoints() {\n var points = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n var segmentPoints = [[]];\n points.forEach(function (entry) {\n if (isValidatePoint(entry)) {\n segmentPoints[segmentPoints.length - 1].push(entry);\n } else if (segmentPoints[segmentPoints.length - 1].length > 0) {\n // add another path\n segmentPoints.push([]);\n }\n });\n if (isValidatePoint(points[0])) {\n segmentPoints[segmentPoints.length - 1].push(points[0]);\n }\n if (segmentPoints[segmentPoints.length - 1].length <= 0) {\n segmentPoints = segmentPoints.slice(0, -1);\n }\n return segmentPoints;\n};\nvar getSinglePolygonPath = function getSinglePolygonPath(points, connectNulls) {\n var segmentPoints = getParsedPoints(points);\n if (connectNulls) {\n segmentPoints = [segmentPoints.reduce(function (res, segPoints) {\n return [].concat(_toConsumableArray(res), _toConsumableArray(segPoints));\n }, [])];\n }\n var polygonPath = segmentPoints.map(function (segPoints) {\n return segPoints.reduce(function (path, point, index) {\n return \"\".concat(path).concat(index === 0 ? 'M' : 'L').concat(point.x, \",\").concat(point.y);\n }, '');\n }).join('');\n return segmentPoints.length === 1 ? \"\".concat(polygonPath, \"Z\") : polygonPath;\n};\nvar getRanglePath = function getRanglePath(points, baseLinePoints, connectNulls) {\n var outerPath = getSinglePolygonPath(points, connectNulls);\n return \"\".concat(outerPath.slice(-1) === 'Z' ? outerPath.slice(0, -1) : outerPath, \"L\").concat(getSinglePolygonPath(baseLinePoints.reverse(), connectNulls).slice(1));\n};\nexport var Polygon = function Polygon(props) {\n var points = props.points,\n className = props.className,\n baseLinePoints = props.baseLinePoints,\n connectNulls = props.connectNulls,\n others = _objectWithoutProperties(props, _excluded);\n if (!points || !points.length) {\n return null;\n }\n var layerClass = classNames('recharts-polygon', className);\n if (baseLinePoints && baseLinePoints.length) {\n var hasStroke = others.stroke && others.stroke !== 'none';\n var rangePath = getRanglePath(points, baseLinePoints, connectNulls);\n return /*#__PURE__*/React.createElement(\"g\", {\n className: layerClass\n }, /*#__PURE__*/React.createElement(\"path\", _extends({}, filterProps(others, true), {\n fill: rangePath.slice(-1) === 'Z' ? others.fill : 'none',\n stroke: \"none\",\n d: rangePath\n })), hasStroke ? /*#__PURE__*/React.createElement(\"path\", _extends({}, filterProps(others, true), {\n fill: \"none\",\n d: getSinglePolygonPath(points, connectNulls)\n })) : null, hasStroke ? /*#__PURE__*/React.createElement(\"path\", _extends({}, filterProps(others, true), {\n fill: \"none\",\n d: getSinglePolygonPath(baseLinePoints, connectNulls)\n })) : null);\n }\n var singlePath = getSinglePolygonPath(points, connectNulls);\n return /*#__PURE__*/React.createElement(\"path\", _extends({}, filterProps(others, true), {\n fill: singlePath.slice(-1) === 'Z' ? others.fill : 'none',\n className: layerClass,\n d: singlePath\n }));\n};","import _isFunction from \"lodash/isFunction\";\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction _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); }\nfunction 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; }\nfunction _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; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _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, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _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); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _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); }; }\nfunction _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); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _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; } }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\n/**\n * @fileOverview Axis of radial direction\n */\nimport React, { PureComponent } from 'react';\nimport { Layer } from '../container/Layer';\nimport { Dot } from '../shape/Dot';\nimport { Polygon } from '../shape/Polygon';\nimport { Text } from '../component/Text';\nimport { adaptEventsOfChild } from '../util/types';\nimport { filterProps } from '../util/ReactUtils';\nimport { polarToCartesian } from '../util/PolarUtils';\nvar RADIAN = Math.PI / 180;\nvar eps = 1e-5;\nexport var PolarAngleAxis = /*#__PURE__*/function (_PureComponent) {\n _inherits(PolarAngleAxis, _PureComponent);\n var _super = _createSuper(PolarAngleAxis);\n function PolarAngleAxis() {\n _classCallCheck(this, PolarAngleAxis);\n return _super.apply(this, arguments);\n }\n _createClass(PolarAngleAxis, [{\n key: \"getTickLineCoord\",\n value:\n /**\n * Calculate the coordinate of line endpoint\n * @param {Object} data The Data if ticks\n * @return {Object} (x0, y0): The start point of text,\n * (x1, y1): The end point close to text,\n * (x2, y2): The end point close to axis\n */\n function getTickLineCoord(data) {\n var _this$props = this.props,\n cx = _this$props.cx,\n cy = _this$props.cy,\n radius = _this$props.radius,\n orientation = _this$props.orientation,\n tickSize = _this$props.tickSize;\n var tickLineSize = tickSize || 8;\n var p1 = polarToCartesian(cx, cy, radius, data.coordinate);\n var p2 = polarToCartesian(cx, cy, radius + (orientation === 'inner' ? -1 : 1) * tickLineSize, data.coordinate);\n return {\n x1: p1.x,\n y1: p1.y,\n x2: p2.x,\n y2: p2.y\n };\n }\n\n /**\n * Get the text-anchor of each tick\n * @param {Object} data Data of ticks\n * @return {String} text-anchor\n */\n }, {\n key: \"getTickTextAnchor\",\n value: function getTickTextAnchor(data) {\n var orientation = this.props.orientation;\n var cos = Math.cos(-data.coordinate * RADIAN);\n var textAnchor;\n if (cos > eps) {\n textAnchor = orientation === 'outer' ? 'start' : 'end';\n } else if (cos < -eps) {\n textAnchor = orientation === 'outer' ? 'end' : 'start';\n } else {\n textAnchor = 'middle';\n }\n return textAnchor;\n }\n }, {\n key: \"renderAxisLine\",\n value: function renderAxisLine() {\n var _this$props2 = this.props,\n cx = _this$props2.cx,\n cy = _this$props2.cy,\n radius = _this$props2.radius,\n axisLine = _this$props2.axisLine,\n axisLineType = _this$props2.axisLineType;\n var props = _objectSpread(_objectSpread({}, filterProps(this.props)), {}, {\n fill: 'none'\n }, filterProps(axisLine));\n if (axisLineType === 'circle') {\n return /*#__PURE__*/React.createElement(Dot, _extends({\n className: \"recharts-polar-angle-axis-line\"\n }, props, {\n cx: cx,\n cy: cy,\n r: radius\n }));\n }\n var ticks = this.props.ticks;\n var points = ticks.map(function (entry) {\n return polarToCartesian(cx, cy, radius, entry.coordinate);\n });\n return /*#__PURE__*/React.createElement(Polygon, _extends({\n className: \"recharts-polar-angle-axis-line\"\n }, props, {\n points: points\n }));\n }\n }, {\n key: \"renderTicks\",\n value: function renderTicks() {\n var _this = this;\n var _this$props3 = this.props,\n ticks = _this$props3.ticks,\n tick = _this$props3.tick,\n tickLine = _this$props3.tickLine,\n tickFormatter = _this$props3.tickFormatter,\n stroke = _this$props3.stroke;\n var axisProps = filterProps(this.props);\n var customTickProps = filterProps(tick);\n var tickLineProps = _objectSpread(_objectSpread({}, axisProps), {}, {\n fill: 'none'\n }, filterProps(tickLine));\n var items = ticks.map(function (entry, i) {\n var lineCoord = _this.getTickLineCoord(entry);\n var textAnchor = _this.getTickTextAnchor(entry);\n var tickProps = _objectSpread(_objectSpread(_objectSpread({\n textAnchor: textAnchor\n }, axisProps), {}, {\n stroke: 'none',\n fill: stroke\n }, customTickProps), {}, {\n index: i,\n payload: entry,\n x: lineCoord.x2,\n y: lineCoord.y2\n });\n return /*#__PURE__*/React.createElement(Layer, _extends({\n className: \"recharts-polar-angle-axis-tick\",\n key: \"tick-\".concat(i) // eslint-disable-line react/no-array-index-key\n }, adaptEventsOfChild(_this.props, entry, i)), tickLine && /*#__PURE__*/React.createElement(\"line\", _extends({\n className: \"recharts-polar-angle-axis-tick-line\"\n }, tickLineProps, lineCoord)), tick && PolarAngleAxis.renderTickItem(tick, tickProps, tickFormatter ? tickFormatter(entry.value, i) : entry.value));\n });\n return /*#__PURE__*/React.createElement(Layer, {\n className: \"recharts-polar-angle-axis-ticks\"\n }, items);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props4 = this.props,\n ticks = _this$props4.ticks,\n radius = _this$props4.radius,\n axisLine = _this$props4.axisLine;\n if (radius <= 0 || !ticks || !ticks.length) {\n return null;\n }\n return /*#__PURE__*/React.createElement(Layer, {\n className: \"recharts-polar-angle-axis\"\n }, axisLine && this.renderAxisLine(), this.renderTicks());\n }\n }], [{\n key: \"renderTickItem\",\n value: function renderTickItem(option, props, value) {\n var tickItem;\n if ( /*#__PURE__*/React.isValidElement(option)) {\n tickItem = /*#__PURE__*/React.cloneElement(option, props);\n } else if (_isFunction(option)) {\n tickItem = option(props);\n } else {\n tickItem = /*#__PURE__*/React.createElement(Text, _extends({}, props, {\n className: \"recharts-polar-angle-axis-tick-value\"\n }), value);\n }\n return tickItem;\n }\n }]);\n return PolarAngleAxis;\n}(PureComponent);\n_defineProperty(PolarAngleAxis, \"displayName\", 'PolarAngleAxis');\n_defineProperty(PolarAngleAxis, \"axisType\", 'angleAxis');\n_defineProperty(PolarAngleAxis, \"defaultProps\", {\n type: 'category',\n angleAxisId: 0,\n scale: 'auto',\n cx: 0,\n cy: 0,\n orientation: 'outer',\n axisLine: true,\n tickLine: true,\n tickSize: 8,\n tick: true,\n hide: false,\n allowDuplicatedCategory: true\n});","import _isFunction from \"lodash/isFunction\";\nimport _minBy from \"lodash/minBy\";\nimport _maxBy from \"lodash/maxBy\";\nvar _excluded = [\"cx\", \"cy\", \"angle\", \"ticks\", \"axisLine\"],\n _excluded2 = [\"ticks\", \"tick\", \"angle\", \"tickFormatter\", \"stroke\"];\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction _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); }\nfunction 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; }\nfunction _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; }\nfunction _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; }\nfunction _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; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _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, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _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); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _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); }; }\nfunction _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); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _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; } }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\n/**\n * @fileOverview The axis of polar coordinate system\n */\nimport React, { PureComponent } from 'react';\nimport { Text } from '../component/Text';\nimport { Label } from '../component/Label';\nimport { Layer } from '../container/Layer';\nimport { polarToCartesian } from '../util/PolarUtils';\nimport { adaptEventsOfChild } from '../util/types';\nimport { filterProps } from '../util/ReactUtils';\nexport var PolarRadiusAxis = /*#__PURE__*/function (_PureComponent) {\n _inherits(PolarRadiusAxis, _PureComponent);\n var _super = _createSuper(PolarRadiusAxis);\n function PolarRadiusAxis() {\n _classCallCheck(this, PolarRadiusAxis);\n return _super.apply(this, arguments);\n }\n _createClass(PolarRadiusAxis, [{\n key: \"getTickValueCoord\",\n value:\n /**\n * Calculate the coordinate of tick\n * @param {Number} coordinate The radius of tick\n * @return {Object} (x, y)\n */\n function getTickValueCoord(_ref) {\n var coordinate = _ref.coordinate;\n var _this$props = this.props,\n angle = _this$props.angle,\n cx = _this$props.cx,\n cy = _this$props.cy;\n return polarToCartesian(cx, cy, coordinate, angle);\n }\n }, {\n key: \"getTickTextAnchor\",\n value: function getTickTextAnchor() {\n var orientation = this.props.orientation;\n var textAnchor;\n switch (orientation) {\n case 'left':\n textAnchor = 'end';\n break;\n case 'right':\n textAnchor = 'start';\n break;\n default:\n textAnchor = 'middle';\n break;\n }\n return textAnchor;\n }\n }, {\n key: \"getViewBox\",\n value: function getViewBox() {\n var _this$props2 = this.props,\n cx = _this$props2.cx,\n cy = _this$props2.cy,\n angle = _this$props2.angle,\n ticks = _this$props2.ticks;\n var maxRadiusTick = _maxBy(ticks, function (entry) {\n return entry.coordinate || 0;\n });\n var minRadiusTick = _minBy(ticks, function (entry) {\n return entry.coordinate || 0;\n });\n return {\n cx: cx,\n cy: cy,\n startAngle: angle,\n endAngle: angle,\n innerRadius: minRadiusTick.coordinate || 0,\n outerRadius: maxRadiusTick.coordinate || 0\n };\n }\n }, {\n key: \"renderAxisLine\",\n value: function renderAxisLine() {\n var _this$props3 = this.props,\n cx = _this$props3.cx,\n cy = _this$props3.cy,\n angle = _this$props3.angle,\n ticks = _this$props3.ticks,\n axisLine = _this$props3.axisLine,\n others = _objectWithoutProperties(_this$props3, _excluded);\n var extent = ticks.reduce(function (result, entry) {\n return [Math.min(result[0], entry.coordinate), Math.max(result[1], entry.coordinate)];\n }, [Infinity, -Infinity]);\n var point0 = polarToCartesian(cx, cy, extent[0], angle);\n var point1 = polarToCartesian(cx, cy, extent[1], angle);\n var props = _objectSpread(_objectSpread(_objectSpread({}, filterProps(others)), {}, {\n fill: 'none'\n }, filterProps(axisLine)), {}, {\n x1: point0.x,\n y1: point0.y,\n x2: point1.x,\n y2: point1.y\n });\n return /*#__PURE__*/React.createElement(\"line\", _extends({\n className: \"recharts-polar-radius-axis-line\"\n }, props));\n }\n }, {\n key: \"renderTicks\",\n value: function renderTicks() {\n var _this = this;\n var _this$props4 = this.props,\n ticks = _this$props4.ticks,\n tick = _this$props4.tick,\n angle = _this$props4.angle,\n tickFormatter = _this$props4.tickFormatter,\n stroke = _this$props4.stroke,\n others = _objectWithoutProperties(_this$props4, _excluded2);\n var textAnchor = this.getTickTextAnchor();\n var axisProps = filterProps(others);\n var customTickProps = filterProps(tick);\n var items = ticks.map(function (entry, i) {\n var coord = _this.getTickValueCoord(entry);\n var tickProps = _objectSpread(_objectSpread(_objectSpread(_objectSpread({\n textAnchor: textAnchor,\n transform: \"rotate(\".concat(90 - angle, \", \").concat(coord.x, \", \").concat(coord.y, \")\")\n }, axisProps), {}, {\n stroke: 'none',\n fill: stroke\n }, customTickProps), {}, {\n index: i\n }, coord), {}, {\n payload: entry\n });\n return /*#__PURE__*/React.createElement(Layer, _extends({\n className: \"recharts-polar-radius-axis-tick\",\n key: \"tick-\".concat(i) // eslint-disable-line react/no-array-index-key\n }, adaptEventsOfChild(_this.props, entry, i)), PolarRadiusAxis.renderTickItem(tick, tickProps, tickFormatter ? tickFormatter(entry.value, i) : entry.value));\n });\n return /*#__PURE__*/React.createElement(Layer, {\n className: \"recharts-polar-radius-axis-ticks\"\n }, items);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props5 = this.props,\n ticks = _this$props5.ticks,\n axisLine = _this$props5.axisLine,\n tick = _this$props5.tick;\n if (!ticks || !ticks.length) {\n return null;\n }\n return /*#__PURE__*/React.createElement(Layer, {\n className: \"recharts-polar-radius-axis\"\n }, axisLine && this.renderAxisLine(), tick && this.renderTicks(), Label.renderCallByParent(this.props, this.getViewBox()));\n }\n }], [{\n key: \"renderTickItem\",\n value: function renderTickItem(option, props, value) {\n var tickItem;\n if ( /*#__PURE__*/React.isValidElement(option)) {\n tickItem = /*#__PURE__*/React.cloneElement(option, props);\n } else if (_isFunction(option)) {\n tickItem = option(props);\n } else {\n tickItem = /*#__PURE__*/React.createElement(Text, _extends({}, props, {\n className: \"recharts-polar-radius-axis-tick-value\"\n }), value);\n }\n return tickItem;\n }\n }]);\n return PolarRadiusAxis;\n}(PureComponent);\n_defineProperty(PolarRadiusAxis, \"displayName\", 'PolarRadiusAxis');\n_defineProperty(PolarRadiusAxis, \"axisType\", 'radiusAxis');\n_defineProperty(PolarRadiusAxis, \"defaultProps\", {\n type: 'number',\n radiusAxisId: 0,\n cx: 0,\n cy: 0,\n angle: 0,\n orientation: 'right',\n stroke: '#ccc',\n axisLine: true,\n tick: true,\n tickCount: 5,\n allowDataOverflow: false,\n scale: 'auto',\n allowDuplicatedCategory: true\n});","/**\n * @fileOverview Pie Chart\n */\nimport { generateCategoricalChart } from './generateCategoricalChart';\nimport { PolarAngleAxis } from '../polar/PolarAngleAxis';\nimport { PolarRadiusAxis } from '../polar/PolarRadiusAxis';\nimport { formatAxisMap } from '../util/PolarUtils';\nimport { Pie } from '../polar/Pie';\nexport var PieChart = generateCategoricalChart({\n chartName: 'PieChart',\n GraphicalChild: Pie,\n validateTooltipEventTypes: ['item'],\n defaultTooltipEventType: 'item',\n legendContent: 'children',\n axisComponents: [{\n axisType: 'angleAxis',\n AxisComp: PolarAngleAxis\n }, {\n axisType: 'radiusAxis',\n AxisComp: PolarRadiusAxis\n }],\n formatAxisMap: formatAxisMap,\n defaultProps: {\n layout: 'centric',\n startAngle: 0,\n endAngle: 360,\n cx: '50%',\n cy: '50%',\n innerRadius: 0,\n outerRadius: '80%'\n }\n});","import _get from \"lodash/get\";\nimport _isFunction from \"lodash/isFunction\";\nimport _sumBy from \"lodash/sumBy\";\nimport _min from \"lodash/min\";\nimport _maxBy from \"lodash/maxBy\";\nvar _excluded = [\"width\", \"height\", \"className\", \"style\", \"children\"],\n _excluded2 = [\"sourceX\", \"sourceY\", \"sourceControlX\", \"targetX\", \"targetY\", \"targetControlX\", \"linkWidth\"];\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction _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; }\nfunction _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; }\nfunction _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); }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _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, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _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); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _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); }; }\nfunction _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); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _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; } }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nfunction 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; }\nfunction _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; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\n/**\n * @file TreemapChart\n */\nimport React, { PureComponent } from 'react';\nimport classNames from 'classnames';\nimport { Surface } from '../container/Surface';\nimport { Layer } from '../container/Layer';\nimport { Tooltip } from '../component/Tooltip';\nimport { Rectangle } from '../shape/Rectangle';\nimport { shallowEqual } from '../util/ShallowEqual';\nimport { filterSvgElements, validateWidthHeight, findChildByType, filterProps } from '../util/ReactUtils';\nimport { getValueByDataKey } from '../util/ChartUtils';\nvar defaultCoordinateOfTooltip = {\n x: 0,\n y: 0\n};\nvar interpolationGenerator = function interpolationGenerator(a, b) {\n var ka = +a;\n var kb = b - ka;\n return function (t) {\n return ka + kb * t;\n };\n};\nvar centerY = function centerY(node) {\n return node.y + node.dy / 2;\n};\nvar getValue = function getValue(entry) {\n return entry && entry.value || 0;\n};\nvar getSumOfIds = function getSumOfIds(links, ids) {\n return ids.reduce(function (result, id) {\n return result + getValue(links[id]);\n }, 0);\n};\nvar getSumWithWeightedSource = function getSumWithWeightedSource(tree, links, ids) {\n return ids.reduce(function (result, id) {\n var link = links[id];\n var sourceNode = tree[link.source];\n return result + centerY(sourceNode) * getValue(links[id]);\n }, 0);\n};\nvar getSumWithWeightedTarget = function getSumWithWeightedTarget(tree, links, ids) {\n return ids.reduce(function (result, id) {\n var link = links[id];\n var targetNode = tree[link.target];\n return result + centerY(targetNode) * getValue(links[id]);\n }, 0);\n};\nvar ascendingY = function ascendingY(a, b) {\n return a.y - b.y;\n};\nvar searchTargetsAndSources = function searchTargetsAndSources(links, id) {\n var sourceNodes = [];\n var sourceLinks = [];\n var targetNodes = [];\n var targetLinks = [];\n for (var i = 0, len = links.length; i < len; i++) {\n var link = links[i];\n if (link.source === id) {\n targetNodes.push(link.target);\n targetLinks.push(i);\n }\n if (link.target === id) {\n sourceNodes.push(link.source);\n sourceLinks.push(i);\n }\n }\n return {\n sourceNodes: sourceNodes,\n sourceLinks: sourceLinks,\n targetLinks: targetLinks,\n targetNodes: targetNodes\n };\n};\nvar updateDepthOfTargets = function updateDepthOfTargets(tree, curNode) {\n var targetNodes = curNode.targetNodes;\n for (var i = 0, len = targetNodes.length; i < len; i++) {\n var target = tree[targetNodes[i]];\n if (target) {\n target.depth = Math.max(curNode.depth + 1, target.depth);\n updateDepthOfTargets(tree, target);\n }\n }\n};\nvar getNodesTree = function getNodesTree(_ref, width, nodeWidth) {\n var nodes = _ref.nodes,\n links = _ref.links;\n var tree = nodes.map(function (entry, index) {\n var result = searchTargetsAndSources(links, index);\n return _objectSpread(_objectSpread(_objectSpread({}, entry), result), {}, {\n value: Math.max(getSumOfIds(links, result.sourceLinks), getSumOfIds(links, result.targetLinks)),\n depth: 0\n });\n });\n for (var i = 0, len = tree.length; i < len; i++) {\n var node = tree[i];\n if (!node.sourceNodes.length) {\n updateDepthOfTargets(tree, node);\n }\n }\n var maxDepth = _maxBy(tree, function (entry) {\n return entry.depth;\n }).depth;\n if (maxDepth >= 1) {\n var childWidth = (width - nodeWidth) / maxDepth;\n for (var _i = 0, _len = tree.length; _i < _len; _i++) {\n var _node = tree[_i];\n if (!_node.targetNodes.length) {\n _node.depth = maxDepth;\n }\n _node.x = _node.depth * childWidth;\n _node.dx = nodeWidth;\n }\n }\n return {\n tree: tree,\n maxDepth: maxDepth\n };\n};\nvar getDepthTree = function getDepthTree(tree) {\n var result = [];\n for (var i = 0, len = tree.length; i < len; i++) {\n var node = tree[i];\n if (!result[node.depth]) {\n result[node.depth] = [];\n }\n result[node.depth].push(node);\n }\n return result;\n};\nvar updateYOfTree = function updateYOfTree(depthTree, height, nodePadding, links) {\n var yRatio = _min(depthTree.map(function (nodes) {\n return (height - (nodes.length - 1) * nodePadding) / _sumBy(nodes, getValue);\n }));\n for (var d = 0, maxDepth = depthTree.length; d < maxDepth; d++) {\n for (var i = 0, len = depthTree[d].length; i < len; i++) {\n var node = depthTree[d][i];\n node.y = i;\n node.dy = node.value * yRatio;\n }\n }\n return links.map(function (link) {\n return _objectSpread(_objectSpread({}, link), {}, {\n dy: getValue(link) * yRatio\n });\n });\n};\nvar resolveCollisions = function resolveCollisions(depthTree, height, nodePadding) {\n var sort = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : true;\n for (var i = 0, len = depthTree.length; i < len; i++) {\n var nodes = depthTree[i];\n var n = nodes.length;\n\n // Sort by the value of y\n if (sort) {\n nodes.sort(ascendingY);\n }\n var y0 = 0;\n for (var j = 0; j < n; j++) {\n var node = nodes[j];\n var dy = y0 - node.y;\n if (dy > 0) {\n node.y += dy;\n }\n y0 = node.y + node.dy + nodePadding;\n }\n y0 = height + nodePadding;\n for (var _j = n - 1; _j >= 0; _j--) {\n var _node2 = nodes[_j];\n var _dy = _node2.y + _node2.dy + nodePadding - y0;\n if (_dy > 0) {\n _node2.y -= _dy;\n y0 = _node2.y;\n } else {\n break;\n }\n }\n }\n};\nvar relaxLeftToRight = function relaxLeftToRight(tree, depthTree, links, alpha) {\n for (var i = 0, maxDepth = depthTree.length; i < maxDepth; i++) {\n var nodes = depthTree[i];\n for (var j = 0, len = nodes.length; j < len; j++) {\n var node = nodes[j];\n if (node.sourceLinks.length) {\n var sourceSum = getSumOfIds(links, node.sourceLinks);\n var weightedSum = getSumWithWeightedSource(tree, links, node.sourceLinks);\n var y = weightedSum / sourceSum;\n node.y += (y - centerY(node)) * alpha;\n }\n }\n }\n};\nvar relaxRightToLeft = function relaxRightToLeft(tree, depthTree, links, alpha) {\n for (var i = depthTree.length - 1; i >= 0; i--) {\n var nodes = depthTree[i];\n for (var j = 0, len = nodes.length; j < len; j++) {\n var node = nodes[j];\n if (node.targetLinks.length) {\n var targetSum = getSumOfIds(links, node.targetLinks);\n var weightedSum = getSumWithWeightedTarget(tree, links, node.targetLinks);\n var y = weightedSum / targetSum;\n node.y += (y - centerY(node)) * alpha;\n }\n }\n }\n};\nvar updateYOfLinks = function updateYOfLinks(tree, links) {\n for (var i = 0, len = tree.length; i < len; i++) {\n var node = tree[i];\n var sy = 0;\n var ty = 0;\n node.targetLinks.sort(function (a, b) {\n return tree[links[a].target].y - tree[links[b].target].y;\n });\n node.sourceLinks.sort(function (a, b) {\n return tree[links[a].source].y - tree[links[b].source].y;\n });\n for (var j = 0, tLen = node.targetLinks.length; j < tLen; j++) {\n var link = links[node.targetLinks[j]];\n if (link) {\n link.sy = sy;\n sy += link.dy;\n }\n }\n for (var _j2 = 0, sLen = node.sourceLinks.length; _j2 < sLen; _j2++) {\n var _link = links[node.sourceLinks[_j2]];\n if (_link) {\n _link.ty = ty;\n ty += _link.dy;\n }\n }\n }\n};\nvar computeData = function computeData(_ref2) {\n var data = _ref2.data,\n width = _ref2.width,\n height = _ref2.height,\n iterations = _ref2.iterations,\n nodeWidth = _ref2.nodeWidth,\n nodePadding = _ref2.nodePadding,\n sort = _ref2.sort;\n var links = data.links;\n var _getNodesTree = getNodesTree(data, width, nodeWidth),\n tree = _getNodesTree.tree;\n var depthTree = getDepthTree(tree);\n var newLinks = updateYOfTree(depthTree, height, nodePadding, links);\n resolveCollisions(depthTree, height, nodePadding, sort);\n var alpha = 1;\n for (var i = 1; i <= iterations; i++) {\n relaxRightToLeft(tree, depthTree, newLinks, alpha *= 0.99);\n resolveCollisions(depthTree, height, nodePadding, sort);\n relaxLeftToRight(tree, depthTree, newLinks, alpha);\n resolveCollisions(depthTree, height, nodePadding, sort);\n }\n updateYOfLinks(tree, newLinks);\n return {\n nodes: tree,\n links: newLinks\n };\n};\nvar getCoordinateOfTooltip = function getCoordinateOfTooltip(el, type) {\n if (type === 'node') {\n return {\n x: el.x + el.width / 2,\n y: el.y + el.height / 2\n };\n }\n return {\n x: (el.sourceX + el.targetX) / 2,\n y: (el.sourceY + el.targetY) / 2\n };\n};\nvar getPayloadOfTooltip = function getPayloadOfTooltip(el, type, nameKey) {\n var payload = el.payload;\n if (type === 'node') {\n return [{\n payload: el,\n name: getValueByDataKey(payload, nameKey, ''),\n value: getValueByDataKey(payload, 'value')\n }];\n }\n if (payload.source && payload.target) {\n var sourceName = getValueByDataKey(payload.source, nameKey, '');\n var targetName = getValueByDataKey(payload.target, nameKey, '');\n return [{\n payload: el,\n name: \"\".concat(sourceName, \" - \").concat(targetName),\n value: getValueByDataKey(payload, 'value')\n }];\n }\n return [];\n};\nexport var Sankey = /*#__PURE__*/function (_PureComponent) {\n _inherits(Sankey, _PureComponent);\n var _super = _createSuper(Sankey);\n function Sankey() {\n var _this;\n _classCallCheck(this, Sankey);\n for (var _len2 = arguments.length, args = new Array(_len2), _key = 0; _key < _len2; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"state\", {\n activeElement: null,\n activeElementType: null,\n isTooltipActive: false,\n nodes: [],\n links: []\n });\n return _this;\n }\n _createClass(Sankey, [{\n key: \"handleMouseEnter\",\n value: function handleMouseEnter(el, type, e) {\n var _this$props = this.props,\n onMouseEnter = _this$props.onMouseEnter,\n children = _this$props.children;\n var tooltipItem = findChildByType(children, Tooltip);\n if (tooltipItem) {\n this.setState(function (prev) {\n if (tooltipItem.props.trigger === 'hover') {\n return _objectSpread(_objectSpread({}, prev), {}, {\n activeElement: el,\n activeElementType: type,\n isTooltipActive: true\n });\n }\n return prev;\n }, function () {\n if (onMouseEnter) {\n onMouseEnter(el, type, e);\n }\n });\n } else if (onMouseEnter) {\n onMouseEnter(el, type, e);\n }\n }\n }, {\n key: \"handleMouseLeave\",\n value: function handleMouseLeave(el, type, e) {\n var _this$props2 = this.props,\n onMouseLeave = _this$props2.onMouseLeave,\n children = _this$props2.children;\n var tooltipItem = findChildByType(children, Tooltip);\n if (tooltipItem) {\n this.setState(function (prev) {\n if (tooltipItem.props.trigger === 'hover') {\n return _objectSpread(_objectSpread({}, prev), {}, {\n activeElement: undefined,\n activeElementType: undefined,\n isTooltipActive: false\n });\n }\n return prev;\n }, function () {\n if (onMouseLeave) {\n onMouseLeave(el, type, e);\n }\n });\n } else if (onMouseLeave) {\n onMouseLeave(el, type, e);\n }\n }\n }, {\n key: \"handleClick\",\n value: function handleClick(el, type, e) {\n var _this$props3 = this.props,\n onClick = _this$props3.onClick,\n children = _this$props3.children;\n var tooltipItem = findChildByType(children, Tooltip);\n if (tooltipItem && tooltipItem.props.trigger === 'click') {\n if (this.state.isTooltipActive) {\n this.setState(function (prev) {\n return _objectSpread(_objectSpread({}, prev), {}, {\n activeElement: undefined,\n activeElementType: undefined,\n isTooltipActive: false\n });\n });\n } else {\n this.setState(function (prev) {\n return _objectSpread(_objectSpread({}, prev), {}, {\n activeElement: el,\n activeElementType: type,\n isTooltipActive: true\n });\n });\n }\n }\n if (onClick) onClick(el, type, e);\n }\n }, {\n key: \"renderLinks\",\n value: function renderLinks(links, nodes) {\n var _this2 = this;\n var _this$props4 = this.props,\n linkCurvature = _this$props4.linkCurvature,\n linkContent = _this$props4.link,\n margin = _this$props4.margin;\n var top = _get(margin, 'top') || 0;\n var left = _get(margin, 'left') || 0;\n return /*#__PURE__*/React.createElement(Layer, {\n className: \"recharts-sankey-links\",\n key: \"recharts-sankey-links\"\n }, links.map(function (link, i) {\n var sourceRelativeY = link.sy,\n targetRelativeY = link.ty,\n linkWidth = link.dy;\n var source = nodes[link.source];\n var target = nodes[link.target];\n var sourceX = source.x + source.dx + left;\n var targetX = target.x + left;\n var interpolationFunc = interpolationGenerator(sourceX, targetX);\n var sourceControlX = interpolationFunc(linkCurvature);\n var targetControlX = interpolationFunc(1 - linkCurvature);\n var sourceY = source.y + sourceRelativeY + linkWidth / 2 + top;\n var targetY = target.y + targetRelativeY + linkWidth / 2 + top;\n var linkProps = _objectSpread({\n sourceX: sourceX,\n targetX: targetX,\n sourceY: sourceY,\n targetY: targetY,\n sourceControlX: sourceControlX,\n targetControlX: targetControlX,\n sourceRelativeY: sourceRelativeY,\n targetRelativeY: targetRelativeY,\n linkWidth: linkWidth,\n index: i,\n payload: _objectSpread(_objectSpread({}, link), {}, {\n source: source,\n target: target\n })\n }, filterProps(linkContent));\n var events = {\n onMouseEnter: _this2.handleMouseEnter.bind(_this2, linkProps, 'link'),\n onMouseLeave: _this2.handleMouseLeave.bind(_this2, linkProps, 'link'),\n onClick: _this2.handleClick.bind(_this2, linkProps, 'link')\n };\n return (\n /*#__PURE__*/\n // eslint-disable-next-line react/no-array-index-key\n React.createElement(Layer, _extends({\n key: \"link\".concat(i)\n }, events), _this2.constructor.renderLinkItem(linkContent, linkProps))\n );\n }));\n }\n }, {\n key: \"renderNodes\",\n value: function renderNodes(nodes) {\n var _this3 = this;\n var _this$props5 = this.props,\n nodeContent = _this$props5.node,\n margin = _this$props5.margin;\n var top = _get(margin, 'top') || 0;\n var left = _get(margin, 'left') || 0;\n return /*#__PURE__*/React.createElement(Layer, {\n className: \"recharts-sankey-nodes\",\n key: \"recharts-sankey-nodes\"\n }, nodes.map(function (node, i) {\n var x = node.x,\n y = node.y,\n dx = node.dx,\n dy = node.dy;\n var nodeProps = _objectSpread(_objectSpread({}, filterProps(nodeContent)), {}, {\n x: x + left,\n y: y + top,\n width: dx,\n height: dy,\n index: i,\n payload: node\n });\n var events = {\n onMouseEnter: _this3.handleMouseEnter.bind(_this3, nodeProps, 'node'),\n onMouseLeave: _this3.handleMouseLeave.bind(_this3, nodeProps, 'node'),\n onClick: _this3.handleClick.bind(_this3, nodeProps, 'node')\n };\n return (\n /*#__PURE__*/\n // eslint-disable-next-line react/no-array-index-key\n React.createElement(Layer, _extends({\n key: \"node\".concat(i)\n }, events), _this3.constructor.renderNodeItem(nodeContent, nodeProps))\n );\n }));\n }\n }, {\n key: \"renderTooltip\",\n value: function renderTooltip() {\n var _this$props6 = this.props,\n children = _this$props6.children,\n width = _this$props6.width,\n height = _this$props6.height,\n nameKey = _this$props6.nameKey;\n var tooltipItem = findChildByType(children, Tooltip);\n if (!tooltipItem) {\n return null;\n }\n var _this$state = this.state,\n isTooltipActive = _this$state.isTooltipActive,\n activeElement = _this$state.activeElement,\n activeElementType = _this$state.activeElementType;\n var viewBox = {\n x: 0,\n y: 0,\n width: width,\n height: height\n };\n var coordinate = activeElement ? getCoordinateOfTooltip(activeElement, activeElementType) : defaultCoordinateOfTooltip;\n var payload = activeElement ? getPayloadOfTooltip(activeElement, activeElementType, nameKey) : [];\n return /*#__PURE__*/React.cloneElement(tooltipItem, {\n viewBox: viewBox,\n active: isTooltipActive,\n coordinate: coordinate,\n label: '',\n payload: payload\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n if (!validateWidthHeight(this)) {\n return null;\n }\n var _this$props7 = this.props,\n width = _this$props7.width,\n height = _this$props7.height,\n className = _this$props7.className,\n style = _this$props7.style,\n children = _this$props7.children,\n others = _objectWithoutProperties(_this$props7, _excluded);\n var _this$state2 = this.state,\n links = _this$state2.links,\n nodes = _this$state2.nodes;\n var attrs = filterProps(others);\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classNames('recharts-wrapper', className),\n style: _objectSpread(_objectSpread({}, style), {}, {\n position: 'relative',\n cursor: 'default',\n width: width,\n height: height\n }),\n role: \"region\"\n }, /*#__PURE__*/React.createElement(Surface, _extends({}, attrs, {\n width: width,\n height: height\n }), filterSvgElements(children), this.renderLinks(links, nodes), this.renderNodes(nodes)), this.renderTooltip());\n }\n }], [{\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(nextProps, prevState) {\n var data = nextProps.data,\n width = nextProps.width,\n height = nextProps.height,\n margin = nextProps.margin,\n iterations = nextProps.iterations,\n nodeWidth = nextProps.nodeWidth,\n nodePadding = nextProps.nodePadding,\n sort = nextProps.sort;\n if (data !== prevState.prevData || width !== prevState.prevWidth || height !== prevState.prevHeight || !shallowEqual(margin, prevState.prevMargin) || iterations !== prevState.prevIterations || nodeWidth !== prevState.prevNodeWidth || nodePadding !== prevState.prevNodePadding || sort !== prevState.sort) {\n var contentWidth = width - (margin && margin.left || 0) - (margin && margin.right || 0);\n var contentHeight = height - (margin && margin.top || 0) - (margin && margin.bottom || 0);\n var _computeData = computeData({\n data: data,\n width: contentWidth,\n height: contentHeight,\n iterations: iterations,\n nodeWidth: nodeWidth,\n nodePadding: nodePadding,\n sort: sort\n }),\n links = _computeData.links,\n nodes = _computeData.nodes;\n return _objectSpread(_objectSpread({}, prevState), {}, {\n nodes: nodes,\n links: links,\n prevData: data,\n prevWidth: iterations,\n prevHeight: height,\n prevMargin: margin,\n prevNodePadding: nodePadding,\n prevNodeWidth: nodeWidth,\n prevIterations: iterations,\n prevSort: sort\n });\n }\n return null;\n }\n }, {\n key: \"renderLinkItem\",\n value: function renderLinkItem(option, props) {\n if ( /*#__PURE__*/React.isValidElement(option)) {\n return /*#__PURE__*/React.cloneElement(option, props);\n }\n if (_isFunction(option)) {\n return option(props);\n }\n var sourceX = props.sourceX,\n sourceY = props.sourceY,\n sourceControlX = props.sourceControlX,\n targetX = props.targetX,\n targetY = props.targetY,\n targetControlX = props.targetControlX,\n linkWidth = props.linkWidth,\n others = _objectWithoutProperties(props, _excluded2);\n return /*#__PURE__*/React.createElement(\"path\", _extends({\n className: \"recharts-sankey-link\",\n d: \"\\n M\".concat(sourceX, \",\").concat(sourceY, \"\\n C\").concat(sourceControlX, \",\").concat(sourceY, \" \").concat(targetControlX, \",\").concat(targetY, \" \").concat(targetX, \",\").concat(targetY, \"\\n \"),\n fill: \"none\",\n stroke: \"#333\",\n strokeWidth: linkWidth,\n strokeOpacity: \"0.2\"\n }, filterProps(others)));\n }\n }, {\n key: \"renderNodeItem\",\n value: function renderNodeItem(option, props) {\n if ( /*#__PURE__*/React.isValidElement(option)) {\n return /*#__PURE__*/React.cloneElement(option, props);\n }\n if (_isFunction(option)) {\n return option(props);\n }\n return /*#__PURE__*/React.createElement(Rectangle, _extends({\n className: \"recharts-sankey-node\",\n fill: \"#0088fe\",\n fillOpacity: \"0.8\"\n }, filterProps(props), {\n role: \"img\"\n }));\n }\n }]);\n return Sankey;\n}(PureComponent);\n_defineProperty(Sankey, \"displayName\", 'Sankey');\n_defineProperty(Sankey, \"defaultProps\", {\n nameKey: 'name',\n dataKey: 'value',\n nodePadding: 10,\n nodeWidth: 10,\n linkCurvature: 0.5,\n iterations: 32,\n margin: {\n top: 5,\n right: 5,\n bottom: 5,\n left: 5\n },\n sort: true\n});","/**\n * Given an array and a number N, return a new array which contains every nTh\n * element of the input array. For n below 1, an empty array is returned.\n * If isValid is provided, all candidates must suffice the condition, else undefined is returned.\n * @param {T[]} array An input array.\n * @param {integer} n A number\n * @param {Function} isValid A function to evaluate a candidate form the array\n * @returns {T[]} The result array of the same type as the input array.\n */\nexport function getEveryNthWithCondition(array, n, isValid) {\n if (n < 1) {\n return [];\n }\n if (n === 1 && isValid === undefined) {\n return array;\n }\n var result = [];\n for (var i = 0; i < array.length; i += n) {\n if (isValid === undefined || isValid(array[i]) === true) {\n result.push(array[i]);\n } else {\n return undefined;\n }\n }\n return result;\n}","import _isFunction from \"lodash/isFunction\";\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction 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; }\nfunction _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; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nimport { mathSign, isNumber } from '../util/DataUtils';\nimport { getStringSize } from '../util/DOMUtils';\nimport { Global } from '../util/Global';\nimport { getEveryNthWithCondition } from '../util/getEveryNthWithCondition';\nimport { getAngledRectangleWidth } from '../util/CartesianUtils';\n\n/**\n * Given an array of ticks, find N, the lowest possible number for which every\n * nTH tick in the ticks array isShow == true and return the array of every nTh tick.\n * @param {CartesianTickItem[]} ticks An array of CartesianTickItem with the\n * information whether they can be shown without overlapping with their neighbour isShow.\n * @returns {CartesianTickItem[]} Every nTh tick in an array.\n */\nexport function getEveryNThTick(ticks) {\n var N = 1;\n var previous = getEveryNthWithCondition(ticks, N, function (tickItem) {\n return tickItem.isShow;\n });\n while (N <= ticks.length) {\n if (previous !== undefined) {\n return previous;\n }\n N++;\n previous = getEveryNthWithCondition(ticks, N, function (tickItem) {\n return tickItem.isShow;\n });\n }\n return ticks.slice(0, 1);\n}\nexport function getNumberIntervalTicks(ticks, interval) {\n return getEveryNthWithCondition(ticks, interval + 1);\n}\nfunction getAngledTickWidth(contentSize, unitSize, angle) {\n var size = {\n width: contentSize.width + unitSize.width,\n height: contentSize.height + unitSize.height\n };\n return getAngledRectangleWidth(size, angle);\n}\nfunction getTicksEnd(_ref) {\n var angle = _ref.angle,\n ticks = _ref.ticks,\n tickFormatter = _ref.tickFormatter,\n viewBox = _ref.viewBox,\n orientation = _ref.orientation,\n minTickGap = _ref.minTickGap,\n unit = _ref.unit,\n fontSize = _ref.fontSize,\n letterSpacing = _ref.letterSpacing;\n var x = viewBox.x,\n y = viewBox.y,\n width = viewBox.width,\n height = viewBox.height;\n var sizeKey = orientation === 'top' || orientation === 'bottom' ? 'width' : 'height';\n // we need add the width of 'unit' only when sizeKey === 'width'\n var unitSize = unit && sizeKey === 'width' ? getStringSize(unit, {\n fontSize: fontSize,\n letterSpacing: letterSpacing\n }) : {\n width: 0,\n height: 0\n };\n var result = (ticks || []).slice();\n var len = result.length;\n var sign = len >= 2 ? mathSign(result[1].coordinate - result[0].coordinate) : 1;\n var start, end;\n if (sign === 1) {\n start = sizeKey === 'width' ? x : y;\n end = sizeKey === 'width' ? x + width : y + height;\n } else {\n start = sizeKey === 'width' ? x + width : y + height;\n end = sizeKey === 'width' ? x : y;\n }\n for (var i = len - 1; i >= 0; i--) {\n var entry = result[i];\n var content = _isFunction(tickFormatter) ? tickFormatter(entry.value, len - i - 1) : entry.value;\n // Recharts only supports angles when sizeKey === 'width'\n var size = sizeKey === 'width' ? getAngledTickWidth(getStringSize(content, {\n fontSize: fontSize,\n letterSpacing: letterSpacing\n }), unitSize, angle) : getStringSize(content, {\n fontSize: fontSize,\n letterSpacing: letterSpacing\n })[sizeKey];\n if (i === len - 1) {\n var gap = sign * (entry.coordinate + sign * size / 2 - end);\n result[i] = entry = _objectSpread(_objectSpread({}, entry), {}, {\n tickCoord: gap > 0 ? entry.coordinate - gap * sign : entry.coordinate\n });\n } else {\n result[i] = entry = _objectSpread(_objectSpread({}, entry), {}, {\n tickCoord: entry.coordinate\n });\n }\n var isShow = sign * (entry.tickCoord - sign * size / 2 - start) >= 0 && sign * (entry.tickCoord + sign * size / 2 - end) <= 0;\n if (isShow) {\n end = entry.tickCoord - sign * (size / 2 + minTickGap);\n result[i] = _objectSpread(_objectSpread({}, entry), {}, {\n isShow: true\n });\n }\n }\n return result;\n}\nfunction getTicksStart(_ref2, preserveEnd) {\n var angle = _ref2.angle,\n ticks = _ref2.ticks,\n tickFormatter = _ref2.tickFormatter,\n viewBox = _ref2.viewBox,\n orientation = _ref2.orientation,\n minTickGap = _ref2.minTickGap,\n unit = _ref2.unit,\n fontSize = _ref2.fontSize,\n letterSpacing = _ref2.letterSpacing;\n var x = viewBox.x,\n y = viewBox.y,\n width = viewBox.width,\n height = viewBox.height;\n var sizeKey = orientation === 'top' || orientation === 'bottom' ? 'width' : 'height';\n var result = (ticks || []).slice();\n // we need add the width of 'unit' only when sizeKey === 'width'\n var unitSize = unit && sizeKey === 'width' ? getStringSize(unit, {\n fontSize: fontSize,\n letterSpacing: letterSpacing\n }) : {\n width: 0,\n height: 0\n };\n var len = result.length;\n var sign = len >= 2 ? mathSign(result[1].coordinate - result[0].coordinate) : 1;\n var start, end;\n if (sign === 1) {\n start = sizeKey === 'width' ? x : y;\n end = sizeKey === 'width' ? x + width : y + height;\n } else {\n start = sizeKey === 'width' ? x + width : y + height;\n end = sizeKey === 'width' ? x : y;\n }\n if (preserveEnd) {\n // Try to guarantee the tail to be displayed\n var tail = ticks[len - 1];\n var tailContent = _isFunction(tickFormatter) ? tickFormatter(tail.value, len - 1) : tail.value;\n // Recharts only supports angles when sizeKey === 'width'\n var tailSize = sizeKey === 'width' ? getAngledTickWidth(getStringSize(tailContent, {\n fontSize: fontSize,\n letterSpacing: letterSpacing\n }), unitSize, angle) : getStringSize(tailContent, {\n fontSize: fontSize,\n letterSpacing: letterSpacing\n })[sizeKey];\n var tailGap = sign * (tail.coordinate + sign * tailSize / 2 - end);\n result[len - 1] = tail = _objectSpread(_objectSpread({}, tail), {}, {\n tickCoord: tailGap > 0 ? tail.coordinate - tailGap * sign : tail.coordinate\n });\n var isTailShow = sign * (tail.tickCoord - sign * tailSize / 2 - start) >= 0 && sign * (tail.tickCoord + sign * tailSize / 2 - end) <= 0;\n if (isTailShow) {\n end = tail.tickCoord - sign * (tailSize / 2 + minTickGap);\n result[len - 1] = _objectSpread(_objectSpread({}, tail), {}, {\n isShow: true\n });\n }\n }\n var count = preserveEnd ? len - 1 : len;\n for (var i = 0; i < count; i++) {\n var entry = result[i];\n var content = _isFunction(tickFormatter) ? tickFormatter(entry.value, i) : entry.value;\n var size = sizeKey === 'width' ? getAngledTickWidth(getStringSize(content, {\n fontSize: fontSize,\n letterSpacing: letterSpacing\n }), unitSize, angle) : getStringSize(content, {\n fontSize: fontSize,\n letterSpacing: letterSpacing\n })[sizeKey];\n if (i === 0) {\n var gap = sign * (entry.coordinate - sign * size / 2 - start);\n result[i] = entry = _objectSpread(_objectSpread({}, entry), {}, {\n tickCoord: gap < 0 ? entry.coordinate - gap * sign : entry.coordinate\n });\n } else {\n result[i] = entry = _objectSpread(_objectSpread({}, entry), {}, {\n tickCoord: entry.coordinate\n });\n }\n var isShow = sign * (entry.tickCoord - sign * size / 2 - start) >= 0 && sign * (entry.tickCoord + sign * size / 2 - end) <= 0;\n if (isShow) {\n start = entry.tickCoord + sign * (size / 2 + minTickGap);\n result[i] = _objectSpread(_objectSpread({}, entry), {}, {\n isShow: true\n });\n }\n }\n return result;\n}\nexport function getTicks(props, fontSize, letterSpacing) {\n var tick = props.tick,\n ticks = props.ticks,\n viewBox = props.viewBox,\n minTickGap = props.minTickGap,\n orientation = props.orientation,\n interval = props.interval,\n tickFormatter = props.tickFormatter,\n unit = props.unit,\n angle = props.angle;\n if (!ticks || !ticks.length || !tick) {\n return [];\n }\n if (isNumber(interval) || Global.isSsr) {\n return getNumberIntervalTicks(ticks, typeof interval === 'number' && isNumber(interval) ? interval : 0);\n }\n var candidates = [];\n if (interval === 'equidistantPreserveStart') {\n candidates = getTicksStart({\n angle: angle,\n ticks: ticks,\n tickFormatter: tickFormatter,\n viewBox: viewBox,\n orientation: orientation,\n minTickGap: minTickGap,\n unit: unit,\n fontSize: fontSize,\n letterSpacing: letterSpacing\n });\n return getEveryNThTick(candidates);\n }\n if (interval === 'preserveStart' || interval === 'preserveStartEnd') {\n candidates = getTicksStart({\n angle: angle,\n ticks: ticks,\n tickFormatter: tickFormatter,\n viewBox: viewBox,\n orientation: orientation,\n minTickGap: minTickGap,\n unit: unit,\n fontSize: fontSize,\n letterSpacing: letterSpacing\n }, interval === 'preserveStartEnd');\n } else {\n candidates = getTicksEnd({\n angle: angle,\n ticks: ticks,\n tickFormatter: tickFormatter,\n viewBox: viewBox,\n orientation: orientation,\n minTickGap: minTickGap,\n unit: unit,\n fontSize: fontSize,\n letterSpacing: letterSpacing\n });\n }\n return candidates.filter(function (entry) {\n return entry.isShow;\n });\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nvar _excluded = [\"x\", \"y\", \"top\", \"left\", \"width\", \"height\", \"className\"];\nfunction _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); }\nfunction 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; }\nfunction _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; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction _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; }\nfunction _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; }\n/**\n * @fileOverview Cross\n */\nimport React from 'react';\nimport classNames from 'classnames';\nimport { isNumber } from '../util/DataUtils';\nimport { filterProps } from '../util/ReactUtils';\nvar getPath = function getPath(x, y, width, height, top, left) {\n return \"M\".concat(x, \",\").concat(top, \"v\").concat(height, \"M\").concat(left, \",\").concat(y, \"h\").concat(width);\n};\nexport var Cross = function Cross(_ref) {\n var _ref$x = _ref.x,\n x = _ref$x === void 0 ? 0 : _ref$x,\n _ref$y = _ref.y,\n y = _ref$y === void 0 ? 0 : _ref$y,\n _ref$top = _ref.top,\n top = _ref$top === void 0 ? 0 : _ref$top,\n _ref$left = _ref.left,\n left = _ref$left === void 0 ? 0 : _ref$left,\n _ref$width = _ref.width,\n width = _ref$width === void 0 ? 0 : _ref$width,\n _ref$height = _ref.height,\n height = _ref$height === void 0 ? 0 : _ref$height,\n className = _ref.className,\n rest = _objectWithoutProperties(_ref, _excluded);\n var props = _objectSpread({\n x: x,\n y: y,\n top: top,\n left: left,\n width: width,\n height: height\n }, rest);\n if (!isNumber(x) || !isNumber(y) || !isNumber(width) || !isNumber(height) || !isNumber(top) || !isNumber(left)) {\n return null;\n }\n return /*#__PURE__*/React.createElement(\"path\", _extends({}, filterProps(props, true), {\n className: classNames('recharts-cross', className),\n d: getPath(x, y, width, height, top, left)\n }));\n};","import _isFunction from \"lodash/isFunction\";\nimport _get from \"lodash/get\";\nvar _excluded = [\"viewBox\"],\n _excluded2 = [\"viewBox\"],\n _excluded3 = [\"ticks\"];\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction _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); }\nfunction 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; }\nfunction _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; }\nfunction _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; }\nfunction _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; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _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, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _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); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _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); }; }\nfunction _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); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _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; } }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\n/**\n * @fileOverview Cartesian Axis\n */\nimport React, { Component } from 'react';\nimport classNames from 'classnames';\nimport { shallowEqual } from '../util/ShallowEqual';\nimport { Layer } from '../container/Layer';\nimport { Text } from '../component/Text';\nimport { Label } from '../component/Label';\nimport { isNumber } from '../util/DataUtils';\nimport { adaptEventsOfChild } from '../util/types';\nimport { filterProps } from '../util/ReactUtils';\nimport { getTicks } from './getTicks';\nexport var CartesianAxis = /*#__PURE__*/function (_Component) {\n _inherits(CartesianAxis, _Component);\n var _super = _createSuper(CartesianAxis);\n function CartesianAxis(props) {\n var _this;\n _classCallCheck(this, CartesianAxis);\n _this = _super.call(this, props);\n _this.state = {\n fontSize: '',\n letterSpacing: ''\n };\n return _this;\n }\n _createClass(CartesianAxis, [{\n key: \"shouldComponentUpdate\",\n value: function shouldComponentUpdate(_ref, nextState) {\n var viewBox = _ref.viewBox,\n restProps = _objectWithoutProperties(_ref, _excluded);\n // props.viewBox is sometimes generated every time -\n // check that specially as object equality is likely to fail\n var _this$props = this.props,\n viewBoxOld = _this$props.viewBox,\n restPropsOld = _objectWithoutProperties(_this$props, _excluded2);\n return !shallowEqual(viewBox, viewBoxOld) || !shallowEqual(restProps, restPropsOld) || !shallowEqual(nextState, this.state);\n }\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var htmlLayer = this.layerReference;\n if (!htmlLayer) return;\n var tick = htmlLayer.getElementsByClassName('recharts-cartesian-axis-tick-value')[0];\n if (tick) {\n this.setState({\n fontSize: window.getComputedStyle(tick).fontSize,\n letterSpacing: window.getComputedStyle(tick).letterSpacing\n });\n }\n }\n\n /**\n * Calculate the coordinates of endpoints in ticks\n * @param {Object} data The data of a simple tick\n * @return {Object} (x1, y1): The coordinate of endpoint close to tick text\n * (x2, y2): The coordinate of endpoint close to axis\n */\n }, {\n key: \"getTickLineCoord\",\n value: function getTickLineCoord(data) {\n var _this$props2 = this.props,\n x = _this$props2.x,\n y = _this$props2.y,\n width = _this$props2.width,\n height = _this$props2.height,\n orientation = _this$props2.orientation,\n tickSize = _this$props2.tickSize,\n mirror = _this$props2.mirror,\n tickMargin = _this$props2.tickMargin;\n var x1, x2, y1, y2, tx, ty;\n var sign = mirror ? -1 : 1;\n var finalTickSize = data.tickSize || tickSize;\n var tickCoord = isNumber(data.tickCoord) ? data.tickCoord : data.coordinate;\n switch (orientation) {\n case 'top':\n x1 = x2 = data.coordinate;\n y2 = y + +!mirror * height;\n y1 = y2 - sign * finalTickSize;\n ty = y1 - sign * tickMargin;\n tx = tickCoord;\n break;\n case 'left':\n y1 = y2 = data.coordinate;\n x2 = x + +!mirror * width;\n x1 = x2 - sign * finalTickSize;\n tx = x1 - sign * tickMargin;\n ty = tickCoord;\n break;\n case 'right':\n y1 = y2 = data.coordinate;\n x2 = x + +mirror * width;\n x1 = x2 + sign * finalTickSize;\n tx = x1 + sign * tickMargin;\n ty = tickCoord;\n break;\n default:\n x1 = x2 = data.coordinate;\n y2 = y + +mirror * height;\n y1 = y2 + sign * finalTickSize;\n ty = y1 + sign * tickMargin;\n tx = tickCoord;\n break;\n }\n return {\n line: {\n x1: x1,\n y1: y1,\n x2: x2,\n y2: y2\n },\n tick: {\n x: tx,\n y: ty\n }\n };\n }\n }, {\n key: \"getTickTextAnchor\",\n value: function getTickTextAnchor() {\n var _this$props3 = this.props,\n orientation = _this$props3.orientation,\n mirror = _this$props3.mirror;\n var textAnchor;\n switch (orientation) {\n case 'left':\n textAnchor = mirror ? 'start' : 'end';\n break;\n case 'right':\n textAnchor = mirror ? 'end' : 'start';\n break;\n default:\n textAnchor = 'middle';\n break;\n }\n return textAnchor;\n }\n }, {\n key: \"getTickVerticalAnchor\",\n value: function getTickVerticalAnchor() {\n var _this$props4 = this.props,\n orientation = _this$props4.orientation,\n mirror = _this$props4.mirror;\n var verticalAnchor = 'end';\n switch (orientation) {\n case 'left':\n case 'right':\n verticalAnchor = 'middle';\n break;\n case 'top':\n verticalAnchor = mirror ? 'start' : 'end';\n break;\n default:\n verticalAnchor = mirror ? 'end' : 'start';\n break;\n }\n return verticalAnchor;\n }\n }, {\n key: \"renderAxisLine\",\n value: function renderAxisLine() {\n var _this$props5 = this.props,\n x = _this$props5.x,\n y = _this$props5.y,\n width = _this$props5.width,\n height = _this$props5.height,\n orientation = _this$props5.orientation,\n mirror = _this$props5.mirror,\n axisLine = _this$props5.axisLine;\n var props = _objectSpread(_objectSpread(_objectSpread({}, filterProps(this.props)), filterProps(axisLine)), {}, {\n fill: 'none'\n });\n if (orientation === 'top' || orientation === 'bottom') {\n var needHeight = +(orientation === 'top' && !mirror || orientation === 'bottom' && mirror);\n props = _objectSpread(_objectSpread({}, props), {}, {\n x1: x,\n y1: y + needHeight * height,\n x2: x + width,\n y2: y + needHeight * height\n });\n } else {\n var needWidth = +(orientation === 'left' && !mirror || orientation === 'right' && mirror);\n props = _objectSpread(_objectSpread({}, props), {}, {\n x1: x + needWidth * width,\n y1: y,\n x2: x + needWidth * width,\n y2: y + height\n });\n }\n return /*#__PURE__*/React.createElement(\"line\", _extends({}, props, {\n className: classNames('recharts-cartesian-axis-line', _get(axisLine, 'className'))\n }));\n }\n }, {\n key: \"renderTicks\",\n value:\n /**\n * render the ticks\n * @param {Array} ticks The ticks to actually render (overrides what was passed in props)\n * @param {string} fontSize Fontsize to consider for tick spacing\n * @param {string} letterSpacing Letterspacing to consider for tick spacing\n * @return {ReactComponent} renderedTicks\n */\n function renderTicks(ticks, fontSize, letterSpacing) {\n var _this2 = this;\n var _this$props6 = this.props,\n tickLine = _this$props6.tickLine,\n stroke = _this$props6.stroke,\n tick = _this$props6.tick,\n tickFormatter = _this$props6.tickFormatter,\n unit = _this$props6.unit;\n var finalTicks = getTicks(_objectSpread(_objectSpread({}, this.props), {}, {\n ticks: ticks\n }), fontSize, letterSpacing);\n var textAnchor = this.getTickTextAnchor();\n var verticalAnchor = this.getTickVerticalAnchor();\n var axisProps = filterProps(this.props);\n var customTickProps = filterProps(tick);\n var tickLineProps = _objectSpread(_objectSpread({}, axisProps), {}, {\n fill: 'none'\n }, filterProps(tickLine));\n var items = finalTicks.map(function (entry, i) {\n var _this2$getTickLineCoo = _this2.getTickLineCoord(entry),\n lineCoord = _this2$getTickLineCoo.line,\n tickCoord = _this2$getTickLineCoo.tick;\n var tickProps = _objectSpread(_objectSpread(_objectSpread(_objectSpread({\n textAnchor: textAnchor,\n verticalAnchor: verticalAnchor\n }, axisProps), {}, {\n stroke: 'none',\n fill: stroke\n }, customTickProps), tickCoord), {}, {\n index: i,\n payload: entry,\n visibleTicksCount: finalTicks.length,\n tickFormatter: tickFormatter\n });\n return /*#__PURE__*/React.createElement(Layer, _extends({\n className: \"recharts-cartesian-axis-tick\",\n key: \"tick-\".concat(i) // eslint-disable-line react/no-array-index-key\n }, adaptEventsOfChild(_this2.props, entry, i)), tickLine && /*#__PURE__*/React.createElement(\"line\", _extends({}, tickLineProps, lineCoord, {\n className: classNames('recharts-cartesian-axis-tick-line', _get(tickLine, 'className'))\n })), tick && CartesianAxis.renderTickItem(tick, tickProps, \"\".concat(_isFunction(tickFormatter) ? tickFormatter(entry.value, i) : entry.value).concat(unit || '')));\n });\n return /*#__PURE__*/React.createElement(\"g\", {\n className: \"recharts-cartesian-axis-ticks\"\n }, items);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this3 = this;\n var _this$props7 = this.props,\n axisLine = _this$props7.axisLine,\n width = _this$props7.width,\n height = _this$props7.height,\n ticksGenerator = _this$props7.ticksGenerator,\n className = _this$props7.className,\n hide = _this$props7.hide;\n if (hide) {\n return null;\n }\n var _this$props8 = this.props,\n ticks = _this$props8.ticks,\n noTicksProps = _objectWithoutProperties(_this$props8, _excluded3);\n var finalTicks = ticks;\n if (_isFunction(ticksGenerator)) {\n finalTicks = ticks && ticks.length > 0 ? ticksGenerator(this.props) : ticksGenerator(noTicksProps);\n }\n if (width <= 0 || height <= 0 || !finalTicks || !finalTicks.length) {\n return null;\n }\n return /*#__PURE__*/React.createElement(Layer, {\n className: classNames('recharts-cartesian-axis', className),\n ref: function ref(_ref2) {\n _this3.layerReference = _ref2;\n }\n }, axisLine && this.renderAxisLine(), this.renderTicks(finalTicks, this.state.fontSize, this.state.letterSpacing), Label.renderCallByParent(this.props));\n }\n }], [{\n key: \"renderTickItem\",\n value: function renderTickItem(option, props, value) {\n var tickItem;\n if ( /*#__PURE__*/React.isValidElement(option)) {\n tickItem = /*#__PURE__*/React.cloneElement(option, props);\n } else if (_isFunction(option)) {\n tickItem = option(props);\n } else {\n tickItem = /*#__PURE__*/React.createElement(Text, _extends({}, props, {\n className: \"recharts-cartesian-axis-tick-value\"\n }), value);\n }\n return tickItem;\n }\n }]);\n return CartesianAxis;\n}(Component);\n_defineProperty(CartesianAxis, \"displayName\", 'CartesianAxis');\n_defineProperty(CartesianAxis, \"defaultProps\", {\n x: 0,\n y: 0,\n width: 0,\n height: 0,\n viewBox: {\n x: 0,\n y: 0,\n width: 0,\n height: 0\n },\n // The orientation of axis\n orientation: 'bottom',\n // The ticks\n ticks: [],\n stroke: '#666',\n tickLine: true,\n axisLine: true,\n tick: true,\n mirror: false,\n minTickGap: 5,\n // The width or height of tick\n tickSize: 6,\n tickMargin: 2,\n interval: 'preserveEnd'\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction 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; }\nfunction _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; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nvar PREFIX_LIST = ['Webkit', 'Moz', 'O', 'ms'];\nexport var generatePrefixStyle = function generatePrefixStyle(name, value) {\n if (!name) {\n return null;\n }\n var camelName = name.replace(/(\\w)/, function (v) {\n return v.toUpperCase();\n });\n var result = PREFIX_LIST.reduce(function (res, entry) {\n return _objectSpread(_objectSpread({}, res), {}, _defineProperty({}, entry + camelName, value));\n }, {});\n result[name] = value;\n return result;\n};","import _isFunction from \"lodash/isFunction\";\nimport _range from \"lodash/range\";\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction _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); }\nfunction 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; }\nfunction _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; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _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, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _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); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _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); }; }\nfunction _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); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _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; } }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\n/**\n * @fileOverview Brush\n */\nimport React, { PureComponent, Children } from 'react';\nimport classNames from 'classnames';\nimport { scalePoint } from 'victory-vendor/d3-scale';\nimport { Layer } from '../container/Layer';\nimport { Text } from '../component/Text';\nimport { getValueByDataKey } from '../util/ChartUtils';\nimport { isNumber } from '../util/DataUtils';\nimport { generatePrefixStyle } from '../util/CssPrefixUtils';\nimport { filterProps } from '../util/ReactUtils';\nvar createScale = function createScale(_ref) {\n var data = _ref.data,\n startIndex = _ref.startIndex,\n endIndex = _ref.endIndex,\n x = _ref.x,\n width = _ref.width,\n travellerWidth = _ref.travellerWidth;\n if (!data || !data.length) {\n return {};\n }\n var len = data.length;\n var scale = scalePoint().domain(_range(0, len)).range([x, x + width - travellerWidth]);\n var scaleValues = scale.domain().map(function (entry) {\n return scale(entry);\n });\n return {\n isTextActive: false,\n isSlideMoving: false,\n isTravellerMoving: false,\n isTravellerFocused: false,\n startX: scale(startIndex),\n endX: scale(endIndex),\n scale: scale,\n scaleValues: scaleValues\n };\n};\nvar isTouch = function isTouch(e) {\n return e.changedTouches && !!e.changedTouches.length;\n};\nexport var Brush = /*#__PURE__*/function (_PureComponent) {\n _inherits(Brush, _PureComponent);\n var _super = _createSuper(Brush);\n function Brush(props) {\n var _this;\n _classCallCheck(this, Brush);\n _this = _super.call(this, props);\n _defineProperty(_assertThisInitialized(_this), \"handleDrag\", function (e) {\n if (_this.leaveTimer) {\n clearTimeout(_this.leaveTimer);\n _this.leaveTimer = null;\n }\n if (_this.state.isTravellerMoving) {\n _this.handleTravellerMove(e);\n } else if (_this.state.isSlideMoving) {\n _this.handleSlideDrag(e);\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"handleTouchMove\", function (e) {\n if (e.changedTouches != null && e.changedTouches.length > 0) {\n _this.handleDrag(e.changedTouches[0]);\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"handleDragEnd\", function () {\n _this.setState({\n isTravellerMoving: false,\n isSlideMoving: false\n });\n _this.detachDragEndListener();\n });\n _defineProperty(_assertThisInitialized(_this), \"handleLeaveWrapper\", function () {\n if (_this.state.isTravellerMoving || _this.state.isSlideMoving) {\n _this.leaveTimer = window.setTimeout(_this.handleDragEnd, _this.props.leaveTimeOut);\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"handleEnterSlideOrTraveller\", function () {\n _this.setState({\n isTextActive: true\n });\n });\n _defineProperty(_assertThisInitialized(_this), \"handleLeaveSlideOrTraveller\", function () {\n _this.setState({\n isTextActive: false\n });\n });\n _defineProperty(_assertThisInitialized(_this), \"handleSlideDragStart\", function (e) {\n var event = isTouch(e) ? e.changedTouches[0] : e;\n _this.setState({\n isTravellerMoving: false,\n isSlideMoving: true,\n slideMoveStartX: event.pageX\n });\n _this.attachDragEndListener();\n });\n _this.travellerDragStartHandlers = {\n startX: _this.handleTravellerDragStart.bind(_assertThisInitialized(_this), 'startX'),\n endX: _this.handleTravellerDragStart.bind(_assertThisInitialized(_this), 'endX')\n };\n _this.state = {};\n return _this;\n }\n _createClass(Brush, [{\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n if (this.leaveTimer) {\n clearTimeout(this.leaveTimer);\n this.leaveTimer = null;\n }\n this.detachDragEndListener();\n }\n }, {\n key: \"getIndex\",\n value: function getIndex(_ref2) {\n var startX = _ref2.startX,\n endX = _ref2.endX;\n var scaleValues = this.state.scaleValues;\n var _this$props = this.props,\n gap = _this$props.gap,\n data = _this$props.data;\n var lastIndex = data.length - 1;\n var min = Math.min(startX, endX);\n var max = Math.max(startX, endX);\n var minIndex = Brush.getIndexInRange(scaleValues, min);\n var maxIndex = Brush.getIndexInRange(scaleValues, max);\n return {\n startIndex: minIndex - minIndex % gap,\n endIndex: maxIndex === lastIndex ? lastIndex : maxIndex - maxIndex % gap\n };\n }\n }, {\n key: \"getTextOfTick\",\n value: function getTextOfTick(index) {\n var _this$props2 = this.props,\n data = _this$props2.data,\n tickFormatter = _this$props2.tickFormatter,\n dataKey = _this$props2.dataKey;\n var text = getValueByDataKey(data[index], dataKey, index);\n return _isFunction(tickFormatter) ? tickFormatter(text, index) : text;\n }\n }, {\n key: \"attachDragEndListener\",\n value: function attachDragEndListener() {\n window.addEventListener('mouseup', this.handleDragEnd, true);\n window.addEventListener('touchend', this.handleDragEnd, true);\n window.addEventListener('mousemove', this.handleDrag, true);\n }\n }, {\n key: \"detachDragEndListener\",\n value: function detachDragEndListener() {\n window.removeEventListener('mouseup', this.handleDragEnd, true);\n window.removeEventListener('touchend', this.handleDragEnd, true);\n window.removeEventListener('mousemove', this.handleDrag, true);\n }\n }, {\n key: \"handleSlideDrag\",\n value: function handleSlideDrag(e) {\n var _this$state = this.state,\n slideMoveStartX = _this$state.slideMoveStartX,\n startX = _this$state.startX,\n endX = _this$state.endX;\n var _this$props3 = this.props,\n x = _this$props3.x,\n width = _this$props3.width,\n travellerWidth = _this$props3.travellerWidth,\n startIndex = _this$props3.startIndex,\n endIndex = _this$props3.endIndex,\n onChange = _this$props3.onChange;\n var delta = e.pageX - slideMoveStartX;\n if (delta > 0) {\n delta = Math.min(delta, x + width - travellerWidth - endX, x + width - travellerWidth - startX);\n } else if (delta < 0) {\n delta = Math.max(delta, x - startX, x - endX);\n }\n var newIndex = this.getIndex({\n startX: startX + delta,\n endX: endX + delta\n });\n if ((newIndex.startIndex !== startIndex || newIndex.endIndex !== endIndex) && onChange) {\n onChange(newIndex);\n }\n this.setState({\n startX: startX + delta,\n endX: endX + delta,\n slideMoveStartX: e.pageX\n });\n }\n }, {\n key: \"handleTravellerDragStart\",\n value: function handleTravellerDragStart(id, e) {\n var event = isTouch(e) ? e.changedTouches[0] : e;\n this.setState({\n isSlideMoving: false,\n isTravellerMoving: true,\n movingTravellerId: id,\n brushMoveStartX: event.pageX\n });\n this.attachDragEndListener();\n }\n }, {\n key: \"handleTravellerMove\",\n value: function handleTravellerMove(e) {\n var _this$setState;\n var _this$state2 = this.state,\n brushMoveStartX = _this$state2.brushMoveStartX,\n movingTravellerId = _this$state2.movingTravellerId,\n endX = _this$state2.endX,\n startX = _this$state2.startX;\n var prevValue = this.state[movingTravellerId];\n var _this$props4 = this.props,\n x = _this$props4.x,\n width = _this$props4.width,\n travellerWidth = _this$props4.travellerWidth,\n onChange = _this$props4.onChange,\n gap = _this$props4.gap,\n data = _this$props4.data;\n var params = {\n startX: this.state.startX,\n endX: this.state.endX\n };\n var delta = e.pageX - brushMoveStartX;\n if (delta > 0) {\n delta = Math.min(delta, x + width - travellerWidth - prevValue);\n } else if (delta < 0) {\n delta = Math.max(delta, x - prevValue);\n }\n params[movingTravellerId] = prevValue + delta;\n var newIndex = this.getIndex(params);\n var startIndex = newIndex.startIndex,\n endIndex = newIndex.endIndex;\n var isFullGap = function isFullGap() {\n var lastIndex = data.length - 1;\n if (movingTravellerId === 'startX' && (endX > startX ? startIndex % gap === 0 : endIndex % gap === 0) || endX < startX && endIndex === lastIndex || movingTravellerId === 'endX' && (endX > startX ? endIndex % gap === 0 : startIndex % gap === 0) || endX > startX && endIndex === lastIndex) {\n return true;\n }\n return false;\n };\n this.setState((_this$setState = {}, _defineProperty(_this$setState, movingTravellerId, prevValue + delta), _defineProperty(_this$setState, \"brushMoveStartX\", e.pageX), _this$setState), function () {\n if (onChange) {\n if (isFullGap()) {\n onChange(newIndex);\n }\n }\n });\n }\n }, {\n key: \"handleTravellerMoveKeyboard\",\n value: function handleTravellerMoveKeyboard(direction, id) {\n var _this2 = this;\n // scaleValues are a list of coordinates. For example: [65, 250, 435, 620, 805, 990].\n var _this$state3 = this.state,\n scaleValues = _this$state3.scaleValues,\n startX = _this$state3.startX,\n endX = _this$state3.endX;\n // currentScaleValue refers to which coordinate the current traveller should be placed at.\n var currentScaleValue = this.state[id];\n var currentIndex = scaleValues.indexOf(currentScaleValue);\n if (currentIndex === -1) {\n return;\n }\n var newIndex = currentIndex + direction;\n if (newIndex === -1 || newIndex >= scaleValues.length) {\n return;\n }\n var newScaleValue = scaleValues[newIndex];\n\n // Prevent travellers from being on top of each other or overlapping\n if (id === 'startX' && newScaleValue >= endX || id === 'endX' && newScaleValue <= startX) {\n return;\n }\n this.setState(_defineProperty({}, id, newScaleValue), function () {\n _this2.props.onChange(_this2.getIndex({\n startX: _this2.state.startX,\n endX: _this2.state.endX\n }));\n });\n }\n }, {\n key: \"renderBackground\",\n value: function renderBackground() {\n var _this$props5 = this.props,\n x = _this$props5.x,\n y = _this$props5.y,\n width = _this$props5.width,\n height = _this$props5.height,\n fill = _this$props5.fill,\n stroke = _this$props5.stroke;\n return /*#__PURE__*/React.createElement(\"rect\", {\n stroke: stroke,\n fill: fill,\n x: x,\n y: y,\n width: width,\n height: height\n });\n }\n }, {\n key: \"renderPanorama\",\n value: function renderPanorama() {\n var _this$props6 = this.props,\n x = _this$props6.x,\n y = _this$props6.y,\n width = _this$props6.width,\n height = _this$props6.height,\n data = _this$props6.data,\n children = _this$props6.children,\n padding = _this$props6.padding;\n var chartElement = Children.only(children);\n if (!chartElement) {\n return null;\n }\n return /*#__PURE__*/React.cloneElement(chartElement, {\n x: x,\n y: y,\n width: width,\n height: height,\n margin: padding,\n compact: true,\n data: data\n });\n }\n }, {\n key: \"renderTravellerLayer\",\n value: function renderTravellerLayer(travellerX, id) {\n var _this3 = this;\n var _this$props7 = this.props,\n y = _this$props7.y,\n travellerWidth = _this$props7.travellerWidth,\n height = _this$props7.height,\n traveller = _this$props7.traveller;\n var x = Math.max(travellerX, this.props.x);\n var travellerProps = _objectSpread(_objectSpread({}, filterProps(this.props)), {}, {\n x: x,\n y: y,\n width: travellerWidth,\n height: height\n });\n return /*#__PURE__*/React.createElement(Layer, {\n tabIndex: 0,\n role: \"slider\",\n className: \"recharts-brush-traveller\",\n onMouseEnter: this.handleEnterSlideOrTraveller,\n onMouseLeave: this.handleLeaveSlideOrTraveller,\n onMouseDown: this.travellerDragStartHandlers[id],\n onTouchStart: this.travellerDragStartHandlers[id],\n onKeyDown: function onKeyDown(e) {\n if (!['ArrowLeft', 'ArrowRight'].includes(e.key)) {\n return;\n }\n e.preventDefault();\n e.stopPropagation();\n _this3.handleTravellerMoveKeyboard(e.key === 'ArrowRight' ? 1 : -1, id);\n },\n onFocus: function onFocus() {\n _this3.setState({\n isTravellerFocused: true\n });\n },\n onBlur: function onBlur() {\n _this3.setState({\n isTravellerFocused: false\n });\n },\n style: {\n cursor: 'col-resize'\n }\n }, Brush.renderTraveller(traveller, travellerProps));\n }\n }, {\n key: \"renderSlide\",\n value: function renderSlide(startX, endX) {\n var _this$props8 = this.props,\n y = _this$props8.y,\n height = _this$props8.height,\n stroke = _this$props8.stroke,\n travellerWidth = _this$props8.travellerWidth;\n var x = Math.min(startX, endX) + travellerWidth;\n var width = Math.max(Math.abs(endX - startX) - travellerWidth, 0);\n return /*#__PURE__*/React.createElement(\"rect\", {\n className: \"recharts-brush-slide\",\n onMouseEnter: this.handleEnterSlideOrTraveller,\n onMouseLeave: this.handleLeaveSlideOrTraveller,\n onMouseDown: this.handleSlideDragStart,\n onTouchStart: this.handleSlideDragStart,\n style: {\n cursor: 'move'\n },\n stroke: \"none\",\n fill: stroke,\n fillOpacity: 0.2,\n x: x,\n y: y,\n width: width,\n height: height\n });\n }\n }, {\n key: \"renderText\",\n value: function renderText() {\n var _this$props9 = this.props,\n startIndex = _this$props9.startIndex,\n endIndex = _this$props9.endIndex,\n y = _this$props9.y,\n height = _this$props9.height,\n travellerWidth = _this$props9.travellerWidth,\n stroke = _this$props9.stroke;\n var _this$state4 = this.state,\n startX = _this$state4.startX,\n endX = _this$state4.endX;\n var offset = 5;\n var attrs = {\n pointerEvents: 'none',\n fill: stroke\n };\n return /*#__PURE__*/React.createElement(Layer, {\n className: \"recharts-brush-texts\"\n }, /*#__PURE__*/React.createElement(Text, _extends({\n textAnchor: \"end\",\n verticalAnchor: \"middle\",\n x: Math.min(startX, endX) - offset,\n y: y + height / 2\n }, attrs), this.getTextOfTick(startIndex)), /*#__PURE__*/React.createElement(Text, _extends({\n textAnchor: \"start\",\n verticalAnchor: \"middle\",\n x: Math.max(startX, endX) + travellerWidth + offset,\n y: y + height / 2\n }, attrs), this.getTextOfTick(endIndex)));\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props10 = this.props,\n data = _this$props10.data,\n className = _this$props10.className,\n children = _this$props10.children,\n x = _this$props10.x,\n y = _this$props10.y,\n width = _this$props10.width,\n height = _this$props10.height,\n alwaysShowText = _this$props10.alwaysShowText;\n var _this$state5 = this.state,\n startX = _this$state5.startX,\n endX = _this$state5.endX,\n isTextActive = _this$state5.isTextActive,\n isSlideMoving = _this$state5.isSlideMoving,\n isTravellerMoving = _this$state5.isTravellerMoving,\n isTravellerFocused = _this$state5.isTravellerFocused;\n if (!data || !data.length || !isNumber(x) || !isNumber(y) || !isNumber(width) || !isNumber(height) || width <= 0 || height <= 0) {\n return null;\n }\n var layerClass = classNames('recharts-brush', className);\n var isPanoramic = React.Children.count(children) === 1;\n var style = generatePrefixStyle('userSelect', 'none');\n return /*#__PURE__*/React.createElement(Layer, {\n className: layerClass,\n onMouseLeave: this.handleLeaveWrapper,\n onTouchMove: this.handleTouchMove,\n style: style\n }, this.renderBackground(), isPanoramic && this.renderPanorama(), this.renderSlide(startX, endX), this.renderTravellerLayer(startX, 'startX'), this.renderTravellerLayer(endX, 'endX'), (isTextActive || isSlideMoving || isTravellerMoving || isTravellerFocused || alwaysShowText) && this.renderText());\n }\n }], [{\n key: \"renderDefaultTraveller\",\n value: function renderDefaultTraveller(props) {\n var x = props.x,\n y = props.y,\n width = props.width,\n height = props.height,\n stroke = props.stroke;\n var lineY = Math.floor(y + height / 2) - 1;\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"rect\", {\n x: x,\n y: y,\n width: width,\n height: height,\n fill: stroke,\n stroke: \"none\"\n }), /*#__PURE__*/React.createElement(\"line\", {\n x1: x + 1,\n y1: lineY,\n x2: x + width - 1,\n y2: lineY,\n fill: \"none\",\n stroke: \"#fff\"\n }), /*#__PURE__*/React.createElement(\"line\", {\n x1: x + 1,\n y1: lineY + 2,\n x2: x + width - 1,\n y2: lineY + 2,\n fill: \"none\",\n stroke: \"#fff\"\n }));\n }\n }, {\n key: \"renderTraveller\",\n value: function renderTraveller(option, props) {\n var rectangle;\n if ( /*#__PURE__*/React.isValidElement(option)) {\n rectangle = /*#__PURE__*/React.cloneElement(option, props);\n } else if (_isFunction(option)) {\n rectangle = option(props);\n } else {\n rectangle = Brush.renderDefaultTraveller(props);\n }\n return rectangle;\n }\n }, {\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(nextProps, prevState) {\n var data = nextProps.data,\n width = nextProps.width,\n x = nextProps.x,\n travellerWidth = nextProps.travellerWidth,\n updateId = nextProps.updateId,\n startIndex = nextProps.startIndex,\n endIndex = nextProps.endIndex;\n if (data !== prevState.prevData || updateId !== prevState.prevUpdateId) {\n return _objectSpread({\n prevData: data,\n prevTravellerWidth: travellerWidth,\n prevUpdateId: updateId,\n prevX: x,\n prevWidth: width\n }, data && data.length ? createScale({\n data: data,\n width: width,\n x: x,\n travellerWidth: travellerWidth,\n startIndex: startIndex,\n endIndex: endIndex\n }) : {\n scale: null,\n scaleValues: null\n });\n }\n if (prevState.scale && (width !== prevState.prevWidth || x !== prevState.prevX || travellerWidth !== prevState.prevTravellerWidth)) {\n prevState.scale.range([x, x + width - travellerWidth]);\n var scaleValues = prevState.scale.domain().map(function (entry) {\n return prevState.scale(entry);\n });\n return {\n prevData: data,\n prevTravellerWidth: travellerWidth,\n prevUpdateId: updateId,\n prevX: x,\n prevWidth: width,\n startX: prevState.scale(nextProps.startIndex),\n endX: prevState.scale(nextProps.endIndex),\n scaleValues: scaleValues\n };\n }\n return null;\n }\n }, {\n key: \"getIndexInRange\",\n value: function getIndexInRange(range, x) {\n var len = range.length;\n var start = 0;\n var end = len - 1;\n while (end - start > 1) {\n var middle = Math.floor((start + end) / 2);\n if (range[middle] > x) {\n end = middle;\n } else {\n start = middle;\n }\n }\n return x >= range[end] ? end : start;\n }\n }]);\n return Brush;\n}(PureComponent);\n_defineProperty(Brush, \"displayName\", 'Brush');\n_defineProperty(Brush, \"defaultProps\", {\n height: 40,\n travellerWidth: 5,\n gap: 1,\n fill: '#fff',\n stroke: '#666',\n padding: {\n top: 1,\n right: 1,\n bottom: 1,\n left: 1\n },\n leaveTimeOut: 1000,\n alwaysShowText: false\n});","import _isFunction from \"lodash/isFunction\";\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction _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); }\nfunction 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; }\nfunction _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; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\n/**\n * @fileOverview Reference Dot\n */\nimport React from 'react';\nimport classNames from 'classnames';\nimport { Layer } from '../container/Layer';\nimport { Dot } from '../shape/Dot';\nimport { Label } from '../component/Label';\nimport { isNumOrStr } from '../util/DataUtils';\nimport { ifOverflowMatches } from '../util/IfOverflowMatches';\nimport { createLabeledScales } from '../util/CartesianUtils';\nimport { warn } from '../util/LogUtils';\nimport { filterProps } from '../util/ReactUtils';\nvar getCoordinate = function getCoordinate(props) {\n var x = props.x,\n y = props.y,\n xAxis = props.xAxis,\n yAxis = props.yAxis;\n var scales = createLabeledScales({\n x: xAxis.scale,\n y: yAxis.scale\n });\n var result = scales.apply({\n x: x,\n y: y\n }, {\n bandAware: true\n });\n if (ifOverflowMatches(props, 'discard') && !scales.isInRange(result)) {\n return null;\n }\n return result;\n};\nexport function ReferenceDot(props) {\n var x = props.x,\n y = props.y,\n r = props.r,\n alwaysShow = props.alwaysShow,\n clipPathId = props.clipPathId;\n var isX = isNumOrStr(x);\n var isY = isNumOrStr(y);\n warn(alwaysShow === undefined, 'The alwaysShow prop is deprecated. Please use ifOverflow=\"extendDomain\" instead.');\n if (!isX || !isY) {\n return null;\n }\n var coordinate = getCoordinate(props);\n if (!coordinate) {\n return null;\n }\n var cx = coordinate.x,\n cy = coordinate.y;\n var shape = props.shape,\n className = props.className;\n var clipPath = ifOverflowMatches(props, 'hidden') ? \"url(#\".concat(clipPathId, \")\") : undefined;\n var dotProps = _objectSpread(_objectSpread({\n clipPath: clipPath\n }, filterProps(props, true)), {}, {\n cx: cx,\n cy: cy\n });\n return /*#__PURE__*/React.createElement(Layer, {\n className: classNames('recharts-reference-dot', className)\n }, ReferenceDot.renderDot(shape, dotProps), Label.renderCallByParent(props, {\n x: cx - r,\n y: cy - r,\n width: 2 * r,\n height: 2 * r\n }));\n}\nReferenceDot.displayName = 'ReferenceDot';\nReferenceDot.defaultProps = {\n isFront: false,\n ifOverflow: 'discard',\n xAxisId: 0,\n yAxisId: 0,\n r: 10,\n fill: '#fff',\n stroke: '#ccc',\n fillOpacity: 1,\n strokeWidth: 1\n};\nReferenceDot.renderDot = function (option, props) {\n var dot;\n if ( /*#__PURE__*/React.isValidElement(option)) {\n dot = /*#__PURE__*/React.cloneElement(option, props);\n } else if (_isFunction(option)) {\n dot = option(props);\n } else {\n dot = /*#__PURE__*/React.createElement(Dot, _extends({}, props, {\n cx: props.cx,\n cy: props.cy,\n className: \"recharts-reference-dot-dot\"\n }));\n }\n return dot;\n};","import _isFunction from \"lodash/isFunction\";\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction _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); }\nfunction 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; }\nfunction _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; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\n/**\n * @fileOverview Reference Line\n */\nimport React from 'react';\nimport classNames from 'classnames';\nimport { Layer } from '../container/Layer';\nimport { Label } from '../component/Label';\nimport { createLabeledScales, rectWithPoints } from '../util/CartesianUtils';\nimport { ifOverflowMatches } from '../util/IfOverflowMatches';\nimport { isNumOrStr } from '../util/DataUtils';\nimport { warn } from '../util/LogUtils';\nimport { Rectangle } from '../shape/Rectangle';\nimport { filterProps } from '../util/ReactUtils';\nvar getRect = function getRect(hasX1, hasX2, hasY1, hasY2, props) {\n var xValue1 = props.x1,\n xValue2 = props.x2,\n yValue1 = props.y1,\n yValue2 = props.y2,\n xAxis = props.xAxis,\n yAxis = props.yAxis;\n if (!xAxis || !yAxis) return null;\n var scales = createLabeledScales({\n x: xAxis.scale,\n y: yAxis.scale\n });\n var p1 = {\n x: hasX1 ? scales.x.apply(xValue1, {\n position: 'start'\n }) : scales.x.rangeMin,\n y: hasY1 ? scales.y.apply(yValue1, {\n position: 'start'\n }) : scales.y.rangeMin\n };\n var p2 = {\n x: hasX2 ? scales.x.apply(xValue2, {\n position: 'end'\n }) : scales.x.rangeMax,\n y: hasY2 ? scales.y.apply(yValue2, {\n position: 'end'\n }) : scales.y.rangeMax\n };\n if (ifOverflowMatches(props, 'discard') && (!scales.isInRange(p1) || !scales.isInRange(p2))) {\n return null;\n }\n return rectWithPoints(p1, p2);\n};\nexport function ReferenceArea(props) {\n var x1 = props.x1,\n x2 = props.x2,\n y1 = props.y1,\n y2 = props.y2,\n className = props.className,\n alwaysShow = props.alwaysShow,\n clipPathId = props.clipPathId;\n warn(alwaysShow === undefined, 'The alwaysShow prop is deprecated. Please use ifOverflow=\"extendDomain\" instead.');\n var hasX1 = isNumOrStr(x1);\n var hasX2 = isNumOrStr(x2);\n var hasY1 = isNumOrStr(y1);\n var hasY2 = isNumOrStr(y2);\n var shape = props.shape;\n if (!hasX1 && !hasX2 && !hasY1 && !hasY2 && !shape) {\n return null;\n }\n var rect = getRect(hasX1, hasX2, hasY1, hasY2, props);\n if (!rect && !shape) {\n return null;\n }\n var clipPath = ifOverflowMatches(props, 'hidden') ? \"url(#\".concat(clipPathId, \")\") : undefined;\n return /*#__PURE__*/React.createElement(Layer, {\n className: classNames('recharts-reference-area', className)\n }, ReferenceArea.renderRect(shape, _objectSpread(_objectSpread({\n clipPath: clipPath\n }, filterProps(props, true)), rect)), Label.renderCallByParent(props, rect));\n}\nReferenceArea.displayName = 'ReferenceArea';\nReferenceArea.defaultProps = {\n isFront: false,\n ifOverflow: 'discard',\n xAxisId: 0,\n yAxisId: 0,\n r: 10,\n fill: '#ccc',\n fillOpacity: 0.5,\n stroke: 'none',\n strokeWidth: 1\n};\nReferenceArea.renderRect = function (option, props) {\n var rect;\n if ( /*#__PURE__*/React.isValidElement(option)) {\n rect = /*#__PURE__*/React.cloneElement(option, props);\n } else if (_isFunction(option)) {\n rect = option(props);\n } else {\n rect = /*#__PURE__*/React.createElement(Rectangle, _extends({}, props, {\n className: \"recharts-reference-area-rect\"\n }));\n }\n return rect;\n};","function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nimport { ReferenceDot } from '../cartesian/ReferenceDot';\nimport { ReferenceLine } from '../cartesian/ReferenceLine';\nimport { ReferenceArea } from '../cartesian/ReferenceArea';\nimport { ifOverflowMatches } from './IfOverflowMatches';\nimport { findAllByType } from './ReactUtils';\nimport { isNumber } from './DataUtils';\nexport var detectReferenceElementsDomain = function detectReferenceElementsDomain(children, domain, axisId, axisType, specifiedTicks) {\n var lines = findAllByType(children, ReferenceLine);\n var dots = findAllByType(children, ReferenceDot);\n var elements = [].concat(_toConsumableArray(lines), _toConsumableArray(dots));\n var areas = findAllByType(children, ReferenceArea);\n var idKey = \"\".concat(axisType, \"Id\");\n var valueKey = axisType[0];\n var finalDomain = domain;\n if (elements.length) {\n finalDomain = elements.reduce(function (result, el) {\n if (el.props[idKey] === axisId && ifOverflowMatches(el.props, 'extendDomain') && isNumber(el.props[valueKey])) {\n var value = el.props[valueKey];\n return [Math.min(result[0], value), Math.max(result[1], value)];\n }\n return result;\n }, finalDomain);\n }\n if (areas.length) {\n var key1 = \"\".concat(valueKey, \"1\");\n var key2 = \"\".concat(valueKey, \"2\");\n finalDomain = areas.reduce(function (result, el) {\n if (el.props[idKey] === axisId && ifOverflowMatches(el.props, 'extendDomain') && isNumber(el.props[key1]) && isNumber(el.props[key2])) {\n var value1 = el.props[key1];\n var value2 = el.props[key2];\n return [Math.min(result[0], value1, value2), Math.max(result[1], value1, value2)];\n }\n return result;\n }, finalDomain);\n }\n if (specifiedTicks && specifiedTicks.length) {\n finalDomain = specifiedTicks.reduce(function (result, tick) {\n if (isNumber(tick)) {\n return [Math.min(result[0], tick), Math.max(result[1], tick)];\n }\n return result;\n }, finalDomain);\n }\n return finalDomain;\n};","import EventEmitter from 'eventemitter3';\nvar eventCenter = new EventEmitter();\nif (eventCenter.setMaxListeners) {\n eventCenter.setMaxListeners(10);\n}\nexport { eventCenter };\nexport var SYNC_EVENT = 'recharts.syncMouseEvents';","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _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, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nexport var AccessibilityManager = /*#__PURE__*/function () {\n function AccessibilityManager() {\n _classCallCheck(this, AccessibilityManager);\n _defineProperty(this, \"activeIndex\", 0);\n _defineProperty(this, \"coordinateList\", []);\n _defineProperty(this, \"layout\", 'horizontal');\n }\n _createClass(AccessibilityManager, [{\n key: \"setDetails\",\n value: function setDetails(_ref) {\n var _ref$coordinateList = _ref.coordinateList,\n coordinateList = _ref$coordinateList === void 0 ? [] : _ref$coordinateList,\n _ref$container = _ref.container,\n container = _ref$container === void 0 ? null : _ref$container,\n _ref$layout = _ref.layout,\n layout = _ref$layout === void 0 ? null : _ref$layout,\n _ref$offset = _ref.offset,\n offset = _ref$offset === void 0 ? null : _ref$offset,\n _ref$mouseHandlerCall = _ref.mouseHandlerCallback,\n mouseHandlerCallback = _ref$mouseHandlerCall === void 0 ? null : _ref$mouseHandlerCall;\n this.coordinateList = coordinateList !== null && coordinateList !== void 0 ? coordinateList : this.coordinateList;\n this.container = container !== null && container !== void 0 ? container : this.container;\n this.layout = layout !== null && layout !== void 0 ? layout : this.layout;\n this.offset = offset !== null && offset !== void 0 ? offset : this.offset;\n this.mouseHandlerCallback = mouseHandlerCallback !== null && mouseHandlerCallback !== void 0 ? mouseHandlerCallback : this.mouseHandlerCallback;\n\n // Keep activeIndex in the bounds between 0 and the last coordinate index\n this.activeIndex = Math.min(Math.max(this.activeIndex, 0), this.coordinateList.length - 1);\n }\n }, {\n key: \"focus\",\n value: function focus() {\n this.spoofMouse();\n }\n }, {\n key: \"keyboardEvent\",\n value: function keyboardEvent(e) {\n // The AccessibilityManager relies on the Tooltip component. When tooltips suddenly stop existing,\n // it can cause errors. We use this function to check. We don't want arrow keys to be processed\n // if there are no tooltips, since that will cause unexpected behavior of users.\n if (this.coordinateList.length === 0) {\n return;\n }\n switch (e.key) {\n case 'ArrowRight':\n {\n if (this.layout !== 'horizontal') {\n return;\n }\n this.activeIndex = Math.min(this.activeIndex + 1, this.coordinateList.length - 1);\n this.spoofMouse();\n break;\n }\n case 'ArrowLeft':\n {\n if (this.layout !== 'horizontal') {\n return;\n }\n this.activeIndex = Math.max(this.activeIndex - 1, 0);\n this.spoofMouse();\n break;\n }\n default:\n {\n break;\n }\n }\n }\n }, {\n key: \"spoofMouse\",\n value: function spoofMouse() {\n if (this.layout !== 'horizontal') {\n return;\n }\n\n // This can happen when the tooltips suddenly stop existing as children of the component\n // That update doesn't otherwise fire events, so we have to double check here.\n if (this.coordinateList.length === 0) {\n return;\n }\n var _this$container$getBo = this.container.getBoundingClientRect(),\n x = _this$container$getBo.x,\n y = _this$container$getBo.y,\n height = _this$container$getBo.height;\n var coordinate = this.coordinateList[this.activeIndex].coordinate;\n var pageX = x + coordinate;\n var pageY = y + this.offset.top + height / 2;\n this.mouseHandlerCallback({\n pageX: pageX,\n pageY: pageY\n });\n }\n }]);\n return AccessibilityManager;\n}();","import _every from \"lodash/every\";\nimport _find from \"lodash/find\";\nimport _isFunction from \"lodash/isFunction\";\nimport _throttle from \"lodash/throttle\";\nimport _sortBy from \"lodash/sortBy\";\nimport _get from \"lodash/get\";\nimport _range from \"lodash/range\";\nimport _isNil from \"lodash/isNil\";\nimport _isBoolean from \"lodash/isBoolean\";\nimport _isArray from \"lodash/isArray\";\nvar _excluded = [\"item\"],\n _excluded2 = [\"children\", \"className\", \"width\", \"height\", \"style\", \"compact\", \"title\", \"desc\"];\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : \"undefined\" != typeof Symbol && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i[\"return\"] && (_r = _i[\"return\"](), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nfunction _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); }\nfunction _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; }\nfunction _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; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _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, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _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); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _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); }; }\nfunction _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); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _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; } }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction 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; }\nfunction _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; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nimport React, { Component, cloneElement, isValidElement, createElement } from 'react';\nimport classNames from 'classnames';\nimport { getTicks } from '../cartesian/getTicks';\nimport { Surface } from '../container/Surface';\nimport { Layer } from '../container/Layer';\nimport { Tooltip } from '../component/Tooltip';\nimport { Legend } from '../component/Legend';\nimport { Curve } from '../shape/Curve';\nimport { Cross } from '../shape/Cross';\nimport { Sector } from '../shape/Sector';\nimport { Dot } from '../shape/Dot';\nimport { isInRectangle, Rectangle } from '../shape/Rectangle';\nimport { findAllByType, findChildByType, getDisplayName, parseChildIndex, validateWidthHeight, isChildrenEqual, renderByOrder, getReactEventByType, filterProps } from '../util/ReactUtils';\nimport { CartesianAxis } from '../cartesian/CartesianAxis';\nimport { Brush } from '../cartesian/Brush';\nimport { getOffset, calculateChartCoordinate } from '../util/DOMUtils';\nimport { getAnyElementOfObject, hasDuplicate, uniqueId, isNumber, findEntryInArray } from '../util/DataUtils';\nimport { calculateActiveTickIndex, getMainColorOfGraphicItem, getBarSizeList, getBarPosition, appendOffsetOfLegend, getLegendProps, combineEventHandlers, getTicksOfAxis, getCoordinatesOfGrid, getStackedDataOfItem, parseErrorBarsOfAxis, getBandSizeOfAxis, getStackGroupsByAxisId, isCategoricalAxis, getDomainOfItemsWithSameAxis, getDomainOfStackGroups, getDomainOfDataByKey, parseSpecifiedDomain, parseDomainOfCategoryAxis, getTooltipItem } from '../util/ChartUtils';\nimport { detectReferenceElementsDomain } from '../util/DetectReferenceElementsDomain';\nimport { inRangeOfSector, polarToCartesian } from '../util/PolarUtils';\nimport { shallowEqual } from '../util/ShallowEqual';\nimport { eventCenter, SYNC_EVENT } from '../util/Events';\nimport { adaptEventHandlers } from '../util/types';\nimport { AccessibilityManager } from './AccessibilityManager';\nvar ORIENT_MAP = {\n xAxis: ['bottom', 'top'],\n yAxis: ['left', 'right']\n};\nvar originCoordinate = {\n x: 0,\n y: 0\n};\n\n// use legacy isFinite only if there is a problem (aka IE)\n// eslint-disable-next-line no-restricted-globals\nvar isFinit = Number.isFinite ? Number.isFinite : isFinite;\nvar defer =\n// eslint-disable-next-line no-nested-ternary\ntypeof requestAnimationFrame === 'function' ? requestAnimationFrame : typeof setImmediate === 'function' ? setImmediate : setTimeout;\nvar deferClear =\n// eslint-disable-next-line no-nested-ternary\ntypeof cancelAnimationFrame === 'function' ? cancelAnimationFrame : typeof clearImmediate === 'function' ? clearImmediate : clearTimeout;\nvar calculateTooltipPos = function calculateTooltipPos(rangeObj, layout) {\n if (layout === 'horizontal') {\n return rangeObj.x;\n }\n if (layout === 'vertical') {\n return rangeObj.y;\n }\n if (layout === 'centric') {\n return rangeObj.angle;\n }\n return rangeObj.radius;\n};\nvar getActiveCoordinate = function getActiveCoordinate(layout, tooltipTicks, activeIndex, rangeObj) {\n var entry = tooltipTicks.find(function (tick) {\n return tick && tick.index === activeIndex;\n });\n if (entry) {\n if (layout === 'horizontal') {\n return {\n x: entry.coordinate,\n y: rangeObj.y\n };\n }\n if (layout === 'vertical') {\n return {\n x: rangeObj.x,\n y: entry.coordinate\n };\n }\n if (layout === 'centric') {\n var _angle = entry.coordinate;\n var _radius = rangeObj.radius;\n return _objectSpread(_objectSpread(_objectSpread({}, rangeObj), polarToCartesian(rangeObj.cx, rangeObj.cy, _radius, _angle)), {}, {\n angle: _angle,\n radius: _radius\n });\n }\n var radius = entry.coordinate;\n var angle = rangeObj.angle;\n return _objectSpread(_objectSpread(_objectSpread({}, rangeObj), polarToCartesian(rangeObj.cx, rangeObj.cy, radius, angle)), {}, {\n angle: angle,\n radius: radius\n });\n }\n return originCoordinate;\n};\nvar getDisplayedData = function getDisplayedData(data, _ref, item) {\n var graphicalItems = _ref.graphicalItems,\n dataStartIndex = _ref.dataStartIndex,\n dataEndIndex = _ref.dataEndIndex;\n var itemsData = (graphicalItems || []).reduce(function (result, child) {\n var itemData = child.props.data;\n if (itemData && itemData.length) {\n return [].concat(_toConsumableArray(result), _toConsumableArray(itemData));\n }\n return result;\n }, []);\n if (itemsData && itemsData.length > 0) {\n return itemsData;\n }\n if (item && item.props && item.props.data && item.props.data.length > 0) {\n return item.props.data;\n }\n if (data && data.length && isNumber(dataStartIndex) && isNumber(dataEndIndex)) {\n return data.slice(dataStartIndex, dataEndIndex + 1);\n }\n return [];\n};\n\n/**\n * Takes a domain and user props to determine whether he provided the domain via props or if we need to calculate it.\n * @param {AxisDomain} domain The potential domain from props\n * @param {Boolean} allowDataOverflow from props\n * @param {String} axisType from props\n * @returns {Boolean} `true` if domain is specified by user\n */\nfunction isDomainSpecifiedByUser(domain, allowDataOverflow, axisType) {\n if (axisType === 'number' && allowDataOverflow === true && Array.isArray(domain)) {\n var domainStart = domain === null || domain === void 0 ? void 0 : domain[0];\n var domainEnd = domain === null || domain === void 0 ? void 0 : domain[1];\n\n /*\n * The `isNumber` check is needed because the user could also provide strings like \"dataMin\" via the domain props.\n * In such case, we have to compute the domain from the data.\n */\n if (!!domainStart && !!domainEnd && isNumber(domainStart) && isNumber(domainEnd)) {\n return true;\n }\n }\n return false;\n}\nfunction getDefaultDomainByAxisType(axisType) {\n return axisType === 'number' ? [0, 'auto'] : undefined;\n}\n\n/**\n * Get the content to be displayed in the tooltip\n * @param {Object} state Current state\n * @param {Array} chartData The data defined in chart\n * @param {Number} activeIndex Active index of data\n * @param {String} activeLabel Active label of data\n * @return {Array} The content of tooltip\n */\nvar getTooltipContent = function getTooltipContent(state, chartData, activeIndex, activeLabel) {\n var graphicalItems = state.graphicalItems,\n tooltipAxis = state.tooltipAxis;\n var displayedData = getDisplayedData(chartData, state);\n if (activeIndex < 0 || !graphicalItems || !graphicalItems.length || activeIndex >= displayedData.length) {\n return null;\n }\n // get data by activeIndex when the axis don't allow duplicated category\n return graphicalItems.reduce(function (result, child) {\n var hide = child.props.hide;\n if (hide) {\n return result;\n }\n var data = child.props.data;\n var payload;\n if (tooltipAxis.dataKey && !tooltipAxis.allowDuplicatedCategory) {\n // graphic child has data props\n var entries = data === undefined ? displayedData : data;\n payload = findEntryInArray(entries, tooltipAxis.dataKey, activeLabel);\n } else {\n payload = data && data[activeIndex] || displayedData[activeIndex];\n }\n if (!payload) {\n return result;\n }\n return [].concat(_toConsumableArray(result), [getTooltipItem(child, payload)]);\n }, []);\n};\n\n/**\n * Returns tooltip data based on a mouse position (as a parameter or in state)\n * @param {Object} state current state\n * @param {Array} chartData the data defined in chart\n * @param {String} layout The layout type of chart\n * @param {Object} rangeObj { x, y } coordinates\n * @return {Object} Tooltip data data\n */\nvar getTooltipData = function getTooltipData(state, chartData, layout, rangeObj) {\n var rangeData = rangeObj || {\n x: state.chartX,\n y: state.chartY\n };\n var pos = calculateTooltipPos(rangeData, layout);\n var ticks = state.orderedTooltipTicks,\n axis = state.tooltipAxis,\n tooltipTicks = state.tooltipTicks;\n var activeIndex = calculateActiveTickIndex(pos, ticks, tooltipTicks, axis);\n if (activeIndex >= 0 && tooltipTicks) {\n var activeLabel = tooltipTicks[activeIndex] && tooltipTicks[activeIndex].value;\n var activePayload = getTooltipContent(state, chartData, activeIndex, activeLabel);\n var activeCoordinate = getActiveCoordinate(layout, ticks, activeIndex, rangeData);\n return {\n activeTooltipIndex: activeIndex,\n activeLabel: activeLabel,\n activePayload: activePayload,\n activeCoordinate: activeCoordinate\n };\n }\n return null;\n};\n\n/**\n * Get the configuration of axis by the options of axis instance\n * @param {Object} props Latest props\n * @param {Array} axes The instance of axes\n * @param {Array} graphicalItems The instances of item\n * @param {String} axisType The type of axis, xAxis - x-axis, yAxis - y-axis\n * @param {String} axisIdKey The unique id of an axis\n * @param {Object} stackGroups The items grouped by axisId and stackId\n * @param {Number} dataStartIndex The start index of the data series when a brush is applied\n * @param {Number} dataEndIndex The end index of the data series when a brush is applied\n * @return {Object} Configuration\n */\nexport var getAxisMapByAxes = function getAxisMapByAxes(props, _ref2) {\n var axes = _ref2.axes,\n graphicalItems = _ref2.graphicalItems,\n axisType = _ref2.axisType,\n axisIdKey = _ref2.axisIdKey,\n stackGroups = _ref2.stackGroups,\n dataStartIndex = _ref2.dataStartIndex,\n dataEndIndex = _ref2.dataEndIndex;\n var layout = props.layout,\n children = props.children,\n stackOffset = props.stackOffset;\n var isCategorical = isCategoricalAxis(layout, axisType);\n\n // Eliminate duplicated axes\n var axisMap = axes.reduce(function (result, child) {\n var _child$props$domain2;\n var _child$props = child.props,\n type = _child$props.type,\n dataKey = _child$props.dataKey,\n allowDataOverflow = _child$props.allowDataOverflow,\n allowDuplicatedCategory = _child$props.allowDuplicatedCategory,\n scale = _child$props.scale,\n ticks = _child$props.ticks,\n includeHidden = _child$props.includeHidden;\n var axisId = child.props[axisIdKey];\n if (result[axisId]) {\n return result;\n }\n var displayedData = getDisplayedData(props.data, {\n graphicalItems: graphicalItems.filter(function (item) {\n return item.props[axisIdKey] === axisId;\n }),\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex\n });\n var len = displayedData.length;\n var domain, duplicateDomain, categoricalDomain;\n\n /*\n * This is a hack to short-circuit the domain creation here to enhance performance.\n * Usually, the data is used to determine the domain, but when the user specifies\n * a domain upfront (via props), there is no need to calculate the domain start and end,\n * which is very expensive for a larger amount of data.\n * The only thing that would prohibit short-circuiting is when the user doesn't allow data overflow,\n * because the axis is supposed to ignore the specified domain that way.\n */\n if (isDomainSpecifiedByUser(child.props.domain, allowDataOverflow, type)) {\n domain = parseSpecifiedDomain(child.props.domain, null, allowDataOverflow);\n /* The chart can be categorical and have the domain specified in numbers\n * we still need to calculate the categorical domain\n * TODO: refactor this more\n */\n if (isCategorical && (type === 'number' || scale !== 'auto')) {\n categoricalDomain = getDomainOfDataByKey(displayedData, dataKey, 'category');\n }\n }\n\n // if the domain is defaulted we need this for `originalDomain` as well\n var defaultDomain = getDefaultDomainByAxisType(type);\n\n // we didn't create the domain from user's props above, so we need to calculate it\n if (!domain || domain.length === 0) {\n var _child$props$domain;\n var childDomain = (_child$props$domain = child.props.domain) !== null && _child$props$domain !== void 0 ? _child$props$domain : defaultDomain;\n if (dataKey) {\n // has dataKey in \n domain = getDomainOfDataByKey(displayedData, dataKey, type);\n if (type === 'category' && isCategorical) {\n // the field type is category data and this axis is categorical axis\n var duplicate = hasDuplicate(domain);\n if (allowDuplicatedCategory && duplicate) {\n duplicateDomain = domain;\n // When category axis has duplicated text, serial numbers are used to generate scale\n domain = _range(0, len);\n } else if (!allowDuplicatedCategory) {\n // remove duplicated category\n domain = parseDomainOfCategoryAxis(childDomain, domain, child).reduce(function (finalDomain, entry) {\n return finalDomain.indexOf(entry) >= 0 ? finalDomain : [].concat(_toConsumableArray(finalDomain), [entry]);\n }, []);\n }\n } else if (type === 'category') {\n // the field type is category data and this axis is numerical axis\n if (!allowDuplicatedCategory) {\n domain = parseDomainOfCategoryAxis(childDomain, domain, child).reduce(function (finalDomain, entry) {\n return finalDomain.indexOf(entry) >= 0 || entry === '' || _isNil(entry) ? finalDomain : [].concat(_toConsumableArray(finalDomain), [entry]);\n }, []);\n } else {\n // eliminate undefined or null or empty string\n domain = domain.filter(function (entry) {\n return entry !== '' && !_isNil(entry);\n });\n }\n } else if (type === 'number') {\n // the field type is numerical\n var errorBarsDomain = parseErrorBarsOfAxis(displayedData, graphicalItems.filter(function (item) {\n return item.props[axisIdKey] === axisId && (includeHidden || !item.props.hide);\n }), dataKey, axisType, layout);\n if (errorBarsDomain) {\n domain = errorBarsDomain;\n }\n }\n if (isCategorical && (type === 'number' || scale !== 'auto')) {\n categoricalDomain = getDomainOfDataByKey(displayedData, dataKey, 'category');\n }\n } else if (isCategorical) {\n // the axis is a categorical axis\n domain = _range(0, len);\n } else if (stackGroups && stackGroups[axisId] && stackGroups[axisId].hasStack && type === 'number') {\n // when stackOffset is 'expand', the domain may be calculated as [0, 1.000000000002]\n domain = stackOffset === 'expand' ? [0, 1] : getDomainOfStackGroups(stackGroups[axisId].stackGroups, dataStartIndex, dataEndIndex);\n } else {\n domain = getDomainOfItemsWithSameAxis(displayedData, graphicalItems.filter(function (item) {\n return item.props[axisIdKey] === axisId && (includeHidden || !item.props.hide);\n }), type, layout, true);\n }\n if (type === 'number') {\n // To detect wether there is any reference lines whose props alwaysShow is true\n domain = detectReferenceElementsDomain(children, domain, axisId, axisType, ticks);\n if (childDomain) {\n domain = parseSpecifiedDomain(childDomain, domain, allowDataOverflow);\n }\n } else if (type === 'category' && childDomain) {\n var axisDomain = childDomain;\n var isDomainValid = domain.every(function (entry) {\n return axisDomain.indexOf(entry) >= 0;\n });\n if (isDomainValid) {\n domain = axisDomain;\n }\n }\n }\n return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, axisId, _objectSpread(_objectSpread({}, child.props), {}, {\n axisType: axisType,\n domain: domain,\n categoricalDomain: categoricalDomain,\n duplicateDomain: duplicateDomain,\n originalDomain: (_child$props$domain2 = child.props.domain) !== null && _child$props$domain2 !== void 0 ? _child$props$domain2 : defaultDomain,\n isCategorical: isCategorical,\n layout: layout\n })));\n }, {});\n return axisMap;\n};\n\n/**\n * Get the configuration of axis by the options of item,\n * this kind of axis does not display in chart\n * @param {Object} props Latest props\n * @param {Array} graphicalItems The instances of item\n * @param {ReactElement} Axis Axis Component\n * @param {String} axisType The type of axis, xAxis - x-axis, yAxis - y-axis\n * @param {String} axisIdKey The unique id of an axis\n * @param {Object} stackGroups The items grouped by axisId and stackId\n * @param {Number} dataStartIndex The start index of the data series when a brush is applied\n * @param {Number} dataEndIndex The end index of the data series when a brush is applied\n * @return {Object} Configuration\n */\nvar getAxisMapByItems = function getAxisMapByItems(props, _ref3) {\n var graphicalItems = _ref3.graphicalItems,\n Axis = _ref3.Axis,\n axisType = _ref3.axisType,\n axisIdKey = _ref3.axisIdKey,\n stackGroups = _ref3.stackGroups,\n dataStartIndex = _ref3.dataStartIndex,\n dataEndIndex = _ref3.dataEndIndex;\n var layout = props.layout,\n children = props.children;\n var displayedData = getDisplayedData(props.data, {\n graphicalItems: graphicalItems,\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex\n });\n var len = displayedData.length;\n var isCategorical = isCategoricalAxis(layout, axisType);\n var index = -1;\n\n // The default type of x-axis is category axis,\n // The default contents of x-axis is the serial numbers of data\n // The default type of y-axis is number axis\n // The default contents of y-axis is the domain of data\n var axisMap = graphicalItems.reduce(function (result, child) {\n var axisId = child.props[axisIdKey];\n var originalDomain = getDefaultDomainByAxisType('number');\n if (!result[axisId]) {\n index++;\n var domain;\n if (isCategorical) {\n domain = _range(0, len);\n } else if (stackGroups && stackGroups[axisId] && stackGroups[axisId].hasStack) {\n domain = getDomainOfStackGroups(stackGroups[axisId].stackGroups, dataStartIndex, dataEndIndex);\n domain = detectReferenceElementsDomain(children, domain, axisId, axisType);\n } else {\n domain = parseSpecifiedDomain(originalDomain, getDomainOfItemsWithSameAxis(displayedData, graphicalItems.filter(function (item) {\n return item.props[axisIdKey] === axisId && !item.props.hide;\n }), 'number', layout), Axis.defaultProps.allowDataOverflow);\n domain = detectReferenceElementsDomain(children, domain, axisId, axisType);\n }\n return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, axisId, _objectSpread(_objectSpread({\n axisType: axisType\n }, Axis.defaultProps), {}, {\n hide: true,\n orientation: _get(ORIENT_MAP, \"\".concat(axisType, \".\").concat(index % 2), null),\n domain: domain,\n originalDomain: originalDomain,\n isCategorical: isCategorical,\n layout: layout\n // specify scale when no Axis\n // scale: isCategorical ? 'band' : 'linear',\n })));\n }\n\n return result;\n }, {});\n return axisMap;\n};\n\n/**\n * Get the configuration of all x-axis or y-axis\n * @param {Object} props Latest props\n * @param {String} axisType The type of axis\n * @param {Array} graphicalItems The instances of item\n * @param {Object} stackGroups The items grouped by axisId and stackId\n * @param {Number} dataStartIndex The start index of the data series when a brush is applied\n * @param {Number} dataEndIndex The end index of the data series when a brush is applied\n * @return {Object} Configuration\n */\nvar getAxisMap = function getAxisMap(props, _ref4) {\n var _ref4$axisType = _ref4.axisType,\n axisType = _ref4$axisType === void 0 ? 'xAxis' : _ref4$axisType,\n AxisComp = _ref4.AxisComp,\n graphicalItems = _ref4.graphicalItems,\n stackGroups = _ref4.stackGroups,\n dataStartIndex = _ref4.dataStartIndex,\n dataEndIndex = _ref4.dataEndIndex;\n var children = props.children;\n var axisIdKey = \"\".concat(axisType, \"Id\");\n // Get all the instance of Axis\n var axes = findAllByType(children, AxisComp);\n var axisMap = {};\n if (axes && axes.length) {\n axisMap = getAxisMapByAxes(props, {\n axes: axes,\n graphicalItems: graphicalItems,\n axisType: axisType,\n axisIdKey: axisIdKey,\n stackGroups: stackGroups,\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex\n });\n } else if (graphicalItems && graphicalItems.length) {\n axisMap = getAxisMapByItems(props, {\n Axis: AxisComp,\n graphicalItems: graphicalItems,\n axisType: axisType,\n axisIdKey: axisIdKey,\n stackGroups: stackGroups,\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex\n });\n }\n return axisMap;\n};\nvar tooltipTicksGenerator = function tooltipTicksGenerator(axisMap) {\n var axis = getAnyElementOfObject(axisMap);\n var tooltipTicks = getTicksOfAxis(axis, false, true);\n return {\n tooltipTicks: tooltipTicks,\n orderedTooltipTicks: _sortBy(tooltipTicks, function (o) {\n return o.coordinate;\n }),\n tooltipAxis: axis,\n tooltipAxisBandSize: getBandSizeOfAxis(axis, tooltipTicks)\n };\n};\n\n/**\n * Returns default, reset state for the categorical chart.\n * @param {Object} props Props object to use when creating the default state\n * @return {Object} Whole new state\n */\nvar createDefaultState = function createDefaultState(props) {\n var _brushItem$props, _brushItem$props2;\n var children = props.children,\n defaultShowTooltip = props.defaultShowTooltip;\n var brushItem = findChildByType(children, Brush);\n var startIndex = brushItem && brushItem.props && brushItem.props.startIndex || 0;\n var endIndex = (brushItem === null || brushItem === void 0 ? void 0 : (_brushItem$props = brushItem.props) === null || _brushItem$props === void 0 ? void 0 : _brushItem$props.endIndex) !== undefined ? brushItem === null || brushItem === void 0 ? void 0 : (_brushItem$props2 = brushItem.props) === null || _brushItem$props2 === void 0 ? void 0 : _brushItem$props2.endIndex : props.data && props.data.length - 1 || 0;\n return {\n chartX: 0,\n chartY: 0,\n dataStartIndex: startIndex,\n dataEndIndex: endIndex,\n activeTooltipIndex: -1,\n isTooltipActive: !_isNil(defaultShowTooltip) ? defaultShowTooltip : false\n };\n};\nvar hasGraphicalBarItem = function hasGraphicalBarItem(graphicalItems) {\n if (!graphicalItems || !graphicalItems.length) {\n return false;\n }\n return graphicalItems.some(function (item) {\n var name = getDisplayName(item && item.type);\n return name && name.indexOf('Bar') >= 0;\n });\n};\nvar getAxisNameByLayout = function getAxisNameByLayout(layout) {\n if (layout === 'horizontal') {\n return {\n numericAxisName: 'yAxis',\n cateAxisName: 'xAxis'\n };\n }\n if (layout === 'vertical') {\n return {\n numericAxisName: 'xAxis',\n cateAxisName: 'yAxis'\n };\n }\n if (layout === 'centric') {\n return {\n numericAxisName: 'radiusAxis',\n cateAxisName: 'angleAxis'\n };\n }\n return {\n numericAxisName: 'angleAxis',\n cateAxisName: 'radiusAxis'\n };\n};\n\n/**\n * Calculate the offset of main part in the svg element\n * @param {Object} props Latest props\n * graphicalItems The instances of item\n * xAxisMap The configuration of x-axis\n * yAxisMap The configuration of y-axis\n * @param {Object} prevLegendBBox the boundary box of legend\n * @return {Object} The offset of main part in the svg element\n */\nvar calculateOffset = function calculateOffset(_ref5, prevLegendBBox) {\n var props = _ref5.props,\n graphicalItems = _ref5.graphicalItems,\n _ref5$xAxisMap = _ref5.xAxisMap,\n xAxisMap = _ref5$xAxisMap === void 0 ? {} : _ref5$xAxisMap,\n _ref5$yAxisMap = _ref5.yAxisMap,\n yAxisMap = _ref5$yAxisMap === void 0 ? {} : _ref5$yAxisMap;\n var width = props.width,\n height = props.height,\n children = props.children;\n var margin = props.margin || {};\n var brushItem = findChildByType(children, Brush);\n var legendItem = findChildByType(children, Legend);\n var offsetH = Object.keys(yAxisMap).reduce(function (result, id) {\n var entry = yAxisMap[id];\n var orientation = entry.orientation;\n if (!entry.mirror && !entry.hide) {\n return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, orientation, result[orientation] + entry.width));\n }\n return result;\n }, {\n left: margin.left || 0,\n right: margin.right || 0\n });\n var offsetV = Object.keys(xAxisMap).reduce(function (result, id) {\n var entry = xAxisMap[id];\n var orientation = entry.orientation;\n if (!entry.mirror && !entry.hide) {\n return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, orientation, _get(result, \"\".concat(orientation)) + entry.height));\n }\n return result;\n }, {\n top: margin.top || 0,\n bottom: margin.bottom || 0\n });\n var offset = _objectSpread(_objectSpread({}, offsetV), offsetH);\n var brushBottom = offset.bottom;\n if (brushItem) {\n offset.bottom += brushItem.props.height || Brush.defaultProps.height;\n }\n if (legendItem && prevLegendBBox) {\n offset = appendOffsetOfLegend(offset, graphicalItems, props, prevLegendBBox);\n }\n return _objectSpread(_objectSpread({\n brushBottom: brushBottom\n }, offset), {}, {\n width: width - offset.left - offset.right,\n height: height - offset.top - offset.bottom\n });\n};\nexport var generateCategoricalChart = function generateCategoricalChart(_ref6) {\n var _class;\n var chartName = _ref6.chartName,\n GraphicalChild = _ref6.GraphicalChild,\n _ref6$defaultTooltipE = _ref6.defaultTooltipEventType,\n defaultTooltipEventType = _ref6$defaultTooltipE === void 0 ? 'axis' : _ref6$defaultTooltipE,\n _ref6$validateTooltip = _ref6.validateTooltipEventTypes,\n validateTooltipEventTypes = _ref6$validateTooltip === void 0 ? ['axis'] : _ref6$validateTooltip,\n axisComponents = _ref6.axisComponents,\n legendContent = _ref6.legendContent,\n formatAxisMap = _ref6.formatAxisMap,\n defaultProps = _ref6.defaultProps;\n var getFormatItems = function getFormatItems(props, currentState) {\n var graphicalItems = currentState.graphicalItems,\n stackGroups = currentState.stackGroups,\n offset = currentState.offset,\n updateId = currentState.updateId,\n dataStartIndex = currentState.dataStartIndex,\n dataEndIndex = currentState.dataEndIndex;\n var barSize = props.barSize,\n layout = props.layout,\n barGap = props.barGap,\n barCategoryGap = props.barCategoryGap,\n globalMaxBarSize = props.maxBarSize;\n var _getAxisNameByLayout = getAxisNameByLayout(layout),\n numericAxisName = _getAxisNameByLayout.numericAxisName,\n cateAxisName = _getAxisNameByLayout.cateAxisName;\n var hasBar = hasGraphicalBarItem(graphicalItems);\n var sizeList = hasBar && getBarSizeList({\n barSize: barSize,\n stackGroups: stackGroups\n });\n var formattedItems = [];\n graphicalItems.forEach(function (item, index) {\n var displayedData = getDisplayedData(props.data, {\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex\n }, item);\n var _item$props = item.props,\n dataKey = _item$props.dataKey,\n childMaxBarSize = _item$props.maxBarSize;\n var numericAxisId = item.props[\"\".concat(numericAxisName, \"Id\")];\n var cateAxisId = item.props[\"\".concat(cateAxisName, \"Id\")];\n var axisObj = axisComponents.reduce(function (result, entry) {\n var _objectSpread6;\n var axisMap = currentState[\"\".concat(entry.axisType, \"Map\")];\n var id = item.props[\"\".concat(entry.axisType, \"Id\")];\n var axis = axisMap && axisMap[id];\n return _objectSpread(_objectSpread({}, result), {}, (_objectSpread6 = {}, _defineProperty(_objectSpread6, entry.axisType, axis), _defineProperty(_objectSpread6, \"\".concat(entry.axisType, \"Ticks\"), getTicksOfAxis(axis)), _objectSpread6));\n }, {});\n var cateAxis = axisObj[cateAxisName];\n var cateTicks = axisObj[\"\".concat(cateAxisName, \"Ticks\")];\n var stackedData = stackGroups && stackGroups[numericAxisId] && stackGroups[numericAxisId].hasStack && getStackedDataOfItem(item, stackGroups[numericAxisId].stackGroups);\n var itemIsBar = getDisplayName(item.type).indexOf('Bar') >= 0;\n var bandSize = getBandSizeOfAxis(cateAxis, cateTicks);\n var barPosition = [];\n if (itemIsBar) {\n var _ref7, _getBandSizeOfAxis;\n // 如果是bar,计算bar的位置\n var maxBarSize = _isNil(childMaxBarSize) ? globalMaxBarSize : childMaxBarSize;\n var barBandSize = (_ref7 = (_getBandSizeOfAxis = getBandSizeOfAxis(cateAxis, cateTicks, true)) !== null && _getBandSizeOfAxis !== void 0 ? _getBandSizeOfAxis : maxBarSize) !== null && _ref7 !== void 0 ? _ref7 : 0;\n barPosition = getBarPosition({\n barGap: barGap,\n barCategoryGap: barCategoryGap,\n bandSize: barBandSize !== bandSize ? barBandSize : bandSize,\n sizeList: sizeList[cateAxisId],\n maxBarSize: maxBarSize\n });\n if (barBandSize !== bandSize) {\n barPosition = barPosition.map(function (pos) {\n return _objectSpread(_objectSpread({}, pos), {}, {\n position: _objectSpread(_objectSpread({}, pos.position), {}, {\n offset: pos.position.offset - barBandSize / 2\n })\n });\n });\n }\n }\n var composedFn = item && item.type && item.type.getComposedData;\n if (composedFn) {\n var _objectSpread7;\n formattedItems.push({\n props: _objectSpread(_objectSpread({}, composedFn(_objectSpread(_objectSpread({}, axisObj), {}, {\n displayedData: displayedData,\n props: props,\n dataKey: dataKey,\n item: item,\n bandSize: bandSize,\n barPosition: barPosition,\n offset: offset,\n stackedData: stackedData,\n layout: layout,\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex\n }))), {}, (_objectSpread7 = {\n key: item.key || \"item-\".concat(index)\n }, _defineProperty(_objectSpread7, numericAxisName, axisObj[numericAxisName]), _defineProperty(_objectSpread7, cateAxisName, axisObj[cateAxisName]), _defineProperty(_objectSpread7, \"animationId\", updateId), _objectSpread7)),\n childIndex: parseChildIndex(item, props.children),\n item: item\n });\n }\n });\n return formattedItems;\n };\n\n /**\n * The AxisMaps are expensive to render on large data sets\n * so provide the ability to store them in state and only update them when necessary\n * they are dependent upon the start and end index of\n * the brush so it's important that this method is called _after_\n * the state is updated with any new start/end indices\n *\n * @param {Object} props The props object to be used for updating the axismaps\n * dataStartIndex: The start index of the data series when a brush is applied\n * dataEndIndex: The end index of the data series when a brush is applied\n * updateId: The update id\n * @param {Object} prevState Prev state\n * @return {Object} state New state to set\n */\n var updateStateOfAxisMapsOffsetAndStackGroups = function updateStateOfAxisMapsOffsetAndStackGroups(_ref8, prevState) {\n var props = _ref8.props,\n dataStartIndex = _ref8.dataStartIndex,\n dataEndIndex = _ref8.dataEndIndex,\n updateId = _ref8.updateId;\n if (!validateWidthHeight({\n props: props\n })) {\n return null;\n }\n var children = props.children,\n layout = props.layout,\n stackOffset = props.stackOffset,\n data = props.data,\n reverseStackOrder = props.reverseStackOrder;\n var _getAxisNameByLayout2 = getAxisNameByLayout(layout),\n numericAxisName = _getAxisNameByLayout2.numericAxisName,\n cateAxisName = _getAxisNameByLayout2.cateAxisName;\n var graphicalItems = findAllByType(children, GraphicalChild);\n var stackGroups = getStackGroupsByAxisId(data, graphicalItems, \"\".concat(numericAxisName, \"Id\"), \"\".concat(cateAxisName, \"Id\"), stackOffset, reverseStackOrder);\n var axisObj = axisComponents.reduce(function (result, entry) {\n var name = \"\".concat(entry.axisType, \"Map\");\n return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, name, getAxisMap(props, _objectSpread(_objectSpread({}, entry), {}, {\n graphicalItems: graphicalItems,\n stackGroups: entry.axisType === numericAxisName && stackGroups,\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex\n }))));\n }, {});\n var offset = calculateOffset(_objectSpread(_objectSpread({}, axisObj), {}, {\n props: props,\n graphicalItems: graphicalItems\n }), prevState === null || prevState === void 0 ? void 0 : prevState.legendBBox);\n Object.keys(axisObj).forEach(function (key) {\n axisObj[key] = formatAxisMap(props, axisObj[key], offset, key.replace('Map', ''), chartName);\n });\n var cateAxisMap = axisObj[\"\".concat(cateAxisName, \"Map\")];\n var ticksObj = tooltipTicksGenerator(cateAxisMap);\n var formattedGraphicalItems = getFormatItems(props, _objectSpread(_objectSpread({}, axisObj), {}, {\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex,\n updateId: updateId,\n graphicalItems: graphicalItems,\n stackGroups: stackGroups,\n offset: offset\n }));\n return _objectSpread(_objectSpread({\n formattedGraphicalItems: formattedGraphicalItems,\n graphicalItems: graphicalItems,\n offset: offset,\n stackGroups: stackGroups\n }, ticksObj), axisObj);\n };\n return _class = /*#__PURE__*/function (_Component) {\n _inherits(CategoricalChartWrapper, _Component);\n var _super = _createSuper(CategoricalChartWrapper);\n function CategoricalChartWrapper(_props) {\n var _this;\n _classCallCheck(this, CategoricalChartWrapper);\n _this = _super.call(this, _props);\n _defineProperty(_assertThisInitialized(_this), \"accessibilityManager\", new AccessibilityManager());\n _defineProperty(_assertThisInitialized(_this), \"clearDeferId\", function () {\n if (!_isNil(_this.deferId) && deferClear) {\n deferClear(_this.deferId);\n }\n _this.deferId = null;\n });\n _defineProperty(_assertThisInitialized(_this), \"handleLegendBBoxUpdate\", function (box) {\n if (box) {\n var _this$state = _this.state,\n dataStartIndex = _this$state.dataStartIndex,\n dataEndIndex = _this$state.dataEndIndex,\n updateId = _this$state.updateId;\n _this.setState(_objectSpread({\n legendBBox: box\n }, updateStateOfAxisMapsOffsetAndStackGroups({\n props: _this.props,\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex,\n updateId: updateId\n }, _objectSpread(_objectSpread({}, _this.state), {}, {\n legendBBox: box\n }))));\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"handleReceiveSyncEvent\", function (cId, chartId, data) {\n var syncId = _this.props.syncId;\n if (syncId === cId && chartId !== _this.uniqueChartId) {\n _this.clearDeferId();\n _this.deferId = defer && defer(_this.applySyncEvent.bind(_assertThisInitialized(_this), data));\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"handleBrushChange\", function (_ref9) {\n var startIndex = _ref9.startIndex,\n endIndex = _ref9.endIndex;\n // Only trigger changes if the extents of the brush have actually changed\n if (startIndex !== _this.state.dataStartIndex || endIndex !== _this.state.dataEndIndex) {\n var updateId = _this.state.updateId;\n _this.setState(function () {\n return _objectSpread({\n dataStartIndex: startIndex,\n dataEndIndex: endIndex\n }, updateStateOfAxisMapsOffsetAndStackGroups({\n props: _this.props,\n dataStartIndex: startIndex,\n dataEndIndex: endIndex,\n updateId: updateId\n }, _this.state));\n });\n _this.triggerSyncEvent({\n dataStartIndex: startIndex,\n dataEndIndex: endIndex\n });\n }\n });\n /**\n * The handler of mouse entering chart\n * @param {Object} e Event object\n * @return {Null} null\n */\n _defineProperty(_assertThisInitialized(_this), \"handleMouseEnter\", function (e) {\n var onMouseEnter = _this.props.onMouseEnter;\n var mouse = _this.getMouseInfo(e);\n if (mouse) {\n var _nextState = _objectSpread(_objectSpread({}, mouse), {}, {\n isTooltipActive: true\n });\n _this.setState(_nextState);\n _this.triggerSyncEvent(_nextState);\n if (_isFunction(onMouseEnter)) {\n onMouseEnter(_nextState, e);\n }\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"triggeredAfterMouseMove\", function (e) {\n var onMouseMove = _this.props.onMouseMove;\n var mouse = _this.getMouseInfo(e);\n var nextState = mouse ? _objectSpread(_objectSpread({}, mouse), {}, {\n isTooltipActive: true\n }) : {\n isTooltipActive: false\n };\n _this.setState(nextState);\n _this.triggerSyncEvent(nextState);\n if (_isFunction(onMouseMove)) {\n onMouseMove(nextState, e);\n }\n });\n /**\n * The handler of mouse entering a scatter\n * @param {Object} el The active scatter\n * @return {Object} no return\n */\n _defineProperty(_assertThisInitialized(_this), \"handleItemMouseEnter\", function (el) {\n _this.setState(function () {\n return {\n isTooltipActive: true,\n activeItem: el,\n activePayload: el.tooltipPayload,\n activeCoordinate: el.tooltipPosition || {\n x: el.cx,\n y: el.cy\n }\n };\n });\n });\n /**\n * The handler of mouse leaving a scatter\n * @return {Object} no return\n */\n _defineProperty(_assertThisInitialized(_this), \"handleItemMouseLeave\", function () {\n _this.setState(function () {\n return {\n isTooltipActive: false\n };\n });\n });\n /**\n * The handler of mouse moving in chart\n * @param {Object} e Event object\n * @return {Null} no return\n */\n _defineProperty(_assertThisInitialized(_this), \"handleMouseMove\", function (e) {\n if (e && _isFunction(e.persist)) {\n e.persist();\n }\n _this.triggeredAfterMouseMove(e);\n });\n /**\n * The handler if mouse leaving chart\n * @param {Object} e Event object\n * @return {Null} no return\n */\n _defineProperty(_assertThisInitialized(_this), \"handleMouseLeave\", function (e) {\n var onMouseLeave = _this.props.onMouseLeave;\n var nextState = {\n isTooltipActive: false\n };\n _this.setState(nextState);\n _this.triggerSyncEvent(nextState);\n if (_isFunction(onMouseLeave)) {\n onMouseLeave(nextState, e);\n }\n _this.cancelThrottledTriggerAfterMouseMove();\n });\n _defineProperty(_assertThisInitialized(_this), \"handleOuterEvent\", function (e) {\n var eventName = getReactEventByType(e);\n var event = _get(_this.props, \"\".concat(eventName));\n if (eventName && _isFunction(event)) {\n var mouse;\n if (/.*touch.*/i.test(eventName)) {\n mouse = _this.getMouseInfo(e.changedTouches[0]);\n } else {\n mouse = _this.getMouseInfo(e);\n }\n var handler = event;\n\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n handler(mouse, e);\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"handleClick\", function (e) {\n var onClick = _this.props.onClick;\n var mouse = _this.getMouseInfo(e);\n if (mouse) {\n var _nextState2 = _objectSpread(_objectSpread({}, mouse), {}, {\n isTooltipActive: true\n });\n _this.setState(_nextState2);\n _this.triggerSyncEvent(_nextState2);\n if (_isFunction(onClick)) {\n onClick(_nextState2, e);\n }\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"handleMouseDown\", function (e) {\n var onMouseDown = _this.props.onMouseDown;\n if (_isFunction(onMouseDown)) {\n var _nextState3 = _this.getMouseInfo(e);\n onMouseDown(_nextState3, e);\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"handleMouseUp\", function (e) {\n var onMouseUp = _this.props.onMouseUp;\n if (_isFunction(onMouseUp)) {\n var _nextState4 = _this.getMouseInfo(e);\n onMouseUp(_nextState4, e);\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"handleTouchMove\", function (e) {\n if (e.changedTouches != null && e.changedTouches.length > 0) {\n _this.handleMouseMove(e.changedTouches[0]);\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"handleTouchStart\", function (e) {\n if (e.changedTouches != null && e.changedTouches.length > 0) {\n _this.handleMouseDown(e.changedTouches[0]);\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"handleTouchEnd\", function (e) {\n if (e.changedTouches != null && e.changedTouches.length > 0) {\n _this.handleMouseUp(e.changedTouches[0]);\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"verticalCoordinatesGenerator\", function (_ref10) {\n var xAxis = _ref10.xAxis,\n width = _ref10.width,\n height = _ref10.height,\n offset = _ref10.offset;\n return getCoordinatesOfGrid(getTicks(_objectSpread(_objectSpread(_objectSpread({}, CartesianAxis.defaultProps), xAxis), {}, {\n ticks: getTicksOfAxis(xAxis, true),\n viewBox: {\n x: 0,\n y: 0,\n width: width,\n height: height\n }\n })), offset.left, offset.left + offset.width);\n });\n _defineProperty(_assertThisInitialized(_this), \"horizontalCoordinatesGenerator\", function (_ref11) {\n var yAxis = _ref11.yAxis,\n width = _ref11.width,\n height = _ref11.height,\n offset = _ref11.offset;\n return getCoordinatesOfGrid(getTicks(_objectSpread(_objectSpread(_objectSpread({}, CartesianAxis.defaultProps), yAxis), {}, {\n ticks: getTicksOfAxis(yAxis, true),\n viewBox: {\n x: 0,\n y: 0,\n width: width,\n height: height\n }\n })), offset.top, offset.top + offset.height);\n });\n _defineProperty(_assertThisInitialized(_this), \"axesTicksGenerator\", function (axis) {\n return getTicksOfAxis(axis, true);\n });\n _defineProperty(_assertThisInitialized(_this), \"renderCursor\", function (element) {\n var _this$state2 = _this.state,\n isTooltipActive = _this$state2.isTooltipActive,\n activeCoordinate = _this$state2.activeCoordinate,\n activePayload = _this$state2.activePayload,\n offset = _this$state2.offset,\n activeTooltipIndex = _this$state2.activeTooltipIndex;\n var tooltipEventType = _this.getTooltipEventType();\n if (!element || !element.props.cursor || !isTooltipActive || !activeCoordinate || chartName !== 'ScatterChart' && tooltipEventType !== 'axis') {\n return null;\n }\n var layout = _this.props.layout;\n var restProps;\n var cursorComp = Curve;\n if (chartName === 'ScatterChart') {\n restProps = activeCoordinate;\n cursorComp = Cross;\n } else if (chartName === 'BarChart') {\n restProps = _this.getCursorRectangle();\n cursorComp = Rectangle;\n } else if (layout === 'radial') {\n var _this$getCursorPoints = _this.getCursorPoints(),\n cx = _this$getCursorPoints.cx,\n cy = _this$getCursorPoints.cy,\n radius = _this$getCursorPoints.radius,\n startAngle = _this$getCursorPoints.startAngle,\n endAngle = _this$getCursorPoints.endAngle;\n restProps = {\n cx: cx,\n cy: cy,\n startAngle: startAngle,\n endAngle: endAngle,\n innerRadius: radius,\n outerRadius: radius\n };\n cursorComp = Sector;\n } else {\n restProps = {\n points: _this.getCursorPoints()\n };\n cursorComp = Curve;\n }\n var key = element.key || '_recharts-cursor';\n var cursorProps = _objectSpread(_objectSpread(_objectSpread(_objectSpread({\n stroke: '#ccc',\n pointerEvents: 'none'\n }, offset), restProps), filterProps(element.props.cursor)), {}, {\n payload: activePayload,\n payloadIndex: activeTooltipIndex,\n key: key,\n className: 'recharts-tooltip-cursor'\n });\n return /*#__PURE__*/isValidElement(element.props.cursor) ? /*#__PURE__*/cloneElement(element.props.cursor, cursorProps) : /*#__PURE__*/createElement(cursorComp, cursorProps);\n });\n _defineProperty(_assertThisInitialized(_this), \"renderPolarAxis\", function (element, displayName, index) {\n var axisType = _get(element, 'type.axisType');\n var axisMap = _get(_this.state, \"\".concat(axisType, \"Map\"));\n var axisOption = axisMap && axisMap[element.props[\"\".concat(axisType, \"Id\")]];\n return /*#__PURE__*/cloneElement(element, _objectSpread(_objectSpread({}, axisOption), {}, {\n className: axisType,\n key: element.key || \"\".concat(displayName, \"-\").concat(index),\n ticks: getTicksOfAxis(axisOption, true)\n }));\n });\n _defineProperty(_assertThisInitialized(_this), \"renderXAxis\", function (element, displayName, index) {\n var xAxisMap = _this.state.xAxisMap;\n var axisObj = xAxisMap[element.props.xAxisId];\n return _this.renderAxis(axisObj, element, displayName, index);\n });\n _defineProperty(_assertThisInitialized(_this), \"renderYAxis\", function (element, displayName, index) {\n var yAxisMap = _this.state.yAxisMap;\n var axisObj = yAxisMap[element.props.yAxisId];\n return _this.renderAxis(axisObj, element, displayName, index);\n });\n /**\n * Draw grid\n * @param {ReactElement} element the grid item\n * @return {ReactElement} The instance of grid\n */\n _defineProperty(_assertThisInitialized(_this), \"renderGrid\", function (element) {\n var _this$state3 = _this.state,\n xAxisMap = _this$state3.xAxisMap,\n yAxisMap = _this$state3.yAxisMap,\n offset = _this$state3.offset;\n var _this$props = _this.props,\n width = _this$props.width,\n height = _this$props.height;\n var xAxis = getAnyElementOfObject(xAxisMap);\n var yAxisWithFiniteDomain = _find(yAxisMap, function (axis) {\n return _every(axis.domain, isFinit);\n });\n var yAxis = yAxisWithFiniteDomain || getAnyElementOfObject(yAxisMap);\n var props = element.props || {};\n return /*#__PURE__*/cloneElement(element, {\n key: element.key || 'grid',\n x: isNumber(props.x) ? props.x : offset.left,\n y: isNumber(props.y) ? props.y : offset.top,\n width: isNumber(props.width) ? props.width : offset.width,\n height: isNumber(props.height) ? props.height : offset.height,\n xAxis: xAxis,\n yAxis: yAxis,\n offset: offset,\n chartWidth: width,\n chartHeight: height,\n verticalCoordinatesGenerator: props.verticalCoordinatesGenerator || _this.verticalCoordinatesGenerator,\n horizontalCoordinatesGenerator: props.horizontalCoordinatesGenerator || _this.horizontalCoordinatesGenerator\n });\n });\n _defineProperty(_assertThisInitialized(_this), \"renderPolarGrid\", function (element) {\n var _element$props = element.props,\n radialLines = _element$props.radialLines,\n polarAngles = _element$props.polarAngles,\n polarRadius = _element$props.polarRadius;\n var _this$state4 = _this.state,\n radiusAxisMap = _this$state4.radiusAxisMap,\n angleAxisMap = _this$state4.angleAxisMap;\n var radiusAxis = getAnyElementOfObject(radiusAxisMap);\n var angleAxis = getAnyElementOfObject(angleAxisMap);\n var cx = angleAxis.cx,\n cy = angleAxis.cy,\n innerRadius = angleAxis.innerRadius,\n outerRadius = angleAxis.outerRadius;\n return /*#__PURE__*/cloneElement(element, {\n polarAngles: _isArray(polarAngles) ? polarAngles : getTicksOfAxis(angleAxis, true).map(function (entry) {\n return entry.coordinate;\n }),\n polarRadius: _isArray(polarRadius) ? polarRadius : getTicksOfAxis(radiusAxis, true).map(function (entry) {\n return entry.coordinate;\n }),\n cx: cx,\n cy: cy,\n innerRadius: innerRadius,\n outerRadius: outerRadius,\n key: element.key || 'polar-grid',\n radialLines: radialLines\n });\n });\n /**\n * Draw legend\n * @return {ReactElement} The instance of Legend\n */\n _defineProperty(_assertThisInitialized(_this), \"renderLegend\", function () {\n var formattedGraphicalItems = _this.state.formattedGraphicalItems;\n var _this$props2 = _this.props,\n children = _this$props2.children,\n width = _this$props2.width,\n height = _this$props2.height;\n var margin = _this.props.margin || {};\n var legendWidth = width - (margin.left || 0) - (margin.right || 0);\n var props = getLegendProps({\n children: children,\n formattedGraphicalItems: formattedGraphicalItems,\n legendWidth: legendWidth,\n legendContent: legendContent\n });\n if (!props) {\n return null;\n }\n var item = props.item,\n otherProps = _objectWithoutProperties(props, _excluded);\n return /*#__PURE__*/cloneElement(item, _objectSpread(_objectSpread({}, otherProps), {}, {\n chartWidth: width,\n chartHeight: height,\n margin: margin,\n ref: function ref(legend) {\n _this.legendInstance = legend;\n },\n onBBoxUpdate: _this.handleLegendBBoxUpdate\n }));\n });\n /**\n * Draw Tooltip\n * @return {ReactElement} The instance of Tooltip\n */\n _defineProperty(_assertThisInitialized(_this), \"renderTooltip\", function () {\n var children = _this.props.children;\n var tooltipItem = findChildByType(children, Tooltip);\n if (!tooltipItem) {\n return null;\n }\n var _this$state5 = _this.state,\n isTooltipActive = _this$state5.isTooltipActive,\n activeCoordinate = _this$state5.activeCoordinate,\n activePayload = _this$state5.activePayload,\n activeLabel = _this$state5.activeLabel,\n offset = _this$state5.offset;\n return /*#__PURE__*/cloneElement(tooltipItem, {\n viewBox: _objectSpread(_objectSpread({}, offset), {}, {\n x: offset.left,\n y: offset.top\n }),\n active: isTooltipActive,\n label: activeLabel,\n payload: isTooltipActive ? activePayload : [],\n coordinate: activeCoordinate\n });\n });\n _defineProperty(_assertThisInitialized(_this), \"renderBrush\", function (element) {\n var _this$props3 = _this.props,\n margin = _this$props3.margin,\n data = _this$props3.data;\n var _this$state6 = _this.state,\n offset = _this$state6.offset,\n dataStartIndex = _this$state6.dataStartIndex,\n dataEndIndex = _this$state6.dataEndIndex,\n updateId = _this$state6.updateId;\n\n // TODO: update brush when children update\n return /*#__PURE__*/cloneElement(element, {\n key: element.key || '_recharts-brush',\n onChange: combineEventHandlers(_this.handleBrushChange, null, element.props.onChange),\n data: data,\n x: isNumber(element.props.x) ? element.props.x : offset.left,\n y: isNumber(element.props.y) ? element.props.y : offset.top + offset.height + offset.brushBottom - (margin.bottom || 0),\n width: isNumber(element.props.width) ? element.props.width : offset.width,\n startIndex: dataStartIndex,\n endIndex: dataEndIndex,\n updateId: \"brush-\".concat(updateId)\n });\n });\n _defineProperty(_assertThisInitialized(_this), \"renderReferenceElement\", function (element, displayName, index) {\n if (!element) {\n return null;\n }\n var _assertThisInitialize = _assertThisInitialized(_this),\n clipPathId = _assertThisInitialize.clipPathId;\n var _this$state7 = _this.state,\n xAxisMap = _this$state7.xAxisMap,\n yAxisMap = _this$state7.yAxisMap,\n offset = _this$state7.offset;\n var _element$props2 = element.props,\n xAxisId = _element$props2.xAxisId,\n yAxisId = _element$props2.yAxisId;\n return /*#__PURE__*/cloneElement(element, {\n key: element.key || \"\".concat(displayName, \"-\").concat(index),\n xAxis: xAxisMap[xAxisId],\n yAxis: yAxisMap[yAxisId],\n viewBox: {\n x: offset.left,\n y: offset.top,\n width: offset.width,\n height: offset.height\n },\n clipPathId: clipPathId\n });\n });\n _defineProperty(_assertThisInitialized(_this), \"renderActivePoints\", function (_ref12) {\n var item = _ref12.item,\n activePoint = _ref12.activePoint,\n basePoint = _ref12.basePoint,\n childIndex = _ref12.childIndex,\n isRange = _ref12.isRange;\n var result = [];\n var key = item.props.key;\n var _item$item$props = item.item.props,\n activeDot = _item$item$props.activeDot,\n dataKey = _item$item$props.dataKey;\n var dotProps = _objectSpread(_objectSpread({\n index: childIndex,\n dataKey: dataKey,\n cx: activePoint.x,\n cy: activePoint.y,\n r: 4,\n fill: getMainColorOfGraphicItem(item.item),\n strokeWidth: 2,\n stroke: '#fff',\n payload: activePoint.payload,\n value: activePoint.value,\n key: \"\".concat(key, \"-activePoint-\").concat(childIndex)\n }, filterProps(activeDot)), adaptEventHandlers(activeDot));\n result.push(CategoricalChartWrapper.renderActiveDot(activeDot, dotProps));\n if (basePoint) {\n result.push(CategoricalChartWrapper.renderActiveDot(activeDot, _objectSpread(_objectSpread({}, dotProps), {}, {\n cx: basePoint.x,\n cy: basePoint.y,\n key: \"\".concat(key, \"-basePoint-\").concat(childIndex)\n })));\n } else if (isRange) {\n result.push(null);\n }\n return result;\n });\n _defineProperty(_assertThisInitialized(_this), \"renderGraphicChild\", function (element, displayName, index) {\n var item = _this.filterFormatItem(element, displayName, index);\n if (!item) {\n return null;\n }\n var tooltipEventType = _this.getTooltipEventType();\n var _this$state8 = _this.state,\n isTooltipActive = _this$state8.isTooltipActive,\n tooltipAxis = _this$state8.tooltipAxis,\n activeTooltipIndex = _this$state8.activeTooltipIndex,\n activeLabel = _this$state8.activeLabel;\n var children = _this.props.children;\n var tooltipItem = findChildByType(children, Tooltip);\n var _item$props2 = item.props,\n points = _item$props2.points,\n isRange = _item$props2.isRange,\n baseLine = _item$props2.baseLine;\n var _item$item$props2 = item.item.props,\n activeDot = _item$item$props2.activeDot,\n hide = _item$item$props2.hide;\n var hasActive = !hide && isTooltipActive && tooltipItem && activeDot && activeTooltipIndex >= 0;\n var itemEvents = {};\n if (tooltipEventType !== 'axis' && tooltipItem && tooltipItem.props.trigger === 'click') {\n itemEvents = {\n onClick: combineEventHandlers(_this.handleItemMouseEnter, null, element.props.onCLick)\n };\n } else if (tooltipEventType !== 'axis') {\n itemEvents = {\n onMouseLeave: combineEventHandlers(_this.handleItemMouseLeave, null, element.props.onMouseLeave),\n onMouseEnter: combineEventHandlers(_this.handleItemMouseEnter, null, element.props.onMouseEnter)\n };\n }\n var graphicalItem = /*#__PURE__*/cloneElement(element, _objectSpread(_objectSpread({}, item.props), itemEvents));\n function findWithPayload(entry) {\n // TODO needs to verify dataKey is Function\n return typeof tooltipAxis.dataKey === 'function' ? tooltipAxis.dataKey(entry.payload) : null;\n }\n if (hasActive) {\n var activePoint, basePoint;\n if (tooltipAxis.dataKey && !tooltipAxis.allowDuplicatedCategory) {\n // number transform to string\n var specifiedKey = typeof tooltipAxis.dataKey === 'function' ? findWithPayload : 'payload.'.concat(tooltipAxis.dataKey.toString());\n activePoint = findEntryInArray(points, specifiedKey, activeLabel);\n basePoint = isRange && baseLine && findEntryInArray(baseLine, specifiedKey, activeLabel);\n } else {\n activePoint = points[activeTooltipIndex];\n basePoint = isRange && baseLine && baseLine[activeTooltipIndex];\n }\n if (!_isNil(activePoint)) {\n return [graphicalItem].concat(_toConsumableArray(_this.renderActivePoints({\n item: item,\n activePoint: activePoint,\n basePoint: basePoint,\n childIndex: activeTooltipIndex,\n isRange: isRange\n })));\n }\n }\n if (isRange) {\n return [graphicalItem, null, null];\n }\n return [graphicalItem, null];\n });\n _defineProperty(_assertThisInitialized(_this), \"renderCustomized\", function (element, displayName, index) {\n return /*#__PURE__*/cloneElement(element, _objectSpread(_objectSpread({\n key: \"recharts-customized-\".concat(index)\n }, _this.props), _this.state));\n });\n _this.uniqueChartId = _isNil(_props.id) ? uniqueId('recharts') : _props.id;\n _this.clipPathId = \"\".concat(_this.uniqueChartId, \"-clip\");\n if (_props.throttleDelay) {\n _this.triggeredAfterMouseMove = _throttle(_this.triggeredAfterMouseMove, _props.throttleDelay);\n }\n _this.state = {};\n return _this;\n }\n _createClass(CategoricalChartWrapper, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var _this$props$margin$le, _this$props$margin$to;\n if (!_isNil(this.props.syncId)) {\n this.addListener();\n }\n this.accessibilityManager.setDetails({\n container: this.container,\n offset: {\n left: (_this$props$margin$le = this.props.margin.left) !== null && _this$props$margin$le !== void 0 ? _this$props$margin$le : 0,\n top: (_this$props$margin$to = this.props.margin.top) !== null && _this$props$margin$to !== void 0 ? _this$props$margin$to : 0\n },\n coordinateList: this.state.tooltipTicks,\n mouseHandlerCallback: this.handleMouseMove,\n layout: this.props.layout\n });\n }\n }, {\n key: \"getSnapshotBeforeUpdate\",\n value: function getSnapshotBeforeUpdate(prevProps, prevState) {\n if (!this.props.accessibilityLayer) {\n return null;\n }\n if (this.state.tooltipTicks !== prevState.tooltipTicks) {\n this.accessibilityManager.setDetails({\n coordinateList: this.state.tooltipTicks\n });\n }\n if (this.props.layout !== prevProps.layout) {\n this.accessibilityManager.setDetails({\n layout: this.props.layout\n });\n }\n if (this.props.margin !== prevProps.margin) {\n var _this$props$margin$le2, _this$props$margin$to2;\n this.accessibilityManager.setDetails({\n offset: {\n left: (_this$props$margin$le2 = this.props.margin.left) !== null && _this$props$margin$le2 !== void 0 ? _this$props$margin$le2 : 0,\n top: (_this$props$margin$to2 = this.props.margin.top) !== null && _this$props$margin$to2 !== void 0 ? _this$props$margin$to2 : 0\n }\n });\n }\n\n // Something has to be returned for getSnapshotBeforeUpdate\n return null;\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n // add syncId\n if (_isNil(prevProps.syncId) && !_isNil(this.props.syncId)) {\n this.addListener();\n }\n // remove syncId\n if (!_isNil(prevProps.syncId) && _isNil(this.props.syncId)) {\n this.removeListener();\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.clearDeferId();\n if (!_isNil(this.props.syncId)) {\n this.removeListener();\n }\n this.cancelThrottledTriggerAfterMouseMove();\n }\n }, {\n key: \"cancelThrottledTriggerAfterMouseMove\",\n value: function cancelThrottledTriggerAfterMouseMove() {\n if (typeof this.triggeredAfterMouseMove.cancel === 'function') {\n this.triggeredAfterMouseMove.cancel();\n }\n }\n }, {\n key: \"getTooltipEventType\",\n value: function getTooltipEventType() {\n var tooltipItem = findChildByType(this.props.children, Tooltip);\n if (tooltipItem && _isBoolean(tooltipItem.props.shared)) {\n var eventType = tooltipItem.props.shared ? 'axis' : 'item';\n return validateTooltipEventTypes.indexOf(eventType) >= 0 ? eventType : defaultTooltipEventType;\n }\n return defaultTooltipEventType;\n }\n\n /**\n * Get the information of mouse in chart, return null when the mouse is not in the chart\n * @param {Object} event The event object\n * @return {Object} Mouse data\n */\n }, {\n key: \"getMouseInfo\",\n value: function getMouseInfo(event) {\n if (!this.container) {\n return null;\n }\n var containerOffset = getOffset(this.container);\n var e = calculateChartCoordinate(event, containerOffset);\n var rangeObj = this.inRange(e.chartX, e.chartY);\n if (!rangeObj) {\n return null;\n }\n var _this$state9 = this.state,\n xAxisMap = _this$state9.xAxisMap,\n yAxisMap = _this$state9.yAxisMap;\n var tooltipEventType = this.getTooltipEventType();\n if (tooltipEventType !== 'axis' && xAxisMap && yAxisMap) {\n var xScale = getAnyElementOfObject(xAxisMap).scale;\n var yScale = getAnyElementOfObject(yAxisMap).scale;\n var xValue = xScale && xScale.invert ? xScale.invert(e.chartX) : null;\n var yValue = yScale && yScale.invert ? yScale.invert(e.chartY) : null;\n return _objectSpread(_objectSpread({}, e), {}, {\n xValue: xValue,\n yValue: yValue\n });\n }\n var toolTipData = getTooltipData(this.state, this.props.data, this.props.layout, rangeObj);\n if (toolTipData) {\n return _objectSpread(_objectSpread({}, e), toolTipData);\n }\n return null;\n }\n }, {\n key: \"getCursorRectangle\",\n value: function getCursorRectangle() {\n var layout = this.props.layout;\n var _this$state10 = this.state,\n activeCoordinate = _this$state10.activeCoordinate,\n offset = _this$state10.offset,\n tooltipAxisBandSize = _this$state10.tooltipAxisBandSize;\n var halfSize = tooltipAxisBandSize / 2;\n return {\n stroke: 'none',\n fill: '#ccc',\n x: layout === 'horizontal' ? activeCoordinate.x - halfSize : offset.left + 0.5,\n y: layout === 'horizontal' ? offset.top + 0.5 : activeCoordinate.y - halfSize,\n width: layout === 'horizontal' ? tooltipAxisBandSize : offset.width - 1,\n height: layout === 'horizontal' ? offset.height - 1 : tooltipAxisBandSize\n };\n }\n }, {\n key: \"getCursorPoints\",\n value: function getCursorPoints() {\n var layout = this.props.layout;\n var _this$state11 = this.state,\n activeCoordinate = _this$state11.activeCoordinate,\n offset = _this$state11.offset;\n var x1, y1, x2, y2;\n if (layout === 'horizontal') {\n x1 = activeCoordinate.x;\n x2 = x1;\n y1 = offset.top;\n y2 = offset.top + offset.height;\n } else if (layout === 'vertical') {\n y1 = activeCoordinate.y;\n y2 = y1;\n x1 = offset.left;\n x2 = offset.left + offset.width;\n } else if (!_isNil(activeCoordinate.cx) || !_isNil(activeCoordinate.cy)) {\n if (layout === 'centric') {\n var cx = activeCoordinate.cx,\n cy = activeCoordinate.cy,\n innerRadius = activeCoordinate.innerRadius,\n outerRadius = activeCoordinate.outerRadius,\n angle = activeCoordinate.angle;\n var innerPoint = polarToCartesian(cx, cy, innerRadius, angle);\n var outerPoint = polarToCartesian(cx, cy, outerRadius, angle);\n x1 = innerPoint.x;\n y1 = innerPoint.y;\n x2 = outerPoint.x;\n y2 = outerPoint.y;\n } else {\n var _cx = activeCoordinate.cx,\n _cy = activeCoordinate.cy,\n radius = activeCoordinate.radius,\n startAngle = activeCoordinate.startAngle,\n endAngle = activeCoordinate.endAngle;\n var startPoint = polarToCartesian(_cx, _cy, radius, startAngle);\n var endPoint = polarToCartesian(_cx, _cy, radius, endAngle);\n return {\n points: [startPoint, endPoint],\n cx: _cx,\n cy: _cy,\n radius: radius,\n startAngle: startAngle,\n endAngle: endAngle\n };\n }\n }\n return [{\n x: x1,\n y: y1\n }, {\n x: x2,\n y: y2\n }];\n }\n }, {\n key: \"inRange\",\n value: function inRange(x, y) {\n var layout = this.props.layout;\n if (layout === 'horizontal' || layout === 'vertical') {\n var offset = this.state.offset;\n var isInRange = x >= offset.left && x <= offset.left + offset.width && y >= offset.top && y <= offset.top + offset.height;\n return isInRange ? {\n x: x,\n y: y\n } : null;\n }\n var _this$state12 = this.state,\n angleAxisMap = _this$state12.angleAxisMap,\n radiusAxisMap = _this$state12.radiusAxisMap;\n if (angleAxisMap && radiusAxisMap) {\n var angleAxis = getAnyElementOfObject(angleAxisMap);\n return inRangeOfSector({\n x: x,\n y: y\n }, angleAxis);\n }\n return null;\n }\n }, {\n key: \"parseEventsOfWrapper\",\n value: function parseEventsOfWrapper() {\n var children = this.props.children;\n var tooltipEventType = this.getTooltipEventType();\n var tooltipItem = findChildByType(children, Tooltip);\n var tooltipEvents = {};\n if (tooltipItem && tooltipEventType === 'axis') {\n if (tooltipItem.props.trigger === 'click') {\n tooltipEvents = {\n onClick: this.handleClick\n };\n } else {\n tooltipEvents = {\n onMouseEnter: this.handleMouseEnter,\n onMouseMove: this.handleMouseMove,\n onMouseLeave: this.handleMouseLeave,\n onTouchMove: this.handleTouchMove,\n onTouchStart: this.handleTouchStart,\n onTouchEnd: this.handleTouchEnd\n };\n }\n }\n var outerEvents = adaptEventHandlers(this.props, this.handleOuterEvent);\n return _objectSpread(_objectSpread({}, outerEvents), tooltipEvents);\n }\n\n /* eslint-disable no-underscore-dangle */\n }, {\n key: \"addListener\",\n value: function addListener() {\n eventCenter.on(SYNC_EVENT, this.handleReceiveSyncEvent);\n if (eventCenter.setMaxListeners && eventCenter._maxListeners) {\n eventCenter.setMaxListeners(eventCenter._maxListeners + 1);\n }\n }\n }, {\n key: \"removeListener\",\n value: function removeListener() {\n eventCenter.removeListener(SYNC_EVENT, this.handleReceiveSyncEvent);\n if (eventCenter.setMaxListeners && eventCenter._maxListeners) {\n eventCenter.setMaxListeners(eventCenter._maxListeners - 1);\n }\n }\n }, {\n key: \"triggerSyncEvent\",\n value: function triggerSyncEvent(data) {\n var syncId = this.props.syncId;\n if (!_isNil(syncId)) {\n eventCenter.emit(SYNC_EVENT, syncId, this.uniqueChartId, data);\n }\n }\n }, {\n key: \"applySyncEvent\",\n value: function applySyncEvent(data) {\n var _this$props4 = this.props,\n layout = _this$props4.layout,\n syncMethod = _this$props4.syncMethod;\n var updateId = this.state.updateId;\n var dataStartIndex = data.dataStartIndex,\n dataEndIndex = data.dataEndIndex;\n if (!_isNil(data.dataStartIndex) || !_isNil(data.dataEndIndex)) {\n this.setState(_objectSpread({\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex\n }, updateStateOfAxisMapsOffsetAndStackGroups({\n props: this.props,\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex,\n updateId: updateId\n }, this.state)));\n } else if (!_isNil(data.activeTooltipIndex)) {\n var chartX = data.chartX,\n chartY = data.chartY;\n var activeTooltipIndex = data.activeTooltipIndex;\n var _this$state13 = this.state,\n offset = _this$state13.offset,\n tooltipTicks = _this$state13.tooltipTicks;\n if (!offset) {\n return;\n }\n if (typeof syncMethod === 'function') {\n // Call a callback function. If there is an application specific algorithm\n activeTooltipIndex = syncMethod(tooltipTicks, data);\n } else if (syncMethod === 'value') {\n // Set activeTooltipIndex to the index with the same value as data.activeLabel\n // For loop instead of findIndex because the latter is very slow in some browsers\n activeTooltipIndex = -1; // in case we cannot find the element\n for (var i = 0; i < tooltipTicks.length; i++) {\n if (tooltipTicks[i].value === data.activeLabel) {\n activeTooltipIndex = i;\n break;\n }\n }\n }\n var viewBox = _objectSpread(_objectSpread({}, offset), {}, {\n x: offset.left,\n y: offset.top\n });\n // When a categorical chart is combined with another chart, the value of chartX\n // and chartY may beyond the boundaries.\n var validateChartX = Math.min(chartX, viewBox.x + viewBox.width);\n var validateChartY = Math.min(chartY, viewBox.y + viewBox.height);\n var activeLabel = tooltipTicks[activeTooltipIndex] && tooltipTicks[activeTooltipIndex].value;\n var activePayload = getTooltipContent(this.state, this.props.data, activeTooltipIndex);\n var activeCoordinate = tooltipTicks[activeTooltipIndex] ? {\n x: layout === 'horizontal' ? tooltipTicks[activeTooltipIndex].coordinate : validateChartX,\n y: layout === 'horizontal' ? validateChartY : tooltipTicks[activeTooltipIndex].coordinate\n } : originCoordinate;\n this.setState(_objectSpread(_objectSpread({}, data), {}, {\n activeLabel: activeLabel,\n activeCoordinate: activeCoordinate,\n activePayload: activePayload,\n activeTooltipIndex: activeTooltipIndex\n }));\n } else {\n this.setState(data);\n }\n }\n }, {\n key: \"filterFormatItem\",\n value: function filterFormatItem(item, displayName, childIndex) {\n var formattedGraphicalItems = this.state.formattedGraphicalItems;\n for (var i = 0, len = formattedGraphicalItems.length; i < len; i++) {\n var entry = formattedGraphicalItems[i];\n if (entry.item === item || entry.props.key === item.key || displayName === getDisplayName(entry.item.type) && childIndex === entry.childIndex) {\n return entry;\n }\n }\n return null;\n }\n }, {\n key: \"renderAxis\",\n value:\n /**\n * Draw axis\n * @param {Object} axisOptions The options of axis\n * @param {Object} element The axis element\n * @param {String} displayName The display name of axis\n * @param {Number} index The index of element\n * @return {ReactElement} The instance of x-axes\n */\n function renderAxis(axisOptions, element, displayName, index) {\n var _this$props5 = this.props,\n width = _this$props5.width,\n height = _this$props5.height;\n return /*#__PURE__*/React.createElement(CartesianAxis, _extends({}, axisOptions, {\n className: classNames(\"recharts-\".concat(axisOptions.axisType, \" \").concat(axisOptions.axisType), axisOptions.className),\n key: element.key || \"\".concat(displayName, \"-\").concat(index),\n viewBox: {\n x: 0,\n y: 0,\n width: width,\n height: height\n },\n ticksGenerator: this.axesTicksGenerator\n }));\n }\n }, {\n key: \"renderClipPath\",\n value: function renderClipPath() {\n var clipPathId = this.clipPathId;\n var _this$state$offset = this.state.offset,\n left = _this$state$offset.left,\n top = _this$state$offset.top,\n height = _this$state$offset.height,\n width = _this$state$offset.width;\n return /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: clipPathId\n }, /*#__PURE__*/React.createElement(\"rect\", {\n x: left,\n y: top,\n height: height,\n width: width\n })));\n }\n }, {\n key: \"getXScales\",\n value: function getXScales() {\n var xAxisMap = this.state.xAxisMap;\n return xAxisMap ? Object.entries(xAxisMap).reduce(function (res, _ref13) {\n var _ref14 = _slicedToArray(_ref13, 2),\n axisId = _ref14[0],\n axisProps = _ref14[1];\n return _objectSpread(_objectSpread({}, res), {}, _defineProperty({}, axisId, axisProps.scale));\n }, {}) : null;\n }\n }, {\n key: \"getYScales\",\n value: function getYScales() {\n var yAxisMap = this.state.yAxisMap;\n return yAxisMap ? Object.entries(yAxisMap).reduce(function (res, _ref15) {\n var _ref16 = _slicedToArray(_ref15, 2),\n axisId = _ref16[0],\n axisProps = _ref16[1];\n return _objectSpread(_objectSpread({}, res), {}, _defineProperty({}, axisId, axisProps.scale));\n }, {}) : null;\n }\n }, {\n key: \"getXScaleByAxisId\",\n value: function getXScaleByAxisId(axisId) {\n var _this$state$xAxisMap, _this$state$xAxisMap$;\n return (_this$state$xAxisMap = this.state.xAxisMap) === null || _this$state$xAxisMap === void 0 ? void 0 : (_this$state$xAxisMap$ = _this$state$xAxisMap[axisId]) === null || _this$state$xAxisMap$ === void 0 ? void 0 : _this$state$xAxisMap$.scale;\n }\n }, {\n key: \"getYScaleByAxisId\",\n value: function getYScaleByAxisId(axisId) {\n var _this$state$yAxisMap, _this$state$yAxisMap$;\n return (_this$state$yAxisMap = this.state.yAxisMap) === null || _this$state$yAxisMap === void 0 ? void 0 : (_this$state$yAxisMap$ = _this$state$yAxisMap[axisId]) === null || _this$state$yAxisMap$ === void 0 ? void 0 : _this$state$yAxisMap$.scale;\n }\n }, {\n key: \"getItemByXY\",\n value: function getItemByXY(chartXY) {\n var formattedGraphicalItems = this.state.formattedGraphicalItems;\n if (formattedGraphicalItems && formattedGraphicalItems.length) {\n for (var i = 0, len = formattedGraphicalItems.length; i < len; i++) {\n var graphicalItem = formattedGraphicalItems[i];\n var props = graphicalItem.props,\n item = graphicalItem.item;\n var itemDisplayName = getDisplayName(item.type);\n if (itemDisplayName === 'Bar') {\n var activeBarItem = (props.data || []).find(function (entry) {\n return isInRectangle(chartXY, entry);\n });\n if (activeBarItem) {\n return {\n graphicalItem: graphicalItem,\n payload: activeBarItem\n };\n }\n } else if (itemDisplayName === 'RadialBar') {\n var _activeBarItem = (props.data || []).find(function (entry) {\n return inRangeOfSector(chartXY, entry);\n });\n if (_activeBarItem) {\n return {\n graphicalItem: graphicalItem,\n payload: _activeBarItem\n };\n }\n }\n }\n }\n return null;\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n if (!validateWidthHeight(this)) {\n return null;\n }\n var _this$props6 = this.props,\n children = _this$props6.children,\n className = _this$props6.className,\n width = _this$props6.width,\n height = _this$props6.height,\n style = _this$props6.style,\n compact = _this$props6.compact,\n title = _this$props6.title,\n desc = _this$props6.desc,\n others = _objectWithoutProperties(_this$props6, _excluded2);\n var attrs = filterProps(others);\n var map = {\n CartesianGrid: {\n handler: this.renderGrid,\n once: true\n },\n ReferenceArea: {\n handler: this.renderReferenceElement\n },\n ReferenceLine: {\n handler: this.renderReferenceElement\n },\n ReferenceDot: {\n handler: this.renderReferenceElement\n },\n XAxis: {\n handler: this.renderXAxis\n },\n YAxis: {\n handler: this.renderYAxis\n },\n Brush: {\n handler: this.renderBrush,\n once: true\n },\n Bar: {\n handler: this.renderGraphicChild\n },\n Line: {\n handler: this.renderGraphicChild\n },\n Area: {\n handler: this.renderGraphicChild\n },\n Radar: {\n handler: this.renderGraphicChild\n },\n RadialBar: {\n handler: this.renderGraphicChild\n },\n Scatter: {\n handler: this.renderGraphicChild\n },\n Pie: {\n handler: this.renderGraphicChild\n },\n Funnel: {\n handler: this.renderGraphicChild\n },\n Tooltip: {\n handler: this.renderCursor,\n once: true\n },\n PolarGrid: {\n handler: this.renderPolarGrid,\n once: true\n },\n PolarAngleAxis: {\n handler: this.renderPolarAxis\n },\n PolarRadiusAxis: {\n handler: this.renderPolarAxis\n },\n Customized: {\n handler: this.renderCustomized\n }\n };\n\n // The \"compact\" mode is mainly used as the panorama within Brush\n if (compact) {\n return /*#__PURE__*/React.createElement(Surface, _extends({}, attrs, {\n width: width,\n height: height,\n title: title,\n desc: desc\n }), this.renderClipPath(), renderByOrder(children, map));\n }\n if (this.props.accessibilityLayer) {\n var _2, _img;\n // Set tabIndex to 0 by default (can be overwritten)\n attrs.tabIndex = (_2 = 0) !== null && _2 !== void 0 ? _2 : this.props.tabIndex;\n // Set role to img by default (can be overwritten)\n attrs.role = (_img = 'img') !== null && _img !== void 0 ? _img : this.props.role;\n attrs.onKeyDown = function (e) {\n _this2.accessibilityManager.keyboardEvent(e);\n // 'onKeyDown' is not currently a supported prop that can be passed through\n // if it's added, this should be added: this.props.onKeyDown(e);\n };\n\n attrs.onFocus = function () {\n _this2.accessibilityManager.focus();\n // 'onFocus' is not currently a supported prop that can be passed through\n // if it's added, the focus event should be forwarded to the prop\n };\n }\n\n var events = this.parseEventsOfWrapper();\n return /*#__PURE__*/React.createElement(\"div\", _extends({\n className: classNames('recharts-wrapper', className),\n style: _objectSpread({\n position: 'relative',\n cursor: 'default',\n width: width,\n height: height\n }, style)\n }, events, {\n ref: function ref(node) {\n _this2.container = node;\n },\n role: \"region\"\n }), /*#__PURE__*/React.createElement(Surface, _extends({}, attrs, {\n width: width,\n height: height,\n title: title,\n desc: desc\n }), this.renderClipPath(), renderByOrder(children, map)), this.renderLegend(), this.renderTooltip());\n }\n }]);\n return CategoricalChartWrapper;\n }(Component), _defineProperty(_class, \"displayName\", chartName), _defineProperty(_class, \"defaultProps\", _objectSpread({\n layout: 'horizontal',\n stackOffset: 'none',\n barCategoryGap: '10%',\n barGap: 4,\n margin: {\n top: 5,\n right: 5,\n bottom: 5,\n left: 5\n },\n reverseStackOrder: false,\n syncMethod: 'index'\n }, defaultProps)), _defineProperty(_class, \"getDerivedStateFromProps\", function (nextProps, prevState) {\n var data = nextProps.data,\n children = nextProps.children,\n width = nextProps.width,\n height = nextProps.height,\n layout = nextProps.layout,\n stackOffset = nextProps.stackOffset,\n margin = nextProps.margin;\n if (_isNil(prevState.updateId)) {\n var defaultState = createDefaultState(nextProps);\n return _objectSpread(_objectSpread(_objectSpread({}, defaultState), {}, {\n updateId: 0\n }, updateStateOfAxisMapsOffsetAndStackGroups(_objectSpread(_objectSpread({\n props: nextProps\n }, defaultState), {}, {\n updateId: 0\n }), prevState)), {}, {\n prevData: data,\n prevWidth: width,\n prevHeight: height,\n prevLayout: layout,\n prevStackOffset: stackOffset,\n prevMargin: margin,\n prevChildren: children\n });\n }\n if (data !== prevState.prevData || width !== prevState.prevWidth || height !== prevState.prevHeight || layout !== prevState.prevLayout || stackOffset !== prevState.prevStackOffset || !shallowEqual(margin, prevState.prevMargin)) {\n var _defaultState = createDefaultState(nextProps);\n\n // Fixes https://github.com/recharts/recharts/issues/2143\n var keepFromPrevState = {\n // (chartX, chartY) are (0,0) in default state, but we want to keep the last mouse position to avoid\n // any flickering\n chartX: prevState.chartX,\n chartY: prevState.chartY,\n // The tooltip should stay active when it was active in the previous render. If this is not\n // the case, the tooltip disappears and immediately re-appears, causing a flickering effect\n isTooltipActive: prevState.isTooltipActive\n };\n var updatesToState = _objectSpread(_objectSpread({}, getTooltipData(prevState, data, layout)), {}, {\n updateId: prevState.updateId + 1\n });\n var newState = _objectSpread(_objectSpread(_objectSpread({}, _defaultState), keepFromPrevState), updatesToState);\n return _objectSpread(_objectSpread(_objectSpread({}, newState), updateStateOfAxisMapsOffsetAndStackGroups(_objectSpread({\n props: nextProps\n }, newState), prevState)), {}, {\n prevData: data,\n prevWidth: width,\n prevHeight: height,\n prevLayout: layout,\n prevStackOffset: stackOffset,\n prevMargin: margin,\n prevChildren: children\n });\n }\n if (!isChildrenEqual(children, prevState.prevChildren)) {\n // update configuration in children\n var hasGlobalData = !_isNil(data);\n var newUpdateId = hasGlobalData ? prevState.updateId : prevState.updateId + 1;\n return _objectSpread(_objectSpread({\n updateId: newUpdateId\n }, updateStateOfAxisMapsOffsetAndStackGroups(_objectSpread(_objectSpread({\n props: nextProps\n }, prevState), {}, {\n updateId: newUpdateId\n }), prevState)), {}, {\n prevChildren: children\n });\n }\n return null;\n }), _defineProperty(_class, \"renderActiveDot\", function (option, props) {\n var dot;\n if ( /*#__PURE__*/isValidElement(option)) {\n dot = /*#__PURE__*/cloneElement(option, props);\n } else if (_isFunction(option)) {\n dot = option(props);\n } else {\n dot = /*#__PURE__*/React.createElement(Dot, props);\n }\n return /*#__PURE__*/React.createElement(Layer, {\n className: \"recharts-active-dot\",\n key: props.key\n }, dot);\n }), _class;\n};","/**\n * @fileOverview Cross\n */\n\nexport var Cell = function Cell(_props) {\n return null;\n};\nCell.displayName = 'Cell';","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nimport _isObject from \"lodash/isObject\";\nimport _isFunction from \"lodash/isFunction\";\nimport _isNil from \"lodash/isNil\";\nvar _excluded = [\"offset\"];\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _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; }\nfunction _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; }\nfunction 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; }\nfunction _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; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction _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); }\nimport React, { cloneElement, isValidElement, createElement } from 'react';\nimport classNames from 'classnames';\nimport { Text } from './Text';\nimport { findAllByType, filterProps } from '../util/ReactUtils';\nimport { isNumOrStr, isNumber, isPercent, getPercentValue, uniqueId, mathSign } from '../util/DataUtils';\nimport { polarToCartesian } from '../util/PolarUtils';\nvar getLabel = function getLabel(props) {\n var value = props.value,\n formatter = props.formatter;\n var label = _isNil(props.children) ? value : props.children;\n if (_isFunction(formatter)) {\n return formatter(label);\n }\n return label;\n};\nvar getDeltaAngle = function getDeltaAngle(startAngle, endAngle) {\n var sign = mathSign(endAngle - startAngle);\n var deltaAngle = Math.min(Math.abs(endAngle - startAngle), 360);\n return sign * deltaAngle;\n};\nvar renderRadialLabel = function renderRadialLabel(labelProps, label, attrs) {\n var position = labelProps.position,\n viewBox = labelProps.viewBox,\n offset = labelProps.offset,\n className = labelProps.className;\n var _ref = viewBox,\n cx = _ref.cx,\n cy = _ref.cy,\n innerRadius = _ref.innerRadius,\n outerRadius = _ref.outerRadius,\n startAngle = _ref.startAngle,\n endAngle = _ref.endAngle,\n clockWise = _ref.clockWise;\n var radius = (innerRadius + outerRadius) / 2;\n var deltaAngle = getDeltaAngle(startAngle, endAngle);\n var sign = deltaAngle >= 0 ? 1 : -1;\n var labelAngle, direction;\n if (position === 'insideStart') {\n labelAngle = startAngle + sign * offset;\n direction = clockWise;\n } else if (position === 'insideEnd') {\n labelAngle = endAngle - sign * offset;\n direction = !clockWise;\n } else if (position === 'end') {\n labelAngle = endAngle + sign * offset;\n direction = clockWise;\n }\n direction = deltaAngle <= 0 ? direction : !direction;\n var startPoint = polarToCartesian(cx, cy, radius, labelAngle);\n var endPoint = polarToCartesian(cx, cy, radius, labelAngle + (direction ? 1 : -1) * 359);\n var path = \"M\".concat(startPoint.x, \",\").concat(startPoint.y, \"\\n A\").concat(radius, \",\").concat(radius, \",0,1,\").concat(direction ? 0 : 1, \",\\n \").concat(endPoint.x, \",\").concat(endPoint.y);\n var id = _isNil(labelProps.id) ? uniqueId('recharts-radial-line-') : labelProps.id;\n return /*#__PURE__*/React.createElement(\"text\", _extends({}, attrs, {\n dominantBaseline: \"central\",\n className: classNames('recharts-radial-bar-label', className)\n }), /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"path\", {\n id: id,\n d: path\n })), /*#__PURE__*/React.createElement(\"textPath\", {\n xlinkHref: \"#\".concat(id)\n }, label));\n};\nvar getAttrsOfPolarLabel = function getAttrsOfPolarLabel(props) {\n var viewBox = props.viewBox,\n offset = props.offset,\n position = props.position;\n var _ref2 = viewBox,\n cx = _ref2.cx,\n cy = _ref2.cy,\n innerRadius = _ref2.innerRadius,\n outerRadius = _ref2.outerRadius,\n startAngle = _ref2.startAngle,\n endAngle = _ref2.endAngle;\n var midAngle = (startAngle + endAngle) / 2;\n if (position === 'outside') {\n var _polarToCartesian = polarToCartesian(cx, cy, outerRadius + offset, midAngle),\n _x = _polarToCartesian.x,\n _y = _polarToCartesian.y;\n return {\n x: _x,\n y: _y,\n textAnchor: _x >= cx ? 'start' : 'end',\n verticalAnchor: 'middle'\n };\n }\n if (position === 'center') {\n return {\n x: cx,\n y: cy,\n textAnchor: 'middle',\n verticalAnchor: 'middle'\n };\n }\n if (position === 'centerTop') {\n return {\n x: cx,\n y: cy,\n textAnchor: 'middle',\n verticalAnchor: 'start'\n };\n }\n if (position === 'centerBottom') {\n return {\n x: cx,\n y: cy,\n textAnchor: 'middle',\n verticalAnchor: 'end'\n };\n }\n var r = (innerRadius + outerRadius) / 2;\n var _polarToCartesian2 = polarToCartesian(cx, cy, r, midAngle),\n x = _polarToCartesian2.x,\n y = _polarToCartesian2.y;\n return {\n x: x,\n y: y,\n textAnchor: 'middle',\n verticalAnchor: 'middle'\n };\n};\nvar getAttrsOfCartesianLabel = function getAttrsOfCartesianLabel(props) {\n var viewBox = props.viewBox,\n parentViewBox = props.parentViewBox,\n offset = props.offset,\n position = props.position;\n var _ref3 = viewBox,\n x = _ref3.x,\n y = _ref3.y,\n width = _ref3.width,\n height = _ref3.height;\n\n // Define vertical offsets and position inverts based on the value being positive or negative\n var verticalSign = height >= 0 ? 1 : -1;\n var verticalOffset = verticalSign * offset;\n var verticalEnd = verticalSign > 0 ? 'end' : 'start';\n var verticalStart = verticalSign > 0 ? 'start' : 'end';\n\n // Define horizontal offsets and position inverts based on the value being positive or negative\n var horizontalSign = width >= 0 ? 1 : -1;\n var horizontalOffset = horizontalSign * offset;\n var horizontalEnd = horizontalSign > 0 ? 'end' : 'start';\n var horizontalStart = horizontalSign > 0 ? 'start' : 'end';\n if (position === 'top') {\n var attrs = {\n x: x + width / 2,\n y: y - verticalSign * offset,\n textAnchor: 'middle',\n verticalAnchor: verticalEnd\n };\n return _objectSpread(_objectSpread({}, attrs), parentViewBox ? {\n height: Math.max(y - parentViewBox.y, 0),\n width: width\n } : {});\n }\n if (position === 'bottom') {\n var _attrs = {\n x: x + width / 2,\n y: y + height + verticalOffset,\n textAnchor: 'middle',\n verticalAnchor: verticalStart\n };\n return _objectSpread(_objectSpread({}, _attrs), parentViewBox ? {\n height: Math.max(parentViewBox.y + parentViewBox.height - (y + height), 0),\n width: width\n } : {});\n }\n if (position === 'left') {\n var _attrs2 = {\n x: x - horizontalOffset,\n y: y + height / 2,\n textAnchor: horizontalEnd,\n verticalAnchor: 'middle'\n };\n return _objectSpread(_objectSpread({}, _attrs2), parentViewBox ? {\n width: Math.max(_attrs2.x - parentViewBox.x, 0),\n height: height\n } : {});\n }\n if (position === 'right') {\n var _attrs3 = {\n x: x + width + horizontalOffset,\n y: y + height / 2,\n textAnchor: horizontalStart,\n verticalAnchor: 'middle'\n };\n return _objectSpread(_objectSpread({}, _attrs3), parentViewBox ? {\n width: Math.max(parentViewBox.x + parentViewBox.width - _attrs3.x, 0),\n height: height\n } : {});\n }\n var sizeAttrs = parentViewBox ? {\n width: width,\n height: height\n } : {};\n if (position === 'insideLeft') {\n return _objectSpread({\n x: x + horizontalOffset,\n y: y + height / 2,\n textAnchor: horizontalStart,\n verticalAnchor: 'middle'\n }, sizeAttrs);\n }\n if (position === 'insideRight') {\n return _objectSpread({\n x: x + width - horizontalOffset,\n y: y + height / 2,\n textAnchor: horizontalEnd,\n verticalAnchor: 'middle'\n }, sizeAttrs);\n }\n if (position === 'insideTop') {\n return _objectSpread({\n x: x + width / 2,\n y: y + verticalOffset,\n textAnchor: 'middle',\n verticalAnchor: verticalStart\n }, sizeAttrs);\n }\n if (position === 'insideBottom') {\n return _objectSpread({\n x: x + width / 2,\n y: y + height - verticalOffset,\n textAnchor: 'middle',\n verticalAnchor: verticalEnd\n }, sizeAttrs);\n }\n if (position === 'insideTopLeft') {\n return _objectSpread({\n x: x + horizontalOffset,\n y: y + verticalOffset,\n textAnchor: horizontalStart,\n verticalAnchor: verticalStart\n }, sizeAttrs);\n }\n if (position === 'insideTopRight') {\n return _objectSpread({\n x: x + width - horizontalOffset,\n y: y + verticalOffset,\n textAnchor: horizontalEnd,\n verticalAnchor: verticalStart\n }, sizeAttrs);\n }\n if (position === 'insideBottomLeft') {\n return _objectSpread({\n x: x + horizontalOffset,\n y: y + height - verticalOffset,\n textAnchor: horizontalStart,\n verticalAnchor: verticalEnd\n }, sizeAttrs);\n }\n if (position === 'insideBottomRight') {\n return _objectSpread({\n x: x + width - horizontalOffset,\n y: y + height - verticalOffset,\n textAnchor: horizontalEnd,\n verticalAnchor: verticalEnd\n }, sizeAttrs);\n }\n if (_isObject(position) && (isNumber(position.x) || isPercent(position.x)) && (isNumber(position.y) || isPercent(position.y))) {\n return _objectSpread({\n x: x + getPercentValue(position.x, width),\n y: y + getPercentValue(position.y, height),\n textAnchor: 'end',\n verticalAnchor: 'end'\n }, sizeAttrs);\n }\n return _objectSpread({\n x: x + width / 2,\n y: y + height / 2,\n textAnchor: 'middle',\n verticalAnchor: 'middle'\n }, sizeAttrs);\n};\nvar isPolar = function isPolar(viewBox) {\n return 'cx' in viewBox && isNumber(viewBox.cx);\n};\nexport function Label(_ref4) {\n var _ref4$offset = _ref4.offset,\n offset = _ref4$offset === void 0 ? 5 : _ref4$offset,\n restProps = _objectWithoutProperties(_ref4, _excluded);\n var props = _objectSpread({\n offset: offset\n }, restProps);\n var viewBox = props.viewBox,\n position = props.position,\n value = props.value,\n children = props.children,\n content = props.content,\n _props$className = props.className,\n className = _props$className === void 0 ? '' : _props$className,\n textBreakAll = props.textBreakAll;\n if (!viewBox || _isNil(value) && _isNil(children) && ! /*#__PURE__*/isValidElement(content) && !_isFunction(content)) {\n return null;\n }\n if ( /*#__PURE__*/isValidElement(content)) {\n return /*#__PURE__*/cloneElement(content, props);\n }\n var label;\n if (_isFunction(content)) {\n label = /*#__PURE__*/createElement(content, props);\n if ( /*#__PURE__*/isValidElement(label)) {\n return label;\n }\n } else {\n label = getLabel(props);\n }\n var isPolarLabel = isPolar(viewBox);\n var attrs = filterProps(props, true);\n if (isPolarLabel && (position === 'insideStart' || position === 'insideEnd' || position === 'end')) {\n return renderRadialLabel(props, label, attrs);\n }\n var positionAttrs = isPolarLabel ? getAttrsOfPolarLabel(props) : getAttrsOfCartesianLabel(props);\n return /*#__PURE__*/React.createElement(Text, _extends({\n className: classNames('recharts-label', className)\n }, attrs, positionAttrs, {\n breakAll: textBreakAll\n }), label);\n}\nLabel.displayName = 'Label';\nvar parseViewBox = function parseViewBox(props) {\n var cx = props.cx,\n cy = props.cy,\n angle = props.angle,\n startAngle = props.startAngle,\n endAngle = props.endAngle,\n r = props.r,\n radius = props.radius,\n innerRadius = props.innerRadius,\n outerRadius = props.outerRadius,\n x = props.x,\n y = props.y,\n top = props.top,\n left = props.left,\n width = props.width,\n height = props.height,\n clockWise = props.clockWise,\n labelViewBox = props.labelViewBox;\n if (labelViewBox) {\n return labelViewBox;\n }\n if (isNumber(width) && isNumber(height)) {\n if (isNumber(x) && isNumber(y)) {\n return {\n x: x,\n y: y,\n width: width,\n height: height\n };\n }\n if (isNumber(top) && isNumber(left)) {\n return {\n x: top,\n y: left,\n width: width,\n height: height\n };\n }\n }\n if (isNumber(x) && isNumber(y)) {\n return {\n x: x,\n y: y,\n width: 0,\n height: 0\n };\n }\n if (isNumber(cx) && isNumber(cy)) {\n return {\n cx: cx,\n cy: cy,\n startAngle: startAngle || angle || 0,\n endAngle: endAngle || angle || 0,\n innerRadius: innerRadius || 0,\n outerRadius: outerRadius || radius || r || 0,\n clockWise: clockWise\n };\n }\n if (props.viewBox) {\n return props.viewBox;\n }\n return {};\n};\nvar parseLabel = function parseLabel(label, viewBox) {\n if (!label) {\n return null;\n }\n if (label === true) {\n return /*#__PURE__*/React.createElement(Label, {\n key: \"label-implicit\",\n viewBox: viewBox\n });\n }\n if (isNumOrStr(label)) {\n return /*#__PURE__*/React.createElement(Label, {\n key: \"label-implicit\",\n viewBox: viewBox,\n value: label\n });\n }\n if ( /*#__PURE__*/isValidElement(label)) {\n if (label.type === Label) {\n return /*#__PURE__*/cloneElement(label, {\n key: 'label-implicit',\n viewBox: viewBox\n });\n }\n return /*#__PURE__*/React.createElement(Label, {\n key: \"label-implicit\",\n content: label,\n viewBox: viewBox\n });\n }\n if (_isFunction(label)) {\n return /*#__PURE__*/React.createElement(Label, {\n key: \"label-implicit\",\n content: label,\n viewBox: viewBox\n });\n }\n if (_isObject(label)) {\n return /*#__PURE__*/React.createElement(Label, _extends({\n viewBox: viewBox\n }, label, {\n key: \"label-implicit\"\n }));\n }\n return null;\n};\nvar renderCallByParent = function renderCallByParent(parentProps, viewBox) {\n var checkPropsLabel = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n if (!parentProps || !parentProps.children && checkPropsLabel && !parentProps.label) {\n return null;\n }\n var children = parentProps.children;\n var parentViewBox = parseViewBox(parentProps);\n var explicitChildren = findAllByType(children, Label).map(function (child, index) {\n return /*#__PURE__*/cloneElement(child, {\n viewBox: viewBox || parentViewBox,\n // eslint-disable-next-line react/no-array-index-key\n key: \"label-\".concat(index)\n });\n });\n if (!checkPropsLabel) {\n return explicitChildren;\n }\n var implicitLabel = parseLabel(parentProps.label, viewBox || parentViewBox);\n return [implicitLabel].concat(_toConsumableArray(explicitChildren));\n};\nLabel.parseViewBox = parseViewBox;\nLabel.renderCallByParent = renderCallByParent;","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nimport _isObject from \"lodash/isObject\";\nimport _isFunction from \"lodash/isFunction\";\nimport _isNil from \"lodash/isNil\";\nimport _last from \"lodash/last\";\nimport _isArray from \"lodash/isArray\";\nvar _excluded = [\"valueAccessor\"],\n _excluded2 = [\"data\", \"dataKey\", \"clockWise\", \"id\", \"textBreakAll\"];\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _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); }\nfunction 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; }\nfunction _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; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction _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; }\nfunction _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; }\nimport React, { cloneElement } from 'react';\nimport { Label } from './Label';\nimport { Layer } from '../container/Layer';\nimport { findAllByType, filterProps } from '../util/ReactUtils';\nimport { getValueByDataKey } from '../util/ChartUtils';\nvar defaultAccessor = function defaultAccessor(entry) {\n return _isArray(entry.value) ? _last(entry.value) : entry.value;\n};\nexport function LabelList(_ref) {\n var _ref$valueAccessor = _ref.valueAccessor,\n valueAccessor = _ref$valueAccessor === void 0 ? defaultAccessor : _ref$valueAccessor,\n restProps = _objectWithoutProperties(_ref, _excluded);\n var data = restProps.data,\n dataKey = restProps.dataKey,\n clockWise = restProps.clockWise,\n id = restProps.id,\n textBreakAll = restProps.textBreakAll,\n others = _objectWithoutProperties(restProps, _excluded2);\n if (!data || !data.length) {\n return null;\n }\n return /*#__PURE__*/React.createElement(Layer, {\n className: \"recharts-label-list\"\n }, data.map(function (entry, index) {\n var value = _isNil(dataKey) ? valueAccessor(entry, index) : getValueByDataKey(entry && entry.payload, dataKey);\n var idProps = _isNil(id) ? {} : {\n id: \"\".concat(id, \"-\").concat(index)\n };\n return /*#__PURE__*/React.createElement(Label, _extends({}, filterProps(entry, true), others, idProps, {\n parentViewBox: entry.parentViewBox,\n index: index,\n value: value,\n textBreakAll: textBreakAll,\n viewBox: Label.parseViewBox(_isNil(clockWise) ? entry : _objectSpread(_objectSpread({}, entry), {}, {\n clockWise: clockWise\n })),\n key: \"label-\".concat(index) // eslint-disable-line react/no-array-index-key\n }));\n }));\n}\n\nLabelList.displayName = 'LabelList';\nfunction parseLabelList(label, data) {\n if (!label) {\n return null;\n }\n if (label === true) {\n return /*#__PURE__*/React.createElement(LabelList, {\n key: \"labelList-implicit\",\n data: data\n });\n }\n if ( /*#__PURE__*/React.isValidElement(label) || _isFunction(label)) {\n return /*#__PURE__*/React.createElement(LabelList, {\n key: \"labelList-implicit\",\n data: data,\n content: label\n });\n }\n if (_isObject(label)) {\n return /*#__PURE__*/React.createElement(LabelList, _extends({\n data: data\n }, label, {\n key: \"labelList-implicit\"\n }));\n }\n return null;\n}\nfunction renderCallByParent(parentProps, data) {\n var checkPropsLabel = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n if (!parentProps || !parentProps.children && checkPropsLabel && !parentProps.label) {\n return null;\n }\n var children = parentProps.children;\n var explicitChildren = findAllByType(children, LabelList).map(function (child, index) {\n return /*#__PURE__*/cloneElement(child, {\n data: data,\n // eslint-disable-next-line react/no-array-index-key\n key: \"labelList-\".concat(index)\n });\n });\n if (!checkPropsLabel) {\n return explicitChildren;\n }\n var implicitLabelList = parseLabelList(parentProps.label, data);\n return [implicitLabelList].concat(_toConsumableArray(explicitChildren));\n}\nLabelList.renderCallByParent = renderCallByParent;","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nimport _upperFirst from \"lodash/upperFirst\";\nvar _excluded = [\"type\", \"size\", \"sizeType\"];\nfunction _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); }\nfunction 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; }\nfunction _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; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction _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; }\nfunction _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; }\n/**\n * @fileOverview Curve\n */\nimport React from 'react';\nimport { symbol as shapeSymbol, symbolCircle, symbolCross, symbolDiamond, symbolSquare, symbolStar, symbolTriangle, symbolWye } from 'victory-vendor/d3-shape';\nimport classNames from 'classnames';\nimport { filterProps } from '../util/ReactUtils';\nvar symbolFactories = {\n symbolCircle: symbolCircle,\n symbolCross: symbolCross,\n symbolDiamond: symbolDiamond,\n symbolSquare: symbolSquare,\n symbolStar: symbolStar,\n symbolTriangle: symbolTriangle,\n symbolWye: symbolWye\n};\nvar RADIAN = Math.PI / 180;\nvar getSymbolFactory = function getSymbolFactory(type) {\n var name = \"symbol\".concat(_upperFirst(type));\n return symbolFactories[name] || symbolCircle;\n};\nvar calculateAreaSize = function calculateAreaSize(size, sizeType, type) {\n if (sizeType === 'area') {\n return size;\n }\n switch (type) {\n case 'cross':\n return 5 * size * size / 9;\n case 'diamond':\n return 0.5 * size * size / Math.sqrt(3);\n case 'square':\n return size * size;\n case 'star':\n {\n var angle = 18 * RADIAN;\n return 1.25 * size * size * (Math.tan(angle) - Math.tan(angle * 2) * Math.pow(Math.tan(angle), 2));\n }\n case 'triangle':\n return Math.sqrt(3) * size * size / 4;\n case 'wye':\n return (21 - 10 * Math.sqrt(3)) * size * size / 8;\n default:\n return Math.PI * size * size / 4;\n }\n};\nvar registerSymbol = function registerSymbol(key, factory) {\n symbolFactories[\"symbol\".concat(_upperFirst(key))] = factory;\n};\nexport var Symbols = function Symbols(_ref) {\n var _ref$type = _ref.type,\n type = _ref$type === void 0 ? 'circle' : _ref$type,\n _ref$size = _ref.size,\n size = _ref$size === void 0 ? 64 : _ref$size,\n _ref$sizeType = _ref.sizeType,\n sizeType = _ref$sizeType === void 0 ? 'area' : _ref$sizeType,\n rest = _objectWithoutProperties(_ref, _excluded);\n var props = _objectSpread(_objectSpread({}, rest), {}, {\n type: type,\n size: size,\n sizeType: sizeType\n });\n\n /**\n * Calculate the path of curve\n * @return {String} path\n */\n var getPath = function getPath() {\n var symbolFactory = getSymbolFactory(type);\n var symbol = shapeSymbol().type(symbolFactory).size(calculateAreaSize(size, sizeType, type));\n return symbol();\n };\n var className = props.className,\n cx = props.cx,\n cy = props.cy;\n var filteredProps = filterProps(props, true);\n if (cx === +cx && cy === +cy && size === +size) {\n return /*#__PURE__*/React.createElement(\"path\", _extends({}, filteredProps, {\n className: classNames('recharts-symbols', className),\n transform: \"translate(\".concat(cx, \", \").concat(cy, \")\"),\n d: getPath()\n }));\n }\n return null;\n};\nSymbols.registerSymbol = registerSymbol;","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction _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); }\nfunction 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; }\nfunction _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; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _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, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _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); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _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); }; }\nfunction _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); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _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; } }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\n/**\n * @fileOverview Default Legend Content\n */\nimport React, { PureComponent } from 'react';\nimport classNames from 'classnames';\nimport { Surface } from '../container/Surface';\nimport { Symbols } from '../shape/Symbols';\nimport { adaptEventsOfChild } from '../util/types';\nvar SIZE = 32;\nexport var DefaultLegendContent = /*#__PURE__*/function (_PureComponent) {\n _inherits(DefaultLegendContent, _PureComponent);\n var _super = _createSuper(DefaultLegendContent);\n function DefaultLegendContent() {\n _classCallCheck(this, DefaultLegendContent);\n return _super.apply(this, arguments);\n }\n _createClass(DefaultLegendContent, [{\n key: \"renderIcon\",\n value:\n /**\n * Render the path of icon\n * @param {Object} data Data of each legend item\n * @return {String} Path element\n */\n function renderIcon(data) {\n var inactiveColor = this.props.inactiveColor;\n var halfSize = SIZE / 2;\n var sixthSize = SIZE / 6;\n var thirdSize = SIZE / 3;\n var color = data.inactive ? inactiveColor : data.color;\n if (data.type === 'plainline') {\n return /*#__PURE__*/React.createElement(\"line\", {\n strokeWidth: 4,\n fill: \"none\",\n stroke: color,\n strokeDasharray: data.payload.strokeDasharray,\n x1: 0,\n y1: halfSize,\n x2: SIZE,\n y2: halfSize,\n className: \"recharts-legend-icon\"\n });\n }\n if (data.type === 'line') {\n return /*#__PURE__*/React.createElement(\"path\", {\n strokeWidth: 4,\n fill: \"none\",\n stroke: color,\n d: \"M0,\".concat(halfSize, \"h\").concat(thirdSize, \"\\n A\").concat(sixthSize, \",\").concat(sixthSize, \",0,1,1,\").concat(2 * thirdSize, \",\").concat(halfSize, \"\\n H\").concat(SIZE, \"M\").concat(2 * thirdSize, \",\").concat(halfSize, \"\\n A\").concat(sixthSize, \",\").concat(sixthSize, \",0,1,1,\").concat(thirdSize, \",\").concat(halfSize),\n className: \"recharts-legend-icon\"\n });\n }\n if (data.type === 'rect') {\n return /*#__PURE__*/React.createElement(\"path\", {\n stroke: \"none\",\n fill: color,\n d: \"M0,\".concat(SIZE / 8, \"h\").concat(SIZE, \"v\").concat(SIZE * 3 / 4, \"h\").concat(-SIZE, \"z\"),\n className: \"recharts-legend-icon\"\n });\n }\n if ( /*#__PURE__*/React.isValidElement(data.legendIcon)) {\n var iconProps = _objectSpread({}, data);\n delete iconProps.legendIcon;\n return /*#__PURE__*/React.cloneElement(data.legendIcon, iconProps);\n }\n return /*#__PURE__*/React.createElement(Symbols, {\n fill: color,\n cx: halfSize,\n cy: halfSize,\n size: SIZE,\n sizeType: \"diameter\",\n type: data.type\n });\n }\n\n /**\n * Draw items of legend\n * @return {ReactElement} Items\n */\n }, {\n key: \"renderItems\",\n value: function renderItems() {\n var _this = this;\n var _this$props = this.props,\n payload = _this$props.payload,\n iconSize = _this$props.iconSize,\n layout = _this$props.layout,\n formatter = _this$props.formatter,\n inactiveColor = _this$props.inactiveColor;\n var viewBox = {\n x: 0,\n y: 0,\n width: SIZE,\n height: SIZE\n };\n var itemStyle = {\n display: layout === 'horizontal' ? 'inline-block' : 'block',\n marginRight: 10\n };\n var svgStyle = {\n display: 'inline-block',\n verticalAlign: 'middle',\n marginRight: 4\n };\n return payload.map(function (entry, i) {\n var _classNames;\n var finalFormatter = entry.formatter || formatter;\n var className = classNames((_classNames = {\n 'recharts-legend-item': true\n }, _defineProperty(_classNames, \"legend-item-\".concat(i), true), _defineProperty(_classNames, \"inactive\", entry.inactive), _classNames));\n if (entry.type === 'none') {\n return null;\n }\n var color = entry.inactive ? inactiveColor : entry.color;\n return /*#__PURE__*/React.createElement(\"li\", _extends({\n className: className,\n style: itemStyle,\n key: \"legend-item-\".concat(i) // eslint-disable-line react/no-array-index-key\n }, adaptEventsOfChild(_this.props, entry, i)), /*#__PURE__*/React.createElement(Surface, {\n width: iconSize,\n height: iconSize,\n viewBox: viewBox,\n style: svgStyle\n }, _this.renderIcon(entry)), /*#__PURE__*/React.createElement(\"span\", {\n className: \"recharts-legend-item-text\",\n style: {\n color: color\n }\n }, finalFormatter ? finalFormatter(entry.value, entry, i) : entry.value));\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props2 = this.props,\n payload = _this$props2.payload,\n layout = _this$props2.layout,\n align = _this$props2.align;\n if (!payload || !payload.length) {\n return null;\n }\n var finalStyle = {\n padding: 0,\n margin: 0,\n textAlign: layout === 'horizontal' ? align : 'left'\n };\n return /*#__PURE__*/React.createElement(\"ul\", {\n className: \"recharts-default-legend\",\n style: finalStyle\n }, this.renderItems());\n }\n }]);\n return DefaultLegendContent;\n}(PureComponent);\n_defineProperty(DefaultLegendContent, \"displayName\", 'Legend');\n_defineProperty(DefaultLegendContent, \"defaultProps\", {\n iconSize: 14,\n layout: 'horizontal',\n align: 'center',\n verticalAlign: 'middle',\n inactiveColor: '#ccc'\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nimport _isFunction from \"lodash/isFunction\";\nimport _uniqBy from \"lodash/uniqBy\";\nvar _excluded = [\"ref\"];\nfunction 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; }\nfunction _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; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _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, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _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); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _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); }; }\nfunction _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); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _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; } }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction _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; }\nfunction _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; }\n/**\n * @fileOverview Legend\n */\nimport React, { PureComponent } from 'react';\nimport { DefaultLegendContent } from './DefaultLegendContent';\nimport { isNumber } from '../util/DataUtils';\nfunction defaultUniqBy(entry) {\n return entry.value;\n}\nfunction getUniqPayload(option, payload) {\n if (option === true) {\n return _uniqBy(payload, defaultUniqBy);\n }\n if (_isFunction(option)) {\n return _uniqBy(payload, option);\n }\n return payload;\n}\nfunction renderContent(content, props) {\n if ( /*#__PURE__*/React.isValidElement(content)) {\n return /*#__PURE__*/React.cloneElement(content, props);\n }\n if (_isFunction(content)) {\n return /*#__PURE__*/React.createElement(content, props);\n }\n var ref = props.ref,\n otherProps = _objectWithoutProperties(props, _excluded);\n return /*#__PURE__*/React.createElement(DefaultLegendContent, otherProps);\n}\nvar EPS = 1;\nexport var Legend = /*#__PURE__*/function (_PureComponent) {\n _inherits(Legend, _PureComponent);\n var _super = _createSuper(Legend);\n function Legend() {\n var _this;\n _classCallCheck(this, Legend);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"state\", {\n boxWidth: -1,\n boxHeight: -1\n });\n return _this;\n }\n _createClass(Legend, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.updateBBox();\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate() {\n this.updateBBox();\n }\n }, {\n key: \"getBBox\",\n value: function getBBox() {\n if (this.wrapperNode && this.wrapperNode.getBoundingClientRect) {\n return this.wrapperNode.getBoundingClientRect();\n }\n return null;\n }\n }, {\n key: \"getBBoxSnapshot\",\n value: function getBBoxSnapshot() {\n var _this$state = this.state,\n boxWidth = _this$state.boxWidth,\n boxHeight = _this$state.boxHeight;\n if (boxWidth >= 0 && boxHeight >= 0) {\n return {\n width: boxWidth,\n height: boxHeight\n };\n }\n return null;\n }\n }, {\n key: \"getDefaultPosition\",\n value: function getDefaultPosition(style) {\n var _this$props = this.props,\n layout = _this$props.layout,\n align = _this$props.align,\n verticalAlign = _this$props.verticalAlign,\n margin = _this$props.margin,\n chartWidth = _this$props.chartWidth,\n chartHeight = _this$props.chartHeight;\n var hPos, vPos;\n if (!style || (style.left === undefined || style.left === null) && (style.right === undefined || style.right === null)) {\n if (align === 'center' && layout === 'vertical') {\n var _box = this.getBBoxSnapshot() || {\n width: 0\n };\n hPos = {\n left: ((chartWidth || 0) - _box.width) / 2\n };\n } else {\n hPos = align === 'right' ? {\n right: margin && margin.right || 0\n } : {\n left: margin && margin.left || 0\n };\n }\n }\n if (!style || (style.top === undefined || style.top === null) && (style.bottom === undefined || style.bottom === null)) {\n if (verticalAlign === 'middle') {\n var _box2 = this.getBBoxSnapshot() || {\n height: 0\n };\n vPos = {\n top: ((chartHeight || 0) - _box2.height) / 2\n };\n } else {\n vPos = verticalAlign === 'bottom' ? {\n bottom: margin && margin.bottom || 0\n } : {\n top: margin && margin.top || 0\n };\n }\n }\n return _objectSpread(_objectSpread({}, hPos), vPos);\n }\n }, {\n key: \"updateBBox\",\n value: function updateBBox() {\n var _this$state2 = this.state,\n boxWidth = _this$state2.boxWidth,\n boxHeight = _this$state2.boxHeight;\n var onBBoxUpdate = this.props.onBBoxUpdate;\n if (this.wrapperNode && this.wrapperNode.getBoundingClientRect) {\n var _box3 = this.wrapperNode.getBoundingClientRect();\n if (Math.abs(_box3.width - boxWidth) > EPS || Math.abs(_box3.height - boxHeight) > EPS) {\n this.setState({\n boxWidth: _box3.width,\n boxHeight: _box3.height\n }, function () {\n if (onBBoxUpdate) {\n onBBoxUpdate(_box3);\n }\n });\n }\n } else if (boxWidth !== -1 || boxHeight !== -1) {\n this.setState({\n boxWidth: -1,\n boxHeight: -1\n }, function () {\n if (onBBoxUpdate) {\n onBBoxUpdate(null);\n }\n });\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n var _this$props2 = this.props,\n content = _this$props2.content,\n width = _this$props2.width,\n height = _this$props2.height,\n wrapperStyle = _this$props2.wrapperStyle,\n payloadUniqBy = _this$props2.payloadUniqBy,\n payload = _this$props2.payload;\n var outerStyle = _objectSpread(_objectSpread({\n position: 'absolute',\n width: width || 'auto',\n height: height || 'auto'\n }, this.getDefaultPosition(wrapperStyle)), wrapperStyle);\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"recharts-legend-wrapper\",\n style: outerStyle,\n ref: function ref(node) {\n _this2.wrapperNode = node;\n }\n }, renderContent(content, _objectSpread(_objectSpread({}, this.props), {}, {\n payload: getUniqPayload(payloadUniqBy, payload)\n })));\n }\n }], [{\n key: \"getWithHeight\",\n value: function getWithHeight(item, chartWidth) {\n var layout = item.props.layout;\n if (layout === 'vertical' && isNumber(item.props.height)) {\n return {\n height: item.props.height\n };\n }\n if (layout === 'horizontal') {\n return {\n width: item.props.width || chartWidth\n };\n }\n return null;\n }\n }]);\n return Legend;\n}(PureComponent);\n_defineProperty(Legend, \"displayName\", 'Legend');\n_defineProperty(Legend, \"defaultProps\", {\n iconSize: 14,\n layout: 'horizontal',\n align: 'center',\n verticalAlign: 'bottom'\n});","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); }\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : \"undefined\" != typeof Symbol && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i[\"return\"] && (_r = _i[\"return\"](), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n/**\n * @fileOverview Wrapper component to make charts adapt to the size of parent * DOM\n */\nimport classNames from 'classnames';\nimport React, { forwardRef, cloneElement, useState, useImperativeHandle, useRef, useEffect, useCallback, useMemo } from 'react';\nimport ReactResizeDetector from 'react-resize-detector';\nimport { isPercent } from '../util/DataUtils';\nimport { warn } from '../util/LogUtils';\nexport var ResponsiveContainer = /*#__PURE__*/forwardRef(function (_ref, ref) {\n var aspect = _ref.aspect,\n _ref$initialDimension = _ref.initialDimension,\n initialDimension = _ref$initialDimension === void 0 ? {\n width: -1,\n height: -1\n } : _ref$initialDimension,\n _ref$width = _ref.width,\n width = _ref$width === void 0 ? '100%' : _ref$width,\n _ref$height = _ref.height,\n height = _ref$height === void 0 ? '100%' : _ref$height,\n _ref$minWidth = _ref.minWidth,\n minWidth = _ref$minWidth === void 0 ? 0 : _ref$minWidth,\n minHeight = _ref.minHeight,\n maxHeight = _ref.maxHeight,\n children = _ref.children,\n _ref$debounce = _ref.debounce,\n debounce = _ref$debounce === void 0 ? 0 : _ref$debounce,\n id = _ref.id,\n className = _ref.className,\n onResize = _ref.onResize;\n var _useState = useState({\n containerWidth: initialDimension.width,\n containerHeight: initialDimension.height\n }),\n _useState2 = _slicedToArray(_useState, 2),\n sizes = _useState2[0],\n setSizes = _useState2[1];\n var containerRef = useRef(null);\n useImperativeHandle(ref, function () {\n return containerRef;\n }, [containerRef]);\n var getContainerSize = useCallback(function () {\n if (!containerRef.current) {\n return null;\n }\n return {\n containerWidth: containerRef.current.clientWidth,\n containerHeight: containerRef.current.clientHeight\n };\n }, []);\n var updateDimensionsImmediate = useCallback(function () {\n var newSize = getContainerSize();\n if (newSize) {\n var containerWidth = newSize.containerWidth,\n containerHeight = newSize.containerHeight;\n if (onResize) onResize(containerWidth, containerHeight);\n setSizes(function (currentSizes) {\n var oldWidth = currentSizes.containerWidth,\n oldHeight = currentSizes.containerHeight;\n if (containerWidth !== oldWidth || containerHeight !== oldHeight) {\n return {\n containerWidth: containerWidth,\n containerHeight: containerHeight\n };\n }\n return currentSizes;\n });\n }\n }, [getContainerSize, onResize]);\n var chartContent = useMemo(function () {\n var containerWidth = sizes.containerWidth,\n containerHeight = sizes.containerHeight;\n if (containerWidth < 0 || containerHeight < 0) {\n return null;\n }\n warn(isPercent(width) || isPercent(height), \"The width(%s) and height(%s) are both fixed numbers,\\n maybe you don't need to use a ResponsiveContainer.\", width, height);\n warn(!aspect || aspect > 0, 'The aspect(%s) must be greater than zero.', aspect);\n var calculatedWidth = isPercent(width) ? containerWidth : width;\n var calculatedHeight = isPercent(height) ? containerHeight : height;\n if (aspect && aspect > 0) {\n // Preserve the desired aspect ratio\n if (calculatedWidth) {\n // Will default to using width for aspect ratio\n calculatedHeight = calculatedWidth / aspect;\n } else if (calculatedHeight) {\n // But we should also take height into consideration\n calculatedWidth = calculatedHeight * aspect;\n }\n\n // if maxHeight is set, overwrite if calculatedHeight is greater than maxHeight\n if (maxHeight && calculatedHeight > maxHeight) {\n calculatedHeight = maxHeight;\n }\n }\n warn(calculatedWidth > 0 || calculatedHeight > 0, \"The width(%s) and height(%s) of chart should be greater than 0,\\n please check the style of container, or the props width(%s) and height(%s),\\n or add a minWidth(%s) or minHeight(%s) or use aspect(%s) to control the\\n height and width.\", calculatedWidth, calculatedHeight, width, height, minWidth, minHeight, aspect);\n return /*#__PURE__*/cloneElement(children, {\n width: calculatedWidth,\n height: calculatedHeight\n });\n }, [aspect, children, height, maxHeight, minHeight, minWidth, sizes, width]);\n useEffect(function () {\n var size = getContainerSize();\n if (size) {\n setSizes(size);\n }\n }, [getContainerSize]);\n var style = {\n width: width,\n height: height,\n minWidth: minWidth,\n minHeight: minHeight,\n maxHeight: maxHeight\n };\n return /*#__PURE__*/React.createElement(ReactResizeDetector, {\n handleWidth: true,\n handleHeight: true,\n onResize: updateDimensionsImmediate,\n targetRef: containerRef,\n refreshMode: debounce > 0 ? 'debounce' : undefined,\n refreshRate: debounce\n }, /*#__PURE__*/React.createElement(\"div\", _extends({}, id != null ? {\n id: \"\".concat(id)\n } : {}, {\n className: classNames('recharts-responsive-container', className),\n style: style,\n ref: containerRef\n }), chartContent));\n});","import _isNil from \"lodash/isNil\";\nvar _excluded = [\"x\", \"y\", \"lineHeight\", \"capHeight\", \"scaleToFit\", \"textAnchor\", \"verticalAnchor\", \"fill\"],\n _excluded2 = [\"dx\", \"dy\", \"angle\", \"className\", \"breakAll\"];\nfunction _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); }\nfunction _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; }\nfunction _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; }\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : \"undefined\" != typeof Symbol && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i[\"return\"] && (_r = _i[\"return\"](), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nimport React, { useMemo } from 'react';\nimport reduceCSSCalc from 'reduce-css-calc';\nimport classNames from 'classnames';\nimport { isNumber, isNumOrStr } from '../util/DataUtils';\nimport { Global } from '../util/Global';\nimport { filterProps } from '../util/ReactUtils';\nimport { getStringSize } from '../util/DOMUtils';\nvar BREAKING_SPACES = /[ \\f\\n\\r\\t\\v\\u2028\\u2029]+/;\nvar calculateWordWidths = function calculateWordWidths(_ref) {\n var children = _ref.children,\n breakAll = _ref.breakAll,\n style = _ref.style;\n try {\n var words = [];\n if (!_isNil(children)) {\n if (breakAll) {\n words = children.toString().split('');\n } else {\n words = children.toString().split(BREAKING_SPACES);\n }\n }\n var wordsWithComputedWidth = words.map(function (word) {\n return {\n word: word,\n width: getStringSize(word, style).width\n };\n });\n var spaceWidth = breakAll ? 0 : getStringSize(\"\\xA0\", style).width;\n return {\n wordsWithComputedWidth: wordsWithComputedWidth,\n spaceWidth: spaceWidth\n };\n } catch (e) {\n return null;\n }\n};\nvar calculateWordsByLines = function calculateWordsByLines(_ref2, initialWordsWithComputedWith, spaceWidth, lineWidth, scaleToFit) {\n var maxLines = _ref2.maxLines,\n children = _ref2.children,\n style = _ref2.style,\n breakAll = _ref2.breakAll;\n var shouldLimitLines = isNumber(maxLines);\n var text = children;\n var calculate = function calculate() {\n var words = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n return words.reduce(function (result, _ref3) {\n var word = _ref3.word,\n width = _ref3.width;\n var currentLine = result[result.length - 1];\n if (currentLine && (lineWidth == null || scaleToFit || currentLine.width + width + spaceWidth < Number(lineWidth))) {\n // Word can be added to an existing line\n currentLine.words.push(word);\n currentLine.width += width + spaceWidth;\n } else {\n // Add first word to line or word is too long to scaleToFit on existing line\n var newLine = {\n words: [word],\n width: width\n };\n result.push(newLine);\n }\n return result;\n }, []);\n };\n var originalResult = calculate(initialWordsWithComputedWith);\n var findLongestLine = function findLongestLine(words) {\n return words.reduce(function (a, b) {\n return a.width > b.width ? a : b;\n });\n };\n if (!shouldLimitLines) {\n return originalResult;\n }\n var suffix = '…';\n var checkOverflow = function checkOverflow(index) {\n var tempText = text.slice(0, index);\n var words = calculateWordWidths({\n breakAll: breakAll,\n style: style,\n children: tempText + suffix\n }).wordsWithComputedWidth;\n var result = calculate(words);\n var doesOverflow = result.length > maxLines || findLongestLine(result).width > Number(lineWidth);\n return [doesOverflow, result];\n };\n var start = 0;\n var end = text.length - 1;\n var iterations = 0;\n var trimmedResult;\n while (start <= end && iterations <= text.length - 1) {\n var middle = Math.floor((start + end) / 2);\n var prev = middle - 1;\n var _checkOverflow = checkOverflow(prev),\n _checkOverflow2 = _slicedToArray(_checkOverflow, 2),\n doesPrevOverflow = _checkOverflow2[0],\n result = _checkOverflow2[1];\n var _checkOverflow3 = checkOverflow(middle),\n _checkOverflow4 = _slicedToArray(_checkOverflow3, 1),\n doesMiddleOverflow = _checkOverflow4[0];\n if (!doesPrevOverflow && !doesMiddleOverflow) {\n start = middle + 1;\n }\n if (doesPrevOverflow && doesMiddleOverflow) {\n end = middle - 1;\n }\n if (!doesPrevOverflow && doesMiddleOverflow) {\n trimmedResult = result;\n break;\n }\n iterations++;\n }\n\n // Fallback to originalResult (result without trimming) if we cannot find the\n // where to trim. This should not happen :tm:\n return trimmedResult || originalResult;\n};\nvar getWordsWithoutCalculate = function getWordsWithoutCalculate(children) {\n var words = !_isNil(children) ? children.toString().split(BREAKING_SPACES) : [];\n return [{\n words: words\n }];\n};\nvar getWordsByLines = function getWordsByLines(_ref4) {\n var width = _ref4.width,\n scaleToFit = _ref4.scaleToFit,\n children = _ref4.children,\n style = _ref4.style,\n breakAll = _ref4.breakAll,\n maxLines = _ref4.maxLines;\n // Only perform calculations if using features that require them (multiline, scaleToFit)\n if ((width || scaleToFit) && !Global.isSsr) {\n var wordsWithComputedWidth, spaceWidth;\n var wordWidths = calculateWordWidths({\n breakAll: breakAll,\n children: children,\n style: style\n });\n if (wordWidths) {\n var wcw = wordWidths.wordsWithComputedWidth,\n sw = wordWidths.spaceWidth;\n wordsWithComputedWidth = wcw;\n spaceWidth = sw;\n } else {\n return getWordsWithoutCalculate(children);\n }\n return calculateWordsByLines({\n breakAll: breakAll,\n children: children,\n maxLines: maxLines,\n style: style\n }, wordsWithComputedWidth, spaceWidth, width, scaleToFit);\n }\n return getWordsWithoutCalculate(children);\n};\nvar DEFAULT_FILL = '#808080';\nexport var Text = function Text(_ref5) {\n var _ref5$x = _ref5.x,\n propsX = _ref5$x === void 0 ? 0 : _ref5$x,\n _ref5$y = _ref5.y,\n propsY = _ref5$y === void 0 ? 0 : _ref5$y,\n _ref5$lineHeight = _ref5.lineHeight,\n lineHeight = _ref5$lineHeight === void 0 ? '1em' : _ref5$lineHeight,\n _ref5$capHeight = _ref5.capHeight,\n capHeight = _ref5$capHeight === void 0 ? '0.71em' : _ref5$capHeight,\n _ref5$scaleToFit = _ref5.scaleToFit,\n scaleToFit = _ref5$scaleToFit === void 0 ? false : _ref5$scaleToFit,\n _ref5$textAnchor = _ref5.textAnchor,\n textAnchor = _ref5$textAnchor === void 0 ? 'start' : _ref5$textAnchor,\n _ref5$verticalAnchor = _ref5.verticalAnchor,\n verticalAnchor = _ref5$verticalAnchor === void 0 ? 'end' : _ref5$verticalAnchor,\n _ref5$fill = _ref5.fill,\n fill = _ref5$fill === void 0 ? DEFAULT_FILL : _ref5$fill,\n props = _objectWithoutProperties(_ref5, _excluded);\n var wordsByLines = useMemo(function () {\n return getWordsByLines({\n breakAll: props.breakAll,\n children: props.children,\n maxLines: props.maxLines,\n scaleToFit: scaleToFit,\n style: props.style,\n width: props.width\n });\n }, [props.breakAll, props.children, props.maxLines, scaleToFit, props.style, props.width]);\n var dx = props.dx,\n dy = props.dy,\n angle = props.angle,\n className = props.className,\n breakAll = props.breakAll,\n textProps = _objectWithoutProperties(props, _excluded2);\n if (!isNumOrStr(propsX) || !isNumOrStr(propsY)) {\n return null;\n }\n var x = propsX + (isNumber(dx) ? dx : 0);\n var y = propsY + (isNumber(dy) ? dy : 0);\n var startDy;\n switch (verticalAnchor) {\n case 'start':\n startDy = reduceCSSCalc(\"calc(\".concat(capHeight, \")\"));\n break;\n case 'middle':\n startDy = reduceCSSCalc(\"calc(\".concat((wordsByLines.length - 1) / 2, \" * -\").concat(lineHeight, \" + (\").concat(capHeight, \" / 2))\"));\n break;\n default:\n startDy = reduceCSSCalc(\"calc(\".concat(wordsByLines.length - 1, \" * -\").concat(lineHeight, \")\"));\n break;\n }\n var transforms = [];\n if (scaleToFit) {\n var lineWidth = wordsByLines[0].width;\n var width = props.width;\n transforms.push(\"scale(\".concat((isNumber(width) ? width / lineWidth : 1) / lineWidth, \")\"));\n }\n if (angle) {\n transforms.push(\"rotate(\".concat(angle, \", \").concat(x, \", \").concat(y, \")\"));\n }\n if (transforms.length) {\n textProps.transform = transforms.join(' ');\n }\n return /*#__PURE__*/React.createElement(\"text\", _extends({}, filterProps(textProps, true), {\n x: x,\n y: y,\n className: classNames('recharts-text', className),\n textAnchor: textAnchor,\n fill: fill.includes('url') ? DEFAULT_FILL : fill\n }), wordsByLines.map(function (line, index) {\n return (\n /*#__PURE__*/\n // eslint-disable-next-line react/no-array-index-key\n React.createElement(\"tspan\", {\n x: x,\n dy: index === 0 ? startDy : lineHeight,\n key: index\n }, line.words.join(breakAll ? '' : ' '))\n );\n }));\n};","import _isNil from \"lodash/isNil\";\nimport _sortBy from \"lodash/sortBy\";\nimport _isArray from \"lodash/isArray\";\n/**\n * @fileOverview Default Tooltip Content\n */\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : \"undefined\" != typeof Symbol && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i[\"return\"] && (_r = _i[\"return\"](), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nfunction 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; }\nfunction _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; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nimport React from 'react';\nimport classNames from 'classnames';\nimport { isNumOrStr } from '../util/DataUtils';\nfunction defaultFormatter(value) {\n return _isArray(value) && isNumOrStr(value[0]) && isNumOrStr(value[1]) ? value.join(' ~ ') : value;\n}\nexport var DefaultTooltipContent = function DefaultTooltipContent(props) {\n var _props$separator = props.separator,\n separator = _props$separator === void 0 ? ' : ' : _props$separator,\n _props$contentStyle = props.contentStyle,\n contentStyle = _props$contentStyle === void 0 ? {} : _props$contentStyle,\n _props$itemStyle = props.itemStyle,\n itemStyle = _props$itemStyle === void 0 ? {} : _props$itemStyle,\n _props$labelStyle = props.labelStyle,\n labelStyle = _props$labelStyle === void 0 ? {} : _props$labelStyle,\n payload = props.payload,\n formatter = props.formatter,\n itemSorter = props.itemSorter,\n wrapperClassName = props.wrapperClassName,\n labelClassName = props.labelClassName,\n label = props.label,\n labelFormatter = props.labelFormatter;\n var renderContent = function renderContent() {\n if (payload && payload.length) {\n var listStyle = {\n padding: 0,\n margin: 0\n };\n var items = (itemSorter ? _sortBy(payload, itemSorter) : payload).map(function (entry, i) {\n if (entry.type === 'none') {\n return null;\n }\n var finalItemStyle = _objectSpread({\n display: 'block',\n paddingTop: 4,\n paddingBottom: 4,\n color: entry.color || '#000'\n }, itemStyle);\n var finalFormatter = entry.formatter || formatter || defaultFormatter;\n var value = entry.value,\n name = entry.name;\n var finalValue = value;\n var finalName = name;\n if (finalFormatter && finalValue != null && finalName != null) {\n var formatted = finalFormatter(value, name, entry, i, payload);\n if (Array.isArray(formatted)) {\n var _formatted = _slicedToArray(formatted, 2);\n finalValue = _formatted[0];\n finalName = _formatted[1];\n } else {\n finalValue = formatted;\n }\n }\n return (\n /*#__PURE__*/\n // eslint-disable-next-line react/no-array-index-key\n React.createElement(\"li\", {\n className: \"recharts-tooltip-item\",\n key: \"tooltip-item-\".concat(i),\n style: finalItemStyle\n }, isNumOrStr(finalName) ? /*#__PURE__*/React.createElement(\"span\", {\n className: \"recharts-tooltip-item-name\"\n }, finalName) : null, isNumOrStr(finalName) ? /*#__PURE__*/React.createElement(\"span\", {\n className: \"recharts-tooltip-item-separator\"\n }, separator) : null, /*#__PURE__*/React.createElement(\"span\", {\n className: \"recharts-tooltip-item-value\"\n }, finalValue), /*#__PURE__*/React.createElement(\"span\", {\n className: \"recharts-tooltip-item-unit\"\n }, entry.unit || ''))\n );\n });\n return /*#__PURE__*/React.createElement(\"ul\", {\n className: \"recharts-tooltip-item-list\",\n style: listStyle\n }, items);\n }\n return null;\n };\n var finalStyle = _objectSpread({\n margin: 0,\n padding: 10,\n backgroundColor: '#fff',\n border: '1px solid #ccc',\n whiteSpace: 'nowrap'\n }, contentStyle);\n var finalLabelStyle = _objectSpread({\n margin: 0\n }, labelStyle);\n var hasLabel = !_isNil(label);\n var finalLabel = hasLabel ? label : '';\n var wrapperCN = classNames('recharts-default-tooltip', wrapperClassName);\n var labelCN = classNames('recharts-tooltip-label', labelClassName);\n if (hasLabel && labelFormatter && payload !== undefined && payload !== null) {\n finalLabel = labelFormatter(label, payload);\n }\n return /*#__PURE__*/React.createElement(\"div\", {\n className: wrapperCN,\n style: finalStyle\n }, /*#__PURE__*/React.createElement(\"p\", {\n className: labelCN,\n style: finalLabelStyle\n }, /*#__PURE__*/React.isValidElement(finalLabel) ? finalLabel : \"\".concat(finalLabel)), renderContent());\n};","import _isNil from \"lodash/isNil\";\nimport _isFunction from \"lodash/isFunction\";\nimport _uniqBy from \"lodash/uniqBy\";\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction 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; }\nfunction _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; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _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, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _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); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _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); }; }\nfunction _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); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _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; } }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\n/**\n * @fileOverview Tooltip\n */\nimport React, { PureComponent } from 'react';\nimport { translateStyle } from 'react-smooth';\nimport classNames from 'classnames';\nimport { DefaultTooltipContent } from './DefaultTooltipContent';\nimport { Global } from '../util/Global';\nimport { isNumber } from '../util/DataUtils';\nvar CLS_PREFIX = 'recharts-tooltip-wrapper';\nvar EPS = 1;\nfunction defaultUniqBy(entry) {\n return entry.dataKey;\n}\nfunction getUniqPayload(option, payload) {\n if (option === true) {\n return _uniqBy(payload, defaultUniqBy);\n }\n if (_isFunction(option)) {\n return _uniqBy(payload, option);\n }\n return payload;\n}\nfunction renderContent(content, props) {\n if ( /*#__PURE__*/React.isValidElement(content)) {\n return /*#__PURE__*/React.cloneElement(content, props);\n }\n if (_isFunction(content)) {\n return /*#__PURE__*/React.createElement(content, props);\n }\n return /*#__PURE__*/React.createElement(DefaultTooltipContent, props);\n}\nexport var Tooltip = /*#__PURE__*/function (_PureComponent) {\n _inherits(Tooltip, _PureComponent);\n var _super = _createSuper(Tooltip);\n function Tooltip() {\n var _this;\n _classCallCheck(this, Tooltip);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"state\", {\n boxWidth: -1,\n boxHeight: -1,\n dismissed: false,\n dismissedAtCoordinate: {\n x: 0,\n y: 0\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"handleKeyDown\", function (event) {\n if (event.key === 'Escape') {\n _this.setState({\n dismissed: true,\n dismissedAtCoordinate: _objectSpread(_objectSpread({}, _this.state.dismissedAtCoordinate), {}, {\n x: _this.props.coordinate.x,\n y: _this.props.coordinate.y\n })\n });\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"getTranslate\", function (_ref) {\n var key = _ref.key,\n tooltipDimension = _ref.tooltipDimension,\n viewBoxDimension = _ref.viewBoxDimension;\n var _this$props = _this.props,\n allowEscapeViewBox = _this$props.allowEscapeViewBox,\n reverseDirection = _this$props.reverseDirection,\n coordinate = _this$props.coordinate,\n offset = _this$props.offset,\n position = _this$props.position,\n viewBox = _this$props.viewBox;\n if (position && isNumber(position[key])) {\n return position[key];\n }\n var negative = coordinate[key] - tooltipDimension - offset;\n var positive = coordinate[key] + offset;\n if (allowEscapeViewBox[key]) {\n return reverseDirection[key] ? negative : positive;\n }\n if (reverseDirection[key]) {\n var _tooltipBoundary = negative;\n var _viewBoxBoundary = viewBox[key];\n if (_tooltipBoundary < _viewBoxBoundary) {\n return Math.max(positive, viewBox[key]);\n }\n return Math.max(negative, viewBox[key]);\n }\n var tooltipBoundary = positive + tooltipDimension;\n var viewBoxBoundary = viewBox[key] + viewBoxDimension;\n if (tooltipBoundary > viewBoxBoundary) {\n return Math.max(negative, viewBox[key]);\n }\n return Math.max(positive, viewBox[key]);\n });\n return _this;\n }\n _createClass(Tooltip, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.updateBBox();\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n document.removeEventListener('keydown', this.handleKeyDown);\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate() {\n this.updateBBox();\n }\n }, {\n key: \"updateBBox\",\n value: function updateBBox() {\n var _this$state = this.state,\n boxWidth = _this$state.boxWidth,\n boxHeight = _this$state.boxHeight,\n dismissed = _this$state.dismissed;\n if (dismissed) {\n document.removeEventListener('keydown', this.handleKeyDown);\n if (this.props.coordinate.x !== this.state.dismissedAtCoordinate.x || this.props.coordinate.y !== this.state.dismissedAtCoordinate.y) {\n this.setState({\n dismissed: false\n });\n }\n } else {\n document.addEventListener('keydown', this.handleKeyDown);\n }\n if (this.wrapperNode && this.wrapperNode.getBoundingClientRect) {\n var box = this.wrapperNode.getBoundingClientRect();\n if (Math.abs(box.width - boxWidth) > EPS || Math.abs(box.height - boxHeight) > EPS) {\n this.setState({\n boxWidth: box.width,\n boxHeight: box.height\n });\n }\n } else if (boxWidth !== -1 || boxHeight !== -1) {\n this.setState({\n boxWidth: -1,\n boxHeight: -1\n });\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var _classNames,\n _this2 = this;\n var _this$props2 = this.props,\n payload = _this$props2.payload,\n isAnimationActive = _this$props2.isAnimationActive,\n animationDuration = _this$props2.animationDuration,\n animationEasing = _this$props2.animationEasing,\n filterNull = _this$props2.filterNull,\n payloadUniqBy = _this$props2.payloadUniqBy;\n var finalPayload = getUniqPayload(payloadUniqBy, filterNull && payload && payload.length ? payload.filter(function (entry) {\n return !_isNil(entry.value);\n }) : payload);\n var hasPayload = finalPayload && finalPayload.length;\n var _this$props3 = this.props,\n content = _this$props3.content,\n viewBox = _this$props3.viewBox,\n coordinate = _this$props3.coordinate,\n position = _this$props3.position,\n active = _this$props3.active,\n wrapperStyle = _this$props3.wrapperStyle;\n var outerStyle = _objectSpread({\n pointerEvents: 'none',\n visibility: !this.state.dismissed && active && hasPayload ? 'visible' : 'hidden',\n position: 'absolute',\n top: 0,\n left: 0\n }, wrapperStyle);\n var translateX, translateY;\n if (position && isNumber(position.x) && isNumber(position.y)) {\n translateX = position.x;\n translateY = position.y;\n } else {\n var _this$state2 = this.state,\n boxWidth = _this$state2.boxWidth,\n boxHeight = _this$state2.boxHeight;\n if (boxWidth > 0 && boxHeight > 0 && coordinate) {\n translateX = this.getTranslate({\n key: 'x',\n tooltipDimension: boxWidth,\n viewBoxDimension: viewBox.width\n });\n translateY = this.getTranslate({\n key: 'y',\n tooltipDimension: boxHeight,\n viewBoxDimension: viewBox.height\n });\n } else {\n outerStyle.visibility = 'hidden';\n }\n }\n outerStyle = _objectSpread(_objectSpread({}, translateStyle({\n transform: this.props.useTranslate3d ? \"translate3d(\".concat(translateX, \"px, \").concat(translateY, \"px, 0)\") : \"translate(\".concat(translateX, \"px, \").concat(translateY, \"px)\")\n })), outerStyle);\n if (isAnimationActive && active) {\n outerStyle = _objectSpread(_objectSpread({}, translateStyle({\n transition: \"transform \".concat(animationDuration, \"ms \").concat(animationEasing)\n })), outerStyle);\n }\n var cls = classNames(CLS_PREFIX, (_classNames = {}, _defineProperty(_classNames, \"\".concat(CLS_PREFIX, \"-right\"), isNumber(translateX) && coordinate && isNumber(coordinate.x) && translateX >= coordinate.x), _defineProperty(_classNames, \"\".concat(CLS_PREFIX, \"-left\"), isNumber(translateX) && coordinate && isNumber(coordinate.x) && translateX < coordinate.x), _defineProperty(_classNames, \"\".concat(CLS_PREFIX, \"-bottom\"), isNumber(translateY) && coordinate && isNumber(coordinate.y) && translateY >= coordinate.y), _defineProperty(_classNames, \"\".concat(CLS_PREFIX, \"-top\"), isNumber(translateY) && coordinate && isNumber(coordinate.y) && translateY < coordinate.y), _classNames));\n return (\n /*#__PURE__*/\n // ESLint is disabled to allow listening to the `Escape` key. Refer to\n // https://github.com/recharts/recharts/pull/2925\n // eslint-disable-next-line jsx-a11y/no-noninteractive-element-interactions\n React.createElement(\"div\", {\n tabIndex: -1,\n role: \"dialog\",\n className: cls,\n style: outerStyle,\n ref: function ref(node) {\n _this2.wrapperNode = node;\n }\n }, renderContent(content, _objectSpread(_objectSpread({}, this.props), {}, {\n payload: finalPayload\n })))\n );\n }\n }]);\n return Tooltip;\n}(PureComponent);\n_defineProperty(Tooltip, \"displayName\", 'Tooltip');\n_defineProperty(Tooltip, \"defaultProps\", {\n active: false,\n allowEscapeViewBox: {\n x: false,\n y: false\n },\n reverseDirection: {\n x: false,\n y: false\n },\n offset: 10,\n viewBox: {\n x: 0,\n y: 0,\n height: 0,\n width: 0\n },\n coordinate: {\n x: 0,\n y: 0\n },\n cursorStyle: {},\n separator: ' : ',\n wrapperStyle: {},\n contentStyle: {},\n itemStyle: {},\n labelStyle: {},\n cursor: true,\n trigger: 'hover',\n isAnimationActive: !Global.isSsr,\n animationEasing: 'ease',\n animationDuration: 400,\n filterNull: true,\n useTranslate3d: false\n});","var _excluded = [\"children\", \"className\"];\nfunction _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); }\nfunction _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; }\nfunction _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; }\n/**\n * @fileOverview Layer\n */\nimport React from 'react';\nimport classNames from 'classnames';\nimport { filterProps } from '../util/ReactUtils';\nexport var Layer = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var children = props.children,\n className = props.className,\n others = _objectWithoutProperties(props, _excluded);\n var layerClass = classNames('recharts-layer', className);\n return /*#__PURE__*/React.createElement(\"g\", _extends({\n className: layerClass\n }, filterProps(others, true), {\n ref: ref\n }), children);\n});","var _excluded = [\"children\", \"width\", \"height\", \"viewBox\", \"className\", \"style\"];\nfunction _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); }\nfunction _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; }\nfunction _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; }\n/**\n * @fileOverview Surface\n */\nimport React from 'react';\nimport classNames from 'classnames';\nimport { filterProps } from '../util/ReactUtils';\nexport function Surface(props) {\n var children = props.children,\n width = props.width,\n height = props.height,\n viewBox = props.viewBox,\n className = props.className,\n style = props.style,\n others = _objectWithoutProperties(props, _excluded);\n var svgView = viewBox || {\n width: width,\n height: height,\n x: 0,\n y: 0\n };\n var layerClass = classNames('recharts-surface', className);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({}, filterProps(others, true, 'svg'), {\n className: layerClass,\n width: width,\n height: height,\n style: style,\n viewBox: \"\".concat(svgView.x, \" \").concat(svgView.y, \" \").concat(svgView.width, \" \").concat(svgView.height)\n }), /*#__PURE__*/React.createElement(\"title\", null, props.title), /*#__PURE__*/React.createElement(\"desc\", null, props.desc), children);\n}","import _isEqual from \"lodash/isEqual\";\nimport _get from \"lodash/get\";\nimport _isPlainObject from \"lodash/isPlainObject\";\nimport _isFunction from \"lodash/isFunction\";\nimport _isNil from \"lodash/isNil\";\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction _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); }\nfunction 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; }\nfunction _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; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _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, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _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); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _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); }; }\nfunction _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); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _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; } }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\n/**\n * @fileOverview Render sectors of a pie\n */\nimport React, { PureComponent } from 'react';\nimport Animate from 'react-smooth';\nimport classNames from 'classnames';\nimport { Layer } from '../container/Layer';\nimport { Sector } from '../shape/Sector';\nimport { Curve } from '../shape/Curve';\nimport { Text } from '../component/Text';\nimport { Label } from '../component/Label';\nimport { LabelList } from '../component/LabelList';\nimport { Cell } from '../component/Cell';\nimport { findAllByType, filterProps } from '../util/ReactUtils';\nimport { Global } from '../util/Global';\nimport { polarToCartesian, getMaxRadius } from '../util/PolarUtils';\nimport { isNumber, getPercentValue, mathSign, interpolateNumber, uniqueId } from '../util/DataUtils';\nimport { getValueByDataKey } from '../util/ChartUtils';\nimport { warn } from '../util/LogUtils';\nimport { adaptEventsOfChild } from '../util/types';\nexport var Pie = /*#__PURE__*/function (_PureComponent) {\n _inherits(Pie, _PureComponent);\n var _super = _createSuper(Pie);\n function Pie(props) {\n var _this;\n _classCallCheck(this, Pie);\n _this = _super.call(this, props);\n _defineProperty(_assertThisInitialized(_this), \"pieRef\", null);\n _defineProperty(_assertThisInitialized(_this), \"sectorRefs\", []);\n _defineProperty(_assertThisInitialized(_this), \"id\", uniqueId('recharts-pie-'));\n _defineProperty(_assertThisInitialized(_this), \"handleAnimationEnd\", function () {\n var onAnimationEnd = _this.props.onAnimationEnd;\n _this.setState({\n isAnimationFinished: true\n });\n if (_isFunction(onAnimationEnd)) {\n onAnimationEnd();\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"handleAnimationStart\", function () {\n var onAnimationStart = _this.props.onAnimationStart;\n _this.setState({\n isAnimationFinished: false\n });\n if (_isFunction(onAnimationStart)) {\n onAnimationStart();\n }\n });\n _this.state = {\n isAnimationFinished: !props.isAnimationActive,\n prevIsAnimationActive: props.isAnimationActive,\n prevAnimationId: props.animationId,\n sectorToFocus: 0\n };\n return _this;\n }\n _createClass(Pie, [{\n key: \"isActiveIndex\",\n value: function isActiveIndex(i) {\n var activeIndex = this.props.activeIndex;\n if (Array.isArray(activeIndex)) {\n return activeIndex.indexOf(i) !== -1;\n }\n return i === activeIndex;\n }\n }, {\n key: \"hasActiveIndex\",\n value: function hasActiveIndex() {\n var activeIndex = this.props.activeIndex;\n return Array.isArray(activeIndex) ? activeIndex.length !== 0 : activeIndex || activeIndex === 0;\n }\n }, {\n key: \"renderLabels\",\n value: function renderLabels(sectors) {\n var isAnimationActive = this.props.isAnimationActive;\n if (isAnimationActive && !this.state.isAnimationFinished) {\n return null;\n }\n var _this$props = this.props,\n label = _this$props.label,\n labelLine = _this$props.labelLine,\n dataKey = _this$props.dataKey,\n valueKey = _this$props.valueKey;\n var pieProps = filterProps(this.props);\n var customLabelProps = filterProps(label);\n var customLabelLineProps = filterProps(labelLine);\n var offsetRadius = label && label.offsetRadius || 20;\n var labels = sectors.map(function (entry, i) {\n var midAngle = (entry.startAngle + entry.endAngle) / 2;\n var endPoint = polarToCartesian(entry.cx, entry.cy, entry.outerRadius + offsetRadius, midAngle);\n var labelProps = _objectSpread(_objectSpread(_objectSpread(_objectSpread({}, pieProps), entry), {}, {\n stroke: 'none'\n }, customLabelProps), {}, {\n index: i,\n textAnchor: Pie.getTextAnchor(endPoint.x, entry.cx)\n }, endPoint);\n var lineProps = _objectSpread(_objectSpread(_objectSpread(_objectSpread({}, pieProps), entry), {}, {\n fill: 'none',\n stroke: entry.fill\n }, customLabelLineProps), {}, {\n index: i,\n points: [polarToCartesian(entry.cx, entry.cy, entry.outerRadius, midAngle), endPoint],\n key: 'line'\n });\n var realDataKey = dataKey;\n // TODO: compatible to lower versions\n if (_isNil(dataKey) && _isNil(valueKey)) {\n realDataKey = 'value';\n } else if (_isNil(dataKey)) {\n realDataKey = valueKey;\n }\n return (\n /*#__PURE__*/\n // eslint-disable-next-line react/no-array-index-key\n React.createElement(Layer, {\n key: \"label-\".concat(i)\n }, labelLine && Pie.renderLabelLineItem(labelLine, lineProps), Pie.renderLabelItem(label, labelProps, getValueByDataKey(entry, realDataKey)))\n );\n });\n return /*#__PURE__*/React.createElement(Layer, {\n className: \"recharts-pie-labels\"\n }, labels);\n }\n }, {\n key: \"renderSectorsStatically\",\n value: function renderSectorsStatically(sectors) {\n var _this2 = this;\n var _this$props2 = this.props,\n activeShape = _this$props2.activeShape,\n blendStroke = _this$props2.blendStroke,\n inactiveShapeProp = _this$props2.inactiveShape;\n return sectors.map(function (entry, i) {\n var inactiveShape = inactiveShapeProp && _this2.hasActiveIndex() ? inactiveShapeProp : null;\n var sectorOptions = _this2.isActiveIndex(i) ? activeShape : inactiveShape;\n var sectorProps = _objectSpread(_objectSpread({}, entry), {}, {\n stroke: blendStroke ? entry.fill : entry.stroke\n });\n return /*#__PURE__*/React.createElement(Layer, _extends({\n ref: function ref(_ref) {\n if (_ref && !_this2.sectorRefs.includes(_ref)) {\n _this2.sectorRefs.push(_ref);\n }\n },\n tabIndex: -1,\n className: \"recharts-pie-sector\"\n }, adaptEventsOfChild(_this2.props, entry, i), {\n key: \"sector-\".concat(i) // eslint-disable-line react/no-array-index-key\n }), Pie.renderSectorItem(sectorOptions, sectorProps));\n });\n }\n }, {\n key: \"renderSectorsWithAnimation\",\n value: function renderSectorsWithAnimation() {\n var _this3 = this;\n var _this$props3 = this.props,\n sectors = _this$props3.sectors,\n isAnimationActive = _this$props3.isAnimationActive,\n animationBegin = _this$props3.animationBegin,\n animationDuration = _this$props3.animationDuration,\n animationEasing = _this$props3.animationEasing,\n animationId = _this$props3.animationId;\n var _this$state = this.state,\n prevSectors = _this$state.prevSectors,\n prevIsAnimationActive = _this$state.prevIsAnimationActive;\n return /*#__PURE__*/React.createElement(Animate, {\n begin: animationBegin,\n duration: animationDuration,\n isActive: isAnimationActive,\n easing: animationEasing,\n from: {\n t: 0\n },\n to: {\n t: 1\n },\n key: \"pie-\".concat(animationId, \"-\").concat(prevIsAnimationActive),\n onAnimationStart: this.handleAnimationStart,\n onAnimationEnd: this.handleAnimationEnd\n }, function (_ref2) {\n var t = _ref2.t;\n var stepData = [];\n var first = sectors && sectors[0];\n var curAngle = first.startAngle;\n sectors.forEach(function (entry, index) {\n var prev = prevSectors && prevSectors[index];\n var paddingAngle = index > 0 ? _get(entry, 'paddingAngle', 0) : 0;\n if (prev) {\n var angleIp = interpolateNumber(prev.endAngle - prev.startAngle, entry.endAngle - entry.startAngle);\n var latest = _objectSpread(_objectSpread({}, entry), {}, {\n startAngle: curAngle + paddingAngle,\n endAngle: curAngle + angleIp(t) + paddingAngle\n });\n stepData.push(latest);\n curAngle = latest.endAngle;\n } else {\n var endAngle = entry.endAngle,\n startAngle = entry.startAngle;\n var interpolatorAngle = interpolateNumber(0, endAngle - startAngle);\n var deltaAngle = interpolatorAngle(t);\n var _latest = _objectSpread(_objectSpread({}, entry), {}, {\n startAngle: curAngle + paddingAngle,\n endAngle: curAngle + deltaAngle + paddingAngle\n });\n stepData.push(_latest);\n curAngle = _latest.endAngle;\n }\n });\n return /*#__PURE__*/React.createElement(Layer, null, _this3.renderSectorsStatically(stepData));\n });\n }\n }, {\n key: \"attachKeyboardHandlers\",\n value: function attachKeyboardHandlers(pieRef) {\n var _this4 = this;\n // eslint-disable-next-line no-param-reassign\n pieRef.onkeydown = function (e) {\n if (!e.altKey) {\n switch (e.key) {\n case 'ArrowLeft':\n {\n var next = ++_this4.state.sectorToFocus % _this4.sectorRefs.length;\n _this4.sectorRefs[next].focus();\n _this4.setState({\n sectorToFocus: next\n });\n break;\n }\n case 'ArrowRight':\n {\n var _next = --_this4.state.sectorToFocus < 0 ? _this4.sectorRefs.length - 1 : _this4.state.sectorToFocus % _this4.sectorRefs.length;\n _this4.sectorRefs[_next].focus();\n _this4.setState({\n sectorToFocus: _next\n });\n break;\n }\n case 'Escape':\n {\n _this4.sectorRefs[_this4.state.sectorToFocus].blur();\n _this4.setState({\n sectorToFocus: 0\n });\n break;\n }\n default:\n {\n // There is nothing to do here\n }\n }\n }\n };\n }\n }, {\n key: \"renderSectors\",\n value: function renderSectors() {\n var _this$props4 = this.props,\n sectors = _this$props4.sectors,\n isAnimationActive = _this$props4.isAnimationActive;\n var prevSectors = this.state.prevSectors;\n if (isAnimationActive && sectors && sectors.length && (!prevSectors || !_isEqual(prevSectors, sectors))) {\n return this.renderSectorsWithAnimation();\n }\n return this.renderSectorsStatically(sectors);\n }\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n if (this.pieRef) {\n this.attachKeyboardHandlers(this.pieRef);\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this5 = this;\n var _this$props5 = this.props,\n hide = _this$props5.hide,\n sectors = _this$props5.sectors,\n className = _this$props5.className,\n label = _this$props5.label,\n cx = _this$props5.cx,\n cy = _this$props5.cy,\n innerRadius = _this$props5.innerRadius,\n outerRadius = _this$props5.outerRadius,\n isAnimationActive = _this$props5.isAnimationActive;\n var isAnimationFinished = this.state.isAnimationFinished;\n if (hide || !sectors || !sectors.length || !isNumber(cx) || !isNumber(cy) || !isNumber(innerRadius) || !isNumber(outerRadius)) {\n return null;\n }\n var layerClass = classNames('recharts-pie', className);\n return /*#__PURE__*/React.createElement(Layer, {\n tabIndex: this.props.rootTabIndex,\n className: layerClass,\n ref: function ref(_ref3) {\n _this5.pieRef = _ref3;\n }\n }, this.renderSectors(), label && this.renderLabels(sectors), Label.renderCallByParent(this.props, null, false), (!isAnimationActive || isAnimationFinished) && LabelList.renderCallByParent(this.props, sectors, false));\n }\n }], [{\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(nextProps, prevState) {\n if (prevState.prevIsAnimationActive !== nextProps.isAnimationActive) {\n return {\n prevIsAnimationActive: nextProps.isAnimationActive,\n prevAnimationId: nextProps.animationId,\n curSectors: nextProps.sectors,\n prevSectors: [],\n isAnimationFinished: true\n };\n }\n if (nextProps.isAnimationActive && nextProps.animationId !== prevState.prevAnimationId) {\n return {\n prevAnimationId: nextProps.animationId,\n curSectors: nextProps.sectors,\n prevSectors: prevState.curSectors,\n isAnimationFinished: true\n };\n }\n if (nextProps.sectors !== prevState.curSectors) {\n return {\n curSectors: nextProps.sectors,\n isAnimationFinished: true\n };\n }\n return null;\n }\n }, {\n key: \"getTextAnchor\",\n value: function getTextAnchor(x, cx) {\n if (x > cx) {\n return 'start';\n }\n if (x < cx) {\n return 'end';\n }\n return 'middle';\n }\n }, {\n key: \"renderLabelLineItem\",\n value: function renderLabelLineItem(option, props) {\n if ( /*#__PURE__*/React.isValidElement(option)) {\n return /*#__PURE__*/React.cloneElement(option, props);\n }\n if (_isFunction(option)) {\n return option(props);\n }\n return /*#__PURE__*/React.createElement(Curve, _extends({}, props, {\n type: \"linear\",\n className: \"recharts-pie-label-line\"\n }));\n }\n }, {\n key: \"renderLabelItem\",\n value: function renderLabelItem(option, props, value) {\n if ( /*#__PURE__*/React.isValidElement(option)) {\n return /*#__PURE__*/React.cloneElement(option, props);\n }\n var label = value;\n if (_isFunction(option)) {\n label = option(props);\n if ( /*#__PURE__*/React.isValidElement(label)) {\n return label;\n }\n }\n return /*#__PURE__*/React.createElement(Text, _extends({}, props, {\n alignmentBaseline: \"middle\",\n className: \"recharts-pie-label-text\"\n }), label);\n }\n }, {\n key: \"renderSectorItem\",\n value: function renderSectorItem(option, props) {\n if ( /*#__PURE__*/React.isValidElement(option)) {\n return /*#__PURE__*/React.cloneElement(option, props);\n }\n if (_isFunction(option)) {\n return option(props);\n }\n if (_isPlainObject(option)) {\n return /*#__PURE__*/React.createElement(Sector, _extends({\n tabIndex: -1\n }, props, option));\n }\n return /*#__PURE__*/React.createElement(Sector, _extends({\n tabIndex: -1\n }, props));\n }\n }]);\n return Pie;\n}(PureComponent);\n_defineProperty(Pie, \"displayName\", 'Pie');\n_defineProperty(Pie, \"defaultProps\", {\n stroke: '#fff',\n fill: '#808080',\n legendType: 'rect',\n cx: '50%',\n cy: '50%',\n startAngle: 0,\n endAngle: 360,\n innerRadius: 0,\n outerRadius: '80%',\n paddingAngle: 0,\n labelLine: true,\n hide: false,\n minAngle: 0,\n isAnimationActive: !Global.isSsr,\n animationBegin: 400,\n animationDuration: 1500,\n animationEasing: 'ease',\n nameKey: 'name',\n blendStroke: false,\n rootTabIndex: 0\n});\n_defineProperty(Pie, \"parseDeltaAngle\", function (startAngle, endAngle) {\n var sign = mathSign(endAngle - startAngle);\n var deltaAngle = Math.min(Math.abs(endAngle - startAngle), 360);\n return sign * deltaAngle;\n});\n_defineProperty(Pie, \"getRealPieData\", function (item) {\n var _item$props = item.props,\n data = _item$props.data,\n children = _item$props.children;\n var presentationProps = filterProps(item.props);\n var cells = findAllByType(children, Cell);\n if (data && data.length) {\n return data.map(function (entry, index) {\n return _objectSpread(_objectSpread(_objectSpread({\n payload: entry\n }, presentationProps), entry), cells && cells[index] && cells[index].props);\n });\n }\n if (cells && cells.length) {\n return cells.map(function (cell) {\n return _objectSpread(_objectSpread({}, presentationProps), cell.props);\n });\n }\n return [];\n});\n_defineProperty(Pie, \"parseCoordinateOfPie\", function (item, offset) {\n var top = offset.top,\n left = offset.left,\n width = offset.width,\n height = offset.height;\n var maxPieRadius = getMaxRadius(width, height);\n var cx = left + getPercentValue(item.props.cx, width, width / 2);\n var cy = top + getPercentValue(item.props.cy, height, height / 2);\n var innerRadius = getPercentValue(item.props.innerRadius, maxPieRadius, 0);\n var outerRadius = getPercentValue(item.props.outerRadius, maxPieRadius, maxPieRadius * 0.8);\n var maxRadius = item.props.maxRadius || Math.sqrt(width * width + height * height) / 2;\n return {\n cx: cx,\n cy: cy,\n innerRadius: innerRadius,\n outerRadius: outerRadius,\n maxRadius: maxRadius\n };\n});\n_defineProperty(Pie, \"getComposedData\", function (_ref4) {\n var item = _ref4.item,\n offset = _ref4.offset;\n var pieData = Pie.getRealPieData(item);\n if (!pieData || !pieData.length) {\n return null;\n }\n var _item$props2 = item.props,\n cornerRadius = _item$props2.cornerRadius,\n startAngle = _item$props2.startAngle,\n endAngle = _item$props2.endAngle,\n paddingAngle = _item$props2.paddingAngle,\n dataKey = _item$props2.dataKey,\n nameKey = _item$props2.nameKey,\n valueKey = _item$props2.valueKey,\n tooltipType = _item$props2.tooltipType;\n var minAngle = Math.abs(item.props.minAngle);\n var coordinate = Pie.parseCoordinateOfPie(item, offset);\n var deltaAngle = Pie.parseDeltaAngle(startAngle, endAngle);\n var absDeltaAngle = Math.abs(deltaAngle);\n var realDataKey = dataKey;\n if (_isNil(dataKey) && _isNil(valueKey)) {\n warn(false, \"Use \\\"dataKey\\\" to specify the value of pie,\\n the props \\\"valueKey\\\" will be deprecated in 1.1.0\");\n realDataKey = 'value';\n } else if (_isNil(dataKey)) {\n warn(false, \"Use \\\"dataKey\\\" to specify the value of pie,\\n the props \\\"valueKey\\\" will be deprecated in 1.1.0\");\n realDataKey = valueKey;\n }\n var notZeroItemCount = pieData.filter(function (entry) {\n return getValueByDataKey(entry, realDataKey, 0) !== 0;\n }).length;\n var totalPadingAngle = (absDeltaAngle >= 360 ? notZeroItemCount : notZeroItemCount - 1) * paddingAngle;\n var realTotalAngle = absDeltaAngle - notZeroItemCount * minAngle - totalPadingAngle;\n var sum = pieData.reduce(function (result, entry) {\n var val = getValueByDataKey(entry, realDataKey, 0);\n return result + (isNumber(val) ? val : 0);\n }, 0);\n var sectors;\n if (sum > 0) {\n var prev;\n sectors = pieData.map(function (entry, i) {\n var val = getValueByDataKey(entry, realDataKey, 0);\n var name = getValueByDataKey(entry, nameKey, i);\n var percent = (isNumber(val) ? val : 0) / sum;\n var tempStartAngle;\n if (i) {\n tempStartAngle = prev.endAngle + mathSign(deltaAngle) * paddingAngle * (val !== 0 ? 1 : 0);\n } else {\n tempStartAngle = startAngle;\n }\n var tempEndAngle = tempStartAngle + mathSign(deltaAngle) * ((val !== 0 ? minAngle : 0) + percent * realTotalAngle);\n var midAngle = (tempStartAngle + tempEndAngle) / 2;\n var middleRadius = (coordinate.innerRadius + coordinate.outerRadius) / 2;\n var tooltipPayload = [{\n name: name,\n value: val,\n payload: entry,\n dataKey: realDataKey,\n type: tooltipType\n }];\n var tooltipPosition = polarToCartesian(coordinate.cx, coordinate.cy, middleRadius, midAngle);\n prev = _objectSpread(_objectSpread(_objectSpread({\n percent: percent,\n cornerRadius: cornerRadius,\n name: name,\n tooltipPayload: tooltipPayload,\n midAngle: midAngle,\n middleRadius: middleRadius,\n tooltipPosition: tooltipPosition\n }, entry), coordinate), {}, {\n value: getValueByDataKey(entry, realDataKey),\n startAngle: tempStartAngle,\n endAngle: tempEndAngle,\n payload: entry,\n paddingAngle: mathSign(deltaAngle) * paddingAngle\n });\n return prev;\n });\n }\n return _objectSpread(_objectSpread({}, coordinate), {}, {\n sectors: sectors,\n data: pieData\n });\n});","import _isArray from \"lodash/isArray\";\nimport _upperFirst from \"lodash/upperFirst\";\nimport _isFunction from \"lodash/isFunction\";\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction _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); }\nfunction 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; }\nfunction _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; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\n/**\n * @fileOverview Curve\n */\nimport React from 'react';\nimport { line as shapeLine, area as shapeArea, curveBasisClosed, curveBasisOpen, curveBasis, curveBumpX, curveBumpY, curveLinearClosed, curveLinear, curveMonotoneX, curveMonotoneY, curveNatural, curveStep, curveStepAfter, curveStepBefore } from 'victory-vendor/d3-shape';\nimport classNames from 'classnames';\nimport { adaptEventHandlers } from '../util/types';\nimport { filterProps } from '../util/ReactUtils';\nimport { isNumber } from '../util/DataUtils';\nvar CURVE_FACTORIES = {\n curveBasisClosed: curveBasisClosed,\n curveBasisOpen: curveBasisOpen,\n curveBasis: curveBasis,\n curveBumpX: curveBumpX,\n curveBumpY: curveBumpY,\n curveLinearClosed: curveLinearClosed,\n curveLinear: curveLinear,\n curveMonotoneX: curveMonotoneX,\n curveMonotoneY: curveMonotoneY,\n curveNatural: curveNatural,\n curveStep: curveStep,\n curveStepAfter: curveStepAfter,\n curveStepBefore: curveStepBefore\n};\nvar defined = function defined(p) {\n return p.x === +p.x && p.y === +p.y;\n};\nvar getX = function getX(p) {\n return p.x;\n};\nvar getY = function getY(p) {\n return p.y;\n};\nvar getCurveFactory = function getCurveFactory(type, layout) {\n if (_isFunction(type)) {\n return type;\n }\n var name = \"curve\".concat(_upperFirst(type));\n if ((name === 'curveMonotone' || name === 'curveBump') && layout) {\n return CURVE_FACTORIES[\"\".concat(name).concat(layout === 'vertical' ? 'Y' : 'X')];\n }\n return CURVE_FACTORIES[name] || curveLinear;\n};\n/**\n * Calculate the path of curve\n * @return {String} path\n */\nvar getPath = function getPath(_ref) {\n var _ref$type = _ref.type,\n type = _ref$type === void 0 ? 'linear' : _ref$type,\n _ref$points = _ref.points,\n points = _ref$points === void 0 ? [] : _ref$points,\n baseLine = _ref.baseLine,\n layout = _ref.layout,\n _ref$connectNulls = _ref.connectNulls,\n connectNulls = _ref$connectNulls === void 0 ? false : _ref$connectNulls;\n var curveFactory = getCurveFactory(type, layout);\n var formatPoints = connectNulls ? points.filter(function (entry) {\n return defined(entry);\n }) : points;\n var lineFunction;\n if (_isArray(baseLine)) {\n var formatBaseLine = connectNulls ? baseLine.filter(function (base) {\n return defined(base);\n }) : baseLine;\n var areaPoints = formatPoints.map(function (entry, index) {\n return _objectSpread(_objectSpread({}, entry), {}, {\n base: formatBaseLine[index]\n });\n });\n if (layout === 'vertical') {\n lineFunction = shapeArea().y(getY).x1(getX).x0(function (d) {\n return d.base.x;\n });\n } else {\n lineFunction = shapeArea().x(getX).y1(getY).y0(function (d) {\n return d.base.y;\n });\n }\n lineFunction.defined(defined).curve(curveFactory);\n return lineFunction(areaPoints);\n }\n if (layout === 'vertical' && isNumber(baseLine)) {\n lineFunction = shapeArea().y(getY).x1(getX).x0(baseLine);\n } else if (isNumber(baseLine)) {\n lineFunction = shapeArea().x(getX).y1(getY).y0(baseLine);\n } else {\n lineFunction = shapeLine().x(getX).y(getY);\n }\n lineFunction.defined(defined).curve(curveFactory);\n return lineFunction(formatPoints);\n};\nexport var Curve = function Curve(props) {\n var className = props.className,\n points = props.points,\n path = props.path,\n pathRef = props.pathRef;\n if ((!points || !points.length) && !path) {\n return null;\n }\n var realPath = points && points.length ? getPath(props) : path;\n return /*#__PURE__*/React.createElement(\"path\", _extends({}, filterProps(props), adaptEventHandlers(props), {\n className: classNames('recharts-curve', className),\n d: realPath,\n ref: pathRef\n }));\n};","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); }\n/**\n * @fileOverview Dot\n */\nimport React from 'react';\nimport classNames from 'classnames';\nimport { adaptEventHandlers } from '../util/types';\nimport { filterProps } from '../util/ReactUtils';\nexport var Dot = function Dot(props) {\n var cx = props.cx,\n cy = props.cy,\n r = props.r,\n className = props.className;\n var layerClass = classNames('recharts-dot', className);\n if (cx === +cx && cy === +cy && r === +r) {\n return /*#__PURE__*/React.createElement(\"circle\", _extends({}, filterProps(props), adaptEventHandlers(props), {\n className: layerClass,\n cx: cx,\n cy: cy,\n r: r\n }));\n }\n return null;\n};","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction _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); }\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : \"undefined\" != typeof Symbol && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i[\"return\"] && (_r = _i[\"return\"](), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nfunction 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; }\nfunction _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; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\n/**\n * @fileOverview Rectangle\n */\nimport React, { useEffect, useRef, useState } from 'react';\nimport classNames from 'classnames';\nimport Animate from 'react-smooth';\nimport { filterProps } from '../util/ReactUtils';\nvar getRectanglePath = function getRectanglePath(x, y, width, height, radius) {\n var maxRadius = Math.min(Math.abs(width) / 2, Math.abs(height) / 2);\n var ySign = height >= 0 ? 1 : -1;\n var xSign = width >= 0 ? 1 : -1;\n var clockWise = height >= 0 && width >= 0 || height < 0 && width < 0 ? 1 : 0;\n var path;\n if (maxRadius > 0 && radius instanceof Array) {\n var newRadius = [0, 0, 0, 0];\n for (var i = 0, len = 4; i < len; i++) {\n newRadius[i] = radius[i] > maxRadius ? maxRadius : radius[i];\n }\n path = \"M\".concat(x, \",\").concat(y + ySign * newRadius[0]);\n if (newRadius[0] > 0) {\n path += \"A \".concat(newRadius[0], \",\").concat(newRadius[0], \",0,0,\").concat(clockWise, \",\").concat(x + xSign * newRadius[0], \",\").concat(y);\n }\n path += \"L \".concat(x + width - xSign * newRadius[1], \",\").concat(y);\n if (newRadius[1] > 0) {\n path += \"A \".concat(newRadius[1], \",\").concat(newRadius[1], \",0,0,\").concat(clockWise, \",\\n \").concat(x + width, \",\").concat(y + ySign * newRadius[1]);\n }\n path += \"L \".concat(x + width, \",\").concat(y + height - ySign * newRadius[2]);\n if (newRadius[2] > 0) {\n path += \"A \".concat(newRadius[2], \",\").concat(newRadius[2], \",0,0,\").concat(clockWise, \",\\n \").concat(x + width - xSign * newRadius[2], \",\").concat(y + height);\n }\n path += \"L \".concat(x + xSign * newRadius[3], \",\").concat(y + height);\n if (newRadius[3] > 0) {\n path += \"A \".concat(newRadius[3], \",\").concat(newRadius[3], \",0,0,\").concat(clockWise, \",\\n \").concat(x, \",\").concat(y + height - ySign * newRadius[3]);\n }\n path += 'Z';\n } else if (maxRadius > 0 && radius === +radius && radius > 0) {\n var _newRadius = Math.min(maxRadius, radius);\n path = \"M \".concat(x, \",\").concat(y + ySign * _newRadius, \"\\n A \").concat(_newRadius, \",\").concat(_newRadius, \",0,0,\").concat(clockWise, \",\").concat(x + xSign * _newRadius, \",\").concat(y, \"\\n L \").concat(x + width - xSign * _newRadius, \",\").concat(y, \"\\n A \").concat(_newRadius, \",\").concat(_newRadius, \",0,0,\").concat(clockWise, \",\").concat(x + width, \",\").concat(y + ySign * _newRadius, \"\\n L \").concat(x + width, \",\").concat(y + height - ySign * _newRadius, \"\\n A \").concat(_newRadius, \",\").concat(_newRadius, \",0,0,\").concat(clockWise, \",\").concat(x + width - xSign * _newRadius, \",\").concat(y + height, \"\\n L \").concat(x + xSign * _newRadius, \",\").concat(y + height, \"\\n A \").concat(_newRadius, \",\").concat(_newRadius, \",0,0,\").concat(clockWise, \",\").concat(x, \",\").concat(y + height - ySign * _newRadius, \" Z\");\n } else {\n path = \"M \".concat(x, \",\").concat(y, \" h \").concat(width, \" v \").concat(height, \" h \").concat(-width, \" Z\");\n }\n return path;\n};\nexport var isInRectangle = function isInRectangle(point, rect) {\n if (!point || !rect) {\n return false;\n }\n var px = point.x,\n py = point.y;\n var x = rect.x,\n y = rect.y,\n width = rect.width,\n height = rect.height;\n if (Math.abs(width) > 0 && Math.abs(height) > 0) {\n var minX = Math.min(x, x + width);\n var maxX = Math.max(x, x + width);\n var minY = Math.min(y, y + height);\n var maxY = Math.max(y, y + height);\n return px >= minX && px <= maxX && py >= minY && py <= maxY;\n }\n return false;\n};\nvar defaultProps = {\n x: 0,\n y: 0,\n width: 0,\n height: 0,\n // The radius of border\n // The radius of four corners when radius is a number\n // The radius of left-top, right-top, right-bottom, left-bottom when radius is an array\n radius: 0,\n isAnimationActive: false,\n isUpdateAnimationActive: false,\n animationBegin: 0,\n animationDuration: 1500,\n animationEasing: 'ease'\n};\nexport var Rectangle = function Rectangle(rectangleProps) {\n var props = _objectSpread(_objectSpread({}, defaultProps), rectangleProps);\n var pathRef = useRef();\n var _useState = useState(-1),\n _useState2 = _slicedToArray(_useState, 2),\n totalLength = _useState2[0],\n setTotalLength = _useState2[1];\n useEffect(function () {\n if (pathRef.current && pathRef.current.getTotalLength) {\n try {\n var pathTotalLength = pathRef.current.getTotalLength();\n if (pathTotalLength) {\n setTotalLength(pathTotalLength);\n }\n } catch (err) {\n // calculate total length error\n }\n }\n }, []);\n var x = props.x,\n y = props.y,\n width = props.width,\n height = props.height,\n radius = props.radius,\n className = props.className;\n var animationEasing = props.animationEasing,\n animationDuration = props.animationDuration,\n animationBegin = props.animationBegin,\n isAnimationActive = props.isAnimationActive,\n isUpdateAnimationActive = props.isUpdateAnimationActive;\n if (x !== +x || y !== +y || width !== +width || height !== +height || width === 0 || height === 0) {\n return null;\n }\n var layerClass = classNames('recharts-rectangle', className);\n if (!isUpdateAnimationActive) {\n return /*#__PURE__*/React.createElement(\"path\", _extends({}, filterProps(props, true), {\n className: layerClass,\n d: getRectanglePath(x, y, width, height, radius)\n }));\n }\n return /*#__PURE__*/React.createElement(Animate, {\n canBegin: totalLength > 0,\n from: {\n width: width,\n height: height,\n x: x,\n y: y\n },\n to: {\n width: width,\n height: height,\n x: x,\n y: y\n },\n duration: animationDuration,\n animationEasing: animationEasing,\n isActive: isUpdateAnimationActive\n }, function (_ref) {\n var currWidth = _ref.width,\n currHeight = _ref.height,\n currX = _ref.x,\n currY = _ref.y;\n return /*#__PURE__*/React.createElement(Animate, {\n canBegin: totalLength > 0,\n from: \"0px \".concat(totalLength === -1 ? 1 : totalLength, \"px\"),\n to: \"\".concat(totalLength, \"px 0px\"),\n attributeName: \"strokeDasharray\",\n begin: animationBegin,\n duration: animationDuration,\n isActive: isAnimationActive,\n easing: animationEasing\n }, /*#__PURE__*/React.createElement(\"path\", _extends({}, filterProps(props, true), {\n className: layerClass,\n d: getRectanglePath(currX, currY, currWidth, currHeight, radius),\n ref: pathRef\n })));\n });\n};","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction _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); }\nfunction 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; }\nfunction _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; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\n/**\n * @fileOverview Sector\n */\nimport React from 'react';\nimport classNames from 'classnames';\nimport { filterProps } from '../util/ReactUtils';\nimport { polarToCartesian, RADIAN } from '../util/PolarUtils';\nimport { getPercentValue, mathSign } from '../util/DataUtils';\nvar getDeltaAngle = function getDeltaAngle(startAngle, endAngle) {\n var sign = mathSign(endAngle - startAngle);\n var deltaAngle = Math.min(Math.abs(endAngle - startAngle), 359.999);\n return sign * deltaAngle;\n};\nvar getTangentCircle = function getTangentCircle(_ref) {\n var cx = _ref.cx,\n cy = _ref.cy,\n radius = _ref.radius,\n angle = _ref.angle,\n sign = _ref.sign,\n isExternal = _ref.isExternal,\n cornerRadius = _ref.cornerRadius,\n cornerIsExternal = _ref.cornerIsExternal;\n var centerRadius = cornerRadius * (isExternal ? 1 : -1) + radius;\n var theta = Math.asin(cornerRadius / centerRadius) / RADIAN;\n var centerAngle = cornerIsExternal ? angle : angle + sign * theta;\n var center = polarToCartesian(cx, cy, centerRadius, centerAngle);\n // The coordinate of point which is tangent to the circle\n var circleTangency = polarToCartesian(cx, cy, radius, centerAngle);\n // The coordinate of point which is tangent to the radius line\n var lineTangencyAngle = cornerIsExternal ? angle - sign * theta : angle;\n var lineTangency = polarToCartesian(cx, cy, centerRadius * Math.cos(theta * RADIAN), lineTangencyAngle);\n return {\n center: center,\n circleTangency: circleTangency,\n lineTangency: lineTangency,\n theta: theta\n };\n};\nvar getSectorPath = function getSectorPath(_ref2) {\n var cx = _ref2.cx,\n cy = _ref2.cy,\n innerRadius = _ref2.innerRadius,\n outerRadius = _ref2.outerRadius,\n startAngle = _ref2.startAngle,\n endAngle = _ref2.endAngle;\n var angle = getDeltaAngle(startAngle, endAngle);\n\n // When the angle of sector equals to 360, star point and end point coincide\n var tempEndAngle = startAngle + angle;\n var outerStartPoint = polarToCartesian(cx, cy, outerRadius, startAngle);\n var outerEndPoint = polarToCartesian(cx, cy, outerRadius, tempEndAngle);\n var path = \"M \".concat(outerStartPoint.x, \",\").concat(outerStartPoint.y, \"\\n A \").concat(outerRadius, \",\").concat(outerRadius, \",0,\\n \").concat(+(Math.abs(angle) > 180), \",\").concat(+(startAngle > tempEndAngle), \",\\n \").concat(outerEndPoint.x, \",\").concat(outerEndPoint.y, \"\\n \");\n if (innerRadius > 0) {\n var innerStartPoint = polarToCartesian(cx, cy, innerRadius, startAngle);\n var innerEndPoint = polarToCartesian(cx, cy, innerRadius, tempEndAngle);\n path += \"L \".concat(innerEndPoint.x, \",\").concat(innerEndPoint.y, \"\\n A \").concat(innerRadius, \",\").concat(innerRadius, \",0,\\n \").concat(+(Math.abs(angle) > 180), \",\").concat(+(startAngle <= tempEndAngle), \",\\n \").concat(innerStartPoint.x, \",\").concat(innerStartPoint.y, \" Z\");\n } else {\n path += \"L \".concat(cx, \",\").concat(cy, \" Z\");\n }\n return path;\n};\nvar getSectorWithCorner = function getSectorWithCorner(_ref3) {\n var cx = _ref3.cx,\n cy = _ref3.cy,\n innerRadius = _ref3.innerRadius,\n outerRadius = _ref3.outerRadius,\n cornerRadius = _ref3.cornerRadius,\n forceCornerRadius = _ref3.forceCornerRadius,\n cornerIsExternal = _ref3.cornerIsExternal,\n startAngle = _ref3.startAngle,\n endAngle = _ref3.endAngle;\n var sign = mathSign(endAngle - startAngle);\n var _getTangentCircle = getTangentCircle({\n cx: cx,\n cy: cy,\n radius: outerRadius,\n angle: startAngle,\n sign: sign,\n cornerRadius: cornerRadius,\n cornerIsExternal: cornerIsExternal\n }),\n soct = _getTangentCircle.circleTangency,\n solt = _getTangentCircle.lineTangency,\n sot = _getTangentCircle.theta;\n var _getTangentCircle2 = getTangentCircle({\n cx: cx,\n cy: cy,\n radius: outerRadius,\n angle: endAngle,\n sign: -sign,\n cornerRadius: cornerRadius,\n cornerIsExternal: cornerIsExternal\n }),\n eoct = _getTangentCircle2.circleTangency,\n eolt = _getTangentCircle2.lineTangency,\n eot = _getTangentCircle2.theta;\n var outerArcAngle = cornerIsExternal ? Math.abs(startAngle - endAngle) : Math.abs(startAngle - endAngle) - sot - eot;\n if (outerArcAngle < 0) {\n if (forceCornerRadius) {\n return \"M \".concat(solt.x, \",\").concat(solt.y, \"\\n a\").concat(cornerRadius, \",\").concat(cornerRadius, \",0,0,1,\").concat(cornerRadius * 2, \",0\\n a\").concat(cornerRadius, \",\").concat(cornerRadius, \",0,0,1,\").concat(-cornerRadius * 2, \",0\\n \");\n }\n return getSectorPath({\n cx: cx,\n cy: cy,\n innerRadius: innerRadius,\n outerRadius: outerRadius,\n startAngle: startAngle,\n endAngle: endAngle\n });\n }\n var path = \"M \".concat(solt.x, \",\").concat(solt.y, \"\\n A\").concat(cornerRadius, \",\").concat(cornerRadius, \",0,0,\").concat(+(sign < 0), \",\").concat(soct.x, \",\").concat(soct.y, \"\\n A\").concat(outerRadius, \",\").concat(outerRadius, \",0,\").concat(+(outerArcAngle > 180), \",\").concat(+(sign < 0), \",\").concat(eoct.x, \",\").concat(eoct.y, \"\\n A\").concat(cornerRadius, \",\").concat(cornerRadius, \",0,0,\").concat(+(sign < 0), \",\").concat(eolt.x, \",\").concat(eolt.y, \"\\n \");\n if (innerRadius > 0) {\n var _getTangentCircle3 = getTangentCircle({\n cx: cx,\n cy: cy,\n radius: innerRadius,\n angle: startAngle,\n sign: sign,\n isExternal: true,\n cornerRadius: cornerRadius,\n cornerIsExternal: cornerIsExternal\n }),\n sict = _getTangentCircle3.circleTangency,\n silt = _getTangentCircle3.lineTangency,\n sit = _getTangentCircle3.theta;\n var _getTangentCircle4 = getTangentCircle({\n cx: cx,\n cy: cy,\n radius: innerRadius,\n angle: endAngle,\n sign: -sign,\n isExternal: true,\n cornerRadius: cornerRadius,\n cornerIsExternal: cornerIsExternal\n }),\n eict = _getTangentCircle4.circleTangency,\n eilt = _getTangentCircle4.lineTangency,\n eit = _getTangentCircle4.theta;\n var innerArcAngle = cornerIsExternal ? Math.abs(startAngle - endAngle) : Math.abs(startAngle - endAngle) - sit - eit;\n if (innerArcAngle < 0 && cornerRadius === 0) {\n return \"\".concat(path, \"L\").concat(cx, \",\").concat(cy, \"Z\");\n }\n path += \"L\".concat(eilt.x, \",\").concat(eilt.y, \"\\n A\").concat(cornerRadius, \",\").concat(cornerRadius, \",0,0,\").concat(+(sign < 0), \",\").concat(eict.x, \",\").concat(eict.y, \"\\n A\").concat(innerRadius, \",\").concat(innerRadius, \",0,\").concat(+(innerArcAngle > 180), \",\").concat(+(sign > 0), \",\").concat(sict.x, \",\").concat(sict.y, \"\\n A\").concat(cornerRadius, \",\").concat(cornerRadius, \",0,0,\").concat(+(sign < 0), \",\").concat(silt.x, \",\").concat(silt.y, \"Z\");\n } else {\n path += \"L\".concat(cx, \",\").concat(cy, \"Z\");\n }\n return path;\n};\nvar defaultProps = {\n cx: 0,\n cy: 0,\n innerRadius: 0,\n outerRadius: 0,\n startAngle: 0,\n endAngle: 0,\n cornerRadius: 0,\n forceCornerRadius: false,\n cornerIsExternal: false\n};\nexport var Sector = function Sector(sectorProps) {\n var props = _objectSpread(_objectSpread({}, defaultProps), sectorProps);\n var cx = props.cx,\n cy = props.cy,\n innerRadius = props.innerRadius,\n outerRadius = props.outerRadius,\n cornerRadius = props.cornerRadius,\n forceCornerRadius = props.forceCornerRadius,\n cornerIsExternal = props.cornerIsExternal,\n startAngle = props.startAngle,\n endAngle = props.endAngle,\n className = props.className;\n if (outerRadius < innerRadius || startAngle === endAngle) {\n return null;\n }\n var layerClass = classNames('recharts-sector', className);\n var deltaRadius = outerRadius - innerRadius;\n var cr = getPercentValue(cornerRadius, deltaRadius, 0, true);\n var path;\n if (cr > 0 && Math.abs(startAngle - endAngle) < 360) {\n path = getSectorWithCorner({\n cx: cx,\n cy: cy,\n innerRadius: innerRadius,\n outerRadius: outerRadius,\n cornerRadius: Math.min(cr, deltaRadius / 2),\n forceCornerRadius: forceCornerRadius,\n cornerIsExternal: cornerIsExternal,\n startAngle: startAngle,\n endAngle: endAngle\n });\n } else {\n path = getSectorPath({\n cx: cx,\n cy: cy,\n innerRadius: innerRadius,\n outerRadius: outerRadius,\n startAngle: startAngle,\n endAngle: endAngle\n });\n }\n return /*#__PURE__*/React.createElement(\"path\", _extends({}, filterProps(props, true), {\n className: layerClass,\n d: path,\n role: \"img\"\n }));\n};","import _every from \"lodash/every\";\nimport _mapValues from \"lodash/mapValues\";\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _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, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction 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; }\nfunction _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; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nimport { getTicksOfScale, parseScale, checkDomainOfScale, getBandSizeOfAxis } from './ChartUtils';\nimport { findChildByType } from './ReactUtils';\nimport { getPercentValue } from './DataUtils';\nimport { Bar } from '../cartesian/Bar';\n\n/**\n * Calculate the scale function, position, width, height of axes\n * @param {Object} props Latest props\n * @param {Object} axisMap The configuration of axes\n * @param {Object} offset The offset of main part in the svg element\n * @param {String} axisType The type of axes, x-axis or y-axis\n * @param {String} chartName The name of chart\n * @return {Object} Configuration\n */\nexport var formatAxisMap = function formatAxisMap(props, axisMap, offset, axisType, chartName) {\n var width = props.width,\n height = props.height,\n layout = props.layout,\n children = props.children;\n var ids = Object.keys(axisMap);\n var steps = {\n left: offset.left,\n leftMirror: offset.left,\n right: width - offset.right,\n rightMirror: width - offset.right,\n top: offset.top,\n topMirror: offset.top,\n bottom: height - offset.bottom,\n bottomMirror: height - offset.bottom\n };\n var hasBar = !!findChildByType(children, Bar);\n return ids.reduce(function (result, id) {\n var axis = axisMap[id];\n var orientation = axis.orientation,\n domain = axis.domain,\n _axis$padding = axis.padding,\n padding = _axis$padding === void 0 ? {} : _axis$padding,\n mirror = axis.mirror,\n reversed = axis.reversed;\n var offsetKey = \"\".concat(orientation).concat(mirror ? 'Mirror' : '');\n var calculatedPadding, range, x, y, needSpace;\n if (axis.type === 'number' && (axis.padding === 'gap' || axis.padding === 'no-gap')) {\n var diff = domain[1] - domain[0];\n var smallestDistanceBetweenValues = Infinity;\n var sortedValues = axis.categoricalDomain.sort();\n sortedValues.forEach(function (value, index) {\n if (index > 0) {\n smallestDistanceBetweenValues = Math.min((value || 0) - (sortedValues[index - 1] || 0), smallestDistanceBetweenValues);\n }\n });\n var smallestDistanceInPercent = smallestDistanceBetweenValues / diff;\n var rangeWidth = axis.layout === 'vertical' ? offset.height : offset.width;\n if (axis.padding === 'gap') {\n calculatedPadding = smallestDistanceInPercent * rangeWidth / 2;\n }\n if (axis.padding === 'no-gap') {\n var gap = getPercentValue(props.barCategoryGap, smallestDistanceInPercent * rangeWidth);\n var halfBand = smallestDistanceInPercent * rangeWidth / 2;\n calculatedPadding = halfBand - gap - (halfBand - gap) / rangeWidth * gap;\n }\n }\n if (axisType === 'xAxis') {\n range = [offset.left + (padding.left || 0) + (calculatedPadding || 0), offset.left + offset.width - (padding.right || 0) - (calculatedPadding || 0)];\n } else if (axisType === 'yAxis') {\n range = layout === 'horizontal' ? [offset.top + offset.height - (padding.bottom || 0), offset.top + (padding.top || 0)] : [offset.top + (padding.top || 0) + (calculatedPadding || 0), offset.top + offset.height - (padding.bottom || 0) - (calculatedPadding || 0)];\n } else {\n range = axis.range;\n }\n if (reversed) {\n range = [range[1], range[0]];\n }\n var _parseScale = parseScale(axis, chartName, hasBar),\n scale = _parseScale.scale,\n realScaleType = _parseScale.realScaleType;\n scale.domain(domain).range(range);\n checkDomainOfScale(scale);\n var ticks = getTicksOfScale(scale, _objectSpread(_objectSpread({}, axis), {}, {\n realScaleType: realScaleType\n }));\n if (axisType === 'xAxis') {\n needSpace = orientation === 'top' && !mirror || orientation === 'bottom' && mirror;\n x = offset.left;\n y = steps[offsetKey] - needSpace * axis.height;\n } else if (axisType === 'yAxis') {\n needSpace = orientation === 'left' && !mirror || orientation === 'right' && mirror;\n x = steps[offsetKey] - needSpace * axis.width;\n y = offset.top;\n }\n var finalAxis = _objectSpread(_objectSpread(_objectSpread({}, axis), ticks), {}, {\n realScaleType: realScaleType,\n x: x,\n y: y,\n scale: scale,\n width: axisType === 'xAxis' ? offset.width : axis.width,\n height: axisType === 'yAxis' ? offset.height : axis.height\n });\n finalAxis.bandSize = getBandSizeOfAxis(finalAxis, ticks);\n if (!axis.hide && axisType === 'xAxis') {\n steps[offsetKey] += (needSpace ? -1 : 1) * finalAxis.height;\n } else if (!axis.hide) {\n steps[offsetKey] += (needSpace ? -1 : 1) * finalAxis.width;\n }\n return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, id, finalAxis));\n }, {});\n};\nexport var rectWithPoints = function rectWithPoints(_ref, _ref2) {\n var x1 = _ref.x,\n y1 = _ref.y;\n var x2 = _ref2.x,\n y2 = _ref2.y;\n return {\n x: Math.min(x1, x2),\n y: Math.min(y1, y2),\n width: Math.abs(x2 - x1),\n height: Math.abs(y2 - y1)\n };\n};\n\n/**\n * Compute the x, y, width, and height of a box from two reference points.\n * @param {Object} coords x1, x2, y1, and y2\n * @return {Object} object\n */\nexport var rectWithCoords = function rectWithCoords(_ref3) {\n var x1 = _ref3.x1,\n y1 = _ref3.y1,\n x2 = _ref3.x2,\n y2 = _ref3.y2;\n return rectWithPoints({\n x: x1,\n y: y1\n }, {\n x: x2,\n y: y2\n });\n};\nexport var ScaleHelper = /*#__PURE__*/function () {\n function ScaleHelper(scale) {\n _classCallCheck(this, ScaleHelper);\n this.scale = scale;\n }\n _createClass(ScaleHelper, [{\n key: \"domain\",\n get: function get() {\n return this.scale.domain;\n }\n }, {\n key: \"range\",\n get: function get() {\n return this.scale.range;\n }\n }, {\n key: \"rangeMin\",\n get: function get() {\n return this.range()[0];\n }\n }, {\n key: \"rangeMax\",\n get: function get() {\n return this.range()[1];\n }\n }, {\n key: \"bandwidth\",\n get: function get() {\n return this.scale.bandwidth;\n }\n }, {\n key: \"apply\",\n value: function apply(value) {\n var _ref4 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n bandAware = _ref4.bandAware,\n position = _ref4.position;\n if (value === undefined) {\n return undefined;\n }\n if (position) {\n switch (position) {\n case 'start':\n {\n return this.scale(value);\n }\n case 'middle':\n {\n var offset = this.bandwidth ? this.bandwidth() / 2 : 0;\n return this.scale(value) + offset;\n }\n case 'end':\n {\n var _offset = this.bandwidth ? this.bandwidth() : 0;\n return this.scale(value) + _offset;\n }\n default:\n {\n return this.scale(value);\n }\n }\n }\n if (bandAware) {\n var _offset2 = this.bandwidth ? this.bandwidth() / 2 : 0;\n return this.scale(value) + _offset2;\n }\n return this.scale(value);\n }\n }, {\n key: \"isInRange\",\n value: function isInRange(value) {\n var range = this.range();\n var first = range[0];\n var last = range[range.length - 1];\n return first <= last ? value >= first && value <= last : value >= last && value <= first;\n }\n }], [{\n key: \"create\",\n value: function create(obj) {\n return new ScaleHelper(obj);\n }\n }]);\n return ScaleHelper;\n}();\n_defineProperty(ScaleHelper, \"EPS\", 1e-4);\nexport var createLabeledScales = function createLabeledScales(options) {\n var scales = Object.keys(options).reduce(function (res, key) {\n return _objectSpread(_objectSpread({}, res), {}, _defineProperty({}, key, ScaleHelper.create(options[key])));\n }, {});\n return _objectSpread(_objectSpread({}, scales), {}, {\n apply: function apply(coord) {\n var _ref5 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n bandAware = _ref5.bandAware,\n position = _ref5.position;\n return _mapValues(coord, function (value, label) {\n return scales[label].apply(value, {\n bandAware: bandAware,\n position: position\n });\n });\n },\n isInRange: function isInRange(coord) {\n return _every(coord, function (value, label) {\n return scales[label].isInRange(value);\n });\n }\n });\n};\n\n/** Normalizes the angle so that 0 <= angle < 180.\n * @param {number} angle Angle in degrees.\n * @return {number} the normalized angle with a value of at least 0 and never greater or equal to 180. */\nexport function normalizeAngle(angle) {\n return (angle % 180 + 180) % 180;\n}\n\n/** Calculates the width of the largest horizontal line that fits inside a rectangle that is displayed at an angle.\n * @param {Object} size Width and height of the text in a horizontal position.\n * @param {number} angle Angle in degrees in which the text is displayed.\n * @return {number} The width of the largest horizontal line that fits inside a rectangle that is displayed at an angle.\n */\nexport var getAngledRectangleWidth = function getAngledRectangleWidth(_ref6) {\n var width = _ref6.width,\n height = _ref6.height;\n var angle = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n // Ensure angle is >= 0 && < 180\n var normalizedAngle = normalizeAngle(angle);\n var angleRadians = normalizedAngle * Math.PI / 180;\n\n /* Depending on the height and width of the rectangle, we may need to use different formulas to calculate the angled\n * width. This threshold defines when each formula should kick in. */\n var angleThreshold = Math.atan(height / width);\n var angledWidth = angleRadians > angleThreshold && angleRadians < Math.PI - angleThreshold ? height / Math.sin(angleRadians) : width / Math.cos(angleRadians);\n return Math.abs(angledWidth);\n};","import _isEqual from \"lodash/isEqual\";\nimport _sortBy from \"lodash/sortBy\";\nimport _upperFirst from \"lodash/upperFirst\";\nimport _isString from \"lodash/isString\";\nimport _isNaN from \"lodash/isNaN\";\nimport _isArray from \"lodash/isArray\";\nimport _max from \"lodash/max\";\nimport _min from \"lodash/min\";\nimport _flatMap from \"lodash/flatMap\";\nimport _isFunction from \"lodash/isFunction\";\nimport _get from \"lodash/get\";\nimport _isNil from \"lodash/isNil\";\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction 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; }\nfunction _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; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nimport * as d3Scales from 'victory-vendor/d3-scale';\nimport { stack as shapeStack, stackOffsetExpand, stackOffsetNone, stackOffsetSilhouette, stackOffsetWiggle, stackOrderNone } from 'victory-vendor/d3-shape';\nimport { getNiceTickValues, getTickValuesFixedDomain } from 'recharts-scale';\nimport { ErrorBar } from '../cartesian/ErrorBar';\nimport { Legend } from '../component/Legend';\nimport { findEntryInArray, getPercentValue, isNumber, isNumOrStr, mathSign, uniqueId } from './DataUtils';\nimport { filterProps, findAllByType, findChildByType, getDisplayName } from './ReactUtils';\n// TODO: Cause of circular dependency. Needs refactor.\n// import { RadiusAxisProps, AngleAxisProps } from '../polar/types';\nexport function getValueByDataKey(obj, dataKey, defaultValue) {\n if (_isNil(obj) || _isNil(dataKey)) {\n return defaultValue;\n }\n if (isNumOrStr(dataKey)) {\n return _get(obj, dataKey, defaultValue);\n }\n if (_isFunction(dataKey)) {\n return dataKey(obj);\n }\n return defaultValue;\n}\n/**\n * Get domain of data by key\n * @param {Array} data The data displayed in the chart\n * @param {String} key The unique key of a group of data\n * @param {String} type The type of axis\n * @param {Boolean} filterNil Whether or not filter nil values\n * @return {Array} Domain of data\n */\nexport function getDomainOfDataByKey(data, key, type, filterNil) {\n var flattenData = _flatMap(data, function (entry) {\n return getValueByDataKey(entry, key);\n });\n if (type === 'number') {\n var domain = flattenData.filter(function (entry) {\n return isNumber(entry) || parseFloat(entry);\n });\n return domain.length ? [_min(domain), _max(domain)] : [Infinity, -Infinity];\n }\n var validateData = filterNil ? flattenData.filter(function (entry) {\n return !_isNil(entry);\n }) : flattenData;\n\n // 支持Date类型的x轴\n return validateData.map(function (entry) {\n return isNumOrStr(entry) || entry instanceof Date ? entry : '';\n });\n}\nexport var calculateActiveTickIndex = function calculateActiveTickIndex(coordinate) {\n var _ticks$length;\n var ticks = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n var unsortedTicks = arguments.length > 2 ? arguments[2] : undefined;\n var axis = arguments.length > 3 ? arguments[3] : undefined;\n var index = -1;\n var len = (_ticks$length = ticks === null || ticks === void 0 ? void 0 : ticks.length) !== null && _ticks$length !== void 0 ? _ticks$length : 0;\n\n // if there are 1 or less ticks ticks then the active tick is at index 0\n if (len <= 1) {\n return 0;\n }\n if (axis && axis.axisType === 'angleAxis' && Math.abs(Math.abs(axis.range[1] - axis.range[0]) - 360) <= 1e-6) {\n var range = axis.range;\n // ticks are distributed in a circle\n for (var i = 0; i < len; i++) {\n var before = i > 0 ? unsortedTicks[i - 1].coordinate : unsortedTicks[len - 1].coordinate;\n var cur = unsortedTicks[i].coordinate;\n var after = i >= len - 1 ? unsortedTicks[0].coordinate : unsortedTicks[i + 1].coordinate;\n var sameDirectionCoord = void 0;\n if (mathSign(cur - before) !== mathSign(after - cur)) {\n var diffInterval = [];\n if (mathSign(after - cur) === mathSign(range[1] - range[0])) {\n sameDirectionCoord = after;\n var curInRange = cur + range[1] - range[0];\n diffInterval[0] = Math.min(curInRange, (curInRange + before) / 2);\n diffInterval[1] = Math.max(curInRange, (curInRange + before) / 2);\n } else {\n sameDirectionCoord = before;\n var afterInRange = after + range[1] - range[0];\n diffInterval[0] = Math.min(cur, (afterInRange + cur) / 2);\n diffInterval[1] = Math.max(cur, (afterInRange + cur) / 2);\n }\n var sameInterval = [Math.min(cur, (sameDirectionCoord + cur) / 2), Math.max(cur, (sameDirectionCoord + cur) / 2)];\n if (coordinate > sameInterval[0] && coordinate <= sameInterval[1] || coordinate >= diffInterval[0] && coordinate <= diffInterval[1]) {\n index = unsortedTicks[i].index;\n break;\n }\n } else {\n var min = Math.min(before, after);\n var max = Math.max(before, after);\n if (coordinate > (min + cur) / 2 && coordinate <= (max + cur) / 2) {\n index = unsortedTicks[i].index;\n break;\n }\n }\n }\n } else {\n // ticks are distributed in a single direction\n for (var _i = 0; _i < len; _i++) {\n if (_i === 0 && coordinate <= (ticks[_i].coordinate + ticks[_i + 1].coordinate) / 2 || _i > 0 && _i < len - 1 && coordinate > (ticks[_i].coordinate + ticks[_i - 1].coordinate) / 2 && coordinate <= (ticks[_i].coordinate + ticks[_i + 1].coordinate) / 2 || _i === len - 1 && coordinate > (ticks[_i].coordinate + ticks[_i - 1].coordinate) / 2) {\n index = ticks[_i].index;\n break;\n }\n }\n }\n return index;\n};\n\n/**\n * Get the main color of each graphic item\n * @param {ReactElement} item A graphic item\n * @return {String} Color\n */\nexport var getMainColorOfGraphicItem = function getMainColorOfGraphicItem(item) {\n var _ref = item,\n displayName = _ref.type.displayName; // TODO: check if displayName is valid.\n var _item$props = item.props,\n stroke = _item$props.stroke,\n fill = _item$props.fill;\n var result;\n switch (displayName) {\n case 'Line':\n result = stroke;\n break;\n case 'Area':\n case 'Radar':\n result = stroke && stroke !== 'none' ? stroke : fill;\n break;\n default:\n result = fill;\n break;\n }\n return result;\n};\nexport var getLegendProps = function getLegendProps(_ref2) {\n var children = _ref2.children,\n formattedGraphicalItems = _ref2.formattedGraphicalItems,\n legendWidth = _ref2.legendWidth,\n legendContent = _ref2.legendContent;\n var legendItem = findChildByType(children, Legend);\n if (!legendItem) {\n return null;\n }\n var legendData;\n if (legendItem.props && legendItem.props.payload) {\n legendData = legendItem.props && legendItem.props.payload;\n } else if (legendContent === 'children') {\n legendData = (formattedGraphicalItems || []).reduce(function (result, _ref3) {\n var item = _ref3.item,\n props = _ref3.props;\n var data = props.sectors || props.data || [];\n return result.concat(data.map(function (entry) {\n return {\n type: legendItem.props.iconType || item.props.legendType,\n value: entry.name,\n color: entry.fill,\n payload: entry\n };\n }));\n }, []);\n } else {\n legendData = (formattedGraphicalItems || []).map(function (_ref4) {\n var item = _ref4.item;\n var _item$props2 = item.props,\n dataKey = _item$props2.dataKey,\n name = _item$props2.name,\n legendType = _item$props2.legendType,\n hide = _item$props2.hide;\n return {\n inactive: hide,\n dataKey: dataKey,\n type: legendItem.props.iconType || legendType || 'square',\n color: getMainColorOfGraphicItem(item),\n value: name || dataKey,\n payload: item.props\n };\n });\n }\n return _objectSpread(_objectSpread(_objectSpread({}, legendItem.props), Legend.getWithHeight(legendItem, legendWidth)), {}, {\n payload: legendData,\n item: legendItem\n });\n};\n/**\n * Calculate the size of all groups for stacked bar graph\n * @param {Object} stackGroups The items grouped by axisId and stackId\n * @return {Object} The size of all groups\n */\nexport var getBarSizeList = function getBarSizeList(_ref5) {\n var globalSize = _ref5.barSize,\n _ref5$stackGroups = _ref5.stackGroups,\n stackGroups = _ref5$stackGroups === void 0 ? {} : _ref5$stackGroups;\n if (!stackGroups) {\n return {};\n }\n var result = {};\n var numericAxisIds = Object.keys(stackGroups);\n for (var i = 0, len = numericAxisIds.length; i < len; i++) {\n var sgs = stackGroups[numericAxisIds[i]].stackGroups;\n var stackIds = Object.keys(sgs);\n for (var j = 0, sLen = stackIds.length; j < sLen; j++) {\n var _sgs$stackIds$j = sgs[stackIds[j]],\n items = _sgs$stackIds$j.items,\n cateAxisId = _sgs$stackIds$j.cateAxisId;\n var barItems = items.filter(function (item) {\n return getDisplayName(item.type).indexOf('Bar') >= 0;\n });\n if (barItems && barItems.length) {\n var selfSize = barItems[0].props.barSize;\n var cateId = barItems[0].props[cateAxisId];\n if (!result[cateId]) {\n result[cateId] = [];\n }\n result[cateId].push({\n item: barItems[0],\n stackList: barItems.slice(1),\n barSize: _isNil(selfSize) ? globalSize : selfSize\n });\n }\n }\n }\n return result;\n};\n\n/**\n * Calculate the size of each bar and the gap between two bars\n * @param {Number} bandSize The size of each category\n * @param {sizeList} sizeList The size of all groups\n * @param {maxBarSize} maxBarSize The maximum size of bar\n * @return {Number} The size of each bar and the gap between two bars\n */\nexport var getBarPosition = function getBarPosition(_ref6) {\n var barGap = _ref6.barGap,\n barCategoryGap = _ref6.barCategoryGap,\n bandSize = _ref6.bandSize,\n _ref6$sizeList = _ref6.sizeList,\n sizeList = _ref6$sizeList === void 0 ? [] : _ref6$sizeList,\n maxBarSize = _ref6.maxBarSize;\n var len = sizeList.length;\n if (len < 1) return null;\n var realBarGap = getPercentValue(barGap, bandSize, 0, true);\n var result;\n\n // whether or not is barSize setted by user\n if (sizeList[0].barSize === +sizeList[0].barSize) {\n var useFull = false;\n var fullBarSize = bandSize / len;\n var sum = sizeList.reduce(function (res, entry) {\n return res + entry.barSize || 0;\n }, 0);\n sum += (len - 1) * realBarGap;\n if (sum >= bandSize) {\n sum -= (len - 1) * realBarGap;\n realBarGap = 0;\n }\n if (sum >= bandSize && fullBarSize > 0) {\n useFull = true;\n fullBarSize *= 0.9;\n sum = len * fullBarSize;\n }\n var offset = (bandSize - sum) / 2 >> 0;\n var prev = {\n offset: offset - realBarGap,\n size: 0\n };\n result = sizeList.reduce(function (res, entry) {\n var newRes = [].concat(_toConsumableArray(res), [{\n item: entry.item,\n position: {\n offset: prev.offset + prev.size + realBarGap,\n size: useFull ? fullBarSize : entry.barSize\n }\n }]);\n prev = newRes[newRes.length - 1].position;\n if (entry.stackList && entry.stackList.length) {\n entry.stackList.forEach(function (item) {\n newRes.push({\n item: item,\n position: prev\n });\n });\n }\n return newRes;\n }, []);\n } else {\n var _offset = getPercentValue(barCategoryGap, bandSize, 0, true);\n if (bandSize - 2 * _offset - (len - 1) * realBarGap <= 0) {\n realBarGap = 0;\n }\n var originalSize = (bandSize - 2 * _offset - (len - 1) * realBarGap) / len;\n if (originalSize > 1) {\n originalSize >>= 0;\n }\n var size = maxBarSize === +maxBarSize ? Math.min(originalSize, maxBarSize) : originalSize;\n result = sizeList.reduce(function (res, entry, i) {\n var newRes = [].concat(_toConsumableArray(res), [{\n item: entry.item,\n position: {\n offset: _offset + (originalSize + realBarGap) * i + (originalSize - size) / 2,\n size: size\n }\n }]);\n if (entry.stackList && entry.stackList.length) {\n entry.stackList.forEach(function (item) {\n newRes.push({\n item: item,\n position: newRes[newRes.length - 1].position\n });\n });\n }\n return newRes;\n }, []);\n }\n return result;\n};\nexport var appendOffsetOfLegend = function appendOffsetOfLegend(offset, items, props, legendBox) {\n var children = props.children,\n width = props.width,\n margin = props.margin;\n var legendWidth = width - (margin.left || 0) - (margin.right || 0);\n // const legendHeight = height - (margin.top || 0) - (margin.bottom || 0);\n var legendProps = getLegendProps({\n children: children,\n legendWidth: legendWidth\n });\n var newOffset = offset;\n if (legendProps) {\n var box = legendBox || {};\n var align = legendProps.align,\n verticalAlign = legendProps.verticalAlign,\n layout = legendProps.layout;\n if ((layout === 'vertical' || layout === 'horizontal' && verticalAlign === 'middle') && isNumber(offset[align])) {\n newOffset = _objectSpread(_objectSpread({}, offset), {}, _defineProperty({}, align, newOffset[align] + (box.width || 0)));\n }\n if ((layout === 'horizontal' || layout === 'vertical' && align === 'center') && isNumber(offset[verticalAlign])) {\n newOffset = _objectSpread(_objectSpread({}, offset), {}, _defineProperty({}, verticalAlign, newOffset[verticalAlign] + (box.height || 0)));\n }\n }\n return newOffset;\n};\nvar isErrorBarRelevantForAxis = function isErrorBarRelevantForAxis(layout, axisType, direction) {\n if (_isNil(axisType)) {\n return true;\n }\n if (layout === 'horizontal') {\n return axisType === 'yAxis';\n }\n if (layout === 'vertical') {\n return axisType === 'xAxis';\n }\n if (direction === 'x') {\n return axisType === 'xAxis';\n }\n if (direction === 'y') {\n return axisType === 'yAxis';\n }\n return true;\n};\nexport var getDomainOfErrorBars = function getDomainOfErrorBars(data, item, dataKey, layout, axisType) {\n var children = item.props.children;\n var errorBars = findAllByType(children, ErrorBar).filter(function (errorBarChild) {\n return isErrorBarRelevantForAxis(layout, axisType, errorBarChild.props.direction);\n });\n if (errorBars && errorBars.length) {\n var keys = errorBars.map(function (errorBarChild) {\n return errorBarChild.props.dataKey;\n });\n return data.reduce(function (result, entry) {\n var entryValue = getValueByDataKey(entry, dataKey, 0);\n var mainValue = _isArray(entryValue) ? [_min(entryValue), _max(entryValue)] : [entryValue, entryValue];\n var errorDomain = keys.reduce(function (prevErrorArr, k) {\n var errorValue = getValueByDataKey(entry, k, 0);\n var lowerValue = mainValue[0] - Math.abs(_isArray(errorValue) ? errorValue[0] : errorValue);\n var upperValue = mainValue[1] + Math.abs(_isArray(errorValue) ? errorValue[1] : errorValue);\n return [Math.min(lowerValue, prevErrorArr[0]), Math.max(upperValue, prevErrorArr[1])];\n }, [Infinity, -Infinity]);\n return [Math.min(errorDomain[0], result[0]), Math.max(errorDomain[1], result[1])];\n }, [Infinity, -Infinity]);\n }\n return null;\n};\nexport var parseErrorBarsOfAxis = function parseErrorBarsOfAxis(data, items, dataKey, axisType, layout) {\n var domains = items.map(function (item) {\n return getDomainOfErrorBars(data, item, dataKey, layout, axisType);\n }).filter(function (entry) {\n return !_isNil(entry);\n });\n if (domains && domains.length) {\n return domains.reduce(function (result, entry) {\n return [Math.min(result[0], entry[0]), Math.max(result[1], entry[1])];\n }, [Infinity, -Infinity]);\n }\n return null;\n};\n\n/**\n * Get domain of data by the configuration of item element\n * @param {Array} data The data displayed in the chart\n * @param {Array} items The instances of item\n * @param {String} type The type of axis, number - Number Axis, category - Category Axis\n * @param {LayoutType} layout The type of layout\n * @param {Boolean} filterNil Whether or not filter nil values\n * @return {Array} Domain\n */\nexport var getDomainOfItemsWithSameAxis = function getDomainOfItemsWithSameAxis(data, items, type, layout, filterNil) {\n var domains = items.map(function (item) {\n var dataKey = item.props.dataKey;\n if (type === 'number' && dataKey) {\n return getDomainOfErrorBars(data, item, dataKey, layout) || getDomainOfDataByKey(data, dataKey, type, filterNil);\n }\n return getDomainOfDataByKey(data, dataKey, type, filterNil);\n });\n if (type === 'number') {\n // Calculate the domain of number axis\n return domains.reduce(function (result, entry) {\n return [Math.min(result[0], entry[0]), Math.max(result[1], entry[1])];\n }, [Infinity, -Infinity]);\n }\n var tag = {};\n // Get the union set of category axis\n return domains.reduce(function (result, entry) {\n for (var i = 0, len = entry.length; i < len; i++) {\n if (!tag[entry[i]]) {\n tag[entry[i]] = true;\n result.push(entry[i]);\n }\n }\n return result;\n }, []);\n};\nexport var isCategoricalAxis = function isCategoricalAxis(layout, axisType) {\n return layout === 'horizontal' && axisType === 'xAxis' || layout === 'vertical' && axisType === 'yAxis' || layout === 'centric' && axisType === 'angleAxis' || layout === 'radial' && axisType === 'radiusAxis';\n};\n\n/**\n * Calculate the Coordinates of grid\n * @param {Array} ticks The ticks in axis\n * @param {Number} min The minimun value of axis\n * @param {Number} max The maximun value of axis\n * @return {Array} Coordinates\n */\nexport var getCoordinatesOfGrid = function getCoordinatesOfGrid(ticks, min, max) {\n var hasMin, hasMax;\n var values = ticks.map(function (entry) {\n if (entry.coordinate === min) {\n hasMin = true;\n }\n if (entry.coordinate === max) {\n hasMax = true;\n }\n return entry.coordinate;\n });\n if (!hasMin) {\n values.push(min);\n }\n if (!hasMax) {\n values.push(max);\n }\n return values;\n};\n\n/**\n * Get the ticks of an axis\n * @param {Object} axis The configuration of an axis\n * @param {Boolean} isGrid Whether or not are the ticks in grid\n * @param {Boolean} isAll Return the ticks of all the points or not\n * @return {Array} Ticks\n */\nexport var getTicksOfAxis = function getTicksOfAxis(axis, isGrid, isAll) {\n if (!axis) return null;\n var scale = axis.scale;\n var duplicateDomain = axis.duplicateDomain,\n type = axis.type,\n range = axis.range;\n var offsetForBand = axis.realScaleType === 'scaleBand' ? scale.bandwidth() / 2 : 2;\n var offset = (isGrid || isAll) && type === 'category' && scale.bandwidth ? scale.bandwidth() / offsetForBand : 0;\n offset = axis.axisType === 'angleAxis' && (range === null || range === void 0 ? void 0 : range.length) >= 2 ? mathSign(range[0] - range[1]) * 2 * offset : offset;\n\n // The ticks set by user should only affect the ticks adjacent to axis line\n if (isGrid && (axis.ticks || axis.niceTicks)) {\n var result = (axis.ticks || axis.niceTicks).map(function (entry) {\n var scaleContent = duplicateDomain ? duplicateDomain.indexOf(entry) : entry;\n return {\n // If the scaleContent is not a number, the coordinate will be NaN.\n // That could be the case for example with a PointScale and a string as domain.\n coordinate: scale(scaleContent) + offset,\n value: entry,\n offset: offset\n };\n });\n return result.filter(function (row) {\n return !_isNaN(row.coordinate);\n });\n }\n\n // When axis is a categorial axis, but the type of axis is number or the scale of axis is not \"auto\"\n if (axis.isCategorical && axis.categoricalDomain) {\n return axis.categoricalDomain.map(function (entry, index) {\n return {\n coordinate: scale(entry) + offset,\n value: entry,\n index: index,\n offset: offset\n };\n });\n }\n if (scale.ticks && !isAll) {\n return scale.ticks(axis.tickCount).map(function (entry) {\n return {\n coordinate: scale(entry) + offset,\n value: entry,\n offset: offset\n };\n });\n }\n\n // When axis has duplicated text, serial numbers are used to generate scale\n return scale.domain().map(function (entry, index) {\n return {\n coordinate: scale(entry) + offset,\n value: duplicateDomain ? duplicateDomain[entry] : entry,\n index: index,\n offset: offset\n };\n });\n};\n\n/**\n * combine the handlers\n * @param {Function} defaultHandler Internal private handler\n * @param {Function} parentHandler Handler function specified in parent component\n * @param {Function} childHandler Handler function specified in child component\n * @return {Function} The combined handler\n */\nexport var combineEventHandlers = function combineEventHandlers(defaultHandler, parentHandler, childHandler) {\n var customizedHandler;\n if (_isFunction(childHandler)) {\n customizedHandler = childHandler;\n } else if (_isFunction(parentHandler)) {\n customizedHandler = parentHandler;\n }\n if (_isFunction(defaultHandler) || customizedHandler) {\n return function (arg1, arg2, arg3, arg4) {\n if (_isFunction(defaultHandler)) {\n defaultHandler(arg1, arg2, arg3, arg4);\n }\n if (_isFunction(customizedHandler)) {\n customizedHandler(arg1, arg2, arg3, arg4);\n }\n };\n }\n return null;\n};\n/**\n * Parse the scale function of axis\n * @param {Object} axis The option of axis\n * @param {String} chartType The displayName of chart\n * @param {Boolean} hasBar if it has a bar\n * @return {Function} The scale function\n */\nexport var parseScale = function parseScale(axis, chartType, hasBar) {\n var scale = axis.scale,\n type = axis.type,\n layout = axis.layout,\n axisType = axis.axisType;\n if (scale === 'auto') {\n if (layout === 'radial' && axisType === 'radiusAxis') {\n return {\n scale: d3Scales.scaleBand(),\n realScaleType: 'band'\n };\n }\n if (layout === 'radial' && axisType === 'angleAxis') {\n return {\n scale: d3Scales.scaleLinear(),\n realScaleType: 'linear'\n };\n }\n if (type === 'category' && chartType && (chartType.indexOf('LineChart') >= 0 || chartType.indexOf('AreaChart') >= 0 || chartType.indexOf('ComposedChart') >= 0 && !hasBar)) {\n return {\n scale: d3Scales.scalePoint(),\n realScaleType: 'point'\n };\n }\n if (type === 'category') {\n return {\n scale: d3Scales.scaleBand(),\n realScaleType: 'band'\n };\n }\n return {\n scale: d3Scales.scaleLinear(),\n realScaleType: 'linear'\n };\n }\n if (_isString(scale)) {\n var name = \"scale\".concat(_upperFirst(scale));\n return {\n scale: (d3Scales[name] || d3Scales.scalePoint)(),\n realScaleType: d3Scales[name] ? name : 'point'\n };\n }\n return _isFunction(scale) ? {\n scale: scale\n } : {\n scale: d3Scales.scalePoint(),\n realScaleType: 'point'\n };\n};\nvar EPS = 1e-4;\nexport var checkDomainOfScale = function checkDomainOfScale(scale) {\n var domain = scale.domain();\n if (!domain || domain.length <= 2) {\n return;\n }\n var len = domain.length;\n var range = scale.range();\n var min = Math.min(range[0], range[1]) - EPS;\n var max = Math.max(range[0], range[1]) + EPS;\n var first = scale(domain[0]);\n var last = scale(domain[len - 1]);\n if (first < min || first > max || last < min || last > max) {\n scale.domain([domain[0], domain[len - 1]]);\n }\n};\nexport var findPositionOfBar = function findPositionOfBar(barPosition, child) {\n if (!barPosition) {\n return null;\n }\n for (var i = 0, len = barPosition.length; i < len; i++) {\n if (barPosition[i].item === child) {\n return barPosition[i].position;\n }\n }\n return null;\n};\nexport var truncateByDomain = function truncateByDomain(value, domain) {\n if (!domain || domain.length !== 2 || !isNumber(domain[0]) || !isNumber(domain[1])) {\n return value;\n }\n var min = Math.min(domain[0], domain[1]);\n var max = Math.max(domain[0], domain[1]);\n var result = [value[0], value[1]];\n if (!isNumber(value[0]) || value[0] < min) {\n result[0] = min;\n }\n if (!isNumber(value[1]) || value[1] > max) {\n result[1] = max;\n }\n if (result[0] > max) {\n result[0] = max;\n }\n if (result[1] < min) {\n result[1] = min;\n }\n return result;\n};\n\n/* eslint no-param-reassign: 0 */\nexport var offsetSign = function offsetSign(series) {\n var n = series.length;\n if (n <= 0) {\n return;\n }\n for (var j = 0, m = series[0].length; j < m; ++j) {\n var positive = 0;\n var negative = 0;\n for (var i = 0; i < n; ++i) {\n var value = _isNaN(series[i][j][1]) ? series[i][j][0] : series[i][j][1];\n\n /* eslint-disable prefer-destructuring */\n if (value >= 0) {\n series[i][j][0] = positive;\n series[i][j][1] = positive + value;\n positive = series[i][j][1];\n } else {\n series[i][j][0] = negative;\n series[i][j][1] = negative + value;\n negative = series[i][j][1];\n }\n /* eslint-enable prefer-destructuring */\n }\n }\n};\n\nexport var offsetPositive = function offsetPositive(series) {\n var n = series.length;\n if (n <= 0) {\n return;\n }\n for (var j = 0, m = series[0].length; j < m; ++j) {\n var positive = 0;\n for (var i = 0; i < n; ++i) {\n var value = _isNaN(series[i][j][1]) ? series[i][j][0] : series[i][j][1];\n\n /* eslint-disable prefer-destructuring */\n if (value >= 0) {\n series[i][j][0] = positive;\n series[i][j][1] = positive + value;\n positive = series[i][j][1];\n } else {\n series[i][j][0] = 0;\n series[i][j][1] = 0;\n }\n /* eslint-enable prefer-destructuring */\n }\n }\n};\n\nvar STACK_OFFSET_MAP = {\n sign: offsetSign,\n expand: stackOffsetExpand,\n none: stackOffsetNone,\n silhouette: stackOffsetSilhouette,\n wiggle: stackOffsetWiggle,\n positive: offsetPositive\n};\nexport var getStackedData = function getStackedData(data, stackItems, offsetType) {\n var dataKeys = stackItems.map(function (item) {\n return item.props.dataKey;\n });\n var stack = shapeStack().keys(dataKeys).value(function (d, key) {\n return +getValueByDataKey(d, key, 0);\n }).order(stackOrderNone).offset(STACK_OFFSET_MAP[offsetType]);\n return stack(data);\n};\nexport var getStackGroupsByAxisId = function getStackGroupsByAxisId(data, _items, numericAxisId, cateAxisId, offsetType, reverseStackOrder) {\n if (!data) {\n return null;\n }\n\n // reversing items to affect render order (for layering)\n var items = reverseStackOrder ? _items.reverse() : _items;\n var stackGroups = items.reduce(function (result, item) {\n var _item$props3 = item.props,\n stackId = _item$props3.stackId,\n hide = _item$props3.hide;\n if (hide) {\n return result;\n }\n var axisId = item.props[numericAxisId];\n var parentGroup = result[axisId] || {\n hasStack: false,\n stackGroups: {}\n };\n if (isNumOrStr(stackId)) {\n var childGroup = parentGroup.stackGroups[stackId] || {\n numericAxisId: numericAxisId,\n cateAxisId: cateAxisId,\n items: []\n };\n childGroup.items.push(item);\n parentGroup.hasStack = true;\n parentGroup.stackGroups[stackId] = childGroup;\n } else {\n parentGroup.stackGroups[uniqueId('_stackId_')] = {\n numericAxisId: numericAxisId,\n cateAxisId: cateAxisId,\n items: [item]\n };\n }\n return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, axisId, parentGroup));\n }, {});\n return Object.keys(stackGroups).reduce(function (result, axisId) {\n var group = stackGroups[axisId];\n if (group.hasStack) {\n group.stackGroups = Object.keys(group.stackGroups).reduce(function (res, stackId) {\n var g = group.stackGroups[stackId];\n return _objectSpread(_objectSpread({}, res), {}, _defineProperty({}, stackId, {\n numericAxisId: numericAxisId,\n cateAxisId: cateAxisId,\n items: g.items,\n stackedData: getStackedData(data, g.items, offsetType)\n }));\n }, {});\n }\n return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, axisId, group));\n }, {});\n};\n\n/**\n * Configure the scale function of axis\n * @param {Object} scale The scale function\n * @param {Object} opts The configuration of axis\n * @return {Object} null\n */\nexport var getTicksOfScale = function getTicksOfScale(scale, opts) {\n var realScaleType = opts.realScaleType,\n type = opts.type,\n tickCount = opts.tickCount,\n originalDomain = opts.originalDomain,\n allowDecimals = opts.allowDecimals;\n var scaleType = realScaleType || opts.scale;\n if (scaleType !== 'auto' && scaleType !== 'linear') {\n return null;\n }\n if (tickCount && type === 'number' && originalDomain && (originalDomain[0] === 'auto' || originalDomain[1] === 'auto')) {\n // Calculate the ticks by the number of grid when the axis is a number axis\n var domain = scale.domain();\n if (!domain.length) {\n return null;\n }\n var tickValues = getNiceTickValues(domain, tickCount, allowDecimals);\n scale.domain([_min(tickValues), _max(tickValues)]);\n return {\n niceTicks: tickValues\n };\n }\n if (tickCount && type === 'number') {\n var _domain = scale.domain();\n var _tickValues = getTickValuesFixedDomain(_domain, tickCount, allowDecimals);\n return {\n niceTicks: _tickValues\n };\n }\n return null;\n};\nexport var getCateCoordinateOfLine = function getCateCoordinateOfLine(_ref7) {\n var axis = _ref7.axis,\n ticks = _ref7.ticks,\n bandSize = _ref7.bandSize,\n entry = _ref7.entry,\n index = _ref7.index,\n dataKey = _ref7.dataKey;\n if (axis.type === 'category') {\n // find coordinate of category axis by the value of category\n if (!axis.allowDuplicatedCategory && axis.dataKey && !_isNil(entry[axis.dataKey])) {\n var matchedTick = findEntryInArray(ticks, 'value', entry[axis.dataKey]);\n if (matchedTick) {\n return matchedTick.coordinate + bandSize / 2;\n }\n }\n return ticks[index] ? ticks[index].coordinate + bandSize / 2 : null;\n }\n var value = getValueByDataKey(entry, !_isNil(dataKey) ? dataKey : axis.dataKey);\n return !_isNil(value) ? axis.scale(value) : null;\n};\nexport var getCateCoordinateOfBar = function getCateCoordinateOfBar(_ref8) {\n var axis = _ref8.axis,\n ticks = _ref8.ticks,\n offset = _ref8.offset,\n bandSize = _ref8.bandSize,\n entry = _ref8.entry,\n index = _ref8.index;\n if (axis.type === 'category') {\n return ticks[index] ? ticks[index].coordinate + offset : null;\n }\n var value = getValueByDataKey(entry, axis.dataKey, axis.domain[index]);\n return !_isNil(value) ? axis.scale(value) - bandSize / 2 + offset : null;\n};\nexport var getBaseValueOfBar = function getBaseValueOfBar(_ref9) {\n var numericAxis = _ref9.numericAxis;\n var domain = numericAxis.scale.domain();\n if (numericAxis.type === 'number') {\n var min = Math.min(domain[0], domain[1]);\n var max = Math.max(domain[0], domain[1]);\n if (min <= 0 && max >= 0) {\n return 0;\n }\n if (max < 0) {\n return max;\n }\n return min;\n }\n return domain[0];\n};\nexport var getStackedDataOfItem = function getStackedDataOfItem(item, stackGroups) {\n var stackId = item.props.stackId;\n if (isNumOrStr(stackId)) {\n var group = stackGroups[stackId];\n if (group && group.items.length) {\n var itemIndex = -1;\n for (var i = 0, len = group.items.length; i < len; i++) {\n if (group.items[i] === item) {\n itemIndex = i;\n break;\n }\n }\n return itemIndex >= 0 ? group.stackedData[itemIndex] : null;\n }\n }\n return null;\n};\nvar getDomainOfSingle = function getDomainOfSingle(data) {\n return data.reduce(function (result, entry) {\n return [_min(entry.concat([result[0]]).filter(isNumber)), _max(entry.concat([result[1]]).filter(isNumber))];\n }, [Infinity, -Infinity]);\n};\nexport var getDomainOfStackGroups = function getDomainOfStackGroups(stackGroups, startIndex, endIndex) {\n return Object.keys(stackGroups).reduce(function (result, stackId) {\n var group = stackGroups[stackId];\n var stackedData = group.stackedData;\n var domain = stackedData.reduce(function (res, entry) {\n var s = getDomainOfSingle(entry.slice(startIndex, endIndex + 1));\n return [Math.min(res[0], s[0]), Math.max(res[1], s[1])];\n }, [Infinity, -Infinity]);\n return [Math.min(domain[0], result[0]), Math.max(domain[1], result[1])];\n }, [Infinity, -Infinity]).map(function (result) {\n return result === Infinity || result === -Infinity ? 0 : result;\n });\n};\nexport var MIN_VALUE_REG = /^dataMin[\\s]*-[\\s]*([0-9]+([.]{1}[0-9]+){0,1})$/;\nexport var MAX_VALUE_REG = /^dataMax[\\s]*\\+[\\s]*([0-9]+([.]{1}[0-9]+){0,1})$/;\nexport var parseSpecifiedDomain = function parseSpecifiedDomain(specifiedDomain, dataDomain, allowDataOverflow) {\n if (_isFunction(specifiedDomain)) {\n return specifiedDomain(dataDomain, allowDataOverflow);\n }\n if (!_isArray(specifiedDomain)) {\n return dataDomain;\n }\n var domain = [];\n\n /* eslint-disable prefer-destructuring */\n if (isNumber(specifiedDomain[0])) {\n domain[0] = allowDataOverflow ? specifiedDomain[0] : Math.min(specifiedDomain[0], dataDomain[0]);\n } else if (MIN_VALUE_REG.test(specifiedDomain[0])) {\n var value = +MIN_VALUE_REG.exec(specifiedDomain[0])[1];\n domain[0] = dataDomain[0] - value;\n } else if (_isFunction(specifiedDomain[0])) {\n domain[0] = specifiedDomain[0](dataDomain[0]);\n } else {\n domain[0] = dataDomain[0];\n }\n if (isNumber(specifiedDomain[1])) {\n domain[1] = allowDataOverflow ? specifiedDomain[1] : Math.max(specifiedDomain[1], dataDomain[1]);\n } else if (MAX_VALUE_REG.test(specifiedDomain[1])) {\n var _value = +MAX_VALUE_REG.exec(specifiedDomain[1])[1];\n domain[1] = dataDomain[1] + _value;\n } else if (_isFunction(specifiedDomain[1])) {\n domain[1] = specifiedDomain[1](dataDomain[1]);\n } else {\n domain[1] = dataDomain[1];\n }\n /* eslint-enable prefer-destructuring */\n\n return domain;\n};\n\n/**\n * Calculate the size between two category\n * @param {Object} axis The options of axis\n * @param {Array} ticks The ticks of axis\n * @param {Boolean} isBar if items in axis are bars\n * @return {Number} Size\n */\nexport var getBandSizeOfAxis = function getBandSizeOfAxis(axis, ticks, isBar) {\n if (axis && axis.scale && axis.scale.bandwidth) {\n var bandWidth = axis.scale.bandwidth();\n if (!isBar || bandWidth > 0) {\n return bandWidth;\n }\n }\n if (axis && ticks && ticks.length >= 2) {\n var orderedTicks = _sortBy(ticks, function (o) {\n return o.coordinate;\n });\n var bandSize = Infinity;\n for (var i = 1, len = orderedTicks.length; i < len; i++) {\n var cur = orderedTicks[i];\n var prev = orderedTicks[i - 1];\n bandSize = Math.min((cur.coordinate || 0) - (prev.coordinate || 0), bandSize);\n }\n return bandSize === Infinity ? 0 : bandSize;\n }\n return isBar ? undefined : 0;\n};\n/**\n * parse the domain of a category axis when a domain is specified\n * @param {Array} specifiedDomain The domain specified by users\n * @param {Array} calculatedDomain The domain calculated by dateKey\n * @param {ReactElement} axisChild The axis element\n * @returns {Array} domains\n */\nexport var parseDomainOfCategoryAxis = function parseDomainOfCategoryAxis(specifiedDomain, calculatedDomain, axisChild) {\n if (!specifiedDomain || !specifiedDomain.length) {\n return calculatedDomain;\n }\n if (_isEqual(specifiedDomain, _get(axisChild, 'type.defaultProps.domain'))) {\n return calculatedDomain;\n }\n return specifiedDomain;\n};\nexport var getTooltipItem = function getTooltipItem(graphicalItem, payload) {\n var _graphicalItem$props = graphicalItem.props,\n dataKey = _graphicalItem$props.dataKey,\n name = _graphicalItem$props.name,\n unit = _graphicalItem$props.unit,\n formatter = _graphicalItem$props.formatter,\n tooltipType = _graphicalItem$props.tooltipType,\n chartType = _graphicalItem$props.chartType;\n return _objectSpread(_objectSpread({}, filterProps(graphicalItem)), {}, {\n dataKey: dataKey,\n unit: unit,\n formatter: formatter,\n name: name || dataKey,\n color: getMainColorOfGraphicItem(graphicalItem),\n value: getValueByDataKey(payload, dataKey),\n type: tooltipType,\n payload: payload,\n chartType: chartType\n });\n};","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction 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; }\nfunction _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; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nimport { Global } from './Global';\nvar stringCache = {\n widthCache: {},\n cacheCount: 0\n};\nvar MAX_CACHE_NUM = 2000;\nvar SPAN_STYLE = {\n position: 'absolute',\n top: '-20000px',\n left: 0,\n padding: 0,\n margin: 0,\n border: 'none',\n whiteSpace: 'pre'\n};\nvar STYLE_LIST = ['minWidth', 'maxWidth', 'width', 'minHeight', 'maxHeight', 'height', 'top', 'left', 'fontSize', 'lineHeight', 'padding', 'margin', 'paddingLeft', 'paddingRight', 'paddingTop', 'paddingBottom', 'marginLeft', 'marginRight', 'marginTop', 'marginBottom'];\nvar MEASUREMENT_SPAN_ID = 'recharts_measurement_span';\nfunction autoCompleteStyle(name, value) {\n if (STYLE_LIST.indexOf(name) >= 0 && value === +value) {\n return \"\".concat(value, \"px\");\n }\n return value;\n}\nfunction camelToMiddleLine(text) {\n var strs = text.split('');\n var formatStrs = strs.reduce(function (result, entry) {\n if (entry === entry.toUpperCase()) {\n return [].concat(_toConsumableArray(result), ['-', entry.toLowerCase()]);\n }\n return [].concat(_toConsumableArray(result), [entry]);\n }, []);\n return formatStrs.join('');\n}\nexport var getStyleString = function getStyleString(style) {\n return Object.keys(style).reduce(function (result, s) {\n return \"\".concat(result).concat(camelToMiddleLine(s), \":\").concat(autoCompleteStyle(s, style[s]), \";\");\n }, '');\n};\nexport var getStringSize = function getStringSize(text) {\n var style = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n if (text === undefined || text === null || Global.isSsr) {\n return {\n width: 0,\n height: 0\n };\n }\n var str = \"\".concat(text);\n var styleString = getStyleString(style);\n var cacheKey = \"\".concat(str, \"-\").concat(styleString);\n if (stringCache.widthCache[cacheKey]) {\n return stringCache.widthCache[cacheKey];\n }\n try {\n var measurementSpan = document.getElementById(MEASUREMENT_SPAN_ID);\n if (!measurementSpan) {\n measurementSpan = document.createElement('span');\n measurementSpan.setAttribute('id', MEASUREMENT_SPAN_ID);\n measurementSpan.setAttribute('aria-hidden', 'true');\n document.body.appendChild(measurementSpan);\n }\n // Need to use CSS Object Model (CSSOM) to be able to comply with Content Security Policy (CSP)\n // https://en.wikipedia.org/wiki/Content_Security_Policy\n var measurementSpanStyle = _objectSpread(_objectSpread({}, SPAN_STYLE), style);\n Object.keys(measurementSpanStyle).map(function (styleKey) {\n measurementSpan.style[styleKey] = measurementSpanStyle[styleKey];\n return styleKey;\n });\n measurementSpan.textContent = str;\n var rect = measurementSpan.getBoundingClientRect();\n var result = {\n width: rect.width,\n height: rect.height\n };\n stringCache.widthCache[cacheKey] = result;\n if (++stringCache.cacheCount > MAX_CACHE_NUM) {\n stringCache.cacheCount = 0;\n stringCache.widthCache = {};\n }\n return result;\n } catch (e) {\n return {\n width: 0,\n height: 0\n };\n }\n};\nexport var getOffset = function getOffset(el) {\n var html = el.ownerDocument.documentElement;\n var box = {\n top: 0,\n left: 0\n };\n\n // If we don't have gBCR, just use 0,0 rather than error\n // BlackBerry 5, iOS 3 (original iPhone)\n if (typeof el.getBoundingClientRect !== 'undefined') {\n box = el.getBoundingClientRect();\n }\n return {\n top: box.top + window.pageYOffset - html.clientTop,\n left: box.left + window.pageXOffset - html.clientLeft\n };\n};\n\n/**\n * Calculate coordinate of cursor in chart\n * @param {Object} event Event object\n * @param {Object} offset The offset of main part in the svg element\n * @return {Object} {chartX, chartY}\n */\nexport var calculateChartCoordinate = function calculateChartCoordinate(event, offset) {\n return {\n chartX: Math.round(event.pageX - offset.left),\n chartY: Math.round(event.pageY - offset.top)\n };\n};","import _get from \"lodash/get\";\nimport _isArray from \"lodash/isArray\";\nimport _isNaN from \"lodash/isNaN\";\nimport _isNumber from \"lodash/isNumber\";\nimport _isString from \"lodash/isString\";\nexport var mathSign = function mathSign(value) {\n if (value === 0) {\n return 0;\n }\n if (value > 0) {\n return 1;\n }\n return -1;\n};\nexport var isPercent = function isPercent(value) {\n return _isString(value) && value.indexOf('%') === value.length - 1;\n};\nexport var isNumber = function isNumber(value) {\n return _isNumber(value) && !_isNaN(value);\n};\nexport var isNumOrStr = function isNumOrStr(value) {\n return isNumber(value) || _isString(value);\n};\nvar idCounter = 0;\nexport var uniqueId = function uniqueId(prefix) {\n var id = ++idCounter;\n return \"\".concat(prefix || '').concat(id);\n};\n\n/**\n * Get percent value of a total value\n * @param {number|string} percent A percent\n * @param {number} totalValue Total value\n * @param {number} defaultValue The value returned when percent is undefined or invalid\n * @param {boolean} validate If set to be true, the result will be validated\n * @return {number} value\n */\nexport var getPercentValue = function getPercentValue(percent, totalValue) {\n var defaultValue = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;\n var validate = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;\n if (!isNumber(percent) && !_isString(percent)) {\n return defaultValue;\n }\n var value;\n if (isPercent(percent)) {\n var index = percent.indexOf('%');\n value = totalValue * parseFloat(percent.slice(0, index)) / 100;\n } else {\n value = +percent;\n }\n if (_isNaN(value)) {\n value = defaultValue;\n }\n if (validate && value > totalValue) {\n value = totalValue;\n }\n return value;\n};\nexport var getAnyElementOfObject = function getAnyElementOfObject(obj) {\n if (!obj) {\n return null;\n }\n var keys = Object.keys(obj);\n if (keys && keys.length) {\n return obj[keys[0]];\n }\n return null;\n};\nexport var hasDuplicate = function hasDuplicate(ary) {\n if (!_isArray(ary)) {\n return false;\n }\n var len = ary.length;\n var cache = {};\n for (var i = 0; i < len; i++) {\n if (!cache[ary[i]]) {\n cache[ary[i]] = true;\n } else {\n return true;\n }\n }\n return false;\n};\n\n/* @todo consider to rename this function into `getInterpolator` */\nexport var interpolateNumber = function interpolateNumber(numberA, numberB) {\n if (isNumber(numberA) && isNumber(numberB)) {\n return function (t) {\n return numberA + t * (numberB - numberA);\n };\n }\n return function () {\n return numberB;\n };\n};\nexport function findEntryInArray(ary, specifiedKey, specifiedValue) {\n if (!ary || !ary.length) {\n return null;\n }\n return ary.find(function (entry) {\n return entry && (typeof specifiedKey === 'function' ? specifiedKey(entry) : _get(entry, specifiedKey)) === specifiedValue;\n });\n}\n\n/**\n * The least square linear regression\n * @param {Array} data The array of points\n * @returns {Object} The domain of x, and the parameter of linear function\n */\nexport var getLinearRegression = function getLinearRegression(data) {\n if (!data || !data.length) {\n return null;\n }\n var len = data.length;\n var xsum = 0;\n var ysum = 0;\n var xysum = 0;\n var xxsum = 0;\n var xmin = Infinity;\n var xmax = -Infinity;\n var xcurrent = 0;\n var ycurrent = 0;\n for (var i = 0; i < len; i++) {\n xcurrent = data[i].cx || 0;\n ycurrent = data[i].cy || 0;\n xsum += xcurrent;\n ysum += ycurrent;\n xysum += xcurrent * ycurrent;\n xxsum += xcurrent * xcurrent;\n xmin = Math.min(xmin, xcurrent);\n xmax = Math.max(xmax, xcurrent);\n }\n var a = len * xxsum !== xsum * xsum ? (len * xysum - xsum * ysum) / (len * xxsum - xsum * xsum) : 0;\n return {\n xmin: xmin,\n xmax: xmax,\n a: a,\n b: (ysum - a * xsum) / len\n };\n};","var parseIsSsrByDefault = function parseIsSsrByDefault() {\n return !(typeof window !== 'undefined' && window.document && window.document.createElement && window.setTimeout);\n};\nexport var Global = {\n isSsr: parseIsSsrByDefault(),\n get: function get(key) {\n return Global[key];\n },\n set: function set(key, value) {\n if (typeof key === 'string') {\n Global[key] = value;\n } else {\n var keys = Object.keys(key);\n if (keys && keys.length) {\n keys.forEach(function (k) {\n Global[k] = key[k];\n });\n }\n }\n }\n};","export var ifOverflowMatches = function ifOverflowMatches(props, value) {\n var alwaysShow = props.alwaysShow;\n var ifOverflow = props.ifOverflow;\n if (alwaysShow) {\n ifOverflow = 'extendDomain';\n }\n return ifOverflow === value;\n};","/* eslint no-console: 0 */\nvar isDev = process.env.NODE_ENV !== 'production';\nexport var warn = function warn(condition, format) {\n for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n args[_key - 2] = arguments[_key];\n }\n if (isDev && typeof console !== 'undefined' && console.warn) {\n if (format === undefined) {\n console.warn('LogUtils requires an error message argument');\n }\n if (!condition) {\n if (format === undefined) {\n console.warn('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.');\n } else {\n var argIndex = 0;\n console.warn(format.replace(/%s/g, function () {\n return args[argIndex++];\n }));\n }\n }\n }\n};","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nimport _isNil from \"lodash/isNil\";\nfunction 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; }\nfunction _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; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : \"undefined\" != typeof Symbol && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i[\"return\"] && (_r = _i[\"return\"](), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nimport { getPercentValue } from './DataUtils';\nimport { parseScale, checkDomainOfScale, getTicksOfScale } from './ChartUtils';\nexport var RADIAN = Math.PI / 180;\nexport var degreeToRadian = function degreeToRadian(angle) {\n return angle * Math.PI / 180;\n};\nexport var radianToDegree = function radianToDegree(angleInRadian) {\n return angleInRadian * 180 / Math.PI;\n};\nexport var polarToCartesian = function polarToCartesian(cx, cy, radius, angle) {\n return {\n x: cx + Math.cos(-RADIAN * angle) * radius,\n y: cy + Math.sin(-RADIAN * angle) * radius\n };\n};\nexport var getMaxRadius = function getMaxRadius(width, height) {\n var offset = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n };\n return Math.min(Math.abs(width - (offset.left || 0) - (offset.right || 0)), Math.abs(height - (offset.top || 0) - (offset.bottom || 0))) / 2;\n};\n\n/**\n * Calculate the scale function, position, width, height of axes\n * @param {Object} props Latest props\n * @param {Object} axisMap The configuration of axes\n * @param {Object} offset The offset of main part in the svg element\n * @param {Object} axisType The type of axes, radius-axis or angle-axis\n * @param {String} chartName The name of chart\n * @return {Object} Configuration\n */\nexport var formatAxisMap = function formatAxisMap(props, axisMap, offset, axisType, chartName) {\n var width = props.width,\n height = props.height;\n var startAngle = props.startAngle,\n endAngle = props.endAngle;\n var cx = getPercentValue(props.cx, width, width / 2);\n var cy = getPercentValue(props.cy, height, height / 2);\n var maxRadius = getMaxRadius(width, height, offset);\n var innerRadius = getPercentValue(props.innerRadius, maxRadius, 0);\n var outerRadius = getPercentValue(props.outerRadius, maxRadius, maxRadius * 0.8);\n var ids = Object.keys(axisMap);\n return ids.reduce(function (result, id) {\n var axis = axisMap[id];\n var domain = axis.domain,\n reversed = axis.reversed;\n var range;\n if (_isNil(axis.range)) {\n if (axisType === 'angleAxis') {\n range = [startAngle, endAngle];\n } else if (axisType === 'radiusAxis') {\n range = [innerRadius, outerRadius];\n }\n if (reversed) {\n range = [range[1], range[0]];\n }\n } else {\n range = axis.range;\n var _range = range;\n var _range2 = _slicedToArray(_range, 2);\n startAngle = _range2[0];\n endAngle = _range2[1];\n }\n var _parseScale = parseScale(axis, chartName),\n realScaleType = _parseScale.realScaleType,\n scale = _parseScale.scale;\n scale.domain(domain).range(range);\n checkDomainOfScale(scale);\n var ticks = getTicksOfScale(scale, _objectSpread(_objectSpread({}, axis), {}, {\n realScaleType: realScaleType\n }));\n var finalAxis = _objectSpread(_objectSpread(_objectSpread({}, axis), ticks), {}, {\n range: range,\n radius: outerRadius,\n realScaleType: realScaleType,\n scale: scale,\n cx: cx,\n cy: cy,\n innerRadius: innerRadius,\n outerRadius: outerRadius,\n startAngle: startAngle,\n endAngle: endAngle\n });\n return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, id, finalAxis));\n }, {});\n};\nexport var distanceBetweenPoints = function distanceBetweenPoints(point, anotherPoint) {\n var x1 = point.x,\n y1 = point.y;\n var x2 = anotherPoint.x,\n y2 = anotherPoint.y;\n return Math.sqrt(Math.pow(x1 - x2, 2) + Math.pow(y1 - y2, 2));\n};\nexport var getAngleOfPoint = function getAngleOfPoint(_ref, _ref2) {\n var x = _ref.x,\n y = _ref.y;\n var cx = _ref2.cx,\n cy = _ref2.cy;\n var radius = distanceBetweenPoints({\n x: x,\n y: y\n }, {\n x: cx,\n y: cy\n });\n if (radius <= 0) {\n return {\n radius: radius\n };\n }\n var cos = (x - cx) / radius;\n var angleInRadian = Math.acos(cos);\n if (y > cy) {\n angleInRadian = 2 * Math.PI - angleInRadian;\n }\n return {\n radius: radius,\n angle: radianToDegree(angleInRadian),\n angleInRadian: angleInRadian\n };\n};\nexport var formatAngleOfSector = function formatAngleOfSector(_ref3) {\n var startAngle = _ref3.startAngle,\n endAngle = _ref3.endAngle;\n var startCnt = Math.floor(startAngle / 360);\n var endCnt = Math.floor(endAngle / 360);\n var min = Math.min(startCnt, endCnt);\n return {\n startAngle: startAngle - min * 360,\n endAngle: endAngle - min * 360\n };\n};\nvar reverseFormatAngleOfSetor = function reverseFormatAngleOfSetor(angle, _ref4) {\n var startAngle = _ref4.startAngle,\n endAngle = _ref4.endAngle;\n var startCnt = Math.floor(startAngle / 360);\n var endCnt = Math.floor(endAngle / 360);\n var min = Math.min(startCnt, endCnt);\n return angle + min * 360;\n};\nexport var inRangeOfSector = function inRangeOfSector(_ref5, sector) {\n var x = _ref5.x,\n y = _ref5.y;\n var _getAngleOfPoint = getAngleOfPoint({\n x: x,\n y: y\n }, sector),\n radius = _getAngleOfPoint.radius,\n angle = _getAngleOfPoint.angle;\n var innerRadius = sector.innerRadius,\n outerRadius = sector.outerRadius;\n if (radius < innerRadius || radius > outerRadius) {\n return false;\n }\n if (radius === 0) {\n return true;\n }\n var _formatAngleOfSector = formatAngleOfSector(sector),\n startAngle = _formatAngleOfSector.startAngle,\n endAngle = _formatAngleOfSector.endAngle;\n var formatAngle = angle;\n var inRange;\n if (startAngle <= endAngle) {\n while (formatAngle > endAngle) {\n formatAngle -= 360;\n }\n while (formatAngle < startAngle) {\n formatAngle += 360;\n }\n inRange = formatAngle >= startAngle && formatAngle <= endAngle;\n } else {\n while (formatAngle > startAngle) {\n formatAngle -= 360;\n }\n while (formatAngle < endAngle) {\n formatAngle += 360;\n }\n inRange = formatAngle >= endAngle && formatAngle <= startAngle;\n }\n if (inRange) {\n return _objectSpread(_objectSpread({}, sector), {}, {\n radius: radius,\n angle: reverseFormatAngleOfSetor(formatAngle, sector)\n });\n }\n return null;\n};","import _isObject from \"lodash/isObject\";\nimport _isFunction from \"lodash/isFunction\";\nimport _isString from \"lodash/isString\";\nimport _get from \"lodash/get\";\nimport _isNil from \"lodash/isNil\";\nimport _isArray from \"lodash/isArray\";\nvar _excluded = [\"children\"],\n _excluded2 = [\"children\"];\nfunction _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; }\nfunction _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; }\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nimport { Children, isValidElement } from 'react';\nimport { isFragment } from 'react-is';\nimport { isNumber } from './DataUtils';\nimport { shallowEqual } from './ShallowEqual';\nimport { FilteredElementKeyMap, SVGElementPropKeys, EventKeys } from './types';\nvar REACT_BROWSER_EVENT_MAP = {\n click: 'onClick',\n mousedown: 'onMouseDown',\n mouseup: 'onMouseUp',\n mouseover: 'onMouseOver',\n mousemove: 'onMouseMove',\n mouseout: 'onMouseOut',\n mouseenter: 'onMouseEnter',\n mouseleave: 'onMouseLeave',\n touchcancel: 'onTouchCancel',\n touchend: 'onTouchEnd',\n touchmove: 'onTouchMove',\n touchstart: 'onTouchStart'\n};\nexport var SCALE_TYPES = ['auto', 'linear', 'pow', 'sqrt', 'log', 'identity', 'time', 'band', 'point', 'ordinal', 'quantile', 'quantize', 'utc', 'sequential', 'threshold'];\nexport var LEGEND_TYPES = ['plainline', 'line', 'square', 'rect', 'circle', 'cross', 'diamond', 'star', 'triangle', 'wye', 'none'];\nexport var TOOLTIP_TYPES = ['none'];\n\n/**\n * Get the display name of a component\n * @param {Object} Comp Specified Component\n * @return {String} Display name of Component\n */\nexport var getDisplayName = function getDisplayName(Comp) {\n if (typeof Comp === 'string') {\n return Comp;\n }\n if (!Comp) {\n return '';\n }\n return Comp.displayName || Comp.name || 'Component';\n};\n\n// `toArray` gets called multiple times during the render\n// so we can memoize last invocation (since reference to `children` is the same)\nvar lastChildren = null;\nvar lastResult = null;\nexport var toArray = function toArray(children) {\n if (children === lastChildren && _isArray(lastResult)) {\n return lastResult;\n }\n var result = [];\n Children.forEach(children, function (child) {\n if (_isNil(child)) return;\n if (isFragment(child)) {\n result = result.concat(toArray(child.props.children));\n } else {\n result.push(child);\n }\n });\n lastResult = result;\n lastChildren = children;\n return result;\n};\n\n/*\n * Find and return all matched children by type.\n * `type` must be a React.ComponentType\n */\nexport function findAllByType(children, type) {\n var result = [];\n var types = [];\n if (_isArray(type)) {\n types = type.map(function (t) {\n return getDisplayName(t);\n });\n } else {\n types = [getDisplayName(type)];\n }\n toArray(children).forEach(function (child) {\n var childType = _get(child, 'type.displayName') || _get(child, 'type.name');\n if (types.indexOf(childType) !== -1) {\n result.push(child);\n }\n });\n return result;\n}\n\n/*\n * Return the first matched child by type, return null otherwise.\n * `type` must be a React.ComponentType\n */\nexport function findChildByType(children, type) {\n var result = findAllByType(children, type);\n return result && result[0];\n}\n\n/*\n * Create a new array of children excluding the ones matched the type\n */\nexport var withoutType = function withoutType(children, type) {\n var newChildren = [];\n var types;\n if (_isArray(type)) {\n types = type.map(function (t) {\n return getDisplayName(t);\n });\n } else {\n types = [getDisplayName(type)];\n }\n toArray(children).forEach(function (child) {\n var displayName = _get(child, 'type.displayName');\n if (displayName && types.indexOf(displayName) !== -1) {\n return;\n }\n newChildren.push(child);\n });\n return newChildren;\n};\n\n/**\n * validate the width and height props of a chart element\n * @param {Object} el A chart element\n * @return {Boolean} true If the props width and height are number, and greater than 0\n */\nexport var validateWidthHeight = function validateWidthHeight(el) {\n if (!el || !el.props) {\n return false;\n }\n var _el$props = el.props,\n width = _el$props.width,\n height = _el$props.height;\n if (!isNumber(width) || width <= 0 || !isNumber(height) || height <= 0) {\n return false;\n }\n return true;\n};\nvar SVG_TAGS = ['a', 'altGlyph', 'altGlyphDef', 'altGlyphItem', 'animate', 'animateColor', 'animateMotion', 'animateTransform', 'circle', 'clipPath', 'color-profile', 'cursor', 'defs', 'desc', 'ellipse', 'feBlend', 'feColormatrix', 'feComponentTransfer', 'feComposite', 'feConvolveMatrix', 'feDiffuseLighting', 'feDisplacementMap', 'feDistantLight', 'feFlood', 'feFuncA', 'feFuncB', 'feFuncG', 'feFuncR', 'feGaussianBlur', 'feImage', 'feMerge', 'feMergeNode', 'feMorphology', 'feOffset', 'fePointLight', 'feSpecularLighting', 'feSpotLight', 'feTile', 'feTurbulence', 'filter', 'font', 'font-face', 'font-face-format', 'font-face-name', 'font-face-url', 'foreignObject', 'g', 'glyph', 'glyphRef', 'hkern', 'image', 'line', 'lineGradient', 'marker', 'mask', 'metadata', 'missing-glyph', 'mpath', 'path', 'pattern', 'polygon', 'polyline', 'radialGradient', 'rect', 'script', 'set', 'stop', 'style', 'svg', 'switch', 'symbol', 'text', 'textPath', 'title', 'tref', 'tspan', 'use', 'view', 'vkern'];\nvar isSvgElement = function isSvgElement(child) {\n return child && child.type && _isString(child.type) && SVG_TAGS.indexOf(child.type) >= 0;\n};\nexport var isDotProps = function isDotProps(dot) {\n return dot && _typeof(dot) === 'object' && 'cx' in dot && 'cy' in dot && 'r' in dot;\n};\n\n/**\n * Checks if the property is valid to spread onto an SVG element or onto a specific component\n * @param {unknown} property property value currently being compared\n * @param {string} key property key currently being compared\n * @param {boolean} includeEvents if events are included in spreadable props\n * @param {boolean} svgElementType checks against map of SVG element types to attributes\n * @returns {boolean} is prop valid\n */\nexport var isValidSpreadableProp = function isValidSpreadableProp(property, key, includeEvents, svgElementType) {\n var _FilteredElementKeyMa;\n /**\n * If the svg element type is explicitly included, check against the filtered element key map\n * to determine if there are attributes that should only exist on that element type.\n * @todo Add an internal cjs version of https://github.com/wooorm/svg-element-attributes for full coverage.\n */\n var matchingElementTypeKeys = (_FilteredElementKeyMa = FilteredElementKeyMap === null || FilteredElementKeyMap === void 0 ? void 0 : FilteredElementKeyMap[svgElementType]) !== null && _FilteredElementKeyMa !== void 0 ? _FilteredElementKeyMa : [];\n return !_isFunction(property) && (svgElementType && matchingElementTypeKeys.includes(key) || SVGElementPropKeys.includes(key)) || includeEvents && EventKeys.includes(key);\n};\n\n/**\n * Filter all the svg elements of children\n * @param {Array} children The children of a react element\n * @return {Array} All the svg elements\n */\nexport var filterSvgElements = function filterSvgElements(children) {\n var svgElements = [];\n toArray(children).forEach(function (entry) {\n if (isSvgElement(entry)) {\n svgElements.push(entry);\n }\n });\n return svgElements;\n};\nexport var filterProps = function filterProps(props, includeEvents, svgElementType) {\n if (!props || typeof props === 'function' || typeof props === 'boolean') {\n return null;\n }\n var inputProps = props;\n if ( /*#__PURE__*/isValidElement(props)) {\n inputProps = props.props;\n }\n if (!_isObject(inputProps)) {\n return null;\n }\n var out = {};\n\n /**\n * Props are blindly spread onto SVG elements. This loop filters out properties that we don't want to spread.\n * Items filtered out are as follows:\n * - functions in properties that are SVG attributes (functions are included when includeEvents is true)\n * - props that are SVG attributes but don't matched the passed svgElementType\n * - any prop that is not in SVGElementPropKeys (or in EventKeys if includeEvents is true)\n */\n Object.keys(inputProps).forEach(function (key) {\n var _inputProps;\n if (isValidSpreadableProp((_inputProps = inputProps) === null || _inputProps === void 0 ? void 0 : _inputProps[key], key, includeEvents, svgElementType)) {\n out[key] = inputProps[key];\n }\n });\n return out;\n};\n\n/**\n * Wether props of children changed\n * @param {Object} nextChildren The latest children\n * @param {Object} prevChildren The prev children\n * @return {Boolean} equal or not\n */\nexport var isChildrenEqual = function isChildrenEqual(nextChildren, prevChildren) {\n if (nextChildren === prevChildren) {\n return true;\n }\n var count = Children.count(nextChildren);\n if (count !== Children.count(prevChildren)) {\n return false;\n }\n if (count === 0) {\n return true;\n }\n if (count === 1) {\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n return isSingleChildEqual(_isArray(nextChildren) ? nextChildren[0] : nextChildren, _isArray(prevChildren) ? prevChildren[0] : prevChildren);\n }\n for (var i = 0; i < count; i++) {\n var nextChild = nextChildren[i];\n var prevChild = prevChildren[i];\n if (_isArray(nextChild) || _isArray(prevChild)) {\n if (!isChildrenEqual(nextChild, prevChild)) {\n return false;\n }\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n } else if (!isSingleChildEqual(nextChild, prevChild)) {\n return false;\n }\n }\n return true;\n};\nexport var isSingleChildEqual = function isSingleChildEqual(nextChild, prevChild) {\n if (_isNil(nextChild) && _isNil(prevChild)) {\n return true;\n }\n if (!_isNil(nextChild) && !_isNil(prevChild)) {\n var _ref = nextChild.props || {},\n nextChildren = _ref.children,\n nextProps = _objectWithoutProperties(_ref, _excluded);\n var _ref2 = prevChild.props || {},\n prevChildren = _ref2.children,\n prevProps = _objectWithoutProperties(_ref2, _excluded2);\n if (nextChildren && prevChildren) {\n return shallowEqual(nextProps, prevProps) && isChildrenEqual(nextChildren, prevChildren);\n }\n if (!nextChildren && !prevChildren) {\n return shallowEqual(nextProps, prevProps);\n }\n return false;\n }\n return false;\n};\nexport var renderByOrder = function renderByOrder(children, renderMap) {\n var elements = [];\n var record = {};\n toArray(children).forEach(function (child, index) {\n if (isSvgElement(child)) {\n elements.push(child);\n } else if (child) {\n var displayName = getDisplayName(child.type);\n var _ref3 = renderMap[displayName] || {},\n handler = _ref3.handler,\n once = _ref3.once;\n if (handler && (!once || !record[displayName])) {\n var results = handler(child, displayName, index);\n elements.push(results);\n record[displayName] = true;\n }\n }\n });\n return elements;\n};\nexport var getReactEventByType = function getReactEventByType(e) {\n var type = e && e.type;\n if (type && REACT_BROWSER_EVENT_MAP[type]) {\n return REACT_BROWSER_EVENT_MAP[type];\n }\n return null;\n};\nexport var parseChildIndex = function parseChildIndex(child, children) {\n return toArray(children).indexOf(child);\n};","export function shallowEqual(a, b) {\n /* eslint-disable no-restricted-syntax */\n for (var key in a) {\n if ({}.hasOwnProperty.call(a, key) && (!{}.hasOwnProperty.call(b, key) || a[key] !== b[key])) {\n return false;\n }\n }\n for (var _key in b) {\n if ({}.hasOwnProperty.call(b, _key) && !{}.hasOwnProperty.call(a, _key)) {\n return false;\n }\n }\n return true;\n}","import _isObject from \"lodash/isObject\";\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nimport { isValidElement } from 'react';\n\n//\n// Event Handler Types -- Copied from @types/react/index.d.ts and adapted for Props.\n//\nvar SVGContainerPropKeys = ['viewBox', 'children'];\nexport var SVGElementPropKeys = ['aria-activedescendant', 'aria-atomic', 'aria-autocomplete', 'aria-busy', 'aria-checked', 'aria-colcount', 'aria-colindex', 'aria-colspan', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-details', 'aria-disabled', 'aria-errormessage', 'aria-expanded', 'aria-flowto', 'aria-haspopup', 'aria-hidden', 'aria-invalid', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-level', 'aria-live', 'aria-modal', 'aria-multiline', 'aria-multiselectable', 'aria-orientation', 'aria-owns', 'aria-placeholder', 'aria-posinset', 'aria-pressed', 'aria-readonly', 'aria-relevant', 'aria-required', 'aria-roledescription', 'aria-rowcount', 'aria-rowindex', 'aria-rowspan', 'aria-selected', 'aria-setsize', 'aria-sort', 'aria-valuemax', 'aria-valuemin', 'aria-valuenow', 'aria-valuetext', 'className', 'color', 'height', 'id', 'lang', 'max', 'media', 'method', 'min', 'name', 'style',\n/*\n * removed 'type' SVGElementPropKey because we do not currently use any SVG elements\n * that can use it and it conflicts with the recharts prop 'type'\n * https://github.com/recharts/recharts/pull/3327\n * https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/type\n */\n// 'type',\n'target', 'width', 'role', 'tabIndex', 'accentHeight', 'accumulate', 'additive', 'alignmentBaseline', 'allowReorder', 'alphabetic', 'amplitude', 'arabicForm', 'ascent', 'attributeName', 'attributeType', 'autoReverse', 'azimuth', 'baseFrequency', 'baselineShift', 'baseProfile', 'bbox', 'begin', 'bias', 'by', 'calcMode', 'capHeight', 'clip', 'clipPath', 'clipPathUnits', 'clipRule', 'colorInterpolation', 'colorInterpolationFilters', 'colorProfile', 'colorRendering', 'contentScriptType', 'contentStyleType', 'cursor', 'cx', 'cy', 'd', 'decelerate', 'descent', 'diffuseConstant', 'direction', 'display', 'divisor', 'dominantBaseline', 'dur', 'dx', 'dy', 'edgeMode', 'elevation', 'enableBackground', 'end', 'exponent', 'externalResourcesRequired', 'fill', 'fillOpacity', 'fillRule', 'filter', 'filterRes', 'filterUnits', 'floodColor', 'floodOpacity', 'focusable', 'fontFamily', 'fontSize', 'fontSizeAdjust', 'fontStretch', 'fontStyle', 'fontVariant', 'fontWeight', 'format', 'from', 'fx', 'fy', 'g1', 'g2', 'glyphName', 'glyphOrientationHorizontal', 'glyphOrientationVertical', 'glyphRef', 'gradientTransform', 'gradientUnits', 'hanging', 'horizAdvX', 'horizOriginX', 'href', 'ideographic', 'imageRendering', 'in2', 'in', 'intercept', 'k1', 'k2', 'k3', 'k4', 'k', 'kernelMatrix', 'kernelUnitLength', 'kerning', 'keyPoints', 'keySplines', 'keyTimes', 'lengthAdjust', 'letterSpacing', 'lightingColor', 'limitingConeAngle', 'local', 'markerEnd', 'markerHeight', 'markerMid', 'markerStart', 'markerUnits', 'markerWidth', 'mask', 'maskContentUnits', 'maskUnits', 'mathematical', 'mode', 'numOctaves', 'offset', 'opacity', 'operator', 'order', 'orient', 'orientation', 'origin', 'overflow', 'overlinePosition', 'overlineThickness', 'paintOrder', 'panose1', 'pathLength', 'patternContentUnits', 'patternTransform', 'patternUnits', 'pointerEvents', 'pointsAtX', 'pointsAtY', 'pointsAtZ', 'preserveAlpha', 'preserveAspectRatio', 'primitiveUnits', 'r', 'radius', 'refX', 'refY', 'renderingIntent', 'repeatCount', 'repeatDur', 'requiredExtensions', 'requiredFeatures', 'restart', 'result', 'rotate', 'rx', 'ry', 'seed', 'shapeRendering', 'slope', 'spacing', 'specularConstant', 'specularExponent', 'speed', 'spreadMethod', 'startOffset', 'stdDeviation', 'stemh', 'stemv', 'stitchTiles', 'stopColor', 'stopOpacity', 'strikethroughPosition', 'strikethroughThickness', 'string', 'stroke', 'strokeDasharray', 'strokeDashoffset', 'strokeLinecap', 'strokeLinejoin', 'strokeMiterlimit', 'strokeOpacity', 'strokeWidth', 'surfaceScale', 'systemLanguage', 'tableValues', 'targetX', 'targetY', 'textAnchor', 'textDecoration', 'textLength', 'textRendering', 'to', 'transform', 'u1', 'u2', 'underlinePosition', 'underlineThickness', 'unicode', 'unicodeBidi', 'unicodeRange', 'unitsPerEm', 'vAlphabetic', 'values', 'vectorEffect', 'version', 'vertAdvY', 'vertOriginX', 'vertOriginY', 'vHanging', 'vIdeographic', 'viewTarget', 'visibility', 'vMathematical', 'widths', 'wordSpacing', 'writingMode', 'x1', 'x2', 'x', 'xChannelSelector', 'xHeight', 'xlinkActuate', 'xlinkArcrole', 'xlinkHref', 'xlinkRole', 'xlinkShow', 'xlinkTitle', 'xlinkType', 'xmlBase', 'xmlLang', 'xmlns', 'xmlnsXlink', 'xmlSpace', 'y1', 'y2', 'y', 'yChannelSelector', 'z', 'zoomAndPan', 'ref', 'key', 'angle'];\nvar PolyElementKeys = ['points', 'pathLength'];\n\n/** svg element types that have specific attribute filtration requirements */\n\n/** map of svg element types to unique svg attributes that belong to that element */\nexport var FilteredElementKeyMap = {\n svg: SVGContainerPropKeys,\n polygon: PolyElementKeys,\n polyline: PolyElementKeys\n};\nexport var EventKeys = ['dangerouslySetInnerHTML', 'onCopy', 'onCopyCapture', 'onCut', 'onCutCapture', 'onPaste', 'onPasteCapture', 'onCompositionEnd', 'onCompositionEndCapture', 'onCompositionStart', 'onCompositionStartCapture', 'onCompositionUpdate', 'onCompositionUpdateCapture', 'onFocus', 'onFocusCapture', 'onBlur', 'onBlurCapture', 'onChange', 'onChangeCapture', 'onBeforeInput', 'onBeforeInputCapture', 'onInput', 'onInputCapture', 'onReset', 'onResetCapture', 'onSubmit', 'onSubmitCapture', 'onInvalid', 'onInvalidCapture', 'onLoad', 'onLoadCapture', 'onError', 'onErrorCapture', 'onKeyDown', 'onKeyDownCapture', 'onKeyPress', 'onKeyPressCapture', 'onKeyUp', 'onKeyUpCapture', 'onAbort', 'onAbortCapture', 'onCanPlay', 'onCanPlayCapture', 'onCanPlayThrough', 'onCanPlayThroughCapture', 'onDurationChange', 'onDurationChangeCapture', 'onEmptied', 'onEmptiedCapture', 'onEncrypted', 'onEncryptedCapture', 'onEnded', 'onEndedCapture', 'onLoadedData', 'onLoadedDataCapture', 'onLoadedMetadata', 'onLoadedMetadataCapture', 'onLoadStart', 'onLoadStartCapture', 'onPause', 'onPauseCapture', 'onPlay', 'onPlayCapture', 'onPlaying', 'onPlayingCapture', 'onProgress', 'onProgressCapture', 'onRateChange', 'onRateChangeCapture', 'onSeeked', 'onSeekedCapture', 'onSeeking', 'onSeekingCapture', 'onStalled', 'onStalledCapture', 'onSuspend', 'onSuspendCapture', 'onTimeUpdate', 'onTimeUpdateCapture', 'onVolumeChange', 'onVolumeChangeCapture', 'onWaiting', 'onWaitingCapture', 'onAuxClick', 'onAuxClickCapture', 'onClick', 'onClickCapture', 'onContextMenu', 'onContextMenuCapture', 'onDoubleClick', 'onDoubleClickCapture', 'onDrag', 'onDragCapture', 'onDragEnd', 'onDragEndCapture', 'onDragEnter', 'onDragEnterCapture', 'onDragExit', 'onDragExitCapture', 'onDragLeave', 'onDragLeaveCapture', 'onDragOver', 'onDragOverCapture', 'onDragStart', 'onDragStartCapture', 'onDrop', 'onDropCapture', 'onMouseDown', 'onMouseDownCapture', 'onMouseEnter', 'onMouseLeave', 'onMouseMove', 'onMouseMoveCapture', 'onMouseOut', 'onMouseOutCapture', 'onMouseOver', 'onMouseOverCapture', 'onMouseUp', 'onMouseUpCapture', 'onSelect', 'onSelectCapture', 'onTouchCancel', 'onTouchCancelCapture', 'onTouchEnd', 'onTouchEndCapture', 'onTouchMove', 'onTouchMoveCapture', 'onTouchStart', 'onTouchStartCapture', 'onPointerDown', 'onPointerDownCapture', 'onPointerMove', 'onPointerMoveCapture', 'onPointerUp', 'onPointerUpCapture', 'onPointerCancel', 'onPointerCancelCapture', 'onPointerEnter', 'onPointerEnterCapture', 'onPointerLeave', 'onPointerLeaveCapture', 'onPointerOver', 'onPointerOverCapture', 'onPointerOut', 'onPointerOutCapture', 'onGotPointerCapture', 'onGotPointerCaptureCapture', 'onLostPointerCapture', 'onLostPointerCaptureCapture', 'onScroll', 'onScrollCapture', 'onWheel', 'onWheelCapture', 'onAnimationStart', 'onAnimationStartCapture', 'onAnimationEnd', 'onAnimationEndCapture', 'onAnimationIteration', 'onAnimationIterationCapture', 'onTransitionEnd', 'onTransitionEndCapture'];\n\n/** The type of easing function to use for animations */\n\n/** Specifies the duration of animation, the unit of this option is ms. */\n\n/** the offset of a chart, which define the blank space all around */\n\n/** The domain of axis */\n\n/** The props definition of base axis */\n\nexport var adaptEventHandlers = function adaptEventHandlers(props, newHandler) {\n if (!props || typeof props === 'function' || typeof props === 'boolean') {\n return null;\n }\n var inputProps = props;\n if ( /*#__PURE__*/isValidElement(props)) {\n inputProps = props.props;\n }\n if (!_isObject(inputProps)) {\n return null;\n }\n var out = {};\n Object.keys(inputProps).forEach(function (key) {\n if (EventKeys.includes(key)) {\n out[key] = newHandler || function (e) {\n return inputProps[key](inputProps, e);\n };\n }\n });\n return out;\n};\nvar getEventHandlerOfChild = function getEventHandlerOfChild(originalHandler, data, index) {\n return function (e) {\n originalHandler(data, index, e);\n return null;\n };\n};\nexport var adaptEventsOfChild = function adaptEventsOfChild(props, data, index) {\n if (!_isObject(props) || _typeof(props) !== 'object') {\n return null;\n }\n var out = null;\n Object.keys(props).forEach(function (key) {\n var item = props[key];\n if (EventKeys.includes(key) && typeof item === 'function') {\n if (!out) out = {};\n out[key] = getEventHandlerOfChild(item, data, index);\n }\n });\n return out;\n};","/** @license React v16.13.1\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';var b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?\nSymbol.for(\"react.suspense_list\"):60120,r=b?Symbol.for(\"react.memo\"):60115,t=b?Symbol.for(\"react.lazy\"):60116,v=b?Symbol.for(\"react.block\"):60121,w=b?Symbol.for(\"react.fundamental\"):60117,x=b?Symbol.for(\"react.responder\"):60118,y=b?Symbol.for(\"react.scope\"):60119;\nfunction z(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function A(a){return z(a)===m}exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;\nexports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isAsyncMode=function(a){return A(a)||z(a)===l};exports.isConcurrentMode=A;exports.isContextConsumer=function(a){return z(a)===k};exports.isContextProvider=function(a){return z(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return z(a)===n};exports.isFragment=function(a){return z(a)===e};exports.isLazy=function(a){return z(a)===t};\nexports.isMemo=function(a){return z(a)===r};exports.isPortal=function(a){return z(a)===d};exports.isProfiler=function(a){return z(a)===g};exports.isStrictMode=function(a){return z(a)===f};exports.isSuspense=function(a){return z(a)===p};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||\"object\"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===w||a.$$typeof===x||a.$$typeof===y||a.$$typeof===v)};exports.typeOf=z;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","/**\n * @fileOverview Cross\n */\n\nexport var Cell = function Cell(_props) {\n return null;\n};\nCell.displayName = 'Cell';","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nvar _excluded = [\"valueAccessor\"],\n _excluded2 = [\"data\", \"dataKey\", \"clockWise\", \"id\", \"textBreakAll\"];\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _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); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : String(i); }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _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; }\nfunction _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; }\nimport React, { cloneElement } from 'react';\nimport isNil from 'lodash/isNil';\nimport isObject from 'lodash/isObject';\nimport isFunction from 'lodash/isFunction';\nimport last from 'lodash/last';\nimport { Label } from './Label';\nimport { Layer } from '../container/Layer';\nimport { findAllByType, filterProps } from '../util/ReactUtils';\nimport { getValueByDataKey } from '../util/ChartUtils';\nvar defaultAccessor = function defaultAccessor(entry) {\n return Array.isArray(entry.value) ? last(entry.value) : entry.value;\n};\nexport function LabelList(_ref) {\n var _ref$valueAccessor = _ref.valueAccessor,\n valueAccessor = _ref$valueAccessor === void 0 ? defaultAccessor : _ref$valueAccessor,\n restProps = _objectWithoutProperties(_ref, _excluded);\n var data = restProps.data,\n dataKey = restProps.dataKey,\n clockWise = restProps.clockWise,\n id = restProps.id,\n textBreakAll = restProps.textBreakAll,\n others = _objectWithoutProperties(restProps, _excluded2);\n if (!data || !data.length) {\n return null;\n }\n return /*#__PURE__*/React.createElement(Layer, {\n className: \"recharts-label-list\"\n }, data.map(function (entry, index) {\n var value = isNil(dataKey) ? valueAccessor(entry, index) : getValueByDataKey(entry && entry.payload, dataKey);\n var idProps = isNil(id) ? {} : {\n id: \"\".concat(id, \"-\").concat(index)\n };\n return /*#__PURE__*/React.createElement(Label, _extends({}, filterProps(entry, true), others, idProps, {\n parentViewBox: entry.parentViewBox,\n value: value,\n textBreakAll: textBreakAll,\n viewBox: Label.parseViewBox(isNil(clockWise) ? entry : _objectSpread(_objectSpread({}, entry), {}, {\n clockWise: clockWise\n })),\n key: \"label-\".concat(index) // eslint-disable-line react/no-array-index-key\n ,\n index: index\n }));\n }));\n}\nLabelList.displayName = 'LabelList';\nfunction parseLabelList(label, data) {\n if (!label) {\n return null;\n }\n if (label === true) {\n return /*#__PURE__*/React.createElement(LabelList, {\n key: \"labelList-implicit\",\n data: data\n });\n }\n if ( /*#__PURE__*/React.isValidElement(label) || isFunction(label)) {\n return /*#__PURE__*/React.createElement(LabelList, {\n key: \"labelList-implicit\",\n data: data,\n content: label\n });\n }\n if (isObject(label)) {\n return /*#__PURE__*/React.createElement(LabelList, _extends({\n data: data\n }, label, {\n key: \"labelList-implicit\"\n }));\n }\n return null;\n}\nfunction renderCallByParent(parentProps, data) {\n var checkPropsLabel = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n if (!parentProps || !parentProps.children && checkPropsLabel && !parentProps.label) {\n return null;\n }\n var children = parentProps.children;\n var explicitChildren = findAllByType(children, LabelList).map(function (child, index) {\n return /*#__PURE__*/cloneElement(child, {\n data: data,\n // eslint-disable-next-line react/no-array-index-key\n key: \"labelList-\".concat(index)\n });\n });\n if (!checkPropsLabel) {\n return explicitChildren;\n }\n var implicitLabelList = parseLabelList(parentProps.label, data);\n return [implicitLabelList].concat(_toConsumableArray(explicitChildren));\n}\nLabelList.renderCallByParent = renderCallByParent;","var _excluded = [\"x\", \"y\"];\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _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); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : String(i); }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _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; }\nfunction _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; }\nimport React from 'react';\nimport invariant from 'tiny-invariant';\nimport { Shape } from './ActiveShapeUtils';\n\n// Rectangle props is expecting x, y, height, width as numbers, name as a string, and radius as a custom type\n// When props are being spread in from a user defined component in Bar,\n// the prop types of an SVGElement have these typed as something else.\n// This function will return the passed in props\n// along with x, y, height as numbers, name as a string, and radius as number | [number, number, number, number]\nfunction typeguardBarRectangleProps(_ref, props) {\n var xProp = _ref.x,\n yProp = _ref.y,\n option = _objectWithoutProperties(_ref, _excluded);\n var xValue = \"\".concat(xProp);\n var x = parseInt(xValue, 10);\n var yValue = \"\".concat(yProp);\n var y = parseInt(yValue, 10);\n var heightValue = \"\".concat(props.height || option.height);\n var height = parseInt(heightValue, 10);\n var widthValue = \"\".concat(props.width || option.width);\n var width = parseInt(widthValue, 10);\n return _objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, props), option), x ? {\n x: x\n } : {}), y ? {\n y: y\n } : {}), {}, {\n height: height,\n width: width,\n name: props.name,\n radius: props.radius\n });\n}\nexport function BarRectangle(props) {\n return /*#__PURE__*/React.createElement(Shape, _extends({\n shapeType: \"rectangle\",\n propTransformer: typeguardBarRectangleProps,\n activeClassName: \"recharts-active-bar\"\n }, props));\n}\n/**\n * Safely gets minPointSize from from the minPointSize prop if it is a function\n * @param minPointSize minPointSize as passed to the Bar component\n * @param defaultValue default minPointSize\n * @returns minPointSize\n */\nexport var minPointSizeCallback = function minPointSizeCallback(minPointSize) {\n var defaultValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n return function (value, index) {\n if (typeof minPointSize === 'number') return minPointSize;\n var isValueNumber = typeof value === 'number';\n if (isValueNumber) {\n return minPointSize(value, index);\n }\n !isValueNumber ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"minPointSize callback function received a value with type of \".concat(_typeof(value), \". Currently only numbers are supported.\")) : invariant(false) : void 0;\n return defaultValue;\n };\n};","var _excluded = [\"value\", \"background\"];\nvar _Bar;\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _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; }\nfunction _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; }\nfunction _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); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _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, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }\nfunction _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); }\nfunction _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _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); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : String(i); }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n/**\n * @fileOverview Render a group of bar\n */\nimport React, { PureComponent } from 'react';\nimport clsx from 'clsx';\nimport Animate from 'react-smooth';\nimport isEqual from 'lodash/isEqual';\nimport isNil from 'lodash/isNil';\nimport { Layer } from '../container/Layer';\nimport { ErrorBar } from './ErrorBar';\nimport { Cell } from '../component/Cell';\nimport { LabelList } from '../component/LabelList';\nimport { uniqueId, mathSign, interpolateNumber } from '../util/DataUtils';\nimport { filterProps, findAllByType } from '../util/ReactUtils';\nimport { Global } from '../util/Global';\nimport { getCateCoordinateOfBar, getValueByDataKey, truncateByDomain, getBaseValueOfBar, findPositionOfBar, getTooltipItem } from '../util/ChartUtils';\nimport { adaptEventsOfChild } from '../util/types';\nimport { BarRectangle, minPointSizeCallback } from '../util/BarUtils';\nexport var Bar = /*#__PURE__*/function (_PureComponent) {\n _inherits(Bar, _PureComponent);\n function Bar() {\n var _this;\n _classCallCheck(this, Bar);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _callSuper(this, Bar, [].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"state\", {\n isAnimationFinished: false\n });\n _defineProperty(_assertThisInitialized(_this), \"id\", uniqueId('recharts-bar-'));\n _defineProperty(_assertThisInitialized(_this), \"handleAnimationEnd\", function () {\n var onAnimationEnd = _this.props.onAnimationEnd;\n _this.setState({\n isAnimationFinished: true\n });\n if (onAnimationEnd) {\n onAnimationEnd();\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"handleAnimationStart\", function () {\n var onAnimationStart = _this.props.onAnimationStart;\n _this.setState({\n isAnimationFinished: false\n });\n if (onAnimationStart) {\n onAnimationStart();\n }\n });\n return _this;\n }\n _createClass(Bar, [{\n key: \"renderRectanglesStatically\",\n value: function renderRectanglesStatically(data) {\n var _this2 = this;\n var _this$props = this.props,\n shape = _this$props.shape,\n dataKey = _this$props.dataKey,\n activeIndex = _this$props.activeIndex,\n activeBar = _this$props.activeBar;\n var baseProps = filterProps(this.props, false);\n return data && data.map(function (entry, i) {\n var isActive = i === activeIndex;\n var option = isActive ? activeBar : shape;\n var props = _objectSpread(_objectSpread(_objectSpread({}, baseProps), entry), {}, {\n isActive: isActive,\n option: option,\n index: i,\n dataKey: dataKey,\n onAnimationStart: _this2.handleAnimationStart,\n onAnimationEnd: _this2.handleAnimationEnd\n });\n return /*#__PURE__*/React.createElement(Layer, _extends({\n className: \"recharts-bar-rectangle\"\n }, adaptEventsOfChild(_this2.props, entry, i), {\n key: \"rectangle-\".concat(entry === null || entry === void 0 ? void 0 : entry.x, \"-\").concat(entry === null || entry === void 0 ? void 0 : entry.y, \"-\").concat(entry === null || entry === void 0 ? void 0 : entry.value)\n }), /*#__PURE__*/React.createElement(BarRectangle, props));\n });\n }\n }, {\n key: \"renderRectanglesWithAnimation\",\n value: function renderRectanglesWithAnimation() {\n var _this3 = this;\n var _this$props2 = this.props,\n data = _this$props2.data,\n layout = _this$props2.layout,\n isAnimationActive = _this$props2.isAnimationActive,\n animationBegin = _this$props2.animationBegin,\n animationDuration = _this$props2.animationDuration,\n animationEasing = _this$props2.animationEasing,\n animationId = _this$props2.animationId;\n var prevData = this.state.prevData;\n return /*#__PURE__*/React.createElement(Animate, {\n begin: animationBegin,\n duration: animationDuration,\n isActive: isAnimationActive,\n easing: animationEasing,\n from: {\n t: 0\n },\n to: {\n t: 1\n },\n key: \"bar-\".concat(animationId),\n onAnimationEnd: this.handleAnimationEnd,\n onAnimationStart: this.handleAnimationStart\n }, function (_ref) {\n var t = _ref.t;\n var stepData = data.map(function (entry, index) {\n var prev = prevData && prevData[index];\n if (prev) {\n var interpolatorX = interpolateNumber(prev.x, entry.x);\n var interpolatorY = interpolateNumber(prev.y, entry.y);\n var interpolatorWidth = interpolateNumber(prev.width, entry.width);\n var interpolatorHeight = interpolateNumber(prev.height, entry.height);\n return _objectSpread(_objectSpread({}, entry), {}, {\n x: interpolatorX(t),\n y: interpolatorY(t),\n width: interpolatorWidth(t),\n height: interpolatorHeight(t)\n });\n }\n if (layout === 'horizontal') {\n var _interpolatorHeight = interpolateNumber(0, entry.height);\n var h = _interpolatorHeight(t);\n return _objectSpread(_objectSpread({}, entry), {}, {\n y: entry.y + entry.height - h,\n height: h\n });\n }\n var interpolator = interpolateNumber(0, entry.width);\n var w = interpolator(t);\n return _objectSpread(_objectSpread({}, entry), {}, {\n width: w\n });\n });\n return /*#__PURE__*/React.createElement(Layer, null, _this3.renderRectanglesStatically(stepData));\n });\n }\n }, {\n key: \"renderRectangles\",\n value: function renderRectangles() {\n var _this$props3 = this.props,\n data = _this$props3.data,\n isAnimationActive = _this$props3.isAnimationActive;\n var prevData = this.state.prevData;\n if (isAnimationActive && data && data.length && (!prevData || !isEqual(prevData, data))) {\n return this.renderRectanglesWithAnimation();\n }\n return this.renderRectanglesStatically(data);\n }\n }, {\n key: \"renderBackground\",\n value: function renderBackground() {\n var _this4 = this;\n var _this$props4 = this.props,\n data = _this$props4.data,\n dataKey = _this$props4.dataKey,\n activeIndex = _this$props4.activeIndex;\n var backgroundProps = filterProps(this.props.background, false);\n return data.map(function (entry, i) {\n var value = entry.value,\n background = entry.background,\n rest = _objectWithoutProperties(entry, _excluded);\n if (!background) {\n return null;\n }\n var props = _objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, rest), {}, {\n fill: '#eee'\n }, background), backgroundProps), adaptEventsOfChild(_this4.props, entry, i)), {}, {\n onAnimationStart: _this4.handleAnimationStart,\n onAnimationEnd: _this4.handleAnimationEnd,\n dataKey: dataKey,\n index: i,\n key: \"background-bar-\".concat(i),\n className: 'recharts-bar-background-rectangle'\n });\n return /*#__PURE__*/React.createElement(BarRectangle, _extends({\n option: _this4.props.background,\n isActive: i === activeIndex\n }, props));\n });\n }\n }, {\n key: \"renderErrorBar\",\n value: function renderErrorBar(needClip, clipPathId) {\n if (this.props.isAnimationActive && !this.state.isAnimationFinished) {\n return null;\n }\n var _this$props5 = this.props,\n data = _this$props5.data,\n xAxis = _this$props5.xAxis,\n yAxis = _this$props5.yAxis,\n layout = _this$props5.layout,\n children = _this$props5.children;\n var errorBarItems = findAllByType(children, ErrorBar);\n if (!errorBarItems) {\n return null;\n }\n var offset = layout === 'vertical' ? data[0].height / 2 : data[0].width / 2;\n var dataPointFormatter = function dataPointFormatter(dataPoint, dataKey) {\n /**\n * if the value coming from `getComposedData` is an array then this is a stacked bar chart.\n * arr[1] represents end value of the bar since the data is in the form of [startValue, endValue].\n * */\n var value = Array.isArray(dataPoint.value) ? dataPoint.value[1] : dataPoint.value;\n return {\n x: dataPoint.x,\n y: dataPoint.y,\n value: value,\n errorVal: getValueByDataKey(dataPoint, dataKey)\n };\n };\n var errorBarProps = {\n clipPath: needClip ? \"url(#clipPath-\".concat(clipPathId, \")\") : null\n };\n return /*#__PURE__*/React.createElement(Layer, errorBarProps, errorBarItems.map(function (item) {\n return /*#__PURE__*/React.cloneElement(item, {\n key: \"error-bar-\".concat(clipPathId, \"-\").concat(item.props.dataKey),\n data: data,\n xAxis: xAxis,\n yAxis: yAxis,\n layout: layout,\n offset: offset,\n dataPointFormatter: dataPointFormatter\n });\n }));\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props6 = this.props,\n hide = _this$props6.hide,\n data = _this$props6.data,\n className = _this$props6.className,\n xAxis = _this$props6.xAxis,\n yAxis = _this$props6.yAxis,\n left = _this$props6.left,\n top = _this$props6.top,\n width = _this$props6.width,\n height = _this$props6.height,\n isAnimationActive = _this$props6.isAnimationActive,\n background = _this$props6.background,\n id = _this$props6.id;\n if (hide || !data || !data.length) {\n return null;\n }\n var isAnimationFinished = this.state.isAnimationFinished;\n var layerClass = clsx('recharts-bar', className);\n var needClipX = xAxis && xAxis.allowDataOverflow;\n var needClipY = yAxis && yAxis.allowDataOverflow;\n var needClip = needClipX || needClipY;\n var clipPathId = isNil(id) ? this.id : id;\n return /*#__PURE__*/React.createElement(Layer, {\n className: layerClass\n }, needClipX || needClipY ? /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clipPath-\".concat(clipPathId)\n }, /*#__PURE__*/React.createElement(\"rect\", {\n x: needClipX ? left : left - width / 2,\n y: needClipY ? top : top - height / 2,\n width: needClipX ? width : width * 2,\n height: needClipY ? height : height * 2\n }))) : null, /*#__PURE__*/React.createElement(Layer, {\n className: \"recharts-bar-rectangles\",\n clipPath: needClip ? \"url(#clipPath-\".concat(clipPathId, \")\") : null\n }, background ? this.renderBackground() : null, this.renderRectangles()), this.renderErrorBar(needClip, clipPathId), (!isAnimationActive || isAnimationFinished) && LabelList.renderCallByParent(this.props, data));\n }\n }], [{\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(nextProps, prevState) {\n if (nextProps.animationId !== prevState.prevAnimationId) {\n return {\n prevAnimationId: nextProps.animationId,\n curData: nextProps.data,\n prevData: prevState.curData\n };\n }\n if (nextProps.data !== prevState.curData) {\n return {\n curData: nextProps.data\n };\n }\n return null;\n }\n }]);\n return Bar;\n}(PureComponent);\n_Bar = Bar;\n_defineProperty(Bar, \"displayName\", 'Bar');\n_defineProperty(Bar, \"defaultProps\", {\n xAxisId: 0,\n yAxisId: 0,\n legendType: 'rect',\n minPointSize: 0,\n hide: false,\n data: [],\n layout: 'vertical',\n activeBar: false,\n isAnimationActive: !Global.isSsr,\n animationBegin: 0,\n animationDuration: 400,\n animationEasing: 'ease'\n});\n/**\n * Compose the data of each group\n * @param {Object} props Props for the component\n * @param {Object} item An instance of Bar\n * @param {Array} barPosition The offset and size of each bar\n * @param {Object} xAxis The configuration of x-axis\n * @param {Object} yAxis The configuration of y-axis\n * @param {Array} stackedData The stacked data of a bar item\n * @return{Array} Composed data\n */\n_defineProperty(Bar, \"getComposedData\", function (_ref2) {\n var props = _ref2.props,\n item = _ref2.item,\n barPosition = _ref2.barPosition,\n bandSize = _ref2.bandSize,\n xAxis = _ref2.xAxis,\n yAxis = _ref2.yAxis,\n xAxisTicks = _ref2.xAxisTicks,\n yAxisTicks = _ref2.yAxisTicks,\n stackedData = _ref2.stackedData,\n dataStartIndex = _ref2.dataStartIndex,\n displayedData = _ref2.displayedData,\n offset = _ref2.offset;\n var pos = findPositionOfBar(barPosition, item);\n if (!pos) {\n return null;\n }\n var layout = props.layout;\n var _item$props = item.props,\n dataKey = _item$props.dataKey,\n children = _item$props.children,\n minPointSizeProp = _item$props.minPointSize;\n var numericAxis = layout === 'horizontal' ? yAxis : xAxis;\n var stackedDomain = stackedData ? numericAxis.scale.domain() : null;\n var baseValue = getBaseValueOfBar({\n numericAxis: numericAxis\n });\n var cells = findAllByType(children, Cell);\n var rects = displayedData.map(function (entry, index) {\n var value, x, y, width, height, background;\n if (stackedData) {\n value = truncateByDomain(stackedData[dataStartIndex + index], stackedDomain);\n } else {\n value = getValueByDataKey(entry, dataKey);\n if (!Array.isArray(value)) {\n value = [baseValue, value];\n }\n }\n var minPointSize = minPointSizeCallback(minPointSizeProp, _Bar.defaultProps.minPointSize)(value[1], index);\n if (layout === 'horizontal') {\n var _ref4;\n var _ref3 = [yAxis.scale(value[0]), yAxis.scale(value[1])],\n baseValueScale = _ref3[0],\n currentValueScale = _ref3[1];\n x = getCateCoordinateOfBar({\n axis: xAxis,\n ticks: xAxisTicks,\n bandSize: bandSize,\n offset: pos.offset,\n entry: entry,\n index: index\n });\n y = (_ref4 = currentValueScale !== null && currentValueScale !== void 0 ? currentValueScale : baseValueScale) !== null && _ref4 !== void 0 ? _ref4 : undefined;\n width = pos.size;\n var computedHeight = baseValueScale - currentValueScale;\n height = Number.isNaN(computedHeight) ? 0 : computedHeight;\n background = {\n x: x,\n y: yAxis.y,\n width: width,\n height: yAxis.height\n };\n if (Math.abs(minPointSize) > 0 && Math.abs(height) < Math.abs(minPointSize)) {\n var delta = mathSign(height || minPointSize) * (Math.abs(minPointSize) - Math.abs(height));\n y -= delta;\n height += delta;\n }\n } else {\n var _ref5 = [xAxis.scale(value[0]), xAxis.scale(value[1])],\n _baseValueScale = _ref5[0],\n _currentValueScale = _ref5[1];\n x = _baseValueScale;\n y = getCateCoordinateOfBar({\n axis: yAxis,\n ticks: yAxisTicks,\n bandSize: bandSize,\n offset: pos.offset,\n entry: entry,\n index: index\n });\n width = _currentValueScale - _baseValueScale;\n height = pos.size;\n background = {\n x: xAxis.x,\n y: y,\n width: xAxis.width,\n height: height\n };\n if (Math.abs(minPointSize) > 0 && Math.abs(width) < Math.abs(minPointSize)) {\n var _delta = mathSign(width || minPointSize) * (Math.abs(minPointSize) - Math.abs(width));\n width += _delta;\n }\n }\n return _objectSpread(_objectSpread(_objectSpread({}, entry), {}, {\n x: x,\n y: y,\n width: width,\n height: height,\n value: stackedData ? value : value[1],\n payload: entry,\n background: background\n }, cells && cells[index] && cells[index].props), {}, {\n tooltipPayload: [getTooltipItem(item, entry)],\n tooltipPosition: {\n x: x + width / 2,\n y: y + height / 2\n }\n });\n });\n return _objectSpread({\n data: rects,\n layout: layout\n }, offset);\n});","var _excluded = [\"viewBox\"],\n _excluded2 = [\"viewBox\"],\n _excluded3 = [\"ticks\"];\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _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); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _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; }\nfunction _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; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _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, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }\nfunction _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); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nfunction _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); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : String(i); }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n/**\n * @fileOverview Cartesian Axis\n */\nimport React, { Component } from 'react';\nimport isFunction from 'lodash/isFunction';\nimport get from 'lodash/get';\nimport clsx from 'clsx';\nimport { shallowEqual } from '../util/ShallowEqual';\nimport { Layer } from '../container/Layer';\nimport { Text } from '../component/Text';\nimport { Label } from '../component/Label';\nimport { isNumber } from '../util/DataUtils';\nimport { adaptEventsOfChild } from '../util/types';\nimport { filterProps } from '../util/ReactUtils';\nimport { getTicks } from './getTicks';\n\n/** The orientation of the axis in correspondence to the chart */\n\n/** A unit to be appended to a value */\n\n/** The formatter function of tick */\n\nexport var CartesianAxis = /*#__PURE__*/function (_Component) {\n _inherits(CartesianAxis, _Component);\n function CartesianAxis(props) {\n var _this;\n _classCallCheck(this, CartesianAxis);\n _this = _callSuper(this, CartesianAxis, [props]);\n _this.state = {\n fontSize: '',\n letterSpacing: ''\n };\n return _this;\n }\n _createClass(CartesianAxis, [{\n key: \"shouldComponentUpdate\",\n value: function shouldComponentUpdate(_ref, nextState) {\n var viewBox = _ref.viewBox,\n restProps = _objectWithoutProperties(_ref, _excluded);\n // props.viewBox is sometimes generated every time -\n // check that specially as object equality is likely to fail\n var _this$props = this.props,\n viewBoxOld = _this$props.viewBox,\n restPropsOld = _objectWithoutProperties(_this$props, _excluded2);\n return !shallowEqual(viewBox, viewBoxOld) || !shallowEqual(restProps, restPropsOld) || !shallowEqual(nextState, this.state);\n }\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var htmlLayer = this.layerReference;\n if (!htmlLayer) return;\n var tick = htmlLayer.getElementsByClassName('recharts-cartesian-axis-tick-value')[0];\n if (tick) {\n this.setState({\n fontSize: window.getComputedStyle(tick).fontSize,\n letterSpacing: window.getComputedStyle(tick).letterSpacing\n });\n }\n }\n\n /**\n * Calculate the coordinates of endpoints in ticks\n * @param {Object} data The data of a simple tick\n * @return {Object} (x1, y1): The coordinate of endpoint close to tick text\n * (x2, y2): The coordinate of endpoint close to axis\n */\n }, {\n key: \"getTickLineCoord\",\n value: function getTickLineCoord(data) {\n var _this$props2 = this.props,\n x = _this$props2.x,\n y = _this$props2.y,\n width = _this$props2.width,\n height = _this$props2.height,\n orientation = _this$props2.orientation,\n tickSize = _this$props2.tickSize,\n mirror = _this$props2.mirror,\n tickMargin = _this$props2.tickMargin;\n var x1, x2, y1, y2, tx, ty;\n var sign = mirror ? -1 : 1;\n var finalTickSize = data.tickSize || tickSize;\n var tickCoord = isNumber(data.tickCoord) ? data.tickCoord : data.coordinate;\n switch (orientation) {\n case 'top':\n x1 = x2 = data.coordinate;\n y2 = y + +!mirror * height;\n y1 = y2 - sign * finalTickSize;\n ty = y1 - sign * tickMargin;\n tx = tickCoord;\n break;\n case 'left':\n y1 = y2 = data.coordinate;\n x2 = x + +!mirror * width;\n x1 = x2 - sign * finalTickSize;\n tx = x1 - sign * tickMargin;\n ty = tickCoord;\n break;\n case 'right':\n y1 = y2 = data.coordinate;\n x2 = x + +mirror * width;\n x1 = x2 + sign * finalTickSize;\n tx = x1 + sign * tickMargin;\n ty = tickCoord;\n break;\n default:\n x1 = x2 = data.coordinate;\n y2 = y + +mirror * height;\n y1 = y2 + sign * finalTickSize;\n ty = y1 + sign * tickMargin;\n tx = tickCoord;\n break;\n }\n return {\n line: {\n x1: x1,\n y1: y1,\n x2: x2,\n y2: y2\n },\n tick: {\n x: tx,\n y: ty\n }\n };\n }\n }, {\n key: \"getTickTextAnchor\",\n value: function getTickTextAnchor() {\n var _this$props3 = this.props,\n orientation = _this$props3.orientation,\n mirror = _this$props3.mirror;\n var textAnchor;\n switch (orientation) {\n case 'left':\n textAnchor = mirror ? 'start' : 'end';\n break;\n case 'right':\n textAnchor = mirror ? 'end' : 'start';\n break;\n default:\n textAnchor = 'middle';\n break;\n }\n return textAnchor;\n }\n }, {\n key: \"getTickVerticalAnchor\",\n value: function getTickVerticalAnchor() {\n var _this$props4 = this.props,\n orientation = _this$props4.orientation,\n mirror = _this$props4.mirror;\n var verticalAnchor = 'end';\n switch (orientation) {\n case 'left':\n case 'right':\n verticalAnchor = 'middle';\n break;\n case 'top':\n verticalAnchor = mirror ? 'start' : 'end';\n break;\n default:\n verticalAnchor = mirror ? 'end' : 'start';\n break;\n }\n return verticalAnchor;\n }\n }, {\n key: \"renderAxisLine\",\n value: function renderAxisLine() {\n var _this$props5 = this.props,\n x = _this$props5.x,\n y = _this$props5.y,\n width = _this$props5.width,\n height = _this$props5.height,\n orientation = _this$props5.orientation,\n mirror = _this$props5.mirror,\n axisLine = _this$props5.axisLine;\n var props = _objectSpread(_objectSpread(_objectSpread({}, filterProps(this.props, false)), filterProps(axisLine, false)), {}, {\n fill: 'none'\n });\n if (orientation === 'top' || orientation === 'bottom') {\n var needHeight = +(orientation === 'top' && !mirror || orientation === 'bottom' && mirror);\n props = _objectSpread(_objectSpread({}, props), {}, {\n x1: x,\n y1: y + needHeight * height,\n x2: x + width,\n y2: y + needHeight * height\n });\n } else {\n var needWidth = +(orientation === 'left' && !mirror || orientation === 'right' && mirror);\n props = _objectSpread(_objectSpread({}, props), {}, {\n x1: x + needWidth * width,\n y1: y,\n x2: x + needWidth * width,\n y2: y + height\n });\n }\n return /*#__PURE__*/React.createElement(\"line\", _extends({}, props, {\n className: clsx('recharts-cartesian-axis-line', get(axisLine, 'className'))\n }));\n }\n }, {\n key: \"renderTicks\",\n value:\n /**\n * render the ticks\n * @param {Array} ticks The ticks to actually render (overrides what was passed in props)\n * @param {string} fontSize Fontsize to consider for tick spacing\n * @param {string} letterSpacing Letterspacing to consider for tick spacing\n * @return {ReactComponent} renderedTicks\n */\n function renderTicks(ticks, fontSize, letterSpacing) {\n var _this2 = this;\n var _this$props6 = this.props,\n tickLine = _this$props6.tickLine,\n stroke = _this$props6.stroke,\n tick = _this$props6.tick,\n tickFormatter = _this$props6.tickFormatter,\n unit = _this$props6.unit;\n var finalTicks = getTicks(_objectSpread(_objectSpread({}, this.props), {}, {\n ticks: ticks\n }), fontSize, letterSpacing);\n var textAnchor = this.getTickTextAnchor();\n var verticalAnchor = this.getTickVerticalAnchor();\n var axisProps = filterProps(this.props, false);\n var customTickProps = filterProps(tick, false);\n var tickLineProps = _objectSpread(_objectSpread({}, axisProps), {}, {\n fill: 'none'\n }, filterProps(tickLine, false));\n var items = finalTicks.map(function (entry, i) {\n var _this2$getTickLineCoo = _this2.getTickLineCoord(entry),\n lineCoord = _this2$getTickLineCoo.line,\n tickCoord = _this2$getTickLineCoo.tick;\n var tickProps = _objectSpread(_objectSpread(_objectSpread(_objectSpread({\n textAnchor: textAnchor,\n verticalAnchor: verticalAnchor\n }, axisProps), {}, {\n stroke: 'none',\n fill: stroke\n }, customTickProps), tickCoord), {}, {\n index: i,\n payload: entry,\n visibleTicksCount: finalTicks.length,\n tickFormatter: tickFormatter\n });\n return /*#__PURE__*/React.createElement(Layer, _extends({\n className: \"recharts-cartesian-axis-tick\",\n key: \"tick-\".concat(entry.value, \"-\").concat(entry.coordinate, \"-\").concat(entry.tickCoord)\n }, adaptEventsOfChild(_this2.props, entry, i)), tickLine && /*#__PURE__*/React.createElement(\"line\", _extends({}, tickLineProps, lineCoord, {\n className: clsx('recharts-cartesian-axis-tick-line', get(tickLine, 'className'))\n })), tick && CartesianAxis.renderTickItem(tick, tickProps, \"\".concat(isFunction(tickFormatter) ? tickFormatter(entry.value, i) : entry.value).concat(unit || '')));\n });\n return /*#__PURE__*/React.createElement(\"g\", {\n className: \"recharts-cartesian-axis-ticks\"\n }, items);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this3 = this;\n var _this$props7 = this.props,\n axisLine = _this$props7.axisLine,\n width = _this$props7.width,\n height = _this$props7.height,\n ticksGenerator = _this$props7.ticksGenerator,\n className = _this$props7.className,\n hide = _this$props7.hide;\n if (hide) {\n return null;\n }\n var _this$props8 = this.props,\n ticks = _this$props8.ticks,\n noTicksProps = _objectWithoutProperties(_this$props8, _excluded3);\n var finalTicks = ticks;\n if (isFunction(ticksGenerator)) {\n finalTicks = ticks && ticks.length > 0 ? ticksGenerator(this.props) : ticksGenerator(noTicksProps);\n }\n if (width <= 0 || height <= 0 || !finalTicks || !finalTicks.length) {\n return null;\n }\n return /*#__PURE__*/React.createElement(Layer, {\n className: clsx('recharts-cartesian-axis', className),\n ref: function ref(_ref2) {\n _this3.layerReference = _ref2;\n }\n }, axisLine && this.renderAxisLine(), this.renderTicks(finalTicks, this.state.fontSize, this.state.letterSpacing), Label.renderCallByParent(this.props));\n }\n }], [{\n key: \"renderTickItem\",\n value: function renderTickItem(option, props, value) {\n var tickItem;\n if ( /*#__PURE__*/React.isValidElement(option)) {\n tickItem = /*#__PURE__*/React.cloneElement(option, props);\n } else if (isFunction(option)) {\n tickItem = option(props);\n } else {\n tickItem = /*#__PURE__*/React.createElement(Text, _extends({}, props, {\n className: \"recharts-cartesian-axis-tick-value\"\n }), value);\n }\n return tickItem;\n }\n }]);\n return CartesianAxis;\n}(Component);\n_defineProperty(CartesianAxis, \"displayName\", 'CartesianAxis');\n_defineProperty(CartesianAxis, \"defaultProps\", {\n x: 0,\n y: 0,\n width: 0,\n height: 0,\n viewBox: {\n x: 0,\n y: 0,\n width: 0,\n height: 0\n },\n // The orientation of axis\n orientation: 'bottom',\n // The ticks\n ticks: [],\n stroke: '#666',\n tickLine: true,\n axisLine: true,\n tick: true,\n mirror: false,\n minTickGap: 5,\n // The width or height of tick\n tickSize: 6,\n tickMargin: 2,\n interval: 'preserveEnd'\n});","var _excluded = [\"x1\", \"y1\", \"x2\", \"y2\", \"key\"],\n _excluded2 = [\"offset\"];\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : String(i); }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _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); }\nfunction _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; }\nfunction _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; }\n/**\n * @fileOverview Cartesian Grid\n */\nimport React from 'react';\nimport isFunction from 'lodash/isFunction';\nimport { warn } from '../util/LogUtils';\nimport { isNumber } from '../util/DataUtils';\nimport { filterProps } from '../util/ReactUtils';\nimport { getCoordinatesOfGrid, getTicksOfAxis } from '../util/ChartUtils';\nimport { getTicks } from './getTicks';\nimport { CartesianAxis } from './CartesianAxis';\nimport { useArbitraryXAxis, useChartHeight, useChartWidth, useOffset, useYAxisWithFiniteDomainOrRandom } from '../context/chartLayoutContext';\n\n/**\n * The arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nfunction _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; }\nfunction _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; }\n/**\n * @fileOverview Render a group of error bar\n */\nimport React from 'react';\nimport invariant from 'tiny-invariant';\nimport { Layer } from '../container/Layer';\nimport { filterProps } from '../util/ReactUtils';\nexport function ErrorBar(props) {\n var offset = props.offset,\n layout = props.layout,\n width = props.width,\n dataKey = props.dataKey,\n data = props.data,\n dataPointFormatter = props.dataPointFormatter,\n xAxis = props.xAxis,\n yAxis = props.yAxis,\n others = _objectWithoutProperties(props, _excluded);\n var svgProps = filterProps(others, false);\n !!(props.direction === 'x' && xAxis.type !== 'number') ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'ErrorBar requires Axis type property to be \"number\".') : invariant(false) : void 0;\n var errorBars = data.map(function (entry) {\n var _dataPointFormatter = dataPointFormatter(entry, dataKey),\n x = _dataPointFormatter.x,\n y = _dataPointFormatter.y,\n value = _dataPointFormatter.value,\n errorVal = _dataPointFormatter.errorVal;\n if (!errorVal) {\n return null;\n }\n var lineCoordinates = [];\n var lowBound, highBound;\n if (Array.isArray(errorVal)) {\n var _errorVal = _slicedToArray(errorVal, 2);\n lowBound = _errorVal[0];\n highBound = _errorVal[1];\n } else {\n lowBound = highBound = errorVal;\n }\n if (layout === 'vertical') {\n // error bar for horizontal charts, the y is fixed, x is a range value\n var scale = xAxis.scale;\n var yMid = y + offset;\n var yMin = yMid + width;\n var yMax = yMid - width;\n var xMin = scale(value - lowBound);\n var xMax = scale(value + highBound);\n\n // the right line of |--|\n lineCoordinates.push({\n x1: xMax,\n y1: yMin,\n x2: xMax,\n y2: yMax\n });\n // the middle line of |--|\n lineCoordinates.push({\n x1: xMin,\n y1: yMid,\n x2: xMax,\n y2: yMid\n });\n // the left line of |--|\n lineCoordinates.push({\n x1: xMin,\n y1: yMin,\n x2: xMin,\n y2: yMax\n });\n } else if (layout === 'horizontal') {\n // error bar for horizontal charts, the x is fixed, y is a range value\n var _scale = yAxis.scale;\n var xMid = x + offset;\n var _xMin = xMid - width;\n var _xMax = xMid + width;\n var _yMin = _scale(value - lowBound);\n var _yMax = _scale(value + highBound);\n\n // the top line\n lineCoordinates.push({\n x1: _xMin,\n y1: _yMax,\n x2: _xMax,\n y2: _yMax\n });\n // the middle line\n lineCoordinates.push({\n x1: xMid,\n y1: _yMin,\n x2: xMid,\n y2: _yMax\n });\n // the bottom line\n lineCoordinates.push({\n x1: _xMin,\n y1: _yMin,\n x2: _xMax,\n y2: _yMin\n });\n }\n return /*#__PURE__*/React.createElement(Layer, _extends({\n className: \"recharts-errorBar\",\n key: \"bar-\".concat(lineCoordinates.map(function (c) {\n return \"\".concat(c.x1, \"-\").concat(c.x2, \"-\").concat(c.y1, \"-\").concat(c.y2);\n }))\n }, svgProps), lineCoordinates.map(function (coordinates) {\n return /*#__PURE__*/React.createElement(\"line\", _extends({}, coordinates, {\n key: \"line-\".concat(coordinates.x1, \"-\").concat(coordinates.x2, \"-\").concat(coordinates.y1, \"-\").concat(coordinates.y2)\n }));\n }));\n });\n return /*#__PURE__*/React.createElement(Layer, {\n className: \"recharts-errorBars\"\n }, errorBars);\n}\nErrorBar.defaultProps = {\n stroke: 'black',\n strokeWidth: 1.5,\n width: 5,\n offset: 0,\n layout: 'horizontal'\n};\nErrorBar.displayName = 'ErrorBar';","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); }\n/**\n * @fileOverview X Axis\n */\n\nimport React from 'react';\nimport clsx from 'clsx';\nimport { useChartHeight, useChartWidth, useXAxisOrThrow } from '../context/chartLayoutContext';\nimport { CartesianAxis } from './CartesianAxis';\nimport { getTicksOfAxis } from '../util/ChartUtils';\n\n/** Define of XAxis props */\n\nexport var XAxis = function XAxis(_ref) {\n var xAxisId = _ref.xAxisId;\n var width = useChartWidth();\n var height = useChartHeight();\n var axisOptions = useXAxisOrThrow(xAxisId);\n if (axisOptions == null) {\n return null;\n }\n return (\n /*#__PURE__*/\n // @ts-expect-error the axisOptions type is not exactly what CartesianAxis is expecting.\n React.createElement(CartesianAxis, _extends({}, axisOptions, {\n className: clsx(\"recharts-\".concat(axisOptions.axisType, \" \").concat(axisOptions.axisType), axisOptions.className),\n viewBox: {\n x: 0,\n y: 0,\n width: width,\n height: height\n },\n ticksGenerator: function ticksGenerator(axis) {\n return getTicksOfAxis(axis, true);\n }\n }))\n );\n};\nXAxis.displayName = 'XAxis';\nXAxis.defaultProps = {\n allowDecimals: true,\n hide: false,\n orientation: 'bottom',\n width: 0,\n height: 30,\n mirror: false,\n xAxisId: 0,\n tickCount: 5,\n type: 'category',\n padding: {\n left: 0,\n right: 0\n },\n allowDataOverflow: false,\n scale: 'auto',\n reversed: false,\n allowDuplicatedCategory: true\n};","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); }\n/**\n * @fileOverview Y Axis\n */\nimport React from 'react';\nimport clsx from 'clsx';\nimport { useChartHeight, useChartWidth, useYAxisOrThrow } from '../context/chartLayoutContext';\nimport { CartesianAxis } from './CartesianAxis';\nimport { getTicksOfAxis } from '../util/ChartUtils';\nexport var YAxis = function YAxis(_ref) {\n var yAxisId = _ref.yAxisId;\n var width = useChartWidth();\n var height = useChartHeight();\n var axisOptions = useYAxisOrThrow(yAxisId);\n if (axisOptions == null) {\n return null;\n }\n return (\n /*#__PURE__*/\n // @ts-expect-error the axisOptions type is not exactly what CartesianAxis is expecting.\n React.createElement(CartesianAxis, _extends({}, axisOptions, {\n className: clsx(\"recharts-\".concat(axisOptions.axisType, \" \").concat(axisOptions.axisType), axisOptions.className),\n viewBox: {\n x: 0,\n y: 0,\n width: width,\n height: height\n },\n ticksGenerator: function ticksGenerator(axis) {\n return getTicksOfAxis(axis, true);\n }\n }))\n );\n};\nYAxis.displayName = 'YAxis';\nYAxis.defaultProps = {\n allowDuplicatedCategory: true,\n allowDecimals: true,\n hide: false,\n orientation: 'left',\n width: 60,\n height: 0,\n mirror: false,\n yAxisId: 0,\n tickCount: 5,\n type: 'number',\n padding: {\n top: 0,\n bottom: 0\n },\n allowDataOverflow: false,\n scale: 'auto',\n reversed: false\n};","/**\n * Given an array and a number N, return a new array which contains every nTh\n * element of the input array. For n below 1, an empty array is returned.\n * If isValid is provided, all candidates must suffice the condition, else undefined is returned.\n * @param {T[]} array An input array.\n * @param {integer} n A number\n * @param {Function} isValid A function to evaluate a candidate form the array\n * @returns {T[]} The result array of the same type as the input array.\n */\nexport function getEveryNthWithCondition(array, n, isValid) {\n if (n < 1) {\n return [];\n }\n if (n === 1 && isValid === undefined) {\n return array;\n }\n var result = [];\n for (var i = 0; i < array.length; i += n) {\n if (isValid === undefined || isValid(array[i]) === true) {\n result.push(array[i]);\n } else {\n return undefined;\n }\n }\n return result;\n}","import { getAngledRectangleWidth } from './CartesianUtils';\nimport { getEveryNthWithCondition } from './getEveryNthWithCondition';\nexport function getAngledTickWidth(contentSize, unitSize, angle) {\n var size = {\n width: contentSize.width + unitSize.width,\n height: contentSize.height + unitSize.height\n };\n return getAngledRectangleWidth(size, angle);\n}\nexport function getTickBoundaries(viewBox, sign, sizeKey) {\n var isWidth = sizeKey === 'width';\n var x = viewBox.x,\n y = viewBox.y,\n width = viewBox.width,\n height = viewBox.height;\n if (sign === 1) {\n return {\n start: isWidth ? x : y,\n end: isWidth ? x + width : y + height\n };\n }\n return {\n start: isWidth ? x + width : y + height,\n end: isWidth ? x : y\n };\n}\nexport function isVisible(sign, tickPosition, getSize, start, end) {\n /* Since getSize() is expensive (it reads the ticks' size from the DOM), we do this check first to avoid calculating\n * the tick's size. */\n if (sign * tickPosition < sign * start || sign * tickPosition > sign * end) {\n return false;\n }\n var size = getSize();\n return sign * (tickPosition - sign * size / 2 - start) >= 0 && sign * (tickPosition + sign * size / 2 - end) <= 0;\n}\nexport function getNumberIntervalTicks(ticks, interval) {\n return getEveryNthWithCondition(ticks, interval + 1);\n}","import { isVisible } from '../util/TickUtils';\nimport { getEveryNthWithCondition } from '../util/getEveryNthWithCondition';\nexport function getEquidistantTicks(sign, boundaries, getTickSize, ticks, minTickGap) {\n var result = (ticks || []).slice();\n var initialStart = boundaries.start,\n end = boundaries.end;\n var index = 0;\n // Premature optimisation idea 1: Estimate a lower bound, and start from there.\n // For now, start from every tick\n var stepsize = 1;\n var start = initialStart;\n var _loop = function _loop() {\n // Given stepsize, evaluate whether every stepsize-th tick can be shown.\n // If it can not, then increase the stepsize by 1, and try again.\n\n var entry = ticks === null || ticks === void 0 ? void 0 : ticks[index];\n\n // Break condition - If we have evaluate all the ticks, then we are done.\n if (entry === undefined) {\n return {\n v: getEveryNthWithCondition(ticks, stepsize)\n };\n }\n\n // Check if the element collides with the next element\n var i = index;\n var size;\n var getSize = function getSize() {\n if (size === undefined) {\n size = getTickSize(entry, i);\n }\n return size;\n };\n var tickCoord = entry.coordinate;\n // We will always show the first tick.\n var isShow = index === 0 || isVisible(sign, tickCoord, getSize, start, end);\n if (!isShow) {\n // Start all over with a larger stepsize\n index = 0;\n start = initialStart;\n stepsize += 1;\n }\n if (isShow) {\n // If it can be shown, update the start\n start = tickCoord + sign * (getSize() / 2 + minTickGap);\n index += stepsize;\n }\n },\n _ret;\n while (stepsize <= result.length) {\n _ret = _loop();\n if (_ret) return _ret.v;\n }\n return [];\n}","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : String(i); }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nimport isFunction from 'lodash/isFunction';\nimport { mathSign, isNumber } from '../util/DataUtils';\nimport { getStringSize } from '../util/DOMUtils';\nimport { Global } from '../util/Global';\nimport { isVisible, getTickBoundaries, getNumberIntervalTicks, getAngledTickWidth } from '../util/TickUtils';\nimport { getEquidistantTicks } from './getEquidistantTicks';\nfunction getTicksEnd(sign, boundaries, getTickSize, ticks, minTickGap) {\n var result = (ticks || []).slice();\n var len = result.length;\n var start = boundaries.start;\n var end = boundaries.end;\n var _loop = function _loop(i) {\n var entry = result[i];\n var size;\n var getSize = function getSize() {\n if (size === undefined) {\n size = getTickSize(entry, i);\n }\n return size;\n };\n if (i === len - 1) {\n var gap = sign * (entry.coordinate + sign * getSize() / 2 - end);\n result[i] = entry = _objectSpread(_objectSpread({}, entry), {}, {\n tickCoord: gap > 0 ? entry.coordinate - gap * sign : entry.coordinate\n });\n } else {\n result[i] = entry = _objectSpread(_objectSpread({}, entry), {}, {\n tickCoord: entry.coordinate\n });\n }\n var isShow = isVisible(sign, entry.tickCoord, getSize, start, end);\n if (isShow) {\n end = entry.tickCoord - sign * (getSize() / 2 + minTickGap);\n result[i] = _objectSpread(_objectSpread({}, entry), {}, {\n isShow: true\n });\n }\n };\n for (var i = len - 1; i >= 0; i--) {\n _loop(i);\n }\n return result;\n}\nfunction getTicksStart(sign, boundaries, getTickSize, ticks, minTickGap, preserveEnd) {\n var result = (ticks || []).slice();\n var len = result.length;\n var start = boundaries.start,\n end = boundaries.end;\n if (preserveEnd) {\n // Try to guarantee the tail to be displayed\n var tail = ticks[len - 1];\n var tailSize = getTickSize(tail, len - 1);\n var tailGap = sign * (tail.coordinate + sign * tailSize / 2 - end);\n result[len - 1] = tail = _objectSpread(_objectSpread({}, tail), {}, {\n tickCoord: tailGap > 0 ? tail.coordinate - tailGap * sign : tail.coordinate\n });\n var isTailShow = isVisible(sign, tail.tickCoord, function () {\n return tailSize;\n }, start, end);\n if (isTailShow) {\n end = tail.tickCoord - sign * (tailSize / 2 + minTickGap);\n result[len - 1] = _objectSpread(_objectSpread({}, tail), {}, {\n isShow: true\n });\n }\n }\n var count = preserveEnd ? len - 1 : len;\n var _loop2 = function _loop2(i) {\n var entry = result[i];\n var size;\n var getSize = function getSize() {\n if (size === undefined) {\n size = getTickSize(entry, i);\n }\n return size;\n };\n if (i === 0) {\n var gap = sign * (entry.coordinate - sign * getSize() / 2 - start);\n result[i] = entry = _objectSpread(_objectSpread({}, entry), {}, {\n tickCoord: gap < 0 ? entry.coordinate - gap * sign : entry.coordinate\n });\n } else {\n result[i] = entry = _objectSpread(_objectSpread({}, entry), {}, {\n tickCoord: entry.coordinate\n });\n }\n var isShow = isVisible(sign, entry.tickCoord, getSize, start, end);\n if (isShow) {\n start = entry.tickCoord + sign * (getSize() / 2 + minTickGap);\n result[i] = _objectSpread(_objectSpread({}, entry), {}, {\n isShow: true\n });\n }\n };\n for (var i = 0; i < count; i++) {\n _loop2(i);\n }\n return result;\n}\nexport function getTicks(props, fontSize, letterSpacing) {\n var tick = props.tick,\n ticks = props.ticks,\n viewBox = props.viewBox,\n minTickGap = props.minTickGap,\n orientation = props.orientation,\n interval = props.interval,\n tickFormatter = props.tickFormatter,\n unit = props.unit,\n angle = props.angle;\n if (!ticks || !ticks.length || !tick) {\n return [];\n }\n if (isNumber(interval) || Global.isSsr) {\n return getNumberIntervalTicks(ticks, typeof interval === 'number' && isNumber(interval) ? interval : 0);\n }\n var candidates = [];\n var sizeKey = orientation === 'top' || orientation === 'bottom' ? 'width' : 'height';\n var unitSize = unit && sizeKey === 'width' ? getStringSize(unit, {\n fontSize: fontSize,\n letterSpacing: letterSpacing\n }) : {\n width: 0,\n height: 0\n };\n var getTickSize = function getTickSize(content, index) {\n var value = isFunction(tickFormatter) ? tickFormatter(content.value, index) : content.value;\n // Recharts only supports angles when sizeKey === 'width'\n return sizeKey === 'width' ? getAngledTickWidth(getStringSize(value, {\n fontSize: fontSize,\n letterSpacing: letterSpacing\n }), unitSize, angle) : getStringSize(value, {\n fontSize: fontSize,\n letterSpacing: letterSpacing\n })[sizeKey];\n };\n var sign = ticks.length >= 2 ? mathSign(ticks[1].coordinate - ticks[0].coordinate) : 1;\n var boundaries = getTickBoundaries(viewBox, sign, sizeKey);\n if (interval === 'equidistantPreserveStart') {\n return getEquidistantTicks(sign, boundaries, getTickSize, ticks, minTickGap);\n }\n if (interval === 'preserveStart' || interval === 'preserveStartEnd') {\n candidates = getTicksStart(sign, boundaries, getTickSize, ticks, minTickGap, interval === 'preserveStartEnd');\n } else {\n candidates = getTicksEnd(sign, boundaries, getTickSize, ticks, minTickGap);\n }\n return candidates.filter(function (entry) {\n return entry.isShow;\n });\n}","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); }\n/**\n * @fileOverview Dot\n */\nimport React from 'react';\nimport clsx from 'clsx';\nimport { adaptEventHandlers } from '../util/types';\nimport { filterProps } from '../util/ReactUtils';\nexport var Dot = function Dot(props) {\n var cx = props.cx,\n cy = props.cy,\n r = props.r,\n className = props.className;\n var layerClass = clsx('recharts-dot', className);\n if (cx === +cx && cy === +cy && r === +r) {\n return /*#__PURE__*/React.createElement(\"circle\", _extends({}, filterProps(props, false), adaptEventHandlers(props), {\n className: layerClass,\n cx: cx,\n cy: cy,\n r: r\n }));\n }\n return null;\n};","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : String(i); }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nvar PREFIX_LIST = ['Webkit', 'Moz', 'O', 'ms'];\nexport var generatePrefixStyle = function generatePrefixStyle(name, value) {\n if (!name) {\n return null;\n }\n var camelName = name.replace(/(\\w)/, function (v) {\n return v.toUpperCase();\n });\n var result = PREFIX_LIST.reduce(function (res, entry) {\n return _objectSpread(_objectSpread({}, res), {}, _defineProperty({}, entry + camelName, value));\n }, {});\n result[name] = value;\n return result;\n};","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _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); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _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, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }\nfunction _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); }\nfunction _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _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); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : String(i); }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n/**\n * @fileOverview Brush\n */\nimport React, { PureComponent, Children } from 'react';\nimport clsx from 'clsx';\nimport { scalePoint } from 'victory-vendor/d3-scale';\nimport isFunction from 'lodash/isFunction';\nimport range from 'lodash/range';\nimport { Layer } from '../container/Layer';\nimport { Text } from '../component/Text';\nimport { getValueByDataKey } from '../util/ChartUtils';\nimport { isNumber } from '../util/DataUtils';\nimport { generatePrefixStyle } from '../util/CssPrefixUtils';\nimport { filterProps } from '../util/ReactUtils';\nvar createScale = function createScale(_ref) {\n var data = _ref.data,\n startIndex = _ref.startIndex,\n endIndex = _ref.endIndex,\n x = _ref.x,\n width = _ref.width,\n travellerWidth = _ref.travellerWidth;\n if (!data || !data.length) {\n return {};\n }\n var len = data.length;\n var scale = scalePoint().domain(range(0, len)).range([x, x + width - travellerWidth]);\n var scaleValues = scale.domain().map(function (entry) {\n return scale(entry);\n });\n return {\n isTextActive: false,\n isSlideMoving: false,\n isTravellerMoving: false,\n isTravellerFocused: false,\n startX: scale(startIndex),\n endX: scale(endIndex),\n scale: scale,\n scaleValues: scaleValues\n };\n};\nvar isTouch = function isTouch(e) {\n return e.changedTouches && !!e.changedTouches.length;\n};\nexport var Brush = /*#__PURE__*/function (_PureComponent) {\n _inherits(Brush, _PureComponent);\n function Brush(props) {\n var _this;\n _classCallCheck(this, Brush);\n _this = _callSuper(this, Brush, [props]);\n _defineProperty(_assertThisInitialized(_this), \"handleDrag\", function (e) {\n if (_this.leaveTimer) {\n clearTimeout(_this.leaveTimer);\n _this.leaveTimer = null;\n }\n if (_this.state.isTravellerMoving) {\n _this.handleTravellerMove(e);\n } else if (_this.state.isSlideMoving) {\n _this.handleSlideDrag(e);\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"handleTouchMove\", function (e) {\n if (e.changedTouches != null && e.changedTouches.length > 0) {\n _this.handleDrag(e.changedTouches[0]);\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"handleDragEnd\", function () {\n _this.setState({\n isTravellerMoving: false,\n isSlideMoving: false\n }, function () {\n var _this$props = _this.props,\n endIndex = _this$props.endIndex,\n onDragEnd = _this$props.onDragEnd,\n startIndex = _this$props.startIndex;\n onDragEnd === null || onDragEnd === void 0 || onDragEnd({\n endIndex: endIndex,\n startIndex: startIndex\n });\n });\n _this.detachDragEndListener();\n });\n _defineProperty(_assertThisInitialized(_this), \"handleLeaveWrapper\", function () {\n if (_this.state.isTravellerMoving || _this.state.isSlideMoving) {\n _this.leaveTimer = window.setTimeout(_this.handleDragEnd, _this.props.leaveTimeOut);\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"handleEnterSlideOrTraveller\", function () {\n _this.setState({\n isTextActive: true\n });\n });\n _defineProperty(_assertThisInitialized(_this), \"handleLeaveSlideOrTraveller\", function () {\n _this.setState({\n isTextActive: false\n });\n });\n _defineProperty(_assertThisInitialized(_this), \"handleSlideDragStart\", function (e) {\n var event = isTouch(e) ? e.changedTouches[0] : e;\n _this.setState({\n isTravellerMoving: false,\n isSlideMoving: true,\n slideMoveStartX: event.pageX\n });\n _this.attachDragEndListener();\n });\n _this.travellerDragStartHandlers = {\n startX: _this.handleTravellerDragStart.bind(_assertThisInitialized(_this), 'startX'),\n endX: _this.handleTravellerDragStart.bind(_assertThisInitialized(_this), 'endX')\n };\n _this.state = {};\n return _this;\n }\n _createClass(Brush, [{\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n if (this.leaveTimer) {\n clearTimeout(this.leaveTimer);\n this.leaveTimer = null;\n }\n this.detachDragEndListener();\n }\n }, {\n key: \"getIndex\",\n value: function getIndex(_ref2) {\n var startX = _ref2.startX,\n endX = _ref2.endX;\n var scaleValues = this.state.scaleValues;\n var _this$props2 = this.props,\n gap = _this$props2.gap,\n data = _this$props2.data;\n var lastIndex = data.length - 1;\n var min = Math.min(startX, endX);\n var max = Math.max(startX, endX);\n var minIndex = Brush.getIndexInRange(scaleValues, min);\n var maxIndex = Brush.getIndexInRange(scaleValues, max);\n return {\n startIndex: minIndex - minIndex % gap,\n endIndex: maxIndex === lastIndex ? lastIndex : maxIndex - maxIndex % gap\n };\n }\n }, {\n key: \"getTextOfTick\",\n value: function getTextOfTick(index) {\n var _this$props3 = this.props,\n data = _this$props3.data,\n tickFormatter = _this$props3.tickFormatter,\n dataKey = _this$props3.dataKey;\n var text = getValueByDataKey(data[index], dataKey, index);\n return isFunction(tickFormatter) ? tickFormatter(text, index) : text;\n }\n }, {\n key: \"attachDragEndListener\",\n value: function attachDragEndListener() {\n window.addEventListener('mouseup', this.handleDragEnd, true);\n window.addEventListener('touchend', this.handleDragEnd, true);\n window.addEventListener('mousemove', this.handleDrag, true);\n }\n }, {\n key: \"detachDragEndListener\",\n value: function detachDragEndListener() {\n window.removeEventListener('mouseup', this.handleDragEnd, true);\n window.removeEventListener('touchend', this.handleDragEnd, true);\n window.removeEventListener('mousemove', this.handleDrag, true);\n }\n }, {\n key: \"handleSlideDrag\",\n value: function handleSlideDrag(e) {\n var _this$state = this.state,\n slideMoveStartX = _this$state.slideMoveStartX,\n startX = _this$state.startX,\n endX = _this$state.endX;\n var _this$props4 = this.props,\n x = _this$props4.x,\n width = _this$props4.width,\n travellerWidth = _this$props4.travellerWidth,\n startIndex = _this$props4.startIndex,\n endIndex = _this$props4.endIndex,\n onChange = _this$props4.onChange;\n var delta = e.pageX - slideMoveStartX;\n if (delta > 0) {\n delta = Math.min(delta, x + width - travellerWidth - endX, x + width - travellerWidth - startX);\n } else if (delta < 0) {\n delta = Math.max(delta, x - startX, x - endX);\n }\n var newIndex = this.getIndex({\n startX: startX + delta,\n endX: endX + delta\n });\n if ((newIndex.startIndex !== startIndex || newIndex.endIndex !== endIndex) && onChange) {\n onChange(newIndex);\n }\n this.setState({\n startX: startX + delta,\n endX: endX + delta,\n slideMoveStartX: e.pageX\n });\n }\n }, {\n key: \"handleTravellerDragStart\",\n value: function handleTravellerDragStart(id, e) {\n var event = isTouch(e) ? e.changedTouches[0] : e;\n this.setState({\n isSlideMoving: false,\n isTravellerMoving: true,\n movingTravellerId: id,\n brushMoveStartX: event.pageX\n });\n this.attachDragEndListener();\n }\n }, {\n key: \"handleTravellerMove\",\n value: function handleTravellerMove(e) {\n var _this$state2 = this.state,\n brushMoveStartX = _this$state2.brushMoveStartX,\n movingTravellerId = _this$state2.movingTravellerId,\n endX = _this$state2.endX,\n startX = _this$state2.startX;\n var prevValue = this.state[movingTravellerId];\n var _this$props5 = this.props,\n x = _this$props5.x,\n width = _this$props5.width,\n travellerWidth = _this$props5.travellerWidth,\n onChange = _this$props5.onChange,\n gap = _this$props5.gap,\n data = _this$props5.data;\n var params = {\n startX: this.state.startX,\n endX: this.state.endX\n };\n var delta = e.pageX - brushMoveStartX;\n if (delta > 0) {\n delta = Math.min(delta, x + width - travellerWidth - prevValue);\n } else if (delta < 0) {\n delta = Math.max(delta, x - prevValue);\n }\n params[movingTravellerId] = prevValue + delta;\n var newIndex = this.getIndex(params);\n var startIndex = newIndex.startIndex,\n endIndex = newIndex.endIndex;\n var isFullGap = function isFullGap() {\n var lastIndex = data.length - 1;\n if (movingTravellerId === 'startX' && (endX > startX ? startIndex % gap === 0 : endIndex % gap === 0) || endX < startX && endIndex === lastIndex || movingTravellerId === 'endX' && (endX > startX ? endIndex % gap === 0 : startIndex % gap === 0) || endX > startX && endIndex === lastIndex) {\n return true;\n }\n return false;\n };\n this.setState(_defineProperty(_defineProperty({}, movingTravellerId, prevValue + delta), \"brushMoveStartX\", e.pageX), function () {\n if (onChange) {\n if (isFullGap()) {\n onChange(newIndex);\n }\n }\n });\n }\n }, {\n key: \"handleTravellerMoveKeyboard\",\n value: function handleTravellerMoveKeyboard(direction, id) {\n var _this2 = this;\n // scaleValues are a list of coordinates. For example: [65, 250, 435, 620, 805, 990].\n var _this$state3 = this.state,\n scaleValues = _this$state3.scaleValues,\n startX = _this$state3.startX,\n endX = _this$state3.endX;\n // currentScaleValue refers to which coordinate the current traveller should be placed at.\n var currentScaleValue = this.state[id];\n var currentIndex = scaleValues.indexOf(currentScaleValue);\n if (currentIndex === -1) {\n return;\n }\n var newIndex = currentIndex + direction;\n if (newIndex === -1 || newIndex >= scaleValues.length) {\n return;\n }\n var newScaleValue = scaleValues[newIndex];\n\n // Prevent travellers from being on top of each other or overlapping\n if (id === 'startX' && newScaleValue >= endX || id === 'endX' && newScaleValue <= startX) {\n return;\n }\n this.setState(_defineProperty({}, id, newScaleValue), function () {\n _this2.props.onChange(_this2.getIndex({\n startX: _this2.state.startX,\n endX: _this2.state.endX\n }));\n });\n }\n }, {\n key: \"renderBackground\",\n value: function renderBackground() {\n var _this$props6 = this.props,\n x = _this$props6.x,\n y = _this$props6.y,\n width = _this$props6.width,\n height = _this$props6.height,\n fill = _this$props6.fill,\n stroke = _this$props6.stroke;\n return /*#__PURE__*/React.createElement(\"rect\", {\n stroke: stroke,\n fill: fill,\n x: x,\n y: y,\n width: width,\n height: height\n });\n }\n }, {\n key: \"renderPanorama\",\n value: function renderPanorama() {\n var _this$props7 = this.props,\n x = _this$props7.x,\n y = _this$props7.y,\n width = _this$props7.width,\n height = _this$props7.height,\n data = _this$props7.data,\n children = _this$props7.children,\n padding = _this$props7.padding;\n var chartElement = Children.only(children);\n if (!chartElement) {\n return null;\n }\n return /*#__PURE__*/React.cloneElement(chartElement, {\n x: x,\n y: y,\n width: width,\n height: height,\n margin: padding,\n compact: true,\n data: data\n });\n }\n }, {\n key: \"renderTravellerLayer\",\n value: function renderTravellerLayer(travellerX, id) {\n var _this3 = this;\n var _this$props8 = this.props,\n y = _this$props8.y,\n travellerWidth = _this$props8.travellerWidth,\n height = _this$props8.height,\n traveller = _this$props8.traveller,\n ariaLabel = _this$props8.ariaLabel,\n data = _this$props8.data,\n startIndex = _this$props8.startIndex,\n endIndex = _this$props8.endIndex;\n var x = Math.max(travellerX, this.props.x);\n var travellerProps = _objectSpread(_objectSpread({}, filterProps(this.props, false)), {}, {\n x: x,\n y: y,\n width: travellerWidth,\n height: height\n });\n var ariaLabelBrush = ariaLabel || \"Min value: \".concat(data[startIndex].name, \", Max value: \").concat(data[endIndex].name);\n return /*#__PURE__*/React.createElement(Layer, {\n tabIndex: 0,\n role: \"slider\",\n \"aria-label\": ariaLabelBrush,\n \"aria-valuenow\": travellerX,\n className: \"recharts-brush-traveller\",\n onMouseEnter: this.handleEnterSlideOrTraveller,\n onMouseLeave: this.handleLeaveSlideOrTraveller,\n onMouseDown: this.travellerDragStartHandlers[id],\n onTouchStart: this.travellerDragStartHandlers[id],\n onKeyDown: function onKeyDown(e) {\n if (!['ArrowLeft', 'ArrowRight'].includes(e.key)) {\n return;\n }\n e.preventDefault();\n e.stopPropagation();\n _this3.handleTravellerMoveKeyboard(e.key === 'ArrowRight' ? 1 : -1, id);\n },\n onFocus: function onFocus() {\n _this3.setState({\n isTravellerFocused: true\n });\n },\n onBlur: function onBlur() {\n _this3.setState({\n isTravellerFocused: false\n });\n },\n style: {\n cursor: 'col-resize'\n }\n }, Brush.renderTraveller(traveller, travellerProps));\n }\n }, {\n key: \"renderSlide\",\n value: function renderSlide(startX, endX) {\n var _this$props9 = this.props,\n y = _this$props9.y,\n height = _this$props9.height,\n stroke = _this$props9.stroke,\n travellerWidth = _this$props9.travellerWidth;\n var x = Math.min(startX, endX) + travellerWidth;\n var width = Math.max(Math.abs(endX - startX) - travellerWidth, 0);\n return /*#__PURE__*/React.createElement(\"rect\", {\n className: \"recharts-brush-slide\",\n onMouseEnter: this.handleEnterSlideOrTraveller,\n onMouseLeave: this.handleLeaveSlideOrTraveller,\n onMouseDown: this.handleSlideDragStart,\n onTouchStart: this.handleSlideDragStart,\n style: {\n cursor: 'move'\n },\n stroke: \"none\",\n fill: stroke,\n fillOpacity: 0.2,\n x: x,\n y: y,\n width: width,\n height: height\n });\n }\n }, {\n key: \"renderText\",\n value: function renderText() {\n var _this$props10 = this.props,\n startIndex = _this$props10.startIndex,\n endIndex = _this$props10.endIndex,\n y = _this$props10.y,\n height = _this$props10.height,\n travellerWidth = _this$props10.travellerWidth,\n stroke = _this$props10.stroke;\n var _this$state4 = this.state,\n startX = _this$state4.startX,\n endX = _this$state4.endX;\n var offset = 5;\n var attrs = {\n pointerEvents: 'none',\n fill: stroke\n };\n return /*#__PURE__*/React.createElement(Layer, {\n className: \"recharts-brush-texts\"\n }, /*#__PURE__*/React.createElement(Text, _extends({\n textAnchor: \"end\",\n verticalAnchor: \"middle\",\n x: Math.min(startX, endX) - offset,\n y: y + height / 2\n }, attrs), this.getTextOfTick(startIndex)), /*#__PURE__*/React.createElement(Text, _extends({\n textAnchor: \"start\",\n verticalAnchor: \"middle\",\n x: Math.max(startX, endX) + travellerWidth + offset,\n y: y + height / 2\n }, attrs), this.getTextOfTick(endIndex)));\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props11 = this.props,\n data = _this$props11.data,\n className = _this$props11.className,\n children = _this$props11.children,\n x = _this$props11.x,\n y = _this$props11.y,\n width = _this$props11.width,\n height = _this$props11.height,\n alwaysShowText = _this$props11.alwaysShowText;\n var _this$state5 = this.state,\n startX = _this$state5.startX,\n endX = _this$state5.endX,\n isTextActive = _this$state5.isTextActive,\n isSlideMoving = _this$state5.isSlideMoving,\n isTravellerMoving = _this$state5.isTravellerMoving,\n isTravellerFocused = _this$state5.isTravellerFocused;\n if (!data || !data.length || !isNumber(x) || !isNumber(y) || !isNumber(width) || !isNumber(height) || width <= 0 || height <= 0) {\n return null;\n }\n var layerClass = clsx('recharts-brush', className);\n var isPanoramic = React.Children.count(children) === 1;\n var style = generatePrefixStyle('userSelect', 'none');\n return /*#__PURE__*/React.createElement(Layer, {\n className: layerClass,\n onMouseLeave: this.handleLeaveWrapper,\n onTouchMove: this.handleTouchMove,\n style: style\n }, this.renderBackground(), isPanoramic && this.renderPanorama(), this.renderSlide(startX, endX), this.renderTravellerLayer(startX, 'startX'), this.renderTravellerLayer(endX, 'endX'), (isTextActive || isSlideMoving || isTravellerMoving || isTravellerFocused || alwaysShowText) && this.renderText());\n }\n }], [{\n key: \"renderDefaultTraveller\",\n value: function renderDefaultTraveller(props) {\n var x = props.x,\n y = props.y,\n width = props.width,\n height = props.height,\n stroke = props.stroke;\n var lineY = Math.floor(y + height / 2) - 1;\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"rect\", {\n x: x,\n y: y,\n width: width,\n height: height,\n fill: stroke,\n stroke: \"none\"\n }), /*#__PURE__*/React.createElement(\"line\", {\n x1: x + 1,\n y1: lineY,\n x2: x + width - 1,\n y2: lineY,\n fill: \"none\",\n stroke: \"#fff\"\n }), /*#__PURE__*/React.createElement(\"line\", {\n x1: x + 1,\n y1: lineY + 2,\n x2: x + width - 1,\n y2: lineY + 2,\n fill: \"none\",\n stroke: \"#fff\"\n }));\n }\n }, {\n key: \"renderTraveller\",\n value: function renderTraveller(option, props) {\n var rectangle;\n if ( /*#__PURE__*/React.isValidElement(option)) {\n rectangle = /*#__PURE__*/React.cloneElement(option, props);\n } else if (isFunction(option)) {\n rectangle = option(props);\n } else {\n rectangle = Brush.renderDefaultTraveller(props);\n }\n return rectangle;\n }\n }, {\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(nextProps, prevState) {\n var data = nextProps.data,\n width = nextProps.width,\n x = nextProps.x,\n travellerWidth = nextProps.travellerWidth,\n updateId = nextProps.updateId,\n startIndex = nextProps.startIndex,\n endIndex = nextProps.endIndex;\n if (data !== prevState.prevData || updateId !== prevState.prevUpdateId) {\n return _objectSpread({\n prevData: data,\n prevTravellerWidth: travellerWidth,\n prevUpdateId: updateId,\n prevX: x,\n prevWidth: width\n }, data && data.length ? createScale({\n data: data,\n width: width,\n x: x,\n travellerWidth: travellerWidth,\n startIndex: startIndex,\n endIndex: endIndex\n }) : {\n scale: null,\n scaleValues: null\n });\n }\n if (prevState.scale && (width !== prevState.prevWidth || x !== prevState.prevX || travellerWidth !== prevState.prevTravellerWidth)) {\n prevState.scale.range([x, x + width - travellerWidth]);\n var scaleValues = prevState.scale.domain().map(function (entry) {\n return prevState.scale(entry);\n });\n return {\n prevData: data,\n prevTravellerWidth: travellerWidth,\n prevUpdateId: updateId,\n prevX: x,\n prevWidth: width,\n startX: prevState.scale(nextProps.startIndex),\n endX: prevState.scale(nextProps.endIndex),\n scaleValues: scaleValues\n };\n }\n return null;\n }\n }, {\n key: \"getIndexInRange\",\n value: function getIndexInRange(valueRange, x) {\n var len = valueRange.length;\n var start = 0;\n var end = len - 1;\n while (end - start > 1) {\n var middle = Math.floor((start + end) / 2);\n if (valueRange[middle] > x) {\n end = middle;\n } else {\n start = middle;\n }\n }\n return x >= valueRange[end] ? end : start;\n }\n }]);\n return Brush;\n}(PureComponent);\n_defineProperty(Brush, \"displayName\", 'Brush');\n_defineProperty(Brush, \"defaultProps\", {\n height: 40,\n travellerWidth: 5,\n gap: 1,\n fill: '#fff',\n stroke: '#666',\n padding: {\n top: 1,\n right: 1,\n bottom: 1,\n left: 1\n },\n leaveTimeOut: 1000,\n alwaysShowText: false\n});","export var ifOverflowMatches = function ifOverflowMatches(props, value) {\n var alwaysShow = props.alwaysShow;\n var ifOverflow = props.ifOverflow;\n if (alwaysShow) {\n ifOverflow = 'extendDomain';\n }\n return ifOverflow === value;\n};","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _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); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : String(i); }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n/**\n * @fileOverview Reference Dot\n */\nimport React from 'react';\nimport isFunction from 'lodash/isFunction';\nimport clsx from 'clsx';\nimport { Layer } from '../container/Layer';\nimport { Dot } from '../shape/Dot';\nimport { Label } from '../component/Label';\nimport { isNumOrStr } from '../util/DataUtils';\nimport { ifOverflowMatches } from '../util/IfOverflowMatches';\nimport { createLabeledScales } from '../util/CartesianUtils';\nimport { warn } from '../util/LogUtils';\nimport { filterProps } from '../util/ReactUtils';\nvar getCoordinate = function getCoordinate(props) {\n var x = props.x,\n y = props.y,\n xAxis = props.xAxis,\n yAxis = props.yAxis;\n var scales = createLabeledScales({\n x: xAxis.scale,\n y: yAxis.scale\n });\n var result = scales.apply({\n x: x,\n y: y\n }, {\n bandAware: true\n });\n if (ifOverflowMatches(props, 'discard') && !scales.isInRange(result)) {\n return null;\n }\n return result;\n};\nexport function ReferenceDot(props) {\n var x = props.x,\n y = props.y,\n r = props.r,\n alwaysShow = props.alwaysShow,\n clipPathId = props.clipPathId;\n var isX = isNumOrStr(x);\n var isY = isNumOrStr(y);\n warn(alwaysShow === undefined, 'The alwaysShow prop is deprecated. Please use ifOverflow=\"extendDomain\" instead.');\n if (!isX || !isY) {\n return null;\n }\n var coordinate = getCoordinate(props);\n if (!coordinate) {\n return null;\n }\n var cx = coordinate.x,\n cy = coordinate.y;\n var shape = props.shape,\n className = props.className;\n var clipPath = ifOverflowMatches(props, 'hidden') ? \"url(#\".concat(clipPathId, \")\") : undefined;\n var dotProps = _objectSpread(_objectSpread({\n clipPath: clipPath\n }, filterProps(props, true)), {}, {\n cx: cx,\n cy: cy\n });\n return /*#__PURE__*/React.createElement(Layer, {\n className: clsx('recharts-reference-dot', className)\n }, ReferenceDot.renderDot(shape, dotProps), Label.renderCallByParent(props, {\n x: cx - r,\n y: cy - r,\n width: 2 * r,\n height: 2 * r\n }));\n}\nReferenceDot.displayName = 'ReferenceDot';\nReferenceDot.defaultProps = {\n isFront: false,\n ifOverflow: 'discard',\n xAxisId: 0,\n yAxisId: 0,\n r: 10,\n fill: '#fff',\n stroke: '#ccc',\n fillOpacity: 1,\n strokeWidth: 1\n};\nReferenceDot.renderDot = function (option, props) {\n var dot;\n if ( /*#__PURE__*/React.isValidElement(option)) {\n dot = /*#__PURE__*/React.cloneElement(option, props);\n } else if (isFunction(option)) {\n dot = option(props);\n } else {\n dot = /*#__PURE__*/React.createElement(Dot, _extends({}, props, {\n cx: props.cx,\n cy: props.cy,\n className: \"recharts-reference-dot-dot\"\n }));\n }\n return dot;\n};","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : String(i); }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nfunction _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); }\n/**\n * @fileOverview Reference Line\n */\nimport React from 'react';\nimport isFunction from 'lodash/isFunction';\nimport some from 'lodash/some';\nimport clsx from 'clsx';\nimport { Layer } from '../container/Layer';\nimport { Label } from '../component/Label';\nimport { ifOverflowMatches } from '../util/IfOverflowMatches';\nimport { isNumOrStr } from '../util/DataUtils';\nimport { createLabeledScales, rectWithCoords } from '../util/CartesianUtils';\nimport { warn } from '../util/LogUtils';\nimport { filterProps } from '../util/ReactUtils';\nimport { useClipPathId, useViewBox, useXAxisOrThrow, useYAxisOrThrow } from '../context/chartLayoutContext';\n\n/**\n * This excludes `viewBox` prop from svg for two reasons:\n * 1. The components wants viewBox of object type, and svg wants string\n * - so there's a conflict, and the component will throw if it gets string\n * 2. Internally the component calls `filterProps` which filters the viewBox away anyway\n */\n\nvar renderLine = function renderLine(option, props) {\n var line;\n if ( /*#__PURE__*/React.isValidElement(option)) {\n line = /*#__PURE__*/React.cloneElement(option, props);\n } else if (isFunction(option)) {\n line = option(props);\n } else {\n line = /*#__PURE__*/React.createElement(\"line\", _extends({}, props, {\n className: \"recharts-reference-line-line\"\n }));\n }\n return line;\n};\n// TODO: ScaleHelper\nexport var getEndPoints = function getEndPoints(scales, isFixedX, isFixedY, isSegment, viewBox, position, xAxisOrientation, yAxisOrientation, props) {\n var x = viewBox.x,\n y = viewBox.y,\n width = viewBox.width,\n height = viewBox.height;\n if (isFixedY) {\n var yCoord = props.y;\n var coord = scales.y.apply(yCoord, {\n position: position\n });\n if (ifOverflowMatches(props, 'discard') && !scales.y.isInRange(coord)) {\n return null;\n }\n var points = [{\n x: x + width,\n y: coord\n }, {\n x: x,\n y: coord\n }];\n return yAxisOrientation === 'left' ? points.reverse() : points;\n }\n if (isFixedX) {\n var xCoord = props.x;\n var _coord = scales.x.apply(xCoord, {\n position: position\n });\n if (ifOverflowMatches(props, 'discard') && !scales.x.isInRange(_coord)) {\n return null;\n }\n var _points = [{\n x: _coord,\n y: y + height\n }, {\n x: _coord,\n y: y\n }];\n return xAxisOrientation === 'top' ? _points.reverse() : _points;\n }\n if (isSegment) {\n var segment = props.segment;\n var _points2 = segment.map(function (p) {\n return scales.apply(p, {\n position: position\n });\n });\n if (ifOverflowMatches(props, 'discard') && some(_points2, function (p) {\n return !scales.isInRange(p);\n })) {\n return null;\n }\n return _points2;\n }\n return null;\n};\nexport function ReferenceLine(props) {\n var fixedX = props.x,\n fixedY = props.y,\n segment = props.segment,\n xAxisId = props.xAxisId,\n yAxisId = props.yAxisId,\n shape = props.shape,\n className = props.className,\n alwaysShow = props.alwaysShow;\n var clipPathId = useClipPathId();\n var xAxis = useXAxisOrThrow(xAxisId);\n var yAxis = useYAxisOrThrow(yAxisId);\n var viewBox = useViewBox();\n if (!clipPathId || !viewBox) {\n return null;\n }\n warn(alwaysShow === undefined, 'The alwaysShow prop is deprecated. Please use ifOverflow=\"extendDomain\" instead.');\n var scales = createLabeledScales({\n x: xAxis.scale,\n y: yAxis.scale\n });\n var isX = isNumOrStr(fixedX);\n var isY = isNumOrStr(fixedY);\n var isSegment = segment && segment.length === 2;\n var endPoints = getEndPoints(scales, isX, isY, isSegment, viewBox, props.position, xAxis.orientation, yAxis.orientation, props);\n if (!endPoints) {\n return null;\n }\n var _endPoints = _slicedToArray(endPoints, 2),\n _endPoints$ = _endPoints[0],\n x1 = _endPoints$.x,\n y1 = _endPoints$.y,\n _endPoints$2 = _endPoints[1],\n x2 = _endPoints$2.x,\n y2 = _endPoints$2.y;\n var clipPath = ifOverflowMatches(props, 'hidden') ? \"url(#\".concat(clipPathId, \")\") : undefined;\n var lineProps = _objectSpread(_objectSpread({\n clipPath: clipPath\n }, filterProps(props, true)), {}, {\n x1: x1,\n y1: y1,\n x2: x2,\n y2: y2\n });\n return /*#__PURE__*/React.createElement(Layer, {\n className: clsx('recharts-reference-line', className)\n }, renderLine(shape, lineProps), Label.renderCallByParent(props, rectWithCoords({\n x1: x1,\n y1: y1,\n x2: x2,\n y2: y2\n })));\n}\nReferenceLine.displayName = 'ReferenceLine';\nReferenceLine.defaultProps = {\n isFront: false,\n ifOverflow: 'discard',\n xAxisId: 0,\n yAxisId: 0,\n fill: 'none',\n stroke: '#ccc',\n fillOpacity: 1,\n strokeWidth: 1,\n position: 'middle'\n};","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _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); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : String(i); }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n/**\n * @fileOverview Reference Line\n */\nimport React from 'react';\nimport isFunction from 'lodash/isFunction';\nimport clsx from 'clsx';\nimport { Layer } from '../container/Layer';\nimport { Label } from '../component/Label';\nimport { createLabeledScales, rectWithPoints } from '../util/CartesianUtils';\nimport { ifOverflowMatches } from '../util/IfOverflowMatches';\nimport { isNumOrStr } from '../util/DataUtils';\nimport { warn } from '../util/LogUtils';\nimport { Rectangle } from '../shape/Rectangle';\nimport { filterProps } from '../util/ReactUtils';\nvar getRect = function getRect(hasX1, hasX2, hasY1, hasY2, props) {\n var xValue1 = props.x1,\n xValue2 = props.x2,\n yValue1 = props.y1,\n yValue2 = props.y2,\n xAxis = props.xAxis,\n yAxis = props.yAxis;\n if (!xAxis || !yAxis) return null;\n var scales = createLabeledScales({\n x: xAxis.scale,\n y: yAxis.scale\n });\n var p1 = {\n x: hasX1 ? scales.x.apply(xValue1, {\n position: 'start'\n }) : scales.x.rangeMin,\n y: hasY1 ? scales.y.apply(yValue1, {\n position: 'start'\n }) : scales.y.rangeMin\n };\n var p2 = {\n x: hasX2 ? scales.x.apply(xValue2, {\n position: 'end'\n }) : scales.x.rangeMax,\n y: hasY2 ? scales.y.apply(yValue2, {\n position: 'end'\n }) : scales.y.rangeMax\n };\n if (ifOverflowMatches(props, 'discard') && (!scales.isInRange(p1) || !scales.isInRange(p2))) {\n return null;\n }\n return rectWithPoints(p1, p2);\n};\nexport function ReferenceArea(props) {\n var x1 = props.x1,\n x2 = props.x2,\n y1 = props.y1,\n y2 = props.y2,\n className = props.className,\n alwaysShow = props.alwaysShow,\n clipPathId = props.clipPathId;\n warn(alwaysShow === undefined, 'The alwaysShow prop is deprecated. Please use ifOverflow=\"extendDomain\" instead.');\n var hasX1 = isNumOrStr(x1);\n var hasX2 = isNumOrStr(x2);\n var hasY1 = isNumOrStr(y1);\n var hasY2 = isNumOrStr(y2);\n var shape = props.shape;\n if (!hasX1 && !hasX2 && !hasY1 && !hasY2 && !shape) {\n return null;\n }\n var rect = getRect(hasX1, hasX2, hasY1, hasY2, props);\n if (!rect && !shape) {\n return null;\n }\n var clipPath = ifOverflowMatches(props, 'hidden') ? \"url(#\".concat(clipPathId, \")\") : undefined;\n return /*#__PURE__*/React.createElement(Layer, {\n className: clsx('recharts-reference-area', className)\n }, ReferenceArea.renderRect(shape, _objectSpread(_objectSpread({\n clipPath: clipPath\n }, filterProps(props, true)), rect)), Label.renderCallByParent(props, rect));\n}\nReferenceArea.displayName = 'ReferenceArea';\nReferenceArea.defaultProps = {\n isFront: false,\n ifOverflow: 'discard',\n xAxisId: 0,\n yAxisId: 0,\n r: 10,\n fill: '#ccc',\n fillOpacity: 0.5,\n stroke: 'none',\n strokeWidth: 1\n};\nReferenceArea.renderRect = function (option, props) {\n var rect;\n if ( /*#__PURE__*/React.isValidElement(option)) {\n rect = /*#__PURE__*/React.cloneElement(option, props);\n } else if (isFunction(option)) {\n rect = option(props);\n } else {\n rect = /*#__PURE__*/React.createElement(Rectangle, _extends({}, props, {\n className: \"recharts-reference-area-rect\"\n }));\n }\n return rect;\n};","function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nimport { ReferenceDot } from '../cartesian/ReferenceDot';\nimport { ReferenceLine } from '../cartesian/ReferenceLine';\nimport { ReferenceArea } from '../cartesian/ReferenceArea';\nimport { ifOverflowMatches } from './IfOverflowMatches';\nimport { findAllByType } from './ReactUtils';\nimport { isNumber } from './DataUtils';\nexport var detectReferenceElementsDomain = function detectReferenceElementsDomain(children, domain, axisId, axisType, specifiedTicks) {\n var lines = findAllByType(children, ReferenceLine);\n var dots = findAllByType(children, ReferenceDot);\n var elements = [].concat(_toConsumableArray(lines), _toConsumableArray(dots));\n var areas = findAllByType(children, ReferenceArea);\n var idKey = \"\".concat(axisType, \"Id\");\n var valueKey = axisType[0];\n var finalDomain = domain;\n if (elements.length) {\n finalDomain = elements.reduce(function (result, el) {\n if (el.props[idKey] === axisId && ifOverflowMatches(el.props, 'extendDomain') && isNumber(el.props[valueKey])) {\n var value = el.props[valueKey];\n return [Math.min(result[0], value), Math.max(result[1], value)];\n }\n return result;\n }, finalDomain);\n }\n if (areas.length) {\n var key1 = \"\".concat(valueKey, \"1\");\n var key2 = \"\".concat(valueKey, \"2\");\n finalDomain = areas.reduce(function (result, el) {\n if (el.props[idKey] === axisId && ifOverflowMatches(el.props, 'extendDomain') && isNumber(el.props[key1]) && isNumber(el.props[key2])) {\n var value1 = el.props[key1];\n var value2 = el.props[key2];\n return [Math.min(result[0], value1, value2), Math.max(result[1], value1, value2)];\n }\n return result;\n }, finalDomain);\n }\n if (specifiedTicks && specifiedTicks.length) {\n finalDomain = specifiedTicks.reduce(function (result, tick) {\n if (isNumber(tick)) {\n return [Math.min(result[0], tick), Math.max(result[1], tick)];\n }\n return result;\n }, finalDomain);\n }\n return finalDomain;\n};","import EventEmitter from 'eventemitter3';\nvar eventCenter = new EventEmitter();\nexport { eventCenter };\nexport var SYNC_EVENT = 'recharts.syncMouseEvents';","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _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, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : String(i); }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nexport var AccessibilityManager = /*#__PURE__*/function () {\n function AccessibilityManager() {\n _classCallCheck(this, AccessibilityManager);\n _defineProperty(this, \"activeIndex\", 0);\n _defineProperty(this, \"coordinateList\", []);\n _defineProperty(this, \"layout\", 'horizontal');\n }\n _createClass(AccessibilityManager, [{\n key: \"setDetails\",\n value: function setDetails(_ref) {\n var _ref2;\n var _ref$coordinateList = _ref.coordinateList,\n coordinateList = _ref$coordinateList === void 0 ? null : _ref$coordinateList,\n _ref$container = _ref.container,\n container = _ref$container === void 0 ? null : _ref$container,\n _ref$layout = _ref.layout,\n layout = _ref$layout === void 0 ? null : _ref$layout,\n _ref$offset = _ref.offset,\n offset = _ref$offset === void 0 ? null : _ref$offset,\n _ref$mouseHandlerCall = _ref.mouseHandlerCallback,\n mouseHandlerCallback = _ref$mouseHandlerCall === void 0 ? null : _ref$mouseHandlerCall;\n this.coordinateList = (_ref2 = coordinateList !== null && coordinateList !== void 0 ? coordinateList : this.coordinateList) !== null && _ref2 !== void 0 ? _ref2 : [];\n this.container = container !== null && container !== void 0 ? container : this.container;\n this.layout = layout !== null && layout !== void 0 ? layout : this.layout;\n this.offset = offset !== null && offset !== void 0 ? offset : this.offset;\n this.mouseHandlerCallback = mouseHandlerCallback !== null && mouseHandlerCallback !== void 0 ? mouseHandlerCallback : this.mouseHandlerCallback;\n\n // Keep activeIndex in the bounds between 0 and the last coordinate index\n this.activeIndex = Math.min(Math.max(this.activeIndex, 0), this.coordinateList.length - 1);\n }\n }, {\n key: \"focus\",\n value: function focus() {\n this.spoofMouse();\n }\n }, {\n key: \"keyboardEvent\",\n value: function keyboardEvent(e) {\n // The AccessibilityManager relies on the Tooltip component. When tooltips suddenly stop existing,\n // it can cause errors. We use this function to check. We don't want arrow keys to be processed\n // if there are no tooltips, since that will cause unexpected behavior of users.\n if (this.coordinateList.length === 0) {\n return;\n }\n switch (e.key) {\n case 'ArrowRight':\n {\n if (this.layout !== 'horizontal') {\n return;\n }\n this.activeIndex = Math.min(this.activeIndex + 1, this.coordinateList.length - 1);\n this.spoofMouse();\n break;\n }\n case 'ArrowLeft':\n {\n if (this.layout !== 'horizontal') {\n return;\n }\n this.activeIndex = Math.max(this.activeIndex - 1, 0);\n this.spoofMouse();\n break;\n }\n default:\n {\n break;\n }\n }\n }\n }, {\n key: \"setIndex\",\n value: function setIndex(newIndex) {\n this.activeIndex = newIndex;\n }\n }, {\n key: \"spoofMouse\",\n value: function spoofMouse() {\n var _window, _window2;\n if (this.layout !== 'horizontal') {\n return;\n }\n\n // This can happen when the tooltips suddenly stop existing as children of the component\n // That update doesn't otherwise fire events, so we have to double check here.\n if (this.coordinateList.length === 0) {\n return;\n }\n var _this$container$getBo = this.container.getBoundingClientRect(),\n x = _this$container$getBo.x,\n y = _this$container$getBo.y,\n height = _this$container$getBo.height;\n var coordinate = this.coordinateList[this.activeIndex].coordinate;\n var scrollOffsetX = ((_window = window) === null || _window === void 0 ? void 0 : _window.scrollX) || 0;\n var scrollOffsetY = ((_window2 = window) === null || _window2 === void 0 ? void 0 : _window2.scrollY) || 0;\n var pageX = x + coordinate + scrollOffsetX;\n var pageY = y + this.offset.top + height / 2 + scrollOffsetY;\n this.mouseHandlerCallback({\n pageX: pageX,\n pageY: pageY\n });\n }\n }]);\n return AccessibilityManager;\n}();","import { isNumber } from './DataUtils';\n/**\n * Takes a domain and user props to determine whether he provided the domain via props or if we need to calculate it.\n * @param {AxisDomain} domain The potential domain from props\n * @param {Boolean} allowDataOverflow from props\n * @param {String} axisType from props\n * @returns {Boolean} `true` if domain is specified by user\n */\nexport function isDomainSpecifiedByUser(domain, allowDataOverflow, axisType) {\n if (axisType === 'number' && allowDataOverflow === true && Array.isArray(domain)) {\n var domainStart = domain === null || domain === void 0 ? void 0 : domain[0];\n var domainEnd = domain === null || domain === void 0 ? void 0 : domain[1];\n\n /*\n * The `isNumber` check is needed because the user could also provide strings like \"dataMin\" via the domain props.\n * In such case, we have to compute the domain from the data.\n */\n if (!!domainStart && !!domainEnd && isNumber(domainStart) && isNumber(domainEnd)) {\n return true;\n }\n }\n return false;\n}","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _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); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : String(i); }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n/**\n * @fileOverview Curve\n */\nimport React from 'react';\nimport { line as shapeLine, area as shapeArea, curveBasisClosed, curveBasisOpen, curveBasis, curveBumpX, curveBumpY, curveLinearClosed, curveLinear, curveMonotoneX, curveMonotoneY, curveNatural, curveStep, curveStepAfter, curveStepBefore } from 'victory-vendor/d3-shape';\nimport upperFirst from 'lodash/upperFirst';\nimport isFunction from 'lodash/isFunction';\nimport clsx from 'clsx';\nimport { adaptEventHandlers } from '../util/types';\nimport { filterProps } from '../util/ReactUtils';\nimport { isNumber } from '../util/DataUtils';\nvar CURVE_FACTORIES = {\n curveBasisClosed: curveBasisClosed,\n curveBasisOpen: curveBasisOpen,\n curveBasis: curveBasis,\n curveBumpX: curveBumpX,\n curveBumpY: curveBumpY,\n curveLinearClosed: curveLinearClosed,\n curveLinear: curveLinear,\n curveMonotoneX: curveMonotoneX,\n curveMonotoneY: curveMonotoneY,\n curveNatural: curveNatural,\n curveStep: curveStep,\n curveStepAfter: curveStepAfter,\n curveStepBefore: curveStepBefore\n};\nvar defined = function defined(p) {\n return p.x === +p.x && p.y === +p.y;\n};\nvar getX = function getX(p) {\n return p.x;\n};\nvar getY = function getY(p) {\n return p.y;\n};\nvar getCurveFactory = function getCurveFactory(type, layout) {\n if (isFunction(type)) {\n return type;\n }\n var name = \"curve\".concat(upperFirst(type));\n if ((name === 'curveMonotone' || name === 'curveBump') && layout) {\n return CURVE_FACTORIES[\"\".concat(name).concat(layout === 'vertical' ? 'Y' : 'X')];\n }\n return CURVE_FACTORIES[name] || curveLinear;\n};\n/**\n * Calculate the path of curve. Returns null if points is an empty array.\n * @return path or null\n */\nexport var getPath = function getPath(_ref) {\n var _ref$type = _ref.type,\n type = _ref$type === void 0 ? 'linear' : _ref$type,\n _ref$points = _ref.points,\n points = _ref$points === void 0 ? [] : _ref$points,\n baseLine = _ref.baseLine,\n layout = _ref.layout,\n _ref$connectNulls = _ref.connectNulls,\n connectNulls = _ref$connectNulls === void 0 ? false : _ref$connectNulls;\n var curveFactory = getCurveFactory(type, layout);\n var formatPoints = connectNulls ? points.filter(function (entry) {\n return defined(entry);\n }) : points;\n var lineFunction;\n if (Array.isArray(baseLine)) {\n var formatBaseLine = connectNulls ? baseLine.filter(function (base) {\n return defined(base);\n }) : baseLine;\n var areaPoints = formatPoints.map(function (entry, index) {\n return _objectSpread(_objectSpread({}, entry), {}, {\n base: formatBaseLine[index]\n });\n });\n if (layout === 'vertical') {\n lineFunction = shapeArea().y(getY).x1(getX).x0(function (d) {\n return d.base.x;\n });\n } else {\n lineFunction = shapeArea().x(getX).y1(getY).y0(function (d) {\n return d.base.y;\n });\n }\n lineFunction.defined(defined).curve(curveFactory);\n return lineFunction(areaPoints);\n }\n if (layout === 'vertical' && isNumber(baseLine)) {\n lineFunction = shapeArea().y(getY).x1(getX).x0(baseLine);\n } else if (isNumber(baseLine)) {\n lineFunction = shapeArea().x(getX).y1(getY).y0(baseLine);\n } else {\n lineFunction = shapeLine().x(getX).y(getY);\n }\n lineFunction.defined(defined).curve(curveFactory);\n return lineFunction(formatPoints);\n};\nexport var Curve = function Curve(props) {\n var className = props.className,\n points = props.points,\n path = props.path,\n pathRef = props.pathRef;\n if ((!points || !points.length) && !path) {\n return null;\n }\n var realPath = points && points.length ? getPath(props) : path;\n return /*#__PURE__*/React.createElement(\"path\", _extends({}, filterProps(props, false), adaptEventHandlers(props), {\n className: clsx('recharts-curve', className),\n d: realPath,\n ref: pathRef\n }));\n};","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nvar _excluded = [\"x\", \"y\", \"top\", \"left\", \"width\", \"height\", \"className\"];\nfunction _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); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : String(i); }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _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; }\nfunction _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; }\n/**\n * @fileOverview Cross\n */\nimport React from 'react';\nimport clsx from 'clsx';\nimport { isNumber } from '../util/DataUtils';\nimport { filterProps } from '../util/ReactUtils';\nvar getPath = function getPath(x, y, width, height, top, left) {\n return \"M\".concat(x, \",\").concat(top, \"v\").concat(height, \"M\").concat(left, \",\").concat(y, \"h\").concat(width);\n};\nexport var Cross = function Cross(_ref) {\n var _ref$x = _ref.x,\n x = _ref$x === void 0 ? 0 : _ref$x,\n _ref$y = _ref.y,\n y = _ref$y === void 0 ? 0 : _ref$y,\n _ref$top = _ref.top,\n top = _ref$top === void 0 ? 0 : _ref$top,\n _ref$left = _ref.left,\n left = _ref$left === void 0 ? 0 : _ref$left,\n _ref$width = _ref.width,\n width = _ref$width === void 0 ? 0 : _ref$width,\n _ref$height = _ref.height,\n height = _ref$height === void 0 ? 0 : _ref$height,\n className = _ref.className,\n rest = _objectWithoutProperties(_ref, _excluded);\n var props = _objectSpread({\n x: x,\n y: y,\n top: top,\n left: left,\n width: width,\n height: height\n }, rest);\n if (!isNumber(x) || !isNumber(y) || !isNumber(width) || !isNumber(height) || !isNumber(top) || !isNumber(left)) {\n return null;\n }\n return /*#__PURE__*/React.createElement(\"path\", _extends({}, filterProps(props, true), {\n className: clsx('recharts-cross', className),\n d: getPath(x, y, width, height, top, left)\n }));\n};","export function getCursorRectangle(layout, activeCoordinate, offset, tooltipAxisBandSize) {\n var halfSize = tooltipAxisBandSize / 2;\n return {\n stroke: 'none',\n fill: '#ccc',\n x: layout === 'horizontal' ? activeCoordinate.x - halfSize : offset.left + 0.5,\n y: layout === 'horizontal' ? offset.top + 0.5 : activeCoordinate.y - halfSize,\n width: layout === 'horizontal' ? tooltipAxisBandSize : offset.width - 1,\n height: layout === 'horizontal' ? offset.height - 1 : tooltipAxisBandSize\n };\n}","import { polarToCartesian } from '../PolarUtils';\n/**\n * Only applicable for radial layouts\n * @param {Object} activeCoordinate ChartCoordinate\n * @returns {Object} RadialCursorPoints\n */\nexport function getRadialCursorPoints(activeCoordinate) {\n var cx = activeCoordinate.cx,\n cy = activeCoordinate.cy,\n radius = activeCoordinate.radius,\n startAngle = activeCoordinate.startAngle,\n endAngle = activeCoordinate.endAngle;\n var startPoint = polarToCartesian(cx, cy, radius, startAngle);\n var endPoint = polarToCartesian(cx, cy, radius, endAngle);\n return {\n points: [startPoint, endPoint],\n cx: cx,\n cy: cy,\n radius: radius,\n startAngle: startAngle,\n endAngle: endAngle\n };\n}","import { polarToCartesian } from '../PolarUtils';\nimport { getRadialCursorPoints } from './getRadialCursorPoints';\nexport function getCursorPoints(layout, activeCoordinate, offset) {\n var x1, y1, x2, y2;\n if (layout === 'horizontal') {\n x1 = activeCoordinate.x;\n x2 = x1;\n y1 = offset.top;\n y2 = offset.top + offset.height;\n } else if (layout === 'vertical') {\n y1 = activeCoordinate.y;\n y2 = y1;\n x1 = offset.left;\n x2 = offset.left + offset.width;\n } else if (activeCoordinate.cx != null && activeCoordinate.cy != null) {\n if (layout === 'centric') {\n var cx = activeCoordinate.cx,\n cy = activeCoordinate.cy,\n innerRadius = activeCoordinate.innerRadius,\n outerRadius = activeCoordinate.outerRadius,\n angle = activeCoordinate.angle;\n var innerPoint = polarToCartesian(cx, cy, innerRadius, angle);\n var outerPoint = polarToCartesian(cx, cy, outerRadius, angle);\n x1 = innerPoint.x;\n y1 = innerPoint.y;\n x2 = outerPoint.x;\n y2 = outerPoint.y;\n } else {\n return getRadialCursorPoints(activeCoordinate);\n }\n }\n return [{\n x: x1,\n y: y1\n }, {\n x: x2,\n y: y2\n }];\n}","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : String(i); }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nimport { cloneElement, createElement, isValidElement } from 'react';\nimport clsx from 'clsx';\nimport { Curve } from '../shape/Curve';\nimport { Cross } from '../shape/Cross';\nimport { getCursorRectangle } from '../util/cursor/getCursorRectangle';\nimport { Rectangle } from '../shape/Rectangle';\nimport { getRadialCursorPoints } from '../util/cursor/getRadialCursorPoints';\nimport { Sector } from '../shape/Sector';\nimport { getCursorPoints } from '../util/cursor/getCursorPoints';\nimport { filterProps } from '../util/ReactUtils';\n/*\n * Cursor is the background, or a highlight,\n * that shows when user mouses over or activates\n * an area.\n *\n * It usually shows together with a tooltip\n * to emphasise which part of the chart does the tooltip refer to.\n */\nexport function Cursor(props) {\n var element = props.element,\n tooltipEventType = props.tooltipEventType,\n isActive = props.isActive,\n activeCoordinate = props.activeCoordinate,\n activePayload = props.activePayload,\n offset = props.offset,\n activeTooltipIndex = props.activeTooltipIndex,\n tooltipAxisBandSize = props.tooltipAxisBandSize,\n layout = props.layout,\n chartName = props.chartName;\n if (!element || !element.props.cursor || !isActive || !activeCoordinate || chartName !== 'ScatterChart' && tooltipEventType !== 'axis') {\n return null;\n }\n var restProps;\n var cursorComp = Curve;\n if (chartName === 'ScatterChart') {\n restProps = activeCoordinate;\n cursorComp = Cross;\n } else if (chartName === 'BarChart') {\n restProps = getCursorRectangle(layout, activeCoordinate, offset, tooltipAxisBandSize);\n cursorComp = Rectangle;\n } else if (layout === 'radial') {\n var _getRadialCursorPoint = getRadialCursorPoints(activeCoordinate),\n cx = _getRadialCursorPoint.cx,\n cy = _getRadialCursorPoint.cy,\n radius = _getRadialCursorPoint.radius,\n startAngle = _getRadialCursorPoint.startAngle,\n endAngle = _getRadialCursorPoint.endAngle;\n restProps = {\n cx: cx,\n cy: cy,\n startAngle: startAngle,\n endAngle: endAngle,\n innerRadius: radius,\n outerRadius: radius\n };\n cursorComp = Sector;\n } else {\n restProps = {\n points: getCursorPoints(layout, activeCoordinate, offset)\n };\n cursorComp = Curve;\n }\n var cursorProps = _objectSpread(_objectSpread(_objectSpread(_objectSpread({\n stroke: '#ccc',\n pointerEvents: 'none'\n }, offset), restProps), filterProps(element.props.cursor, false)), {}, {\n payload: activePayload,\n payloadIndex: activeTooltipIndex,\n className: clsx('recharts-tooltip-cursor', element.props.cursor.className)\n });\n return /*#__PURE__*/isValidElement(element.props.cursor) ? /*#__PURE__*/cloneElement(element.props.cursor, cursorProps) : /*#__PURE__*/createElement(cursorComp, cursorProps);\n}","var _excluded = [\"item\"],\n _excluded2 = [\"children\", \"className\", \"width\", \"height\", \"style\", \"compact\", \"title\", \"desc\"];\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _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); }\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nfunction _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; }\nfunction _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; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _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, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }\nfunction _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); }\nfunction _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _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); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : String(i); }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nimport React, { Component, cloneElement, isValidElement } from 'react';\nimport isNil from 'lodash/isNil';\nimport isFunction from 'lodash/isFunction';\nimport range from 'lodash/range';\nimport get from 'lodash/get';\nimport sortBy from 'lodash/sortBy';\nimport throttle from 'lodash/throttle';\nimport clsx from 'clsx';\n// eslint-disable-next-line no-restricted-imports\n\nimport invariant from 'tiny-invariant';\nimport { Surface } from '../container/Surface';\nimport { Layer } from '../container/Layer';\nimport { Tooltip } from '../component/Tooltip';\nimport { Legend } from '../component/Legend';\nimport { Dot } from '../shape/Dot';\nimport { isInRectangle } from '../shape/Rectangle';\nimport { filterProps, findAllByType, findChildByType, getDisplayName, getReactEventByType, isChildrenEqual, parseChildIndex, renderByOrder, validateWidthHeight } from '../util/ReactUtils';\nimport { Brush } from '../cartesian/Brush';\nimport { getOffset } from '../util/DOMUtils';\nimport { findEntryInArray, getAnyElementOfObject, hasDuplicate, isNumber, uniqueId } from '../util/DataUtils';\nimport { appendOffsetOfLegend, calculateActiveTickIndex, combineEventHandlers, getBandSizeOfAxis, getBarPosition, getBarSizeList, getDomainOfDataByKey, getDomainOfItemsWithSameAxis, getDomainOfStackGroups, getLegendProps, getMainColorOfGraphicItem, getStackedDataOfItem, getStackGroupsByAxisId, getTicksOfAxis, getTooltipItem, isCategoricalAxis, parseDomainOfCategoryAxis, parseErrorBarsOfAxis, parseSpecifiedDomain } from '../util/ChartUtils';\nimport { detectReferenceElementsDomain } from '../util/DetectReferenceElementsDomain';\nimport { inRangeOfSector, polarToCartesian } from '../util/PolarUtils';\nimport { shallowEqual } from '../util/ShallowEqual';\nimport { eventCenter, SYNC_EVENT } from '../util/Events';\nimport { adaptEventHandlers } from '../util/types';\nimport { AccessibilityManager } from './AccessibilityManager';\nimport { isDomainSpecifiedByUser } from '../util/isDomainSpecifiedByUser';\nimport { getActiveShapeIndexForTooltip, isFunnel, isPie, isScatter } from '../util/ActiveShapeUtils';\nimport { Cursor } from '../component/Cursor';\nimport { ChartLayoutContextProvider } from '../context/chartLayoutContext';\nvar ORIENT_MAP = {\n xAxis: ['bottom', 'top'],\n yAxis: ['left', 'right']\n};\nvar FULL_WIDTH_AND_HEIGHT = {\n width: '100%',\n height: '100%'\n};\nvar originCoordinate = {\n x: 0,\n y: 0\n};\n\n/**\n * This function exists as a temporary workaround.\n *\n * Why? generateCategoricalChart does not render `{children}` directly;\n * instead it passes them through `renderByOrder` function which reads their handlers.\n *\n * So, this is a handler that does nothing.\n * Once we get rid of `renderByOrder` and switch to JSX only, we can get rid of this handler too.\n *\n * @param {JSX} element as is in JSX\n * @returns {JSX} the same element\n */\nfunction renderAsIs(element) {\n return element;\n}\nvar calculateTooltipPos = function calculateTooltipPos(rangeObj, layout) {\n if (layout === 'horizontal') {\n return rangeObj.x;\n }\n if (layout === 'vertical') {\n return rangeObj.y;\n }\n if (layout === 'centric') {\n return rangeObj.angle;\n }\n return rangeObj.radius;\n};\nvar getActiveCoordinate = function getActiveCoordinate(layout, tooltipTicks, activeIndex, rangeObj) {\n var entry = tooltipTicks.find(function (tick) {\n return tick && tick.index === activeIndex;\n });\n if (entry) {\n if (layout === 'horizontal') {\n return {\n x: entry.coordinate,\n y: rangeObj.y\n };\n }\n if (layout === 'vertical') {\n return {\n x: rangeObj.x,\n y: entry.coordinate\n };\n }\n if (layout === 'centric') {\n var _angle = entry.coordinate;\n var _radius = rangeObj.radius;\n return _objectSpread(_objectSpread(_objectSpread({}, rangeObj), polarToCartesian(rangeObj.cx, rangeObj.cy, _radius, _angle)), {}, {\n angle: _angle,\n radius: _radius\n });\n }\n var radius = entry.coordinate;\n var angle = rangeObj.angle;\n return _objectSpread(_objectSpread(_objectSpread({}, rangeObj), polarToCartesian(rangeObj.cx, rangeObj.cy, radius, angle)), {}, {\n angle: angle,\n radius: radius\n });\n }\n return originCoordinate;\n};\nvar getDisplayedData = function getDisplayedData(data, _ref) {\n var graphicalItems = _ref.graphicalItems,\n dataStartIndex = _ref.dataStartIndex,\n dataEndIndex = _ref.dataEndIndex;\n var itemsData = (graphicalItems !== null && graphicalItems !== void 0 ? graphicalItems : []).reduce(function (result, child) {\n var itemData = child.props.data;\n if (itemData && itemData.length) {\n return [].concat(_toConsumableArray(result), _toConsumableArray(itemData));\n }\n return result;\n }, []);\n if (itemsData.length > 0) {\n return itemsData;\n }\n if (data && data.length && isNumber(dataStartIndex) && isNumber(dataEndIndex)) {\n return data.slice(dataStartIndex, dataEndIndex + 1);\n }\n return [];\n};\nfunction getDefaultDomainByAxisType(axisType) {\n return axisType === 'number' ? [0, 'auto'] : undefined;\n}\n\n/**\n * Get the content to be displayed in the tooltip\n * @param {Object} state Current state\n * @param {Array} chartData The data defined in chart\n * @param {Number} activeIndex Active index of data\n * @param {String} activeLabel Active label of data\n * @return {Array} The content of tooltip\n */\nvar getTooltipContent = function getTooltipContent(state, chartData, activeIndex, activeLabel) {\n var graphicalItems = state.graphicalItems,\n tooltipAxis = state.tooltipAxis;\n var displayedData = getDisplayedData(chartData, state);\n if (activeIndex < 0 || !graphicalItems || !graphicalItems.length || activeIndex >= displayedData.length) {\n return null;\n }\n // get data by activeIndex when the axis don't allow duplicated category\n return graphicalItems.reduce(function (result, child) {\n var _child$props$data;\n /**\n * Fixes: https://github.com/recharts/recharts/issues/3669\n * Defaulting to chartData below to fix an edge case where the tooltip does not include data from all charts\n * when a separate dataset is passed to chart prop data and specified on Line/Area/etc prop data\n */\n var data = (_child$props$data = child.props.data) !== null && _child$props$data !== void 0 ? _child$props$data : chartData;\n if (data && state.dataStartIndex + state.dataEndIndex !== 0) {\n data = data.slice(state.dataStartIndex, state.dataEndIndex + 1);\n }\n var payload;\n if (tooltipAxis.dataKey && !tooltipAxis.allowDuplicatedCategory) {\n // graphic child has data props\n var entries = data === undefined ? displayedData : data;\n payload = findEntryInArray(entries, tooltipAxis.dataKey, activeLabel);\n } else {\n payload = data && data[activeIndex] || displayedData[activeIndex];\n }\n if (!payload) {\n return result;\n }\n return [].concat(_toConsumableArray(result), [getTooltipItem(child, payload)]);\n }, []);\n};\n\n/**\n * Returns tooltip data based on a mouse position (as a parameter or in state)\n * @param {Object} state current state\n * @param {Array} chartData the data defined in chart\n * @param {String} layout The layout type of chart\n * @param {Object} rangeObj { x, y } coordinates\n * @return {Object} Tooltip data data\n */\nvar getTooltipData = function getTooltipData(state, chartData, layout, rangeObj) {\n var rangeData = rangeObj || {\n x: state.chartX,\n y: state.chartY\n };\n var pos = calculateTooltipPos(rangeData, layout);\n var ticks = state.orderedTooltipTicks,\n axis = state.tooltipAxis,\n tooltipTicks = state.tooltipTicks;\n var activeIndex = calculateActiveTickIndex(pos, ticks, tooltipTicks, axis);\n if (activeIndex >= 0 && tooltipTicks) {\n var activeLabel = tooltipTicks[activeIndex] && tooltipTicks[activeIndex].value;\n var activePayload = getTooltipContent(state, chartData, activeIndex, activeLabel);\n var activeCoordinate = getActiveCoordinate(layout, ticks, activeIndex, rangeData);\n return {\n activeTooltipIndex: activeIndex,\n activeLabel: activeLabel,\n activePayload: activePayload,\n activeCoordinate: activeCoordinate\n };\n }\n return null;\n};\n\n/**\n * Get the configuration of axis by the options of axis instance\n * @param {Object} props Latest props\n * @param {Array} axes The instance of axes\n * @param {Array} graphicalItems The instances of item\n * @param {String} axisType The type of axis, xAxis - x-axis, yAxis - y-axis\n * @param {String} axisIdKey The unique id of an axis\n * @param {Object} stackGroups The items grouped by axisId and stackId\n * @param {Number} dataStartIndex The start index of the data series when a brush is applied\n * @param {Number} dataEndIndex The end index of the data series when a brush is applied\n * @return {Object} Configuration\n */\nexport var getAxisMapByAxes = function getAxisMapByAxes(props, _ref2) {\n var axes = _ref2.axes,\n graphicalItems = _ref2.graphicalItems,\n axisType = _ref2.axisType,\n axisIdKey = _ref2.axisIdKey,\n stackGroups = _ref2.stackGroups,\n dataStartIndex = _ref2.dataStartIndex,\n dataEndIndex = _ref2.dataEndIndex;\n var layout = props.layout,\n children = props.children,\n stackOffset = props.stackOffset;\n var isCategorical = isCategoricalAxis(layout, axisType);\n\n // Eliminate duplicated axes\n return axes.reduce(function (result, child) {\n var _child$props$domain2;\n var _child$props = child.props,\n type = _child$props.type,\n dataKey = _child$props.dataKey,\n allowDataOverflow = _child$props.allowDataOverflow,\n allowDuplicatedCategory = _child$props.allowDuplicatedCategory,\n scale = _child$props.scale,\n ticks = _child$props.ticks,\n includeHidden = _child$props.includeHidden;\n var axisId = child.props[axisIdKey];\n if (result[axisId]) {\n return result;\n }\n var displayedData = getDisplayedData(props.data, {\n graphicalItems: graphicalItems.filter(function (item) {\n return item.props[axisIdKey] === axisId;\n }),\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex\n });\n var len = displayedData.length;\n var domain, duplicateDomain, categoricalDomain;\n\n /*\n * This is a hack to short-circuit the domain creation here to enhance performance.\n * Usually, the data is used to determine the domain, but when the user specifies\n * a domain upfront (via props), there is no need to calculate the domain start and end,\n * which is very expensive for a larger amount of data.\n * The only thing that would prohibit short-circuiting is when the user doesn't allow data overflow,\n * because the axis is supposed to ignore the specified domain that way.\n */\n if (isDomainSpecifiedByUser(child.props.domain, allowDataOverflow, type)) {\n domain = parseSpecifiedDomain(child.props.domain, null, allowDataOverflow);\n /* The chart can be categorical and have the domain specified in numbers\n * we still need to calculate the categorical domain\n * TODO: refactor this more\n */\n if (isCategorical && (type === 'number' || scale !== 'auto')) {\n categoricalDomain = getDomainOfDataByKey(displayedData, dataKey, 'category');\n }\n }\n\n // if the domain is defaulted we need this for `originalDomain` as well\n var defaultDomain = getDefaultDomainByAxisType(type);\n\n // we didn't create the domain from user's props above, so we need to calculate it\n if (!domain || domain.length === 0) {\n var _child$props$domain;\n var childDomain = (_child$props$domain = child.props.domain) !== null && _child$props$domain !== void 0 ? _child$props$domain : defaultDomain;\n if (dataKey) {\n // has dataKey in \n domain = getDomainOfDataByKey(displayedData, dataKey, type);\n if (type === 'category' && isCategorical) {\n // the field type is category data and this axis is categorical axis\n var duplicate = hasDuplicate(domain);\n if (allowDuplicatedCategory && duplicate) {\n duplicateDomain = domain;\n // When category axis has duplicated text, serial numbers are used to generate scale\n domain = range(0, len);\n } else if (!allowDuplicatedCategory) {\n // remove duplicated category\n domain = parseDomainOfCategoryAxis(childDomain, domain, child).reduce(function (finalDomain, entry) {\n return finalDomain.indexOf(entry) >= 0 ? finalDomain : [].concat(_toConsumableArray(finalDomain), [entry]);\n }, []);\n }\n } else if (type === 'category') {\n // the field type is category data and this axis is numerical axis\n if (!allowDuplicatedCategory) {\n domain = parseDomainOfCategoryAxis(childDomain, domain, child).reduce(function (finalDomain, entry) {\n return finalDomain.indexOf(entry) >= 0 || entry === '' || isNil(entry) ? finalDomain : [].concat(_toConsumableArray(finalDomain), [entry]);\n }, []);\n } else {\n // eliminate undefined or null or empty string\n domain = domain.filter(function (entry) {\n return entry !== '' && !isNil(entry);\n });\n }\n } else if (type === 'number') {\n // the field type is numerical\n var errorBarsDomain = parseErrorBarsOfAxis(displayedData, graphicalItems.filter(function (item) {\n return item.props[axisIdKey] === axisId && (includeHidden || !item.props.hide);\n }), dataKey, axisType, layout);\n if (errorBarsDomain) {\n domain = errorBarsDomain;\n }\n }\n if (isCategorical && (type === 'number' || scale !== 'auto')) {\n categoricalDomain = getDomainOfDataByKey(displayedData, dataKey, 'category');\n }\n } else if (isCategorical) {\n // the axis is a categorical axis\n domain = range(0, len);\n } else if (stackGroups && stackGroups[axisId] && stackGroups[axisId].hasStack && type === 'number') {\n // when stackOffset is 'expand', the domain may be calculated as [0, 1.000000000002]\n domain = stackOffset === 'expand' ? [0, 1] : getDomainOfStackGroups(stackGroups[axisId].stackGroups, dataStartIndex, dataEndIndex);\n } else {\n domain = getDomainOfItemsWithSameAxis(displayedData, graphicalItems.filter(function (item) {\n return item.props[axisIdKey] === axisId && (includeHidden || !item.props.hide);\n }), type, layout, true);\n }\n if (type === 'number') {\n // To detect wether there is any reference lines whose props alwaysShow is true\n domain = detectReferenceElementsDomain(children, domain, axisId, axisType, ticks);\n if (childDomain) {\n domain = parseSpecifiedDomain(childDomain, domain, allowDataOverflow);\n }\n } else if (type === 'category' && childDomain) {\n var axisDomain = childDomain;\n var isDomainValid = domain.every(function (entry) {\n return axisDomain.indexOf(entry) >= 0;\n });\n if (isDomainValid) {\n domain = axisDomain;\n }\n }\n }\n return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, axisId, _objectSpread(_objectSpread({}, child.props), {}, {\n axisType: axisType,\n domain: domain,\n categoricalDomain: categoricalDomain,\n duplicateDomain: duplicateDomain,\n originalDomain: (_child$props$domain2 = child.props.domain) !== null && _child$props$domain2 !== void 0 ? _child$props$domain2 : defaultDomain,\n isCategorical: isCategorical,\n layout: layout\n })));\n }, {});\n};\n\n/**\n * Get the configuration of axis by the options of item,\n * this kind of axis does not display in chart\n * @param {Object} props Latest props\n * @param {Array} graphicalItems The instances of item\n * @param {ReactElement} Axis Axis Component\n * @param {String} axisType The type of axis, xAxis - x-axis, yAxis - y-axis\n * @param {String} axisIdKey The unique id of an axis\n * @param {Object} stackGroups The items grouped by axisId and stackId\n * @param {Number} dataStartIndex The start index of the data series when a brush is applied\n * @param {Number} dataEndIndex The end index of the data series when a brush is applied\n * @return {Object} Configuration\n */\nvar getAxisMapByItems = function getAxisMapByItems(props, _ref3) {\n var graphicalItems = _ref3.graphicalItems,\n Axis = _ref3.Axis,\n axisType = _ref3.axisType,\n axisIdKey = _ref3.axisIdKey,\n stackGroups = _ref3.stackGroups,\n dataStartIndex = _ref3.dataStartIndex,\n dataEndIndex = _ref3.dataEndIndex;\n var layout = props.layout,\n children = props.children;\n var displayedData = getDisplayedData(props.data, {\n graphicalItems: graphicalItems,\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex\n });\n var len = displayedData.length;\n var isCategorical = isCategoricalAxis(layout, axisType);\n var index = -1;\n\n // The default type of x-axis is category axis,\n // The default contents of x-axis is the serial numbers of data\n // The default type of y-axis is number axis\n // The default contents of y-axis is the domain of data\n return graphicalItems.reduce(function (result, child) {\n var axisId = child.props[axisIdKey];\n var originalDomain = getDefaultDomainByAxisType('number');\n if (!result[axisId]) {\n index++;\n var domain;\n if (isCategorical) {\n domain = range(0, len);\n } else if (stackGroups && stackGroups[axisId] && stackGroups[axisId].hasStack) {\n domain = getDomainOfStackGroups(stackGroups[axisId].stackGroups, dataStartIndex, dataEndIndex);\n domain = detectReferenceElementsDomain(children, domain, axisId, axisType);\n } else {\n domain = parseSpecifiedDomain(originalDomain, getDomainOfItemsWithSameAxis(displayedData, graphicalItems.filter(function (item) {\n return item.props[axisIdKey] === axisId && !item.props.hide;\n }), 'number', layout), Axis.defaultProps.allowDataOverflow);\n domain = detectReferenceElementsDomain(children, domain, axisId, axisType);\n }\n return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, axisId, _objectSpread(_objectSpread({\n axisType: axisType\n }, Axis.defaultProps), {}, {\n hide: true,\n orientation: get(ORIENT_MAP, \"\".concat(axisType, \".\").concat(index % 2), null),\n domain: domain,\n originalDomain: originalDomain,\n isCategorical: isCategorical,\n layout: layout\n // specify scale when no Axis\n // scale: isCategorical ? 'band' : 'linear',\n })));\n }\n return result;\n }, {});\n};\n\n/**\n * Get the configuration of all x-axis or y-axis\n * @param {Object} props Latest props\n * @param {String} axisType The type of axis\n * @param {React.ComponentType} [AxisComp] Axis Component\n * @param {Array} graphicalItems The instances of item\n * @param {Object} stackGroups The items grouped by axisId and stackId\n * @param {Number} dataStartIndex The start index of the data series when a brush is applied\n * @param {Number} dataEndIndex The end index of the data series when a brush is applied\n * @return {Object} Configuration\n */\nvar getAxisMap = function getAxisMap(props, _ref4) {\n var _ref4$axisType = _ref4.axisType,\n axisType = _ref4$axisType === void 0 ? 'xAxis' : _ref4$axisType,\n AxisComp = _ref4.AxisComp,\n graphicalItems = _ref4.graphicalItems,\n stackGroups = _ref4.stackGroups,\n dataStartIndex = _ref4.dataStartIndex,\n dataEndIndex = _ref4.dataEndIndex;\n var children = props.children;\n var axisIdKey = \"\".concat(axisType, \"Id\");\n // Get all the instance of Axis\n var axes = findAllByType(children, AxisComp);\n var axisMap = {};\n if (axes && axes.length) {\n axisMap = getAxisMapByAxes(props, {\n axes: axes,\n graphicalItems: graphicalItems,\n axisType: axisType,\n axisIdKey: axisIdKey,\n stackGroups: stackGroups,\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex\n });\n } else if (graphicalItems && graphicalItems.length) {\n axisMap = getAxisMapByItems(props, {\n Axis: AxisComp,\n graphicalItems: graphicalItems,\n axisType: axisType,\n axisIdKey: axisIdKey,\n stackGroups: stackGroups,\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex\n });\n }\n return axisMap;\n};\nvar tooltipTicksGenerator = function tooltipTicksGenerator(axisMap) {\n var axis = getAnyElementOfObject(axisMap);\n var tooltipTicks = getTicksOfAxis(axis, false, true);\n return {\n tooltipTicks: tooltipTicks,\n orderedTooltipTicks: sortBy(tooltipTicks, function (o) {\n return o.coordinate;\n }),\n tooltipAxis: axis,\n tooltipAxisBandSize: getBandSizeOfAxis(axis, tooltipTicks)\n };\n};\n\n/**\n * Returns default, reset state for the categorical chart.\n * @param {Object} props Props object to use when creating the default state\n * @return {Object} Whole new state\n */\nexport var createDefaultState = function createDefaultState(props) {\n var children = props.children,\n defaultShowTooltip = props.defaultShowTooltip;\n var brushItem = findChildByType(children, Brush);\n var startIndex = 0;\n var endIndex = 0;\n if (props.data && props.data.length !== 0) {\n endIndex = props.data.length - 1;\n }\n if (brushItem && brushItem.props) {\n if (brushItem.props.startIndex >= 0) {\n startIndex = brushItem.props.startIndex;\n }\n if (brushItem.props.endIndex >= 0) {\n endIndex = brushItem.props.endIndex;\n }\n }\n return {\n chartX: 0,\n chartY: 0,\n dataStartIndex: startIndex,\n dataEndIndex: endIndex,\n activeTooltipIndex: -1,\n isTooltipActive: Boolean(defaultShowTooltip)\n };\n};\nvar hasGraphicalBarItem = function hasGraphicalBarItem(graphicalItems) {\n if (!graphicalItems || !graphicalItems.length) {\n return false;\n }\n return graphicalItems.some(function (item) {\n var name = getDisplayName(item && item.type);\n return name && name.indexOf('Bar') >= 0;\n });\n};\nvar getAxisNameByLayout = function getAxisNameByLayout(layout) {\n if (layout === 'horizontal') {\n return {\n numericAxisName: 'yAxis',\n cateAxisName: 'xAxis'\n };\n }\n if (layout === 'vertical') {\n return {\n numericAxisName: 'xAxis',\n cateAxisName: 'yAxis'\n };\n }\n if (layout === 'centric') {\n return {\n numericAxisName: 'radiusAxis',\n cateAxisName: 'angleAxis'\n };\n }\n return {\n numericAxisName: 'angleAxis',\n cateAxisName: 'radiusAxis'\n };\n};\n\n/**\n * Calculate the offset of main part in the svg element\n * @param {Object} params.props Latest props\n * @param {Array} params.graphicalItems The instances of item\n * @param {Object} params.xAxisMap The configuration of x-axis\n * @param {Object} params.yAxisMap The configuration of y-axis\n * @param {Object} prevLegendBBox The boundary box of legend\n * @return {Object} The offset of main part in the svg element\n */\nvar calculateOffset = function calculateOffset(_ref5, prevLegendBBox) {\n var props = _ref5.props,\n graphicalItems = _ref5.graphicalItems,\n _ref5$xAxisMap = _ref5.xAxisMap,\n xAxisMap = _ref5$xAxisMap === void 0 ? {} : _ref5$xAxisMap,\n _ref5$yAxisMap = _ref5.yAxisMap,\n yAxisMap = _ref5$yAxisMap === void 0 ? {} : _ref5$yAxisMap;\n var width = props.width,\n height = props.height,\n children = props.children;\n var margin = props.margin || {};\n var brushItem = findChildByType(children, Brush);\n var legendItem = findChildByType(children, Legend);\n var offsetH = Object.keys(yAxisMap).reduce(function (result, id) {\n var entry = yAxisMap[id];\n var orientation = entry.orientation;\n if (!entry.mirror && !entry.hide) {\n return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, orientation, result[orientation] + entry.width));\n }\n return result;\n }, {\n left: margin.left || 0,\n right: margin.right || 0\n });\n var offsetV = Object.keys(xAxisMap).reduce(function (result, id) {\n var entry = xAxisMap[id];\n var orientation = entry.orientation;\n if (!entry.mirror && !entry.hide) {\n return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, orientation, get(result, \"\".concat(orientation)) + entry.height));\n }\n return result;\n }, {\n top: margin.top || 0,\n bottom: margin.bottom || 0\n });\n var offset = _objectSpread(_objectSpread({}, offsetV), offsetH);\n var brushBottom = offset.bottom;\n if (brushItem) {\n offset.bottom += brushItem.props.height || Brush.defaultProps.height;\n }\n if (legendItem && prevLegendBBox) {\n // @ts-expect-error margin is optional in props but required in appendOffsetOfLegend\n offset = appendOffsetOfLegend(offset, graphicalItems, props, prevLegendBBox);\n }\n var offsetWidth = width - offset.left - offset.right;\n var offsetHeight = height - offset.top - offset.bottom;\n return _objectSpread(_objectSpread({\n brushBottom: brushBottom\n }, offset), {}, {\n // never return negative values for height and width\n width: Math.max(offsetWidth, 0),\n height: Math.max(offsetHeight, 0)\n });\n};\n// Determine the size of the axis, used for calculation of relative bar sizes\nvar getCartesianAxisSize = function getCartesianAxisSize(axisObj, axisName) {\n if (axisName === 'xAxis') {\n return axisObj[axisName].width;\n }\n if (axisName === 'yAxis') {\n return axisObj[axisName].height;\n }\n // This is only supported for Bar charts (i.e. charts with cartesian axes), so we should never get here\n return undefined;\n};\nexport var generateCategoricalChart = function generateCategoricalChart(_ref6) {\n var _CategoricalChartWrapper;\n var chartName = _ref6.chartName,\n GraphicalChild = _ref6.GraphicalChild,\n _ref6$defaultTooltipE = _ref6.defaultTooltipEventType,\n defaultTooltipEventType = _ref6$defaultTooltipE === void 0 ? 'axis' : _ref6$defaultTooltipE,\n _ref6$validateTooltip = _ref6.validateTooltipEventTypes,\n validateTooltipEventTypes = _ref6$validateTooltip === void 0 ? ['axis'] : _ref6$validateTooltip,\n axisComponents = _ref6.axisComponents,\n legendContent = _ref6.legendContent,\n formatAxisMap = _ref6.formatAxisMap,\n defaultProps = _ref6.defaultProps;\n var getFormatItems = function getFormatItems(props, currentState) {\n var graphicalItems = currentState.graphicalItems,\n stackGroups = currentState.stackGroups,\n offset = currentState.offset,\n updateId = currentState.updateId,\n dataStartIndex = currentState.dataStartIndex,\n dataEndIndex = currentState.dataEndIndex;\n var barSize = props.barSize,\n layout = props.layout,\n barGap = props.barGap,\n barCategoryGap = props.barCategoryGap,\n globalMaxBarSize = props.maxBarSize;\n var _getAxisNameByLayout = getAxisNameByLayout(layout),\n numericAxisName = _getAxisNameByLayout.numericAxisName,\n cateAxisName = _getAxisNameByLayout.cateAxisName;\n var hasBar = hasGraphicalBarItem(graphicalItems);\n var formattedItems = [];\n graphicalItems.forEach(function (item, index) {\n var displayedData = getDisplayedData(props.data, {\n graphicalItems: [item],\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex\n });\n var _item$props = item.props,\n dataKey = _item$props.dataKey,\n childMaxBarSize = _item$props.maxBarSize;\n // axisId of the numerical axis\n var numericAxisId = item.props[\"\".concat(numericAxisName, \"Id\")];\n // axisId of the categorical axis\n var cateAxisId = item.props[\"\".concat(cateAxisName, \"Id\")];\n var axisObjInitialValue = {};\n var axisObj = axisComponents.reduce(function (result, entry) {\n var _item$type$displayNam, _item$type;\n // map of axisId to axis for a specific axis type\n var axisMap = currentState[\"\".concat(entry.axisType, \"Map\")];\n // axisId of axis we are currently computing\n var id = item.props[\"\".concat(entry.axisType, \"Id\")];\n\n /**\n * tell the user in dev mode that their configuration is incorrect if we cannot find a match between\n * axisId on the chart and axisId on the axis. zAxis does not get passed in the map for ComposedChart,\n * leave it out of the check for now.\n */\n !(axisMap && axisMap[id] || entry.axisType === 'zAxis') ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Specifying a(n) \".concat(entry.axisType, \"Id requires a corresponding \").concat(entry.axisType\n // @ts-expect-error we should stop reading data from ReactElements\n , \"Id on the targeted graphical component \").concat((_item$type$displayNam = item === null || item === void 0 || (_item$type = item.type) === null || _item$type === void 0 ? void 0 : _item$type.displayName) !== null && _item$type$displayNam !== void 0 ? _item$type$displayNam : '')) : invariant(false) : void 0;\n\n // the axis we are currently formatting\n var axis = axisMap[id];\n return _objectSpread(_objectSpread({}, result), {}, _defineProperty(_defineProperty({}, entry.axisType, axis), \"\".concat(entry.axisType, \"Ticks\"), getTicksOfAxis(axis)));\n }, axisObjInitialValue);\n var cateAxis = axisObj[cateAxisName];\n var cateTicks = axisObj[\"\".concat(cateAxisName, \"Ticks\")];\n var stackedData = stackGroups && stackGroups[numericAxisId] && stackGroups[numericAxisId].hasStack && getStackedDataOfItem(item, stackGroups[numericAxisId].stackGroups);\n var itemIsBar = getDisplayName(item.type).indexOf('Bar') >= 0;\n var bandSize = getBandSizeOfAxis(cateAxis, cateTicks);\n var barPosition = [];\n var sizeList = hasBar && getBarSizeList({\n barSize: barSize,\n stackGroups: stackGroups,\n totalSize: getCartesianAxisSize(axisObj, cateAxisName)\n });\n if (itemIsBar) {\n var _ref7, _getBandSizeOfAxis;\n // If it is bar, calculate the position of bar\n var maxBarSize = isNil(childMaxBarSize) ? globalMaxBarSize : childMaxBarSize;\n var barBandSize = (_ref7 = (_getBandSizeOfAxis = getBandSizeOfAxis(cateAxis, cateTicks, true)) !== null && _getBandSizeOfAxis !== void 0 ? _getBandSizeOfAxis : maxBarSize) !== null && _ref7 !== void 0 ? _ref7 : 0;\n barPosition = getBarPosition({\n barGap: barGap,\n barCategoryGap: barCategoryGap,\n bandSize: barBandSize !== bandSize ? barBandSize : bandSize,\n sizeList: sizeList[cateAxisId],\n maxBarSize: maxBarSize\n });\n if (barBandSize !== bandSize) {\n barPosition = barPosition.map(function (pos) {\n return _objectSpread(_objectSpread({}, pos), {}, {\n position: _objectSpread(_objectSpread({}, pos.position), {}, {\n offset: pos.position.offset - barBandSize / 2\n })\n });\n });\n }\n }\n // @ts-expect-error we should stop reading data from ReactElements\n var composedFn = item && item.type && item.type.getComposedData;\n if (composedFn) {\n formattedItems.push({\n props: _objectSpread(_objectSpread({}, composedFn(_objectSpread(_objectSpread({}, axisObj), {}, {\n displayedData: displayedData,\n props: props,\n dataKey: dataKey,\n item: item,\n bandSize: bandSize,\n barPosition: barPosition,\n offset: offset,\n stackedData: stackedData,\n layout: layout,\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex\n }))), {}, _defineProperty(_defineProperty(_defineProperty({\n key: item.key || \"item-\".concat(index)\n }, numericAxisName, axisObj[numericAxisName]), cateAxisName, axisObj[cateAxisName]), \"animationId\", updateId)),\n childIndex: parseChildIndex(item, props.children),\n item: item\n });\n }\n });\n return formattedItems;\n };\n\n /**\n * The AxisMaps are expensive to render on large data sets\n * so provide the ability to store them in state and only update them when necessary\n * they are dependent upon the start and end index of\n * the brush so it's important that this method is called _after_\n * the state is updated with any new start/end indices\n *\n * @param {Object} props The props object to be used for updating the axismaps\n * dataStartIndex: The start index of the data series when a brush is applied\n * dataEndIndex: The end index of the data series when a brush is applied\n * updateId: The update id\n * @param {Object} prevState Prev state\n * @return {Object} state New state to set\n */\n var updateStateOfAxisMapsOffsetAndStackGroups = function updateStateOfAxisMapsOffsetAndStackGroups(_ref8, prevState) {\n var props = _ref8.props,\n dataStartIndex = _ref8.dataStartIndex,\n dataEndIndex = _ref8.dataEndIndex,\n updateId = _ref8.updateId;\n if (!validateWidthHeight({\n props: props\n })) {\n return null;\n }\n var children = props.children,\n layout = props.layout,\n stackOffset = props.stackOffset,\n data = props.data,\n reverseStackOrder = props.reverseStackOrder;\n var _getAxisNameByLayout2 = getAxisNameByLayout(layout),\n numericAxisName = _getAxisNameByLayout2.numericAxisName,\n cateAxisName = _getAxisNameByLayout2.cateAxisName;\n var graphicalItems = findAllByType(children, GraphicalChild);\n var stackGroups = getStackGroupsByAxisId(data, graphicalItems, \"\".concat(numericAxisName, \"Id\"), \"\".concat(cateAxisName, \"Id\"), stackOffset, reverseStackOrder);\n var axisObj = axisComponents.reduce(function (result, entry) {\n var name = \"\".concat(entry.axisType, \"Map\");\n return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, name, getAxisMap(props, _objectSpread(_objectSpread({}, entry), {}, {\n graphicalItems: graphicalItems,\n stackGroups: entry.axisType === numericAxisName && stackGroups,\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex\n }))));\n }, {});\n var offset = calculateOffset(_objectSpread(_objectSpread({}, axisObj), {}, {\n props: props,\n graphicalItems: graphicalItems\n }), prevState === null || prevState === void 0 ? void 0 : prevState.legendBBox);\n Object.keys(axisObj).forEach(function (key) {\n axisObj[key] = formatAxisMap(props, axisObj[key], offset, key.replace('Map', ''), chartName);\n });\n var cateAxisMap = axisObj[\"\".concat(cateAxisName, \"Map\")];\n var ticksObj = tooltipTicksGenerator(cateAxisMap);\n var formattedGraphicalItems = getFormatItems(props, _objectSpread(_objectSpread({}, axisObj), {}, {\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex,\n updateId: updateId,\n graphicalItems: graphicalItems,\n stackGroups: stackGroups,\n offset: offset\n }));\n return _objectSpread(_objectSpread({\n formattedGraphicalItems: formattedGraphicalItems,\n graphicalItems: graphicalItems,\n offset: offset,\n stackGroups: stackGroups\n }, ticksObj), axisObj);\n };\n return _CategoricalChartWrapper = /*#__PURE__*/function (_Component) {\n _inherits(CategoricalChartWrapper, _Component);\n function CategoricalChartWrapper(_props) {\n var _props$id, _props$throttleDelay;\n var _this;\n _classCallCheck(this, CategoricalChartWrapper);\n _this = _callSuper(this, CategoricalChartWrapper, [_props]);\n _defineProperty(_assertThisInitialized(_this), \"eventEmitterSymbol\", Symbol('rechartsEventEmitter'));\n _defineProperty(_assertThisInitialized(_this), \"accessibilityManager\", new AccessibilityManager());\n _defineProperty(_assertThisInitialized(_this), \"handleLegendBBoxUpdate\", function (box) {\n if (box) {\n var _this$state = _this.state,\n dataStartIndex = _this$state.dataStartIndex,\n dataEndIndex = _this$state.dataEndIndex,\n updateId = _this$state.updateId;\n _this.setState(_objectSpread({\n legendBBox: box\n }, updateStateOfAxisMapsOffsetAndStackGroups({\n props: _this.props,\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex,\n updateId: updateId\n }, _objectSpread(_objectSpread({}, _this.state), {}, {\n legendBBox: box\n }))));\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"handleReceiveSyncEvent\", function (cId, data, emitter) {\n if (_this.props.syncId === cId) {\n if (emitter === _this.eventEmitterSymbol && typeof _this.props.syncMethod !== 'function') {\n return;\n }\n _this.applySyncEvent(data);\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"handleBrushChange\", function (_ref9) {\n var startIndex = _ref9.startIndex,\n endIndex = _ref9.endIndex;\n // Only trigger changes if the extents of the brush have actually changed\n if (startIndex !== _this.state.dataStartIndex || endIndex !== _this.state.dataEndIndex) {\n var updateId = _this.state.updateId;\n _this.setState(function () {\n return _objectSpread({\n dataStartIndex: startIndex,\n dataEndIndex: endIndex\n }, updateStateOfAxisMapsOffsetAndStackGroups({\n props: _this.props,\n dataStartIndex: startIndex,\n dataEndIndex: endIndex,\n updateId: updateId\n }, _this.state));\n });\n _this.triggerSyncEvent({\n dataStartIndex: startIndex,\n dataEndIndex: endIndex\n });\n }\n });\n /**\n * The handler of mouse entering chart\n * @param {Object} e Event object\n * @return {Null} null\n */\n _defineProperty(_assertThisInitialized(_this), \"handleMouseEnter\", function (e) {\n var mouse = _this.getMouseInfo(e);\n if (mouse) {\n var _nextState = _objectSpread(_objectSpread({}, mouse), {}, {\n isTooltipActive: true\n });\n _this.setState(_nextState);\n _this.triggerSyncEvent(_nextState);\n var onMouseEnter = _this.props.onMouseEnter;\n if (isFunction(onMouseEnter)) {\n onMouseEnter(_nextState, e);\n }\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"triggeredAfterMouseMove\", function (e) {\n var mouse = _this.getMouseInfo(e);\n var nextState = mouse ? _objectSpread(_objectSpread({}, mouse), {}, {\n isTooltipActive: true\n }) : {\n isTooltipActive: false\n };\n _this.setState(nextState);\n _this.triggerSyncEvent(nextState);\n var onMouseMove = _this.props.onMouseMove;\n if (isFunction(onMouseMove)) {\n onMouseMove(nextState, e);\n }\n });\n /**\n * The handler of mouse entering a scatter\n * @param {Object} el The active scatter\n * @return {Object} no return\n */\n _defineProperty(_assertThisInitialized(_this), \"handleItemMouseEnter\", function (el) {\n _this.setState(function () {\n return {\n isTooltipActive: true,\n activeItem: el,\n activePayload: el.tooltipPayload,\n activeCoordinate: el.tooltipPosition || {\n x: el.cx,\n y: el.cy\n }\n };\n });\n });\n /**\n * The handler of mouse leaving a scatter\n * @return {Object} no return\n */\n _defineProperty(_assertThisInitialized(_this), \"handleItemMouseLeave\", function () {\n _this.setState(function () {\n return {\n isTooltipActive: false\n };\n });\n });\n /**\n * The handler of mouse moving in chart\n * @param {React.MouseEvent} e Event object\n * @return {void} no return\n */\n _defineProperty(_assertThisInitialized(_this), \"handleMouseMove\", function (e) {\n e.persist();\n _this.throttleTriggeredAfterMouseMove(e);\n });\n /**\n * The handler if mouse leaving chart\n * @param {Object} e Event object\n * @return {Null} no return\n */\n _defineProperty(_assertThisInitialized(_this), \"handleMouseLeave\", function (e) {\n _this.throttleTriggeredAfterMouseMove.cancel();\n var nextState = {\n isTooltipActive: false\n };\n _this.setState(nextState);\n _this.triggerSyncEvent(nextState);\n var onMouseLeave = _this.props.onMouseLeave;\n if (isFunction(onMouseLeave)) {\n onMouseLeave(nextState, e);\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"handleOuterEvent\", function (e) {\n var eventName = getReactEventByType(e);\n var event = get(_this.props, \"\".concat(eventName));\n if (eventName && isFunction(event)) {\n var _mouse;\n var mouse;\n if (/.*touch.*/i.test(eventName)) {\n mouse = _this.getMouseInfo(e.changedTouches[0]);\n } else {\n mouse = _this.getMouseInfo(e);\n }\n event((_mouse = mouse) !== null && _mouse !== void 0 ? _mouse : {}, e);\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"handleClick\", function (e) {\n var mouse = _this.getMouseInfo(e);\n if (mouse) {\n var _nextState2 = _objectSpread(_objectSpread({}, mouse), {}, {\n isTooltipActive: true\n });\n _this.setState(_nextState2);\n _this.triggerSyncEvent(_nextState2);\n var onClick = _this.props.onClick;\n if (isFunction(onClick)) {\n onClick(_nextState2, e);\n }\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"handleMouseDown\", function (e) {\n var onMouseDown = _this.props.onMouseDown;\n if (isFunction(onMouseDown)) {\n var _nextState3 = _this.getMouseInfo(e);\n onMouseDown(_nextState3, e);\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"handleMouseUp\", function (e) {\n var onMouseUp = _this.props.onMouseUp;\n if (isFunction(onMouseUp)) {\n var _nextState4 = _this.getMouseInfo(e);\n onMouseUp(_nextState4, e);\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"handleTouchMove\", function (e) {\n if (e.changedTouches != null && e.changedTouches.length > 0) {\n _this.throttleTriggeredAfterMouseMove(e.changedTouches[0]);\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"handleTouchStart\", function (e) {\n if (e.changedTouches != null && e.changedTouches.length > 0) {\n _this.handleMouseDown(e.changedTouches[0]);\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"handleTouchEnd\", function (e) {\n if (e.changedTouches != null && e.changedTouches.length > 0) {\n _this.handleMouseUp(e.changedTouches[0]);\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"triggerSyncEvent\", function (data) {\n if (_this.props.syncId !== undefined) {\n eventCenter.emit(SYNC_EVENT, _this.props.syncId, data, _this.eventEmitterSymbol);\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"applySyncEvent\", function (data) {\n var _this$props = _this.props,\n layout = _this$props.layout,\n syncMethod = _this$props.syncMethod;\n var updateId = _this.state.updateId;\n var dataStartIndex = data.dataStartIndex,\n dataEndIndex = data.dataEndIndex;\n if (data.dataStartIndex !== undefined || data.dataEndIndex !== undefined) {\n _this.setState(_objectSpread({\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex\n }, updateStateOfAxisMapsOffsetAndStackGroups({\n props: _this.props,\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex,\n updateId: updateId\n }, _this.state)));\n } else if (data.activeTooltipIndex !== undefined) {\n var chartX = data.chartX,\n chartY = data.chartY;\n var activeTooltipIndex = data.activeTooltipIndex;\n var _this$state2 = _this.state,\n offset = _this$state2.offset,\n tooltipTicks = _this$state2.tooltipTicks;\n if (!offset) {\n return;\n }\n if (typeof syncMethod === 'function') {\n // Call a callback function. If there is an application specific algorithm\n activeTooltipIndex = syncMethod(tooltipTicks, data);\n } else if (syncMethod === 'value') {\n // Set activeTooltipIndex to the index with the same value as data.activeLabel\n // For loop instead of findIndex because the latter is very slow in some browsers\n activeTooltipIndex = -1; // in case we cannot find the element\n for (var i = 0; i < tooltipTicks.length; i++) {\n if (tooltipTicks[i].value === data.activeLabel) {\n activeTooltipIndex = i;\n break;\n }\n }\n }\n var viewBox = _objectSpread(_objectSpread({}, offset), {}, {\n x: offset.left,\n y: offset.top\n });\n // When a categorical chart is combined with another chart, the value of chartX\n // and chartY may beyond the boundaries.\n var validateChartX = Math.min(chartX, viewBox.x + viewBox.width);\n var validateChartY = Math.min(chartY, viewBox.y + viewBox.height);\n var activeLabel = tooltipTicks[activeTooltipIndex] && tooltipTicks[activeTooltipIndex].value;\n var activePayload = getTooltipContent(_this.state, _this.props.data, activeTooltipIndex);\n var activeCoordinate = tooltipTicks[activeTooltipIndex] ? {\n x: layout === 'horizontal' ? tooltipTicks[activeTooltipIndex].coordinate : validateChartX,\n y: layout === 'horizontal' ? validateChartY : tooltipTicks[activeTooltipIndex].coordinate\n } : originCoordinate;\n _this.setState(_objectSpread(_objectSpread({}, data), {}, {\n activeLabel: activeLabel,\n activeCoordinate: activeCoordinate,\n activePayload: activePayload,\n activeTooltipIndex: activeTooltipIndex\n }));\n } else {\n _this.setState(data);\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"renderCursor\", function (element) {\n var _element$props$active;\n var _this$state3 = _this.state,\n isTooltipActive = _this$state3.isTooltipActive,\n activeCoordinate = _this$state3.activeCoordinate,\n activePayload = _this$state3.activePayload,\n offset = _this$state3.offset,\n activeTooltipIndex = _this$state3.activeTooltipIndex,\n tooltipAxisBandSize = _this$state3.tooltipAxisBandSize;\n var tooltipEventType = _this.getTooltipEventType();\n // The cursor is a part of the Tooltip, and it should be shown (by default) when the Tooltip is active.\n var isActive = (_element$props$active = element.props.active) !== null && _element$props$active !== void 0 ? _element$props$active : isTooltipActive;\n var layout = _this.props.layout;\n var key = element.key || '_recharts-cursor';\n return /*#__PURE__*/React.createElement(Cursor, {\n key: key,\n activeCoordinate: activeCoordinate,\n activePayload: activePayload,\n activeTooltipIndex: activeTooltipIndex,\n chartName: chartName,\n element: element,\n isActive: isActive,\n layout: layout,\n offset: offset,\n tooltipAxisBandSize: tooltipAxisBandSize,\n tooltipEventType: tooltipEventType\n });\n });\n _defineProperty(_assertThisInitialized(_this), \"renderPolarAxis\", function (element, displayName, index) {\n var axisType = get(element, 'type.axisType');\n var axisMap = get(_this.state, \"\".concat(axisType, \"Map\"));\n var axisOption = axisMap && axisMap[element.props[\"\".concat(axisType, \"Id\")]];\n return /*#__PURE__*/cloneElement(element, _objectSpread(_objectSpread({}, axisOption), {}, {\n className: clsx(axisType, axisOption.className),\n key: element.key || \"\".concat(displayName, \"-\").concat(index),\n ticks: getTicksOfAxis(axisOption, true)\n }));\n });\n _defineProperty(_assertThisInitialized(_this), \"renderPolarGrid\", function (element) {\n var _element$props = element.props,\n radialLines = _element$props.radialLines,\n polarAngles = _element$props.polarAngles,\n polarRadius = _element$props.polarRadius;\n var _this$state4 = _this.state,\n radiusAxisMap = _this$state4.radiusAxisMap,\n angleAxisMap = _this$state4.angleAxisMap;\n var radiusAxis = getAnyElementOfObject(radiusAxisMap);\n var angleAxis = getAnyElementOfObject(angleAxisMap);\n var cx = angleAxis.cx,\n cy = angleAxis.cy,\n innerRadius = angleAxis.innerRadius,\n outerRadius = angleAxis.outerRadius;\n return /*#__PURE__*/cloneElement(element, {\n polarAngles: Array.isArray(polarAngles) ? polarAngles : getTicksOfAxis(angleAxis, true).map(function (entry) {\n return entry.coordinate;\n }),\n polarRadius: Array.isArray(polarRadius) ? polarRadius : getTicksOfAxis(radiusAxis, true).map(function (entry) {\n return entry.coordinate;\n }),\n cx: cx,\n cy: cy,\n innerRadius: innerRadius,\n outerRadius: outerRadius,\n key: element.key || 'polar-grid',\n radialLines: radialLines\n });\n });\n /**\n * Draw legend\n * @return {ReactElement} The instance of Legend\n */\n _defineProperty(_assertThisInitialized(_this), \"renderLegend\", function () {\n var formattedGraphicalItems = _this.state.formattedGraphicalItems;\n var _this$props2 = _this.props,\n children = _this$props2.children,\n width = _this$props2.width,\n height = _this$props2.height;\n var margin = _this.props.margin || {};\n var legendWidth = width - (margin.left || 0) - (margin.right || 0);\n var props = getLegendProps({\n children: children,\n formattedGraphicalItems: formattedGraphicalItems,\n legendWidth: legendWidth,\n legendContent: legendContent\n });\n if (!props) {\n return null;\n }\n var item = props.item,\n otherProps = _objectWithoutProperties(props, _excluded);\n return /*#__PURE__*/cloneElement(item, _objectSpread(_objectSpread({}, otherProps), {}, {\n chartWidth: width,\n chartHeight: height,\n margin: margin,\n onBBoxUpdate: _this.handleLegendBBoxUpdate\n }));\n });\n /**\n * Draw Tooltip\n * @return {ReactElement} The instance of Tooltip\n */\n _defineProperty(_assertThisInitialized(_this), \"renderTooltip\", function () {\n var _tooltipItem$props$ac;\n var _this$props3 = _this.props,\n children = _this$props3.children,\n accessibilityLayer = _this$props3.accessibilityLayer;\n var tooltipItem = findChildByType(children, Tooltip);\n if (!tooltipItem) {\n return null;\n }\n var _this$state5 = _this.state,\n isTooltipActive = _this$state5.isTooltipActive,\n activeCoordinate = _this$state5.activeCoordinate,\n activePayload = _this$state5.activePayload,\n activeLabel = _this$state5.activeLabel,\n offset = _this$state5.offset;\n\n // The user can set isActive on the Tooltip,\n // and we respect the user to enable customisation.\n // The Tooltip is active if the user has set isActive, or if the tooltip is active due to a mouse event.\n var isActive = (_tooltipItem$props$ac = tooltipItem.props.active) !== null && _tooltipItem$props$ac !== void 0 ? _tooltipItem$props$ac : isTooltipActive;\n return /*#__PURE__*/cloneElement(tooltipItem, {\n viewBox: _objectSpread(_objectSpread({}, offset), {}, {\n x: offset.left,\n y: offset.top\n }),\n active: isActive,\n label: activeLabel,\n payload: isActive ? activePayload : [],\n coordinate: activeCoordinate,\n accessibilityLayer: accessibilityLayer\n });\n });\n _defineProperty(_assertThisInitialized(_this), \"renderBrush\", function (element) {\n var _this$props4 = _this.props,\n margin = _this$props4.margin,\n data = _this$props4.data;\n var _this$state6 = _this.state,\n offset = _this$state6.offset,\n dataStartIndex = _this$state6.dataStartIndex,\n dataEndIndex = _this$state6.dataEndIndex,\n updateId = _this$state6.updateId;\n\n // TODO: update brush when children update\n return /*#__PURE__*/cloneElement(element, {\n key: element.key || '_recharts-brush',\n onChange: combineEventHandlers(_this.handleBrushChange, element.props.onChange),\n data: data,\n x: isNumber(element.props.x) ? element.props.x : offset.left,\n y: isNumber(element.props.y) ? element.props.y : offset.top + offset.height + offset.brushBottom - (margin.bottom || 0),\n width: isNumber(element.props.width) ? element.props.width : offset.width,\n startIndex: dataStartIndex,\n endIndex: dataEndIndex,\n updateId: \"brush-\".concat(updateId)\n });\n });\n _defineProperty(_assertThisInitialized(_this), \"renderReferenceElement\", function (element, displayName, index) {\n if (!element) {\n return null;\n }\n var _assertThisInitialize = _assertThisInitialized(_this),\n clipPathId = _assertThisInitialize.clipPathId;\n var _this$state7 = _this.state,\n xAxisMap = _this$state7.xAxisMap,\n yAxisMap = _this$state7.yAxisMap,\n offset = _this$state7.offset;\n var _element$props2 = element.props,\n xAxisId = _element$props2.xAxisId,\n yAxisId = _element$props2.yAxisId;\n return /*#__PURE__*/cloneElement(element, {\n key: element.key || \"\".concat(displayName, \"-\").concat(index),\n xAxis: xAxisMap[xAxisId],\n yAxis: yAxisMap[yAxisId],\n viewBox: {\n x: offset.left,\n y: offset.top,\n width: offset.width,\n height: offset.height\n },\n clipPathId: clipPathId\n });\n });\n _defineProperty(_assertThisInitialized(_this), \"renderActivePoints\", function (_ref10) {\n var item = _ref10.item,\n activePoint = _ref10.activePoint,\n basePoint = _ref10.basePoint,\n childIndex = _ref10.childIndex,\n isRange = _ref10.isRange;\n var result = [];\n var key = item.props.key;\n var _item$item$props = item.item.props,\n activeDot = _item$item$props.activeDot,\n dataKey = _item$item$props.dataKey;\n var dotProps = _objectSpread(_objectSpread({\n index: childIndex,\n dataKey: dataKey,\n cx: activePoint.x,\n cy: activePoint.y,\n r: 4,\n fill: getMainColorOfGraphicItem(item.item),\n strokeWidth: 2,\n stroke: '#fff',\n payload: activePoint.payload,\n value: activePoint.value,\n key: \"\".concat(key, \"-activePoint-\").concat(childIndex)\n }, filterProps(activeDot, false)), adaptEventHandlers(activeDot));\n result.push(CategoricalChartWrapper.renderActiveDot(activeDot, dotProps));\n if (basePoint) {\n result.push(CategoricalChartWrapper.renderActiveDot(activeDot, _objectSpread(_objectSpread({}, dotProps), {}, {\n cx: basePoint.x,\n cy: basePoint.y,\n key: \"\".concat(key, \"-basePoint-\").concat(childIndex)\n })));\n } else if (isRange) {\n result.push(null);\n }\n return result;\n });\n _defineProperty(_assertThisInitialized(_this), \"renderGraphicChild\", function (element, displayName, index) {\n var item = _this.filterFormatItem(element, displayName, index);\n if (!item) {\n return null;\n }\n var tooltipEventType = _this.getTooltipEventType();\n var _this$state8 = _this.state,\n isTooltipActive = _this$state8.isTooltipActive,\n tooltipAxis = _this$state8.tooltipAxis,\n activeTooltipIndex = _this$state8.activeTooltipIndex,\n activeLabel = _this$state8.activeLabel;\n var children = _this.props.children;\n var tooltipItem = findChildByType(children, Tooltip);\n var _item$props2 = item.props,\n points = _item$props2.points,\n isRange = _item$props2.isRange,\n baseLine = _item$props2.baseLine;\n var _item$item$props2 = item.item.props,\n activeDot = _item$item$props2.activeDot,\n hide = _item$item$props2.hide,\n activeBar = _item$item$props2.activeBar,\n activeShape = _item$item$props2.activeShape;\n var hasActive = Boolean(!hide && isTooltipActive && tooltipItem && (activeDot || activeBar || activeShape));\n var itemEvents = {};\n if (tooltipEventType !== 'axis' && tooltipItem && tooltipItem.props.trigger === 'click') {\n itemEvents = {\n onClick: combineEventHandlers(_this.handleItemMouseEnter, element.props.onClick)\n };\n } else if (tooltipEventType !== 'axis') {\n itemEvents = {\n onMouseLeave: combineEventHandlers(_this.handleItemMouseLeave, element.props.onMouseLeave),\n onMouseEnter: combineEventHandlers(_this.handleItemMouseEnter, element.props.onMouseEnter)\n };\n }\n var graphicalItem = /*#__PURE__*/cloneElement(element, _objectSpread(_objectSpread({}, item.props), itemEvents));\n function findWithPayload(entry) {\n // TODO needs to verify dataKey is Function\n return typeof tooltipAxis.dataKey === 'function' ? tooltipAxis.dataKey(entry.payload) : null;\n }\n if (hasActive) {\n if (activeTooltipIndex >= 0) {\n var activePoint, basePoint;\n if (tooltipAxis.dataKey && !tooltipAxis.allowDuplicatedCategory) {\n // number transform to string\n var specifiedKey = typeof tooltipAxis.dataKey === 'function' ? findWithPayload : 'payload.'.concat(tooltipAxis.dataKey.toString());\n activePoint = findEntryInArray(points, specifiedKey, activeLabel);\n basePoint = isRange && baseLine && findEntryInArray(baseLine, specifiedKey, activeLabel);\n } else {\n activePoint = points === null || points === void 0 ? void 0 : points[activeTooltipIndex];\n basePoint = isRange && baseLine && baseLine[activeTooltipIndex];\n }\n if (activeShape || activeBar) {\n var activeIndex = element.props.activeIndex !== undefined ? element.props.activeIndex : activeTooltipIndex;\n return [/*#__PURE__*/cloneElement(element, _objectSpread(_objectSpread(_objectSpread({}, item.props), itemEvents), {}, {\n activeIndex: activeIndex\n })), null, null];\n }\n if (!isNil(activePoint)) {\n return [graphicalItem].concat(_toConsumableArray(_this.renderActivePoints({\n item: item,\n activePoint: activePoint,\n basePoint: basePoint,\n childIndex: activeTooltipIndex,\n isRange: isRange\n })));\n }\n } else {\n var _this$getItemByXY;\n /**\n * We hit this block if consumer uses a Tooltip without XAxis and/or YAxis.\n * In which case, this.state.activeTooltipIndex never gets set\n * because the mouse events that trigger that value getting set never get trigged without the axis components.\n *\n * An example usage case is a FunnelChart\n */\n var _ref11 = (_this$getItemByXY = _this.getItemByXY(_this.state.activeCoordinate)) !== null && _this$getItemByXY !== void 0 ? _this$getItemByXY : {\n graphicalItem: graphicalItem\n },\n _ref11$graphicalItem = _ref11.graphicalItem,\n _ref11$graphicalItem$ = _ref11$graphicalItem.item,\n xyItem = _ref11$graphicalItem$ === void 0 ? element : _ref11$graphicalItem$,\n childIndex = _ref11$graphicalItem.childIndex;\n var elementProps = _objectSpread(_objectSpread(_objectSpread({}, item.props), itemEvents), {}, {\n activeIndex: childIndex\n });\n return [/*#__PURE__*/cloneElement(xyItem, elementProps), null, null];\n }\n }\n if (isRange) {\n return [graphicalItem, null, null];\n }\n return [graphicalItem, null];\n });\n _defineProperty(_assertThisInitialized(_this), \"renderCustomized\", function (element, displayName, index) {\n return /*#__PURE__*/cloneElement(element, _objectSpread(_objectSpread({\n key: \"recharts-customized-\".concat(index)\n }, _this.props), _this.state));\n });\n _defineProperty(_assertThisInitialized(_this), \"renderMap\", {\n CartesianGrid: {\n handler: renderAsIs,\n once: true\n },\n ReferenceArea: {\n handler: _this.renderReferenceElement\n },\n ReferenceLine: {\n handler: renderAsIs\n },\n ReferenceDot: {\n handler: _this.renderReferenceElement\n },\n XAxis: {\n handler: renderAsIs\n },\n YAxis: {\n handler: renderAsIs\n },\n Brush: {\n handler: _this.renderBrush,\n once: true\n },\n Bar: {\n handler: _this.renderGraphicChild\n },\n Line: {\n handler: _this.renderGraphicChild\n },\n Area: {\n handler: _this.renderGraphicChild\n },\n Radar: {\n handler: _this.renderGraphicChild\n },\n RadialBar: {\n handler: _this.renderGraphicChild\n },\n Scatter: {\n handler: _this.renderGraphicChild\n },\n Pie: {\n handler: _this.renderGraphicChild\n },\n Funnel: {\n handler: _this.renderGraphicChild\n },\n Tooltip: {\n handler: _this.renderCursor,\n once: true\n },\n PolarGrid: {\n handler: _this.renderPolarGrid,\n once: true\n },\n PolarAngleAxis: {\n handler: _this.renderPolarAxis\n },\n PolarRadiusAxis: {\n handler: _this.renderPolarAxis\n },\n Customized: {\n handler: _this.renderCustomized\n }\n });\n _this.clipPathId = \"\".concat((_props$id = _props.id) !== null && _props$id !== void 0 ? _props$id : uniqueId('recharts'), \"-clip\");\n\n // trigger 60fps\n _this.throttleTriggeredAfterMouseMove = throttle(_this.triggeredAfterMouseMove, (_props$throttleDelay = _props.throttleDelay) !== null && _props$throttleDelay !== void 0 ? _props$throttleDelay : 1000 / 60);\n _this.state = {};\n return _this;\n }\n _createClass(CategoricalChartWrapper, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var _this$props$margin$le, _this$props$margin$to;\n this.addListener();\n this.accessibilityManager.setDetails({\n container: this.container,\n offset: {\n left: (_this$props$margin$le = this.props.margin.left) !== null && _this$props$margin$le !== void 0 ? _this$props$margin$le : 0,\n top: (_this$props$margin$to = this.props.margin.top) !== null && _this$props$margin$to !== void 0 ? _this$props$margin$to : 0\n },\n coordinateList: this.state.tooltipTicks,\n mouseHandlerCallback: this.triggeredAfterMouseMove,\n layout: this.props.layout\n });\n this.displayDefaultTooltip();\n }\n }, {\n key: \"displayDefaultTooltip\",\n value: function displayDefaultTooltip() {\n var _this$props5 = this.props,\n children = _this$props5.children,\n data = _this$props5.data,\n height = _this$props5.height,\n layout = _this$props5.layout;\n var tooltipElem = findChildByType(children, Tooltip);\n // If the chart doesn't include a element, there's no tooltip to display\n if (!tooltipElem) {\n return;\n }\n var defaultIndex = tooltipElem.props.defaultIndex;\n\n // Protect against runtime errors\n if (typeof defaultIndex !== 'number' || defaultIndex < 0 || defaultIndex > this.state.tooltipTicks.length) {\n return;\n }\n var activeLabel = this.state.tooltipTicks[defaultIndex] && this.state.tooltipTicks[defaultIndex].value;\n var activePayload = getTooltipContent(this.state, data, defaultIndex, activeLabel);\n var independentAxisCoord = this.state.tooltipTicks[defaultIndex].coordinate;\n var dependentAxisCoord = (this.state.offset.top + height) / 2;\n var isHorizontal = layout === 'horizontal';\n var activeCoordinate = isHorizontal ? {\n x: independentAxisCoord,\n y: dependentAxisCoord\n } : {\n y: independentAxisCoord,\n x: dependentAxisCoord\n };\n\n // Unlike other chart types, scatter plot's tooltip positions rely on both X and Y coordinates. Only the scatter plot\n // element knows its own Y coordinates.\n // If there's a scatter plot, we'll want to grab that element for an interrogation.\n var scatterPlotElement = this.state.formattedGraphicalItems.find(function (_ref12) {\n var item = _ref12.item;\n return item.type.name === 'Scatter';\n });\n if (scatterPlotElement) {\n activeCoordinate = _objectSpread(_objectSpread({}, activeCoordinate), scatterPlotElement.props.points[defaultIndex].tooltipPosition);\n activePayload = scatterPlotElement.props.points[defaultIndex].tooltipPayload;\n }\n var nextState = {\n activeTooltipIndex: defaultIndex,\n isTooltipActive: true,\n activeLabel: activeLabel,\n activePayload: activePayload,\n activeCoordinate: activeCoordinate\n };\n this.setState(nextState);\n this.renderCursor(tooltipElem);\n\n // Make sure that anyone who keyboard-only users who tab to the chart will start their\n // cursors at defaultIndex\n this.accessibilityManager.setIndex(defaultIndex);\n }\n }, {\n key: \"getSnapshotBeforeUpdate\",\n value: function getSnapshotBeforeUpdate(prevProps, prevState) {\n if (!this.props.accessibilityLayer) {\n return null;\n }\n if (this.state.tooltipTicks !== prevState.tooltipTicks) {\n this.accessibilityManager.setDetails({\n coordinateList: this.state.tooltipTicks\n });\n }\n if (this.props.layout !== prevProps.layout) {\n this.accessibilityManager.setDetails({\n layout: this.props.layout\n });\n }\n if (this.props.margin !== prevProps.margin) {\n var _this$props$margin$le2, _this$props$margin$to2;\n this.accessibilityManager.setDetails({\n offset: {\n left: (_this$props$margin$le2 = this.props.margin.left) !== null && _this$props$margin$le2 !== void 0 ? _this$props$margin$le2 : 0,\n top: (_this$props$margin$to2 = this.props.margin.top) !== null && _this$props$margin$to2 !== void 0 ? _this$props$margin$to2 : 0\n }\n });\n }\n\n // Something has to be returned for getSnapshotBeforeUpdate\n return null;\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n // Check to see if the Tooltip updated. If so, re-check default tooltip position\n if (!isChildrenEqual([findChildByType(prevProps.children, Tooltip)], [findChildByType(this.props.children, Tooltip)])) {\n this.displayDefaultTooltip();\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.removeListener();\n this.throttleTriggeredAfterMouseMove.cancel();\n }\n }, {\n key: \"getTooltipEventType\",\n value: function getTooltipEventType() {\n var tooltipItem = findChildByType(this.props.children, Tooltip);\n if (tooltipItem && typeof tooltipItem.props.shared === 'boolean') {\n var eventType = tooltipItem.props.shared ? 'axis' : 'item';\n return validateTooltipEventTypes.indexOf(eventType) >= 0 ? eventType : defaultTooltipEventType;\n }\n return defaultTooltipEventType;\n }\n\n /**\n * Get the information of mouse in chart, return null when the mouse is not in the chart\n * @param {MousePointer} event The event object\n * @return {Object} Mouse data\n */\n }, {\n key: \"getMouseInfo\",\n value: function getMouseInfo(event) {\n if (!this.container) {\n return null;\n }\n var element = this.container;\n var boundingRect = element.getBoundingClientRect();\n var containerOffset = getOffset(boundingRect);\n var e = {\n chartX: Math.round(event.pageX - containerOffset.left),\n chartY: Math.round(event.pageY - containerOffset.top)\n };\n var scale = boundingRect.width / element.offsetWidth || 1;\n var rangeObj = this.inRange(e.chartX, e.chartY, scale);\n if (!rangeObj) {\n return null;\n }\n var _this$state9 = this.state,\n xAxisMap = _this$state9.xAxisMap,\n yAxisMap = _this$state9.yAxisMap;\n var tooltipEventType = this.getTooltipEventType();\n if (tooltipEventType !== 'axis' && xAxisMap && yAxisMap) {\n var xScale = getAnyElementOfObject(xAxisMap).scale;\n var yScale = getAnyElementOfObject(yAxisMap).scale;\n var xValue = xScale && xScale.invert ? xScale.invert(e.chartX) : null;\n var yValue = yScale && yScale.invert ? yScale.invert(e.chartY) : null;\n return _objectSpread(_objectSpread({}, e), {}, {\n xValue: xValue,\n yValue: yValue\n });\n }\n var toolTipData = getTooltipData(this.state, this.props.data, this.props.layout, rangeObj);\n if (toolTipData) {\n return _objectSpread(_objectSpread({}, e), toolTipData);\n }\n return null;\n }\n }, {\n key: \"inRange\",\n value: function inRange(x, y) {\n var scale = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;\n var layout = this.props.layout;\n var scaledX = x / scale,\n scaledY = y / scale;\n if (layout === 'horizontal' || layout === 'vertical') {\n var offset = this.state.offset;\n var isInRange = scaledX >= offset.left && scaledX <= offset.left + offset.width && scaledY >= offset.top && scaledY <= offset.top + offset.height;\n return isInRange ? {\n x: scaledX,\n y: scaledY\n } : null;\n }\n var _this$state10 = this.state,\n angleAxisMap = _this$state10.angleAxisMap,\n radiusAxisMap = _this$state10.radiusAxisMap;\n if (angleAxisMap && radiusAxisMap) {\n var angleAxis = getAnyElementOfObject(angleAxisMap);\n return inRangeOfSector({\n x: scaledX,\n y: scaledY\n }, angleAxis);\n }\n return null;\n }\n }, {\n key: \"parseEventsOfWrapper\",\n value: function parseEventsOfWrapper() {\n var children = this.props.children;\n var tooltipEventType = this.getTooltipEventType();\n var tooltipItem = findChildByType(children, Tooltip);\n var tooltipEvents = {};\n if (tooltipItem && tooltipEventType === 'axis') {\n if (tooltipItem.props.trigger === 'click') {\n tooltipEvents = {\n onClick: this.handleClick\n };\n } else {\n tooltipEvents = {\n onMouseEnter: this.handleMouseEnter,\n onMouseMove: this.handleMouseMove,\n onMouseLeave: this.handleMouseLeave,\n onTouchMove: this.handleTouchMove,\n onTouchStart: this.handleTouchStart,\n onTouchEnd: this.handleTouchEnd\n };\n }\n }\n\n // @ts-expect-error adaptEventHandlers expects DOM Event but generateCategoricalChart works with React UIEvents\n var outerEvents = adaptEventHandlers(this.props, this.handleOuterEvent);\n return _objectSpread(_objectSpread({}, outerEvents), tooltipEvents);\n }\n }, {\n key: \"addListener\",\n value: function addListener() {\n eventCenter.on(SYNC_EVENT, this.handleReceiveSyncEvent);\n }\n }, {\n key: \"removeListener\",\n value: function removeListener() {\n eventCenter.removeListener(SYNC_EVENT, this.handleReceiveSyncEvent);\n }\n }, {\n key: \"filterFormatItem\",\n value: function filterFormatItem(item, displayName, childIndex) {\n var formattedGraphicalItems = this.state.formattedGraphicalItems;\n for (var i = 0, len = formattedGraphicalItems.length; i < len; i++) {\n var entry = formattedGraphicalItems[i];\n if (entry.item === item || entry.props.key === item.key || displayName === getDisplayName(entry.item.type) && childIndex === entry.childIndex) {\n return entry;\n }\n }\n return null;\n }\n }, {\n key: \"renderClipPath\",\n value: function renderClipPath() {\n var clipPathId = this.clipPathId;\n var _this$state$offset = this.state.offset,\n left = _this$state$offset.left,\n top = _this$state$offset.top,\n height = _this$state$offset.height,\n width = _this$state$offset.width;\n return /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: clipPathId\n }, /*#__PURE__*/React.createElement(\"rect\", {\n x: left,\n y: top,\n height: height,\n width: width\n })));\n }\n }, {\n key: \"getXScales\",\n value: function getXScales() {\n var xAxisMap = this.state.xAxisMap;\n return xAxisMap ? Object.entries(xAxisMap).reduce(function (res, _ref13) {\n var _ref14 = _slicedToArray(_ref13, 2),\n axisId = _ref14[0],\n axisProps = _ref14[1];\n return _objectSpread(_objectSpread({}, res), {}, _defineProperty({}, axisId, axisProps.scale));\n }, {}) : null;\n }\n }, {\n key: \"getYScales\",\n value: function getYScales() {\n var yAxisMap = this.state.yAxisMap;\n return yAxisMap ? Object.entries(yAxisMap).reduce(function (res, _ref15) {\n var _ref16 = _slicedToArray(_ref15, 2),\n axisId = _ref16[0],\n axisProps = _ref16[1];\n return _objectSpread(_objectSpread({}, res), {}, _defineProperty({}, axisId, axisProps.scale));\n }, {}) : null;\n }\n }, {\n key: \"getXScaleByAxisId\",\n value: function getXScaleByAxisId(axisId) {\n var _this$state$xAxisMap;\n return (_this$state$xAxisMap = this.state.xAxisMap) === null || _this$state$xAxisMap === void 0 || (_this$state$xAxisMap = _this$state$xAxisMap[axisId]) === null || _this$state$xAxisMap === void 0 ? void 0 : _this$state$xAxisMap.scale;\n }\n }, {\n key: \"getYScaleByAxisId\",\n value: function getYScaleByAxisId(axisId) {\n var _this$state$yAxisMap;\n return (_this$state$yAxisMap = this.state.yAxisMap) === null || _this$state$yAxisMap === void 0 || (_this$state$yAxisMap = _this$state$yAxisMap[axisId]) === null || _this$state$yAxisMap === void 0 ? void 0 : _this$state$yAxisMap.scale;\n }\n }, {\n key: \"getItemByXY\",\n value: function getItemByXY(chartXY) {\n var _this$state11 = this.state,\n formattedGraphicalItems = _this$state11.formattedGraphicalItems,\n activeItem = _this$state11.activeItem;\n if (formattedGraphicalItems && formattedGraphicalItems.length) {\n for (var i = 0, len = formattedGraphicalItems.length; i < len; i++) {\n var graphicalItem = formattedGraphicalItems[i];\n var props = graphicalItem.props,\n item = graphicalItem.item;\n var itemDisplayName = getDisplayName(item.type);\n if (itemDisplayName === 'Bar') {\n var activeBarItem = (props.data || []).find(function (entry) {\n return isInRectangle(chartXY, entry);\n });\n if (activeBarItem) {\n return {\n graphicalItem: graphicalItem,\n payload: activeBarItem\n };\n }\n } else if (itemDisplayName === 'RadialBar') {\n var _activeBarItem = (props.data || []).find(function (entry) {\n return inRangeOfSector(chartXY, entry);\n });\n if (_activeBarItem) {\n return {\n graphicalItem: graphicalItem,\n payload: _activeBarItem\n };\n }\n } else if (isFunnel(graphicalItem, activeItem) || isPie(graphicalItem, activeItem) || isScatter(graphicalItem, activeItem)) {\n var activeIndex = getActiveShapeIndexForTooltip({\n graphicalItem: graphicalItem,\n activeTooltipItem: activeItem,\n itemData: item.props.data\n });\n var childIndex = item.props.activeIndex === undefined ? activeIndex : item.props.activeIndex;\n return {\n graphicalItem: _objectSpread(_objectSpread({}, graphicalItem), {}, {\n childIndex: childIndex\n }),\n payload: isScatter(graphicalItem, activeItem) ? item.props.data[activeIndex] : graphicalItem.props.data[activeIndex]\n };\n }\n }\n }\n return null;\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n if (!validateWidthHeight(this)) {\n return null;\n }\n var _this$props6 = this.props,\n children = _this$props6.children,\n className = _this$props6.className,\n width = _this$props6.width,\n height = _this$props6.height,\n style = _this$props6.style,\n compact = _this$props6.compact,\n title = _this$props6.title,\n desc = _this$props6.desc,\n others = _objectWithoutProperties(_this$props6, _excluded2);\n var attrs = filterProps(others, false);\n\n // The \"compact\" mode is mainly used as the panorama within Brush\n if (compact) {\n return /*#__PURE__*/React.createElement(ChartLayoutContextProvider, {\n state: this.state,\n width: this.props.width,\n height: this.props.height,\n clipPathId: this.clipPathId\n }, /*#__PURE__*/React.createElement(Surface, _extends({}, attrs, {\n width: width,\n height: height,\n title: title,\n desc: desc\n }), this.renderClipPath(), renderByOrder(children, this.renderMap)));\n }\n if (this.props.accessibilityLayer) {\n var _this$props$tabIndex, _this$props$role;\n // Set tabIndex to 0 by default (can be overwritten)\n attrs.tabIndex = (_this$props$tabIndex = this.props.tabIndex) !== null && _this$props$tabIndex !== void 0 ? _this$props$tabIndex : 0;\n // Set role to img by default (can be overwritten)\n attrs.role = (_this$props$role = this.props.role) !== null && _this$props$role !== void 0 ? _this$props$role : 'application';\n attrs.onKeyDown = function (e) {\n _this2.accessibilityManager.keyboardEvent(e);\n // 'onKeyDown' is not currently a supported prop that can be passed through\n // if it's added, this should be added: this.props.onKeyDown(e);\n };\n attrs.onFocus = function () {\n _this2.accessibilityManager.focus();\n // 'onFocus' is not currently a supported prop that can be passed through\n // if it's added, the focus event should be forwarded to the prop\n };\n }\n var events = this.parseEventsOfWrapper();\n return /*#__PURE__*/React.createElement(ChartLayoutContextProvider, {\n state: this.state,\n width: this.props.width,\n height: this.props.height,\n clipPathId: this.clipPathId\n }, /*#__PURE__*/React.createElement(\"div\", _extends({\n className: clsx('recharts-wrapper', className),\n style: _objectSpread({\n position: 'relative',\n cursor: 'default',\n width: width,\n height: height\n }, style)\n }, events, {\n ref: function ref(node) {\n _this2.container = node;\n }\n }), /*#__PURE__*/React.createElement(Surface, _extends({}, attrs, {\n width: width,\n height: height,\n title: title,\n desc: desc,\n style: FULL_WIDTH_AND_HEIGHT\n }), this.renderClipPath(), renderByOrder(children, this.renderMap)), this.renderLegend(), this.renderTooltip()));\n }\n }]);\n return CategoricalChartWrapper;\n }(Component), _defineProperty(_CategoricalChartWrapper, \"displayName\", chartName), _defineProperty(_CategoricalChartWrapper, \"defaultProps\", _objectSpread({\n layout: 'horizontal',\n stackOffset: 'none',\n barCategoryGap: '10%',\n barGap: 4,\n margin: {\n top: 5,\n right: 5,\n bottom: 5,\n left: 5\n },\n reverseStackOrder: false,\n syncMethod: 'index'\n }, defaultProps)), _defineProperty(_CategoricalChartWrapper, \"getDerivedStateFromProps\", function (nextProps, prevState) {\n var dataKey = nextProps.dataKey,\n data = nextProps.data,\n children = nextProps.children,\n width = nextProps.width,\n height = nextProps.height,\n layout = nextProps.layout,\n stackOffset = nextProps.stackOffset,\n margin = nextProps.margin;\n var dataStartIndex = prevState.dataStartIndex,\n dataEndIndex = prevState.dataEndIndex;\n if (prevState.updateId === undefined) {\n var defaultState = createDefaultState(nextProps);\n return _objectSpread(_objectSpread(_objectSpread({}, defaultState), {}, {\n updateId: 0\n }, updateStateOfAxisMapsOffsetAndStackGroups(_objectSpread(_objectSpread({\n props: nextProps\n }, defaultState), {}, {\n updateId: 0\n }), prevState)), {}, {\n prevDataKey: dataKey,\n prevData: data,\n prevWidth: width,\n prevHeight: height,\n prevLayout: layout,\n prevStackOffset: stackOffset,\n prevMargin: margin,\n prevChildren: children\n });\n }\n if (dataKey !== prevState.prevDataKey || data !== prevState.prevData || width !== prevState.prevWidth || height !== prevState.prevHeight || layout !== prevState.prevLayout || stackOffset !== prevState.prevStackOffset || !shallowEqual(margin, prevState.prevMargin)) {\n var _defaultState = createDefaultState(nextProps);\n\n // Fixes https://github.com/recharts/recharts/issues/2143\n var keepFromPrevState = {\n // (chartX, chartY) are (0,0) in default state, but we want to keep the last mouse position to avoid\n // any flickering\n chartX: prevState.chartX,\n chartY: prevState.chartY,\n // The tooltip should stay active when it was active in the previous render. If this is not\n // the case, the tooltip disappears and immediately re-appears, causing a flickering effect\n isTooltipActive: prevState.isTooltipActive\n };\n var updatesToState = _objectSpread(_objectSpread({}, getTooltipData(prevState, data, layout)), {}, {\n updateId: prevState.updateId + 1\n });\n var newState = _objectSpread(_objectSpread(_objectSpread({}, _defaultState), keepFromPrevState), updatesToState);\n return _objectSpread(_objectSpread(_objectSpread({}, newState), updateStateOfAxisMapsOffsetAndStackGroups(_objectSpread({\n props: nextProps\n }, newState), prevState)), {}, {\n prevDataKey: dataKey,\n prevData: data,\n prevWidth: width,\n prevHeight: height,\n prevLayout: layout,\n prevStackOffset: stackOffset,\n prevMargin: margin,\n prevChildren: children\n });\n }\n if (!isChildrenEqual(children, prevState.prevChildren)) {\n var _brush$props$startInd, _brush$props, _brush$props$endIndex, _brush$props2;\n // specifically check for Brush - if it exists and the start and end indexes are different, re-render with the new ones\n var brush = findChildByType(children, Brush);\n var startIndex = brush ? (_brush$props$startInd = (_brush$props = brush.props) === null || _brush$props === void 0 ? void 0 : _brush$props.startIndex) !== null && _brush$props$startInd !== void 0 ? _brush$props$startInd : dataStartIndex : dataStartIndex;\n var endIndex = brush ? (_brush$props$endIndex = (_brush$props2 = brush.props) === null || _brush$props2 === void 0 ? void 0 : _brush$props2.endIndex) !== null && _brush$props$endIndex !== void 0 ? _brush$props$endIndex : dataEndIndex : dataEndIndex;\n var hasDifferentStartOrEndIndex = startIndex !== dataStartIndex || endIndex !== dataEndIndex;\n\n // update configuration in children\n var hasGlobalData = !isNil(data);\n var newUpdateId = hasGlobalData && !hasDifferentStartOrEndIndex ? prevState.updateId : prevState.updateId + 1;\n return _objectSpread(_objectSpread({\n updateId: newUpdateId\n }, updateStateOfAxisMapsOffsetAndStackGroups(_objectSpread(_objectSpread({\n props: nextProps\n }, prevState), {}, {\n updateId: newUpdateId,\n dataStartIndex: startIndex,\n dataEndIndex: endIndex\n }), prevState)), {}, {\n prevChildren: children,\n dataStartIndex: startIndex,\n dataEndIndex: endIndex\n });\n }\n return null;\n }), _defineProperty(_CategoricalChartWrapper, \"renderActiveDot\", function (option, props) {\n var dot;\n if ( /*#__PURE__*/isValidElement(option)) {\n dot = /*#__PURE__*/cloneElement(option, props);\n } else if (isFunction(option)) {\n dot = option(props);\n } else {\n dot = /*#__PURE__*/React.createElement(Dot, props);\n }\n return /*#__PURE__*/React.createElement(Layer, {\n className: \"recharts-active-dot\",\n key: props.key\n }, dot);\n }), _CategoricalChartWrapper;\n};","/**\n * @fileOverview Bar Chart\n */\nimport { generateCategoricalChart } from './generateCategoricalChart';\nimport { Bar } from '../cartesian/Bar';\nimport { XAxis } from '../cartesian/XAxis';\nimport { YAxis } from '../cartesian/YAxis';\nimport { formatAxisMap } from '../util/CartesianUtils';\nexport var BarChart = generateCategoricalChart({\n chartName: 'BarChart',\n GraphicalChild: Bar,\n defaultTooltipEventType: 'axis',\n validateTooltipEventTypes: ['axis', 'item'],\n axisComponents: [{\n axisType: 'xAxis',\n AxisComp: XAxis\n }, {\n axisType: 'yAxis',\n AxisComp: YAxis\n }],\n formatAxisMap: formatAxisMap\n});","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nvar _excluded = [\"offset\"];\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _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; }\nfunction _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; }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : String(i); }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _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); }\nimport React, { cloneElement, isValidElement, createElement } from 'react';\nimport isNil from 'lodash/isNil';\nimport isFunction from 'lodash/isFunction';\nimport isObject from 'lodash/isObject';\nimport clsx from 'clsx';\nimport { Text } from './Text';\nimport { findAllByType, filterProps } from '../util/ReactUtils';\nimport { isNumOrStr, isNumber, isPercent, getPercentValue, uniqueId, mathSign } from '../util/DataUtils';\nimport { polarToCartesian } from '../util/PolarUtils';\nvar getLabel = function getLabel(props) {\n var value = props.value,\n formatter = props.formatter;\n var label = isNil(props.children) ? value : props.children;\n if (isFunction(formatter)) {\n return formatter(label);\n }\n return label;\n};\nvar getDeltaAngle = function getDeltaAngle(startAngle, endAngle) {\n var sign = mathSign(endAngle - startAngle);\n var deltaAngle = Math.min(Math.abs(endAngle - startAngle), 360);\n return sign * deltaAngle;\n};\nvar renderRadialLabel = function renderRadialLabel(labelProps, label, attrs) {\n var position = labelProps.position,\n viewBox = labelProps.viewBox,\n offset = labelProps.offset,\n className = labelProps.className;\n var _ref = viewBox,\n cx = _ref.cx,\n cy = _ref.cy,\n innerRadius = _ref.innerRadius,\n outerRadius = _ref.outerRadius,\n startAngle = _ref.startAngle,\n endAngle = _ref.endAngle,\n clockWise = _ref.clockWise;\n var radius = (innerRadius + outerRadius) / 2;\n var deltaAngle = getDeltaAngle(startAngle, endAngle);\n var sign = deltaAngle >= 0 ? 1 : -1;\n var labelAngle, direction;\n if (position === 'insideStart') {\n labelAngle = startAngle + sign * offset;\n direction = clockWise;\n } else if (position === 'insideEnd') {\n labelAngle = endAngle - sign * offset;\n direction = !clockWise;\n } else if (position === 'end') {\n labelAngle = endAngle + sign * offset;\n direction = clockWise;\n }\n direction = deltaAngle <= 0 ? direction : !direction;\n var startPoint = polarToCartesian(cx, cy, radius, labelAngle);\n var endPoint = polarToCartesian(cx, cy, radius, labelAngle + (direction ? 1 : -1) * 359);\n var path = \"M\".concat(startPoint.x, \",\").concat(startPoint.y, \"\\n A\").concat(radius, \",\").concat(radius, \",0,1,\").concat(direction ? 0 : 1, \",\\n \").concat(endPoint.x, \",\").concat(endPoint.y);\n var id = isNil(labelProps.id) ? uniqueId('recharts-radial-line-') : labelProps.id;\n return /*#__PURE__*/React.createElement(\"text\", _extends({}, attrs, {\n dominantBaseline: \"central\",\n className: clsx('recharts-radial-bar-label', className)\n }), /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"path\", {\n id: id,\n d: path\n })), /*#__PURE__*/React.createElement(\"textPath\", {\n xlinkHref: \"#\".concat(id)\n }, label));\n};\nvar getAttrsOfPolarLabel = function getAttrsOfPolarLabel(props) {\n var viewBox = props.viewBox,\n offset = props.offset,\n position = props.position;\n var _ref2 = viewBox,\n cx = _ref2.cx,\n cy = _ref2.cy,\n innerRadius = _ref2.innerRadius,\n outerRadius = _ref2.outerRadius,\n startAngle = _ref2.startAngle,\n endAngle = _ref2.endAngle;\n var midAngle = (startAngle + endAngle) / 2;\n if (position === 'outside') {\n var _polarToCartesian = polarToCartesian(cx, cy, outerRadius + offset, midAngle),\n _x = _polarToCartesian.x,\n _y = _polarToCartesian.y;\n return {\n x: _x,\n y: _y,\n textAnchor: _x >= cx ? 'start' : 'end',\n verticalAnchor: 'middle'\n };\n }\n if (position === 'center') {\n return {\n x: cx,\n y: cy,\n textAnchor: 'middle',\n verticalAnchor: 'middle'\n };\n }\n if (position === 'centerTop') {\n return {\n x: cx,\n y: cy,\n textAnchor: 'middle',\n verticalAnchor: 'start'\n };\n }\n if (position === 'centerBottom') {\n return {\n x: cx,\n y: cy,\n textAnchor: 'middle',\n verticalAnchor: 'end'\n };\n }\n var r = (innerRadius + outerRadius) / 2;\n var _polarToCartesian2 = polarToCartesian(cx, cy, r, midAngle),\n x = _polarToCartesian2.x,\n y = _polarToCartesian2.y;\n return {\n x: x,\n y: y,\n textAnchor: 'middle',\n verticalAnchor: 'middle'\n };\n};\nvar getAttrsOfCartesianLabel = function getAttrsOfCartesianLabel(props) {\n var viewBox = props.viewBox,\n parentViewBox = props.parentViewBox,\n offset = props.offset,\n position = props.position;\n var _ref3 = viewBox,\n x = _ref3.x,\n y = _ref3.y,\n width = _ref3.width,\n height = _ref3.height;\n\n // Define vertical offsets and position inverts based on the value being positive or negative\n var verticalSign = height >= 0 ? 1 : -1;\n var verticalOffset = verticalSign * offset;\n var verticalEnd = verticalSign > 0 ? 'end' : 'start';\n var verticalStart = verticalSign > 0 ? 'start' : 'end';\n\n // Define horizontal offsets and position inverts based on the value being positive or negative\n var horizontalSign = width >= 0 ? 1 : -1;\n var horizontalOffset = horizontalSign * offset;\n var horizontalEnd = horizontalSign > 0 ? 'end' : 'start';\n var horizontalStart = horizontalSign > 0 ? 'start' : 'end';\n if (position === 'top') {\n var attrs = {\n x: x + width / 2,\n y: y - verticalSign * offset,\n textAnchor: 'middle',\n verticalAnchor: verticalEnd\n };\n return _objectSpread(_objectSpread({}, attrs), parentViewBox ? {\n height: Math.max(y - parentViewBox.y, 0),\n width: width\n } : {});\n }\n if (position === 'bottom') {\n var _attrs = {\n x: x + width / 2,\n y: y + height + verticalOffset,\n textAnchor: 'middle',\n verticalAnchor: verticalStart\n };\n return _objectSpread(_objectSpread({}, _attrs), parentViewBox ? {\n height: Math.max(parentViewBox.y + parentViewBox.height - (y + height), 0),\n width: width\n } : {});\n }\n if (position === 'left') {\n var _attrs2 = {\n x: x - horizontalOffset,\n y: y + height / 2,\n textAnchor: horizontalEnd,\n verticalAnchor: 'middle'\n };\n return _objectSpread(_objectSpread({}, _attrs2), parentViewBox ? {\n width: Math.max(_attrs2.x - parentViewBox.x, 0),\n height: height\n } : {});\n }\n if (position === 'right') {\n var _attrs3 = {\n x: x + width + horizontalOffset,\n y: y + height / 2,\n textAnchor: horizontalStart,\n verticalAnchor: 'middle'\n };\n return _objectSpread(_objectSpread({}, _attrs3), parentViewBox ? {\n width: Math.max(parentViewBox.x + parentViewBox.width - _attrs3.x, 0),\n height: height\n } : {});\n }\n var sizeAttrs = parentViewBox ? {\n width: width,\n height: height\n } : {};\n if (position === 'insideLeft') {\n return _objectSpread({\n x: x + horizontalOffset,\n y: y + height / 2,\n textAnchor: horizontalStart,\n verticalAnchor: 'middle'\n }, sizeAttrs);\n }\n if (position === 'insideRight') {\n return _objectSpread({\n x: x + width - horizontalOffset,\n y: y + height / 2,\n textAnchor: horizontalEnd,\n verticalAnchor: 'middle'\n }, sizeAttrs);\n }\n if (position === 'insideTop') {\n return _objectSpread({\n x: x + width / 2,\n y: y + verticalOffset,\n textAnchor: 'middle',\n verticalAnchor: verticalStart\n }, sizeAttrs);\n }\n if (position === 'insideBottom') {\n return _objectSpread({\n x: x + width / 2,\n y: y + height - verticalOffset,\n textAnchor: 'middle',\n verticalAnchor: verticalEnd\n }, sizeAttrs);\n }\n if (position === 'insideTopLeft') {\n return _objectSpread({\n x: x + horizontalOffset,\n y: y + verticalOffset,\n textAnchor: horizontalStart,\n verticalAnchor: verticalStart\n }, sizeAttrs);\n }\n if (position === 'insideTopRight') {\n return _objectSpread({\n x: x + width - horizontalOffset,\n y: y + verticalOffset,\n textAnchor: horizontalEnd,\n verticalAnchor: verticalStart\n }, sizeAttrs);\n }\n if (position === 'insideBottomLeft') {\n return _objectSpread({\n x: x + horizontalOffset,\n y: y + height - verticalOffset,\n textAnchor: horizontalStart,\n verticalAnchor: verticalEnd\n }, sizeAttrs);\n }\n if (position === 'insideBottomRight') {\n return _objectSpread({\n x: x + width - horizontalOffset,\n y: y + height - verticalOffset,\n textAnchor: horizontalEnd,\n verticalAnchor: verticalEnd\n }, sizeAttrs);\n }\n if (isObject(position) && (isNumber(position.x) || isPercent(position.x)) && (isNumber(position.y) || isPercent(position.y))) {\n return _objectSpread({\n x: x + getPercentValue(position.x, width),\n y: y + getPercentValue(position.y, height),\n textAnchor: 'end',\n verticalAnchor: 'end'\n }, sizeAttrs);\n }\n return _objectSpread({\n x: x + width / 2,\n y: y + height / 2,\n textAnchor: 'middle',\n verticalAnchor: 'middle'\n }, sizeAttrs);\n};\nvar isPolar = function isPolar(viewBox) {\n return 'cx' in viewBox && isNumber(viewBox.cx);\n};\nexport function Label(_ref4) {\n var _ref4$offset = _ref4.offset,\n offset = _ref4$offset === void 0 ? 5 : _ref4$offset,\n restProps = _objectWithoutProperties(_ref4, _excluded);\n var props = _objectSpread({\n offset: offset\n }, restProps);\n var viewBox = props.viewBox,\n position = props.position,\n value = props.value,\n children = props.children,\n content = props.content,\n _props$className = props.className,\n className = _props$className === void 0 ? '' : _props$className,\n textBreakAll = props.textBreakAll;\n if (!viewBox || isNil(value) && isNil(children) && ! /*#__PURE__*/isValidElement(content) && !isFunction(content)) {\n return null;\n }\n if ( /*#__PURE__*/isValidElement(content)) {\n return /*#__PURE__*/cloneElement(content, props);\n }\n var label;\n if (isFunction(content)) {\n label = /*#__PURE__*/createElement(content, props);\n if ( /*#__PURE__*/isValidElement(label)) {\n return label;\n }\n } else {\n label = getLabel(props);\n }\n var isPolarLabel = isPolar(viewBox);\n var attrs = filterProps(props, true);\n if (isPolarLabel && (position === 'insideStart' || position === 'insideEnd' || position === 'end')) {\n return renderRadialLabel(props, label, attrs);\n }\n var positionAttrs = isPolarLabel ? getAttrsOfPolarLabel(props) : getAttrsOfCartesianLabel(props);\n return /*#__PURE__*/React.createElement(Text, _extends({\n className: clsx('recharts-label', className)\n }, attrs, positionAttrs, {\n breakAll: textBreakAll\n }), label);\n}\nLabel.displayName = 'Label';\nvar parseViewBox = function parseViewBox(props) {\n var cx = props.cx,\n cy = props.cy,\n angle = props.angle,\n startAngle = props.startAngle,\n endAngle = props.endAngle,\n r = props.r,\n radius = props.radius,\n innerRadius = props.innerRadius,\n outerRadius = props.outerRadius,\n x = props.x,\n y = props.y,\n top = props.top,\n left = props.left,\n width = props.width,\n height = props.height,\n clockWise = props.clockWise,\n labelViewBox = props.labelViewBox;\n if (labelViewBox) {\n return labelViewBox;\n }\n if (isNumber(width) && isNumber(height)) {\n if (isNumber(x) && isNumber(y)) {\n return {\n x: x,\n y: y,\n width: width,\n height: height\n };\n }\n if (isNumber(top) && isNumber(left)) {\n return {\n x: top,\n y: left,\n width: width,\n height: height\n };\n }\n }\n if (isNumber(x) && isNumber(y)) {\n return {\n x: x,\n y: y,\n width: 0,\n height: 0\n };\n }\n if (isNumber(cx) && isNumber(cy)) {\n return {\n cx: cx,\n cy: cy,\n startAngle: startAngle || angle || 0,\n endAngle: endAngle || angle || 0,\n innerRadius: innerRadius || 0,\n outerRadius: outerRadius || radius || r || 0,\n clockWise: clockWise\n };\n }\n if (props.viewBox) {\n return props.viewBox;\n }\n return {};\n};\nvar parseLabel = function parseLabel(label, viewBox) {\n if (!label) {\n return null;\n }\n if (label === true) {\n return /*#__PURE__*/React.createElement(Label, {\n key: \"label-implicit\",\n viewBox: viewBox\n });\n }\n if (isNumOrStr(label)) {\n return /*#__PURE__*/React.createElement(Label, {\n key: \"label-implicit\",\n viewBox: viewBox,\n value: label\n });\n }\n if ( /*#__PURE__*/isValidElement(label)) {\n if (label.type === Label) {\n return /*#__PURE__*/cloneElement(label, {\n key: 'label-implicit',\n viewBox: viewBox\n });\n }\n return /*#__PURE__*/React.createElement(Label, {\n key: \"label-implicit\",\n content: label,\n viewBox: viewBox\n });\n }\n if (isFunction(label)) {\n return /*#__PURE__*/React.createElement(Label, {\n key: \"label-implicit\",\n content: label,\n viewBox: viewBox\n });\n }\n if (isObject(label)) {\n return /*#__PURE__*/React.createElement(Label, _extends({\n viewBox: viewBox\n }, label, {\n key: \"label-implicit\"\n }));\n }\n return null;\n};\nvar renderCallByParent = function renderCallByParent(parentProps, viewBox) {\n var checkPropsLabel = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n if (!parentProps || !parentProps.children && checkPropsLabel && !parentProps.label) {\n return null;\n }\n var children = parentProps.children;\n var parentViewBox = parseViewBox(parentProps);\n var explicitChildren = findAllByType(children, Label).map(function (child, index) {\n return /*#__PURE__*/cloneElement(child, {\n viewBox: viewBox || parentViewBox,\n // eslint-disable-next-line react/no-array-index-key\n key: \"label-\".concat(index)\n });\n });\n if (!checkPropsLabel) {\n return explicitChildren;\n }\n var implicitLabel = parseLabel(parentProps.label, viewBox || parentViewBox);\n return [implicitLabel].concat(_toConsumableArray(explicitChildren));\n};\nLabel.parseViewBox = parseViewBox;\nLabel.renderCallByParent = renderCallByParent;","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _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); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _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, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }\nfunction _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); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nfunction _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); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : String(i); }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n/**\n * @fileOverview Default Legend Content\n */\nimport React, { PureComponent } from 'react';\nimport isFunction from 'lodash/isFunction';\nimport clsx from 'clsx';\nimport { warn } from '../util/LogUtils';\nimport { Surface } from '../container/Surface';\nimport { Symbols } from '../shape/Symbols';\nimport { adaptEventsOfChild } from '../util/types';\nvar SIZE = 32;\nexport var DefaultLegendContent = /*#__PURE__*/function (_PureComponent) {\n _inherits(DefaultLegendContent, _PureComponent);\n function DefaultLegendContent() {\n _classCallCheck(this, DefaultLegendContent);\n return _callSuper(this, DefaultLegendContent, arguments);\n }\n _createClass(DefaultLegendContent, [{\n key: \"renderIcon\",\n value:\n /**\n * Render the path of icon\n * @param {Object} data Data of each legend item\n * @return {String} Path element\n */\n function renderIcon(data) {\n var inactiveColor = this.props.inactiveColor;\n var halfSize = SIZE / 2;\n var sixthSize = SIZE / 6;\n var thirdSize = SIZE / 3;\n var color = data.inactive ? inactiveColor : data.color;\n if (data.type === 'plainline') {\n return /*#__PURE__*/React.createElement(\"line\", {\n strokeWidth: 4,\n fill: \"none\",\n stroke: color,\n strokeDasharray: data.payload.strokeDasharray,\n x1: 0,\n y1: halfSize,\n x2: SIZE,\n y2: halfSize,\n className: \"recharts-legend-icon\"\n });\n }\n if (data.type === 'line') {\n return /*#__PURE__*/React.createElement(\"path\", {\n strokeWidth: 4,\n fill: \"none\",\n stroke: color,\n d: \"M0,\".concat(halfSize, \"h\").concat(thirdSize, \"\\n A\").concat(sixthSize, \",\").concat(sixthSize, \",0,1,1,\").concat(2 * thirdSize, \",\").concat(halfSize, \"\\n H\").concat(SIZE, \"M\").concat(2 * thirdSize, \",\").concat(halfSize, \"\\n A\").concat(sixthSize, \",\").concat(sixthSize, \",0,1,1,\").concat(thirdSize, \",\").concat(halfSize),\n className: \"recharts-legend-icon\"\n });\n }\n if (data.type === 'rect') {\n return /*#__PURE__*/React.createElement(\"path\", {\n stroke: \"none\",\n fill: color,\n d: \"M0,\".concat(SIZE / 8, \"h\").concat(SIZE, \"v\").concat(SIZE * 3 / 4, \"h\").concat(-SIZE, \"z\"),\n className: \"recharts-legend-icon\"\n });\n }\n if ( /*#__PURE__*/React.isValidElement(data.legendIcon)) {\n var iconProps = _objectSpread({}, data);\n delete iconProps.legendIcon;\n return /*#__PURE__*/React.cloneElement(data.legendIcon, iconProps);\n }\n return /*#__PURE__*/React.createElement(Symbols, {\n fill: color,\n cx: halfSize,\n cy: halfSize,\n size: SIZE,\n sizeType: \"diameter\",\n type: data.type\n });\n }\n\n /**\n * Draw items of legend\n * @return {ReactElement} Items\n */\n }, {\n key: \"renderItems\",\n value: function renderItems() {\n var _this = this;\n var _this$props = this.props,\n payload = _this$props.payload,\n iconSize = _this$props.iconSize,\n layout = _this$props.layout,\n formatter = _this$props.formatter,\n inactiveColor = _this$props.inactiveColor;\n var viewBox = {\n x: 0,\n y: 0,\n width: SIZE,\n height: SIZE\n };\n var itemStyle = {\n display: layout === 'horizontal' ? 'inline-block' : 'block',\n marginRight: 10\n };\n var svgStyle = {\n display: 'inline-block',\n verticalAlign: 'middle',\n marginRight: 4\n };\n return payload.map(function (entry, i) {\n var finalFormatter = entry.formatter || formatter;\n var className = clsx(_defineProperty(_defineProperty({\n 'recharts-legend-item': true\n }, \"legend-item-\".concat(i), true), \"inactive\", entry.inactive));\n if (entry.type === 'none') {\n return null;\n }\n\n // Do not render entry.value as functions. Always require static string properties.\n var entryValue = !isFunction(entry.value) ? entry.value : null;\n warn(!isFunction(entry.value), \"The name property is also required when using a function for the dataKey of a chart's cartesian components. Ex: \" // eslint-disable-line max-len\n );\n var color = entry.inactive ? inactiveColor : entry.color;\n return /*#__PURE__*/React.createElement(\"li\", _extends({\n className: className,\n style: itemStyle\n // eslint-disable-next-line react/no-array-index-key\n ,\n key: \"legend-item-\".concat(i)\n }, adaptEventsOfChild(_this.props, entry, i)), /*#__PURE__*/React.createElement(Surface, {\n width: iconSize,\n height: iconSize,\n viewBox: viewBox,\n style: svgStyle\n }, _this.renderIcon(entry)), /*#__PURE__*/React.createElement(\"span\", {\n className: \"recharts-legend-item-text\",\n style: {\n color: color\n }\n }, finalFormatter ? finalFormatter(entryValue, entry, i) : entryValue));\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props2 = this.props,\n payload = _this$props2.payload,\n layout = _this$props2.layout,\n align = _this$props2.align;\n if (!payload || !payload.length) {\n return null;\n }\n var finalStyle = {\n padding: 0,\n margin: 0,\n textAlign: layout === 'horizontal' ? align : 'left'\n };\n return /*#__PURE__*/React.createElement(\"ul\", {\n className: \"recharts-default-legend\",\n style: finalStyle\n }, this.renderItems());\n }\n }]);\n return DefaultLegendContent;\n}(PureComponent);\n_defineProperty(DefaultLegendContent, \"displayName\", 'Legend');\n_defineProperty(DefaultLegendContent, \"defaultProps\", {\n iconSize: 14,\n layout: 'horizontal',\n align: 'center',\n verticalAlign: 'middle',\n inactiveColor: '#ccc'\n});","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nvar _excluded = [\"ref\"];\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _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, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }\nfunction _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); }\nfunction _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _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); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : String(i); }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _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; }\nfunction _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; }\n/**\n * @fileOverview Legend\n */\nimport React, { PureComponent } from 'react';\nimport { DefaultLegendContent } from './DefaultLegendContent';\nimport { isNumber } from '../util/DataUtils';\nimport { getUniqPayload } from '../util/payload/getUniqPayload';\nfunction defaultUniqBy(entry) {\n return entry.value;\n}\nfunction renderContent(content, props) {\n if ( /*#__PURE__*/React.isValidElement(content)) {\n return /*#__PURE__*/React.cloneElement(content, props);\n }\n if (typeof content === 'function') {\n return /*#__PURE__*/React.createElement(content, props);\n }\n var ref = props.ref,\n otherProps = _objectWithoutProperties(props, _excluded);\n return /*#__PURE__*/React.createElement(DefaultLegendContent, otherProps);\n}\nvar EPS = 1;\nexport var Legend = /*#__PURE__*/function (_PureComponent) {\n _inherits(Legend, _PureComponent);\n function Legend() {\n var _this;\n _classCallCheck(this, Legend);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _callSuper(this, Legend, [].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"lastBoundingBox\", {\n width: -1,\n height: -1\n });\n return _this;\n }\n _createClass(Legend, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.updateBBox();\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate() {\n this.updateBBox();\n }\n }, {\n key: \"getBBox\",\n value: function getBBox() {\n if (this.wrapperNode && this.wrapperNode.getBoundingClientRect) {\n var _box = this.wrapperNode.getBoundingClientRect();\n _box.height = this.wrapperNode.offsetHeight;\n _box.width = this.wrapperNode.offsetWidth;\n return _box;\n }\n return null;\n }\n }, {\n key: \"updateBBox\",\n value: function updateBBox() {\n var onBBoxUpdate = this.props.onBBoxUpdate;\n var box = this.getBBox();\n if (box) {\n if (Math.abs(box.width - this.lastBoundingBox.width) > EPS || Math.abs(box.height - this.lastBoundingBox.height) > EPS) {\n this.lastBoundingBox.width = box.width;\n this.lastBoundingBox.height = box.height;\n if (onBBoxUpdate) {\n onBBoxUpdate(box);\n }\n }\n } else if (this.lastBoundingBox.width !== -1 || this.lastBoundingBox.height !== -1) {\n this.lastBoundingBox.width = -1;\n this.lastBoundingBox.height = -1;\n if (onBBoxUpdate) {\n onBBoxUpdate(null);\n }\n }\n }\n }, {\n key: \"getBBoxSnapshot\",\n value: function getBBoxSnapshot() {\n if (this.lastBoundingBox.width >= 0 && this.lastBoundingBox.height >= 0) {\n return _objectSpread({}, this.lastBoundingBox);\n }\n return {\n width: 0,\n height: 0\n };\n }\n }, {\n key: \"getDefaultPosition\",\n value: function getDefaultPosition(style) {\n var _this$props = this.props,\n layout = _this$props.layout,\n align = _this$props.align,\n verticalAlign = _this$props.verticalAlign,\n margin = _this$props.margin,\n chartWidth = _this$props.chartWidth,\n chartHeight = _this$props.chartHeight;\n var hPos, vPos;\n if (!style || (style.left === undefined || style.left === null) && (style.right === undefined || style.right === null)) {\n if (align === 'center' && layout === 'vertical') {\n var _box2 = this.getBBoxSnapshot();\n hPos = {\n left: ((chartWidth || 0) - _box2.width) / 2\n };\n } else {\n hPos = align === 'right' ? {\n right: margin && margin.right || 0\n } : {\n left: margin && margin.left || 0\n };\n }\n }\n if (!style || (style.top === undefined || style.top === null) && (style.bottom === undefined || style.bottom === null)) {\n if (verticalAlign === 'middle') {\n var _box3 = this.getBBoxSnapshot();\n vPos = {\n top: ((chartHeight || 0) - _box3.height) / 2\n };\n } else {\n vPos = verticalAlign === 'bottom' ? {\n bottom: margin && margin.bottom || 0\n } : {\n top: margin && margin.top || 0\n };\n }\n }\n return _objectSpread(_objectSpread({}, hPos), vPos);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n var _this$props2 = this.props,\n content = _this$props2.content,\n width = _this$props2.width,\n height = _this$props2.height,\n wrapperStyle = _this$props2.wrapperStyle,\n payloadUniqBy = _this$props2.payloadUniqBy,\n payload = _this$props2.payload;\n var outerStyle = _objectSpread(_objectSpread({\n position: 'absolute',\n width: width || 'auto',\n height: height || 'auto'\n }, this.getDefaultPosition(wrapperStyle)), wrapperStyle);\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"recharts-legend-wrapper\",\n style: outerStyle,\n ref: function ref(node) {\n _this2.wrapperNode = node;\n }\n }, renderContent(content, _objectSpread(_objectSpread({}, this.props), {}, {\n payload: getUniqPayload(payload, payloadUniqBy, defaultUniqBy)\n })));\n }\n }], [{\n key: \"getWithHeight\",\n value: function getWithHeight(item, chartWidth) {\n var layout = item.props.layout;\n if (layout === 'vertical' && isNumber(item.props.height)) {\n return {\n height: item.props.height\n };\n }\n if (layout === 'horizontal') {\n return {\n width: item.props.width || chartWidth\n };\n }\n return null;\n }\n }]);\n return Legend;\n}(PureComponent);\n_defineProperty(Legend, \"displayName\", 'Legend');\n_defineProperty(Legend, \"defaultProps\", {\n iconSize: 14,\n layout: 'horizontal',\n align: 'center',\n verticalAlign: 'bottom'\n});","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : String(i); }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n/**\n * @fileOverview Wrapper component to make charts adapt to the size of parent * DOM\n */\nimport clsx from 'clsx';\nimport React, { forwardRef, cloneElement, useState, useImperativeHandle, useRef, useEffect, useMemo, useCallback } from 'react';\nimport throttle from 'lodash/throttle';\nimport { isElement } from 'react-is';\nimport { isPercent } from '../util/DataUtils';\nimport { warn } from '../util/LogUtils';\nimport { getDisplayName } from '../util/ReactUtils';\nexport var ResponsiveContainer = /*#__PURE__*/forwardRef(function (_ref, ref) {\n var aspect = _ref.aspect,\n _ref$initialDimension = _ref.initialDimension,\n initialDimension = _ref$initialDimension === void 0 ? {\n width: -1,\n height: -1\n } : _ref$initialDimension,\n _ref$width = _ref.width,\n width = _ref$width === void 0 ? '100%' : _ref$width,\n _ref$height = _ref.height,\n height = _ref$height === void 0 ? '100%' : _ref$height,\n _ref$minWidth = _ref.minWidth,\n minWidth = _ref$minWidth === void 0 ? 0 : _ref$minWidth,\n minHeight = _ref.minHeight,\n maxHeight = _ref.maxHeight,\n children = _ref.children,\n _ref$debounce = _ref.debounce,\n debounce = _ref$debounce === void 0 ? 0 : _ref$debounce,\n id = _ref.id,\n className = _ref.className,\n onResize = _ref.onResize,\n _ref$style = _ref.style,\n style = _ref$style === void 0 ? {} : _ref$style;\n var containerRef = useRef(null);\n var onResizeRef = useRef();\n onResizeRef.current = onResize;\n useImperativeHandle(ref, function () {\n return Object.defineProperty(containerRef.current, 'current', {\n get: function get() {\n // eslint-disable-next-line no-console\n console.warn('The usage of ref.current.current is deprecated and will no longer be supported.');\n return containerRef.current;\n },\n configurable: true\n });\n });\n var _useState = useState({\n containerWidth: initialDimension.width,\n containerHeight: initialDimension.height\n }),\n _useState2 = _slicedToArray(_useState, 2),\n sizes = _useState2[0],\n setSizes = _useState2[1];\n var setContainerSize = useCallback(function (newWidth, newHeight) {\n setSizes(function (prevState) {\n var roundedWidth = Math.round(newWidth);\n var roundedHeight = Math.round(newHeight);\n if (prevState.containerWidth === roundedWidth && prevState.containerHeight === roundedHeight) {\n return prevState;\n }\n return {\n containerWidth: roundedWidth,\n containerHeight: roundedHeight\n };\n });\n }, []);\n useEffect(function () {\n var callback = function callback(entries) {\n var _onResizeRef$current;\n var _entries$0$contentRec = entries[0].contentRect,\n containerWidth = _entries$0$contentRec.width,\n containerHeight = _entries$0$contentRec.height;\n setContainerSize(containerWidth, containerHeight);\n (_onResizeRef$current = onResizeRef.current) === null || _onResizeRef$current === void 0 || _onResizeRef$current.call(onResizeRef, containerWidth, containerHeight);\n };\n if (debounce > 0) {\n callback = throttle(callback, debounce, {\n trailing: true,\n leading: false\n });\n }\n var observer = new ResizeObserver(callback);\n var _containerRef$current = containerRef.current.getBoundingClientRect(),\n containerWidth = _containerRef$current.width,\n containerHeight = _containerRef$current.height;\n setContainerSize(containerWidth, containerHeight);\n observer.observe(containerRef.current);\n return function () {\n observer.disconnect();\n };\n }, [setContainerSize, debounce]);\n var chartContent = useMemo(function () {\n var containerWidth = sizes.containerWidth,\n containerHeight = sizes.containerHeight;\n if (containerWidth < 0 || containerHeight < 0) {\n return null;\n }\n warn(isPercent(width) || isPercent(height), \"The width(%s) and height(%s) are both fixed numbers,\\n maybe you don't need to use a ResponsiveContainer.\", width, height);\n warn(!aspect || aspect > 0, 'The aspect(%s) must be greater than zero.', aspect);\n var calculatedWidth = isPercent(width) ? containerWidth : width;\n var calculatedHeight = isPercent(height) ? containerHeight : height;\n if (aspect && aspect > 0) {\n // Preserve the desired aspect ratio\n if (calculatedWidth) {\n // Will default to using width for aspect ratio\n calculatedHeight = calculatedWidth / aspect;\n } else if (calculatedHeight) {\n // But we should also take height into consideration\n calculatedWidth = calculatedHeight * aspect;\n }\n\n // if maxHeight is set, overwrite if calculatedHeight is greater than maxHeight\n if (maxHeight && calculatedHeight > maxHeight) {\n calculatedHeight = maxHeight;\n }\n }\n warn(calculatedWidth > 0 || calculatedHeight > 0, \"The width(%s) and height(%s) of chart should be greater than 0,\\n please check the style of container, or the props width(%s) and height(%s),\\n or add a minWidth(%s) or minHeight(%s) or use aspect(%s) to control the\\n height and width.\", calculatedWidth, calculatedHeight, width, height, minWidth, minHeight, aspect);\n var isCharts = !Array.isArray(children) && isElement(children) && getDisplayName(children.type).endsWith('Chart');\n return React.Children.map(children, function (child) {\n if (isElement(child)) {\n return /*#__PURE__*/cloneElement(child, _objectSpread({\n width: calculatedWidth,\n height: calculatedHeight\n }, isCharts ? {\n style: _objectSpread({\n height: '100%',\n width: '100%',\n maxHeight: calculatedHeight,\n maxWidth: calculatedWidth\n }, child.props.style)\n } : {}));\n }\n return child;\n });\n }, [aspect, children, height, maxHeight, minHeight, minWidth, sizes, width]);\n return /*#__PURE__*/React.createElement(\"div\", {\n id: id ? \"\".concat(id) : undefined,\n className: clsx('recharts-responsive-container', className),\n style: _objectSpread(_objectSpread({}, style), {}, {\n width: width,\n height: height,\n minWidth: minWidth,\n minHeight: minHeight,\n maxHeight: maxHeight\n }),\n ref: containerRef\n }, chartContent);\n});","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _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, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : String(i); }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nvar MULTIPLY_OR_DIVIDE_REGEX = /(-?\\d+(?:\\.\\d+)?[a-zA-Z%]*)([*/])(-?\\d+(?:\\.\\d+)?[a-zA-Z%]*)/;\nvar ADD_OR_SUBTRACT_REGEX = /(-?\\d+(?:\\.\\d+)?[a-zA-Z%]*)([+-])(-?\\d+(?:\\.\\d+)?[a-zA-Z%]*)/;\nvar CSS_LENGTH_UNIT_REGEX = /^px|cm|vh|vw|em|rem|%|mm|in|pt|pc|ex|ch|vmin|vmax|Q$/;\nvar NUM_SPLIT_REGEX = /(-?\\d+(?:\\.\\d+)?)([a-zA-Z%]+)?/;\nvar CONVERSION_RATES = {\n cm: 96 / 2.54,\n mm: 96 / 25.4,\n pt: 96 / 72,\n pc: 96 / 6,\n \"in\": 96,\n Q: 96 / (2.54 * 40),\n px: 1\n};\nvar FIXED_CSS_LENGTH_UNITS = Object.keys(CONVERSION_RATES);\nvar STR_NAN = 'NaN';\nfunction convertToPx(value, unit) {\n return value * CONVERSION_RATES[unit];\n}\nvar DecimalCSS = /*#__PURE__*/function () {\n function DecimalCSS(num, unit) {\n _classCallCheck(this, DecimalCSS);\n this.num = num;\n this.unit = unit;\n this.num = num;\n this.unit = unit;\n if (Number.isNaN(num)) {\n this.unit = '';\n }\n if (unit !== '' && !CSS_LENGTH_UNIT_REGEX.test(unit)) {\n this.num = NaN;\n this.unit = '';\n }\n if (FIXED_CSS_LENGTH_UNITS.includes(unit)) {\n this.num = convertToPx(num, unit);\n this.unit = 'px';\n }\n }\n _createClass(DecimalCSS, [{\n key: \"add\",\n value: function add(other) {\n if (this.unit !== other.unit) {\n return new DecimalCSS(NaN, '');\n }\n return new DecimalCSS(this.num + other.num, this.unit);\n }\n }, {\n key: \"subtract\",\n value: function subtract(other) {\n if (this.unit !== other.unit) {\n return new DecimalCSS(NaN, '');\n }\n return new DecimalCSS(this.num - other.num, this.unit);\n }\n }, {\n key: \"multiply\",\n value: function multiply(other) {\n if (this.unit !== '' && other.unit !== '' && this.unit !== other.unit) {\n return new DecimalCSS(NaN, '');\n }\n return new DecimalCSS(this.num * other.num, this.unit || other.unit);\n }\n }, {\n key: \"divide\",\n value: function divide(other) {\n if (this.unit !== '' && other.unit !== '' && this.unit !== other.unit) {\n return new DecimalCSS(NaN, '');\n }\n return new DecimalCSS(this.num / other.num, this.unit || other.unit);\n }\n }, {\n key: \"toString\",\n value: function toString() {\n return \"\".concat(this.num).concat(this.unit);\n }\n }, {\n key: \"isNaN\",\n value: function isNaN() {\n return Number.isNaN(this.num);\n }\n }], [{\n key: \"parse\",\n value: function parse(str) {\n var _NUM_SPLIT_REGEX$exec;\n var _ref = (_NUM_SPLIT_REGEX$exec = NUM_SPLIT_REGEX.exec(str)) !== null && _NUM_SPLIT_REGEX$exec !== void 0 ? _NUM_SPLIT_REGEX$exec : [],\n _ref2 = _slicedToArray(_ref, 3),\n numStr = _ref2[1],\n unit = _ref2[2];\n return new DecimalCSS(parseFloat(numStr), unit !== null && unit !== void 0 ? unit : '');\n }\n }]);\n return DecimalCSS;\n}();\nfunction calculateArithmetic(expr) {\n if (expr.includes(STR_NAN)) {\n return STR_NAN;\n }\n var newExpr = expr;\n while (newExpr.includes('*') || newExpr.includes('/')) {\n var _MULTIPLY_OR_DIVIDE_R;\n var _ref3 = (_MULTIPLY_OR_DIVIDE_R = MULTIPLY_OR_DIVIDE_REGEX.exec(newExpr)) !== null && _MULTIPLY_OR_DIVIDE_R !== void 0 ? _MULTIPLY_OR_DIVIDE_R : [],\n _ref4 = _slicedToArray(_ref3, 4),\n leftOperand = _ref4[1],\n operator = _ref4[2],\n rightOperand = _ref4[3];\n var lTs = DecimalCSS.parse(leftOperand !== null && leftOperand !== void 0 ? leftOperand : '');\n var rTs = DecimalCSS.parse(rightOperand !== null && rightOperand !== void 0 ? rightOperand : '');\n var result = operator === '*' ? lTs.multiply(rTs) : lTs.divide(rTs);\n if (result.isNaN()) {\n return STR_NAN;\n }\n newExpr = newExpr.replace(MULTIPLY_OR_DIVIDE_REGEX, result.toString());\n }\n while (newExpr.includes('+') || /.-\\d+(?:\\.\\d+)?/.test(newExpr)) {\n var _ADD_OR_SUBTRACT_REGE;\n var _ref5 = (_ADD_OR_SUBTRACT_REGE = ADD_OR_SUBTRACT_REGEX.exec(newExpr)) !== null && _ADD_OR_SUBTRACT_REGE !== void 0 ? _ADD_OR_SUBTRACT_REGE : [],\n _ref6 = _slicedToArray(_ref5, 4),\n _leftOperand = _ref6[1],\n _operator = _ref6[2],\n _rightOperand = _ref6[3];\n var _lTs = DecimalCSS.parse(_leftOperand !== null && _leftOperand !== void 0 ? _leftOperand : '');\n var _rTs = DecimalCSS.parse(_rightOperand !== null && _rightOperand !== void 0 ? _rightOperand : '');\n var _result = _operator === '+' ? _lTs.add(_rTs) : _lTs.subtract(_rTs);\n if (_result.isNaN()) {\n return STR_NAN;\n }\n newExpr = newExpr.replace(ADD_OR_SUBTRACT_REGEX, _result.toString());\n }\n return newExpr;\n}\nvar PARENTHESES_REGEX = /\\(([^()]*)\\)/;\nfunction calculateParentheses(expr) {\n var newExpr = expr;\n while (newExpr.includes('(')) {\n var _PARENTHESES_REGEX$ex = PARENTHESES_REGEX.exec(newExpr),\n _PARENTHESES_REGEX$ex2 = _slicedToArray(_PARENTHESES_REGEX$ex, 2),\n parentheticalExpression = _PARENTHESES_REGEX$ex2[1];\n newExpr = newExpr.replace(PARENTHESES_REGEX, calculateArithmetic(parentheticalExpression));\n }\n return newExpr;\n}\nfunction evaluateExpression(expression) {\n var newExpr = expression.replace(/\\s+/g, '');\n newExpr = calculateParentheses(newExpr);\n newExpr = calculateArithmetic(newExpr);\n return newExpr;\n}\nexport function safeEvaluateExpression(expression) {\n try {\n return evaluateExpression(expression);\n } catch (e) {\n /* istanbul ignore next */\n return STR_NAN;\n }\n}\nexport function reduceCSSCalc(expression) {\n var result = safeEvaluateExpression(expression.slice(5, -1));\n if (result === STR_NAN) {\n // notify the user\n return '';\n }\n return result;\n}","var _excluded = [\"x\", \"y\", \"lineHeight\", \"capHeight\", \"scaleToFit\", \"textAnchor\", \"verticalAnchor\", \"fill\"],\n _excluded2 = [\"dx\", \"dy\", \"angle\", \"className\", \"breakAll\"];\nfunction _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); }\nfunction _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; }\nfunction _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; }\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nimport React, { useMemo } from 'react';\nimport isNil from 'lodash/isNil';\nimport clsx from 'clsx';\nimport { isNumber, isNumOrStr } from '../util/DataUtils';\nimport { Global } from '../util/Global';\nimport { filterProps } from '../util/ReactUtils';\nimport { getStringSize } from '../util/DOMUtils';\nimport { reduceCSSCalc } from '../util/ReduceCSSCalc';\nvar BREAKING_SPACES = /[ \\f\\n\\r\\t\\v\\u2028\\u2029]+/;\nvar calculateWordWidths = function calculateWordWidths(_ref) {\n var children = _ref.children,\n breakAll = _ref.breakAll,\n style = _ref.style;\n try {\n var words = [];\n if (!isNil(children)) {\n if (breakAll) {\n words = children.toString().split('');\n } else {\n words = children.toString().split(BREAKING_SPACES);\n }\n }\n var wordsWithComputedWidth = words.map(function (word) {\n return {\n word: word,\n width: getStringSize(word, style).width\n };\n });\n var spaceWidth = breakAll ? 0 : getStringSize(\"\\xA0\", style).width;\n return {\n wordsWithComputedWidth: wordsWithComputedWidth,\n spaceWidth: spaceWidth\n };\n } catch (e) {\n return null;\n }\n};\nvar calculateWordsByLines = function calculateWordsByLines(_ref2, initialWordsWithComputedWith, spaceWidth, lineWidth, scaleToFit) {\n var maxLines = _ref2.maxLines,\n children = _ref2.children,\n style = _ref2.style,\n breakAll = _ref2.breakAll;\n var shouldLimitLines = isNumber(maxLines);\n var text = children;\n var calculate = function calculate() {\n var words = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n return words.reduce(function (result, _ref3) {\n var word = _ref3.word,\n width = _ref3.width;\n var currentLine = result[result.length - 1];\n if (currentLine && (lineWidth == null || scaleToFit || currentLine.width + width + spaceWidth < Number(lineWidth))) {\n // Word can be added to an existing line\n currentLine.words.push(word);\n currentLine.width += width + spaceWidth;\n } else {\n // Add first word to line or word is too long to scaleToFit on existing line\n var newLine = {\n words: [word],\n width: width\n };\n result.push(newLine);\n }\n return result;\n }, []);\n };\n var originalResult = calculate(initialWordsWithComputedWith);\n var findLongestLine = function findLongestLine(words) {\n return words.reduce(function (a, b) {\n return a.width > b.width ? a : b;\n });\n };\n if (!shouldLimitLines) {\n return originalResult;\n }\n var suffix = '…';\n var checkOverflow = function checkOverflow(index) {\n var tempText = text.slice(0, index);\n var words = calculateWordWidths({\n breakAll: breakAll,\n style: style,\n children: tempText + suffix\n }).wordsWithComputedWidth;\n var result = calculate(words);\n var doesOverflow = result.length > maxLines || findLongestLine(result).width > Number(lineWidth);\n return [doesOverflow, result];\n };\n var start = 0;\n var end = text.length - 1;\n var iterations = 0;\n var trimmedResult;\n while (start <= end && iterations <= text.length - 1) {\n var middle = Math.floor((start + end) / 2);\n var prev = middle - 1;\n var _checkOverflow = checkOverflow(prev),\n _checkOverflow2 = _slicedToArray(_checkOverflow, 2),\n doesPrevOverflow = _checkOverflow2[0],\n result = _checkOverflow2[1];\n var _checkOverflow3 = checkOverflow(middle),\n _checkOverflow4 = _slicedToArray(_checkOverflow3, 1),\n doesMiddleOverflow = _checkOverflow4[0];\n if (!doesPrevOverflow && !doesMiddleOverflow) {\n start = middle + 1;\n }\n if (doesPrevOverflow && doesMiddleOverflow) {\n end = middle - 1;\n }\n if (!doesPrevOverflow && doesMiddleOverflow) {\n trimmedResult = result;\n break;\n }\n iterations++;\n }\n\n // Fallback to originalResult (result without trimming) if we cannot find the\n // where to trim. This should not happen :tm:\n return trimmedResult || originalResult;\n};\nvar getWordsWithoutCalculate = function getWordsWithoutCalculate(children) {\n var words = !isNil(children) ? children.toString().split(BREAKING_SPACES) : [];\n return [{\n words: words\n }];\n};\nvar getWordsByLines = function getWordsByLines(_ref4) {\n var width = _ref4.width,\n scaleToFit = _ref4.scaleToFit,\n children = _ref4.children,\n style = _ref4.style,\n breakAll = _ref4.breakAll,\n maxLines = _ref4.maxLines;\n // Only perform calculations if using features that require them (multiline, scaleToFit)\n if ((width || scaleToFit) && !Global.isSsr) {\n var wordsWithComputedWidth, spaceWidth;\n var wordWidths = calculateWordWidths({\n breakAll: breakAll,\n children: children,\n style: style\n });\n if (wordWidths) {\n var wcw = wordWidths.wordsWithComputedWidth,\n sw = wordWidths.spaceWidth;\n wordsWithComputedWidth = wcw;\n spaceWidth = sw;\n } else {\n return getWordsWithoutCalculate(children);\n }\n return calculateWordsByLines({\n breakAll: breakAll,\n children: children,\n maxLines: maxLines,\n style: style\n }, wordsWithComputedWidth, spaceWidth, width, scaleToFit);\n }\n return getWordsWithoutCalculate(children);\n};\nvar DEFAULT_FILL = '#808080';\nexport var Text = function Text(_ref5) {\n var _ref5$x = _ref5.x,\n propsX = _ref5$x === void 0 ? 0 : _ref5$x,\n _ref5$y = _ref5.y,\n propsY = _ref5$y === void 0 ? 0 : _ref5$y,\n _ref5$lineHeight = _ref5.lineHeight,\n lineHeight = _ref5$lineHeight === void 0 ? '1em' : _ref5$lineHeight,\n _ref5$capHeight = _ref5.capHeight,\n capHeight = _ref5$capHeight === void 0 ? '0.71em' : _ref5$capHeight,\n _ref5$scaleToFit = _ref5.scaleToFit,\n scaleToFit = _ref5$scaleToFit === void 0 ? false : _ref5$scaleToFit,\n _ref5$textAnchor = _ref5.textAnchor,\n textAnchor = _ref5$textAnchor === void 0 ? 'start' : _ref5$textAnchor,\n _ref5$verticalAnchor = _ref5.verticalAnchor,\n verticalAnchor = _ref5$verticalAnchor === void 0 ? 'end' : _ref5$verticalAnchor,\n _ref5$fill = _ref5.fill,\n fill = _ref5$fill === void 0 ? DEFAULT_FILL : _ref5$fill,\n props = _objectWithoutProperties(_ref5, _excluded);\n var wordsByLines = useMemo(function () {\n return getWordsByLines({\n breakAll: props.breakAll,\n children: props.children,\n maxLines: props.maxLines,\n scaleToFit: scaleToFit,\n style: props.style,\n width: props.width\n });\n }, [props.breakAll, props.children, props.maxLines, scaleToFit, props.style, props.width]);\n var dx = props.dx,\n dy = props.dy,\n angle = props.angle,\n className = props.className,\n breakAll = props.breakAll,\n textProps = _objectWithoutProperties(props, _excluded2);\n if (!isNumOrStr(propsX) || !isNumOrStr(propsY)) {\n return null;\n }\n var x = propsX + (isNumber(dx) ? dx : 0);\n var y = propsY + (isNumber(dy) ? dy : 0);\n var startDy;\n switch (verticalAnchor) {\n case 'start':\n startDy = reduceCSSCalc(\"calc(\".concat(capHeight, \")\"));\n break;\n case 'middle':\n startDy = reduceCSSCalc(\"calc(\".concat((wordsByLines.length - 1) / 2, \" * -\").concat(lineHeight, \" + (\").concat(capHeight, \" / 2))\"));\n break;\n default:\n startDy = reduceCSSCalc(\"calc(\".concat(wordsByLines.length - 1, \" * -\").concat(lineHeight, \")\"));\n break;\n }\n var transforms = [];\n if (scaleToFit) {\n var lineWidth = wordsByLines[0].width;\n var width = props.width;\n transforms.push(\"scale(\".concat((isNumber(width) ? width / lineWidth : 1) / lineWidth, \")\"));\n }\n if (angle) {\n transforms.push(\"rotate(\".concat(angle, \", \").concat(x, \", \").concat(y, \")\"));\n }\n if (transforms.length) {\n textProps.transform = transforms.join(' ');\n }\n return /*#__PURE__*/React.createElement(\"text\", _extends({}, filterProps(textProps, true), {\n x: x,\n y: y,\n className: clsx('recharts-text', className),\n textAnchor: textAnchor,\n fill: fill.includes('url') ? DEFAULT_FILL : fill\n }), wordsByLines.map(function (line, index) {\n var words = line.words.join(breakAll ? '' : ' ');\n return /*#__PURE__*/React.createElement(\"tspan\", {\n x: x,\n dy: index === 0 ? startDy : lineHeight,\n key: words\n }, words);\n }));\n};","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _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); }\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : String(i); }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n/**\n * @fileOverview Default Tooltip Content\n */\n\nimport React from 'react';\nimport sortBy from 'lodash/sortBy';\nimport isNil from 'lodash/isNil';\nimport clsx from 'clsx';\nimport { isNumOrStr } from '../util/DataUtils';\nfunction defaultFormatter(value) {\n return Array.isArray(value) && isNumOrStr(value[0]) && isNumOrStr(value[1]) ? value.join(' ~ ') : value;\n}\nexport var DefaultTooltipContent = function DefaultTooltipContent(props) {\n var _props$separator = props.separator,\n separator = _props$separator === void 0 ? ' : ' : _props$separator,\n _props$contentStyle = props.contentStyle,\n contentStyle = _props$contentStyle === void 0 ? {} : _props$contentStyle,\n _props$itemStyle = props.itemStyle,\n itemStyle = _props$itemStyle === void 0 ? {} : _props$itemStyle,\n _props$labelStyle = props.labelStyle,\n labelStyle = _props$labelStyle === void 0 ? {} : _props$labelStyle,\n payload = props.payload,\n formatter = props.formatter,\n itemSorter = props.itemSorter,\n wrapperClassName = props.wrapperClassName,\n labelClassName = props.labelClassName,\n label = props.label,\n labelFormatter = props.labelFormatter,\n _props$accessibilityL = props.accessibilityLayer,\n accessibilityLayer = _props$accessibilityL === void 0 ? false : _props$accessibilityL;\n var renderContent = function renderContent() {\n if (payload && payload.length) {\n var listStyle = {\n padding: 0,\n margin: 0\n };\n var items = (itemSorter ? sortBy(payload, itemSorter) : payload).map(function (entry, i) {\n if (entry.type === 'none') {\n return null;\n }\n var finalItemStyle = _objectSpread({\n display: 'block',\n paddingTop: 4,\n paddingBottom: 4,\n color: entry.color || '#000'\n }, itemStyle);\n var finalFormatter = entry.formatter || formatter || defaultFormatter;\n var value = entry.value,\n name = entry.name;\n var finalValue = value;\n var finalName = name;\n if (finalFormatter && finalValue != null && finalName != null) {\n var formatted = finalFormatter(value, name, entry, i, payload);\n if (Array.isArray(formatted)) {\n var _formatted = _slicedToArray(formatted, 2);\n finalValue = _formatted[0];\n finalName = _formatted[1];\n } else {\n finalValue = formatted;\n }\n }\n return (\n /*#__PURE__*/\n // eslint-disable-next-line react/no-array-index-key\n React.createElement(\"li\", {\n className: \"recharts-tooltip-item\",\n key: \"tooltip-item-\".concat(i),\n style: finalItemStyle\n }, isNumOrStr(finalName) ? /*#__PURE__*/React.createElement(\"span\", {\n className: \"recharts-tooltip-item-name\"\n }, finalName) : null, isNumOrStr(finalName) ? /*#__PURE__*/React.createElement(\"span\", {\n className: \"recharts-tooltip-item-separator\"\n }, separator) : null, /*#__PURE__*/React.createElement(\"span\", {\n className: \"recharts-tooltip-item-value\"\n }, finalValue), /*#__PURE__*/React.createElement(\"span\", {\n className: \"recharts-tooltip-item-unit\"\n }, entry.unit || ''))\n );\n });\n return /*#__PURE__*/React.createElement(\"ul\", {\n className: \"recharts-tooltip-item-list\",\n style: listStyle\n }, items);\n }\n return null;\n };\n var finalStyle = _objectSpread({\n margin: 0,\n padding: 10,\n backgroundColor: '#fff',\n border: '1px solid #ccc',\n whiteSpace: 'nowrap'\n }, contentStyle);\n var finalLabelStyle = _objectSpread({\n margin: 0\n }, labelStyle);\n var hasLabel = !isNil(label);\n var finalLabel = hasLabel ? label : '';\n var wrapperCN = clsx('recharts-default-tooltip', wrapperClassName);\n var labelCN = clsx('recharts-tooltip-label', labelClassName);\n if (hasLabel && labelFormatter && payload !== undefined && payload !== null) {\n finalLabel = labelFormatter(label, payload);\n }\n var accessibilityAttributes = accessibilityLayer ? {\n role: 'status',\n 'aria-live': 'assertive'\n } : {};\n return /*#__PURE__*/React.createElement(\"div\", _extends({\n className: wrapperCN,\n style: finalStyle\n }, accessibilityAttributes), /*#__PURE__*/React.createElement(\"p\", {\n className: labelCN,\n style: finalLabelStyle\n }, /*#__PURE__*/React.isValidElement(finalLabel) ? finalLabel : \"\".concat(finalLabel)), renderContent());\n};","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : String(i); }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nimport clsx from 'clsx';\nimport { isNumber } from '../DataUtils';\nvar CSS_CLASS_PREFIX = 'recharts-tooltip-wrapper';\nvar TOOLTIP_HIDDEN = {\n visibility: 'hidden'\n};\nexport function getTooltipCSSClassName(_ref) {\n var coordinate = _ref.coordinate,\n translateX = _ref.translateX,\n translateY = _ref.translateY;\n return clsx(CSS_CLASS_PREFIX, _defineProperty(_defineProperty(_defineProperty(_defineProperty({}, \"\".concat(CSS_CLASS_PREFIX, \"-right\"), isNumber(translateX) && coordinate && isNumber(coordinate.x) && translateX >= coordinate.x), \"\".concat(CSS_CLASS_PREFIX, \"-left\"), isNumber(translateX) && coordinate && isNumber(coordinate.x) && translateX < coordinate.x), \"\".concat(CSS_CLASS_PREFIX, \"-bottom\"), isNumber(translateY) && coordinate && isNumber(coordinate.y) && translateY >= coordinate.y), \"\".concat(CSS_CLASS_PREFIX, \"-top\"), isNumber(translateY) && coordinate && isNumber(coordinate.y) && translateY < coordinate.y));\n}\nexport function getTooltipTranslateXY(_ref2) {\n var allowEscapeViewBox = _ref2.allowEscapeViewBox,\n coordinate = _ref2.coordinate,\n key = _ref2.key,\n offsetTopLeft = _ref2.offsetTopLeft,\n position = _ref2.position,\n reverseDirection = _ref2.reverseDirection,\n tooltipDimension = _ref2.tooltipDimension,\n viewBox = _ref2.viewBox,\n viewBoxDimension = _ref2.viewBoxDimension;\n if (position && isNumber(position[key])) {\n return position[key];\n }\n var negative = coordinate[key] - tooltipDimension - offsetTopLeft;\n var positive = coordinate[key] + offsetTopLeft;\n if (allowEscapeViewBox[key]) {\n return reverseDirection[key] ? negative : positive;\n }\n if (reverseDirection[key]) {\n var _tooltipBoundary = negative;\n var _viewBoxBoundary = viewBox[key];\n if (_tooltipBoundary < _viewBoxBoundary) {\n return Math.max(positive, viewBox[key]);\n }\n return Math.max(negative, viewBox[key]);\n }\n var tooltipBoundary = positive + tooltipDimension;\n var viewBoxBoundary = viewBox[key] + viewBoxDimension;\n if (tooltipBoundary > viewBoxBoundary) {\n return Math.max(negative, viewBox[key]);\n }\n return Math.max(positive, viewBox[key]);\n}\nexport function getTransformStyle(_ref3) {\n var translateX = _ref3.translateX,\n translateY = _ref3.translateY,\n useTranslate3d = _ref3.useTranslate3d;\n return {\n transform: useTranslate3d ? \"translate3d(\".concat(translateX, \"px, \").concat(translateY, \"px, 0)\") : \"translate(\".concat(translateX, \"px, \").concat(translateY, \"px)\")\n };\n}\nexport function getTooltipTranslate(_ref4) {\n var allowEscapeViewBox = _ref4.allowEscapeViewBox,\n coordinate = _ref4.coordinate,\n offsetTopLeft = _ref4.offsetTopLeft,\n position = _ref4.position,\n reverseDirection = _ref4.reverseDirection,\n tooltipBox = _ref4.tooltipBox,\n useTranslate3d = _ref4.useTranslate3d,\n viewBox = _ref4.viewBox;\n var cssProperties, translateX, translateY;\n if (tooltipBox.height > 0 && tooltipBox.width > 0 && coordinate) {\n translateX = getTooltipTranslateXY({\n allowEscapeViewBox: allowEscapeViewBox,\n coordinate: coordinate,\n key: 'x',\n offsetTopLeft: offsetTopLeft,\n position: position,\n reverseDirection: reverseDirection,\n tooltipDimension: tooltipBox.width,\n viewBox: viewBox,\n viewBoxDimension: viewBox.width\n });\n translateY = getTooltipTranslateXY({\n allowEscapeViewBox: allowEscapeViewBox,\n coordinate: coordinate,\n key: 'y',\n offsetTopLeft: offsetTopLeft,\n position: position,\n reverseDirection: reverseDirection,\n tooltipDimension: tooltipBox.height,\n viewBox: viewBox,\n viewBoxDimension: viewBox.height\n });\n cssProperties = getTransformStyle({\n translateX: translateX,\n translateY: translateY,\n useTranslate3d: useTranslate3d\n });\n } else {\n cssProperties = TOOLTIP_HIDDEN;\n }\n return {\n cssProperties: cssProperties,\n cssClasses: getTooltipCSSClassName({\n translateX: translateX,\n translateY: translateY,\n coordinate: coordinate\n })\n };\n}","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _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, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }\nfunction _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); }\nfunction _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _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); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : String(i); }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nimport React, { PureComponent } from 'react';\nimport { getTooltipTranslate } from '../util/tooltip/translate';\nvar EPSILON = 1;\nexport var TooltipBoundingBox = /*#__PURE__*/function (_PureComponent) {\n _inherits(TooltipBoundingBox, _PureComponent);\n function TooltipBoundingBox() {\n var _this;\n _classCallCheck(this, TooltipBoundingBox);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _callSuper(this, TooltipBoundingBox, [].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"state\", {\n dismissed: false,\n dismissedAtCoordinate: {\n x: 0,\n y: 0\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"lastBoundingBox\", {\n width: -1,\n height: -1\n });\n _defineProperty(_assertThisInitialized(_this), \"handleKeyDown\", function (event) {\n if (event.key === 'Escape') {\n var _this$props$coordinat, _this$props$coordinat2, _this$props$coordinat3, _this$props$coordinat4;\n _this.setState({\n dismissed: true,\n dismissedAtCoordinate: {\n x: (_this$props$coordinat = (_this$props$coordinat2 = _this.props.coordinate) === null || _this$props$coordinat2 === void 0 ? void 0 : _this$props$coordinat2.x) !== null && _this$props$coordinat !== void 0 ? _this$props$coordinat : 0,\n y: (_this$props$coordinat3 = (_this$props$coordinat4 = _this.props.coordinate) === null || _this$props$coordinat4 === void 0 ? void 0 : _this$props$coordinat4.y) !== null && _this$props$coordinat3 !== void 0 ? _this$props$coordinat3 : 0\n }\n });\n }\n });\n return _this;\n }\n _createClass(TooltipBoundingBox, [{\n key: \"updateBBox\",\n value: function updateBBox() {\n if (this.wrapperNode && this.wrapperNode.getBoundingClientRect) {\n var box = this.wrapperNode.getBoundingClientRect();\n if (Math.abs(box.width - this.lastBoundingBox.width) > EPSILON || Math.abs(box.height - this.lastBoundingBox.height) > EPSILON) {\n this.lastBoundingBox.width = box.width;\n this.lastBoundingBox.height = box.height;\n }\n } else if (this.lastBoundingBox.width !== -1 || this.lastBoundingBox.height !== -1) {\n this.lastBoundingBox.width = -1;\n this.lastBoundingBox.height = -1;\n }\n }\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n document.addEventListener('keydown', this.handleKeyDown);\n this.updateBBox();\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n document.removeEventListener('keydown', this.handleKeyDown);\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate() {\n var _this$props$coordinat5, _this$props$coordinat6;\n if (this.props.active) {\n this.updateBBox();\n }\n if (!this.state.dismissed) {\n return;\n }\n if (((_this$props$coordinat5 = this.props.coordinate) === null || _this$props$coordinat5 === void 0 ? void 0 : _this$props$coordinat5.x) !== this.state.dismissedAtCoordinate.x || ((_this$props$coordinat6 = this.props.coordinate) === null || _this$props$coordinat6 === void 0 ? void 0 : _this$props$coordinat6.y) !== this.state.dismissedAtCoordinate.y) {\n this.state.dismissed = false;\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n var _this$props = this.props,\n active = _this$props.active,\n allowEscapeViewBox = _this$props.allowEscapeViewBox,\n animationDuration = _this$props.animationDuration,\n animationEasing = _this$props.animationEasing,\n children = _this$props.children,\n coordinate = _this$props.coordinate,\n hasPayload = _this$props.hasPayload,\n isAnimationActive = _this$props.isAnimationActive,\n offset = _this$props.offset,\n position = _this$props.position,\n reverseDirection = _this$props.reverseDirection,\n useTranslate3d = _this$props.useTranslate3d,\n viewBox = _this$props.viewBox,\n wrapperStyle = _this$props.wrapperStyle;\n var _getTooltipTranslate = getTooltipTranslate({\n allowEscapeViewBox: allowEscapeViewBox,\n coordinate: coordinate,\n offsetTopLeft: offset,\n position: position,\n reverseDirection: reverseDirection,\n tooltipBox: {\n height: this.lastBoundingBox.height,\n width: this.lastBoundingBox.width\n },\n useTranslate3d: useTranslate3d,\n viewBox: viewBox\n }),\n cssClasses = _getTooltipTranslate.cssClasses,\n cssProperties = _getTooltipTranslate.cssProperties;\n var outerStyle = _objectSpread(_objectSpread({\n transition: isAnimationActive && active ? \"transform \".concat(animationDuration, \"ms \").concat(animationEasing) : undefined\n }, cssProperties), {}, {\n pointerEvents: 'none',\n visibility: !this.state.dismissed && active && hasPayload ? 'visible' : 'hidden',\n position: 'absolute',\n top: 0,\n left: 0\n }, wrapperStyle);\n return (\n /*#__PURE__*/\n // This element allow listening to the `Escape` key.\n // See https://github.com/recharts/recharts/pull/2925\n React.createElement(\"div\", {\n tabIndex: -1,\n className: cssClasses,\n style: outerStyle,\n ref: function ref(node) {\n _this2.wrapperNode = node;\n }\n }, children)\n );\n }\n }]);\n return TooltipBoundingBox;\n}(PureComponent);","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _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, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }\nfunction _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); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nfunction _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); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : String(i); }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n/**\n * @fileOverview Tooltip\n */\nimport React, { PureComponent } from 'react';\nimport { DefaultTooltipContent } from './DefaultTooltipContent';\nimport { TooltipBoundingBox } from './TooltipBoundingBox';\nimport { Global } from '../util/Global';\nimport { getUniqPayload } from '../util/payload/getUniqPayload';\nfunction defaultUniqBy(entry) {\n return entry.dataKey;\n}\nfunction renderContent(content, props) {\n if ( /*#__PURE__*/React.isValidElement(content)) {\n return /*#__PURE__*/React.cloneElement(content, props);\n }\n if (typeof content === 'function') {\n return /*#__PURE__*/React.createElement(content, props);\n }\n return /*#__PURE__*/React.createElement(DefaultTooltipContent, props);\n}\nexport var Tooltip = /*#__PURE__*/function (_PureComponent) {\n _inherits(Tooltip, _PureComponent);\n function Tooltip() {\n _classCallCheck(this, Tooltip);\n return _callSuper(this, Tooltip, arguments);\n }\n _createClass(Tooltip, [{\n key: \"render\",\n value: function render() {\n var _this = this;\n var _this$props = this.props,\n active = _this$props.active,\n allowEscapeViewBox = _this$props.allowEscapeViewBox,\n animationDuration = _this$props.animationDuration,\n animationEasing = _this$props.animationEasing,\n content = _this$props.content,\n coordinate = _this$props.coordinate,\n filterNull = _this$props.filterNull,\n isAnimationActive = _this$props.isAnimationActive,\n offset = _this$props.offset,\n payload = _this$props.payload,\n payloadUniqBy = _this$props.payloadUniqBy,\n position = _this$props.position,\n reverseDirection = _this$props.reverseDirection,\n useTranslate3d = _this$props.useTranslate3d,\n viewBox = _this$props.viewBox,\n wrapperStyle = _this$props.wrapperStyle;\n var finalPayload = payload !== null && payload !== void 0 ? payload : [];\n if (filterNull && finalPayload.length) {\n finalPayload = getUniqPayload(payload.filter(function (entry) {\n return entry.value != null && (entry.hide !== true || _this.props.includeHidden);\n }), payloadUniqBy, defaultUniqBy);\n }\n var hasPayload = finalPayload.length > 0;\n return /*#__PURE__*/React.createElement(TooltipBoundingBox, {\n allowEscapeViewBox: allowEscapeViewBox,\n animationDuration: animationDuration,\n animationEasing: animationEasing,\n isAnimationActive: isAnimationActive,\n active: active,\n coordinate: coordinate,\n hasPayload: hasPayload,\n offset: offset,\n position: position,\n reverseDirection: reverseDirection,\n useTranslate3d: useTranslate3d,\n viewBox: viewBox,\n wrapperStyle: wrapperStyle\n }, renderContent(content, _objectSpread(_objectSpread({}, this.props), {}, {\n payload: finalPayload\n })));\n }\n }]);\n return Tooltip;\n}(PureComponent);\n_defineProperty(Tooltip, \"displayName\", 'Tooltip');\n_defineProperty(Tooltip, \"defaultProps\", {\n accessibilityLayer: false,\n allowEscapeViewBox: {\n x: false,\n y: false\n },\n animationDuration: 400,\n animationEasing: 'ease',\n contentStyle: {},\n coordinate: {\n x: 0,\n y: 0\n },\n cursor: true,\n cursorStyle: {},\n filterNull: true,\n isAnimationActive: !Global.isSsr,\n itemStyle: {},\n labelStyle: {},\n offset: 10,\n reverseDirection: {\n x: false,\n y: false\n },\n separator: ' : ',\n trigger: 'hover',\n useTranslate3d: false,\n viewBox: {\n x: 0,\n y: 0,\n height: 0,\n width: 0\n },\n wrapperStyle: {}\n});","var _excluded = [\"children\", \"className\"];\nfunction _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); }\nfunction _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; }\nfunction _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; }\nimport React from 'react';\nimport clsx from 'clsx';\nimport { filterProps } from '../util/ReactUtils';\nexport var Layer = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var children = props.children,\n className = props.className,\n others = _objectWithoutProperties(props, _excluded);\n var layerClass = clsx('recharts-layer', className);\n return /*#__PURE__*/React.createElement(\"g\", _extends({\n className: layerClass\n }, filterProps(others, true), {\n ref: ref\n }), children);\n});","var _excluded = [\"children\", \"width\", \"height\", \"viewBox\", \"className\", \"style\", \"title\", \"desc\"];\nfunction _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); }\nfunction _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; }\nfunction _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; }\n/**\n * @fileOverview Surface\n */\nimport React from 'react';\nimport clsx from 'clsx';\nimport { filterProps } from '../util/ReactUtils';\nexport function Surface(props) {\n var children = props.children,\n width = props.width,\n height = props.height,\n viewBox = props.viewBox,\n className = props.className,\n style = props.style,\n title = props.title,\n desc = props.desc,\n others = _objectWithoutProperties(props, _excluded);\n var svgView = viewBox || {\n width: width,\n height: height,\n x: 0,\n y: 0\n };\n var layerClass = clsx('recharts-surface', className);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({}, filterProps(others, true, 'svg'), {\n className: layerClass,\n width: width,\n height: height,\n style: style,\n viewBox: \"\".concat(svgView.x, \" \").concat(svgView.y, \" \").concat(svgView.width, \" \").concat(svgView.height)\n }), /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"desc\", null, desc), children);\n}","import memoize from 'lodash/memoize';\n/**\n * This is memoized because the viewBox is unlikely to change often\n * - but because it is computed from offset, any change to it would re-render all children.\n *\n * And because we have many readers of the viewBox, and update it only rarely,\n * then let's optimize with memoization.\n */\nexport var calculateViewBox = memoize(function (offset) {\n return {\n x: offset.left,\n y: offset.top,\n width: offset.width,\n height: offset.height\n };\n}, function (offset) {\n return ['l', offset.left, 't', offset.top, 'w', offset.width, 'h', offset.height].join('');\n});","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nimport React, { createContext, useContext } from 'react';\nimport invariant from 'tiny-invariant';\nimport find from 'lodash/find';\nimport every from 'lodash/every';\nimport { calculateViewBox } from '../util/calculateViewBox';\nimport { getAnyElementOfObject } from '../util/DataUtils';\nexport var XAxisContext = /*#__PURE__*/createContext(undefined);\nexport var YAxisContext = /*#__PURE__*/createContext(undefined);\nexport var ViewBoxContext = /*#__PURE__*/createContext(undefined);\nexport var OffsetContext = /*#__PURE__*/createContext({});\nexport var ClipPathIdContext = /*#__PURE__*/createContext(undefined);\nexport var ChartHeightContext = /*#__PURE__*/createContext(0);\nexport var ChartWidthContext = /*#__PURE__*/createContext(0);\n\n/**\n * Will add all the properties required to render all individual Recharts components into a React Context.\n *\n * If you want to read these properties, see the collection of hooks exported from this file.\n *\n * @param {object} props CategoricalChartState, plus children\n * @returns {ReactElement} React Context Provider\n */\nexport var ChartLayoutContextProvider = function ChartLayoutContextProvider(props) {\n var _props$state = props.state,\n xAxisMap = _props$state.xAxisMap,\n yAxisMap = _props$state.yAxisMap,\n offset = _props$state.offset,\n clipPathId = props.clipPathId,\n children = props.children,\n width = props.width,\n height = props.height;\n\n /**\n * Perhaps we should compute this property when reading? Let's see what is more often used\n */\n var viewBox = calculateViewBox(offset);\n\n /*\n * This pretends to be a single context but actually is split into multiple smaller ones.\n * Why?\n * Because one React Context only allows to set one value.\n * But we need to set multiple values.\n * If we do that with one context, then we force re-render on components that might not even be interested\n * in the part of the state that has changed.\n *\n * By splitting into smaller contexts, we allow each components to be optimized and only re-render when its dependencies change.\n *\n * To actually achieve the optimal re-render, it is necessary to use React.memo().\n * See the test file for details.\n */\n return /*#__PURE__*/React.createElement(XAxisContext.Provider, {\n value: xAxisMap\n }, /*#__PURE__*/React.createElement(YAxisContext.Provider, {\n value: yAxisMap\n }, /*#__PURE__*/React.createElement(OffsetContext.Provider, {\n value: offset\n }, /*#__PURE__*/React.createElement(ViewBoxContext.Provider, {\n value: viewBox\n }, /*#__PURE__*/React.createElement(ClipPathIdContext.Provider, {\n value: clipPathId\n }, /*#__PURE__*/React.createElement(ChartHeightContext.Provider, {\n value: height\n }, /*#__PURE__*/React.createElement(ChartWidthContext.Provider, {\n value: width\n }, children)))))));\n};\nexport var useClipPathId = function useClipPathId() {\n return useContext(ClipPathIdContext);\n};\nfunction getKeysForDebug(object) {\n var keys = Object.keys(object);\n if (keys.length === 0) {\n return 'There are no available ids.';\n }\n return \"Available ids are: \".concat(keys, \".\");\n}\n\n/**\n * This either finds and returns Axis by the specified ID, or throws an exception if an axis with this ID does not exist.\n *\n * @param xAxisId identifier of the axis - it's either autogenerated ('0'), or passed via `id` prop as \n * @returns axis configuration object\n * @throws Error if no axis with this ID exists\n */\nexport var useXAxisOrThrow = function useXAxisOrThrow(xAxisId) {\n var xAxisMap = useContext(XAxisContext);\n !(xAxisMap != null) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Could not find Recharts context; are you sure this is rendered inside a Recharts wrapper component?') : invariant(false) : void 0;\n var xAxis = xAxisMap[xAxisId];\n !(xAxis != null) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Could not find xAxis by id \\\"\".concat(xAxisId, \"\\\" [\").concat(_typeof(xAxisId), \"]. \").concat(getKeysForDebug(xAxisMap))) : invariant(false) : void 0;\n return xAxis;\n};\n\n/**\n * This will find an arbitrary first XAxis. If there's exactly one it always returns that one\n * - but if there are multiple then it can return any of those.\n *\n * If you want specific XAxis out of multiple then prefer using useXAxisOrThrow\n *\n * @returns X axisOptions, or undefined - if there are no X axes\n */\nexport var useArbitraryXAxis = function useArbitraryXAxis() {\n var xAxisMap = useContext(XAxisContext);\n return getAnyElementOfObject(xAxisMap);\n};\n\n/**\n * This will find an arbitrary first YAxis. If there's exactly one it always returns that one\n * - but if there are multiple then it can return any of those.\n *\n * If you want specific YAxis out of multiple then prefer using useXAxisOrThrow\n *\n * @returns Y axisOptions, or undefined - if there are no Y axes\n */\nexport var useArbitraryYAxis = function useArbitraryYAxis() {\n var yAxisMap = useContext(YAxisContext);\n return getAnyElementOfObject(yAxisMap);\n};\n\n/**\n * This hooks will:\n * 1st attempt to find an YAxis that has all elements in its domain finite\n * If no such axis exists, it will return an arbitrary YAxis\n * if there are no Y axes then it returns undefined\n *\n * @returns Either Y axisOptions, or undefined if there are no Y axes\n */\nexport var useYAxisWithFiniteDomainOrRandom = function useYAxisWithFiniteDomainOrRandom() {\n var yAxisMap = useContext(YAxisContext);\n var yAxisWithFiniteDomain = find(yAxisMap, function (axis) {\n return every(axis.domain, Number.isFinite);\n });\n return yAxisWithFiniteDomain || getAnyElementOfObject(yAxisMap);\n};\n\n/**\n * This either finds and returns Axis by the specified ID, or throws an exception if an axis with this ID does not exist.\n *\n * @param yAxisId identifier of the axis - it's either autogenerated ('0'), or passed via `id` prop as \n * @returns axis configuration object\n * @throws Error if no axis with this ID exists\n */\nexport var useYAxisOrThrow = function useYAxisOrThrow(yAxisId) {\n var yAxisMap = useContext(YAxisContext);\n !(yAxisMap != null) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Could not find Recharts context; are you sure this is rendered inside a Recharts wrapper component?') : invariant(false) : void 0;\n var yAxis = yAxisMap[yAxisId];\n !(yAxis != null) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Could not find yAxis by id \\\"\".concat(yAxisId, \"\\\" [\").concat(_typeof(yAxisId), \"]. \").concat(getKeysForDebug(yAxisMap))) : invariant(false) : void 0;\n return yAxis;\n};\nexport var useViewBox = function useViewBox() {\n var viewBox = useContext(ViewBoxContext);\n return viewBox;\n};\nexport var useOffset = function useOffset() {\n return useContext(OffsetContext);\n};\nexport var useChartWidth = function useChartWidth() {\n return useContext(ChartWidthContext);\n};\nexport var useChartHeight = function useChartHeight() {\n return useContext(ChartHeightContext);\n};","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _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); }\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : String(i); }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n/**\n * @fileOverview Rectangle\n */\nimport React, { useEffect, useRef, useState } from 'react';\nimport clsx from 'clsx';\nimport Animate from 'react-smooth';\nimport { filterProps } from '../util/ReactUtils';\nvar getRectanglePath = function getRectanglePath(x, y, width, height, radius) {\n var maxRadius = Math.min(Math.abs(width) / 2, Math.abs(height) / 2);\n var ySign = height >= 0 ? 1 : -1;\n var xSign = width >= 0 ? 1 : -1;\n var clockWise = height >= 0 && width >= 0 || height < 0 && width < 0 ? 1 : 0;\n var path;\n if (maxRadius > 0 && radius instanceof Array) {\n var newRadius = [0, 0, 0, 0];\n for (var i = 0, len = 4; i < len; i++) {\n newRadius[i] = radius[i] > maxRadius ? maxRadius : radius[i];\n }\n path = \"M\".concat(x, \",\").concat(y + ySign * newRadius[0]);\n if (newRadius[0] > 0) {\n path += \"A \".concat(newRadius[0], \",\").concat(newRadius[0], \",0,0,\").concat(clockWise, \",\").concat(x + xSign * newRadius[0], \",\").concat(y);\n }\n path += \"L \".concat(x + width - xSign * newRadius[1], \",\").concat(y);\n if (newRadius[1] > 0) {\n path += \"A \".concat(newRadius[1], \",\").concat(newRadius[1], \",0,0,\").concat(clockWise, \",\\n \").concat(x + width, \",\").concat(y + ySign * newRadius[1]);\n }\n path += \"L \".concat(x + width, \",\").concat(y + height - ySign * newRadius[2]);\n if (newRadius[2] > 0) {\n path += \"A \".concat(newRadius[2], \",\").concat(newRadius[2], \",0,0,\").concat(clockWise, \",\\n \").concat(x + width - xSign * newRadius[2], \",\").concat(y + height);\n }\n path += \"L \".concat(x + xSign * newRadius[3], \",\").concat(y + height);\n if (newRadius[3] > 0) {\n path += \"A \".concat(newRadius[3], \",\").concat(newRadius[3], \",0,0,\").concat(clockWise, \",\\n \").concat(x, \",\").concat(y + height - ySign * newRadius[3]);\n }\n path += 'Z';\n } else if (maxRadius > 0 && radius === +radius && radius > 0) {\n var _newRadius = Math.min(maxRadius, radius);\n path = \"M \".concat(x, \",\").concat(y + ySign * _newRadius, \"\\n A \").concat(_newRadius, \",\").concat(_newRadius, \",0,0,\").concat(clockWise, \",\").concat(x + xSign * _newRadius, \",\").concat(y, \"\\n L \").concat(x + width - xSign * _newRadius, \",\").concat(y, \"\\n A \").concat(_newRadius, \",\").concat(_newRadius, \",0,0,\").concat(clockWise, \",\").concat(x + width, \",\").concat(y + ySign * _newRadius, \"\\n L \").concat(x + width, \",\").concat(y + height - ySign * _newRadius, \"\\n A \").concat(_newRadius, \",\").concat(_newRadius, \",0,0,\").concat(clockWise, \",\").concat(x + width - xSign * _newRadius, \",\").concat(y + height, \"\\n L \").concat(x + xSign * _newRadius, \",\").concat(y + height, \"\\n A \").concat(_newRadius, \",\").concat(_newRadius, \",0,0,\").concat(clockWise, \",\").concat(x, \",\").concat(y + height - ySign * _newRadius, \" Z\");\n } else {\n path = \"M \".concat(x, \",\").concat(y, \" h \").concat(width, \" v \").concat(height, \" h \").concat(-width, \" Z\");\n }\n return path;\n};\nexport var isInRectangle = function isInRectangle(point, rect) {\n if (!point || !rect) {\n return false;\n }\n var px = point.x,\n py = point.y;\n var x = rect.x,\n y = rect.y,\n width = rect.width,\n height = rect.height;\n if (Math.abs(width) > 0 && Math.abs(height) > 0) {\n var minX = Math.min(x, x + width);\n var maxX = Math.max(x, x + width);\n var minY = Math.min(y, y + height);\n var maxY = Math.max(y, y + height);\n return px >= minX && px <= maxX && py >= minY && py <= maxY;\n }\n return false;\n};\nvar defaultProps = {\n x: 0,\n y: 0,\n width: 0,\n height: 0,\n // The radius of border\n // The radius of four corners when radius is a number\n // The radius of left-top, right-top, right-bottom, left-bottom when radius is an array\n radius: 0,\n isAnimationActive: false,\n isUpdateAnimationActive: false,\n animationBegin: 0,\n animationDuration: 1500,\n animationEasing: 'ease'\n};\nexport var Rectangle = function Rectangle(rectangleProps) {\n var props = _objectSpread(_objectSpread({}, defaultProps), rectangleProps);\n var pathRef = useRef();\n var _useState = useState(-1),\n _useState2 = _slicedToArray(_useState, 2),\n totalLength = _useState2[0],\n setTotalLength = _useState2[1];\n useEffect(function () {\n if (pathRef.current && pathRef.current.getTotalLength) {\n try {\n var pathTotalLength = pathRef.current.getTotalLength();\n if (pathTotalLength) {\n setTotalLength(pathTotalLength);\n }\n } catch (err) {\n // calculate total length error\n }\n }\n }, []);\n var x = props.x,\n y = props.y,\n width = props.width,\n height = props.height,\n radius = props.radius,\n className = props.className;\n var animationEasing = props.animationEasing,\n animationDuration = props.animationDuration,\n animationBegin = props.animationBegin,\n isAnimationActive = props.isAnimationActive,\n isUpdateAnimationActive = props.isUpdateAnimationActive;\n if (x !== +x || y !== +y || width !== +width || height !== +height || width === 0 || height === 0) {\n return null;\n }\n var layerClass = clsx('recharts-rectangle', className);\n if (!isUpdateAnimationActive) {\n return /*#__PURE__*/React.createElement(\"path\", _extends({}, filterProps(props, true), {\n className: layerClass,\n d: getRectanglePath(x, y, width, height, radius)\n }));\n }\n return /*#__PURE__*/React.createElement(Animate, {\n canBegin: totalLength > 0,\n from: {\n width: width,\n height: height,\n x: x,\n y: y\n },\n to: {\n width: width,\n height: height,\n x: x,\n y: y\n },\n duration: animationDuration,\n animationEasing: animationEasing,\n isActive: isUpdateAnimationActive\n }, function (_ref) {\n var currWidth = _ref.width,\n currHeight = _ref.height,\n currX = _ref.x,\n currY = _ref.y;\n return /*#__PURE__*/React.createElement(Animate, {\n canBegin: totalLength > 0,\n from: \"0px \".concat(totalLength === -1 ? 1 : totalLength, \"px\"),\n to: \"\".concat(totalLength, \"px 0px\"),\n attributeName: \"strokeDasharray\",\n begin: animationBegin,\n duration: animationDuration,\n isActive: isAnimationActive,\n easing: animationEasing\n }, /*#__PURE__*/React.createElement(\"path\", _extends({}, filterProps(props, true), {\n className: layerClass,\n d: getRectanglePath(currX, currY, currWidth, currHeight, radius),\n ref: pathRef\n })));\n });\n};","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _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); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : String(i); }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n/**\n * @fileOverview Sector\n */\nimport React from 'react';\nimport clsx from 'clsx';\nimport { filterProps } from '../util/ReactUtils';\nimport { polarToCartesian, RADIAN } from '../util/PolarUtils';\nimport { getPercentValue, mathSign } from '../util/DataUtils';\nvar getDeltaAngle = function getDeltaAngle(startAngle, endAngle) {\n var sign = mathSign(endAngle - startAngle);\n var deltaAngle = Math.min(Math.abs(endAngle - startAngle), 359.999);\n return sign * deltaAngle;\n};\nvar getTangentCircle = function getTangentCircle(_ref) {\n var cx = _ref.cx,\n cy = _ref.cy,\n radius = _ref.radius,\n angle = _ref.angle,\n sign = _ref.sign,\n isExternal = _ref.isExternal,\n cornerRadius = _ref.cornerRadius,\n cornerIsExternal = _ref.cornerIsExternal;\n var centerRadius = cornerRadius * (isExternal ? 1 : -1) + radius;\n var theta = Math.asin(cornerRadius / centerRadius) / RADIAN;\n var centerAngle = cornerIsExternal ? angle : angle + sign * theta;\n var center = polarToCartesian(cx, cy, centerRadius, centerAngle);\n // The coordinate of point which is tangent to the circle\n var circleTangency = polarToCartesian(cx, cy, radius, centerAngle);\n // The coordinate of point which is tangent to the radius line\n var lineTangencyAngle = cornerIsExternal ? angle - sign * theta : angle;\n var lineTangency = polarToCartesian(cx, cy, centerRadius * Math.cos(theta * RADIAN), lineTangencyAngle);\n return {\n center: center,\n circleTangency: circleTangency,\n lineTangency: lineTangency,\n theta: theta\n };\n};\nvar getSectorPath = function getSectorPath(_ref2) {\n var cx = _ref2.cx,\n cy = _ref2.cy,\n innerRadius = _ref2.innerRadius,\n outerRadius = _ref2.outerRadius,\n startAngle = _ref2.startAngle,\n endAngle = _ref2.endAngle;\n var angle = getDeltaAngle(startAngle, endAngle);\n\n // When the angle of sector equals to 360, star point and end point coincide\n var tempEndAngle = startAngle + angle;\n var outerStartPoint = polarToCartesian(cx, cy, outerRadius, startAngle);\n var outerEndPoint = polarToCartesian(cx, cy, outerRadius, tempEndAngle);\n var path = \"M \".concat(outerStartPoint.x, \",\").concat(outerStartPoint.y, \"\\n A \").concat(outerRadius, \",\").concat(outerRadius, \",0,\\n \").concat(+(Math.abs(angle) > 180), \",\").concat(+(startAngle > tempEndAngle), \",\\n \").concat(outerEndPoint.x, \",\").concat(outerEndPoint.y, \"\\n \");\n if (innerRadius > 0) {\n var innerStartPoint = polarToCartesian(cx, cy, innerRadius, startAngle);\n var innerEndPoint = polarToCartesian(cx, cy, innerRadius, tempEndAngle);\n path += \"L \".concat(innerEndPoint.x, \",\").concat(innerEndPoint.y, \"\\n A \").concat(innerRadius, \",\").concat(innerRadius, \",0,\\n \").concat(+(Math.abs(angle) > 180), \",\").concat(+(startAngle <= tempEndAngle), \",\\n \").concat(innerStartPoint.x, \",\").concat(innerStartPoint.y, \" Z\");\n } else {\n path += \"L \".concat(cx, \",\").concat(cy, \" Z\");\n }\n return path;\n};\nvar getSectorWithCorner = function getSectorWithCorner(_ref3) {\n var cx = _ref3.cx,\n cy = _ref3.cy,\n innerRadius = _ref3.innerRadius,\n outerRadius = _ref3.outerRadius,\n cornerRadius = _ref3.cornerRadius,\n forceCornerRadius = _ref3.forceCornerRadius,\n cornerIsExternal = _ref3.cornerIsExternal,\n startAngle = _ref3.startAngle,\n endAngle = _ref3.endAngle;\n var sign = mathSign(endAngle - startAngle);\n var _getTangentCircle = getTangentCircle({\n cx: cx,\n cy: cy,\n radius: outerRadius,\n angle: startAngle,\n sign: sign,\n cornerRadius: cornerRadius,\n cornerIsExternal: cornerIsExternal\n }),\n soct = _getTangentCircle.circleTangency,\n solt = _getTangentCircle.lineTangency,\n sot = _getTangentCircle.theta;\n var _getTangentCircle2 = getTangentCircle({\n cx: cx,\n cy: cy,\n radius: outerRadius,\n angle: endAngle,\n sign: -sign,\n cornerRadius: cornerRadius,\n cornerIsExternal: cornerIsExternal\n }),\n eoct = _getTangentCircle2.circleTangency,\n eolt = _getTangentCircle2.lineTangency,\n eot = _getTangentCircle2.theta;\n var outerArcAngle = cornerIsExternal ? Math.abs(startAngle - endAngle) : Math.abs(startAngle - endAngle) - sot - eot;\n if (outerArcAngle < 0) {\n if (forceCornerRadius) {\n return \"M \".concat(solt.x, \",\").concat(solt.y, \"\\n a\").concat(cornerRadius, \",\").concat(cornerRadius, \",0,0,1,\").concat(cornerRadius * 2, \",0\\n a\").concat(cornerRadius, \",\").concat(cornerRadius, \",0,0,1,\").concat(-cornerRadius * 2, \",0\\n \");\n }\n return getSectorPath({\n cx: cx,\n cy: cy,\n innerRadius: innerRadius,\n outerRadius: outerRadius,\n startAngle: startAngle,\n endAngle: endAngle\n });\n }\n var path = \"M \".concat(solt.x, \",\").concat(solt.y, \"\\n A\").concat(cornerRadius, \",\").concat(cornerRadius, \",0,0,\").concat(+(sign < 0), \",\").concat(soct.x, \",\").concat(soct.y, \"\\n A\").concat(outerRadius, \",\").concat(outerRadius, \",0,\").concat(+(outerArcAngle > 180), \",\").concat(+(sign < 0), \",\").concat(eoct.x, \",\").concat(eoct.y, \"\\n A\").concat(cornerRadius, \",\").concat(cornerRadius, \",0,0,\").concat(+(sign < 0), \",\").concat(eolt.x, \",\").concat(eolt.y, \"\\n \");\n if (innerRadius > 0) {\n var _getTangentCircle3 = getTangentCircle({\n cx: cx,\n cy: cy,\n radius: innerRadius,\n angle: startAngle,\n sign: sign,\n isExternal: true,\n cornerRadius: cornerRadius,\n cornerIsExternal: cornerIsExternal\n }),\n sict = _getTangentCircle3.circleTangency,\n silt = _getTangentCircle3.lineTangency,\n sit = _getTangentCircle3.theta;\n var _getTangentCircle4 = getTangentCircle({\n cx: cx,\n cy: cy,\n radius: innerRadius,\n angle: endAngle,\n sign: -sign,\n isExternal: true,\n cornerRadius: cornerRadius,\n cornerIsExternal: cornerIsExternal\n }),\n eict = _getTangentCircle4.circleTangency,\n eilt = _getTangentCircle4.lineTangency,\n eit = _getTangentCircle4.theta;\n var innerArcAngle = cornerIsExternal ? Math.abs(startAngle - endAngle) : Math.abs(startAngle - endAngle) - sit - eit;\n if (innerArcAngle < 0 && cornerRadius === 0) {\n return \"\".concat(path, \"L\").concat(cx, \",\").concat(cy, \"Z\");\n }\n path += \"L\".concat(eilt.x, \",\").concat(eilt.y, \"\\n A\").concat(cornerRadius, \",\").concat(cornerRadius, \",0,0,\").concat(+(sign < 0), \",\").concat(eict.x, \",\").concat(eict.y, \"\\n A\").concat(innerRadius, \",\").concat(innerRadius, \",0,\").concat(+(innerArcAngle > 180), \",\").concat(+(sign > 0), \",\").concat(sict.x, \",\").concat(sict.y, \"\\n A\").concat(cornerRadius, \",\").concat(cornerRadius, \",0,0,\").concat(+(sign < 0), \",\").concat(silt.x, \",\").concat(silt.y, \"Z\");\n } else {\n path += \"L\".concat(cx, \",\").concat(cy, \"Z\");\n }\n return path;\n};\nvar defaultProps = {\n cx: 0,\n cy: 0,\n innerRadius: 0,\n outerRadius: 0,\n startAngle: 0,\n endAngle: 0,\n cornerRadius: 0,\n forceCornerRadius: false,\n cornerIsExternal: false\n};\nexport var Sector = function Sector(sectorProps) {\n var props = _objectSpread(_objectSpread({}, defaultProps), sectorProps);\n var cx = props.cx,\n cy = props.cy,\n innerRadius = props.innerRadius,\n outerRadius = props.outerRadius,\n cornerRadius = props.cornerRadius,\n forceCornerRadius = props.forceCornerRadius,\n cornerIsExternal = props.cornerIsExternal,\n startAngle = props.startAngle,\n endAngle = props.endAngle,\n className = props.className;\n if (outerRadius < innerRadius || startAngle === endAngle) {\n return null;\n }\n var layerClass = clsx('recharts-sector', className);\n var deltaRadius = outerRadius - innerRadius;\n var cr = getPercentValue(cornerRadius, deltaRadius, 0, true);\n var path;\n if (cr > 0 && Math.abs(startAngle - endAngle) < 360) {\n path = getSectorWithCorner({\n cx: cx,\n cy: cy,\n innerRadius: innerRadius,\n outerRadius: outerRadius,\n cornerRadius: Math.min(cr, deltaRadius / 2),\n forceCornerRadius: forceCornerRadius,\n cornerIsExternal: cornerIsExternal,\n startAngle: startAngle,\n endAngle: endAngle\n });\n } else {\n path = getSectorPath({\n cx: cx,\n cy: cy,\n innerRadius: innerRadius,\n outerRadius: outerRadius,\n startAngle: startAngle,\n endAngle: endAngle\n });\n }\n return /*#__PURE__*/React.createElement(\"path\", _extends({}, filterProps(props, true), {\n className: layerClass,\n d: path,\n role: \"img\"\n }));\n};","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nvar _excluded = [\"type\", \"size\", \"sizeType\"];\nfunction _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); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : String(i); }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _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; }\nfunction _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; }\n/**\n * @fileOverview Curve\n */\nimport React from 'react';\nimport upperFirst from 'lodash/upperFirst';\nimport { symbol as shapeSymbol, symbolCircle, symbolCross, symbolDiamond, symbolSquare, symbolStar, symbolTriangle, symbolWye } from 'victory-vendor/d3-shape';\nimport clsx from 'clsx';\nimport { filterProps } from '../util/ReactUtils';\nvar symbolFactories = {\n symbolCircle: symbolCircle,\n symbolCross: symbolCross,\n symbolDiamond: symbolDiamond,\n symbolSquare: symbolSquare,\n symbolStar: symbolStar,\n symbolTriangle: symbolTriangle,\n symbolWye: symbolWye\n};\nvar RADIAN = Math.PI / 180;\nvar getSymbolFactory = function getSymbolFactory(type) {\n var name = \"symbol\".concat(upperFirst(type));\n return symbolFactories[name] || symbolCircle;\n};\nvar calculateAreaSize = function calculateAreaSize(size, sizeType, type) {\n if (sizeType === 'area') {\n return size;\n }\n switch (type) {\n case 'cross':\n return 5 * size * size / 9;\n case 'diamond':\n return 0.5 * size * size / Math.sqrt(3);\n case 'square':\n return size * size;\n case 'star':\n {\n var angle = 18 * RADIAN;\n return 1.25 * size * size * (Math.tan(angle) - Math.tan(angle * 2) * Math.pow(Math.tan(angle), 2));\n }\n case 'triangle':\n return Math.sqrt(3) * size * size / 4;\n case 'wye':\n return (21 - 10 * Math.sqrt(3)) * size * size / 8;\n default:\n return Math.PI * size * size / 4;\n }\n};\nvar registerSymbol = function registerSymbol(key, factory) {\n symbolFactories[\"symbol\".concat(upperFirst(key))] = factory;\n};\nexport var Symbols = function Symbols(_ref) {\n var _ref$type = _ref.type,\n type = _ref$type === void 0 ? 'circle' : _ref$type,\n _ref$size = _ref.size,\n size = _ref$size === void 0 ? 64 : _ref$size,\n _ref$sizeType = _ref.sizeType,\n sizeType = _ref$sizeType === void 0 ? 'area' : _ref$sizeType,\n rest = _objectWithoutProperties(_ref, _excluded);\n var props = _objectSpread(_objectSpread({}, rest), {}, {\n type: type,\n size: size,\n sizeType: sizeType\n });\n\n /**\n * Calculate the path of curve\n * @return {String} path\n */\n var getPath = function getPath() {\n var symbolFactory = getSymbolFactory(type);\n var symbol = shapeSymbol().type(symbolFactory).size(calculateAreaSize(size, sizeType, type));\n return symbol();\n };\n var className = props.className,\n cx = props.cx,\n cy = props.cy;\n var filteredProps = filterProps(props, true);\n if (cx === +cx && cy === +cy && size === +size) {\n return /*#__PURE__*/React.createElement(\"path\", _extends({}, filteredProps, {\n className: clsx('recharts-symbols', className),\n transform: \"translate(\".concat(cx, \", \").concat(cy, \")\"),\n d: getPath()\n }));\n }\n return null;\n};\nSymbols.registerSymbol = registerSymbol;","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _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); }\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : String(i); }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n/**\n * @fileOverview Rectangle\n */\nimport React, { useEffect, useRef, useState } from 'react';\nimport clsx from 'clsx';\nimport Animate from 'react-smooth';\nimport { filterProps } from '../util/ReactUtils';\nvar getTrapezoidPath = function getTrapezoidPath(x, y, upperWidth, lowerWidth, height) {\n var widthGap = upperWidth - lowerWidth;\n var path;\n path = \"M \".concat(x, \",\").concat(y);\n path += \"L \".concat(x + upperWidth, \",\").concat(y);\n path += \"L \".concat(x + upperWidth - widthGap / 2, \",\").concat(y + height);\n path += \"L \".concat(x + upperWidth - widthGap / 2 - lowerWidth, \",\").concat(y + height);\n path += \"L \".concat(x, \",\").concat(y, \" Z\");\n return path;\n};\nvar defaultProps = {\n x: 0,\n y: 0,\n upperWidth: 0,\n lowerWidth: 0,\n height: 0,\n isUpdateAnimationActive: false,\n animationBegin: 0,\n animationDuration: 1500,\n animationEasing: 'ease'\n};\nexport var Trapezoid = function Trapezoid(props) {\n var trapezoidProps = _objectSpread(_objectSpread({}, defaultProps), props);\n var pathRef = useRef();\n var _useState = useState(-1),\n _useState2 = _slicedToArray(_useState, 2),\n totalLength = _useState2[0],\n setTotalLength = _useState2[1];\n useEffect(function () {\n if (pathRef.current && pathRef.current.getTotalLength) {\n try {\n var pathTotalLength = pathRef.current.getTotalLength();\n if (pathTotalLength) {\n setTotalLength(pathTotalLength);\n }\n } catch (err) {\n // calculate total length error\n }\n }\n }, []);\n var x = trapezoidProps.x,\n y = trapezoidProps.y,\n upperWidth = trapezoidProps.upperWidth,\n lowerWidth = trapezoidProps.lowerWidth,\n height = trapezoidProps.height,\n className = trapezoidProps.className;\n var animationEasing = trapezoidProps.animationEasing,\n animationDuration = trapezoidProps.animationDuration,\n animationBegin = trapezoidProps.animationBegin,\n isUpdateAnimationActive = trapezoidProps.isUpdateAnimationActive;\n if (x !== +x || y !== +y || upperWidth !== +upperWidth || lowerWidth !== +lowerWidth || height !== +height || upperWidth === 0 && lowerWidth === 0 || height === 0) {\n return null;\n }\n var layerClass = clsx('recharts-trapezoid', className);\n if (!isUpdateAnimationActive) {\n return /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"path\", _extends({}, filterProps(trapezoidProps, true), {\n className: layerClass,\n d: getTrapezoidPath(x, y, upperWidth, lowerWidth, height)\n })));\n }\n return /*#__PURE__*/React.createElement(Animate, {\n canBegin: totalLength > 0,\n from: {\n upperWidth: 0,\n lowerWidth: 0,\n height: height,\n x: x,\n y: y\n },\n to: {\n upperWidth: upperWidth,\n lowerWidth: lowerWidth,\n height: height,\n x: x,\n y: y\n },\n duration: animationDuration,\n animationEasing: animationEasing,\n isActive: isUpdateAnimationActive\n }, function (_ref) {\n var currUpperWidth = _ref.upperWidth,\n currLowerWidth = _ref.lowerWidth,\n currHeight = _ref.height,\n currX = _ref.x,\n currY = _ref.y;\n return /*#__PURE__*/React.createElement(Animate, {\n canBegin: totalLength > 0,\n from: \"0px \".concat(totalLength === -1 ? 1 : totalLength, \"px\"),\n to: \"\".concat(totalLength, \"px 0px\"),\n attributeName: \"strokeDasharray\",\n begin: animationBegin,\n duration: animationDuration,\n easing: animationEasing\n }, /*#__PURE__*/React.createElement(\"path\", _extends({}, filterProps(trapezoidProps, true), {\n className: layerClass,\n d: getTrapezoidPath(currX, currY, currUpperWidth, currLowerWidth, currHeight),\n ref: pathRef\n })));\n });\n};","var _excluded = [\"option\", \"shapeType\", \"propTransformer\", \"activeClassName\", \"isActive\"];\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _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; }\nfunction _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; }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : String(i); }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nimport React, { isValidElement, cloneElement } from 'react';\nimport isFunction from 'lodash/isFunction';\nimport isPlainObject from 'lodash/isPlainObject';\nimport isBoolean from 'lodash/isBoolean';\nimport isEqual from 'lodash/isEqual';\nimport { Rectangle } from '../shape/Rectangle';\nimport { Trapezoid } from '../shape/Trapezoid';\nimport { Sector } from '../shape/Sector';\nimport { Layer } from '../container/Layer';\nimport { Symbols } from '../shape/Symbols';\n\n/**\n * This is an abstraction for rendering a user defined prop for a customized shape in several forms.\n *\n * is the root and will handle taking in:\n * - an object of svg properties\n * - a boolean\n * - a render prop(inline function that returns jsx)\n * - a react element\n *\n * is a subcomponent of and used to match a component\n * to the value of props.shapeType that is passed to the root.\n *\n */\n\nfunction defaultPropTransformer(option, props) {\n return _objectSpread(_objectSpread({}, props), option);\n}\nfunction isSymbolsProps(shapeType, _elementProps) {\n return shapeType === 'symbols';\n}\nfunction ShapeSelector(_ref) {\n var shapeType = _ref.shapeType,\n elementProps = _ref.elementProps;\n switch (shapeType) {\n case 'rectangle':\n return /*#__PURE__*/React.createElement(Rectangle, elementProps);\n case 'trapezoid':\n return /*#__PURE__*/React.createElement(Trapezoid, elementProps);\n case 'sector':\n return /*#__PURE__*/React.createElement(Sector, elementProps);\n case 'symbols':\n if (isSymbolsProps(shapeType, elementProps)) {\n return /*#__PURE__*/React.createElement(Symbols, elementProps);\n }\n break;\n default:\n return null;\n }\n}\nexport function getPropsFromShapeOption(option) {\n if ( /*#__PURE__*/isValidElement(option)) {\n return option.props;\n }\n return option;\n}\nexport function Shape(_ref2) {\n var option = _ref2.option,\n shapeType = _ref2.shapeType,\n _ref2$propTransformer = _ref2.propTransformer,\n propTransformer = _ref2$propTransformer === void 0 ? defaultPropTransformer : _ref2$propTransformer,\n _ref2$activeClassName = _ref2.activeClassName,\n activeClassName = _ref2$activeClassName === void 0 ? 'recharts-active-shape' : _ref2$activeClassName,\n isActive = _ref2.isActive,\n props = _objectWithoutProperties(_ref2, _excluded);\n var shape;\n if ( /*#__PURE__*/isValidElement(option)) {\n shape = /*#__PURE__*/cloneElement(option, _objectSpread(_objectSpread({}, props), getPropsFromShapeOption(option)));\n } else if (isFunction(option)) {\n shape = option(props);\n } else if (isPlainObject(option) && !isBoolean(option)) {\n var nextProps = propTransformer(option, props);\n shape = /*#__PURE__*/React.createElement(ShapeSelector, {\n shapeType: shapeType,\n elementProps: nextProps\n });\n } else {\n var elementProps = props;\n shape = /*#__PURE__*/React.createElement(ShapeSelector, {\n shapeType: shapeType,\n elementProps: elementProps\n });\n }\n if (isActive) {\n return /*#__PURE__*/React.createElement(Layer, {\n className: activeClassName\n }, shape);\n }\n return shape;\n}\n\n/**\n * This is an abstraction to handle identifying the active index from a tooltip mouse interaction\n */\n\nexport function isFunnel(graphicalItem, _item) {\n return _item != null && 'trapezoids' in graphicalItem.props;\n}\nexport function isPie(graphicalItem, _item) {\n return _item != null && 'sectors' in graphicalItem.props;\n}\nexport function isScatter(graphicalItem, _item) {\n return _item != null && 'points' in graphicalItem.props;\n}\nexport function compareFunnel(shapeData, activeTooltipItem) {\n var _activeTooltipItem$la, _activeTooltipItem$la2;\n var xMatches = shapeData.x === (activeTooltipItem === null || activeTooltipItem === void 0 || (_activeTooltipItem$la = activeTooltipItem.labelViewBox) === null || _activeTooltipItem$la === void 0 ? void 0 : _activeTooltipItem$la.x) || shapeData.x === activeTooltipItem.x;\n var yMatches = shapeData.y === (activeTooltipItem === null || activeTooltipItem === void 0 || (_activeTooltipItem$la2 = activeTooltipItem.labelViewBox) === null || _activeTooltipItem$la2 === void 0 ? void 0 : _activeTooltipItem$la2.y) || shapeData.y === activeTooltipItem.y;\n return xMatches && yMatches;\n}\nexport function comparePie(shapeData, activeTooltipItem) {\n var startAngleMatches = shapeData.endAngle === activeTooltipItem.endAngle;\n var endAngleMatches = shapeData.startAngle === activeTooltipItem.startAngle;\n return startAngleMatches && endAngleMatches;\n}\nexport function compareScatter(shapeData, activeTooltipItem) {\n var xMatches = shapeData.x === activeTooltipItem.x;\n var yMatches = shapeData.y === activeTooltipItem.y;\n var zMatches = shapeData.z === activeTooltipItem.z;\n return xMatches && yMatches && zMatches;\n}\nfunction getComparisonFn(graphicalItem, activeItem) {\n var comparison;\n if (isFunnel(graphicalItem, activeItem)) {\n comparison = compareFunnel;\n } else if (isPie(graphicalItem, activeItem)) {\n comparison = comparePie;\n } else if (isScatter(graphicalItem, activeItem)) {\n comparison = compareScatter;\n }\n return comparison;\n}\nfunction getShapeDataKey(graphicalItem, activeItem) {\n var shapeKey;\n if (isFunnel(graphicalItem, activeItem)) {\n shapeKey = 'trapezoids';\n } else if (isPie(graphicalItem, activeItem)) {\n shapeKey = 'sectors';\n } else if (isScatter(graphicalItem, activeItem)) {\n shapeKey = 'points';\n }\n return shapeKey;\n}\nfunction getActiveShapeTooltipPayload(graphicalItem, activeItem) {\n if (isFunnel(graphicalItem, activeItem)) {\n var _activeItem$tooltipPa;\n return (_activeItem$tooltipPa = activeItem.tooltipPayload) === null || _activeItem$tooltipPa === void 0 || (_activeItem$tooltipPa = _activeItem$tooltipPa[0]) === null || _activeItem$tooltipPa === void 0 || (_activeItem$tooltipPa = _activeItem$tooltipPa.payload) === null || _activeItem$tooltipPa === void 0 ? void 0 : _activeItem$tooltipPa.payload;\n }\n if (isPie(graphicalItem, activeItem)) {\n var _activeItem$tooltipPa2;\n return (_activeItem$tooltipPa2 = activeItem.tooltipPayload) === null || _activeItem$tooltipPa2 === void 0 || (_activeItem$tooltipPa2 = _activeItem$tooltipPa2[0]) === null || _activeItem$tooltipPa2 === void 0 || (_activeItem$tooltipPa2 = _activeItem$tooltipPa2.payload) === null || _activeItem$tooltipPa2 === void 0 ? void 0 : _activeItem$tooltipPa2.payload;\n }\n if (isScatter(graphicalItem, activeItem)) {\n return activeItem.payload;\n }\n return {};\n}\n/**\n *\n * @param {GetActiveShapeIndexForTooltip} arg an object of incoming attributes from Tooltip\n * @returns {number}\n *\n * To handle possible duplicates in the data set,\n * match both the data value of the active item to a data value on a graph item,\n * and match the mouse coordinates of the active item to the coordinates of in a particular components shape data.\n * This assumes equal lengths of shape objects to data items.\n */\nexport function getActiveShapeIndexForTooltip(_ref3) {\n var activeTooltipItem = _ref3.activeTooltipItem,\n graphicalItem = _ref3.graphicalItem,\n itemData = _ref3.itemData;\n var shapeKey = getShapeDataKey(graphicalItem, activeTooltipItem);\n var tooltipPayload = getActiveShapeTooltipPayload(graphicalItem, activeTooltipItem);\n var activeItemMatches = itemData.filter(function (datum, dataIndex) {\n var valuesMatch = isEqual(tooltipPayload, datum);\n var mouseCoordinateMatches = graphicalItem.props[shapeKey].filter(function (shapeData) {\n var comparison = getComparisonFn(graphicalItem, activeTooltipItem);\n return comparison(shapeData, activeTooltipItem);\n });\n\n // get the last index in case of multiple matches\n var indexOfMouseCoordinates = graphicalItem.props[shapeKey].indexOf(mouseCoordinateMatches[mouseCoordinateMatches.length - 1]);\n var coordinatesMatch = dataIndex === indexOfMouseCoordinates;\n return valuesMatch && coordinatesMatch;\n });\n\n // get the last index in case of multiple matches\n var activeIndex = itemData.indexOf(activeItemMatches[activeItemMatches.length - 1]);\n return activeIndex;\n}","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _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, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : String(i); }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nimport mapValues from 'lodash/mapValues';\nimport every from 'lodash/every';\nimport { getTicksOfScale, parseScale, checkDomainOfScale, getBandSizeOfAxis } from './ChartUtils';\nimport { findChildByType } from './ReactUtils';\nimport { getPercentValue } from './DataUtils';\nimport { Bar } from '../cartesian/Bar';\n\n/**\n * Calculate the scale function, position, width, height of axes\n * @param {Object} props Latest props\n * @param {Object} axisMap The configuration of axes\n * @param {Object} offset The offset of main part in the svg element\n * @param {String} axisType The type of axes, x-axis or y-axis\n * @param {String} chartName The name of chart\n * @return {Object} Configuration\n */\nexport var formatAxisMap = function formatAxisMap(props, axisMap, offset, axisType, chartName) {\n var width = props.width,\n height = props.height,\n layout = props.layout,\n children = props.children;\n var ids = Object.keys(axisMap);\n var steps = {\n left: offset.left,\n leftMirror: offset.left,\n right: width - offset.right,\n rightMirror: width - offset.right,\n top: offset.top,\n topMirror: offset.top,\n bottom: height - offset.bottom,\n bottomMirror: height - offset.bottom\n };\n var hasBar = !!findChildByType(children, Bar);\n return ids.reduce(function (result, id) {\n var axis = axisMap[id];\n var orientation = axis.orientation,\n domain = axis.domain,\n _axis$padding = axis.padding,\n padding = _axis$padding === void 0 ? {} : _axis$padding,\n mirror = axis.mirror,\n reversed = axis.reversed;\n var offsetKey = \"\".concat(orientation).concat(mirror ? 'Mirror' : '');\n var calculatedPadding, range, x, y, needSpace;\n if (axis.type === 'number' && (axis.padding === 'gap' || axis.padding === 'no-gap')) {\n var diff = domain[1] - domain[0];\n var smallestDistanceBetweenValues = Infinity;\n var sortedValues = axis.categoricalDomain.sort();\n sortedValues.forEach(function (value, index) {\n if (index > 0) {\n smallestDistanceBetweenValues = Math.min((value || 0) - (sortedValues[index - 1] || 0), smallestDistanceBetweenValues);\n }\n });\n if (Number.isFinite(smallestDistanceBetweenValues)) {\n var smallestDistanceInPercent = smallestDistanceBetweenValues / diff;\n var rangeWidth = axis.layout === 'vertical' ? offset.height : offset.width;\n if (axis.padding === 'gap') {\n calculatedPadding = smallestDistanceInPercent * rangeWidth / 2;\n }\n if (axis.padding === 'no-gap') {\n var gap = getPercentValue(props.barCategoryGap, smallestDistanceInPercent * rangeWidth);\n var halfBand = smallestDistanceInPercent * rangeWidth / 2;\n calculatedPadding = halfBand - gap - (halfBand - gap) / rangeWidth * gap;\n }\n }\n }\n if (axisType === 'xAxis') {\n range = [offset.left + (padding.left || 0) + (calculatedPadding || 0), offset.left + offset.width - (padding.right || 0) - (calculatedPadding || 0)];\n } else if (axisType === 'yAxis') {\n range = layout === 'horizontal' ? [offset.top + offset.height - (padding.bottom || 0), offset.top + (padding.top || 0)] : [offset.top + (padding.top || 0) + (calculatedPadding || 0), offset.top + offset.height - (padding.bottom || 0) - (calculatedPadding || 0)];\n } else {\n range = axis.range;\n }\n if (reversed) {\n range = [range[1], range[0]];\n }\n var _parseScale = parseScale(axis, chartName, hasBar),\n scale = _parseScale.scale,\n realScaleType = _parseScale.realScaleType;\n scale.domain(domain).range(range);\n checkDomainOfScale(scale);\n var ticks = getTicksOfScale(scale, _objectSpread(_objectSpread({}, axis), {}, {\n realScaleType: realScaleType\n }));\n if (axisType === 'xAxis') {\n needSpace = orientation === 'top' && !mirror || orientation === 'bottom' && mirror;\n x = offset.left;\n y = steps[offsetKey] - needSpace * axis.height;\n } else if (axisType === 'yAxis') {\n needSpace = orientation === 'left' && !mirror || orientation === 'right' && mirror;\n x = steps[offsetKey] - needSpace * axis.width;\n y = offset.top;\n }\n var finalAxis = _objectSpread(_objectSpread(_objectSpread({}, axis), ticks), {}, {\n realScaleType: realScaleType,\n x: x,\n y: y,\n scale: scale,\n width: axisType === 'xAxis' ? offset.width : axis.width,\n height: axisType === 'yAxis' ? offset.height : axis.height\n });\n finalAxis.bandSize = getBandSizeOfAxis(finalAxis, ticks);\n if (!axis.hide && axisType === 'xAxis') {\n steps[offsetKey] += (needSpace ? -1 : 1) * finalAxis.height;\n } else if (!axis.hide) {\n steps[offsetKey] += (needSpace ? -1 : 1) * finalAxis.width;\n }\n return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, id, finalAxis));\n }, {});\n};\nexport var rectWithPoints = function rectWithPoints(_ref, _ref2) {\n var x1 = _ref.x,\n y1 = _ref.y;\n var x2 = _ref2.x,\n y2 = _ref2.y;\n return {\n x: Math.min(x1, x2),\n y: Math.min(y1, y2),\n width: Math.abs(x2 - x1),\n height: Math.abs(y2 - y1)\n };\n};\n\n/**\n * Compute the x, y, width, and height of a box from two reference points.\n * @param {Object} coords x1, x2, y1, and y2\n * @return {Object} object\n */\nexport var rectWithCoords = function rectWithCoords(_ref3) {\n var x1 = _ref3.x1,\n y1 = _ref3.y1,\n x2 = _ref3.x2,\n y2 = _ref3.y2;\n return rectWithPoints({\n x: x1,\n y: y1\n }, {\n x: x2,\n y: y2\n });\n};\nexport var ScaleHelper = /*#__PURE__*/function () {\n function ScaleHelper(scale) {\n _classCallCheck(this, ScaleHelper);\n this.scale = scale;\n }\n _createClass(ScaleHelper, [{\n key: \"domain\",\n get: function get() {\n return this.scale.domain;\n }\n }, {\n key: \"range\",\n get: function get() {\n return this.scale.range;\n }\n }, {\n key: \"rangeMin\",\n get: function get() {\n return this.range()[0];\n }\n }, {\n key: \"rangeMax\",\n get: function get() {\n return this.range()[1];\n }\n }, {\n key: \"bandwidth\",\n get: function get() {\n return this.scale.bandwidth;\n }\n }, {\n key: \"apply\",\n value: function apply(value) {\n var _ref4 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n bandAware = _ref4.bandAware,\n position = _ref4.position;\n if (value === undefined) {\n return undefined;\n }\n if (position) {\n switch (position) {\n case 'start':\n {\n return this.scale(value);\n }\n case 'middle':\n {\n var offset = this.bandwidth ? this.bandwidth() / 2 : 0;\n return this.scale(value) + offset;\n }\n case 'end':\n {\n var _offset = this.bandwidth ? this.bandwidth() : 0;\n return this.scale(value) + _offset;\n }\n default:\n {\n return this.scale(value);\n }\n }\n }\n if (bandAware) {\n var _offset2 = this.bandwidth ? this.bandwidth() / 2 : 0;\n return this.scale(value) + _offset2;\n }\n return this.scale(value);\n }\n }, {\n key: \"isInRange\",\n value: function isInRange(value) {\n var range = this.range();\n var first = range[0];\n var last = range[range.length - 1];\n return first <= last ? value >= first && value <= last : value >= last && value <= first;\n }\n }], [{\n key: \"create\",\n value: function create(obj) {\n return new ScaleHelper(obj);\n }\n }]);\n return ScaleHelper;\n}();\n_defineProperty(ScaleHelper, \"EPS\", 1e-4);\nexport var createLabeledScales = function createLabeledScales(options) {\n var scales = Object.keys(options).reduce(function (res, key) {\n return _objectSpread(_objectSpread({}, res), {}, _defineProperty({}, key, ScaleHelper.create(options[key])));\n }, {});\n return _objectSpread(_objectSpread({}, scales), {}, {\n apply: function apply(coord) {\n var _ref5 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n bandAware = _ref5.bandAware,\n position = _ref5.position;\n return mapValues(coord, function (value, label) {\n return scales[label].apply(value, {\n bandAware: bandAware,\n position: position\n });\n });\n },\n isInRange: function isInRange(coord) {\n return every(coord, function (value, label) {\n return scales[label].isInRange(value);\n });\n }\n });\n};\n\n/** Normalizes the angle so that 0 <= angle < 180.\n * @param {number} angle Angle in degrees.\n * @return {number} the normalized angle with a value of at least 0 and never greater or equal to 180. */\nexport function normalizeAngle(angle) {\n return (angle % 180 + 180) % 180;\n}\n\n/** Calculates the width of the largest horizontal line that fits inside a rectangle that is displayed at an angle.\n * @param {Object} size Width and height of the text in a horizontal position.\n * @param {number} angle Angle in degrees in which the text is displayed.\n * @return {number} The width of the largest horizontal line that fits inside a rectangle that is displayed at an angle.\n */\nexport var getAngledRectangleWidth = function getAngledRectangleWidth(_ref6) {\n var width = _ref6.width,\n height = _ref6.height;\n var angle = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n // Ensure angle is >= 0 && < 180\n var normalizedAngle = normalizeAngle(angle);\n var angleRadians = normalizedAngle * Math.PI / 180;\n\n /* Depending on the height and width of the rectangle, we may need to use different formulas to calculate the angled\n * width. This threshold defines when each formula should kick in. */\n var angleThreshold = Math.atan(height / width);\n var angledWidth = angleRadians > angleThreshold && angleRadians < Math.PI - angleThreshold ? height / Math.sin(angleRadians) : width / Math.cos(angleRadians);\n return Math.abs(angledWidth);\n};","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : String(i); }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nimport * as d3Scales from 'victory-vendor/d3-scale';\nimport { stack as shapeStack, stackOffsetExpand, stackOffsetNone, stackOffsetSilhouette, stackOffsetWiggle, stackOrderNone } from 'victory-vendor/d3-shape';\nimport max from 'lodash/max';\nimport min from 'lodash/min';\nimport isNil from 'lodash/isNil';\nimport isFunction from 'lodash/isFunction';\nimport isString from 'lodash/isString';\nimport get from 'lodash/get';\nimport flatMap from 'lodash/flatMap';\nimport isNan from 'lodash/isNaN';\nimport upperFirst from 'lodash/upperFirst';\nimport isEqual from 'lodash/isEqual';\nimport sortBy from 'lodash/sortBy';\nimport { getNiceTickValues, getTickValuesFixedDomain } from 'recharts-scale';\nimport { ErrorBar } from '../cartesian/ErrorBar';\nimport { findEntryInArray, getPercentValue, isNumber, isNumOrStr, mathSign, uniqueId } from './DataUtils';\nimport { filterProps, findAllByType, getDisplayName } from './ReactUtils';\n// TODO: Cause of circular dependency. Needs refactor.\n// import { RadiusAxisProps, AngleAxisProps } from '../polar/types';\n\nimport { getLegendProps } from './getLegendProps';\n\n// Exported for backwards compatibility\nexport { getLegendProps };\nexport function getValueByDataKey(obj, dataKey, defaultValue) {\n if (isNil(obj) || isNil(dataKey)) {\n return defaultValue;\n }\n if (isNumOrStr(dataKey)) {\n return get(obj, dataKey, defaultValue);\n }\n if (isFunction(dataKey)) {\n return dataKey(obj);\n }\n return defaultValue;\n}\n/**\n * Get domain of data by key.\n * @param {Array} data The data displayed in the chart\n * @param {String} key The unique key of a group of data\n * @param {String} type The type of axis\n * @param {Boolean} filterNil Whether or not filter nil values\n * @return {Array} Domain of data\n */\nexport function getDomainOfDataByKey(data, key, type, filterNil) {\n var flattenData = flatMap(data, function (entry) {\n return getValueByDataKey(entry, key);\n });\n if (type === 'number') {\n // @ts-expect-error parseFloat type only accepts strings\n var domain = flattenData.filter(function (entry) {\n return isNumber(entry) || parseFloat(entry);\n });\n return domain.length ? [min(domain), max(domain)] : [Infinity, -Infinity];\n }\n var validateData = filterNil ? flattenData.filter(function (entry) {\n return !isNil(entry);\n }) : flattenData;\n\n // Supports x-axis of Date type\n return validateData.map(function (entry) {\n return isNumOrStr(entry) || entry instanceof Date ? entry : '';\n });\n}\nexport var calculateActiveTickIndex = function calculateActiveTickIndex(coordinate) {\n var _ticks$length;\n var ticks = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n var unsortedTicks = arguments.length > 2 ? arguments[2] : undefined;\n var axis = arguments.length > 3 ? arguments[3] : undefined;\n var index = -1;\n var len = (_ticks$length = ticks === null || ticks === void 0 ? void 0 : ticks.length) !== null && _ticks$length !== void 0 ? _ticks$length : 0;\n\n // if there are 1 or less ticks ticks then the active tick is at index 0\n if (len <= 1) {\n return 0;\n }\n if (axis && axis.axisType === 'angleAxis' && Math.abs(Math.abs(axis.range[1] - axis.range[0]) - 360) <= 1e-6) {\n var range = axis.range;\n // ticks are distributed in a circle\n for (var i = 0; i < len; i++) {\n var before = i > 0 ? unsortedTicks[i - 1].coordinate : unsortedTicks[len - 1].coordinate;\n var cur = unsortedTicks[i].coordinate;\n var after = i >= len - 1 ? unsortedTicks[0].coordinate : unsortedTicks[i + 1].coordinate;\n var sameDirectionCoord = void 0;\n if (mathSign(cur - before) !== mathSign(after - cur)) {\n var diffInterval = [];\n if (mathSign(after - cur) === mathSign(range[1] - range[0])) {\n sameDirectionCoord = after;\n var curInRange = cur + range[1] - range[0];\n diffInterval[0] = Math.min(curInRange, (curInRange + before) / 2);\n diffInterval[1] = Math.max(curInRange, (curInRange + before) / 2);\n } else {\n sameDirectionCoord = before;\n var afterInRange = after + range[1] - range[0];\n diffInterval[0] = Math.min(cur, (afterInRange + cur) / 2);\n diffInterval[1] = Math.max(cur, (afterInRange + cur) / 2);\n }\n var sameInterval = [Math.min(cur, (sameDirectionCoord + cur) / 2), Math.max(cur, (sameDirectionCoord + cur) / 2)];\n if (coordinate > sameInterval[0] && coordinate <= sameInterval[1] || coordinate >= diffInterval[0] && coordinate <= diffInterval[1]) {\n index = unsortedTicks[i].index;\n break;\n }\n } else {\n var minValue = Math.min(before, after);\n var maxValue = Math.max(before, after);\n if (coordinate > (minValue + cur) / 2 && coordinate <= (maxValue + cur) / 2) {\n index = unsortedTicks[i].index;\n break;\n }\n }\n }\n } else {\n // ticks are distributed in a single direction\n for (var _i = 0; _i < len; _i++) {\n if (_i === 0 && coordinate <= (ticks[_i].coordinate + ticks[_i + 1].coordinate) / 2 || _i > 0 && _i < len - 1 && coordinate > (ticks[_i].coordinate + ticks[_i - 1].coordinate) / 2 && coordinate <= (ticks[_i].coordinate + ticks[_i + 1].coordinate) / 2 || _i === len - 1 && coordinate > (ticks[_i].coordinate + ticks[_i - 1].coordinate) / 2) {\n index = ticks[_i].index;\n break;\n }\n }\n }\n return index;\n};\n\n/**\n * Get the main color of each graphic item\n * @param {ReactElement} item A graphic item\n * @return {String} Color\n */\nexport var getMainColorOfGraphicItem = function getMainColorOfGraphicItem(item) {\n var _ref = item,\n displayName = _ref.type.displayName; // TODO: check if displayName is valid.\n var _item$props = item.props,\n stroke = _item$props.stroke,\n fill = _item$props.fill;\n var result;\n switch (displayName) {\n case 'Line':\n result = stroke;\n break;\n case 'Area':\n case 'Radar':\n result = stroke && stroke !== 'none' ? stroke : fill;\n break;\n default:\n result = fill;\n break;\n }\n return result;\n};\n/**\n * Calculate the size of all groups for stacked bar graph\n * @param {Object} stackGroups The items grouped by axisId and stackId\n * @return {Object} The size of all groups\n */\nexport var getBarSizeList = function getBarSizeList(_ref2) {\n var globalSize = _ref2.barSize,\n totalSize = _ref2.totalSize,\n _ref2$stackGroups = _ref2.stackGroups,\n stackGroups = _ref2$stackGroups === void 0 ? {} : _ref2$stackGroups;\n if (!stackGroups) {\n return {};\n }\n var result = {};\n var numericAxisIds = Object.keys(stackGroups);\n for (var i = 0, len = numericAxisIds.length; i < len; i++) {\n var sgs = stackGroups[numericAxisIds[i]].stackGroups;\n var stackIds = Object.keys(sgs);\n for (var j = 0, sLen = stackIds.length; j < sLen; j++) {\n var _sgs$stackIds$j = sgs[stackIds[j]],\n items = _sgs$stackIds$j.items,\n cateAxisId = _sgs$stackIds$j.cateAxisId;\n var barItems = items.filter(function (item) {\n return getDisplayName(item.type).indexOf('Bar') >= 0;\n });\n if (barItems && barItems.length) {\n var selfSize = barItems[0].props.barSize;\n var cateId = barItems[0].props[cateAxisId];\n if (!result[cateId]) {\n result[cateId] = [];\n }\n var barSize = isNil(selfSize) ? globalSize : selfSize;\n result[cateId].push({\n item: barItems[0],\n stackList: barItems.slice(1),\n barSize: isNil(barSize) ? undefined : getPercentValue(barSize, totalSize, 0)\n });\n }\n }\n }\n return result;\n};\n/**\n * Calculate the size of each bar and offset between start of band and the bar\n *\n * @param {number} bandSize is the size of area where bars can render\n * @param {number | string} barGap is the gap size, as a percentage of `bandSize`.\n * Can be defined as number or percent string\n * @param {number | string} barCategoryGap is the gap size, as a percentage of `bandSize`.\n * Can be defined as number or percent string\n * @param {Array