{"version":3,"file":"vendor-recharts.5e61492bbe0e26fb8653.hashedasset.js","mappings":"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","sources":["webpack://@octopusdeploy/octopus-deploy-portal/../../node_modules/.pnpm/recharts@2.1.10_prop-types@15.8.1_react-dom@16.14.0_react@16.14.0/node_modules/recharts/es6/cartesian/Area.js","webpack://@octopusdeploy/octopus-deploy-portal/../../node_modules/.pnpm/recharts@2.1.10_prop-types@15.8.1_react-dom@16.14.0_react@16.14.0/node_modules/recharts/es6/cartesian/CartesianGrid.js","webpack://@octopusdeploy/octopus-deploy-portal/../../node_modules/.pnpm/recharts@2.1.10_prop-types@15.8.1_react-dom@16.14.0_react@16.14.0/node_modules/recharts/es6/cartesian/ErrorBar.js","webpack://@octopusdeploy/octopus-deploy-portal/../../node_modules/.pnpm/recharts@2.1.10_prop-types@15.8.1_react-dom@16.14.0_react@16.14.0/node_modules/recharts/es6/cartesian/Line.js","webpack://@octopusdeploy/octopus-deploy-portal/../../node_modules/.pnpm/recharts@2.1.10_prop-types@15.8.1_react-dom@16.14.0_react@16.14.0/node_modules/recharts/es6/cartesian/XAxis.js","webpack://@octopusdeploy/octopus-deploy-portal/../../node_modules/.pnpm/recharts@2.1.10_prop-types@15.8.1_react-dom@16.14.0_react@16.14.0/node_modules/recharts/es6/cartesian/YAxis.js","webpack://@octopusdeploy/octopus-deploy-portal/../../node_modules/.pnpm/recharts@2.1.10_prop-types@15.8.1_react-dom@16.14.0_react@16.14.0/node_modules/recharts/es6/chart/AreaChart.js","webpack://@octopusdeploy/octopus-deploy-portal/../../node_modules/.pnpm/recharts@2.1.10_prop-types@15.8.1_react-dom@16.14.0_react@16.14.0/node_modules/recharts/es6/chart/LineChart.js","webpack://@octopusdeploy/octopus-deploy-portal/../../node_modules/.pnpm/recharts@2.1.10_prop-types@15.8.1_react-dom@16.14.0_react@16.14.0/node_modules/recharts/es6/shape/Cross.js","webpack://@octopusdeploy/octopus-deploy-portal/../../node_modules/.pnpm/recharts@2.1.10_prop-types@15.8.1_react-dom@16.14.0_react@16.14.0/node_modules/recharts/es6/shape/Sector.js","webpack://@octopusdeploy/octopus-deploy-portal/../../node_modules/.pnpm/recharts@2.1.10_prop-types@15.8.1_react-dom@16.14.0_react@16.14.0/node_modules/recharts/es6/shape/Rectangle.js","webpack://@octopusdeploy/octopus-deploy-portal/../../node_modules/.pnpm/recharts@2.1.10_prop-types@15.8.1_react-dom@16.14.0_react@16.14.0/node_modules/recharts/es6/cartesian/CartesianAxis.js","webpack://@octopusdeploy/octopus-deploy-portal/../../node_modules/.pnpm/recharts@2.1.10_prop-types@15.8.1_react-dom@16.14.0_react@16.14.0/node_modules/recharts/es6/util/CssPrefixUtils.js","webpack://@octopusdeploy/octopus-deploy-portal/../../node_modules/.pnpm/recharts@2.1.10_prop-types@15.8.1_react-dom@16.14.0_react@16.14.0/node_modules/recharts/es6/cartesian/Brush.js","webpack://@octopusdeploy/octopus-deploy-portal/../../node_modules/.pnpm/recharts@2.1.10_prop-types@15.8.1_react-dom@16.14.0_react@16.14.0/node_modules/recharts/es6/util/IfOverflowMatches.js","webpack://@octopusdeploy/octopus-deploy-portal/../../node_modules/.pnpm/recharts@2.1.10_prop-types@15.8.1_react-dom@16.14.0_react@16.14.0/node_modules/recharts/es6/util/LogUtils.js","webpack://@octopusdeploy/octopus-deploy-portal/../../node_modules/.pnpm/recharts@2.1.10_prop-types@15.8.1_react-dom@16.14.0_react@16.14.0/node_modules/recharts/es6/cartesian/ReferenceDot.js","webpack://@octopusdeploy/octopus-deploy-portal/../../node_modules/.pnpm/recharts@2.1.10_prop-types@15.8.1_react-dom@16.14.0_react@16.14.0/node_modules/recharts/es6/cartesian/ReferenceLine.js","webpack://@octopusdeploy/octopus-deploy-portal/../../node_modules/.pnpm/recharts@2.1.10_prop-types@15.8.1_react-dom@16.14.0_react@16.14.0/node_modules/recharts/es6/cartesian/ReferenceArea.js","webpack://@octopusdeploy/octopus-deploy-portal/../../node_modules/.pnpm/recharts@2.1.10_prop-types@15.8.1_react-dom@16.14.0_react@16.14.0/node_modules/recharts/es6/util/DetectReferenceElementsDomain.js","webpack://@octopusdeploy/octopus-deploy-portal/../../node_modules/.pnpm/recharts@2.1.10_prop-types@15.8.1_react-dom@16.14.0_react@16.14.0/node_modules/recharts/es6/util/Events.js","webpack://@octopusdeploy/octopus-deploy-portal/../../node_modules/.pnpm/recharts@2.1.10_prop-types@15.8.1_react-dom@16.14.0_react@16.14.0/node_modules/recharts/es6/chart/generateCategoricalChart.js","webpack://@octopusdeploy/octopus-deploy-portal/../../node_modules/.pnpm/recharts@2.1.10_prop-types@15.8.1_react-dom@16.14.0_react@16.14.0/node_modules/recharts/es6/component/Label.js","webpack://@octopusdeploy/octopus-deploy-portal/../../node_modules/.pnpm/recharts@2.1.10_prop-types@15.8.1_react-dom@16.14.0_react@16.14.0/node_modules/recharts/es6/component/LabelList.js","webpack://@octopusdeploy/octopus-deploy-portal/../../node_modules/.pnpm/recharts@2.1.10_prop-types@15.8.1_react-dom@16.14.0_react@16.14.0/node_modules/recharts/es6/shape/Symbols.js","webpack://@octopusdeploy/octopus-deploy-portal/../../node_modules/.pnpm/recharts@2.1.10_prop-types@15.8.1_react-dom@16.14.0_react@16.14.0/node_modules/recharts/es6/component/DefaultLegendContent.js","webpack://@octopusdeploy/octopus-deploy-portal/../../node_modules/.pnpm/recharts@2.1.10_prop-types@15.8.1_react-dom@16.14.0_react@16.14.0/node_modules/recharts/es6/component/Legend.js","webpack://@octopusdeploy/octopus-deploy-portal/../../node_modules/.pnpm/recharts@2.1.10_prop-types@15.8.1_react-dom@16.14.0_react@16.14.0/node_modules/recharts/es6/component/Text.js","webpack://@octopusdeploy/octopus-deploy-portal/../../node_modules/.pnpm/recharts@2.1.10_prop-types@15.8.1_react-dom@16.14.0_react@16.14.0/node_modules/recharts/es6/component/DefaultTooltipContent.js","webpack://@octopusdeploy/octopus-deploy-portal/../../node_modules/.pnpm/recharts@2.1.10_prop-types@15.8.1_react-dom@16.14.0_react@16.14.0/node_modules/recharts/es6/component/Tooltip.js","webpack://@octopusdeploy/octopus-deploy-portal/../../node_modules/.pnpm/recharts@2.1.10_prop-types@15.8.1_react-dom@16.14.0_react@16.14.0/node_modules/recharts/es6/container/Layer.js","webpack://@octopusdeploy/octopus-deploy-portal/../../node_modules/.pnpm/recharts@2.1.10_prop-types@15.8.1_react-dom@16.14.0_react@16.14.0/node_modules/recharts/es6/container/Surface.js","webpack://@octopusdeploy/octopus-deploy-portal/../../node_modules/.pnpm/recharts@2.1.10_prop-types@15.8.1_react-dom@16.14.0_react@16.14.0/node_modules/recharts/es6/shape/Curve.js","webpack://@octopusdeploy/octopus-deploy-portal/../../node_modules/.pnpm/recharts@2.1.10_prop-types@15.8.1_react-dom@16.14.0_react@16.14.0/node_modules/recharts/es6/shape/Dot.js","webpack://@octopusdeploy/octopus-deploy-portal/../../node_modules/.pnpm/recharts@2.1.10_prop-types@15.8.1_react-dom@16.14.0_react@16.14.0/node_modules/recharts/es6/util/CartesianUtils.js","webpack://@octopusdeploy/octopus-deploy-portal/../../node_modules/.pnpm/recharts-scale@0.4.5/node_modules/recharts-scale/es6/util/utils.js","webpack://@octopusdeploy/octopus-deploy-portal/../../node_modules/.pnpm/recharts-scale@0.4.5/node_modules/recharts-scale/es6/util/arithmetic.js","webpack://@octopusdeploy/octopus-deploy-portal/../../node_modules/.pnpm/recharts-scale@0.4.5/node_modules/recharts-scale/es6/getNiceTickValues.js","webpack://@octopusdeploy/octopus-deploy-portal/../../node_modules/.pnpm/recharts@2.1.10_prop-types@15.8.1_react-dom@16.14.0_react@16.14.0/node_modules/recharts/es6/util/ChartUtils.js","webpack://@octopusdeploy/octopus-deploy-portal/../../node_modules/.pnpm/recharts@2.1.10_prop-types@15.8.1_react-dom@16.14.0_react@16.14.0/node_modules/recharts/es6/util/DOMUtils.js","webpack://@octopusdeploy/octopus-deploy-portal/../../node_modules/.pnpm/recharts@2.1.10_prop-types@15.8.1_react-dom@16.14.0_react@16.14.0/node_modules/recharts/es6/util/DataUtils.js","webpack://@octopusdeploy/octopus-deploy-portal/../../node_modules/.pnpm/recharts@2.1.10_prop-types@15.8.1_react-dom@16.14.0_react@16.14.0/node_modules/recharts/es6/util/Global.js","webpack://@octopusdeploy/octopus-deploy-portal/../../node_modules/.pnpm/recharts@2.1.10_prop-types@15.8.1_react-dom@16.14.0_react@16.14.0/node_modules/recharts/es6/util/PolarUtils.js","webpack://@octopusdeploy/octopus-deploy-portal/../../node_modules/.pnpm/recharts@2.1.10_prop-types@15.8.1_react-dom@16.14.0_react@16.14.0/node_modules/recharts/es6/util/ReactUtils.js","webpack://@octopusdeploy/octopus-deploy-portal/../../node_modules/.pnpm/recharts@2.1.10_prop-types@15.8.1_react-dom@16.14.0_react@16.14.0/node_modules/recharts/es6/util/ShallowEqual.js","webpack://@octopusdeploy/octopus-deploy-portal/../../node_modules/.pnpm/recharts@2.1.10_prop-types@15.8.1_react-dom@16.14.0_react@16.14.0/node_modules/recharts/es6/util/types.js"],"sourcesContent":["function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nimport _isEqual from \"lodash/isEqual\";\nimport _isNaN from \"lodash/isNaN\";\nimport _max from \"lodash/max\";\nimport _isFunction from \"lodash/isFunction\";\nimport _get from \"lodash/get\";\nimport _isNil from \"lodash/isNil\";\nimport _isArray from \"lodash/isArray\";\n\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; }\n\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\nfunction _extends() { _extends = Object.assign || 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\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\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, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\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 } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\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); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\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; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n/**\n * @fileOverview Area\n */\nimport React, { PureComponent } from 'react';\nimport classNames from 'classnames';\nimport Animate from 'react-smooth';\nimport { Curve } from '../shape/Curve';\nimport { Dot } from '../shape/Dot';\nimport { Layer } from '../container/Layer';\nimport { LabelList } from '../component/LabelList';\nimport { Global } from '../util/Global';\nimport { isNumber, uniqueId, interpolateNumber } from '../util/DataUtils';\nimport { getCateCoordinateOfLine, getValueByDataKey } from '../util/ChartUtils';\nimport { filterProps } from '../util/types';\nexport var Area = /*#__PURE__*/function (_PureComponent) {\n _inherits(Area, _PureComponent);\n\n var _super = _createSuper(Area);\n\n function Area() {\n var _this;\n\n _classCallCheck(this, Area);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n _this.state = {\n isAnimationFinished: true\n };\n _this.id = uniqueId('recharts-area-');\n\n _this.handleAnimationEnd = function () {\n var onAnimationEnd = _this.props.onAnimationEnd;\n\n _this.setState({\n isAnimationFinished: true\n });\n\n if (_isFunction(onAnimationEnd)) {\n onAnimationEnd();\n }\n };\n\n _this.handleAnimationStart = function () {\n var onAnimationStart = _this.props.onAnimationStart;\n\n _this.setState({\n isAnimationFinished: false\n });\n\n if (_isFunction(onAnimationStart)) {\n onAnimationStart();\n }\n };\n\n return _this;\n }\n\n _createClass(Area, [{\n key: \"renderDots\",\n value: function renderDots(needClip, clipPathId) {\n var isAnimationActive = this.props.isAnimationActive;\n var isAnimationFinished = this.state.isAnimationFinished;\n\n if (isAnimationActive && !isAnimationFinished) {\n return null;\n }\n\n var _this$props = this.props,\n dot = _this$props.dot,\n points = _this$props.points,\n dataKey = _this$props.dataKey;\n var areaProps = 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 }, areaProps), customDotProps), {}, {\n dataKey: dataKey,\n cx: entry.x,\n cy: entry.y,\n index: i,\n value: entry.value,\n payload: entry.payload\n });\n\n return Area.renderDotItem(dot, dotProps);\n });\n var dotsProps = {\n clipPath: needClip ? \"url(#clipPath-\".concat(clipPathId, \")\") : null\n };\n return /*#__PURE__*/React.createElement(Layer, _extends({\n className: \"recharts-area-dots\"\n }, dotsProps), dots);\n }\n }, {\n key: \"renderHorizontalRect\",\n value: function renderHorizontalRect(alpha) {\n var _this$props2 = this.props,\n baseLine = _this$props2.baseLine,\n points = _this$props2.points,\n strokeWidth = _this$props2.strokeWidth;\n var startX = points[0].x;\n var endX = points[points.length - 1].x;\n var width = alpha * Math.abs(startX - endX);\n\n var maxY = _max(points.map(function (entry) {\n return entry.y || 0;\n }));\n\n if (isNumber(baseLine) && typeof baseLine === 'number') {\n maxY = Math.max(baseLine, maxY);\n } else if (baseLine && _isArray(baseLine) && baseLine.length) {\n maxY = Math.max(_max(baseLine.map(function (entry) {\n return entry.y || 0;\n })), maxY);\n }\n\n if (isNumber(maxY)) {\n return /*#__PURE__*/React.createElement(\"rect\", {\n x: startX < endX ? startX : startX - width,\n y: 0,\n width: width,\n height: Math.floor(maxY + (strokeWidth ? parseInt(\"\".concat(strokeWidth), 10) : 1))\n });\n }\n\n return null;\n }\n }, {\n key: \"renderVerticalRect\",\n value: function renderVerticalRect(alpha) {\n var _this$props3 = this.props,\n baseLine = _this$props3.baseLine,\n points = _this$props3.points,\n strokeWidth = _this$props3.strokeWidth;\n var startY = points[0].y;\n var endY = points[points.length - 1].y;\n var height = alpha * Math.abs(startY - endY);\n\n var maxX = _max(points.map(function (entry) {\n return entry.x || 0;\n }));\n\n if (isNumber(baseLine) && typeof baseLine === 'number') {\n maxX = Math.max(baseLine, maxX);\n } else if (baseLine && _isArray(baseLine) && baseLine.length) {\n maxX = Math.max(_max(baseLine.map(function (entry) {\n return entry.x || 0;\n })), maxX);\n }\n\n if (isNumber(maxX)) {\n return /*#__PURE__*/React.createElement(\"rect\", {\n x: 0,\n y: startY < endY ? startY : startY - height,\n width: maxX + (strokeWidth ? parseInt(\"\".concat(strokeWidth), 10) : 1),\n height: Math.floor(height)\n });\n }\n\n return null;\n }\n }, {\n key: \"renderClipRect\",\n value: function renderClipRect(alpha) {\n var layout = this.props.layout;\n\n if (layout === 'vertical') {\n return this.renderVerticalRect(alpha);\n }\n\n return this.renderHorizontalRect(alpha);\n }\n }, {\n key: \"renderAreaStatically\",\n value: function renderAreaStatically(points, baseLine, needClip, clipPathId) {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n var _this$props4 = this.props,\n layout = _this$props4.layout,\n type = _this$props4.type,\n stroke = _this$props4.stroke,\n connectNulls = _this$props4.connectNulls,\n isRange = _this$props4.isRange,\n ref = _this$props4.ref,\n others = _objectWithoutProperties(_this$props4, [\"layout\", \"type\", \"stroke\", \"connectNulls\", \"isRange\", \"ref\"]);\n\n return /*#__PURE__*/React.createElement(Layer, {\n clipPath: needClip ? \"url(#clipPath-\".concat(clipPathId, \")\") : null\n }, /*#__PURE__*/React.createElement(Curve, _extends({}, filterProps(others, true), {\n points: points,\n connectNulls: connectNulls,\n type: type,\n baseLine: baseLine,\n layout: layout,\n stroke: \"none\",\n className: \"recharts-area-area\"\n })), stroke !== 'none' && /*#__PURE__*/React.createElement(Curve, _extends({}, filterProps(this.props), {\n className: \"recharts-area-curve\",\n layout: layout,\n type: type,\n connectNulls: connectNulls,\n fill: \"none\",\n points: points\n })), stroke !== 'none' && isRange && /*#__PURE__*/React.createElement(Curve, _extends({}, filterProps(this.props), {\n className: \"recharts-area-curve\",\n layout: layout,\n type: type,\n connectNulls: connectNulls,\n fill: \"none\",\n points: baseLine\n })));\n }\n }, {\n key: \"renderAreaWithAnimation\",\n value: function renderAreaWithAnimation(needClip, clipPathId) {\n var _this2 = this;\n\n var _this$props5 = this.props,\n points = _this$props5.points,\n baseLine = _this$props5.baseLine,\n isAnimationActive = _this$props5.isAnimationActive,\n animationBegin = _this$props5.animationBegin,\n animationDuration = _this$props5.animationDuration,\n animationEasing = _this$props5.animationEasing,\n animationId = _this$props5.animationId;\n var _this$state = this.state,\n prevPoints = _this$state.prevPoints,\n prevBaseLine = _this$state.prevBaseLine; // const clipPathId = _.isNil(id) ? this.id : id;\n\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: \"area-\".concat(animationId),\n onAnimationEnd: this.handleAnimationEnd,\n onAnimationStart: this.handleAnimationStart\n }, function (_ref) {\n var t = _ref.t;\n\n if (prevPoints) {\n var prevPointsDiffFactor = prevPoints.length / points.length; // update animtaion\n\n var stepPoints = points.map(function (entry, index) {\n var prevPointIndex = Math.floor(index * prevPointsDiffFactor);\n\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 return entry;\n });\n var stepBaseLine;\n\n if (isNumber(baseLine) && typeof baseLine === 'number') {\n var interpolator = interpolateNumber(prevBaseLine, baseLine);\n stepBaseLine = interpolator(t);\n } else if (_isNil(baseLine) || _isNaN(baseLine)) {\n var _interpolator = interpolateNumber(prevBaseLine, 0);\n\n stepBaseLine = _interpolator(t);\n } else {\n stepBaseLine = baseLine.map(function (entry, index) {\n var prevPointIndex = Math.floor(index * prevPointsDiffFactor);\n\n if (prevBaseLine[prevPointIndex]) {\n var prev = prevBaseLine[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 return entry;\n });\n }\n\n return _this2.renderAreaStatically(stepPoints, stepBaseLine, needClip, clipPathId);\n }\n\n return /*#__PURE__*/React.createElement(Layer, null, /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"animationClipPath-\".concat(clipPathId)\n }, _this2.renderClipRect(t))), /*#__PURE__*/React.createElement(Layer, {\n clipPath: \"url(#animationClipPath-\".concat(clipPathId, \")\")\n }, _this2.renderAreaStatically(points, baseLine, needClip, clipPathId)));\n });\n }\n }, {\n key: \"renderArea\",\n value: function renderArea(needClip, clipPathId) {\n var _this$props6 = this.props,\n points = _this$props6.points,\n baseLine = _this$props6.baseLine,\n isAnimationActive = _this$props6.isAnimationActive;\n var _this$state2 = this.state,\n prevPoints = _this$state2.prevPoints,\n prevBaseLine = _this$state2.prevBaseLine,\n totalLength = _this$state2.totalLength;\n\n if (isAnimationActive && points && points.length && (!prevPoints && totalLength > 0 || !_isEqual(prevPoints, points) || !_isEqual(prevBaseLine, baseLine))) {\n return this.renderAreaWithAnimation(needClip, clipPathId);\n }\n\n return this.renderAreaStatically(points, baseLine, needClip, clipPathId);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props7 = this.props,\n hide = _this$props7.hide,\n dot = _this$props7.dot,\n points = _this$props7.points,\n className = _this$props7.className,\n top = _this$props7.top,\n left = _this$props7.left,\n xAxis = _this$props7.xAxis,\n yAxis = _this$props7.yAxis,\n width = _this$props7.width,\n height = _this$props7.height,\n isAnimationActive = _this$props7.isAnimationActive,\n id = _this$props7.id;\n\n if (hide || !points || !points.length) {\n return null;\n }\n\n var isAnimationFinished = this.state.isAnimationFinished;\n var hasSinglePoint = points.length === 1;\n var layerClass = classNames('recharts-area', className);\n var needClip = xAxis && xAxis.allowDataOverflow || yAxis && yAxis.allowDataOverflow;\n var clipPathId = _isNil(id) ? this.id : id;\n return /*#__PURE__*/React.createElement(Layer, {\n className: layerClass\n }, needClip ? /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clipPath-\".concat(clipPathId)\n }, /*#__PURE__*/React.createElement(\"rect\", {\n x: left,\n y: top,\n width: width,\n height: Math.floor(height)\n }))) : null, !hasSinglePoint ? this.renderArea(needClip, clipPathId) : null, (dot || hasSinglePoint) && this.renderDots(needClip, 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 curBaseLine: nextProps.baseLine,\n prevPoints: prevState.curPoints,\n prevBaseLine: prevState.curBaseLine\n };\n }\n\n if (nextProps.points !== prevState.curPoints || nextProps.baseLine !== prevState.curBaseLine) {\n return {\n curPoints: nextProps.points,\n curBaseLine: nextProps.baseLine\n };\n }\n\n return null;\n }\n }]);\n\n return Area;\n}(PureComponent);\nArea.displayName = 'Area';\nArea.defaultProps = {\n stroke: '#3182bd',\n fill: '#3182bd',\n fillOpacity: 0.6,\n xAxisId: 0,\n yAxisId: 0,\n legendType: 'line',\n connectNulls: false,\n // points of area\n points: [],\n dot: false,\n activeDot: true,\n hide: false,\n isAnimationActive: !Global.isSsr,\n animationBegin: 0,\n animationDuration: 1500,\n animationEasing: 'ease'\n};\n\nArea.getBaseValue = function (props, xAxis, yAxis) {\n var layout = props.layout,\n baseValue = props.baseValue;\n\n if (isNumber(baseValue) && typeof baseValue === 'number') {\n return baseValue;\n }\n\n var numericAxis = layout === 'horizontal' ? yAxis : xAxis;\n var domain = numericAxis.scale.domain();\n\n if (numericAxis.type === 'number') {\n var max = Math.max(domain[0], domain[1]);\n var min = Math.min(domain[0], domain[1]);\n\n if (baseValue === 'dataMin') {\n return min;\n }\n\n if (baseValue === 'dataMax') {\n return max;\n }\n\n return max < 0 ? max : Math.max(Math.min(domain[0], domain[1]), 0);\n }\n\n if (baseValue === 'dataMin') {\n return domain[0];\n }\n\n if (baseValue === 'dataMax') {\n return domain[1];\n }\n\n return domain[0];\n};\n\nArea.getComposedData = function (_ref2) {\n var props = _ref2.props,\n xAxis = _ref2.xAxis,\n yAxis = _ref2.yAxis,\n xAxisTicks = _ref2.xAxisTicks,\n yAxisTicks = _ref2.yAxisTicks,\n bandSize = _ref2.bandSize,\n dataKey = _ref2.dataKey,\n stackedData = _ref2.stackedData,\n dataStartIndex = _ref2.dataStartIndex,\n displayedData = _ref2.displayedData,\n offset = _ref2.offset;\n var layout = props.layout;\n var hasStack = stackedData && stackedData.length;\n var baseValue = Area.getBaseValue(props, xAxis, yAxis);\n var isRange = false;\n var points = displayedData.map(function (entry, index) {\n var originalValue = getValueByDataKey(entry, dataKey);\n var value;\n\n if (hasStack) {\n value = stackedData[dataStartIndex + index];\n } else {\n value = originalValue;\n\n if (!_isArray(value)) {\n value = [baseValue, value];\n } else {\n isRange = true;\n }\n }\n\n var isBreakPoint = _isNil(value[1]) || hasStack && _isNil(originalValue);\n\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: isBreakPoint ? null : yAxis.scale(value[1]),\n value: value,\n payload: entry\n };\n }\n\n return {\n x: isBreakPoint ? null : xAxis.scale(value[1]),\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 var baseLine;\n\n if (hasStack || isRange) {\n baseLine = points.map(function (entry) {\n if (layout === 'horizontal') {\n return {\n x: entry.x,\n y: !_isNil(_get(entry, 'value[0]')) && !_isNil(_get(entry, 'y')) ? yAxis.scale(_get(entry, 'value[0]')) : null\n };\n }\n\n return {\n x: !_isNil(_get(entry, 'value[0]')) ? xAxis.scale(_get(entry, 'value[0]')) : null,\n y: entry.y\n };\n });\n } else if (layout === 'horizontal') {\n baseLine = yAxis.scale(baseValue);\n } else {\n baseLine = xAxis.scale(baseValue);\n }\n\n return _objectSpread({\n points: points,\n baseLine: baseLine,\n layout: layout,\n isRange: isRange\n }, offset);\n};\n\nArea.renderDotItem = function (option, props) {\n var dotItem;\n\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 dotItem = /*#__PURE__*/React.createElement(Dot, _extends({}, props, {\n className: \"recharts-area-dot\"\n }));\n }\n\n return dotItem;\n};","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nimport _isFunction from \"lodash/isFunction\";\n\nfunction _extends() { _extends = Object.assign || 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\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; }\n\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\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\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, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\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 } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\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); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\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; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n/**\n * @fileOverview Cartesian Grid\n */\nimport React, { PureComponent } from 'react';\nimport { isNumber } from '../util/DataUtils';\nimport { filterProps } from '../util/types';\nexport var CartesianGrid = /*#__PURE__*/function (_PureComponent) {\n _inherits(CartesianGrid, _PureComponent);\n\n var _super = _createSuper(CartesianGrid);\n\n function CartesianGrid() {\n _classCallCheck(this, CartesianGrid);\n\n return _super.apply(this, arguments);\n }\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\n var _this$props = this.props,\n x = _this$props.x,\n width = _this$props.width,\n horizontal = _this$props.horizontal;\n\n if (!horizontalPoints || !horizontalPoints.length) {\n return null;\n }\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\n return CartesianGrid.renderLineItem(horizontal, props);\n });\n return /*#__PURE__*/React.createElement(\"g\", {\n className: \"recharts-cartesian-grid-horizontal\"\n }, items);\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 }, {\n key: \"renderVertical\",\n value: function renderVertical(verticalPoints) {\n var _this2 = this;\n\n var _this$props2 = this.props,\n y = _this$props2.y,\n height = _this$props2.height,\n vertical = _this$props2.vertical;\n\n if (!verticalPoints || !verticalPoints.length) {\n return null;\n }\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\n return CartesianGrid.renderLineItem(vertical, props);\n });\n return /*#__PURE__*/React.createElement(\"g\", {\n className: \"recharts-cartesian-grid-vertical\"\n }, items);\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 }, {\n key: \"renderVerticalStripes\",\n value: function renderVerticalStripes(verticalPoints) {\n var verticalFill = this.props.verticalFill;\n\n if (!verticalFill || !verticalFill.length) {\n return null;\n }\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 verticalPointsUpdated = verticalPoints.slice().sort(function (a, b) {\n return a - b;\n });\n\n if (x !== verticalPointsUpdated[0]) {\n verticalPointsUpdated.unshift(0);\n }\n\n var items = verticalPointsUpdated.map(function (entry, i) {\n var lineWidth = verticalPointsUpdated[i + 1] ? verticalPointsUpdated[i + 1] - entry : x + width - entry;\n\n if (lineWidth <= 0) {\n return null;\n }\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: Math.round(entry + x - x),\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 * 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 }, {\n key: \"renderHorizontalStripes\",\n value: function renderHorizontalStripes(horizontalPoints) {\n var horizontalFill = this.props.horizontalFill;\n\n if (!horizontalFill || !horizontalFill.length) {\n return null;\n }\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 horizontalPointsUpdated = horizontalPoints.slice().sort(function (a, b) {\n return a - b;\n });\n\n if (y !== horizontalPointsUpdated[0]) {\n horizontalPointsUpdated.unshift(0);\n }\n\n var items = horizontalPointsUpdated.map(function (entry, i) {\n var lineHeight = horizontalPointsUpdated[i + 1] ? horizontalPointsUpdated[i + 1] - entry : y + height - entry;\n\n if (lineHeight <= 0) {\n return null;\n }\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: Math.round(entry + y - y),\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\n if (!fill || fill === 'none') {\n return null;\n }\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\n if (!isNumber(width) || width <= 0 || !isNumber(height) || height <= 0 || !isNumber(x) || x !== +x || !isNumber(y) || y !== +y) {\n return null;\n }\n\n var _this$props7 = this.props,\n horizontalPoints = _this$props7.horizontalPoints,\n verticalPoints = _this$props7.verticalPoints; // No horizontal points are specified\n\n if ((!horizontalPoints || !horizontalPoints.length) && _isFunction(horizontalCoordinatesGenerator)) {\n horizontalPoints = horizontalCoordinatesGenerator({\n yAxis: yAxis,\n width: chartWidth,\n height: chartHeight,\n offset: offset\n });\n } // No vertical points are specified\n\n\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\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\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, [\"x1\", \"y1\", \"x2\", \"y2\", \"key\"]);\n\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\n return lineItem;\n }\n }]);\n\n return CartesianGrid;\n}(PureComponent);\nCartesianGrid.displayName = 'CartesianGrid';\nCartesianGrid.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};","function _extends() { _extends = Object.assign || 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\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\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.\"); }\n\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); }\n\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\nfunction _iterableToArrayLimit(arr, i) { if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\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; }\n\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/**\n * @fileOverview Render a group of error bar\n */\nimport React from 'react';\nimport { Layer } from '../container/Layer';\nimport { filterProps } from '../util/types';\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, [\"offset\", \"layout\", \"width\", \"dataKey\", \"data\", \"dataPointFormatter\", \"xAxis\", \"yAxis\"]);\n\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\n if (!errorVal) {\n return null;\n }\n\n var lineCoordinates = [];\n var lowBound, highBound;\n\n if (Array.isArray(errorVal)) {\n var _errorVal = _slicedToArray(errorVal, 2);\n\n lowBound = _errorVal[0];\n highBound = _errorVal[1];\n } else {\n lowBound = highBound = errorVal;\n }\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); // the right line of |--|\n\n lineCoordinates.push({\n x1: xMax,\n y1: yMin,\n x2: xMax,\n y2: yMax\n }); // the middle line of |--|\n\n lineCoordinates.push({\n x1: xMin,\n y1: yMid,\n x2: xMax,\n y2: yMid\n }); // the left line of |--|\n\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\n var _xMin = xMid - width;\n\n var _xMax = xMid + width;\n\n var _yMin = _scale(value - lowBound);\n\n var _yMax = _scale(value + highBound); // the top line\n\n\n lineCoordinates.push({\n x1: _xMin,\n y1: _yMax,\n x2: _xMax,\n y2: _yMax\n }); // the middle line\n\n lineCoordinates.push({\n x1: xMid,\n y1: _yMin,\n x2: xMid,\n y2: _yMax\n }); // the bottom line\n\n lineCoordinates.push({\n x1: _xMin,\n y1: _yMin,\n x2: _xMax,\n y2: _yMin\n });\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';","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nimport _isEqual from \"lodash/isEqual\";\nimport _isFunction from \"lodash/isFunction\";\nimport _isNil from \"lodash/isNil\";\n\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; }\n\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\nfunction _extends() { _extends = Object.assign || 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\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\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.\"); }\n\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); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\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\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\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, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\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 } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\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); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\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; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\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 } from '../util/ReactUtils';\nimport { Global } from '../util/Global';\nimport { getCateCoordinateOfLine, getValueByDataKey } from '../util/ChartUtils';\nimport { filterProps } from '../util/types';\nexport var Line = /*#__PURE__*/function (_PureComponent) {\n _inherits(Line, _PureComponent);\n\n var _super = _createSuper(Line);\n\n function Line() {\n var _this;\n\n _classCallCheck(this, Line);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n _this.mainCurve = void 0;\n _this.state = {\n isAnimationFinished: true,\n totalLength: 0\n };\n\n _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\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\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\n _this.id = uniqueId('recharts-line-');\n\n _this.pathRef = function (node) {\n _this.mainCurve = node;\n };\n\n _this.handleAnimationEnd = function () {\n _this.setState({\n isAnimationFinished: true\n });\n\n if (_this.props.onAnimationEnd) {\n _this.props.onAnimationEnd();\n }\n };\n\n _this.handleAnimationStart = function () {\n _this.setState({\n isAnimationFinished: false\n });\n\n if (_this.props.onAnimationStart) {\n _this.props.onAnimationStart();\n }\n };\n\n return _this;\n }\n\n _createClass(Line, [{\n key: \"componentDidMount\",\n value:\n /* eslint-disable react/no-did-mount-set-state */\n function componentDidMount() {\n if (!this.props.isAnimationActive) {\n return;\n }\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\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() {\n if (this.props.isAnimationActive && !this.state.isAnimationFinished) {\n return null;\n }\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.displayName);\n\n if (!errorBarItems) {\n return null;\n }\n\n 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\n return 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, clipPathId) {\n var isAnimationActive = this.props.isAnimationActive;\n\n if (isAnimationActive && !this.state.isAnimationFinished) {\n return null;\n }\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\n return Line.renderDotItem(dot, dotProps);\n });\n var dotsProps = {\n clipPath: needClip ? \"url(#clipPath-\".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 // eslint-disable-next-line @typescript-eslint/no-unused-vars\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, [\"type\", \"layout\", \"connectNulls\", \"ref\"]);\n\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\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\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\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\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 } // magic number of faking previous x and y location\n\n\n if (animateNewValues) {\n var _interpolatorX = interpolateNumber(width * 2, entry.x);\n\n var _interpolatorY = interpolateNumber(height / 2, entry.y);\n\n return _objectSpread(_objectSpread({}, entry), {}, {\n x: _interpolatorX(t),\n y: _interpolatorY(t)\n });\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\n var interpolator = interpolateNumber(0, totalLength);\n var curLength = interpolator(t);\n var currentStrokeDasharray;\n\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\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\n if (isAnimationActive && points && points.length && (!prevPoints && totalLength > 0 || !_isEqual(prevPoints, points))) {\n return this.renderCurveWithAnimation(needClip, clipPathId);\n }\n\n return this.renderCurveStatically(points, needClip, clipPathId);\n }\n }, {\n key: \"render\",\n value: function render() {\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\n if (hide || !points || !points.length) {\n return null;\n }\n\n var isAnimationFinished = this.state.isAnimationFinished;\n var hasSinglePoint = points.length === 1;\n var layerClass = classNames('recharts-line', className);\n var needClip = xAxis && xAxis.allowDataOverflow || yAxis && yAxis.allowDataOverflow;\n var clipPathId = _isNil(id) ? this.id : id;\n return /*#__PURE__*/React.createElement(Layer, {\n className: layerClass\n }, needClip ? /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clipPath-\".concat(clipPathId)\n }, /*#__PURE__*/React.createElement(\"rect\", {\n x: left,\n y: top,\n width: width,\n height: height\n }))) : null, !hasSinglePoint && this.renderCurve(needClip, clipPathId), this.renderErrorBar(), (hasSinglePoint || dot) && this.renderDots(needClip, 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\n if (nextProps.points !== prevState.curPoints) {\n return {\n curPoints: nextProps.points\n };\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\n for (var i = 0; i < count; ++i) {\n result = [].concat(_toConsumableArray(result), _toConsumableArray(linesUnit));\n }\n\n return result;\n }\n }, {\n key: \"renderDotItem\",\n value: function renderDotItem(option, props) {\n var dotItem;\n\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\n return dotItem;\n }\n }]);\n\n return Line;\n}(PureComponent);\nLine.displayName = 'Line';\nLine.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};\n\nLine.getComposedData = function (_ref2) {\n var props = _ref2.props,\n xAxis = _ref2.xAxis,\n yAxis = _ref2.yAxis,\n xAxisTicks = _ref2.xAxisTicks,\n yAxisTicks = _ref2.yAxisTicks,\n dataKey = _ref2.dataKey,\n bandSize = _ref2.bandSize,\n displayedData = _ref2.displayedData,\n offset = _ref2.offset;\n var layout = props.layout;\n var points = displayedData.map(function (entry, index) {\n var value = getValueByDataKey(entry, dataKey);\n\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\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};","/**\n * @fileOverview X Axis\n */\n\n/** Define of XAxis props */\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 domain: [0, 'auto'],\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 */\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 domain: [0, 'auto'],\n padding: {\n top: 0,\n bottom: 0\n },\n allowDataOverflow: false,\n scale: 'auto',\n reversed: false\n};","/**\n * @fileOverview Area Chart\n */\nimport { generateCategoricalChart } from './generateCategoricalChart';\nimport { Area } from '../cartesian/Area';\nimport { XAxis } from '../cartesian/XAxis';\nimport { YAxis } from '../cartesian/YAxis';\nimport { formatAxisMap } from '../util/CartesianUtils';\nexport var AreaChart = generateCategoricalChart({\n chartName: 'AreaChart',\n GraphicalChild: Area,\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});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _extends() { _extends = Object.assign || 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\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\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, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\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 } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\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); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\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; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n/**\n * @fileOverview Cross\n */\nimport React, { PureComponent } from 'react';\nimport classNames from 'classnames';\nimport { isNumber } from '../util/DataUtils';\nimport { filterProps } from '../util/types';\nexport var Cross = /*#__PURE__*/function (_PureComponent) {\n _inherits(Cross, _PureComponent);\n\n var _super = _createSuper(Cross);\n\n function Cross() {\n _classCallCheck(this, Cross);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(Cross, [{\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n x = _this$props.x,\n y = _this$props.y,\n width = _this$props.width,\n height = _this$props.height,\n top = _this$props.top,\n left = _this$props.left,\n className = _this$props.className;\n\n if (!isNumber(x) || !isNumber(y) || !isNumber(width) || !isNumber(height) || !isNumber(top) || !isNumber(left)) {\n return null;\n }\n\n return /*#__PURE__*/React.createElement(\"path\", _extends({}, filterProps(this.props, true), {\n className: classNames('recharts-cross', className),\n d: Cross.getPath(x, y, width, height, top, left)\n }));\n }\n }], [{\n key: \"getPath\",\n value: 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 }\n }]);\n\n return Cross;\n}(PureComponent);\nCross.defaultProps = {\n x: 0,\n y: 0,\n top: 0,\n left: 0,\n width: 0,\n height: 0\n};","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _extends() { _extends = Object.assign || 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\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\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, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\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 } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\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); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\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; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n/**\n * @fileOverview Sector\n */\nimport React, { PureComponent } from 'react';\nimport classNames from 'classnames';\nimport { filterProps } from '../util/types';\nimport { polarToCartesian, RADIAN } from '../util/PolarUtils';\nimport { getPercentValue, mathSign } from '../util/DataUtils';\n\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};\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); // The coordinate of point which is tangent to the circle\n\n var circleTangency = polarToCartesian(cx, cy, radius, centerAngle); // The coordinate of point which is tangent to the radius line\n\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};\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); // When the angle of sector equals to 360, star point and end point coincide\n\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\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\n return path;\n};\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\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\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\n var outerArcAngle = cornerIsExternal ? Math.abs(startAngle - endAngle) : Math.abs(startAngle - endAngle) - sot - eot;\n\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\n return getSectorPath({\n cx: cx,\n cy: cy,\n innerRadius: innerRadius,\n outerRadius: outerRadius,\n startAngle: startAngle,\n endAngle: endAngle\n });\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\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\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\n var innerArcAngle = cornerIsExternal ? Math.abs(startAngle - endAngle) : Math.abs(startAngle - endAngle) - sit - eit;\n\n if (innerArcAngle < 0 && cornerRadius === 0) {\n return \"\".concat(path, \"L\").concat(cx, \",\").concat(cy, \"Z\");\n }\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\n return path;\n};\n\nexport var Sector = /*#__PURE__*/function (_PureComponent) {\n _inherits(Sector, _PureComponent);\n\n var _super = _createSuper(Sector);\n\n function Sector() {\n _classCallCheck(this, Sector);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(Sector, [{\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n cx = _this$props.cx,\n cy = _this$props.cy,\n innerRadius = _this$props.innerRadius,\n outerRadius = _this$props.outerRadius,\n cornerRadius = _this$props.cornerRadius,\n forceCornerRadius = _this$props.forceCornerRadius,\n cornerIsExternal = _this$props.cornerIsExternal,\n startAngle = _this$props.startAngle,\n endAngle = _this$props.endAngle,\n className = _this$props.className;\n\n if (outerRadius < innerRadius || startAngle === endAngle) {\n return null;\n }\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\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\n return /*#__PURE__*/React.createElement(\"path\", _extends({}, filterProps(this.props, true), {\n className: layerClass,\n d: path\n }));\n }\n }]);\n\n return Sector;\n}(PureComponent);\nSector.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};","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _extends() { _extends = Object.assign || 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\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\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, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\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 } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\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); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\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; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n/**\n * @fileOverview Rectangle\n */\nimport React, { PureComponent } from 'react';\nimport classNames from 'classnames';\nimport Animate from 'react-smooth';\nimport { filterProps } from '../util/types';\n\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\n if (maxRadius > 0 && radius instanceof Array) {\n var newRadius = [0, 0, 0, 0];\n\n for (var i = 0, len = 4; i < len; i++) {\n newRadius[i] = radius[i] > maxRadius ? maxRadius : radius[i];\n }\n\n path = \"M\".concat(x, \",\").concat(y + ySign * newRadius[0]);\n\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\n path += \"L \".concat(x + width - xSign * newRadius[1], \",\").concat(y);\n\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\n path += \"L \".concat(x + width, \",\").concat(y + height - ySign * newRadius[2]);\n\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\n path += \"L \".concat(x + xSign * newRadius[3], \",\").concat(y + height);\n\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\n path += 'Z';\n } else if (maxRadius > 0 && radius === +radius && radius > 0) {\n var _newRadius = Math.min(maxRadius, radius);\n\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\n return path;\n};\n\nexport var isInRectangle = function isInRectangle(point, rect) {\n if (!point || !rect) {\n return false;\n }\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\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\n return false;\n};\nexport var Rectangle = /*#__PURE__*/function (_PureComponent) {\n _inherits(Rectangle, _PureComponent);\n\n var _super = _createSuper(Rectangle);\n\n function Rectangle() {\n var _this;\n\n _classCallCheck(this, Rectangle);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n _this.state = {\n totalLength: -1\n };\n _this.node = void 0;\n return _this;\n }\n\n _createClass(Rectangle, [{\n key: \"componentDidMount\",\n value:\n /* eslint-disable react/no-did-mount-set-state */\n function componentDidMount() {\n if (this.node && this.node.getTotalLength) {\n try {\n var totalLength = this.node.getTotalLength();\n\n if (totalLength) {\n this.setState({\n totalLength: totalLength\n });\n }\n } catch (err) {// calculate total length error\n }\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n\n var _this$props = this.props,\n x = _this$props.x,\n y = _this$props.y,\n width = _this$props.width,\n height = _this$props.height,\n radius = _this$props.radius,\n className = _this$props.className;\n var totalLength = this.state.totalLength;\n var _this$props2 = this.props,\n animationEasing = _this$props2.animationEasing,\n animationDuration = _this$props2.animationDuration,\n animationBegin = _this$props2.animationBegin,\n isAnimationActive = _this$props2.isAnimationActive,\n isUpdateAnimationActive = _this$props2.isUpdateAnimationActive;\n\n if (x !== +x || y !== +y || width !== +width || height !== +height || width === 0 || height === 0) {\n return null;\n }\n\n var layerClass = classNames('recharts-rectangle', className);\n\n if (!isUpdateAnimationActive) {\n return /*#__PURE__*/React.createElement(\"path\", _extends({}, filterProps(this.props, true), {\n className: layerClass,\n d: getRectanglePath(x, y, width, height, radius)\n }));\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(_this2.props, true), {\n className: layerClass,\n d: getRectanglePath(currX, currY, currWidth, currHeight, radius),\n ref: function ref(node) {\n _this2.node = node;\n }\n })));\n });\n }\n }]);\n\n return Rectangle;\n}(PureComponent);\nRectangle.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};","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nimport _get from \"lodash/get\";\nimport _isFunction from \"lodash/isFunction\";\n\nfunction _extends() { _extends = Object.assign || 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\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\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; }\n\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\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\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, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\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 } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\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); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\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; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n/**\n * @fileOverview Cartesian Axis\n */\nimport React, { Component } from 'react';\nimport classNames from 'classnames';\nimport { shallowEqual } from '../util/ShallowEqual';\nimport { getStringSize } from '../util/DOMUtils';\nimport { Layer } from '../container/Layer';\nimport { Text } from '../component/Text';\nimport { Label } from '../component/Label';\nimport { Global } from '../util/Global';\nimport { isNumber, mathSign } from '../util/DataUtils';\nimport { filterProps, adaptEventsOfChild } from '../util/types';\nexport var CartesianAxis = /*#__PURE__*/function (_Component) {\n _inherits(CartesianAxis, _Component);\n\n var _super = _createSuper(CartesianAxis);\n\n function CartesianAxis() {\n _classCallCheck(this, CartesianAxis);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(CartesianAxis, [{\n key: \"shouldComponentUpdate\",\n value: function shouldComponentUpdate(_ref) {\n var viewBox = _ref.viewBox,\n restProps = _objectWithoutProperties(_ref, [\"viewBox\"]);\n\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, [\"viewBox\"]);\n\n return !shallowEqual(viewBox, viewBoxOld) || !shallowEqual(restProps, restPropsOld);\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 }, {\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\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\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\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\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\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\n switch (orientation) {\n case 'left':\n textAnchor = mirror ? 'start' : 'end';\n break;\n\n case 'right':\n textAnchor = mirror ? 'end' : 'start';\n break;\n\n default:\n textAnchor = 'middle';\n break;\n }\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\n switch (orientation) {\n case 'left':\n case 'right':\n verticalAnchor = 'middle';\n break;\n\n case 'top':\n verticalAnchor = mirror ? 'start' : 'end';\n break;\n\n default:\n verticalAnchor = mirror ? 'end' : 'start';\n break;\n }\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\n var props = _objectSpread(_objectSpread(_objectSpread({}, filterProps(this.props)), filterProps(axisLine)), {}, {\n fill: 'none'\n });\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\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 * @return {ReactComponent} renderedTicks\n */\n function renderTicks(ticks) {\n var _this = this;\n\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 = CartesianAxis.getTicks(_objectSpread(_objectSpread({}, this.props), {}, {\n ticks: ticks\n }));\n var textAnchor = this.getTickTextAnchor();\n var verticalAnchor = this.getTickVerticalAnchor();\n var axisProps = filterProps(this.props);\n var customTickProps = filterProps(tick);\n\n var tickLineProps = _objectSpread(_objectSpread({}, axisProps), {}, {\n fill: 'none'\n }, filterProps(tickLine));\n\n var items = finalTicks.map(function (entry, i) {\n var _this$getTickLineCoor = _this.getTickLineCoord(entry),\n lineCoord = _this$getTickLineCoor.line,\n tickCoord = _this$getTickLineCoor.tick;\n\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\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\n }, adaptEventsOfChild(_this.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 _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\n if (hide) {\n return null;\n }\n\n var _this$props8 = this.props,\n ticks = _this$props8.ticks,\n noTicksProps = _objectWithoutProperties(_this$props8, [\"ticks\"]);\n\n var finalTicks = ticks;\n\n if (_isFunction(ticksGenerator)) {\n finalTicks = ticks && ticks.length > 0 ? ticksGenerator(this.props) : ticksGenerator(noTicksProps);\n }\n\n if (width <= 0 || height <= 0 || !finalTicks || !finalTicks.length) {\n return null;\n }\n\n return /*#__PURE__*/React.createElement(Layer, {\n className: classNames('recharts-cartesian-axis', className)\n }, axisLine && this.renderAxisLine(), this.renderTicks(finalTicks), Label.renderCallByParent(this.props));\n }\n }], [{\n key: \"getTicks\",\n value: // todo Array\n function getTicks(props) {\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\n if (!ticks || !ticks.length || !tick) {\n return [];\n }\n\n if (isNumber(interval) || Global.isSsr) {\n return CartesianAxis.getNumberIntervalTicks(ticks, typeof interval === 'number' && isNumber(interval) ? interval : 0);\n }\n\n if (interval === 'preserveStartEnd') {\n return CartesianAxis.getTicksStart({\n ticks: ticks,\n tickFormatter: tickFormatter,\n viewBox: viewBox,\n orientation: orientation,\n minTickGap: minTickGap,\n unit: unit\n }, true);\n }\n\n if (interval === 'preserveStart') {\n return CartesianAxis.getTicksStart({\n ticks: ticks,\n tickFormatter: tickFormatter,\n viewBox: viewBox,\n orientation: orientation,\n minTickGap: minTickGap,\n unit: unit\n });\n }\n\n return CartesianAxis.getTicksEnd({\n ticks: ticks,\n tickFormatter: tickFormatter,\n viewBox: viewBox,\n orientation: orientation,\n minTickGap: minTickGap,\n unit: unit\n });\n }\n }, {\n key: \"getNumberIntervalTicks\",\n value: function getNumberIntervalTicks(ticks, interval) {\n return ticks.filter(function (entry, i) {\n return i % (interval + 1) === 0;\n });\n }\n }, {\n key: \"getTicksStart\",\n value: function getTicksStart(_ref2, preserveEnd) {\n var ticks = _ref2.ticks,\n tickFormatter = _ref2.tickFormatter,\n viewBox = _ref2.viewBox,\n orientation = _ref2.orientation,\n minTickGap = _ref2.minTickGap,\n unit = _ref2.unit;\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(); // we need add the width of 'unit' only when sizeKey === 'width'\n\n var unitSize = unit && sizeKey === 'width' ? getStringSize(unit)[sizeKey] : 0;\n var len = result.length;\n var sign = len >= 2 ? mathSign(result[1].coordinate - result[0].coordinate) : 1;\n var start, end;\n\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\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 var tailSize = getStringSize(tailContent)[sizeKey] + unitSize;\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\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\n var count = preserveEnd ? len - 1 : len;\n\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 = getStringSize(content)[sizeKey] + unitSize;\n\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\n var isShow = sign * (entry.tickCoord - sign * size / 2 - start) >= 0 && sign * (entry.tickCoord + sign * size / 2 - end) <= 0;\n\n if (isShow) {\n start = entry.tickCoord + sign * (size / 2 + minTickGap);\n result[i] = _objectSpread(_objectSpread({}, entry), {}, {\n isShow: true\n });\n }\n }\n\n return result.filter(function (entry) {\n return entry.isShow;\n });\n }\n }, {\n key: \"getTicksEnd\",\n value: function getTicksEnd(_ref3) {\n var ticks = _ref3.ticks,\n tickFormatter = _ref3.tickFormatter,\n viewBox = _ref3.viewBox,\n orientation = _ref3.orientation,\n minTickGap = _ref3.minTickGap,\n unit = _ref3.unit;\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'; // we need add the width of 'unit' only when sizeKey === 'width'\n\n var unitSize = unit && sizeKey === 'width' ? getStringSize(unit)[sizeKey] : 0;\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\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\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 var size = getStringSize(content)[sizeKey] + unitSize;\n\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\n var isShow = sign * (entry.tickCoord - sign * size / 2 - start) >= 0 && sign * (entry.tickCoord + sign * size / 2 - end) <= 0;\n\n if (isShow) {\n end = entry.tickCoord - sign * (size / 2 + minTickGap);\n result[i] = _objectSpread(_objectSpread({}, entry), {}, {\n isShow: true\n });\n }\n }\n\n return result.filter(function (entry) {\n return entry.isShow;\n });\n }\n }, {\n key: \"renderTickItem\",\n value: function renderTickItem(option, props, value) {\n var tickItem;\n\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\n return tickItem;\n }\n }]);\n\n return CartesianAxis;\n}(Component);\nCartesianAxis.displayName = 'CartesianAxis';\nCartesianAxis.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 ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar PREFIX_LIST = ['Webkit', 'Moz', 'O', 'ms'];\nexport var generatePrefixStyle = function generatePrefixStyle(name, value) {\n if (!name) {\n return null;\n }\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(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nimport _isFunction from \"lodash/isFunction\";\nimport _range from \"lodash/range\";\n\nfunction _extends() { _extends = Object.assign || 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\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\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, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\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 } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\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); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\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; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n/**\n * @fileOverview Brush\n */\nimport React, { PureComponent, Children } from 'react';\nimport classNames from 'classnames';\nimport { scalePoint } from '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/types';\n\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\n if (!data || !data.length) {\n return {};\n }\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 startX: scale(startIndex),\n endX: scale(endIndex),\n scale: scale,\n scaleValues: scaleValues\n };\n};\n\nvar isTouch = function isTouch(e) {\n return e.changedTouches && !!e.changedTouches.length;\n};\n\nexport var Brush = /*#__PURE__*/function (_PureComponent) {\n _inherits(Brush, _PureComponent);\n\n var _super = _createSuper(Brush);\n\n function Brush(props) {\n var _this;\n\n _classCallCheck(this, Brush);\n\n _this = _super.call(this, props);\n _this.leaveTimer = void 0;\n _this.travellerDragStartHandlers = void 0;\n\n _this.handleDrag = function (e) {\n if (_this.leaveTimer) {\n clearTimeout(_this.leaveTimer);\n _this.leaveTimer = null;\n }\n\n if (_this.state.isTravellerMoving) {\n _this.handleTravellerMove(e);\n } else if (_this.state.isSlideMoving) {\n _this.handleSlideDrag(e);\n }\n };\n\n _this.handleTouchMove = function (e) {\n if (e.changedTouches != null && e.changedTouches.length > 0) {\n _this.handleDrag(e.changedTouches[0]);\n }\n };\n\n _this.handleDragEnd = function () {\n _this.setState({\n isTravellerMoving: false,\n isSlideMoving: false\n });\n\n _this.detachDragEndListener();\n };\n\n _this.handleLeaveWrapper = function () {\n if (_this.state.isTravellerMoving || _this.state.isSlideMoving) {\n _this.leaveTimer = window.setTimeout(_this.handleDragEnd, _this.props.leaveTimeOut);\n }\n };\n\n _this.handleEnterSlideOrTraveller = function () {\n _this.setState({\n isTextActive: true\n });\n };\n\n _this.handleLeaveSlideOrTraveller = function () {\n _this.setState({\n isTextActive: false\n });\n };\n\n _this.handleSlideDragStart = function (e) {\n var event = isTouch(e) ? e.changedTouches[0] : e;\n\n _this.setState({\n isTravellerMoving: false,\n isSlideMoving: true,\n slideMoveStartX: event.pageX\n });\n\n _this.attachDragEndListener();\n };\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\n _createClass(Brush, [{\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n if (this.leaveTimer) {\n clearTimeout(this.leaveTimer);\n this.leaveTimer = null;\n }\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 }\n }, {\n key: \"detachDragEndListener\",\n value: function detachDragEndListener() {\n window.removeEventListener('mouseup', this.handleDragEnd, true);\n window.removeEventListener('touchend', this.handleDragEnd, 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\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\n var newIndex = this.getIndex({\n startX: startX + delta,\n endX: endX + delta\n });\n\n if ((newIndex.startIndex !== startIndex || newIndex.endIndex !== endIndex) && onChange) {\n onChange(newIndex);\n }\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\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\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\n params[movingTravellerId] = prevValue + delta;\n var newIndex = this.getIndex(params);\n var startIndex = newIndex.startIndex,\n endIndex = newIndex.endIndex;\n\n var isFullGap = function isFullGap() {\n var lastIndex = data.length - 1;\n\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\n return false;\n };\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: \"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\n if (!chartElement) {\n return null;\n }\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 _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\n var travellerProps = _objectSpread(_objectSpread({}, filterProps(this.props)), {}, {\n x: x,\n y: y,\n width: travellerWidth,\n height: height\n });\n\n return /*#__PURE__*/React.createElement(Layer, {\n className: \"recharts-brush-traveller\",\n onMouseEnter: this.handleEnterSlideOrTraveller,\n onMouseLeave: this.handleLeaveSlideOrTraveller,\n onMouseDown: this.travellerDragStartHandlers[id],\n onTouchStart: this.travellerDragStartHandlers[id],\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$state3 = this.state,\n startX = _this$state3.startX,\n endX = _this$state3.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$state4 = this.state,\n startX = _this$state4.startX,\n endX = _this$state4.endX,\n isTextActive = _this$state4.isTextActive,\n isSlideMoving = _this$state4.isSlideMoving,\n isTravellerMoving = _this$state4.isTravellerMoving;\n\n if (!data || !data.length || !isNumber(x) || !isNumber(y) || !isNumber(width) || !isNumber(height) || width <= 0 || height <= 0) {\n return null;\n }\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 onMouseMove: this.handleDrag,\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 || 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\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\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\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\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\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\n while (end - start > 1) {\n var middle = Math.floor((start + end) / 2);\n\n if (range[middle] > x) {\n end = middle;\n } else {\n start = middle;\n }\n }\n\n return x >= range[end] ? end : start;\n }\n }]);\n\n return Brush;\n}(PureComponent);\nBrush.displayName = 'Brush';\nBrush.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\n if (alwaysShow) {\n ifOverflow = 'extendDomain';\n }\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\n if (isDev && typeof console !== 'undefined' && console.warn) {\n if (format === undefined) {\n console.warn('LogUtils requires an error message argument');\n }\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};","import _isFunction from \"lodash/isFunction\";\n\nfunction _extends() { _extends = Object.assign || 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\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\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/types';\n\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\n if (ifOverflowMatches(props, 'discard') && !scales.isInRange(result)) {\n return null;\n }\n\n return result;\n};\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\n if (!isX || !isY) {\n return null;\n }\n\n var coordinate = getCoordinate(props);\n\n if (!coordinate) {\n return null;\n }\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\n var dotProps = _objectSpread(_objectSpread({\n clipPath: clipPath\n }, filterProps(props, true)), {}, {\n cx: cx,\n cy: cy\n });\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};\n\nReferenceDot.renderDot = function (option, props) {\n var dot;\n\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\n return dot;\n};","import _some from \"lodash/some\";\nimport _isFunction from \"lodash/isFunction\";\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\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.\"); }\n\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); }\n\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\nfunction _iterableToArrayLimit(arr, i) { if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction _extends() { _extends = Object.assign || 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/**\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/types';\n\nvar renderLine = function renderLine(option, props) {\n var line;\n\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\n return line;\n}; // TODO: ScaleHelper\n\n\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\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\n if (ifOverflowMatches(props, 'discard') && !scales.y.isInRange(coord)) {\n return null;\n }\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\n if (isFixedX) {\n var xCoord = props.x,\n _orientation = props.xAxis.orientation;\n\n var _coord = scales.x.apply(xCoord, {\n position: position\n });\n\n if (ifOverflowMatches(props, 'discard') && !scales.x.isInRange(_coord)) {\n return null;\n }\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\n if (isSegment) {\n var segment = props.segment;\n\n var _points2 = segment.map(function (p) {\n return scales.apply(p, {\n position: position\n });\n });\n\n if (ifOverflowMatches(props, 'discard') && _some(_points2, function (p) {\n return !scales.isInRange(p);\n })) {\n return null;\n }\n\n return _points2;\n }\n\n return null;\n};\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\n if (!endPoints) {\n return null;\n }\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\n var clipPath = ifOverflowMatches(props, 'hidden') ? \"url(#\".concat(clipPathId, \")\") : undefined;\n\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\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};","import _isFunction from \"lodash/isFunction\";\n\nfunction _extends() { _extends = Object.assign || 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\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\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/types';\n\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\n if (ifOverflowMatches(props, 'discard') && (!scales.isInRange(p1) || !scales.isInRange(p2))) {\n return null;\n }\n\n return rectWithPoints(p1, p2);\n};\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\n if (!hasX1 && !hasX2 && !hasY1 && !hasY2 && !shape) {\n return null;\n }\n\n var rect = getRect(hasX1, hasX2, hasY1, hasY2, props);\n\n if (!rect && !shape) {\n return null;\n }\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};\n\nReferenceArea.renderRect = function (option, props) {\n var rect;\n\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\n return rect;\n};","import { 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.displayName);\n var dots = findAllByType(children, ReferenceDot.displayName);\n var elements = lines.concat(dots);\n var areas = findAllByType(children, ReferenceArea.displayName);\n var idKey = \"\".concat(axisType, \"Id\");\n var valueKey = axisType[0];\n var finalDomain = domain;\n\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\n return result;\n }, finalDomain);\n }\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\n return result;\n }, finalDomain);\n }\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\n return result;\n }, finalDomain);\n }\n\n return finalDomain;\n};","import EventEmitter from 'eventemitter3';\nvar eventCenter = new EventEmitter();\n\nif (eventCenter.setMaxListeners) {\n eventCenter.setMaxListeners(10);\n}\n\nexport { eventCenter };\nexport var SYNC_EVENT = 'recharts.syncMouseEvents'; // eslint-disable-next-line no-redeclare","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nimport _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\";\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\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.\"); }\n\nfunction _iterableToArrayLimit(arr, i) { if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction _extends() { _extends = Object.assign || 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\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; }\n\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\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\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, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\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 } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\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); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\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; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\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.\"); }\n\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); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\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\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport React, { Component, cloneElement, isValidElement, createElement } from 'react';\nimport classNames from 'classnames';\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 } 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 { filterProps, adaptEventHandlers } from '../util/types';\nvar ORIENT_MAP = {\n xAxis: ['bottom', 'top'],\n yAxis: ['left', 'right']\n};\nvar originCoordinate = {\n x: 0,\n y: 0\n}; // use legacy isFinite only if there is a problem (aka IE)\n// eslint-disable-next-line no-restricted-globals\n\nvar isFinit = Number.isFinite ? Number.isFinite : isFinite;\nvar defer = // eslint-disable-next-line no-nested-ternary\ntypeof requestAnimationFrame === 'function' ? requestAnimationFrame : typeof setImmediate === 'function' ? setImmediate : setTimeout;\nvar deferClear = // eslint-disable-next-line no-nested-ternary\ntypeof cancelAnimationFrame === 'function' ? cancelAnimationFrame : typeof clearImmediate === 'function' ? clearImmediate : clearTimeout;\n\nvar calculateTooltipPos = function calculateTooltipPos(rangeObj, layout) {\n if (layout === 'horizontal') {\n return rangeObj.x;\n }\n\n if (layout === 'vertical') {\n return rangeObj.y;\n }\n\n if (layout === 'centric') {\n return rangeObj.angle;\n }\n\n return rangeObj.radius;\n};\n\nvar getActiveCoordinate = function getActiveCoordinate(layout, tooltipTicks, activeIndex, rangeObj) {\n var entry = tooltipTicks.find(function (tick) {\n return tick && tick.index === activeIndex;\n });\n\n if (entry) {\n if (layout === 'horizontal') {\n return {\n x: entry.coordinate,\n y: rangeObj.y\n };\n }\n\n if (layout === 'vertical') {\n return {\n x: rangeObj.x,\n y: entry.coordinate\n };\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\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\n return originCoordinate;\n};\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\n if (itemData && itemData.length) {\n return [].concat(_toConsumableArray(result), _toConsumableArray(itemData));\n }\n\n return result;\n }, []);\n\n if (itemsData && itemsData.length > 0) {\n return itemsData;\n }\n\n if (item && item.props && item.props.data && item.props.data.length > 0) {\n return item.props.data;\n }\n\n if (data && data.length && isNumber(dataStartIndex) && isNumber(dataEndIndex)) {\n return data.slice(dataStartIndex, dataEndIndex + 1);\n }\n\n return [];\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 */\n\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\n if (activeIndex < 0 || !graphicalItems || !graphicalItems.length || activeIndex >= displayedData.length) {\n return null;\n } // get data by activeIndex when the axis don't allow duplicated category\n\n\n return graphicalItems.reduce(function (result, child) {\n var hide = child.props.hide;\n\n if (hide) {\n return result;\n }\n\n var data = child.props.data;\n var payload;\n\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\n if (!payload) {\n return result;\n }\n\n return [].concat(_toConsumableArray(result), [getTooltipItem(child, payload)]);\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 */\n\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\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\n return null;\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 */\n\n\nvar 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); // Eliminate duplicated axes\n\n var axisMap = axes.reduce(function (result, child) {\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 var axisId = child.props[axisIdKey];\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\n if (!result[axisId]) {\n var domain, duplicateDomain, categoricalDomain;\n\n if (dataKey) {\n // has dataKey in \n domain = getDomainOfDataByKey(displayedData, dataKey, type);\n\n if (type === 'category' && isCategorical) {\n // the field type is category data and this axis is catrgorical axis\n var duplicate = hasDuplicate(domain);\n\n if (allowDuplicatedCategory && duplicate) {\n duplicateDomain = domain; // When category axis has duplicated text, serial numbers are used to generate scale\n\n domain = _range(0, len);\n } else if (!allowDuplicatedCategory) {\n // remove duplicated category\n domain = parseDomainOfCategoryAxis(child.props.domain, 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(child.props.domain, 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 && !item.props.hide;\n }), dataKey, axisType);\n\n if (errorBarsDomain) {\n domain = errorBarsDomain;\n }\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 && !item.props.hide;\n }), type, true);\n }\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\n if (child.props.domain) {\n domain = parseSpecifiedDomain(child.props.domain, domain, allowDataOverflow);\n }\n } else if (type === 'category' && child.props.domain) {\n var axisDomain = child.props.domain;\n var isDomainValidate = domain.every(function (entry) {\n return axisDomain.indexOf(entry) >= 0;\n });\n\n if (isDomainValidate) {\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.domain,\n isCategorical: isCategorical,\n layout: layout\n })));\n }\n\n return result;\n }, {});\n return axisMap;\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 */\n\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; // 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\n var axisMap = graphicalItems.reduce(function (result, child) {\n var axisId = child.props[axisIdKey];\n\n if (!result[axisId]) {\n index++;\n var domain;\n\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(Axis.defaultProps.domain, getDomainOfItemsWithSameAxis(displayedData, graphicalItems.filter(function (item) {\n return item.props[axisIdKey] === axisId && !item.props.hide;\n }), 'number'), Axis.defaultProps.allowDataOverflow);\n domain = detectReferenceElementsDomain(children, domain, axisId, axisType);\n }\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: Axis.defaultProps.domain,\n isCategorical: isCategorical,\n layout: layout // specify scale when no Axis\n // scale: isCategorical ? 'band' : 'linear',\n\n })));\n }\n\n return result;\n }, {});\n return axisMap;\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 */\n\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\"); // Get all the instance of Axis\n\n var axes = findAllByType(children, AxisComp);\n var axisMap = {};\n\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\n return axisMap;\n};\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 * 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 */\n\n\nvar createDefaultState = function createDefaultState(props) {\n var children = props.children,\n defaultShowTooltip = props.defaultShowTooltip;\n var brushItem = findChildByType(children, Brush.displayName);\n var startIndex = brushItem && brushItem.props && brushItem.props.startIndex || 0;\n var endIndex = brushItem && brushItem.props && brushItem.props.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};\n\nvar hasGraphicalBarItem = function hasGraphicalBarItem(graphicalItems) {\n if (!graphicalItems || !graphicalItems.length) {\n return false;\n }\n\n return graphicalItems.some(function (item) {\n var name = getDisplayName(item && item.type);\n return name && name.indexOf('Bar') >= 0;\n });\n};\n\nvar getAxisNameByLayout = function getAxisNameByLayout(layout) {\n if (layout === 'horizontal') {\n return {\n numericAxisName: 'yAxis',\n cateAxisName: 'xAxis'\n };\n }\n\n if (layout === 'vertical') {\n return {\n numericAxisName: 'xAxis',\n cateAxisName: 'yAxis'\n };\n }\n\n if (layout === 'centric') {\n return {\n numericAxisName: 'radiusAxis',\n cateAxisName: 'angleAxis'\n };\n }\n\n return {\n numericAxisName: 'angleAxis',\n cateAxisName: 'radiusAxis'\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 */\n\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.displayName);\n var legendItem = findChildByType(children, Legend.displayName);\n var offsetH = Object.keys(yAxisMap).reduce(function (result, id) {\n var entry = yAxisMap[id];\n var orientation = entry.orientation;\n\n if (!entry.mirror && !entry.hide) {\n return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, orientation, result[orientation] + entry.width));\n }\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\n if (!entry.mirror && !entry.hide) {\n return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, orientation, _get(result, \"\".concat(orientation)) + entry.height));\n }\n\n return result;\n }, {\n top: margin.top || 0,\n bottom: margin.bottom || 0\n });\n\n var offset = _objectSpread(_objectSpread({}, offsetV), offsetH);\n\n var brushBottom = offset.bottom;\n\n if (brushItem) {\n offset.bottom += brushItem.props.height || Brush.defaultProps.height;\n }\n\n if (legendItem && prevLegendBBox) {\n offset = appendOffsetOfLegend(offset, graphicalItems, props, prevLegendBBox);\n }\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};\n\nexport var generateCategoricalChart = function generateCategoricalChart(_ref6) {\n var _class, _temp;\n\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\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\n var _getAxisNameByLayout = getAxisNameByLayout(layout),\n numericAxisName = _getAxisNameByLayout.numericAxisName,\n cateAxisName = _getAxisNameByLayout.cateAxisName;\n\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\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\n if (itemIsBar) {\n var _ref7, _getBandSizeOfAxis;\n\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\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\n var composedFn = item && item.type && item.type.getComposedData;\n\n if (composedFn) {\n var _objectSpread7;\n\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 * 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\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\n if (!validateWidthHeight({\n props: props\n })) {\n return null;\n }\n\n var children = props.children,\n layout = props.layout,\n stackOffset = props.stackOffset,\n data = props.data,\n reverseStackOrder = props.reverseStackOrder;\n\n var _getAxisNameByLayout2 = getAxisNameByLayout(layout),\n numericAxisName = _getAxisNameByLayout2.numericAxisName,\n cateAxisName = _getAxisNameByLayout2.cateAxisName;\n\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\n return _temp = _class = /*#__PURE__*/function (_Component) {\n _inherits(CategoricalChartWrapper, _Component);\n\n var _super = _createSuper(CategoricalChartWrapper);\n\n // todo join specific chart propTypes\n function CategoricalChartWrapper(_props) {\n var _this;\n\n _classCallCheck(this, CategoricalChartWrapper);\n\n _this = _super.call(this, _props);\n _this.uniqueChartId = void 0;\n _this.clipPathId = void 0;\n _this.legendInstance = void 0;\n _this.deferId = void 0;\n _this.container = void 0;\n\n _this.clearDeferId = function () {\n if (!_isNil(_this.deferId) && deferClear) {\n deferClear(_this.deferId);\n }\n\n _this.deferId = null;\n };\n\n _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\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\n _this.handleReceiveSyncEvent = function (cId, chartId, data) {\n var syncId = _this.props.syncId;\n\n if (syncId === cId && chartId !== _this.uniqueChartId) {\n _this.clearDeferId();\n\n _this.deferId = defer && defer(_this.applySyncEvent.bind(_assertThisInitialized(_this), data));\n }\n };\n\n _this.handleBrushChange = function (_ref9) {\n var startIndex = _ref9.startIndex,\n endIndex = _ref9.endIndex;\n\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\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\n _this.triggerSyncEvent({\n dataStartIndex: startIndex,\n dataEndIndex: endIndex\n });\n }\n };\n\n _this.handleMouseEnter = function (e) {\n var onMouseEnter = _this.props.onMouseEnter;\n\n var mouse = _this.getMouseInfo(e);\n\n if (mouse) {\n var _nextState = _objectSpread(_objectSpread({}, mouse), {}, {\n isTooltipActive: true\n });\n\n _this.setState(_nextState);\n\n _this.triggerSyncEvent(_nextState);\n\n if (_isFunction(onMouseEnter)) {\n onMouseEnter(_nextState, e);\n }\n }\n };\n\n _this.triggeredAfterMouseMove = function (e) {\n var onMouseMove = _this.props.onMouseMove;\n\n var mouse = _this.getMouseInfo(e);\n\n var nextState = mouse ? _objectSpread(_objectSpread({}, mouse), {}, {\n isTooltipActive: true\n }) : {\n isTooltipActive: false\n };\n\n _this.setState(nextState);\n\n _this.triggerSyncEvent(nextState);\n\n if (_isFunction(onMouseMove)) {\n onMouseMove(nextState, e);\n }\n };\n\n _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 _this.handleItemMouseLeave = function () {\n _this.setState(function () {\n return {\n isTooltipActive: false\n };\n });\n };\n\n _this.handleMouseMove = function (e) {\n if (e && _isFunction(e.persist)) {\n e.persist();\n }\n\n _this.triggeredAfterMouseMove(e);\n };\n\n _this.handleMouseLeave = function (e) {\n var onMouseLeave = _this.props.onMouseLeave;\n var nextState = {\n isTooltipActive: false\n };\n\n _this.setState(nextState);\n\n _this.triggerSyncEvent(nextState);\n\n if (_isFunction(onMouseLeave)) {\n onMouseLeave(nextState, e);\n }\n\n _this.cancelThrottledTriggerAfterMouseMove();\n };\n\n _this.handleOuterEvent = function (e) {\n var eventName = getReactEventByType(e);\n\n var event = _get(_this.props, \"\".concat(eventName));\n\n if (eventName && _isFunction(event)) {\n var mouse;\n\n if (/.*touch.*/i.test(eventName)) {\n mouse = _this.getMouseInfo(e.changedTouches[0]);\n } else {\n mouse = _this.getMouseInfo(e);\n }\n\n var handler = event;\n handler(mouse, e);\n }\n };\n\n _this.handleClick = function (e) {\n var onClick = _this.props.onClick;\n\n var mouse = _this.getMouseInfo(e);\n\n if (mouse) {\n var _nextState2 = _objectSpread(_objectSpread({}, mouse), {}, {\n isTooltipActive: true\n });\n\n _this.setState(_nextState2);\n\n _this.triggerSyncEvent(_nextState2);\n\n if (_isFunction(onClick)) {\n onClick(_nextState2, e);\n }\n }\n };\n\n _this.handleMouseDown = function (e) {\n var onMouseDown = _this.props.onMouseDown;\n\n if (_isFunction(onMouseDown)) {\n var _nextState3 = _this.getMouseInfo(e);\n\n onMouseDown(_nextState3, e);\n }\n };\n\n _this.handleMouseUp = function (e) {\n var onMouseUp = _this.props.onMouseUp;\n\n if (_isFunction(onMouseUp)) {\n var _nextState4 = _this.getMouseInfo(e);\n\n onMouseUp(_nextState4, e);\n }\n };\n\n _this.handleTouchMove = function (e) {\n if (e.changedTouches != null && e.changedTouches.length > 0) {\n _this.handleMouseMove(e.changedTouches[0]);\n }\n };\n\n _this.handleTouchStart = function (e) {\n if (e.changedTouches != null && e.changedTouches.length > 0) {\n _this.handleMouseDown(e.changedTouches[0]);\n }\n };\n\n _this.handleTouchEnd = function (e) {\n if (e.changedTouches != null && e.changedTouches.length > 0) {\n _this.handleMouseUp(e.changedTouches[0]);\n }\n };\n\n _this.verticalCoordinatesGenerator = function (_ref10) {\n var xAxis = _ref10.xAxis,\n width = _ref10.width,\n height = _ref10.height,\n offset = _ref10.offset;\n return getCoordinatesOfGrid(CartesianAxis.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\n _this.horizontalCoordinatesGenerator = function (_ref11) {\n var yAxis = _ref11.yAxis,\n width = _ref11.width,\n height = _ref11.height,\n offset = _ref11.offset;\n return getCoordinatesOfGrid(CartesianAxis.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\n _this.axesTicksGenerator = function (axis) {\n return getTicksOfAxis(axis, true);\n };\n\n _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\n var tooltipEventType = _this.getTooltipEventType();\n\n if (!element || !element.props.cursor || !isTooltipActive || !activeCoordinate || chartName !== 'ScatterChart' && tooltipEventType !== 'axis') {\n return null;\n }\n\n var layout = _this.props.layout;\n var restProps;\n var cursorComp = Curve;\n\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\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\n var key = element.key || '_recharts-cursor';\n\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\n return /*#__PURE__*/isValidElement(element.props.cursor) ? /*#__PURE__*/cloneElement(element.props.cursor, cursorProps) : /*#__PURE__*/createElement(cursorComp, cursorProps);\n };\n\n _this.renderPolarAxis = function (element, displayName, index) {\n var axisType = _get(element, 'type.axisType');\n\n var axisMap = _get(_this.state, \"\".concat(axisType, \"Map\"));\n\n var axisOption = 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\n _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\n _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 _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\n var yAxisWithFiniteDomain = _find(yAxisMap, function (axis) {\n return _every(axis.domain, isFinit);\n });\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\n _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 _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\n if (!props) {\n return null;\n }\n\n var item = props.item,\n otherProps = _objectWithoutProperties(props, [\"item\"]);\n\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 _this.renderTooltip = function () {\n var children = _this.props.children;\n var tooltipItem = findChildByType(children, Tooltip.displayName);\n\n if (!tooltipItem) {\n return null;\n }\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\n _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; // TODO: update brush when children update\n\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\n _this.renderReferenceElement = function (element, displayName, index) {\n if (!element) {\n return null;\n }\n\n var _assertThisInitialize = _assertThisInitialized(_this),\n clipPathId = _assertThisInitialize.clipPathId;\n\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\n _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\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\n result.push(CategoricalChartWrapper.renderActiveDot(activeDot, dotProps));\n\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\n return result;\n };\n\n _this.renderGraphicChild = function (element, displayName, index) {\n var item = _this.filterFormatItem(element, displayName, index);\n\n if (!item) {\n return null;\n }\n\n var tooltipEventType = _this.getTooltipEventType();\n\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.displayName);\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\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\n var graphicalItem = /*#__PURE__*/cloneElement(element, _objectSpread(_objectSpread({}, item.props), itemEvents));\n\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\n if (hasActive) {\n var activePoint, basePoint;\n\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\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\n if (isRange) {\n return [graphicalItem, null, null];\n }\n\n return [graphicalItem, null];\n };\n\n _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\n _this.uniqueChartId = _isNil(_props.id) ? uniqueId('recharts') : _props.id;\n _this.clipPathId = \"\".concat(_this.uniqueChartId, \"-clip\");\n\n if (_props.throttleDelay) {\n _this.triggeredAfterMouseMove = _throttle(_this.triggeredAfterMouseMove, _props.throttleDelay);\n }\n\n _this.state = {};\n return _this;\n }\n /* eslint-disable react/no-did-mount-set-state */\n\n\n _createClass(CategoricalChartWrapper, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n if (!_isNil(this.props.syncId)) {\n this.addListener();\n }\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 } // remove syncId\n\n\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\n if (!_isNil(this.props.syncId)) {\n this.removeListener();\n }\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.displayName);\n\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\n return defaultTooltipEventType;\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 }, {\n key: \"getMouseInfo\",\n value: function getMouseInfo(event) {\n if (!this.container) {\n return null;\n }\n\n var containerOffset = getOffset(this.container);\n var e = calculateChartCoordinate(event, containerOffset);\n var rangeObj = this.inRange(e.chartX, e.chartY);\n\n if (!rangeObj) {\n return null;\n }\n\n var _this$state9 = this.state,\n xAxisMap = _this$state9.xAxisMap,\n yAxisMap = _this$state9.yAxisMap;\n var tooltipEventType = this.getTooltipEventType();\n\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\n var toolTipData = getTooltipData(this.state, this.props.data, this.props.layout, rangeObj);\n\n if (toolTipData) {\n return _objectSpread(_objectSpread({}, e), toolTipData);\n }\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\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\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\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\n var _this$state12 = this.state,\n angleAxisMap = _this$state12.angleAxisMap,\n radiusAxisMap = _this$state12.radiusAxisMap;\n\n if (angleAxisMap && radiusAxisMap) {\n var angleAxis = getAnyElementOfObject(angleAxisMap);\n return inRangeOfSector({\n x: x,\n y: y\n }, angleAxis);\n }\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.displayName);\n var tooltipEvents = {};\n\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 var outerEvents = adaptEventHandlers(this.props, this.handleOuterEvent);\n return _objectSpread(_objectSpread({}, outerEvents), tooltipEvents);\n }\n /* eslint-disable no-underscore-dangle */\n\n }, {\n key: \"addListener\",\n value: function addListener() {\n eventCenter.on(SYNC_EVENT, this.handleReceiveSyncEvent);\n\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\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\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\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\n if (!offset) {\n return;\n }\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\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\n var viewBox = _objectSpread(_objectSpread({}, offset), {}, {\n x: offset.left,\n y: offset.top\n }); // When a categotical chart is combined with another chart, the value of chartX\n // and chartY may beyond the boundaries.\n\n\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\n for (var i = 0, len = formattedGraphicalItems.length; i < len; i++) {\n var entry = formattedGraphicalItems[i];\n\n if (entry.item === item || entry.props.key === item.key || displayName === getDisplayName(entry.item.type) && childIndex === entry.childIndex) {\n return entry;\n }\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: \"recharts-\".concat(axisOptions.axisType, \" \").concat(axisOptions.axisType),\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 * Draw grid\n * @param {ReactElement} element the grid item\n * @return {ReactElement} The instance of grid\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\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\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\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\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\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\n if (itemDisplayName === 'Bar') {\n var activeBarItem = (props.data || []).find(function (entry) {\n return isInRectangle(chartXY, entry);\n });\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\n if (_activeBarItem) {\n return {\n graphicalItem: graphicalItem,\n payload: _activeBarItem\n };\n }\n }\n }\n }\n\n return null;\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n\n if (!validateWidthHeight(this)) {\n return null;\n }\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 others = _objectWithoutProperties(_this$props6, [\"children\", \"className\", \"width\", \"height\", \"style\", \"compact\"]);\n\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 }; // The \"compact\" mode is mainly used as the panorama within Brush\n\n if (compact) {\n return /*#__PURE__*/React.createElement(Surface, _extends({}, attrs, {\n width: width,\n height: height\n }), this.renderClipPath(), renderByOrder(children, map));\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 }), /*#__PURE__*/React.createElement(Surface, _extends({}, attrs, {\n width: width,\n height: height\n }), this.renderClipPath(), renderByOrder(children, map)), this.renderLegend(), this.renderTooltip());\n }\n }]);\n\n return CategoricalChartWrapper;\n }(Component), _class.displayName = chartName, _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), _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\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\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); // Fixes https://github.com/recharts/recharts/issues/2143\n\n\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\n var updatesToState = _objectSpread(_objectSpread({}, getTooltipData(prevState, data, layout)), {}, {\n updateId: prevState.updateId + 1\n });\n\n var newState = _objectSpread(_objectSpread(_objectSpread({}, _defaultState), keepFromPrevState), updatesToState);\n\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\n if (!isChildrenEqual(children, prevState.prevChildren)) {\n // update configuration in chilren\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\n return null;\n }, _class.renderActiveDot = function (option, props) {\n var dot;\n\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\n return /*#__PURE__*/React.createElement(Layer, {\n className: \"recharts-active-dot\",\n key: props.key\n }, dot);\n }, _temp;\n};","import _isObject from \"lodash/isObject\";\nimport _isFunction from \"lodash/isFunction\";\nimport _isNil from \"lodash/isNil\";\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\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.\"); }\n\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); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\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\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _extends() { _extends = Object.assign || 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\nimport React, { cloneElement, isValidElement, createElement } from 'react';\nimport classNames from 'classnames';\nimport { Text } from './Text';\nimport { findAllByType } from '../util/ReactUtils';\nimport { isNumOrStr, isNumber, isPercent, getPercentValue, uniqueId, mathSign } from '../util/DataUtils';\nimport { polarToCartesian } from '../util/PolarUtils';\nimport { filterProps } from '../util/types';\n\nvar getLabel = function getLabel(props) {\n var value = props.value,\n formatter = props.formatter;\n var label = _isNil(props.children) ? value : props.children;\n\n if (_isFunction(formatter)) {\n return formatter(label);\n }\n\n return label;\n};\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};\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\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\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};\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\n if (position === 'outside') {\n var _polarToCartesian = polarToCartesian(cx, cy, outerRadius + offset, midAngle),\n _x = _polarToCartesian.x,\n _y = _polarToCartesian.y;\n\n return {\n x: _x,\n y: _y,\n textAnchor: _x >= cx ? 'start' : 'end',\n verticalAnchor: 'middle'\n };\n }\n\n if (position === 'center') {\n return {\n x: cx,\n y: cy,\n textAnchor: 'middle',\n verticalAnchor: 'middle'\n };\n }\n\n if (position === 'centerTop') {\n return {\n x: cx,\n y: cy,\n textAnchor: 'middle',\n verticalAnchor: 'start'\n };\n }\n\n if (position === 'centerBottom') {\n return {\n x: cx,\n y: cy,\n textAnchor: 'middle',\n verticalAnchor: 'end'\n };\n }\n\n var r = (innerRadius + outerRadius) / 2;\n\n var _polarToCartesian2 = polarToCartesian(cx, cy, r, midAngle),\n x = _polarToCartesian2.x,\n y = _polarToCartesian2.y;\n\n return {\n x: x,\n y: y,\n textAnchor: 'middle',\n verticalAnchor: 'middle'\n };\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; // Define vertical offsets and position inverts based on the value being positive or negative\n\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'; // Define horizontal offsets and position inverts based on the value being positive or negative\n\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\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\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\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\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\n var sizeAttrs = parentViewBox ? {\n width: width,\n height: height\n } : {};\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\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\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\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\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\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\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\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\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\n return _objectSpread({\n x: x + width / 2,\n y: y + height / 2,\n textAnchor: 'middle',\n verticalAnchor: 'middle'\n }, sizeAttrs);\n};\n\nvar isPolar = function isPolar(viewBox) {\n return isNumber(viewBox.cx);\n};\n\nexport function Label(props) {\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\n if (!viewBox || _isNil(value) && _isNil(children) && ! /*#__PURE__*/isValidElement(content) && !_isFunction(content)) {\n return null;\n }\n\n if ( /*#__PURE__*/isValidElement(content)) {\n return /*#__PURE__*/cloneElement(content, props);\n }\n\n var label;\n\n if (_isFunction(content)) {\n label = /*#__PURE__*/createElement(content, props);\n\n if ( /*#__PURE__*/isValidElement(label)) {\n return label;\n }\n } else {\n label = getLabel(props);\n }\n\n var isPolarLabel = isPolar(viewBox);\n var attrs = filterProps(props, true);\n\n if (isPolarLabel && (position === 'insideStart' || position === 'insideEnd' || position === 'end')) {\n return renderRadialLabel(props, label, attrs);\n }\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';\nLabel.defaultProps = {\n offset: 5\n};\n\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\n if (labelViewBox) {\n return labelViewBox;\n }\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\n if (isNumber(top) && isNumber(left)) {\n return {\n x: top,\n y: left,\n width: width,\n height: height\n };\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\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\n if (props.viewBox) {\n return props.viewBox;\n }\n\n return {};\n};\n\nvar parseLabel = function parseLabel(label, viewBox) {\n if (!label) {\n return null;\n }\n\n if (label === true) {\n return /*#__PURE__*/React.createElement(Label, {\n key: \"label-implicit\",\n viewBox: viewBox\n });\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\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\n return /*#__PURE__*/React.createElement(Label, {\n key: \"label-implicit\",\n content: label,\n viewBox: viewBox\n });\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\n if (_isObject(label)) {\n return /*#__PURE__*/React.createElement(Label, _extends({\n viewBox: viewBox\n }, label, {\n key: \"label-implicit\"\n }));\n }\n\n return null;\n};\n\nvar renderCallByParent = function renderCallByParent(parentProps, viewBox) {\n var checkPropsLabel = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n\n if (!parentProps || !parentProps.children && checkPropsLabel && !parentProps.label) {\n return null;\n }\n\n var children = parentProps.children;\n var parentViewBox = parseViewBox(parentProps);\n var explicitChildren = findAllByType(children, Label.displayName).map(function (child, index) {\n return /*#__PURE__*/cloneElement(child, {\n viewBox: viewBox || parentViewBox,\n key: \"label-\".concat(index)\n });\n });\n\n if (!checkPropsLabel) {\n return explicitChildren;\n }\n\n var implicitLabel = parseLabel(parentProps.label, viewBox || parentViewBox);\n return [implicitLabel].concat(_toConsumableArray(explicitChildren));\n};\n\nLabel.parseViewBox = parseViewBox;\nLabel.renderCallByParent = renderCallByParent;","import _isObject from \"lodash/isObject\";\nimport _isFunction from \"lodash/isFunction\";\nimport _isNil from \"lodash/isNil\";\nimport _last from \"lodash/last\";\nimport _isArray from \"lodash/isArray\";\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\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.\"); }\n\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); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\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\nfunction _extends() { _extends = Object.assign || 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\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\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; }\n\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\nimport React, { cloneElement } from 'react';\nimport { Label } from './Label';\nimport { Layer } from '../container/Layer';\nimport { findAllByType } from '../util/ReactUtils';\nimport { getValueByDataKey } from '../util/ChartUtils';\nimport { filterProps } from '../util/types';\nvar defaultProps = {\n valueAccessor: function valueAccessor(entry) {\n return _isArray(entry.value) ? _last(entry.value) : entry.value;\n }\n};\nexport function LabelList(props) {\n var data = props.data,\n valueAccessor = props.valueAccessor,\n dataKey = props.dataKey,\n clockWise = props.clockWise,\n id = props.id,\n textBreakAll = props.textBreakAll,\n others = _objectWithoutProperties(props, [\"data\", \"valueAccessor\", \"dataKey\", \"clockWise\", \"id\", \"textBreakAll\"]);\n\n if (!data || !data.length) {\n return null;\n }\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';\n\nfunction parseLabelList(label, data) {\n if (!label) {\n return null;\n }\n\n if (label === true) {\n return /*#__PURE__*/React.createElement(LabelList, {\n key: \"labelList-implicit\",\n data: data\n });\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\n if (_isObject(label)) {\n return /*#__PURE__*/React.createElement(LabelList, _extends({\n data: data\n }, label, {\n key: \"labelList-implicit\"\n }));\n }\n\n return null;\n}\n\nfunction renderCallByParent(parentProps, data) {\n var ckeckPropsLabel = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n\n if (!parentProps || !parentProps.children && ckeckPropsLabel && !parentProps.label) {\n return null;\n }\n\n var children = parentProps.children;\n var explicitChilren = findAllByType(children, LabelList.displayName).map(function (child, index) {\n return /*#__PURE__*/cloneElement(child, {\n data: data,\n key: \"labelList-\".concat(index)\n });\n });\n\n if (!ckeckPropsLabel) {\n return explicitChilren;\n }\n\n var implicitLabelList = parseLabelList(parentProps.label, data);\n return [implicitLabelList].concat(_toConsumableArray(explicitChilren));\n}\n\nLabelList.renderCallByParent = renderCallByParent;\nLabelList.defaultProps = defaultProps;","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nimport _upperFirst from \"lodash/upperFirst\";\n\nfunction _extends() { _extends = Object.assign || 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\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\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, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\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 } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\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); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\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; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n/**\n * @fileOverview Curve\n */\nimport React, { PureComponent } from 'react';\nimport { symbol as shapeSymbol, symbolCircle, symbolCross, symbolDiamond, symbolSquare, symbolStar, symbolTriangle, symbolWye } from 'd3-shape';\nimport classNames from 'classnames';\nimport { filterProps } from '../util/types';\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;\n\nvar getSymbolFactory = function getSymbolFactory(type) {\n var name = \"symbol\".concat(_upperFirst(type));\n return symbolFactories[name] || symbolCircle;\n};\n\nvar calculateAreaSize = function calculateAreaSize(size, sizeType, type) {\n if (sizeType === 'area') {\n return size;\n }\n\n switch (type) {\n case 'cross':\n return 5 * size * size / 9;\n\n case 'diamond':\n return 0.5 * size * size / Math.sqrt(3);\n\n case 'square':\n return size * size;\n\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\n case 'triangle':\n return Math.sqrt(3) * size * size / 4;\n\n case 'wye':\n return (21 - 10 * Math.sqrt(3)) * size * size / 8;\n\n default:\n return Math.PI * size * size / 4;\n }\n};\n\nexport var Symbols = /*#__PURE__*/function (_PureComponent) {\n _inherits(Symbols, _PureComponent);\n\n var _super = _createSuper(Symbols);\n\n function Symbols() {\n _classCallCheck(this, Symbols);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(Symbols, [{\n key: \"getPath\",\n value:\n /**\n * Calculate the path of curve\n * @return {String} path\n */\n function getPath() {\n var _this$props = this.props,\n size = _this$props.size,\n sizeType = _this$props.sizeType,\n type = _this$props.type;\n var symbolFactory = getSymbolFactory(type);\n var symbol = shapeSymbol().type(symbolFactory).size(calculateAreaSize(size, sizeType, type));\n return symbol();\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props2 = this.props,\n className = _this$props2.className,\n cx = _this$props2.cx,\n cy = _this$props2.cy,\n size = _this$props2.size;\n\n if (cx === +cx && cy === +cy && size === +size) {\n return /*#__PURE__*/React.createElement(\"path\", _extends({}, filterProps(this.props, true), {\n className: classNames('recharts-symbols', className),\n transform: \"translate(\".concat(cx, \", \").concat(cy, \")\"),\n d: this.getPath()\n }));\n }\n\n return null;\n }\n }]);\n\n return Symbols;\n}(PureComponent);\nSymbols.defaultProps = {\n type: 'circle',\n size: 64,\n sizeType: 'area'\n};\n\nSymbols.registerSymbol = function (key, factory) {\n symbolFactories[\"symbol\".concat(_upperFirst(key))] = factory;\n};","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _extends() { _extends = Object.assign || 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\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\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, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\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 } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\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); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\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; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\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\n var _super = _createSuper(DefaultLegendContent);\n\n function DefaultLegendContent() {\n _classCallCheck(this, DefaultLegendContent);\n\n return _super.apply(this, arguments);\n }\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\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\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\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\n if ( /*#__PURE__*/React.isValidElement(data.legendIcon)) {\n var iconProps = _objectSpread({}, data);\n\n delete iconProps.legendIcon;\n return /*#__PURE__*/React.cloneElement(data.legendIcon, iconProps);\n }\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 * Draw items of legend\n * @return {ReactElement} Items\n */\n\n }, {\n key: \"renderItems\",\n value: function renderItems() {\n var _this = this;\n\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\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\n if (entry.type === 'none') {\n return null;\n }\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\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\n if (!payload || !payload.length) {\n return null;\n }\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\n return DefaultLegendContent;\n}(PureComponent);\nDefaultLegendContent.displayName = 'Legend';\nDefaultLegendContent.defaultProps = {\n iconSize: 14,\n layout: 'horizontal',\n align: 'center',\n verticalAlign: 'middle',\n inactiveColor: '#ccc'\n};","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nimport _isFunction from \"lodash/isFunction\";\nimport _uniqBy from \"lodash/uniqBy\";\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\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, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\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 } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\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); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\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; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\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; }\n\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/**\n * @fileOverview Legend\n */\nimport React, { PureComponent } from 'react';\nimport { DefaultLegendContent } from './DefaultLegendContent';\nimport { isNumber } from '../util/DataUtils';\n\nfunction defaultUniqBy(entry) {\n return entry.value;\n}\n\nfunction getUniqPayload(option, payload) {\n if (option === true) {\n return _uniqBy(payload, defaultUniqBy);\n }\n\n if (_isFunction(option)) {\n return _uniqBy(payload, option);\n }\n\n return payload;\n}\n\nfunction renderContent(content, props) {\n if ( /*#__PURE__*/React.isValidElement(content)) {\n return /*#__PURE__*/React.cloneElement(content, props);\n }\n\n if (_isFunction(content)) {\n return /*#__PURE__*/React.createElement(content, props);\n }\n\n var ref = props.ref,\n otherProps = _objectWithoutProperties(props, [\"ref\"]);\n\n return /*#__PURE__*/React.createElement(DefaultLegendContent, otherProps);\n}\n\nvar EPS = 1;\nexport var Legend = /*#__PURE__*/function (_PureComponent) {\n _inherits(Legend, _PureComponent);\n\n var _super = _createSuper(Legend);\n\n function Legend() {\n var _this;\n\n _classCallCheck(this, Legend);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n _this.wrapperNode = void 0;\n _this.state = {\n boxWidth: -1,\n boxHeight: -1\n };\n return _this;\n }\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\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\n if (boxWidth >= 0 && boxHeight >= 0) {\n return {\n width: boxWidth,\n height: boxHeight\n };\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\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\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\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\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\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\n if (this.wrapperNode && this.wrapperNode.getBoundingClientRect) {\n var _box3 = this.wrapperNode.getBoundingClientRect();\n\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\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\n var outerStyle = _objectSpread(_objectSpread({\n position: 'absolute',\n width: width || 'auto',\n height: height || 'auto'\n }, this.getDefaultPosition(wrapperStyle)), wrapperStyle);\n\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\n if (layout === 'vertical' && isNumber(item.props.height)) {\n return {\n height: item.props.height\n };\n }\n\n if (layout === 'horizontal') {\n return {\n width: item.props.width || chartWidth\n };\n }\n\n return null;\n }\n }]);\n\n return Legend;\n}(PureComponent);\nLegend.displayName = 'Legend';\nLegend.defaultProps = {\n iconSize: 14,\n layout: 'horizontal',\n align: 'center',\n verticalAlign: 'bottom'\n};","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nimport _isNil from \"lodash/isNil\";\n\nfunction _extends() { _extends = Object.assign || 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\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; }\n\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\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\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, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\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 } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\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); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\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; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\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.\"); }\n\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); }\n\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\nfunction _iterableToArrayLimit(arr, i) { if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport React, { Component } 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/types';\nimport { getStringSize } from '../util/DOMUtils';\nvar BREAKING_SPACES = /[ \\f\\n\\r\\t\\v\\u2028\\u2029]+/;\n\nvar calculateWordWidths = function calculateWordWidths(props) {\n try {\n var words = [];\n\n if (!_isNil(props.children)) {\n if (props.breakAll) {\n words = props.children.toString().split('');\n } else {\n words = props.children.toString().split(BREAKING_SPACES);\n }\n }\n\n var wordsWithComputedWidth = words.map(function (word) {\n return {\n word: word,\n width: getStringSize(word, props.style).width\n };\n });\n var spaceWidth = props.breakAll ? 0 : getStringSize(\"\\xA0\", props.style).width;\n return {\n wordsWithComputedWidth: wordsWithComputedWidth,\n spaceWidth: spaceWidth\n };\n } catch (e) {\n return null;\n }\n};\n\nvar calculateWordsByLines = function calculateWordsByLines(props, initialWordsWithComputedWith, spaceWidth, lineWidth, scaleToFit) {\n var shouldLimitLines = isNumber(props.maxLines);\n var text = props.children;\n\n var calculate = function calculate() {\n var words = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n return words.reduce(function (result, _ref) {\n var word = _ref.word,\n width = _ref.width;\n var currentLine = result[result.length - 1];\n\n if (currentLine && (lineWidth == null || scaleToFit || currentLine.width + width + spaceWidth < 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\n return result;\n }, []);\n };\n\n var originalResult = calculate(initialWordsWithComputedWith);\n\n var findLongestLine = function findLongestLine(words) {\n return words.reduce(function (a, b) {\n return a.width > b.width ? a : b;\n });\n };\n\n if (!shouldLimitLines) {\n return originalResult;\n }\n\n var suffix = '…';\n\n var checkOverflow = function checkOverflow(index) {\n var tempText = text.slice(0, index);\n var words = calculateWordWidths(_objectSpread(_objectSpread({}, props), {}, {\n children: tempText + suffix\n })).wordsWithComputedWidth;\n var result = calculate(words);\n var doesOverflow = result.length > props.maxLines || findLongestLine(result).width > lineWidth;\n return [doesOverflow, result];\n };\n\n var start = 0;\n var end = text.length - 1;\n var iterations = 0;\n var trimmedResult;\n\n while (start <= end && iterations <= text.length - 1) {\n var middle = Math.floor((start + end) / 2);\n var prev = middle - 1;\n\n var _checkOverflow = checkOverflow(prev),\n _checkOverflow2 = _slicedToArray(_checkOverflow, 2),\n doesPrevOverflow = _checkOverflow2[0],\n result = _checkOverflow2[1];\n\n var _checkOverflow3 = checkOverflow(middle),\n _checkOverflow4 = _slicedToArray(_checkOverflow3, 1),\n doesMiddleOverflow = _checkOverflow4[0];\n\n if (!doesPrevOverflow && !doesMiddleOverflow) {\n start = middle + 1;\n }\n\n if (doesPrevOverflow && doesMiddleOverflow) {\n end = middle - 1;\n }\n\n if (!doesPrevOverflow && doesMiddleOverflow) {\n trimmedResult = result;\n break;\n }\n\n iterations++;\n } // Fallback to originalResult (result without trimming) if we cannot find the\n // where to trim. This should not happen :tm:\n\n\n return trimmedResult || originalResult;\n};\n\nvar getWordsWithoutCalculate = function getWordsWithoutCalculate(children) {\n var words = !_isNil(children) ? children.toString().split(BREAKING_SPACES) : [];\n return [{\n words: words\n }];\n};\n\nvar getWordsByLines = function getWordsByLines(props, needCalculate) {\n // Only perform calculations if using features that require them (multiline, scaleToFit)\n if ((props.width || props.scaleToFit) && !Global.isSsr) {\n var wordsWithComputedWidth, spaceWidth;\n\n if (needCalculate) {\n var wordWidths = calculateWordWidths(props);\n\n if (wordWidths) {\n var wcw = wordWidths.wordsWithComputedWidth,\n sw = wordWidths.spaceWidth;\n wordsWithComputedWidth = wcw;\n spaceWidth = sw;\n } else {\n return getWordsWithoutCalculate(props.children);\n }\n\n return calculateWordsByLines(props, wordsWithComputedWidth, spaceWidth, props.width, props.scaleToFit);\n }\n }\n\n return getWordsWithoutCalculate(props.children);\n};\n\nexport var Text = /*#__PURE__*/function (_Component) {\n _inherits(Text, _Component);\n\n var _super = _createSuper(Text);\n\n function Text() {\n var _this;\n\n _classCallCheck(this, Text);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n _this.state = {};\n return _this;\n }\n\n _createClass(Text, [{\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n dx = _this$props.dx,\n dy = _this$props.dy,\n textAnchor = _this$props.textAnchor,\n verticalAnchor = _this$props.verticalAnchor,\n scaleToFit = _this$props.scaleToFit,\n angle = _this$props.angle,\n lineHeight = _this$props.lineHeight,\n capHeight = _this$props.capHeight,\n className = _this$props.className,\n breakAll = _this$props.breakAll,\n textProps = _objectWithoutProperties(_this$props, [\"dx\", \"dy\", \"textAnchor\", \"verticalAnchor\", \"scaleToFit\", \"angle\", \"lineHeight\", \"capHeight\", \"className\", \"breakAll\"]);\n\n var wordsByLines = this.state.wordsByLines;\n\n if (!isNumOrStr(textProps.x) || !isNumOrStr(textProps.y)) {\n return null;\n }\n\n var x = textProps.x + (isNumber(dx) ? dx : 0);\n var y = textProps.y + (isNumber(dy) ? dy : 0);\n var startDy;\n\n switch (verticalAnchor) {\n case 'start':\n startDy = reduceCSSCalc(\"calc(\".concat(capHeight, \")\"));\n break;\n\n case 'middle':\n startDy = reduceCSSCalc(\"calc(\".concat((wordsByLines.length - 1) / 2, \" * -\").concat(lineHeight, \" + (\").concat(capHeight, \" / 2))\"));\n break;\n\n default:\n startDy = reduceCSSCalc(\"calc(\".concat(wordsByLines.length - 1, \" * -\").concat(lineHeight, \")\"));\n break;\n }\n\n var transforms = [];\n\n if (scaleToFit) {\n var lineWidth = wordsByLines[0].width;\n var width = this.props.width;\n transforms.push(\"scale(\".concat((isNumber(width) ? width / lineWidth : 1) / lineWidth, \")\"));\n }\n\n if (angle) {\n transforms.push(\"rotate(\".concat(angle, \", \").concat(x, \", \").concat(y, \")\"));\n }\n\n if (transforms.length) {\n textProps.transform = transforms.join(' ');\n }\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 }), 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 }\n }], [{\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(nextProps, prevState) {\n if (nextProps.width !== prevState.prevWidth || nextProps.scaleToFit !== prevState.prevScaleToFit || nextProps.children !== prevState.prevChildren || nextProps.style !== prevState.prevStyle || nextProps.breakAll !== prevState.prevBreakAll) {\n var needCalculate = nextProps.children !== prevState.prevChildren || nextProps.style !== prevState.prevStyle || nextProps.breakAll !== prevState.prevBreakAll;\n return {\n prevWidth: nextProps.width,\n prevScaleToFit: nextProps.scaleToFit,\n prevChildren: nextProps.children,\n prevStyle: nextProps.style,\n wordsByLines: getWordsByLines(nextProps, needCalculate)\n };\n }\n\n return null;\n }\n }]);\n\n return Text;\n}(Component);\nText.defaultProps = {\n x: 0,\n y: 0,\n lineHeight: '1em',\n capHeight: '0.71em',\n // Magic number from d3\n scaleToFit: false,\n textAnchor: 'start',\n verticalAnchor: 'end' // Maintain compat with existing charts / default SVG behavior\n\n};","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nimport _isNil from \"lodash/isNil\";\nimport _sortBy from \"lodash/sortBy\";\nimport _isArray from \"lodash/isArray\";\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\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.\"); }\n\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); }\n\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\nfunction _iterableToArrayLimit(arr, i) { if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\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, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\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 } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\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); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\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; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nimport React, { PureComponent } from 'react';\nimport classNames from 'classnames';\nimport { isNumOrStr } from '../util/DataUtils';\n\nfunction defaultFormatter(value) {\n return _isArray(value) && isNumOrStr(value[0]) && isNumOrStr(value[1]) ? value.join(' ~ ') : value;\n}\n\nexport var DefaultTooltipContent = /*#__PURE__*/function (_PureComponent) {\n _inherits(DefaultTooltipContent, _PureComponent);\n\n var _super = _createSuper(DefaultTooltipContent);\n\n function DefaultTooltipContent() {\n _classCallCheck(this, DefaultTooltipContent);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(DefaultTooltipContent, [{\n key: \"renderContent\",\n value: function renderContent() {\n var _this$props = this.props,\n payload = _this$props.payload,\n separator = _this$props.separator,\n formatter = _this$props.formatter,\n itemStyle = _this$props.itemStyle,\n itemSorter = _this$props.itemSorter;\n\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\n var finalItemStyle = _objectSpread({\n display: 'block',\n paddingTop: 4,\n paddingBottom: 4,\n color: entry.color || '#000'\n }, itemStyle);\n\n var finalFormatter = entry.formatter || formatter || defaultFormatter;\n var name = entry.name,\n value = entry.value;\n\n if (finalFormatter) {\n var formatted = finalFormatter(value, name, entry, i, payload);\n\n if (Array.isArray(formatted)) {\n var _formatted = _slicedToArray(formatted, 2);\n\n value = _formatted[0];\n name = _formatted[1];\n } else {\n value = formatted;\n }\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(name) ? /*#__PURE__*/React.createElement(\"span\", {\n className: \"recharts-tooltip-item-name\"\n }, name) : null, isNumOrStr(name) ? /*#__PURE__*/React.createElement(\"span\", {\n className: \"recharts-tooltip-item-separator\"\n }, separator) : null, /*#__PURE__*/React.createElement(\"span\", {\n className: \"recharts-tooltip-item-value\"\n }, value), /*#__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\n return null;\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props2 = this.props,\n wrapperClassName = _this$props2.wrapperClassName,\n contentStyle = _this$props2.contentStyle,\n labelClassName = _this$props2.labelClassName,\n labelStyle = _this$props2.labelStyle,\n label = _this$props2.label,\n labelFormatter = _this$props2.labelFormatter,\n payload = _this$props2.payload;\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\n var finalLabelStyle = _objectSpread({\n margin: 0\n }, labelStyle);\n\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\n if (hasLabel && labelFormatter && payload !== undefined && payload !== null) {\n finalLabel = labelFormatter(label, payload);\n }\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)), this.renderContent());\n }\n }]);\n\n return DefaultTooltipContent;\n}(PureComponent);\nDefaultTooltipContent.displayName = 'DefaultTooltipContent';\nDefaultTooltipContent.defaultProps = {\n separator: ' : ',\n contentStyle: {},\n itemStyle: {},\n labelStyle: {}\n};","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nimport _isNil from \"lodash/isNil\";\nimport _isFunction from \"lodash/isFunction\";\nimport _uniqBy from \"lodash/uniqBy\";\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\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, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\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 } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\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); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\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; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\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;\n\nfunction defaultUniqBy(entry) {\n return entry.dataKey;\n}\n\nfunction getUniqPayload(option, payload) {\n if (option === true) {\n return _uniqBy(payload, defaultUniqBy);\n }\n\n if (_isFunction(option)) {\n return _uniqBy(payload, option);\n }\n\n return payload;\n}\n\nfunction renderContent(content, props) {\n if ( /*#__PURE__*/React.isValidElement(content)) {\n return /*#__PURE__*/React.cloneElement(content, props);\n }\n\n if (_isFunction(content)) {\n return /*#__PURE__*/React.createElement(content, props);\n }\n\n return /*#__PURE__*/React.createElement(DefaultTooltipContent, props);\n}\n\nexport var Tooltip = /*#__PURE__*/function (_PureComponent) {\n _inherits(Tooltip, _PureComponent);\n\n var _super = _createSuper(Tooltip);\n\n function Tooltip() {\n var _this;\n\n _classCallCheck(this, Tooltip);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n _this.state = {\n boxWidth: -1,\n boxHeight: -1\n };\n _this.wrapperNode = void 0;\n\n _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 coordinate = _this$props.coordinate,\n offset = _this$props.offset,\n position = _this$props.position,\n viewBox = _this$props.viewBox;\n\n if (position && isNumber(position[key])) {\n return position[key];\n }\n\n var restricted = coordinate[key] - tooltipDimension - offset;\n var unrestricted = coordinate[key] + offset;\n\n if (allowEscapeViewBox[key]) {\n return unrestricted;\n }\n\n var tooltipBoundary = coordinate[key] + tooltipDimension + offset;\n var viewBoxBoundary = viewBox[key] + viewBoxDimension;\n\n if (tooltipBoundary > viewBoxBoundary) {\n return Math.max(restricted, viewBox[key]);\n }\n\n return Math.max(unrestricted, viewBox[key]);\n };\n\n return _this;\n }\n\n _createClass(Tooltip, [{\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: \"updateBBox\",\n value: function updateBBox() {\n var _this$state = this.state,\n boxWidth = _this$state.boxWidth,\n boxHeight = _this$state.boxHeight;\n\n if (this.wrapperNode && this.wrapperNode.getBoundingClientRect) {\n var box = this.wrapperNode.getBoundingClientRect();\n\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\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\n var outerStyle = _objectSpread({\n pointerEvents: 'none',\n visibility: active && hasPayload ? 'visible' : 'hidden',\n position: 'absolute',\n top: 0,\n left: 0\n }, wrapperStyle);\n\n var translateX, translateY;\n\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\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\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\n if (isAnimationActive && active) {\n outerStyle = _objectSpread(_objectSpread({}, translateStyle({\n transition: \"transform \".concat(animationDuration, \"ms \").concat(animationEasing)\n })), outerStyle);\n }\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 /*#__PURE__*/React.createElement(\"div\", {\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);\nTooltip.displayName = 'Tooltip';\nTooltip.defaultProps = {\n active: false,\n allowEscapeViewBox: {\n x: false,\n y: false\n },\n offset: 10,\n viewBox: {\n x1: 0,\n x2: 0,\n y1: 0,\n y2: 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};","function _extends() { _extends = Object.assign || 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\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; }\n\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/**\n * @fileOverview Layer\n */\nimport React from 'react';\nimport classNames from 'classnames';\nimport { filterProps } from '../util/types';\nexport function Layer(props) {\n var children = props.children,\n className = props.className,\n others = _objectWithoutProperties(props, [\"children\", \"className\"]);\n\n var layerClass = classNames('recharts-layer', className);\n return /*#__PURE__*/React.createElement(\"g\", _extends({\n className: layerClass\n }, filterProps(others, true)), children);\n}","function _extends() { _extends = Object.assign || 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\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; }\n\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/**\n * @fileOverview Surface\n */\nimport React from 'react';\nimport classNames from 'classnames';\nimport { filterProps } from '../util/types';\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, [\"children\", \"width\", \"height\", \"viewBox\", \"className\", \"style\"]);\n\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, true), {\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 version: \"1.1\"\n }), children);\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nimport _isArray from \"lodash/isArray\";\nimport _upperFirst from \"lodash/upperFirst\";\nimport _isFunction from \"lodash/isFunction\";\n\nfunction _extends() { _extends = Object.assign || 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\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\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, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\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 } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\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); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\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; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n/**\n * @fileOverview Curve\n */\nimport React, { PureComponent } from 'react';\nimport { line as shapeLine, area as shapeArea, curveBasisClosed, curveBasisOpen, curveBasis, curveLinearClosed, curveLinear, curveMonotoneX, curveMonotoneY, curveNatural, curveStep, curveStepAfter, curveStepBefore } from 'd3-shape';\nimport classNames from 'classnames';\nimport { adaptEventHandlers, filterProps } from '../util/types';\nimport { isNumber } from '../util/DataUtils';\nvar CURVE_FACTORIES = {\n curveBasisClosed: curveBasisClosed,\n curveBasisOpen: curveBasisOpen,\n curveBasis: curveBasis,\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};\n\nvar defined = function defined(p) {\n return p.x === +p.x && p.y === +p.y;\n};\n\nvar getX = function getX(p) {\n return p.x;\n};\n\nvar getY = function getY(p) {\n return p.y;\n};\n\nvar getCurveFactory = function getCurveFactory(type, layout) {\n if (_isFunction(type)) {\n return type;\n }\n\n var name = \"curve\".concat(_upperFirst(type));\n\n if (name === 'curveMonotone' && layout) {\n return CURVE_FACTORIES[\"\".concat(name).concat(layout === 'vertical' ? 'Y' : 'X')];\n }\n\n return CURVE_FACTORIES[name] || curveLinear;\n};\n\nexport var Curve = /*#__PURE__*/function (_PureComponent) {\n _inherits(Curve, _PureComponent);\n\n var _super = _createSuper(Curve);\n\n function Curve() {\n _classCallCheck(this, Curve);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(Curve, [{\n key: \"getPath\",\n value:\n /**\n * Calculate the path of curve\n * @return {String} path\n */\n function getPath() {\n var _this$props = this.props,\n type = _this$props.type,\n points = _this$props.points,\n baseLine = _this$props.baseLine,\n layout = _this$props.layout,\n connectNulls = _this$props.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\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\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\n lineFunction.defined(defined).curve(curveFactory);\n return lineFunction(areaPoints);\n }\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\n lineFunction.defined(defined).curve(curveFactory);\n return lineFunction(formatPoints);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props2 = this.props,\n className = _this$props2.className,\n points = _this$props2.points,\n path = _this$props2.path,\n pathRef = _this$props2.pathRef;\n\n if ((!points || !points.length) && !path) {\n return null;\n }\n\n var realPath = points && points.length ? this.getPath() : path;\n return /*#__PURE__*/React.createElement(\"path\", _extends({}, filterProps(this.props), adaptEventHandlers(this.props), {\n className: classNames('recharts-curve', className),\n d: realPath,\n ref: pathRef\n }));\n }\n }]);\n\n return Curve;\n}(PureComponent);\nCurve.defaultProps = {\n type: 'linear',\n points: [],\n connectNulls: false\n};","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _extends() { _extends = Object.assign || 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\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\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, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\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 } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\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); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\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; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n/**\n * @fileOverview Dot\n */\nimport React, { PureComponent } from 'react';\nimport classNames from 'classnames';\nimport { adaptEventHandlers, filterProps } from '../util/types';\nexport var Dot = /*#__PURE__*/function (_PureComponent) {\n _inherits(Dot, _PureComponent);\n\n var _super = _createSuper(Dot);\n\n function Dot() {\n _classCallCheck(this, Dot);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(Dot, [{\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n cx = _this$props.cx,\n cy = _this$props.cy,\n r = _this$props.r,\n className = _this$props.className;\n var layerClass = classNames('recharts-dot', className);\n\n if (cx === +cx && cy === +cy && r === +r) {\n return /*#__PURE__*/React.createElement(\"circle\", _extends({}, filterProps(this.props), adaptEventHandlers(this.props), {\n className: layerClass,\n cx: cx,\n cy: cy,\n r: r\n }));\n }\n\n return null;\n }\n }]);\n\n return Dot;\n}(PureComponent);","import _every from \"lodash/every\";\nimport _mapValues from \"lodash/mapValues\";\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\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, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { getTicksOfScale, parseScale, checkDomainOfScale, getBandSizeOfAxis } from './ChartUtils';\nimport { findChildByType } from './ReactUtils';\nimport { getPercentValue } from './DataUtils';\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 */\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\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\n if (axis.padding === 'gap') {\n calculatedPadding = smallestDistanceInPercent * rangeWidth / 2;\n }\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\n if (reversed) {\n range = [range[1], range[0]];\n }\n\n var _parseScale = parseScale(axis, chartName, hasBar),\n scale = _parseScale.scale,\n realScaleType = _parseScale.realScaleType;\n\n scale.domain(domain).range(range);\n checkDomainOfScale(scale);\n var ticks = getTicksOfScale(scale, _objectSpread(_objectSpread({}, axis), {}, {\n realScaleType: realScaleType\n }));\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\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\n finalAxis.bandSize = getBandSizeOfAxis(finalAxis, ticks);\n\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\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 * 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 */\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\n this.scale = void 0;\n this.scale = scale;\n }\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\n if (value === undefined) {\n return undefined;\n }\n\n if (position) {\n switch (position) {\n case 'start':\n {\n return this.scale(value);\n }\n\n case 'middle':\n {\n var offset = this.bandwidth ? this.bandwidth() / 2 : 0;\n return this.scale(value) + offset;\n }\n\n case 'end':\n {\n var _offset = this.bandwidth ? this.bandwidth() : 0;\n\n return this.scale(value) + _offset;\n }\n\n default:\n {\n return this.scale(value);\n }\n }\n }\n\n if (bandAware) {\n var _offset2 = this.bandwidth ? this.bandwidth() / 2 : 0;\n\n return this.scale(value) + _offset2;\n }\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\n return ScaleHelper;\n}();\nScaleHelper.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\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};","function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\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.\"); }\n\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); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\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\nvar identity = function identity(i) {\n return i;\n};\n\nexport var PLACE_HOLDER = {\n '@@functional/placeholder': true\n};\n\nvar isPlaceHolder = function isPlaceHolder(val) {\n return val === PLACE_HOLDER;\n};\n\nvar curry0 = function curry0(fn) {\n return function _curried() {\n if (arguments.length === 0 || arguments.length === 1 && isPlaceHolder(arguments.length <= 0 ? undefined : arguments[0])) {\n return _curried;\n }\n\n return fn.apply(void 0, arguments);\n };\n};\n\nvar curryN = function curryN(n, fn) {\n if (n === 1) {\n return fn;\n }\n\n return curry0(function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var argsLength = args.filter(function (arg) {\n return arg !== PLACE_HOLDER;\n }).length;\n\n if (argsLength >= n) {\n return fn.apply(void 0, args);\n }\n\n return curryN(n - argsLength, curry0(function () {\n for (var _len2 = arguments.length, restArgs = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n restArgs[_key2] = arguments[_key2];\n }\n\n var newArgs = args.map(function (arg) {\n return isPlaceHolder(arg) ? restArgs.shift() : arg;\n });\n return fn.apply(void 0, _toConsumableArray(newArgs).concat(restArgs));\n }));\n });\n};\n\nexport var curry = function curry(fn) {\n return curryN(fn.length, fn);\n};\nexport var range = function range(begin, end) {\n var arr = [];\n\n for (var i = begin; i < end; ++i) {\n arr[i - begin] = i;\n }\n\n return arr;\n};\nexport var map = curry(function (fn, arr) {\n if (Array.isArray(arr)) {\n return arr.map(fn);\n }\n\n return Object.keys(arr).map(function (key) {\n return arr[key];\n }).map(fn);\n});\nexport var compose = function compose() {\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n\n if (!args.length) {\n return identity;\n }\n\n var fns = args.reverse(); // first function can receive multiply arguments\n\n var firstFn = fns[0];\n var tailsFn = fns.slice(1);\n return function () {\n return tailsFn.reduce(function (res, fn) {\n return fn(res);\n }, firstFn.apply(void 0, arguments));\n };\n};\nexport var reverse = function reverse(arr) {\n if (Array.isArray(arr)) {\n return arr.reverse();\n } // can be string\n\n\n return arr.split('').reverse.join('');\n};\nexport var memoize = function memoize(fn) {\n var lastArgs = null;\n var lastResult = null;\n return function () {\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n args[_key4] = arguments[_key4];\n }\n\n if (lastArgs && args.every(function (val, i) {\n return val === lastArgs[i];\n })) {\n return lastResult;\n }\n\n lastArgs = args;\n lastResult = fn.apply(void 0, args);\n return lastResult;\n };\n};","/**\n * @fileOverview 一些公用的运算方法\n * @author xile611\n * @date 2015-09-17\n */\nimport Decimal from 'decimal.js-light';\nimport { curry } from './utils';\n/**\n * 获取数值的位数\n * 其中绝对值属于区间[0.1, 1), 得到的值为0\n * 绝对值属于区间[0.01, 0.1),得到的位数为 -1\n * 绝对值属于区间[0.001, 0.01),得到的位数为 -2\n *\n * @param {Number} value 数值\n * @return {Integer} 位数\n */\n\nfunction getDigitCount(value) {\n var result;\n\n if (value === 0) {\n result = 1;\n } else {\n result = Math.floor(new Decimal(value).abs().log(10).toNumber()) + 1;\n }\n\n return result;\n}\n/**\n * 按照固定的步长获取[start, end)这个区间的数据\n * 并且需要处理js计算精度的问题\n *\n * @param {Decimal} start 起点\n * @param {Decimal} end 终点,不包含该值\n * @param {Decimal} step 步长\n * @return {Array} 若干数值\n */\n\n\nfunction rangeStep(start, end, step) {\n var num = new Decimal(start);\n var i = 0;\n var result = []; // magic number to prevent infinite loop\n\n while (num.lt(end) && i < 100000) {\n result.push(num.toNumber());\n num = num.add(step);\n i++;\n }\n\n return result;\n}\n/**\n * 对数值进行线性插值\n *\n * @param {Number} a 定义域的极点\n * @param {Number} b 定义域的极点\n * @param {Number} t [0, 1]内的某个值\n * @return {Number} 定义域内的某个值\n */\n\n\nvar interpolateNumber = curry(function (a, b, t) {\n var newA = +a;\n var newB = +b;\n return newA + t * (newB - newA);\n});\n/**\n * 线性插值的逆运算\n *\n * @param {Number} a 定义域的极点\n * @param {Number} b 定义域的极点\n * @param {Number} x 可以认为是插值后的一个输出值\n * @return {Number} 当x在 a ~ b这个范围内时,返回值属于[0, 1]\n */\n\nvar uninterpolateNumber = curry(function (a, b, x) {\n var diff = b - +a;\n diff = diff || Infinity;\n return (x - a) / diff;\n});\n/**\n * 线性插值的逆运算,并且有截断的操作\n *\n * @param {Number} a 定义域的极点\n * @param {Number} b 定义域的极点\n * @param {Number} x 可以认为是插值后的一个输出值\n * @return {Number} 当x在 a ~ b这个区间内时,返回值属于[0, 1],\n * 当x不在 a ~ b这个区间时,会截断到 a ~ b 这个区间\n */\n\nvar uninterpolateTruncation = curry(function (a, b, x) {\n var diff = b - +a;\n diff = diff || Infinity;\n return Math.max(0, Math.min(1, (x - a) / diff));\n});\nexport default {\n rangeStep: rangeStep,\n getDigitCount: getDigitCount,\n interpolateNumber: interpolateNumber,\n uninterpolateNumber: uninterpolateNumber,\n uninterpolateTruncation: uninterpolateTruncation\n};","function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\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.\"); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\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.\"); }\n\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); }\n\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\nfunction _iterableToArrayLimit(arr, i) { if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\n/**\n * @fileOverview calculate tick values of scale\n * @author xile611, arcthur\n * @date 2015-09-17\n */\nimport Decimal from 'decimal.js-light';\nimport { compose, range, memoize, map, reverse } from './util/utils';\nimport Arithmetic from './util/arithmetic';\n/**\n * Calculate a interval of a minimum value and a maximum value\n *\n * @param {Number} min The minimum value\n * @param {Number} max The maximum value\n * @return {Array} An interval\n */\n\nfunction getValidInterval(_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n min = _ref2[0],\n max = _ref2[1];\n\n var validMin = min,\n validMax = max; // exchange\n\n if (min > max) {\n validMin = max;\n validMax = min;\n }\n\n return [validMin, validMax];\n}\n/**\n * Calculate the step which is easy to understand between ticks, like 10, 20, 25\n *\n * @param {Decimal} roughStep The rough step calculated by deviding the\n * difference by the tickCount\n * @param {Boolean} allowDecimals Allow the ticks to be decimals or not\n * @param {Integer} correctionFactor A correction factor\n * @return {Decimal} The step which is easy to understand between two ticks\n */\n\n\nfunction getFormatStep(roughStep, allowDecimals, correctionFactor) {\n if (roughStep.lte(0)) {\n return new Decimal(0);\n }\n\n var digitCount = Arithmetic.getDigitCount(roughStep.toNumber()); // The ratio between the rough step and the smallest number which has a bigger\n // order of magnitudes than the rough step\n\n var digitCountValue = new Decimal(10).pow(digitCount);\n var stepRatio = roughStep.div(digitCountValue); // When an integer and a float multiplied, the accuracy of result may be wrong\n\n var stepRatioScale = digitCount !== 1 ? 0.05 : 0.1;\n var amendStepRatio = new Decimal(Math.ceil(stepRatio.div(stepRatioScale).toNumber())).add(correctionFactor).mul(stepRatioScale);\n var formatStep = amendStepRatio.mul(digitCountValue);\n return allowDecimals ? formatStep : new Decimal(Math.ceil(formatStep));\n}\n/**\n * calculate the ticks when the minimum value equals to the maximum value\n *\n * @param {Number} value The minimum valuue which is also the maximum value\n * @param {Integer} tickCount The count of ticks\n * @param {Boolean} allowDecimals Allow the ticks to be decimals or not\n * @return {Array} ticks\n */\n\n\nfunction getTickOfSingleValue(value, tickCount, allowDecimals) {\n var step = 1; // calculate the middle value of ticks\n\n var middle = new Decimal(value);\n\n if (!middle.isint() && allowDecimals) {\n var absVal = Math.abs(value);\n\n if (absVal < 1) {\n // The step should be a float number when the difference is smaller than 1\n step = new Decimal(10).pow(Arithmetic.getDigitCount(value) - 1);\n middle = new Decimal(Math.floor(middle.div(step).toNumber())).mul(step);\n } else if (absVal > 1) {\n // Return the maximum integer which is smaller than 'value' when 'value' is greater than 1\n middle = new Decimal(Math.floor(value));\n }\n } else if (value === 0) {\n middle = new Decimal(Math.floor((tickCount - 1) / 2));\n } else if (!allowDecimals) {\n middle = new Decimal(Math.floor(value));\n }\n\n var middleIndex = Math.floor((tickCount - 1) / 2);\n var fn = compose(map(function (n) {\n return middle.add(new Decimal(n - middleIndex).mul(step)).toNumber();\n }), range);\n return fn(0, tickCount);\n}\n/**\n * Calculate the step\n *\n * @param {Number} min The minimum value of an interval\n * @param {Number} max The maximum value of an interval\n * @param {Integer} tickCount The count of ticks\n * @param {Boolean} allowDecimals Allow the ticks to be decimals or not\n * @param {Number} correctionFactor A correction factor\n * @return {Object} The step, minimum value of ticks, maximum value of ticks\n */\n\n\nfunction calculateStep(min, max, tickCount, allowDecimals) {\n var correctionFactor = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 0;\n\n // dirty hack (for recharts' test)\n if (!Number.isFinite((max - min) / (tickCount - 1))) {\n return {\n step: new Decimal(0),\n tickMin: new Decimal(0),\n tickMax: new Decimal(0)\n };\n } // The step which is easy to understand between two ticks\n\n\n var step = getFormatStep(new Decimal(max).sub(min).div(tickCount - 1), allowDecimals, correctionFactor); // A medial value of ticks\n\n var middle; // When 0 is inside the interval, 0 should be a tick\n\n if (min <= 0 && max >= 0) {\n middle = new Decimal(0);\n } else {\n // calculate the middle value\n middle = new Decimal(min).add(max).div(2); // minus modulo value\n\n middle = middle.sub(new Decimal(middle).mod(step));\n }\n\n var belowCount = Math.ceil(middle.sub(min).div(step).toNumber());\n var upCount = Math.ceil(new Decimal(max).sub(middle).div(step).toNumber());\n var scaleCount = belowCount + upCount + 1;\n\n if (scaleCount > tickCount) {\n // When more ticks need to cover the interval, step should be bigger.\n return calculateStep(min, max, tickCount, allowDecimals, correctionFactor + 1);\n }\n\n if (scaleCount < tickCount) {\n // When less ticks can cover the interval, we should add some additional ticks\n upCount = max > 0 ? upCount + (tickCount - scaleCount) : upCount;\n belowCount = max > 0 ? belowCount : belowCount + (tickCount - scaleCount);\n }\n\n return {\n step: step,\n tickMin: middle.sub(new Decimal(belowCount).mul(step)),\n tickMax: middle.add(new Decimal(upCount).mul(step))\n };\n}\n/**\n * Calculate the ticks of an interval, the count of ticks will be guraranteed\n *\n * @param {Number} min, max min: The minimum value, max: The maximum value\n * @param {Integer} tickCount The count of ticks\n * @param {Boolean} allowDecimals Allow the ticks to be decimals or not\n * @return {Array} ticks\n */\n\n\nfunction getNiceTickValuesFn(_ref3) {\n var _ref4 = _slicedToArray(_ref3, 2),\n min = _ref4[0],\n max = _ref4[1];\n\n var tickCount = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 6;\n var allowDecimals = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n // More than two ticks should be return\n var count = Math.max(tickCount, 2);\n\n var _getValidInterval = getValidInterval([min, max]),\n _getValidInterval2 = _slicedToArray(_getValidInterval, 2),\n cormin = _getValidInterval2[0],\n cormax = _getValidInterval2[1];\n\n if (cormin === -Infinity || cormax === Infinity) {\n var _values = cormax === Infinity ? [cormin].concat(_toConsumableArray(range(0, tickCount - 1).map(function () {\n return Infinity;\n }))) : [].concat(_toConsumableArray(range(0, tickCount - 1).map(function () {\n return -Infinity;\n })), [cormax]);\n\n return min > max ? reverse(_values) : _values;\n }\n\n if (cormin === cormax) {\n return getTickOfSingleValue(cormin, tickCount, allowDecimals);\n } // Get the step between two ticks\n\n\n var _calculateStep = calculateStep(cormin, cormax, count, allowDecimals),\n step = _calculateStep.step,\n tickMin = _calculateStep.tickMin,\n tickMax = _calculateStep.tickMax;\n\n var values = Arithmetic.rangeStep(tickMin, tickMax.add(new Decimal(0.1).mul(step)), step);\n return min > max ? reverse(values) : values;\n}\n/**\n * Calculate the ticks of an interval, the count of ticks won't be guraranteed\n *\n * @param {Number} min, max min: The minimum value, max: The maximum value\n * @param {Integer} tickCount The count of ticks\n * @param {Boolean} allowDecimals Allow the ticks to be decimals or not\n * @return {Array} ticks\n */\n\n\nfunction getTickValuesFn(_ref5) {\n var _ref6 = _slicedToArray(_ref5, 2),\n min = _ref6[0],\n max = _ref6[1];\n\n var tickCount = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 6;\n var allowDecimals = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n // More than two ticks should be return\n var count = Math.max(tickCount, 2);\n\n var _getValidInterval3 = getValidInterval([min, max]),\n _getValidInterval4 = _slicedToArray(_getValidInterval3, 2),\n cormin = _getValidInterval4[0],\n cormax = _getValidInterval4[1];\n\n if (cormin === -Infinity || cormax === Infinity) {\n return [min, max];\n }\n\n if (cormin === cormax) {\n return getTickOfSingleValue(cormin, tickCount, allowDecimals);\n }\n\n var step = getFormatStep(new Decimal(cormax).sub(cormin).div(count - 1), allowDecimals, 0);\n var fn = compose(map(function (n) {\n return new Decimal(cormin).add(new Decimal(n).mul(step)).toNumber();\n }), range);\n var values = fn(0, count).filter(function (entry) {\n return entry >= cormin && entry <= cormax;\n });\n return min > max ? reverse(values) : values;\n}\n/**\n * Calculate the ticks of an interval, the count of ticks won't be guraranteed,\n * but the domain will be guaranteed\n *\n * @param {Number} min, max min: The minimum value, max: The maximum value\n * @param {Integer} tickCount The count of ticks\n * @param {Boolean} allowDecimals Allow the ticks to be decimals or not\n * @return {Array} ticks\n */\n\n\nfunction getTickValuesFixedDomainFn(_ref7, tickCount) {\n var _ref8 = _slicedToArray(_ref7, 2),\n min = _ref8[0],\n max = _ref8[1];\n\n var allowDecimals = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n\n // More than two ticks should be return\n var _getValidInterval5 = getValidInterval([min, max]),\n _getValidInterval6 = _slicedToArray(_getValidInterval5, 2),\n cormin = _getValidInterval6[0],\n cormax = _getValidInterval6[1];\n\n if (cormin === -Infinity || cormax === Infinity) {\n return [min, max];\n }\n\n if (cormin === cormax) {\n return [cormin];\n }\n\n var count = Math.max(tickCount, 2);\n var step = getFormatStep(new Decimal(cormax).sub(cormin).div(count - 1), allowDecimals, 0);\n var values = [].concat(_toConsumableArray(Arithmetic.rangeStep(new Decimal(cormin), new Decimal(cormax).sub(new Decimal(0.99).mul(step)), step)), [cormax]);\n return min > max ? reverse(values) : values;\n}\n\nexport var getNiceTickValues = memoize(getNiceTickValuesFn);\nexport var getTickValues = memoize(getTickValuesFn);\nexport var getTickValuesFixedDomain = memoize(getTickValuesFixedDomainFn);","import _isEqual from \"lodash/isEqual\";\nimport _sortBy from \"lodash/sortBy\";\nimport _isNaN from \"lodash/isNaN\";\nimport _upperFirst from \"lodash/upperFirst\";\nimport _isString from \"lodash/isString\";\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\";\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\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.\"); }\n\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); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\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\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { getNiceTickValues, getTickValuesFixedDomain } from 'recharts-scale';\nimport * as d3Scales from 'd3-scale';\nimport { stack as shapeStack, stackOrderNone, stackOffsetExpand, stackOffsetNone, stackOffsetSilhouette, stackOffsetWiggle } from 'd3-shape';\nimport { isNumOrStr, uniqueId, isNumber, getPercentValue, mathSign, findEntryInArray } from './DataUtils';\nimport { Legend } from '../component/Legend';\nimport { findAllByType, findChildByType, getDisplayName } from './ReactUtils'; // TODO: Cause of circular dependency. Needs refactor.\n// import { RadiusAxisProps, AngleAxisProps } from '../polar/types';\n\nimport { filterProps } from './types';\nexport function getValueByDataKey(obj, dataKey, defaultValue) {\n if (_isNil(obj) || _isNil(dataKey)) {\n return defaultValue;\n }\n\n if (isNumOrStr(dataKey)) {\n return _get(obj, dataKey, defaultValue);\n }\n\n if (_isFunction(dataKey)) {\n return dataKey(obj);\n }\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 */\n\nexport function getDomainOfDataByKey(data, key, type, filterNil) {\n var flattenData = _flatMap(data, function (entry) {\n return getValueByDataKey(entry, key);\n });\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\n var validateData = filterNil ? flattenData.filter(function (entry) {\n return !_isNil(entry);\n }) : flattenData; // 支持Date类型的x轴\n\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\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 (len > 1) {\n if (axis && axis.axisType === 'angleAxis' && Math.abs(Math.abs(axis.range[1] - axis.range[0]) - 360) <= 1e-6) {\n var range = axis.range; // ticks are distributed in a circle\n\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\n if (mathSign(cur - before) !== mathSign(after - cur)) {\n var diffInterval = [];\n\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\n var sameInterval = [Math.min(cur, (sameDirectionCoord + cur) / 2), Math.max(cur, (sameDirectionCoord + cur) / 2)];\n\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\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 } else {\n index = 0;\n }\n\n return index;\n};\n/**\n * Get the main color of each graphic item\n * @param {ReactElement} item A graphic item\n * @return {String} Color\n */\n\nexport var getMainColorOfGraphicItem = function getMainColorOfGraphicItem(item) {\n var _ref = item,\n displayName = _ref.type.displayName; // TODO: check if displayName is valid.\n\n var _item$props = item.props,\n stroke = _item$props.stroke,\n fill = _item$props.fill;\n var result;\n\n switch (displayName) {\n case 'Line':\n result = stroke;\n break;\n\n case 'Area':\n case 'Radar':\n result = stroke && stroke !== 'none' ? stroke : fill;\n break;\n\n default:\n result = fill;\n break;\n }\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.displayName);\n\n if (!legendItem) {\n return null;\n }\n\n var legendData;\n\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\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 */\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\n if (!stackGroups) {\n return {};\n }\n\n var result = {};\n var numericAxisIds = Object.keys(stackGroups);\n\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\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\n if (barItems && barItems.length) {\n var selfSize = barItems[0].props.barSize;\n var cateId = barItems[0].props[cateAxisId];\n\n if (!result[cateId]) {\n result[cateId] = [];\n }\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\n return result;\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 */\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; // whether or not is barSize setted by user\n\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\n if (sum >= bandSize) {\n sum -= (len - 1) * realBarGap;\n realBarGap = 0;\n }\n\n if (sum >= bandSize && fullBarSize > 0) {\n useFull = true;\n fullBarSize *= 0.9;\n sum = len * fullBarSize;\n }\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\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\n return newRes;\n }, []);\n } else {\n var _offset = getPercentValue(barCategoryGap, bandSize, 0, true);\n\n if (bandSize - 2 * _offset - (len - 1) * realBarGap <= 0) {\n realBarGap = 0;\n }\n\n var originalSize = (bandSize - 2 * _offset - (len - 1) * realBarGap) / len;\n\n if (originalSize > 1) {\n originalSize >>= 0;\n }\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\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\n return newRes;\n }, []);\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); // const legendHeight = height - (margin.top || 0) - (margin.bottom || 0);\n\n var legendProps = getLegendProps({\n children: children,\n legendWidth: legendWidth\n });\n var newOffset = offset;\n\n if (legendProps) {\n var box = legendBox || {};\n var align = legendProps.align,\n verticalAlign = legendProps.verticalAlign,\n layout = legendProps.layout;\n\n if ((layout === 'vertical' || layout === 'horizontal' && verticalAlign === 'center') && isNumber(offset[align])) {\n newOffset = _objectSpread(_objectSpread({}, offset), {}, _defineProperty({}, align, newOffset[align] + (box.width || 0)));\n }\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\n return newOffset;\n};\nexport var getDomainOfErrorBars = function getDomainOfErrorBars(data, item, dataKey, axisType) {\n var children = item.props.children;\n var errorBars = findAllByType(children, 'ErrorBar').filter(function (errorBarChild) {\n var direction = errorBarChild.props.direction;\n return _isNil(direction) || _isNil(axisType) ? true : axisType.indexOf(direction) >= 0;\n });\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\n return null;\n};\nexport var parseErrorBarsOfAxis = function parseErrorBarsOfAxis(data, items, dataKey, axisType) {\n var domains = items.map(function (item) {\n return getDomainOfErrorBars(data, item, dataKey, axisType);\n }).filter(function (entry) {\n return !_isNil(entry);\n });\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\n return null;\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 {Boolean} filterNil Whether or not filter nil values\n * @return {Array} Domain\n */\n\nexport var getDomainOfItemsWithSameAxis = function getDomainOfItemsWithSameAxis(data, items, type, filterNil) {\n var domains = items.map(function (item) {\n var dataKey = item.props.dataKey;\n\n if (type === 'number' && dataKey) {\n return getDomainOfErrorBars(data, item, dataKey) || getDomainOfDataByKey(data, dataKey, type, filterNil);\n }\n\n return getDomainOfDataByKey(data, dataKey, type, filterNil);\n });\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\n var tag = {}; // Get the union set of category axis\n\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\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 * 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 */\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\n if (entry.coordinate === max) {\n hasMax = true;\n }\n\n return entry.coordinate;\n });\n\n if (!hasMin) {\n values.push(min);\n }\n\n if (!hasMax) {\n values.push(max);\n }\n\n return values;\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 */\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' ? mathSign(range[0] - range[1]) * 2 * offset : offset; // The ticks setted by user should only affect the ticks adjacent to axis line\n\n if (isGrid && (axis.ticks || axis.niceTicks)) {\n return (axis.ticks || axis.niceTicks).map(function (entry) {\n var scaleContent = duplicateDomain ? duplicateDomain.indexOf(entry) : entry;\n return {\n coordinate: scale(scaleContent) + offset,\n value: entry,\n offset: offset\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\n\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\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 } // When axis has duplicated text, serial numbers are used to generate scale\n\n\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 * 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 */\n\nexport var combineEventHandlers = function combineEventHandlers(defaultHandler, parentHandler, childHandler) {\n var customizedHandler;\n\n if (_isFunction(childHandler)) {\n customizedHandler = childHandler;\n } else if (_isFunction(parentHandler)) {\n customizedHandler = parentHandler;\n }\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\n if (_isFunction(customizedHandler)) {\n customizedHandler(arg1, arg2, arg3, arg4);\n }\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 */\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\n if (scale === 'auto') {\n if (layout === 'radial' && axisType === 'radiusAxis') {\n return {\n scale: d3Scales.scaleBand(),\n realScaleType: 'band'\n };\n }\n\n if (layout === 'radial' && axisType === 'angleAxis') {\n return {\n scale: d3Scales.scaleLinear(),\n realScaleType: 'linear'\n };\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\n if (type === 'category') {\n return {\n scale: d3Scales.scaleBand(),\n realScaleType: 'band'\n };\n }\n\n return {\n scale: d3Scales.scaleLinear(),\n realScaleType: 'linear'\n };\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\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\n if (!domain || domain.length <= 2) {\n return;\n }\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\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\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\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\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\n if (!isNumber(value[0]) || value[0] < min) {\n result[0] = min;\n }\n\n if (!isNumber(value[1]) || value[1] > max) {\n result[1] = max;\n }\n\n if (result[0] > max) {\n result[0] = max;\n }\n\n if (result[1] < min) {\n result[1] = min;\n }\n\n return result;\n};\n/* eslint no-param-reassign: 0 */\n\nexport var offsetSign = function offsetSign(series) {\n var n = series.length;\n\n if (n <= 0) {\n return;\n }\n\n for (var j = 0, m = series[0].length; j < m; ++j) {\n var positive = 0;\n var negative = 0;\n\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 /* eslint-disable prefer-destructuring */\n\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};\n/* eslint no-param-reassign: 0 */\n\nexport var offsetPositive = function offsetPositive(series) {\n var n = series.length;\n\n if (n <= 0) {\n return;\n }\n\n for (var j = 0, m = series[0].length; j < m; ++j) {\n var positive = 0;\n\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 /* eslint-disable prefer-destructuring */\n\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 } // reversing items to affect render order (for layering)\n\n\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\n if (hide) {\n return result;\n }\n\n var axisId = item.props[numericAxisId];\n var parentGroup = result[axisId] || {\n hasStack: false,\n stackGroups: {}\n };\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\n return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, axisId, parentGroup));\n }, {});\n return Object.keys(stackGroups).reduce(function (result, axisId) {\n var group = stackGroups[axisId];\n\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\n return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, axisId, group));\n }, {});\n};\n/**\n * get domain of ticks\n * @param {Array} ticks Ticks of axis\n * @param {String} type The type of axis\n * @return {Array} domain\n */\n\nexport var calculateDomainOfTicks = function calculateDomainOfTicks(ticks, type) {\n if (type === 'number') {\n return [_min(ticks), _max(ticks)];\n }\n\n return ticks;\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 */\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\n if (scaleType !== 'auto' && scaleType !== 'linear') {\n return null;\n }\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\n if (!domain.length) {\n return null;\n }\n\n var tickValues = getNiceTickValues(domain, tickCount, allowDecimals);\n scale.domain(calculateDomainOfTicks(tickValues, type));\n return {\n niceTicks: tickValues\n };\n }\n\n if (tickCount && type === 'number') {\n var _domain = scale.domain();\n\n var _tickValues = getTickValuesFixedDomain(_domain, tickCount, allowDecimals);\n\n return {\n niceTicks: _tickValues\n };\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\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\n if (matchedTick) {\n return matchedTick.coordinate + bandSize / 2;\n }\n }\n\n return ticks[index] ? ticks[index].coordinate + bandSize / 2 : null;\n }\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\n if (axis.type === 'category') {\n return ticks[index] ? ticks[index].coordinate + offset : null;\n }\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\n if (numericAxis.type === 'number') {\n var min = Math.min(domain[0], domain[1]);\n var max = Math.max(domain[0], domain[1]);\n\n if (min <= 0 && max >= 0) {\n return 0;\n }\n\n if (max < 0) {\n return max;\n }\n\n return min;\n }\n\n return domain[0];\n};\nexport var getStackedDataOfItem = function getStackedDataOfItem(item, stackGroups) {\n var stackId = item.props.stackId;\n\n if (isNumOrStr(stackId)) {\n var group = stackGroups[stackId];\n\n if (group && group.items.length) {\n var itemIndex = -1;\n\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\n return itemIndex >= 0 ? group.stackedData[itemIndex] : null;\n }\n }\n\n return null;\n};\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};\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\n if (!_isArray(specifiedDomain)) {\n return dataDomain;\n }\n\n var domain = [];\n /* eslint-disable prefer-destructuring */\n\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\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\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\n return domain;\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 */\n\nexport var getBandSizeOfAxis = function getBandSizeOfAxis(axis, ticks, isBar) {\n if (axis && axis.scale && axis.scale.bandwidth) {\n var bandWidth = axis.scale.bandwidth();\n\n if (!isBar || bandWidth > 0) {\n return bandWidth;\n }\n }\n\n if (axis && ticks && ticks.length >= 2) {\n var orderedTicks = _sortBy(ticks, function (o) {\n return o.coordinate;\n });\n\n var bandSize = Infinity;\n\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\n return bandSize === Infinity ? 0 : bandSize;\n }\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 */\n\nexport var parseDomainOfCategoryAxis = function parseDomainOfCategoryAxis(specifiedDomain, calculatedDomain, axisChild) {\n if (!specifiedDomain || !specifiedDomain.length) {\n return calculatedDomain;\n }\n\n if (_isEqual(specifiedDomain, _get(axisChild, 'type.defaultProps.domain'))) {\n return calculatedDomain;\n }\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 ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\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.\"); }\n\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); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\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\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';\n\nfunction autoCompleteStyle(name, value) {\n if (STYLE_LIST.indexOf(name) >= 0 && value === +value) {\n return \"\".concat(value, \"px\");\n }\n\n return value;\n}\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\n return [].concat(_toConsumableArray(result), [entry]);\n }, []);\n return formatStrs.join('');\n}\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\n if (text === undefined || text === null || Global.isSsr) {\n return {\n width: 0,\n height: 0\n };\n }\n\n var str = \"\".concat(text);\n var styleString = getStyleString(style);\n var cacheKey = \"\".concat(str, \"-\").concat(styleString);\n\n if (stringCache.widthCache[cacheKey]) {\n return stringCache.widthCache[cacheKey];\n }\n\n try {\n var measurementSpan = document.getElementById(MEASUREMENT_SPAN_ID);\n\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 } // 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\n\n var measurementSpanStyle = _objectSpread(_objectSpread({}, SPAN_STYLE), style);\n\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\n if (++stringCache.cacheCount > MAX_CACHE_NUM) {\n stringCache.cacheCount = 0;\n stringCache.widthCache = {};\n }\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 }; // If we don't have gBCR, just use 0,0 rather than error\n // BlackBerry 5, iOS 3 (original iPhone)\n\n if (typeof el.getBoundingClientRect !== 'undefined') {\n box = el.getBoundingClientRect();\n }\n\n return {\n top: box.top + window.pageYOffset - html.clientTop,\n left: box.left + window.pageXOffset - html.clientLeft\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 */\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\n if (value > 0) {\n return 1;\n }\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 * 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 */\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\n if (!isNumber(percent) && !_isString(percent)) {\n return defaultValue;\n }\n\n var value;\n\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\n if (_isNaN(value)) {\n value = defaultValue;\n }\n\n if (validate && value > totalValue) {\n value = totalValue;\n }\n\n return value;\n};\nexport var getAnyElementOfObject = function getAnyElementOfObject(obj) {\n if (!obj) {\n return null;\n }\n\n var keys = Object.keys(obj);\n\n if (keys && keys.length) {\n return obj[keys[0]];\n }\n\n return null;\n};\nexport var hasDuplicate = function hasDuplicate(ary) {\n if (!_isArray(ary)) {\n return false;\n }\n\n var len = ary.length;\n var cache = {};\n\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\n return false;\n};\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\n return function () {\n return numberB;\n };\n};\nexport function findEntryInArray(ary, specifiedKey, specifiedValue) {\n if (!ary || !ary.length) {\n return null;\n }\n\n return ary.find(function (entry) {\n return entry && (typeof specifiedKey === 'function' ? specifiedKey(entry) : _get(entry, specifiedKey)) === specifiedValue;\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 */\n\nexport var getLinearRegression = function getLinearRegression(data) {\n if (!data || !data.length) {\n return null;\n }\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\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\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};\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\n if (keys && keys.length) {\n keys.forEach(function (k) {\n Global[k] = key[k];\n });\n }\n }\n }\n};","import _isNil from \"lodash/isNil\";\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\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.\"); }\n\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); }\n\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\nfunction _iterableToArrayLimit(arr, i) { if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\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 * 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 */\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\n if (_isNil(axis.range)) {\n if (axisType === 'angleAxis') {\n range = [startAngle, endAngle];\n } else if (axisType === 'radiusAxis') {\n range = [innerRadius, outerRadius];\n }\n\n if (reversed) {\n range = [range[1], range[0]];\n }\n } else {\n range = axis.range;\n var _range = range;\n\n var _range2 = _slicedToArray(_range, 2);\n\n startAngle = _range2[0];\n endAngle = _range2[1];\n }\n\n var _parseScale = parseScale(axis, chartName),\n realScaleType = _parseScale.realScaleType,\n scale = _parseScale.scale;\n\n scale.domain(domain).range(range);\n checkDomainOfScale(scale);\n var ticks = getTicksOfScale(scale, _objectSpread(_objectSpread({}, axis), {}, {\n realScaleType: realScaleType\n }));\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\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\n if (radius <= 0) {\n return {\n radius: radius\n };\n }\n\n var cos = (x - cx) / radius;\n var angleInRadian = Math.acos(cos);\n\n if (y > cy) {\n angleInRadian = 2 * Math.PI - angleInRadian;\n }\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};\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};\n\nexport var inRangeOfSector = function inRangeOfSector(_ref5, sector) {\n var x = _ref5.x,\n y = _ref5.y;\n\n var _getAngleOfPoint = getAngleOfPoint({\n x: x,\n y: y\n }, sector),\n radius = _getAngleOfPoint.radius,\n angle = _getAngleOfPoint.angle;\n\n var innerRadius = sector.innerRadius,\n outerRadius = sector.outerRadius;\n\n if (radius < innerRadius || radius > outerRadius) {\n return false;\n }\n\n if (radius === 0) {\n return true;\n }\n\n var _formatAngleOfSector = formatAngleOfSector(sector),\n startAngle = _formatAngleOfSector.startAngle,\n endAngle = _formatAngleOfSector.endAngle;\n\n var formatAngle = angle;\n var inRange;\n\n if (startAngle <= endAngle) {\n while (formatAngle > endAngle) {\n formatAngle -= 360;\n }\n\n while (formatAngle < startAngle) {\n formatAngle += 360;\n }\n\n inRange = formatAngle >= startAngle && formatAngle <= endAngle;\n } else {\n while (formatAngle > startAngle) {\n formatAngle -= 360;\n }\n\n while (formatAngle < endAngle) {\n formatAngle += 360;\n }\n\n inRange = formatAngle >= endAngle && formatAngle <= startAngle;\n }\n\n if (inRange) {\n return _objectSpread(_objectSpread({}, sector), {}, {\n radius: radius,\n angle: reverseFormatAngleOfSetor(formatAngle, sector)\n });\n }\n\n return null;\n};","import _isString from \"lodash/isString\";\nimport _get from \"lodash/get\";\nimport _isNil from \"lodash/isNil\";\nimport _isArray from \"lodash/isArray\";\n\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; }\n\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\nimport { Children } from 'react';\nimport { isFragment } from 'react-is';\nimport { isNumber } from './DataUtils';\nimport { shallowEqual } from './ShallowEqual';\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 * Get the display name of a component\n * @param {Object} Comp Specified Component\n * @return {String} Display name of Component\n */\n\nexport var getDisplayName = function getDisplayName(Comp) {\n if (typeof Comp === 'string') {\n return Comp;\n }\n\n if (!Comp) {\n return '';\n }\n\n return Comp.displayName || Comp.name || 'Component';\n}; // `toArray` gets called multiple times during the render\n// so we can memoize last invocation (since reference to `children` is the same)\n\nvar lastChildren = null;\nvar lastResult = null;\nexport var toArray = function toArray(children) {\n if (children === lastChildren && _isArray(lastResult)) {\n return lastResult;\n }\n\n var result = [];\n Children.forEach(children, function (child) {\n if (_isNil(child)) return;\n\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 * Find and return all matched children by type. `type` can be a React element class or\n * string\n */\n\nexport var findAllByType = function findAllByType(children, type) {\n var result = [];\n var types = [];\n\n if (_isArray(type)) {\n types = type.map(function (t) {\n return getDisplayName(t);\n });\n } else {\n types = [getDisplayName(type)];\n }\n\n toArray(children).forEach(function (child) {\n var childType = _get(child, 'type.displayName') || _get(child, 'type.name');\n\n if (types.indexOf(childType) !== -1) {\n result.push(child);\n }\n });\n return result;\n};\n/*\n * Return the first matched child by type, return null otherwise.\n * `type` can be a React element class or string.\n */\n\nexport var findChildByType = function findChildByType(children, type) {\n var result = findAllByType(children, type);\n return result && result[0];\n};\n/*\n * Create a new array of children excluding the ones matched the type\n */\n\nexport var withoutType = function withoutType(children, type) {\n var newChildren = [];\n var types;\n\n if (_isArray(type)) {\n types = type.map(function (t) {\n return getDisplayName(t);\n });\n } else {\n types = [getDisplayName(type)];\n }\n\n toArray(children).forEach(function (child) {\n var displayName = _get(child, 'type.displayName');\n\n if (displayName && types.indexOf(displayName) !== -1) {\n return;\n }\n\n newChildren.push(child);\n });\n return newChildren;\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 */\n\nexport var validateWidthHeight = function validateWidthHeight(el) {\n if (!el || !el.props) {\n return false;\n }\n\n var _el$props = el.props,\n width = _el$props.width,\n height = _el$props.height;\n\n if (!isNumber(width) || width <= 0 || !isNumber(height) || height <= 0) {\n return false;\n }\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'];\n\nvar isSvgElement = function isSvgElement(child) {\n return child && child.type && _isString(child.type) && SVG_TAGS.indexOf(child.type) >= 0;\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 */\n\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};\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 */\n\nexport var isChildrenEqual = function isChildrenEqual(nextChildren, prevChildren) {\n if (nextChildren === prevChildren) {\n return true;\n }\n\n var count = Children.count(nextChildren);\n\n if (count !== Children.count(prevChildren)) {\n return false;\n }\n\n if (count === 0) {\n return true;\n }\n\n if (count === 1) {\n // eslint-disable-next-line no-use-before-define,@typescript-eslint/no-use-before-define\n return isSingleChildEqual(_isArray(nextChildren) ? nextChildren[0] : nextChildren, _isArray(prevChildren) ? prevChildren[0] : prevChildren);\n }\n\n for (var i = 0; i < count; i++) {\n var nextChild = nextChildren[i];\n var prevChild = prevChildren[i];\n\n if (_isArray(nextChild) || _isArray(prevChild)) {\n if (!isChildrenEqual(nextChild, prevChild)) {\n return false;\n } // eslint-disable-next-line no-use-before-define,@typescript-eslint/no-use-before-define\n\n } else if (!isSingleChildEqual(nextChild, prevChild)) {\n return false;\n }\n }\n\n return true;\n};\nexport var isSingleChildEqual = function isSingleChildEqual(nextChild, prevChild) {\n if (_isNil(nextChild) && _isNil(prevChild)) {\n return true;\n }\n\n if (!_isNil(nextChild) && !_isNil(prevChild)) {\n var _ref = nextChild.props || {},\n nextChildren = _ref.children,\n nextProps = _objectWithoutProperties(_ref, [\"children\"]);\n\n var _ref2 = prevChild.props || {},\n prevChildren = _ref2.children,\n prevProps = _objectWithoutProperties(_ref2, [\"children\"]);\n\n if (nextChildren && prevChildren) {\n // eslint-disable-next-line no-use-before-define\n return shallowEqual(nextProps, prevProps) && isChildrenEqual(nextChildren, prevChildren);\n }\n\n if (!nextChildren && !prevChildren) {\n return shallowEqual(nextProps, prevProps);\n }\n\n return false;\n }\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\n var _ref3 = renderMap[displayName] || {},\n handler = _ref3.handler,\n once = _ref3.once;\n\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\n if (type && REACT_BROWSER_EVENT_MAP[type]) {\n return REACT_BROWSER_EVENT_MAP[type];\n }\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\n for (var _key in b) {\n if ({}.hasOwnProperty.call(b, _key) && !{}.hasOwnProperty.call(a, _key)) {\n return false;\n }\n }\n\n return true;\n}","import _isObject from \"lodash/isObject\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nimport { isValidElement } from 'react';\nvar SVGContainerPropKeys = ['viewBox', 'children'];\nvar 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', 'target', 'type', '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', 'points', '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 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']; // Animation Types => TODO: Should be moved when react-smooth is typescriptified.\n\nexport var filterProps = function filterProps(props, includeEvents, isSvg) {\n if (!props || typeof props === 'function' || typeof props === 'boolean') {\n return null;\n }\n\n var inputProps = props;\n\n if ( /*#__PURE__*/isValidElement(props)) {\n inputProps = props.props;\n }\n\n if (!_isObject(inputProps)) {\n return null;\n }\n\n var out = {};\n Object.keys(inputProps).forEach(function (key) {\n // viewBox only exist in \n if (SVGElementPropKeys.includes(key) || isSvg && SVGContainerPropKeys.includes(key) || includeEvents && EventKeys.includes(key)) {\n out[key] = inputProps[key];\n }\n });\n return out;\n};\nexport var adaptEventHandlers = function adaptEventHandlers(props, newHandler) {\n if (!props || typeof props === 'function' || typeof props === 'boolean') {\n return null;\n }\n\n var inputProps = props;\n\n if ( /*#__PURE__*/isValidElement(props)) {\n inputProps = props.props;\n }\n\n if (!_isObject(inputProps)) {\n return null;\n }\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};\n\nvar getEventHandlerOfChild = function getEventHandlerOfChild(originalHandler, data, index) {\n return function (e) {\n originalHandler(data, index, e);\n return null;\n };\n};\n\nexport var adaptEventsOfChild = function adaptEventsOfChild(props, data, index) {\n if (!_isObject(props) || _typeof(props) !== 'object') {\n return null;\n }\n\n var out = null;\n Object.keys(props).forEach(function (key) {\n var item = props[key];\n\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};"],"names":["_typeof","obj","Symbol","iterator","constructor","prototype","_extends","Object","assign","target","i","arguments","length","source","key","hasOwnProperty","call","apply","this","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","_objectSpread","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","value","configurable","writable","_defineProperties","props","descriptor","_setPrototypeOf","o","p","setPrototypeOf","__proto__","_getPrototypeOf","getPrototypeOf","Area","_PureComponent","subClass","superClass","TypeError","create","_inherits","Constructor","protoProps","staticProps","Derived","hasNativeReflectConstruct","_super","Reflect","construct","sham","Proxy","Boolean","valueOf","e","_isNativeReflectConstruct","result","Super","NewTarget","self","ReferenceError","_assertThisInitialized","_possibleConstructorReturn","_this","instance","_classCallCheck","_len","args","Array","_key","concat","state","isAnimationFinished","id","handleAnimationEnd","onAnimationEnd","setState","handleAnimationStart","onAnimationStart","nextProps","prevState","animationId","prevAnimationId","curPoints","points","curBaseLine","baseLine","prevPoints","prevBaseLine","needClip","clipPathId","isAnimationActive","_this$props","dot","dataKey","areaProps","customDotProps","dots","map","entry","dotProps","r","cx","x","cy","y","index","payload","renderDotItem","dotsProps","clipPath","className","alpha","_this$props2","strokeWidth","startX","endX","width","Math","abs","maxY","max","height","floor","parseInt","_this$props3","startY","endY","maxX","layout","renderVerticalRect","renderHorizontalRect","_this$props4","type","stroke","connectNulls","isRange","others","ref","excluded","sourceKeys","indexOf","_objectWithoutPropertiesLoose","sourceSymbolKeys","propertyIsEnumerable","_objectWithoutProperties","fill","_this2","_this$props5","animationBegin","animationDuration","animationEasing","_this$state","begin","duration","isActive","easing","from","t","to","_ref","stepBaseLine","prevPointsDiffFactor","stepPoints","prevPointIndex","prev","interpolatorX","interpolatorY","interpolator","_interpolator","renderAreaStatically","renderClipRect","_this$props6","_this$state2","totalLength","renderAreaWithAnimation","_this$props7","hide","top","left","xAxis","yAxis","hasSinglePoint","layerClass","allowDataOverflow","renderArea","renderDots","renderCallByParent","PureComponent","displayName","defaultProps","fillOpacity","xAxisId","yAxisId","legendType","activeDot","isSsr","getBaseValue","baseValue","numericAxis","domain","scale","min","getComposedData","_ref2","xAxisTicks","yAxisTicks","bandSize","stackedData","dataStartIndex","displayedData","offset","hasStack","originalValue","isBreakPoint","axis","ticks","option","CartesianGrid","lineItem","x1","y1","x2","y2","horizontalPoints","horizontal","items","renderLineItem","verticalPoints","vertical","verticalFill","verticalPointsUpdated","slice","sort","a","b","unshift","lineWidth","colorIndex","round","horizontalFill","horizontalPointsUpdated","lineHeight","horizontalCoordinatesGenerator","verticalCoordinatesGenerator","chartWidth","chartHeight","renderBackground","renderHorizontal","renderVertical","renderHorizontalStripes","renderVerticalStripes","_arrayLikeToArray","arr","len","arr2","ErrorBar","data","dataPointFormatter","svgProps","errorBars","_dataPointFormatter","errorVal","lowBound","highBound","lineCoordinates","isArray","_errorVal","_arrayWithHoles","_arr","_n","_d","_e","undefined","_s","_i","next","done","err","_iterableToArrayLimit","minLen","n","toString","name","test","_unsupportedIterableToArray","_nonIterableRest","_slicedToArray","yMid","yMin","yMax","xMin","xMax","_scale","xMid","_xMin","_xMax","_yMin","_yMax","Layer","coordinates","_toConsumableArray","_arrayWithoutHoles","iter","_iterableToArray","_nonIterableSpread","Line","mainCurve","getStrokeDasharray","lines","lineLength","reduce","pre","count","remainLength","restLength","remainLines","sum","emptyLines","repeat","line","join","pathRef","node","linesUnit","dotItem","Dot","getTotalLength","curveDom","children","errorBarItems","dataPoint","item","lineProps","curveProps","Curve","strokeDasharray","animateNewValues","stepData","_interpolatorX","_interpolatorY","renderCurveStatically","currentStrokeDasharray","curLength","split","num","parseFloat","renderCurveWithAnimation","renderCurve","renderErrorBar","LabelList","Global","XAxis","allowDecimals","orientation","mirror","tickCount","padding","right","reversed","allowDuplicatedCategory","YAxis","bottom","AreaChart","chartName","GraphicalChild","axisComponents","axisType","AxisComp","formatAxisMap","LineChart","Cross","d","getPath","getTangentCircle","radius","angle","sign","isExternal","cornerRadius","cornerIsExternal","centerRadius","theta","asin","centerAngle","lineTangencyAngle","center","circleTangency","lineTangency","cos","getSectorPath","innerRadius","outerRadius","startAngle","endAngle","getDeltaAngle","tempEndAngle","outerStartPoint","outerEndPoint","path","innerStartPoint","innerEndPoint","Sector","forceCornerRadius","deltaRadius","cr","_ref3","_getTangentCircle","soct","solt","sot","_getTangentCircle2","eoct","eolt","eot","outerArcAngle","_getTangentCircle3","sict","silt","sit","_getTangentCircle4","eict","eilt","eit","innerArcAngle","getSectorWithCorner","getRectanglePath","maxRadius","ySign","xSign","clockWise","newRadius","_newRadius","isInRectangle","point","rect","px","py","minX","minY","Rectangle","isUpdateAnimationActive","canBegin","currWidth","currHeight","currX","currY","attributeName","CartesianAxis","_Component","tick","viewBox","minTickGap","interval","tickFormatter","unit","getNumberIntervalTicks","getTicksStart","getTicksEnd","preserveEnd","start","end","sizeKey","unitSize","coordinate","tail","tailContent","tailSize","tailGap","tickCoord","isShow","content","size","gap","Text","restProps","viewBoxOld","restPropsOld","tx","ty","tickSize","tickMargin","finalTickSize","textAnchor","verticalAnchor","axisLine","needHeight","needWidth","tickLine","finalTicks","getTicks","getTickTextAnchor","getTickVerticalAnchor","axisProps","customTickProps","tickLineProps","_this$getTickLineCoor","getTickLineCoord","lineCoord","tickProps","visibleTicksCount","renderTickItem","ticksGenerator","_this$props8","noTicksProps","renderAxisLine","renderTicks","Label","Component","PREFIX_LIST","isTouch","changedTouches","Brush","leaveTimer","travellerDragStartHandlers","handleDrag","clearTimeout","isTravellerMoving","handleTravellerMove","isSlideMoving","handleSlideDrag","handleTouchMove","handleDragEnd","detachDragEndListener","handleLeaveWrapper","window","setTimeout","leaveTimeOut","handleEnterSlideOrTraveller","isTextActive","handleLeaveSlideOrTraveller","handleSlideDragStart","event","slideMoveStartX","pageX","attachDragEndListener","handleTravellerDragStart","bind","lineY","renderDefaultTraveller","travellerWidth","updateId","startIndex","endIndex","prevData","prevUpdateId","prevTravellerWidth","prevX","prevWidth","range","scaleValues","createScale","middle","lastIndex","minIndex","getIndexInRange","maxIndex","text","addEventListener","removeEventListener","onChange","delta","newIndex","getIndex","movingTravellerId","brushMoveStartX","_this$setState","prevValue","params","chartElement","Children","only","margin","compact","travellerX","traveller","travellerProps","onMouseEnter","onMouseLeave","onMouseDown","onTouchStart","style","cursor","renderTraveller","_this$props9","_this$state3","attrs","pointerEvents","getTextOfTick","_this$props10","alwaysShowText","_this$state4","camelName","isPanoramic","replace","v","toUpperCase","res","onMouseMove","onTouchMove","renderPanorama","renderSlide","renderTravellerLayer","renderText","ifOverflowMatches","alwaysShow","ifOverflow","warn","condition","format","ReferenceDot","isX","isY","scales","bandAware","isInRange","getCoordinate","shape","renderDot","isFront","ReferenceLine","fixedX","fixedY","segment","endPoints","isFixedX","isFixedY","isSegment","_props$viewBox","position","yCoord","coord","reverse","xCoord","_orientation","_coord","_points","_points2","getEndPoints","_endPoints","_endPoints$","_endPoints$2","renderLine","ReferenceArea","hasX1","hasX2","hasY1","hasY2","xValue1","xValue2","yValue1","yValue2","p1","rangeMin","p2","rangeMax","getRect","renderRect","detectReferenceElementsDomain","axisId","specifiedTicks","elements","areas","idKey","valueKey","finalDomain","el","key1","key2","value1","value2","eventCenter","setMaxListeners","SYNC_EVENT","ORIENT_MAP","originCoordinate","isFinit","Number","isFinite","defer","requestAnimationFrame","setImmediate","deferClear","cancelAnimationFrame","clearImmediate","getDisplayedData","graphicalItems","dataEndIndex","itemsData","child","itemData","getTooltipContent","chartData","activeIndex","activeLabel","tooltipAxis","entries","getTooltipData","rangeObj","rangeData","chartX","chartY","pos","calculateTooltipPos","orderedTooltipTicks","tooltipTicks","activePayload","activeCoordinate","find","_angle","_radius","getActiveCoordinate","activeTooltipIndex","createDefaultState","defaultShowTooltip","brushItem","isTooltipActive","getAxisNameByLayout","numericAxisName","cateAxisName","generateCategoricalChart","_ref6","_class","_temp","_ref6$defaultTooltipE","defaultTooltipEventType","_ref6$validateTooltip","validateTooltipEventTypes","legendContent","updateStateOfAxisMapsOffsetAndStackGroups","_ref8","stackOffset","reverseStackOrder","_getAxisNameByLayout2","stackGroups","axisObj","_ref4","_ref4$axisType","axisIdKey","axes","axisMap","isCategorical","_child$props","duplicateDomain","categoricalDomain","duplicate","errorBarsDomain","axisDomain","every","originalDomain","getAxisMapByAxes","Axis","getAxisMapByItems","getAxisMap","_ref5","prevLegendBBox","_ref5$xAxisMap","xAxisMap","_ref5$yAxisMap","yAxisMap","legendItem","Legend","offsetH","offsetV","brushBottom","calculateOffset","legendBBox","ticksObj","tooltipAxisBandSize","formattedGraphicalItems","currentState","barSize","barGap","barCategoryGap","globalMaxBarSize","maxBarSize","_getAxisNameByLayout","hasBar","some","hasGraphicalBarItem","sizeList","formattedItems","_item$props","childMaxBarSize","numericAxisId","cateAxisId","_objectSpread6","cateAxis","cateTicks","itemIsBar","barPosition","_ref7","_getBandSizeOfAxis","barBandSize","_objectSpread7","composedFn","childIndex","getFormatItems","CategoricalChartWrapper","_props","uniqueChartId","legendInstance","deferId","container","clearDeferId","handleLegendBBoxUpdate","box","handleReceiveSyncEvent","cId","chartId","syncId","applySyncEvent","handleBrushChange","_ref9","triggerSyncEvent","handleMouseEnter","mouse","getMouseInfo","_nextState","triggeredAfterMouseMove","nextState","handleItemMouseEnter","activeItem","tooltipPayload","tooltipPosition","handleItemMouseLeave","handleMouseMove","persist","handleMouseLeave","cancelThrottledTriggerAfterMouseMove","handleOuterEvent","eventName","handleClick","onClick","_nextState2","handleMouseDown","handleMouseUp","onMouseUp","handleTouchStart","handleTouchEnd","_ref10","_ref11","axesTicksGenerator","renderCursor","element","tooltipEventType","getTooltipEventType","cursorComp","getCursorRectangle","_this$getCursorPoints","getCursorPoints","cursorProps","payloadIndex","isValidElement","cloneElement","createElement","renderPolarAxis","axisOption","renderXAxis","renderAxis","renderYAxis","renderGrid","renderPolarGrid","_element$props","radialLines","polarAngles","polarRadius","radiusAxisMap","angleAxisMap","radiusAxis","angleAxis","renderLegend","legendWidth","otherProps","legend","onBBoxUpdate","renderTooltip","tooltipItem","Tooltip","_this$state5","active","label","renderBrush","_this$state6","renderReferenceElement","_this$state7","_element$props2","renderActivePoints","_ref12","activePoint","basePoint","_item$item$props","renderActiveDot","renderGraphicChild","filterFormatItem","_this$state8","_item$props2","_item$item$props2","hasActive","itemEvents","trigger","onCLick","graphicalItem","specifiedKey","renderCustomized","throttleDelay","addListener","prevProps","removeListener","cancel","shared","eventType","containerOffset","inRange","_this$state9","xScale","yScale","xValue","invert","yValue","toolTipData","_this$state10","halfSize","_this$state11","_cx","_cy","innerPoint","outerPoint","_this$state12","tooltipEvents","onTouchEnd","on","_maxListeners","emit","syncMethod","_this$state13","validateChartX","validateChartY","axisOptions","_this$state$offset","_ref13","_ref14","_ref15","_ref16","_this$state$xAxisMap","_this$state$xAxisMap$","_this$state$yAxisMap","_this$state$yAxisMap$","chartXY","itemDisplayName","activeBarItem","_activeBarItem","handler","once","Bar","Radar","RadialBar","Scatter","Pie","Funnel","PolarGrid","PolarAngleAxis","PolarRadiusAxis","Customized","Surface","renderClipPath","events","parseEventsOfWrapper","getDerivedStateFromProps","defaultState","prevHeight","prevLayout","prevStackOffset","prevMargin","prevChildren","_defaultState","keepFromPrevState","updatesToState","newState","newUpdateId","getLabel","formatter","renderRadialLabel","labelProps","labelAngle","direction","deltaAngle","startPoint","endPoint","dominantBaseline","xlinkHref","getAttrsOfPolarLabel","midAngle","_polarToCartesian","_x","_polarToCartesian2","getAttrsOfCartesianLabel","parentViewBox","verticalSign","verticalOffset","verticalEnd","verticalStart","horizontalSign","horizontalOffset","horizontalEnd","horizontalStart","_attrs2","_attrs3","sizeAttrs","isPolar","_props$className","textBreakAll","isPolarLabel","positionAttrs","breakAll","parseViewBox","labelViewBox","parentProps","checkPropsLabel","explicitChildren","implicitLabel","parseLabel","valueAccessor","idProps","ckeckPropsLabel","explicitChilren","parseLabelList","symbolFactories","symbolCircle","symbolCross","symbolDiamond","symbolSquare","symbolStar","symbolTriangle","symbolWye","RADIAN","PI","Symbols","sizeType","symbolFactory","getSymbolFactory","symbol","sqrt","tan","pow","calculateAreaSize","transform","registerSymbol","factory","SIZE","DefaultLegendContent","inactiveColor","sixthSize","thirdSize","color","inactive","legendIcon","iconProps","iconSize","itemStyle","display","marginRight","svgStyle","verticalAlign","_classNames","finalFormatter","renderIcon","align","finalStyle","textAlign","renderItems","defaultUniqBy","getUniqPayload","wrapperNode","boxWidth","boxHeight","updateBBox","getBoundingClientRect","hPos","vPos","getBBoxSnapshot","_box3","wrapperStyle","payloadUniqBy","outerStyle","getDefaultPosition","renderContent","BREAKING_SPACES","calculateWordWidths","words","wordsWithComputedWidth","word","spaceWidth","getWordsWithoutCalculate","getWordsByLines","needCalculate","scaleToFit","wordWidths","initialWordsWithComputedWith","shouldLimitLines","maxLines","calculate","currentLine","newLine","originalResult","trimmedResult","checkOverflow","tempText","doesOverflow","findLongestLine","iterations","_checkOverflow2","doesPrevOverflow","doesMiddleOverflow","calculateWordsByLines","prevScaleToFit","prevStyle","prevBreakAll","wordsByLines","dx","dy","capHeight","textProps","startDy","transforms","defaultFormatter","DefaultTooltipContent","separator","itemSorter","finalItemStyle","paddingTop","paddingBottom","formatted","_formatted","wrapperClassName","contentStyle","labelClassName","labelStyle","labelFormatter","backgroundColor","border","whiteSpace","finalLabelStyle","hasLabel","finalLabel","wrapperCN","labelCN","CLS_PREFIX","getTranslate","tooltipDimension","viewBoxDimension","allowEscapeViewBox","restricted","unrestricted","translateX","translateY","filterNull","finalPayload","hasPayload","visibility","useTranslate3d","transition","cls","cursorStyle","svgView","version","CURVE_FACTORIES","curveBasisClosed","c","curveBasisOpen","curveBasis","curveLinearClosed","curveLinear","curveMonotoneX","curveMonotoneY","curveNatural","curveStep","curveStepAfter","curveStepBefore","defined","getX","getY","lineFunction","curveFactory","getCurveFactory","formatPoints","formatBaseLine","base","areaPoints","x0","y0","curve","realPath","ids","steps","leftMirror","rightMirror","topMirror","bottomMirror","calculatedPadding","needSpace","_axis$padding","offsetKey","diff","smallestDistanceBetweenValues","Infinity","sortedValues","smallestDistanceInPercent","rangeWidth","halfBand","_parseScale","realScaleType","finalAxis","rectWithPoints","rectWithCoords","ScaleHelper","get","bandwidth","_offset","_offset2","first","last","EPS","createLabeledScales","options","identity","PLACE_HOLDER","isPlaceHolder","val","curry0","fn","_curried","curryN","argsLength","arg","_len2","restArgs","_key2","newArgs","shift","curry","compose","_len3","_key3","fns","firstFn","tailsFn","memoize","lastArgs","lastResult","_len4","_key4","rangeStep","step","lt","toNumber","add","getDigitCount","log","interpolateNumber","newA","uninterpolateNumber","uninterpolateTruncation","getValidInterval","validMin","validMax","getFormatStep","roughStep","correctionFactor","lte","digitCount","digitCountValue","stepRatio","div","stepRatioScale","formatStep","ceil","mul","getTickOfSingleValue","isint","absVal","middleIndex","calculateStep","tickMin","tickMax","sub","mod","belowCount","upCount","scaleCount","getNiceTickValues","_getValidInterval2","cormin","cormax","_values","_calculateStep","values","getTickValuesFixedDomain","_getValidInterval4","_getValidInterval6","getValueByDataKey","defaultValue","getDomainOfDataByKey","filterNil","flattenData","Date","calculateActiveTickIndex","_ticks$length","unsortedTicks","before","cur","after","sameDirectionCoord","diffInterval","curInRange","afterInRange","sameInterval","getMainColorOfGraphicItem","getLegendProps","legendData","sectors","iconType","getWithHeight","getBarSizeList","globalSize","_ref5$stackGroups","numericAxisIds","sgs","stackIds","j","sLen","_sgs$stackIds$j","barItems","selfSize","cateId","stackList","getBarPosition","_ref6$sizeList","realBarGap","useFull","fullBarSize","newRes","originalSize","appendOffsetOfLegend","legendBox","legendProps","newOffset","getDomainOfErrorBars","errorBarChild","entryValue","mainValue","errorDomain","prevErrorArr","k","errorValue","lowerValue","upperValue","parseErrorBarsOfAxis","domains","getDomainOfItemsWithSameAxis","tag","isCategoricalAxis","getCoordinatesOfGrid","hasMin","hasMax","getTicksOfAxis","isGrid","isAll","offsetForBand","niceTicks","scaleContent","combineEventHandlers","defaultHandler","parentHandler","childHandler","customizedHandler","arg1","arg2","arg3","arg4","parseScale","chartType","checkDomainOfScale","STACK_OFFSET_MAP","series","m","positive","negative","expand","none","silhouette","wiggle","getStackedData","stackItems","offsetType","dataKeys","order","stack","getStackGroupsByAxisId","_items","_item$props3","stackId","parentGroup","childGroup","group","g","getTicksOfScale","opts","scaleType","tickValues","calculateDomainOfTicks","_domain","getCateCoordinateOfLine","matchedTick","getStackedDataOfItem","itemIndex","getDomainOfStackGroups","s","MIN_VALUE_REG","MAX_VALUE_REG","parseSpecifiedDomain","specifiedDomain","dataDomain","exec","_value","getBandSizeOfAxis","isBar","bandWidth","orderedTicks","parseDomainOfCategoryAxis","calculatedDomain","axisChild","getTooltipItem","_graphicalItem$props","tooltipType","stringCache","widthCache","cacheCount","SPAN_STYLE","STYLE_LIST","MEASUREMENT_SPAN_ID","getStringSize","str","styleString","toLowerCase","getStyleString","cacheKey","measurementSpan","document","getElementById","setAttribute","body","appendChild","measurementSpanStyle","styleKey","textContent","getOffset","html","ownerDocument","documentElement","pageYOffset","clientTop","pageXOffset","clientLeft","calculateChartCoordinate","pageY","mathSign","isPercent","isNumber","isNumOrStr","idCounter","uniqueId","prefix","getPercentValue","percent","totalValue","validate","getAnyElementOfObject","hasDuplicate","ary","cache","numberA","numberB","findEntryInArray","specifiedValue","set","radianToDegree","angleInRadian","polarToCartesian","sin","reverseFormatAngleOfSetor","startCnt","endCnt","inRangeOfSector","sector","_getAngleOfPoint","anotherPoint","acos","getAngleOfPoint","_formatAngleOfSector","formatAngleOfSector","formatAngle","REACT_BROWSER_EVENT_MAP","click","mousedown","mouseup","mouseover","mousemove","mouseout","mouseenter","mouseleave","touchcancel","touchend","touchmove","touchstart","getDisplayName","Comp","lastChildren","toArray","isFragment","findAllByType","types","childType","findChildByType","validateWidthHeight","_el$props","SVG_TAGS","isChildrenEqual","nextChildren","isSingleChildEqual","nextChild","prevChild","renderByOrder","renderMap","record","isSvgElement","results","getReactEventByType","parseChildIndex","shallowEqual","SVGContainerPropKeys","SVGElementPropKeys","EventKeys","filterProps","includeEvents","isSvg","inputProps","out","includes","adaptEventHandlers","newHandler","adaptEventsOfChild","originalHandler","getEventHandlerOfChild"],"sourceRoot":"","ignoreList":[]}